diff --git a/bower.json b/bower.json index f1db29c1..cba4d2a0 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "typescript-dotnet", - "version": "2.12.3", + "version": "2.13.0", "ignore": [ ".bowercc", ".gitignore", diff --git a/dist/amd/System.Linq/Linq.d.ts b/dist/amd/System.Linq/Linq.d.ts index 03d8c5c7..eb598fc4 100644 --- a/dist/amd/System.Linq/Linq.d.ts +++ b/dist/amd/System.Linq/Linq.d.ts @@ -1,19 +1,17 @@ -/// -/// -/// -/// -/// -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Original: http://linqjs.codeplex.com/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import Dictionary from "../System/Collections/Dictionaries/Dictionary"; -import DisposableBase from "../System/Disposable/DisposableBase"; +import { Dictionary } from "../System/Collections/Dictionaries/Dictionary"; +import { DisposableBase } from "../System/Disposable/DisposableBase"; +import { IEnumerator } from "../System/Collections/Enumeration/IEnumerator"; +import { IEnumerable } from "../System/Collections/Enumeration/IEnumerable"; +import { Action, Predicate, Selector, EqualityComparison, Comparison } from "../System/FunctionTypes"; +import { IEnumerableOrArray } from "../System/Collections/IEnumerableOrArray"; +import { IArray } from "../System/Collections/Array/IArray"; +import { IMap } from "../System/Collections/Dictionaries/IDictionary"; +import { Comparable } from "../System/IComparable"; export declare const enum EnumerableAction { Break = 0, Return = 1, diff --git a/dist/amd/System.Linq/Linq.js b/dist/amd/System.Linq/Linq.js index a19837f4..99fd2f94 100644 --- a/dist/amd/System.Linq/Linq.js +++ b/dist/amd/System.Linq/Linq.js @@ -3,6 +3,6 @@ * Original: http://linqjs.codeplex.com/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)};define(["require","exports","../System/Compare","../System/Collections/Array/Compare","../System/Collections/Array/Utility","../System/Collections/Enumeration/Enumerator","../System/Types","../System/Integer","../System/Functions","../System/Collections/Enumeration/ArrayEnumerator","../System/Collections/Enumeration/EnumeratorBase","../System/Collections/Dictionaries/Dictionary","../System/Collections/Queue","../System/Disposable/dispose","../System/Disposable/DisposableBase","../System/Collections/Enumeration/UnsupportedEnumerableException","../System/Disposable/ObjectDisposedException","../System/Collections/Sorting/KeySortedContext","../System/Exceptions/ArgumentNullException","../System/Exceptions/ArgumentOutOfRangeException"],function(t,e,n,r,o,u,i,s,f,a,c,l,p,d,y,h,v,m,w,E){"use strict";function g(){return u.empty}function N(t,e){return e&&(e.moveNext()?t.enqueue(e):(d.dispose(e),e=null)),e}function _(t,e){void 0===e&&(e=null);var n=new m["default"](e,t.keySelector,t.order,t.comparer);return t.parent?_(t.parent,n):n}function x(t){if(t)throw new v["default"]("Enumerable")}var I={},D=void 0,b=function(t){return 0},R=function(t){function e(){t.apply(this,arguments)}return __extends(e,t),e.prototype.Greater=function(t,e){return t>e?t:e},e.prototype.Lesser=function(t,e){return e>t?t:e},e}(f["default"]),k=new R;Object.freeze(k);var A=function(t){function e(e,n){t.call(this,n),this._enumeratorFactory=e,this._isEndless=!0}return __extends(e,t),Object.defineProperty(e.prototype,"isEndless",{get:function(){return this._isEndless},enumerable:!0,configurable:!0}),e.prototype.getEnumerator=function(){return this.throwIfDisposed(),this._enumeratorFactory()},e.prototype._onDispose=function(){t.prototype._onDispose.call(this),this._enumeratorFactory=null},e.prototype.asEnumerable=function(){var t=this;return t.throwIfDisposed(),new e(function(){return t.getEnumerator()})},e.prototype.doAction=function(t,e,n){void 0===n&&(n=this.isEndless);var r=this,o=!r.throwIfDisposed();return new O(function(){var u,i=0;return new c["default"](function(){x(o),e&&e(),i=0,u=r.getEnumerator()},function(e){for(x(o);u.moveNext();){var n=t(u.current,i++);if(n===!1||0===n)return e.yieldBreak();if(2!==n)return e.yieldReturn(u.current)}return!1},function(){d.dispose(u)},n)},function(){o=!0},n)},e.prototype.force=function(){this.throwIfDisposed(),this.doAction(b).getEnumerator().moveNext()},e.prototype.skip=function(t){var e=this;return e.throwIfDisposed(),isFinite(t)?(s["default"].assert(t,"count"),this.doAction(function(e,n){return t>n?2:1})):O.empty()},e.prototype.take=function(t){if(!(t>0))return O.empty();var e=this;if(e.throwIfDisposed(),!isFinite(t))throw new E["default"]("count",t,"Must be finite.");return s["default"].assert(t,"count"),e.doAction(function(e,n){return t>n},null,!1)},e.prototype.elementAt=function(t){var e=this.elementAtOrDefault(t,I);if(e===I)throw new E["default"]("index",t,"is greater than or equal to the number of elements in source");return e},e.prototype.elementAtOrDefault=function(t,e){void 0===e&&(e=null);var n=this;n.throwIfDisposed(),s["default"].assertZeroOrGreater(t,"index");var r=t;return d.using(this.getEnumerator(),function(t){for(var n=0;t.moveNext();){if(n==r)return t.current;n++}return e})},e.prototype.first=function(){var t=this.firstOrDefault(I);if(t===I)throw new Error("first:The sequence is empty.");return t},e.prototype.firstOrDefault=function(t){void 0===t&&(t=null);var e=this;return e.throwIfDisposed(),d.using(this.getEnumerator(),function(e){return e.moveNext()?e.current:t})},e.prototype.single=function(){var t=this;return t.throwIfDisposed(),d.using(this.getEnumerator(),function(t){if(t.moveNext()){var e=t.current;if(!t.moveNext())return e;throw new Error("single:sequence contains more than one element.")}throw new Error("single:The sequence is empty.")})},e.prototype.singleOrDefault=function(t){void 0===t&&(t=null);var e=this;return e.throwIfDisposed(),d.using(this.getEnumerator(),function(e){if(e.moveNext()){var n=e.current;if(!e.moveNext())return n}return t})},e.prototype.any=function(){var t=this;return t.throwIfDisposed(),d.using(this.getEnumerator(),function(t){return t.moveNext()})},e.prototype.isEmpty=function(){return!this.any()},e.prototype.traverseBreadthFirst=function(t,e){void 0===e&&(e=k.Identity);var n=this,r=n._isEndless||null;return new O(function(){var o,u,i,s=0;return new c["default"](function(){s=0,u=[],i=0,o=n.getEnumerator()},function(n){for(;;){if(o.moveNext())return u[i++]=o.current,n.yieldReturn(e(o.current,s));if(!i)return n.yieldBreak();var r=O.from(u).selectMany(t);if(!r.any())return n.yieldBreak();s++,u=[],i=0,o.dispose(),o=r.getEnumerator()}},function(){d.dispose(o),u.length=0},r)},null,r)},e.prototype.traverseDepthFirst=function(t,e){void 0===e&&(e=k.Identity);var n=this,r=n._isEndless||null;return new O(function(){var o,i,s=[];return new c["default"](function(){o=n.getEnumerator(),i=0},function(n){for(;;){if(o.moveNext()){var r=e(o.current,i);s[i++]=o;var f=O.fromAny(t(o.current));return o=f?f.getEnumerator():u.empty,n.yieldReturn(r)}if(0==i)return!1;o.dispose(),o=s[--i],s.length=i}},function(){try{d.dispose(o)}finally{d.dispose.these(s)}},r)},null,r)},e.prototype.flatten=function(){var t=this,e=t._isEndless||null;return new O(function(){var n,r=null;return new c["default"](function(){n=t.getEnumerator()},function(t){for(;;){if(r){if(r.moveNext())return t.yieldReturn(r.current);r.dispose(),r=null}if(n.moveNext()){var e=n.current,o=!i["default"].isString(e)&&O.fromAny(e);if(o){r=o.selectMany(k.Identity).flatten().getEnumerator();continue}return t.yieldReturn(e)}return t.yieldBreak()}},function(){d.dispose(n,r)},e)},null,e)},e.prototype.pairwise=function(t){var e=this;return new O(function(){var n;return new c["default"](function(){n=e.getEnumerator(),n.moveNext()},function(e){var r=n.current;return n.moveNext()&&e.yieldReturn(t(r,n.current))},function(){d.dispose(n)},e._isEndless)},null,e._isEndless)},e.prototype.scan=function(t,e){var n=e!==D,r=this;return new O(function(){var o,u,i;return new c["default"](function(){o=r.getEnumerator(),i=!0},function(r){return i?(i=!1,n?r.yieldReturn(u=e):o.moveNext()&&r.yieldReturn(u=o.current)):o.moveNext()?r.yieldReturn(u=t(u,o.current)):!1},function(){d.dispose(o)},r._isEndless)},null,r._isEndless)},e.prototype.select=function(t){var e=this,n=!e.throwIfDisposed();return new O(function(){var r,o=0;return new c["default"](function(){x(n),o=0,r=e.getEnumerator()},function(e){return x(n),r.moveNext()?e.yieldReturn(t(r.current,o++)):e.yieldBreak()},function(){d.dispose(r)},e._isEndless)},function(){n=!0},e._isEndless)},e.prototype._selectMany=function(t,e){var n=this,r=n._isEndless||null;return e||(e=function(t,e){return e}),new O(function(){var o,i,s=0;return new c["default"](function(){o=n.getEnumerator(),i=void 0,s=0},function(n){if(i===D&&!o.moveNext())return!1;do{if(!i){var r=t(o.current,s++);if(!r)continue;i=u.from(r)}if(i.moveNext())return n.yieldReturn(e(o.current,i.current));i.dispose(),i=null}while(o.moveNext());return!1},function(){d.dispose(o,i),o=null,i=null},r)},null,r)},e.prototype.selectMany=function(t,e){return this._selectMany(t,e)},e.prototype._choose=function(t){var e=this,n=!e.throwIfDisposed();return new O(function(){var r,o=0;return new c["default"](function(){x(n),o=0,r=e.getEnumerator()},function(e){for(x(n);r.moveNext();){var u=t(r.current,o++);if(null!==u&&u!==D)return e.yieldReturn(u)}return!1},function(){d.dispose(r)},e._isEndless)},function(){n=!0},e._isEndless)},e.prototype.choose=function(t){return void 0===t&&(t=k.Identity),this._choose(t)},e.prototype.where=function(t){var e=this,n=!e.throwIfDisposed();return new O(function(){var r,o=0;return new c["default"](function(){x(n),o=0,r=e.getEnumerator()},function(e){for(x(n);r.moveNext();)if(t(r.current,o++))return e.yieldReturn(r.current);return!1},function(){d.dispose(r)},e._isEndless)},function(){n=!0},e._isEndless)},e.prototype.ofType=function(t){var e;switch(t){case Number:e=i["default"].NUMBER;break;case String:e=i["default"].STRING;break;case Boolean:e=i["default"].BOOLEAN;break;case Function:e=i["default"].FUNCTION;break;default:return this.where(function(e){return e instanceof t})}return this.choose().where(function(t){return typeof t===e})},e.prototype.except=function(t,e){var n=this,r=!n.throwIfDisposed();return new O(function(){var o,i;return new c["default"](function(){x(r),o=n.getEnumerator(),i=new l["default"](e),t&&u.forEach(t,function(t){return i.addByKeyValue(t,!0)})},function(t){for(x(r);o.moveNext();){var e=o.current;if(!i.containsKey(e))return i.addByKeyValue(e,!0),t.yieldReturn(e)}return!1},function(){d.dispose(o),i.clear()},n._isEndless)},function(){r=!0},n._isEndless)},e.prototype.distinct=function(t){return this.except(null,t)},e.prototype.distinctUntilChanged=function(t){void 0===t&&(t=k.Identity);var e=this,r=!e.throwIfDisposed();return new O(function(){var o,u,i=!0;return new c["default"](function(){x(r),o=e.getEnumerator()},function(e){for(x(r);o.moveNext();){var s=t(o.current);if(i)i=!1;else if(n.areEqual(u,s))continue;return u=s,e.yieldReturn(o.current)}return!1},function(){d.dispose(o)},e._isEndless)},function(){r=!0},e._isEndless)},e.prototype.defaultIfEmpty=function(t){void 0===t&&(t=null);var e=this,n=!e.throwIfDisposed();return new O(function(){var r,o;return new c["default"](function(){o=!0,x(n),r=e.getEnumerator()},function(e){return x(n),r.moveNext()?(o=!1,e.yieldReturn(r.current)):o?(o=!1,e.yieldReturn(t)):!1},function(){d.dispose(r)},e._isEndless)},null,e._isEndless)},e.prototype.zip=function(t,e){var n=this;return n.throwIfDisposed(),new O(function(){var r,o,i=0;return new c["default"](function(){i=0,r=n.getEnumerator(),o=u.from(t)},function(t){return r.moveNext()&&o.moveNext()&&t.yieldReturn(e(r.current,o.current,i++))},function(){d.dispose(r,o)})})},e.prototype.zipMultiple=function(t,e){var n=this;return n.throwIfDisposed(),t.length?new O(function(){var r,o,i,s=0;return new c["default"](function(){r=new p["default"](t),s=0,o=n.getEnumerator(),i=null},function(t){if(o.moveNext())for(;;){for(;!i;){if(!r.count)return t.yieldBreak();var n=r.dequeue();n&&(i=u.from(n))}if(i.moveNext())return t.yieldReturn(e(o.current,i.current,s++));i.dispose(),i=null}return t.yieldBreak()},function(){d.dispose(o,r)})}):O.empty()},e.prototype.join=function(t,e,n,r,o){void 0===o&&(o=k.Identity);var u=this;return new O(function(){var i,s,f=null,a=0;return new c["default"](function(){i=u.getEnumerator(),s=O.from(t).toLookup(n,k.Identity,o)},function(t){for(;;){if(null!=f){var n=f[a++];if(n!==D)return t.yieldReturn(r(i.current,n));n=null,a=0}if(!i.moveNext())return t.yieldBreak();var o=e(i.current);f=s.get(o)}},function(){d.dispose(i)})})},e.prototype.groupJoin=function(t,e,n,r,o){void 0===o&&(o=k.Identity);var u=this;return new O(function(){var i,s=null;return new c["default"](function(){i=u.getEnumerator(),s=O.from(t).toLookup(n,k.Identity,o)},function(t){return i.moveNext()&&t.yieldReturn(r(i.current,s.get(e(i.current))))},function(){d.dispose(i)})})},e.prototype.merge=function(t){var e=this,n=e._isEndless||null;return t&&0!=t.length?new O(function(){var r,o;return new c["default"](function(){r=e.getEnumerator(),o=new p["default"](t)},function(t){for(;;){for(;!r&&o.count;)r=u.from(o.dequeue());if(r&&r.moveNext())return t.yieldReturn(r.current);{if(!r)return t.yieldBreak();r.dispose(),r=null}}},function(){d.dispose(r,o)},n)},null,n):e},e.prototype.concat=function(){for(var t=[],e=0;et||!isFinite(t))throw new Error("Invalid buffer size.");s["default"].assert(t,"size");var e,n=this;return new O(function(){var r;return new c["default"](function(){r=n.getEnumerator()},function(n){var u=o.initialize(t);for(e=0;t>e&&r.moveNext();)u[e++]=r.current;return u.length=e,e&&n.yieldReturn(u)},function(){d.dispose(r)},n._isEndless)},null,n._isEndless)},e.prototype.share=function(){var t=this;t.throwIfDisposed();var e;return new O(function(){return e||(e=t.getEnumerator())},function(){d.dispose(e)},t._isEndless)},e}(y["default"]);e.InfiniteEnumerable=A;var O=function(t){function e(e,n,r){void 0===r&&(r=null),t.call(this,e,n),this._isEndless=r}return __extends(e,t),e.from=function(t){var n=e.fromAny(t);if(!n)throw new h["default"];return n},e.fromAny=function(t,n){if(void 0===n&&(n=null),i["default"].isObject(t)||i["default"].isString(t)){if(t instanceof e)return t;if(i["default"].isArrayLike(t))return new S(t);if(u.isEnumerable(t))return new e(function(){return t.getEnumerator()},null,t.isEndless)}return n},e.fromOrEmpty=function(t){return e.fromAny(t)||e.empty()},e.toArray=function(t){return t instanceof e?t.toArray():u.toArray(t)},e.choice=function(t){var e=t&&t.length;if(!e||!isFinite(e))throw new E["default"]("length",length);return new A(function(){return new c["default"](null,function(e){return e.yieldReturn(s["default"].random.select(t))},!0)})},e.chooseFrom=function(){for(var t=[],n=0;n=t.length&&(e=0),n.yieldReturn(t[e++])},!0)})},e.cycleThrough=function(){for(var t=[],n=0;n0?isFinite(n)&&s["default"].assert(n,"count")?new B(function(){var e=n,r=0;return new c["default"](function(){r=0},function(n){return r++0))return e.empty();if(!r)throw new E["default"]("step",r,"Must be a valid value");if(!isFinite(r))throw new E["default"]("step",r,"Must be a finite number.");return s["default"].assert(n,"count"),new B(function(){var e,o=n,u=0;return new c["default"](function(){u=0,e=t},function(t){var i=u++u&&(e+=r),i},!1)})},e.rangeDown=function(t,n,r){return void 0===r&&(r=1),r=-1*Math.abs(r),e.range(t,n,r)},e.toInfinity=function(t,e){if(void 0===t&&(t=0),void 0===e&&(e=1),!isFinite(t))throw new E["default"]("start",t,"Must be a finite number.");if(!e)throw new E["default"]("step",e,"Must be a valid value");if(!isFinite(e))throw new E["default"]("step",e,"Must be a finite number.");return new A(function(){var n;return new c["default"](function(){n=t},function(t){var r=n;return n+=e,t.yieldReturn(r)},!0)})},e.toNegativeInfinity=function(t,n){return void 0===t&&(t=0),void 0===n&&(n=1),e.toInfinity(t,-n)},e.rangeTo=function(t,e,n){if(void 0===n&&(n=1),isNaN(e)||!isFinite(e))throw new E["default"]("to",e,"Must be a finite number.");if(n&&!isFinite(n))throw new E["default"]("step",n,"Must be a finite non-zero number.");return n=Math.abs(n),new B(function(){var r;return new c["default"](function(){r=t},e>t?function(t){var o=e>=r&&t.yieldReturn(r);return o&&(r+=n),o}:function(t){var o=r>=e&&t.yieldReturn(r);return o&&(r-=n),o},!1)})},e.matches=function(t,e,n){if(void 0===n&&(n=""),null===t||t===D)throw new w["default"]("input");var r=typeof t;if(r!=i["default"].STRING)throw new Error("Cannot exec RegExp matches of type '"+r+"'.");return e instanceof RegExp&&(n+=e.ignoreCase?"i":"",n+=e.multiline?"m":"",e=e.source),-1===n.indexOf("g")&&(n+="g"),new B(function(){var r;return new c["default"](function(){r=new RegExp(e,n)},function(e){var n=r.exec(t);return null!==n?e.yieldReturn(n):!1})})},e.generate=function(t,n){return void 0===n&&(n=1/0),isNaN(n)||0>=n?e.empty():isFinite(n)&&s["default"].assert(n,"count")?new B(function(){var e=n,r=0;return new c["default"](function(){r=0},function(n){var o=r++;return e>o&&n.yieldReturn(t(o))},!1)}):new A(function(){var e=0;return new c["default"](function(){e=0},function(n){return n.yieldReturn(t(e++))},!0)})},e.unfold=function(t,e,n){return void 0===n&&(n=!1),new A(function(){var r,o,u=0;return new c["default"](function(){u=0,r=t,o=!n},function(t){var n=u++;return o?o=!1:r=e(r,n),t.yieldReturn(r)},!0)})},e.forEach=function(t,e){u.forEach(t,e)},e.map=function(t,e){return u.map(t,e)},e.max=function(t){return t.takeUntil(function(t){return t==+(1/0)},!0).aggregate(k.Greater)},e.min=function(t){return t.takeUntil(function(t){return t==-(1/0)},!0).aggregate(k.Lesser)},e.weave=function(t){if(!t)throw new w["default"]("enumerables");return new e(function(){var e,n,r;return new c["default"](function(){r=0,e=new p["default"],n=u.from(t)},function(t){var r;if(n){for(;!r&&n.moveNext();){var o=n.current;r=N(e,o&&u.from(o))}r||(n=null)}for(;!r&&e.count;)r=N(e,e.dequeue());return r?t.yieldReturn(r.current):t.yieldBreak()},function(){d.dispose.these(e.dump()),d.dispose(n,e),n=null,e=null})})},e.prototype.doAction=function(e,n,r){return void 0===r&&(r=this.isEndless),t.prototype.doAction.call(this,e,n,r)},e.prototype.skip=function(e){return t.prototype.skip.call(this,e)},e.prototype.skipWhile=function(t){return this.throwIfDisposed(),this.doAction(function(e,n){return t(e,n)?2:1})},e.prototype.takeWhile=function(t){if(this.throwIfDisposed(),!t)throw new w["default"]("predicate");return this.doAction(function(e,n){return t(e,n)?1:0},null,null)},e.prototype.takeUntil=function(t,e){if(this.throwIfDisposed(),!t)throw new w["default"]("predicate");if(!e)return this.doAction(function(e,n){return t(e,n)?0:1},null,null);var n=!1;return this.doAction(function(e,r){return n?0:(n=t(e,r),1)},function(){n=!1},null)},e.prototype.forEach=function(t){var e=this;e.throwIfDisposed(),u.throwIfEndless(e.isEndless);var n=0;d.using(e.getEnumerator(),function(r){for(u.throwIfEndless(r.isEndless);e.throwIfDisposed()&&r.moveNext()&&t(r.current,n++)!==!1;);})},e.prototype.toArray=function(t){return t?this.where(t).toArray():this.copyTo([])},e.prototype.copyTo=function(t,e){if(void 0===e&&(e=0),this.throwIfDisposed(),!t)throw new w["default"]("target");return s["default"].assertZeroOrGreater(e),u.forEach(this,function(n,r){t[r+e]=n}),t},e.prototype.toLookup=function(t,e,n){void 0===e&&(e=k.Identity),void 0===n&&(n=k.Identity);var r=new l["default"](n);return this.forEach(function(n){var o=t(n),u=e(n),i=r.getValue(o);i!==D?i.push(u):r.addByKeyValue(o,[u])}),new q(r)},e.prototype.toMap=function(t,e){var n={};return this.forEach(function(r,o){n[t(r,o)]=e(r,o)}),n},e.prototype.toDictionary=function(t,e,n){void 0===n&&(n=k.Identity);var r=new l["default"](n);return this.forEach(function(n,o){return r.addByKeyValue(t(n,o),e(n,o))}),r},e.prototype.toJoinedString=function(t,e){return void 0===t&&(t=""),void 0===e&&(e=k.Identity),this.select(e).toArray().join(t)},e.prototype.takeExceptLast=function(t){void 0===t&&(t=1);var n=this;if(!(t>0))return n;if(!isFinite(t))return e.empty();s["default"].assert(t,"count");var r=t;return new e(function(){var t,e;return new c["default"](function(){t=n.getEnumerator(),e=new p["default"]},function(n){for(;t.moveNext();)if(e.enqueue(t.current),e.count>r)return n.yieldReturn(e.dequeue());return!1},function(){d.dispose(t,e)})})},e.prototype.skipToLast=function(t){if(!(t>0))return e.empty();var n=this;return isFinite(t)?(s["default"].assert(t,"count"),n.reverse().take(t).reverse()):n},e.prototype.where=function(e){return t.prototype.where.call(this,e)},e.prototype.select=function(e){return t.prototype.select.call(this,e)},e.prototype.selectMany=function(t,e){return this._selectMany(t,e)},e.prototype.choose=function(t){return void 0===t&&(t=k.Identity),this._choose(t)},e.prototype.reverse=function(){var t=this,n=!t.throwIfDisposed();return u.throwIfEndless(t._isEndless),new e(function(){var e,r=0;return new c["default"](function(){x(n),e=t.toArray(),r=e.length},function(t){return r&&t.yieldReturn(e[--r])},function(){e.length=0})},function(){n=!0})},e.prototype.shuffle=function(){var t=this,n=!t.throwIfDisposed();return u.throwIfEndless(t._isEndless),new e(function(){var e,r,o;return new c["default"](function(){x(n),e=t.toArray(),r=o=e.length},function(t){if(!o)return t.yieldBreak();var n=s["default"].random(o),r=e[n];return e[n]=e[--o],e[o]=null,o%32==0&&(e.length=o),t.yieldReturn(r)},function(){e.length=0})},function(){n=!0})},e.prototype.count=function(t){var e=0;return this.forEach(t?function(n,r){t(n,r)&&++e}:function(){++e}),e},e.prototype.all=function(t){if(!t)throw new w["default"]("predicate");var e=!0;return this.forEach(function(n,r){return t(n,r)?void 0:(e=!1,!1)}),e},e.prototype.every=function(t){return this.all(t)},e.prototype.any=function(e){if(!e)return t.prototype.any.call(this);var n=!1;return this.forEach(function(t,r){return n=e(t,r),!n}),n},e.prototype.some=function(t){return this.any(t)},e.prototype.contains=function(t,e){return e?this.any(function(n){return e(n)===e(t)}):this.any(function(e){return e===t})},e.prototype.indexOf=function(t,e){var r=-1;return this.forEach(e?function(o,u){return n.areEqual(e(o,u),e(t,u),!0)?(r=u,!1):void 0}:function(e,o){return n.areEqual(e,t,!0)?(r=o,!1):void 0}),r},e.prototype.lastIndexOf=function(t,e){var r=-1;return this.forEach(e?function(o,u){n.areEqual(e(o,u),e(t,u),!0)&&(r=u)}:function(e,o){n.areEqual(e,t,!0)&&(r=o)}),r},e.prototype.merge=function(e){return t.prototype.merge.call(this,e)},e.prototype.concat=function(){for(var t=[],e=0;et(n)?e:n})},e.prototype.minBy=function(t){return void 0===t&&(t=k.Identity),this.aggregate(function(e,n){return t(e)0?1:-1)}),isNaN(e)?NaN:n?n*(1/0):e},e.prototype.product=function(t){void 0===t&&(t=i["default"].numberOrNaN);var e=1,n=!1;return this.forEach(function(r,o){n=!0;var u=t(r,o);return isNaN(u)?(e=NaN,!1):0==u?(e=0,!1):void(e*=u)}),n&&isNaN(e)?NaN:e},e.prototype.quotient=function(t){void 0===t&&(t=i["default"].numberOrNaN);var e=0,n=NaN;return this.forEach(function(r,o){var u=t(r,o);if(e++,1===e)n=u;else{if(isNaN(u)||0===u||!isFinite(u))return n=NaN,!1;n/=u}}),1===e&&(n=NaN),n},e.prototype.last=function(){var t=this;t.throwIfDisposed();var e=void 0,n=!1;if(t.forEach(function(t){n=!0,e=t}),!n)throw new Error("last:No element satisfies the condition.");return e},e.prototype.lastOrDefault=function(t){void 0===t&&(t=null);var e=this;e.throwIfDisposed();var n=void 0,r=!1;return e.forEach(function(t){r=!0,n=t}),r?n:t},e.prototype.share=function(){return t.prototype.share.call(this)},e.prototype.catchError=function(e){return t.prototype.catchError.call(this,e)},e.prototype.finallyAction=function(e){return t.prototype.finallyAction.call(this,e)},e.prototype.memoize=function(){var t,n,r=this,o=!r.throwIfDisposed();return new e(function(){var e=0;return new c["default"](function(){x(o),n||(n=r.getEnumerator()),t||(t=[]),e=0},function(r){x(o);var u=e++;return u>=t.length?n.moveNext()?r.yieldReturn(t[u]=n.current):!1:r.yieldReturn(t[u])})},function(){o=!0,t&&(t.length=0),t=null,d.dispose(n),n=null})},e}(A);e.Enumerable=O;var B=function(t){function e(e,n){t.call(this,e,n,!1)}return __extends(e,t),e}(O);e.FiniteEnumerable=B;var S=function(t){function e(e){t.call(this,function(){return n.throwIfDisposed(),new a["default"](function(){return n.throwIfDisposed("The underlying ArrayEnumerable was disposed.","ArrayEnumerator"),n._source})});var n=this;n._disposableObjectName="ArrayEnumerable",n._source=e}return __extends(e,t),e.prototype._onDispose=function(){t.prototype._onDispose.call(this),this._source=null},Object.defineProperty(e.prototype,"source",{get:function(){return this._source},enumerable:!0,configurable:!0}),e.prototype.toArray=function(){var t=this;return t.throwIfDisposed(),u.toArray(t._source)},e.prototype.asEnumerable=function(){return new e(this._source)},e.prototype.forEach=function(t){var e=this;e.throwIfDisposed(),u.forEach(e._source,t)},e.prototype.any=function(e){var n=this;n.throwIfDisposed();var r=n._source,o=r.length;return o&&(!e||t.prototype.any.call(this,e))},e.prototype.count=function(e){var n=this;n.throwIfDisposed();var r=n._source,o=r.length;return o&&(e?t.prototype.count.call(this,e):o)},e.prototype.elementAtOrDefault=function(t,e){void 0===e&&(e=null);var n=this;n.throwIfDisposed(),s["default"].assertZeroOrGreater(t,"index");var r=n._source;return t0?new O(function(){return new a["default"](function(){return e._source},t)}):e},e.prototype.takeExceptLast=function(t){void 0===t&&(t=1);var e=this;return e.take(e._source.length-t)},e.prototype.skipToLast=function(t){if(!(t>0))return O.empty();var e=this;if(!isFinite(t))return e;var n=e._source?e._source.length:0;return e.skip(n-t)},e.prototype.reverse=function(){var t=this;return new O(function(){return new a["default"](function(){return t._source},t._source?t._source.length-1:0,-1)})},e.prototype.memoize=function(){return this.asEnumerable()},e.prototype.sequenceEqual=function(o,u){return void 0===u&&(u=n.areEqual),i["default"].isArrayLike(o)?r.areEqual(this.source,o,!0,u):o instanceof e?o.sequenceEqual(this.source,u):t.prototype.sequenceEqual.call(this,o,u)},e.prototype.toJoinedString=function(e,n){void 0===e&&(e=""),void 0===n&&(n=k.Identity);var r=this._source;return!n&&Array.isArray(r)?r.join(e):t.prototype.toJoinedString.call(this,e,n)},e}(B),F=function(t){function e(e,n){t.call(this,n),this._groupKey=e}return __extends(e,t),Object.defineProperty(e.prototype,"key",{get:function(){return this._groupKey},enumerable:!0,configurable:!0}),e}(S),q=function(){function t(t){this._dictionary=t}return Object.defineProperty(t.prototype,"count",{get:function(){return this._dictionary.count},enumerable:!0,configurable:!0}),t.prototype.get=function(t){return this._dictionary.getValue(t)},t.prototype.contains=function(t){return this._dictionary.containsKey(t)},t.prototype.getEnumerator=function(){var t,e=this;return new c["default"](function(){t=e._dictionary.getEnumerator()},function(e){if(!t.moveNext())return!1;var n=t.current;return e.yieldReturn(new F(n.key,n.value))},function(){d.dispose(t)})},t}(),M=function(t){function e(e,r,o,i,s){void 0===s&&(s=n.compare),t.call(this,null),this.source=e,this.keySelector=r,this.order=o,this.parent=i,this.comparer=s,u.throwIfEndless(e&&e.isEndless); -}return __extends(e,t),e.prototype.createOrderedEnumerable=function(t,n){return new e(this.source,t,n,this)},e.prototype.thenBy=function(t){return this.createOrderedEnumerable(t,1)},e.prototype.thenUsing=function(t){return new e(this.source,null,1,this,t)},e.prototype.thenByDescending=function(t){return this.createOrderedEnumerable(t,-1)},e.prototype.thenUsingReversed=function(t){return new e(this.source,null,-1,this,t)},e.prototype.getEnumerator=function(){var t,e,n=this,r=0;return new c["default"](function(){r=0,t=O.toArray(n.source),e=_(n).generateSortedIndexes(t)},function(n){return re?t:e},e.prototype.Lesser=function(t,e){return e>t?t:e},e}(a.Functions),b=new R;Object.freeze(b);var A=function(t){function e(e,n){t.call(this,n),this._enumeratorFactory=e,this._isEndless=!0}return __extends(e,t),Object.defineProperty(e.prototype,"isEndless",{get:function(){return this._isEndless},enumerable:!0,configurable:!0}),e.prototype.getEnumerator=function(){return this.throwIfDisposed(),this._enumeratorFactory()},e.prototype._onDispose=function(){t.prototype._onDispose.call(this),this._enumeratorFactory=null},e.prototype.asEnumerable=function(){var t=this;return t.throwIfDisposed(),new e(function(){return t.getEnumerator()})},e.prototype.doAction=function(t,e,n){void 0===n&&(n=this.isEndless);var r=this,o=!r.throwIfDisposed();return new O(function(){var i,u=0;return new f.EnumeratorBase(function(){I(o),e&&e(),u=0,i=r.getEnumerator()},function(e){for(I(o);i.moveNext();){var n=t(i.current,u++);if(n===!1||0===n)return e.yieldBreak();if(2!==n)return e.yieldReturn(i.current)}return!1},function(){y.dispose(i)},n)},function(){o=!0},n)},e.prototype.force=function(){this.throwIfDisposed(),this.doAction(D).getEnumerator().moveNext()},e.prototype.skip=function(t){var e=this;return e.throwIfDisposed(),isFinite(t)?(s.Integer.assert(t,"count"),this.doAction(function(e,n){return t>n?2:1})):O.empty()},e.prototype.take=function(t){if(!(t>0))return O.empty();var e=this;if(e.throwIfDisposed(),!isFinite(t))throw new w.ArgumentOutOfRangeException("count",t,"Must be finite.");return s.Integer.assert(t,"count"),e.doAction(function(e,n){return t>n},null,!1)},e.prototype.elementAt=function(t){var e=this.elementAtOrDefault(t,_);if(e===_)throw new w.ArgumentOutOfRangeException("index",t,"is greater than or equal to the number of elements in source");return e},e.prototype.elementAtOrDefault=function(t,e){void 0===e&&(e=null);var n=this;n.throwIfDisposed(),s.Integer.assertZeroOrGreater(t,"index");var r=t;return y.using(this.getEnumerator(),function(t){for(var n=0;t.moveNext();){if(n==r)return t.current;n++}return e})},e.prototype.first=function(){var t=this.firstOrDefault(_);if(t===_)throw new Error("first:The sequence is empty.");return t},e.prototype.firstOrDefault=function(t){void 0===t&&(t=null);var e=this;return e.throwIfDisposed(),y.using(this.getEnumerator(),function(e){return e.moveNext()?e.current:t})},e.prototype.single=function(){var t=this;return t.throwIfDisposed(),y.using(this.getEnumerator(),function(t){if(t.moveNext()){var e=t.current;if(!t.moveNext())return e;throw new Error("single:sequence contains more than one element.")}throw new Error("single:The sequence is empty.")})},e.prototype.singleOrDefault=function(t){void 0===t&&(t=null);var e=this;return e.throwIfDisposed(),y.using(this.getEnumerator(),function(e){if(e.moveNext()){var n=e.current;if(!e.moveNext())return n}return t})},e.prototype.any=function(){var t=this;return t.throwIfDisposed(),y.using(this.getEnumerator(),function(t){return t.moveNext()})},e.prototype.isEmpty=function(){return!this.any()},e.prototype.traverseBreadthFirst=function(t,e){void 0===e&&(e=b.Identity);var n=this,r=n._isEndless||null;return new O(function(){var o,i,u,s=0;return new f.EnumeratorBase(function(){s=0,i=[],u=0,o=n.getEnumerator()},function(n){for(;;){if(o.moveNext())return i[u++]=o.current,n.yieldReturn(e(o.current,s));if(!u)return n.yieldBreak();var r=O.from(i).selectMany(t);if(!r.any())return n.yieldBreak();s++,i=[],u=0,o.dispose(),o=r.getEnumerator()}},function(){y.dispose(o),i.length=0},r)},null,r)},e.prototype.traverseDepthFirst=function(t,e){void 0===e&&(e=b.Identity);var n=this,r=n._isEndless||null;return new O(function(){var o,u,s=[];return new f.EnumeratorBase(function(){o=n.getEnumerator(),u=0},function(n){for(;;){if(o.moveNext()){var r=e(o.current,u);s[u++]=o;var a=O.fromAny(t(o.current));return o=a?a.getEnumerator():i.empty,n.yieldReturn(r)}if(0==u)return!1;o.dispose(),o=s[--u],s.length=u}},function(){try{y.dispose(o)}finally{y.dispose.these(s)}},r)},null,r)},e.prototype.flatten=function(){var t=this,e=t._isEndless||null;return new O(function(){var n,r=null;return new f.EnumeratorBase(function(){n=t.getEnumerator()},function(t){for(;;){if(r){if(r.moveNext())return t.yieldReturn(r.current);r.dispose(),r=null}if(n.moveNext()){var e=n.current,o=!u.Type.isString(e)&&O.fromAny(e);if(o){r=o.selectMany(b.Identity).flatten().getEnumerator();continue}return t.yieldReturn(e)}return t.yieldBreak()}},function(){y.dispose(n,r)},e)},null,e)},e.prototype.pairwise=function(t){var e=this;return new O(function(){var n;return new f.EnumeratorBase(function(){n=e.getEnumerator(),n.moveNext()},function(e){var r=n.current;return n.moveNext()&&e.yieldReturn(t(r,n.current))},function(){y.dispose(n)},e._isEndless)},null,e._isEndless)},e.prototype.scan=function(t,e){var n=e!==B,r=this;return new O(function(){var o,i,u;return new f.EnumeratorBase(function(){o=r.getEnumerator(),u=!0},function(r){return u?(u=!1,n?r.yieldReturn(i=e):o.moveNext()&&r.yieldReturn(i=o.current)):o.moveNext()?r.yieldReturn(i=t(i,o.current)):!1},function(){y.dispose(o)},r._isEndless)},null,r._isEndless)},e.prototype.select=function(t){var e=this,n=!e.throwIfDisposed();return new O(function(){var r,o=0;return new f.EnumeratorBase(function(){I(n),o=0,r=e.getEnumerator()},function(e){return I(n),r.moveNext()?e.yieldReturn(t(r.current,o++)):e.yieldBreak()},function(){y.dispose(r)},e._isEndless)},function(){n=!0},e._isEndless)},e.prototype._selectMany=function(t,e){var n=this,r=n._isEndless||null;return e||(e=function(t,e){return e}),new O(function(){var o,u,s=0;return new f.EnumeratorBase(function(){o=n.getEnumerator(),u=void 0,s=0},function(n){if(u===B&&!o.moveNext())return!1;do{if(!u){var r=t(o.current,s++);if(!r)continue;u=i.from(r)}if(u.moveNext())return n.yieldReturn(e(o.current,u.current));u.dispose(),u=null}while(o.moveNext());return!1},function(){y.dispose(o,u),o=null,u=null},r)},null,r)},e.prototype.selectMany=function(t,e){return this._selectMany(t,e)},e.prototype._choose=function(t){var e=this,n=!e.throwIfDisposed();return new O(function(){var r,o=0;return new f.EnumeratorBase(function(){I(n),o=0,r=e.getEnumerator()},function(e){for(I(n);r.moveNext();){var i=t(r.current,o++);if(null!==i&&i!==B)return e.yieldReturn(i)}return!1},function(){y.dispose(r)},e._isEndless)},function(){n=!0},e._isEndless)},e.prototype.choose=function(t){return void 0===t&&(t=b.Identity),this._choose(t)},e.prototype.where=function(t){var e=this,n=!e.throwIfDisposed();return new O(function(){var r,o=0;return new f.EnumeratorBase(function(){I(n),o=0,r=e.getEnumerator()},function(e){for(I(n);r.moveNext();)if(t(r.current,o++))return e.yieldReturn(r.current);return!1},function(){y.dispose(r)},e._isEndless)},function(){n=!0},e._isEndless)},e.prototype.ofType=function(t){var e;switch(t){case Number:e=u.Type.NUMBER;break;case String:e=u.Type.STRING;break;case Boolean:e=u.Type.BOOLEAN;break;case Function:e=u.Type.FUNCTION;break;default:return this.where(function(e){return e instanceof t})}return this.choose().where(function(t){return typeof t===e})},e.prototype.except=function(t,e){var n=this,r=!n.throwIfDisposed();return new O(function(){var o,u;return new f.EnumeratorBase(function(){I(r),o=n.getEnumerator(),u=new l.Dictionary(e),t&&i.forEach(t,function(t){return u.addByKeyValue(t,!0)})},function(t){for(I(r);o.moveNext();){var e=o.current;if(!u.containsKey(e))return u.addByKeyValue(e,!0),t.yieldReturn(e)}return!1},function(){y.dispose(o),u.clear()},n._isEndless)},function(){r=!0},n._isEndless)},e.prototype.distinct=function(t){return this.except(null,t)},e.prototype.distinctUntilChanged=function(t){void 0===t&&(t=b.Identity);var e=this,r=!e.throwIfDisposed();return new O(function(){var o,i,u=!0;return new f.EnumeratorBase(function(){I(r),o=e.getEnumerator()},function(e){for(I(r);o.moveNext();){var s=t(o.current);if(u)u=!1;else if(n.areEqual(i,s))continue;return i=s,e.yieldReturn(o.current)}return!1},function(){y.dispose(o)},e._isEndless)},function(){r=!0},e._isEndless)},e.prototype.defaultIfEmpty=function(t){void 0===t&&(t=null);var e=this,n=!e.throwIfDisposed();return new O(function(){var r,o;return new f.EnumeratorBase(function(){o=!0,I(n),r=e.getEnumerator()},function(e){return I(n),r.moveNext()?(o=!1,e.yieldReturn(r.current)):o?(o=!1,e.yieldReturn(t)):!1},function(){y.dispose(r)},e._isEndless)},null,e._isEndless)},e.prototype.zip=function(t,e){var n=this;return n.throwIfDisposed(),new O(function(){var r,o,u=0;return new f.EnumeratorBase(function(){u=0,r=n.getEnumerator(),o=i.from(t)},function(t){return r.moveNext()&&o.moveNext()&&t.yieldReturn(e(r.current,o.current,u++))},function(){y.dispose(r,o)})})},e.prototype.zipMultiple=function(t,e){var n=this;return n.throwIfDisposed(),t.length?new O(function(){var r,o,u,s=0;return new f.EnumeratorBase(function(){r=new p.Queue(t),s=0,o=n.getEnumerator(),u=null},function(t){if(o.moveNext())for(;;){for(;!u;){if(!r.count)return t.yieldBreak();var n=r.dequeue();n&&(u=i.from(n))}if(u.moveNext())return t.yieldReturn(e(o.current,u.current,s++));u.dispose(),u=null}return t.yieldBreak()},function(){y.dispose(o,r)})}):O.empty()},e.prototype.join=function(t,e,n,r,o){void 0===o&&(o=b.Identity);var i=this;return new O(function(){var u,s,a=null,c=0;return new f.EnumeratorBase(function(){u=i.getEnumerator(),s=O.from(t).toLookup(n,b.Identity,o)},function(t){for(;;){if(null!=a){var n=a[c++];if(n!==B)return t.yieldReturn(r(u.current,n));n=null,c=0}if(!u.moveNext())return t.yieldBreak();var o=e(u.current);a=s.get(o)}},function(){y.dispose(u)})})},e.prototype.groupJoin=function(t,e,n,r,o){void 0===o&&(o=b.Identity);var i=this;return new O(function(){var u,s=null;return new f.EnumeratorBase(function(){u=i.getEnumerator(),s=O.from(t).toLookup(n,b.Identity,o)},function(t){return u.moveNext()&&t.yieldReturn(r(u.current,s.get(e(u.current))))},function(){y.dispose(u)})})},e.prototype.merge=function(t){var e=this,n=e._isEndless||null;return t&&0!=t.length?new O(function(){var r,o;return new f.EnumeratorBase(function(){r=e.getEnumerator(),o=new p.Queue(t)},function(t){for(;;){for(;!r&&o.count;)r=i.from(o.dequeue());if(r&&r.moveNext())return t.yieldReturn(r.current);{if(!r)return t.yieldBreak();r.dispose(),r=null}}},function(){y.dispose(r,o)},n)},null,n):e},e.prototype.concat=function(){for(var t=[],e=0;et||!isFinite(t))throw new Error("Invalid buffer size.");s.Integer.assert(t,"size");var e,n=this;return new O(function(){var r;return new f.EnumeratorBase(function(){r=n.getEnumerator()},function(n){var i=o.initialize(t);for(e=0;t>e&&r.moveNext();)i[e++]=r.current;return i.length=e,e&&n.yieldReturn(i)},function(){y.dispose(r)},n._isEndless)},null,n._isEndless)},e.prototype.share=function(){var t=this;t.throwIfDisposed();var e;return new O(function(){return e||(e=t.getEnumerator())},function(){y.dispose(e)},t._isEndless)},e}(d.DisposableBase);e.InfiniteEnumerable=A;var O=function(t){function e(e,n,r){void 0===r&&(r=null),t.call(this,e,n),this._isEndless=r}return __extends(e,t),e.from=function(t){var n=e.fromAny(t);if(!n)throw new h.UnsupportedEnumerableException;return n},e.fromAny=function(t,n){if(void 0===n&&(n=null),u.Type.isObject(t)||u.Type.isString(t)){if(t instanceof e)return t;if(u.Type.isArrayLike(t))return new S(t);if(i.isEnumerable(t))return new e(function(){return t.getEnumerator()},null,t.isEndless)}return n},e.fromOrEmpty=function(t){return e.fromAny(t)||e.empty()},e.toArray=function(t){return t instanceof e?t.toArray():i.toArray(t)},e.choice=function(t){var e=t&&t.length;if(!e||!isFinite(e))throw new w.ArgumentOutOfRangeException("length",length);return new A(function(){return new f.EnumeratorBase(null,function(e){return e.yieldReturn(s.Integer.random.select(t))},!0)})},e.chooseFrom=function(){for(var t=[],n=0;n=t.length&&(e=0),n.yieldReturn(t[e++])},!0)})},e.cycleThrough=function(){for(var t=[],n=0;n0?isFinite(n)&&s.Integer.assert(n,"count")?new k(function(){var e=n,r=0;return new f.EnumeratorBase(function(){r=0},function(n){return r++0))return e.empty();if(!r)throw new w.ArgumentOutOfRangeException("step",r,"Must be a valid value");if(!isFinite(r))throw new w.ArgumentOutOfRangeException("step",r,"Must be a finite number.");return s.Integer.assert(n,"count"),new k(function(){var e,o=n,i=0;return new f.EnumeratorBase(function(){i=0,e=t},function(t){var u=i++i&&(e+=r),u},!1)})},e.rangeDown=function(t,n,r){return void 0===r&&(r=1),r=-1*Math.abs(r),e.range(t,n,r)},e.toInfinity=function(t,e){if(void 0===t&&(t=0),void 0===e&&(e=1),!isFinite(t))throw new w.ArgumentOutOfRangeException("start",t,"Must be a finite number.");if(!e)throw new w.ArgumentOutOfRangeException("step",e,"Must be a valid value");if(!isFinite(e))throw new w.ArgumentOutOfRangeException("step",e,"Must be a finite number.");return new A(function(){var n;return new f.EnumeratorBase(function(){n=t},function(t){var r=n;return n+=e,t.yieldReturn(r)},!0)})},e.toNegativeInfinity=function(t,n){return void 0===t&&(t=0),void 0===n&&(n=1),e.toInfinity(t,-n)},e.rangeTo=function(t,e,n){if(void 0===n&&(n=1),isNaN(e)||!isFinite(e))throw new w.ArgumentOutOfRangeException("to",e,"Must be a finite number.");if(n&&!isFinite(n))throw new w.ArgumentOutOfRangeException("step",n,"Must be a finite non-zero number.");return n=Math.abs(n),new k(function(){var r;return new f.EnumeratorBase(function(){r=t},e>t?function(t){var o=e>=r&&t.yieldReturn(r);return o&&(r+=n),o}:function(t){var o=r>=e&&t.yieldReturn(r);return o&&(r-=n),o},!1)})},e.matches=function(t,e,n){if(void 0===n&&(n=""),null===t||t===B)throw new E.ArgumentNullException("input");var r=typeof t;if(r!=u.Type.STRING)throw new Error("Cannot exec RegExp matches of type '"+r+"'.");return e instanceof RegExp&&(n+=e.ignoreCase?"i":"",n+=e.multiline?"m":"",e=e.source),-1===n.indexOf("g")&&(n+="g"),new k(function(){var r;return new f.EnumeratorBase(function(){r=new RegExp(e,n)},function(e){var n=r.exec(t);return null!==n?e.yieldReturn(n):!1})})},e.generate=function(t,n){return void 0===n&&(n=1/0),isNaN(n)||0>=n?e.empty():isFinite(n)&&s.Integer.assert(n,"count")?new k(function(){var e=n,r=0;return new f.EnumeratorBase(function(){r=0},function(n){var o=r++;return e>o&&n.yieldReturn(t(o))},!1)}):new A(function(){var e=0;return new f.EnumeratorBase(function(){e=0},function(n){return n.yieldReturn(t(e++))},!0)})},e.unfold=function(t,e,n){return void 0===n&&(n=!1),new A(function(){var r,o,i=0;return new f.EnumeratorBase(function(){i=0,r=t,o=!n},function(t){var n=i++;return o?o=!1:r=e(r,n),t.yieldReturn(r)},!0)})},e.forEach=function(t,e){i.forEach(t,e)},e.map=function(t,e){return i.map(t,e)},e.max=function(t){return t.takeUntil(function(t){return t==+(1/0)},!0).aggregate(b.Greater)},e.min=function(t){return t.takeUntil(function(t){return t==-(1/0)},!0).aggregate(b.Lesser)},e.weave=function(t){if(!t)throw new E.ArgumentNullException("enumerables");return new e(function(){var e,n,r;return new f.EnumeratorBase(function(){r=0,e=new p.Queue,n=i.from(t)},function(t){var r;if(n){for(;!r&&n.moveNext();){var o=n.current;r=x(e,o&&i.from(o))}r||(n=null)}for(;!r&&e.count;)r=x(e,e.dequeue());return r?t.yieldReturn(r.current):t.yieldBreak()},function(){y.dispose.these(e.dump()),y.dispose(n,e),n=null,e=null})})},e.prototype.doAction=function(e,n,r){return void 0===r&&(r=this.isEndless),t.prototype.doAction.call(this,e,n,r)},e.prototype.skip=function(e){return t.prototype.skip.call(this,e)},e.prototype.skipWhile=function(t){return this.throwIfDisposed(),this.doAction(function(e,n){return t(e,n)?2:1})},e.prototype.takeWhile=function(t){if(this.throwIfDisposed(),!t)throw new E.ArgumentNullException("predicate");return this.doAction(function(e,n){return t(e,n)?1:0},null,null)},e.prototype.takeUntil=function(t,e){if(this.throwIfDisposed(),!t)throw new E.ArgumentNullException("predicate");if(!e)return this.doAction(function(e,n){return t(e,n)?0:1},null,null);var n=!1;return this.doAction(function(e,r){return n?0:(n=t(e,r),1)},function(){n=!1},null)},e.prototype.forEach=function(t){var e=this;e.throwIfDisposed(),i.throwIfEndless(e.isEndless);var n=0;y.using(e.getEnumerator(),function(r){for(i.throwIfEndless(r.isEndless);e.throwIfDisposed()&&r.moveNext()&&t(r.current,n++)!==!1;);})},e.prototype.toArray=function(t){return t?this.where(t).toArray():this.copyTo([])},e.prototype.copyTo=function(t,e){if(void 0===e&&(e=0),this.throwIfDisposed(),!t)throw new E.ArgumentNullException("target");return s.Integer.assertZeroOrGreater(e),i.forEach(this,function(n,r){t[r+e]=n}),t},e.prototype.toLookup=function(t,e,n){void 0===e&&(e=b.Identity),void 0===n&&(n=b.Identity);var r=new l.Dictionary(n);return this.forEach(function(n){var o=t(n),i=e(n),u=r.getValue(o);u!==B?u.push(i):r.addByKeyValue(o,[i])}),new T(r)},e.prototype.toMap=function(t,e){var n={};return this.forEach(function(r,o){n[t(r,o)]=e(r,o)}),n},e.prototype.toDictionary=function(t,e,n){void 0===n&&(n=b.Identity);var r=new l.Dictionary(n);return this.forEach(function(n,o){return r.addByKeyValue(t(n,o),e(n,o))}),r},e.prototype.toJoinedString=function(t,e){return void 0===t&&(t=""),void 0===e&&(e=b.Identity),this.select(e).toArray().join(t)},e.prototype.takeExceptLast=function(t){void 0===t&&(t=1);var n=this;if(!(t>0))return n;if(!isFinite(t))return e.empty();s.Integer.assert(t,"count");var r=t;return new e(function(){var t,e;return new f.EnumeratorBase(function(){t=n.getEnumerator(),e=new p.Queue},function(n){for(;t.moveNext();)if(e.enqueue(t.current),e.count>r)return n.yieldReturn(e.dequeue());return!1},function(){y.dispose(t,e)})})},e.prototype.skipToLast=function(t){if(!(t>0))return e.empty();var n=this;return isFinite(t)?(s.Integer.assert(t,"count"),n.reverse().take(t).reverse()):n},e.prototype.where=function(e){return t.prototype.where.call(this,e)},e.prototype.select=function(e){return t.prototype.select.call(this,e)},e.prototype.selectMany=function(t,e){return this._selectMany(t,e)},e.prototype.choose=function(t){return void 0===t&&(t=b.Identity),this._choose(t)},e.prototype.reverse=function(){var t=this,n=!t.throwIfDisposed();return i.throwIfEndless(t._isEndless),new e(function(){var e,r=0;return new f.EnumeratorBase(function(){I(n),e=t.toArray(),r=e.length},function(t){return r&&t.yieldReturn(e[--r])},function(){e.length=0})},function(){n=!0})},e.prototype.shuffle=function(){var t=this,n=!t.throwIfDisposed();return i.throwIfEndless(t._isEndless),new e(function(){var e,r,o;return new f.EnumeratorBase(function(){I(n),e=t.toArray(),r=o=e.length},function(t){if(!o)return t.yieldBreak();var n=s.Integer.random(o),r=e[n];return e[n]=e[--o],e[o]=null,o%32==0&&(e.length=o),t.yieldReturn(r)},function(){e.length=0})},function(){n=!0})},e.prototype.count=function(t){var e=0;return this.forEach(t?function(n,r){t(n,r)&&++e}:function(){++e}),e},e.prototype.all=function(t){if(!t)throw new E.ArgumentNullException("predicate");var e=!0;return this.forEach(function(n,r){return t(n,r)?void 0:(e=!1,!1)}),e},e.prototype.every=function(t){return this.all(t)},e.prototype.any=function(e){if(!e)return t.prototype.any.call(this);var n=!1;return this.forEach(function(t,r){return n=e(t,r),!n}),n},e.prototype.some=function(t){return this.any(t)},e.prototype.contains=function(t,e){return e?this.any(function(n){return e(n)===e(t)}):this.any(function(e){return e===t})},e.prototype.indexOf=function(t,e){var r=-1;return this.forEach(e?function(o,i){return n.areEqual(e(o,i),e(t,i),!0)?(r=i,!1):void 0}:function(e,o){return n.areEqual(e,t,!0)?(r=o,!1):void 0}),r},e.prototype.lastIndexOf=function(t,e){var r=-1;return this.forEach(e?function(o,i){n.areEqual(e(o,i),e(t,i),!0)&&(r=i)}:function(e,o){n.areEqual(e,t,!0)&&(r=o)}),r},e.prototype.merge=function(e){return t.prototype.merge.call(this,e)},e.prototype.concat=function(){for(var t=[],e=0;et(n)?e:n})},e.prototype.minBy=function(t){return void 0===t&&(t=b.Identity),this.aggregate(function(e,n){return t(e)0?1:-1)}),isNaN(e)?NaN:n?n*(1/0):e},e.prototype.product=function(t){void 0===t&&(t=u.Type.numberOrNaN);var e=1,n=!1;return this.forEach(function(r,o){n=!0;var i=t(r,o);return isNaN(i)?(e=NaN,!1):0==i?(e=0,!1):void(e*=i)}),n&&isNaN(e)?NaN:e},e.prototype.quotient=function(t){void 0===t&&(t=u.Type.numberOrNaN);var e=0,n=NaN;return this.forEach(function(r,o){var i=t(r,o);if(e++,1===e)n=i;else{if(isNaN(i)||0===i||!isFinite(i))return n=NaN,!1;n/=i}}),1===e&&(n=NaN),n},e.prototype.last=function(){var t=this;t.throwIfDisposed();var e=void 0,n=!1;if(t.forEach(function(t){n=!0,e=t}),!n)throw new Error("last:No element satisfies the condition.");return e},e.prototype.lastOrDefault=function(t){void 0===t&&(t=null);var e=this;e.throwIfDisposed();var n=void 0,r=!1;return e.forEach(function(t){r=!0,n=t}),r?n:t},e.prototype.share=function(){return t.prototype.share.call(this)},e.prototype.catchError=function(e){return t.prototype.catchError.call(this,e)},e.prototype.finallyAction=function(e){return t.prototype.finallyAction.call(this,e)},e.prototype.memoize=function(){var t,n,r=this,o=!r.throwIfDisposed();return new e(function(){var e=0;return new f.EnumeratorBase(function(){I(o),n||(n=r.getEnumerator()),t||(t=[]),e=0},function(r){I(o);var i=e++;return i>=t.length?n.moveNext()?r.yieldReturn(t[i]=n.current):!1:r.yieldReturn(t[i])})},function(){o=!0,t&&(t.length=0),t=null,y.dispose(n),n=null})},e}(A);e.Enumerable=O;var k=function(t){function e(e,n){t.call(this,e,n,!1)}return __extends(e,t),e}(O);e.FiniteEnumerable=k;var S=function(t){function e(e){t.call(this,function(){return n.throwIfDisposed(),new c.ArrayEnumerator(function(){return n.throwIfDisposed("The underlying ArrayEnumerable was disposed.","ArrayEnumerator"),n._source})});var n=this;n._disposableObjectName="ArrayEnumerable",n._source=e}return __extends(e,t),e.prototype._onDispose=function(){t.prototype._onDispose.call(this),this._source=null},Object.defineProperty(e.prototype,"source",{get:function(){return this._source},enumerable:!0,configurable:!0}),e.prototype.toArray=function(){var t=this;return t.throwIfDisposed(),i.toArray(t._source)},e.prototype.asEnumerable=function(){return new e(this._source)},e.prototype.forEach=function(t){var e=this;e.throwIfDisposed(),i.forEach(e._source,t)},e.prototype.any=function(e){var n=this;n.throwIfDisposed();var r=n._source,o=r.length;return o&&(!e||t.prototype.any.call(this,e))},e.prototype.count=function(e){var n=this;n.throwIfDisposed();var r=n._source,o=r.length;return o&&(e?t.prototype.count.call(this,e):o)},e.prototype.elementAtOrDefault=function(t,e){void 0===e&&(e=null);var n=this;n.throwIfDisposed(),s.Integer.assertZeroOrGreater(t,"index");var r=n._source;return t0?new O(function(){return new c.ArrayEnumerator(function(){return e._source},t)}):e},e.prototype.takeExceptLast=function(t){void 0===t&&(t=1);var e=this;return e.take(e._source.length-t)},e.prototype.skipToLast=function(t){if(!(t>0))return O.empty();var e=this;if(!isFinite(t))return e;var n=e._source?e._source.length:0;return e.skip(n-t)},e.prototype.reverse=function(){var t=this;return new O(function(){return new c.ArrayEnumerator(function(){return t._source},t._source?t._source.length-1:0,-1)})},e.prototype.memoize=function(){return this.asEnumerable()},e.prototype.sequenceEqual=function(o,i){return void 0===i&&(i=n.areEqual),u.Type.isArrayLike(o)?r.areEqual(this.source,o,!0,i):o instanceof e?o.sequenceEqual(this.source,i):t.prototype.sequenceEqual.call(this,o,i)},e.prototype.toJoinedString=function(e,n){void 0===e&&(e=""),void 0===n&&(n=b.Identity);var r=this._source;return!n&&Array.isArray(r)?r.join(e):t.prototype.toJoinedString.call(this,e,n)},e}(k),F=function(t){function e(e,n){t.call(this,n),this._groupKey=e}return __extends(e,t),Object.defineProperty(e.prototype,"key",{get:function(){return this._groupKey},enumerable:!0,configurable:!0}),e}(S),T=function(){function t(t){this._dictionary=t}return Object.defineProperty(t.prototype,"count",{get:function(){return this._dictionary.count},enumerable:!0,configurable:!0}),t.prototype.get=function(t){return this._dictionary.getValue(t)},t.prototype.contains=function(t){return this._dictionary.containsKey(t)},t.prototype.getEnumerator=function(){var t,e=this;return new f.EnumeratorBase(function(){ +t=e._dictionary.getEnumerator()},function(e){if(!t.moveNext())return!1;var n=t.current;return e.yieldReturn(new F(n.key,n.value))},function(){y.dispose(t)})},t}(),q=function(t){function e(e,r,o,u,s){void 0===s&&(s=n.compare),t.call(this,null),this.source=e,this.keySelector=r,this.order=o,this.parent=u,this.comparer=s,i.throwIfEndless(e&&e.isEndless)}return __extends(e,t),e.prototype.createOrderedEnumerable=function(t,n){return new e(this.source,t,n,this)},e.prototype.thenBy=function(t){return this.createOrderedEnumerable(t,1)},e.prototype.thenUsing=function(t){return new e(this.source,null,1,this,t)},e.prototype.thenByDescending=function(t){return this.createOrderedEnumerable(t,-1)},e.prototype.thenUsingReversed=function(t){return new e(this.source,null,-1,this,t)},e.prototype.getEnumerator=function(){var t,e,n=this,r=0;return new f.EnumeratorBase(function(){r=0,t=O.toArray(n.source),e=N(n).generateSortedIndexes(t)},function(n){return r b ? a : b;\n };\n LinqFunctions.prototype.Lesser = function (a, b) {\n return a < b ? a : b;\n };\n return LinqFunctions;\n }(Functions_1.default));\n var Functions = new LinqFunctions();\n Object.freeze(Functions);\n function getEmptyEnumerator() {\n return Enumerator_1.empty;\n }\n var InfiniteEnumerable = (function (_super) {\n __extends(InfiniteEnumerable, _super);\n function InfiniteEnumerable(_enumeratorFactory, finalizer) {\n _super.call(this, finalizer);\n this._enumeratorFactory = _enumeratorFactory;\n this._isEndless = true;\n }\n Object.defineProperty(InfiniteEnumerable.prototype, \"isEndless\", {\n get: function () {\n return this._isEndless;\n },\n enumerable: true,\n configurable: true\n });\n InfiniteEnumerable.prototype.getEnumerator = function () {\n this.throwIfDisposed();\n return this._enumeratorFactory();\n };\n InfiniteEnumerable.prototype._onDispose = function () {\n _super.prototype._onDispose.call(this);\n this._enumeratorFactory = null;\n };\n InfiniteEnumerable.prototype.asEnumerable = function () {\n var _ = this;\n _.throwIfDisposed();\n return new InfiniteEnumerable(function () { return _.getEnumerator(); });\n };\n InfiniteEnumerable.prototype.doAction = function (action, initializer, isEndless) {\n if (isEndless === void 0) { isEndless = this.isEndless; }\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(function () {\n var enumerator;\n var index = 0;\n return new EnumeratorBase_1.default(function () {\n throwIfDisposed(disposed);\n if (initializer)\n initializer();\n index = 0;\n enumerator = _.getEnumerator();\n }, function (yielder) {\n throwIfDisposed(disposed);\n while (enumerator.moveNext()) {\n var actionResult = action(enumerator.current, index++);\n if (actionResult === false || actionResult === 0)\n return yielder.yieldBreak();\n if (actionResult !== 2)\n return yielder.yieldReturn(enumerator.current);\n }\n return false;\n }, function () {\n dispose_1.dispose(enumerator);\n }, isEndless);\n }, function () {\n disposed = true;\n }, isEndless);\n };\n InfiniteEnumerable.prototype.force = function () {\n this.throwIfDisposed();\n this.doAction(BREAK)\n .getEnumerator()\n .moveNext();\n };\n InfiniteEnumerable.prototype.skip = function (count) {\n var _ = this;\n _.throwIfDisposed();\n if (!isFinite(count))\n return Enumerable.empty();\n Integer_1.default.assert(count, \"count\");\n return this.doAction(function (element, index) {\n return index < count\n ? 2\n : 1;\n });\n };\n InfiniteEnumerable.prototype.take = function (count) {\n if (!(count > 0))\n return Enumerable.empty();\n var _ = this;\n _.throwIfDisposed();\n if (!isFinite(count))\n throw new ArgumentOutOfRangeException_1.default('count', count, 'Must be finite.');\n Integer_1.default.assert(count, \"count\");\n return _.doAction(function (element, index) { return index < count; }, null, false);\n };\n InfiniteEnumerable.prototype.elementAt = function (index) {\n var v = this.elementAtOrDefault(index, INVALID_DEFAULT);\n if (v === INVALID_DEFAULT)\n throw new ArgumentOutOfRangeException_1.default('index', index, \"is greater than or equal to the number of elements in source\");\n return v;\n };\n InfiniteEnumerable.prototype.elementAtOrDefault = function (index, defaultValue) {\n if (defaultValue === void 0) { defaultValue = null; }\n var _ = this;\n _.throwIfDisposed();\n Integer_1.default.assertZeroOrGreater(index, 'index');\n var n = index;\n return dispose_1.using(this.getEnumerator(), function (e) {\n var i = 0;\n while (e.moveNext()) {\n if (i == n)\n return e.current;\n i++;\n }\n return defaultValue;\n });\n };\n InfiniteEnumerable.prototype.first = function () {\n var v = this.firstOrDefault(INVALID_DEFAULT);\n if (v === INVALID_DEFAULT)\n throw new Error(\"first:The sequence is empty.\");\n return v;\n };\n InfiniteEnumerable.prototype.firstOrDefault = function (defaultValue) {\n if (defaultValue === void 0) { defaultValue = null; }\n var _ = this;\n _.throwIfDisposed();\n return dispose_1.using(this.getEnumerator(), function (e) { return e.moveNext() ? e.current : defaultValue; });\n };\n InfiniteEnumerable.prototype.single = function () {\n var _ = this;\n _.throwIfDisposed();\n return dispose_1.using(this.getEnumerator(), function (e) {\n if (e.moveNext()) {\n var value = e.current;\n if (!e.moveNext())\n return value;\n throw new Error(\"single:sequence contains more than one element.\");\n }\n throw new Error(\"single:The sequence is empty.\");\n });\n };\n InfiniteEnumerable.prototype.singleOrDefault = function (defaultValue) {\n if (defaultValue === void 0) { defaultValue = null; }\n var _ = this;\n _.throwIfDisposed();\n return dispose_1.using(this.getEnumerator(), function (e) {\n if (e.moveNext()) {\n var value = e.current;\n if (!e.moveNext())\n return value;\n }\n return defaultValue;\n });\n };\n InfiniteEnumerable.prototype.any = function () {\n var _ = this;\n _.throwIfDisposed();\n return dispose_1.using(this.getEnumerator(), function (e) { return e.moveNext(); });\n };\n InfiniteEnumerable.prototype.isEmpty = function () {\n return !this.any();\n };\n InfiniteEnumerable.prototype.traverseBreadthFirst = function (childrenSelector, resultSelector) {\n if (resultSelector === void 0) { resultSelector = Functions.Identity; }\n var _ = this, isEndless = _._isEndless || null;\n return new Enumerable(function () {\n var enumerator;\n var nestLevel = 0;\n var buffer, len;\n return new EnumeratorBase_1.default(function () {\n nestLevel = 0;\n buffer = [];\n len = 0;\n enumerator = _.getEnumerator();\n }, function (yielder) {\n while (true) {\n if (enumerator.moveNext()) {\n buffer[len++] = enumerator.current;\n return yielder.yieldReturn(resultSelector(enumerator.current, nestLevel));\n }\n if (!len)\n return yielder.yieldBreak();\n var next = Enumerable\n .from(buffer)\n .selectMany(childrenSelector);\n if (!next.any()) {\n return yielder.yieldBreak();\n }\n else {\n nestLevel++;\n buffer = [];\n len = 0;\n enumerator.dispose();\n enumerator = next.getEnumerator();\n }\n }\n }, function () {\n dispose_1.dispose(enumerator);\n buffer.length = 0;\n }, isEndless);\n }, null, isEndless);\n };\n InfiniteEnumerable.prototype.traverseDepthFirst = function (childrenSelector, resultSelector) {\n if (resultSelector === void 0) { resultSelector = Functions.Identity; }\n var _ = this, isEndless = _._isEndless || null;\n return new Enumerable(function () {\n var enumeratorStack = [];\n var enumerator;\n var len;\n return new EnumeratorBase_1.default(function () {\n enumerator = _.getEnumerator();\n len = 0;\n }, function (yielder) {\n while (true) {\n if (enumerator.moveNext()) {\n var value = resultSelector(enumerator.current, len);\n enumeratorStack[len++] = enumerator;\n var e = Enumerable.fromAny(childrenSelector(enumerator.current));\n enumerator = e ? e.getEnumerator() : Enumerator_1.empty;\n return yielder.yieldReturn(value);\n }\n if (len == 0)\n return false;\n enumerator.dispose();\n enumerator = enumeratorStack[--len];\n enumeratorStack.length = len;\n }\n }, function () {\n try {\n dispose_1.dispose(enumerator);\n }\n finally {\n dispose_1.dispose.these(enumeratorStack);\n }\n }, isEndless);\n }, null, isEndless);\n };\n InfiniteEnumerable.prototype.flatten = function () {\n var _ = this, isEndless = _._isEndless || null;\n return new Enumerable(function () {\n var enumerator;\n var middleEnumerator = null;\n return new EnumeratorBase_1.default(function () {\n enumerator = _.getEnumerator();\n }, function (yielder) {\n while (true) {\n if (middleEnumerator) {\n if (middleEnumerator.moveNext()) {\n return yielder.yieldReturn(middleEnumerator.current);\n }\n else {\n middleEnumerator.dispose();\n middleEnumerator = null;\n }\n }\n if (enumerator.moveNext()) {\n var c = enumerator.current;\n var e = !Types_1.default.isString(c) && Enumerable.fromAny(c);\n if (e) {\n middleEnumerator\n = e\n .selectMany(Functions.Identity)\n .flatten()\n .getEnumerator();\n continue;\n }\n else {\n return yielder.yieldReturn(c);\n }\n }\n return yielder.yieldBreak();\n }\n }, function () {\n dispose_1.dispose(enumerator, middleEnumerator);\n }, isEndless);\n }, null, isEndless);\n };\n InfiniteEnumerable.prototype.pairwise = function (selector) {\n var _ = this;\n return new Enumerable(function () {\n var enumerator;\n return new EnumeratorBase_1.default(function () {\n enumerator = _.getEnumerator();\n enumerator.moveNext();\n }, function (yielder) {\n var prev = enumerator.current;\n return enumerator.moveNext()\n && yielder.yieldReturn(selector(prev, enumerator.current));\n }, function () {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, null, _._isEndless);\n };\n InfiniteEnumerable.prototype.scan = function (func, seed) {\n var isUseSeed = seed !== VOID0;\n var _ = this;\n return new Enumerable(function () {\n var enumerator;\n var value;\n var isFirst;\n return new EnumeratorBase_1.default(function () {\n enumerator = _.getEnumerator();\n isFirst = true;\n }, function (yielder) {\n if (isFirst) {\n isFirst = false;\n return isUseSeed\n ? yielder.yieldReturn(value = seed)\n : enumerator.moveNext() && yielder.yieldReturn(value\n = enumerator.current);\n }\n return (enumerator.moveNext())\n ? yielder.yieldReturn(value = func(value, enumerator.current))\n : false;\n }, function () {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, null, _._isEndless);\n };\n InfiniteEnumerable.prototype.select = function (selector) {\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(function () {\n var enumerator;\n var index = 0;\n return new EnumeratorBase_1.default(function () {\n throwIfDisposed(disposed);\n index = 0;\n enumerator = _.getEnumerator();\n }, function (yielder) {\n throwIfDisposed(disposed);\n return enumerator.moveNext()\n ? yielder.yieldReturn(selector(enumerator.current, index++))\n : yielder.yieldBreak();\n }, function () {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, function () {\n disposed = true;\n }, _._isEndless);\n };\n InfiniteEnumerable.prototype._selectMany = function (collectionSelector, resultSelector) {\n var _ = this, isEndless = _._isEndless || null;\n if (!resultSelector)\n resultSelector = function (a, b) { return b; };\n return new Enumerable(function () {\n var enumerator;\n var middleEnumerator;\n var index = 0;\n return new EnumeratorBase_1.default(function () {\n enumerator = _.getEnumerator();\n middleEnumerator = undefined;\n index = 0;\n }, function (yielder) {\n if (middleEnumerator === VOID0 && !enumerator.moveNext())\n return false;\n do {\n if (!middleEnumerator) {\n var middleSeq = collectionSelector(enumerator.current, index++);\n if (!middleSeq)\n continue;\n middleEnumerator = Enumerator_1.from(middleSeq);\n }\n if (middleEnumerator.moveNext())\n return yielder.yieldReturn(resultSelector(enumerator.current, middleEnumerator.current));\n middleEnumerator.dispose();\n middleEnumerator = null;\n } while (enumerator.moveNext());\n return false;\n }, function () {\n dispose_1.dispose(enumerator, middleEnumerator);\n enumerator = null;\n middleEnumerator = null;\n }, isEndless);\n }, null, isEndless);\n };\n InfiniteEnumerable.prototype.selectMany = function (collectionSelector, resultSelector) {\n return this._selectMany(collectionSelector, resultSelector);\n };\n InfiniteEnumerable.prototype._choose = function (selector) {\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(function () {\n var enumerator;\n var index = 0;\n return new EnumeratorBase_1.default(function () {\n throwIfDisposed(disposed);\n index = 0;\n enumerator = _.getEnumerator();\n }, function (yielder) {\n throwIfDisposed(disposed);\n while (enumerator.moveNext()) {\n var result = selector(enumerator.current, index++);\n if (result !== null && result !== VOID0)\n return yielder.yieldReturn(result);\n }\n return false;\n }, function () {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, function () {\n disposed = true;\n }, _._isEndless);\n };\n InfiniteEnumerable.prototype.choose = function (selector) {\n if (selector === void 0) { selector = Functions.Identity; }\n return this._choose(selector);\n };\n InfiniteEnumerable.prototype.where = function (predicate) {\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(function () {\n var enumerator;\n var index = 0;\n return new EnumeratorBase_1.default(function () {\n throwIfDisposed(disposed);\n index = 0;\n enumerator = _.getEnumerator();\n }, function (yielder) {\n throwIfDisposed(disposed);\n while (enumerator.moveNext()) {\n if (predicate(enumerator.current, index++))\n return yielder.yieldReturn(enumerator.current);\n }\n return false;\n }, function () {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, function () {\n disposed = true;\n }, _._isEndless);\n };\n InfiniteEnumerable.prototype.ofType = function (type) {\n var typeName;\n switch (type) {\n case Number:\n typeName = Types_1.default.NUMBER;\n break;\n case String:\n typeName = Types_1.default.STRING;\n break;\n case Boolean:\n typeName = Types_1.default.BOOLEAN;\n break;\n case Function:\n typeName = Types_1.default.FUNCTION;\n break;\n default:\n return this\n .where(function (x) { return x instanceof type; });\n }\n return this\n .choose()\n .where(function (x) { return (typeof x) === typeName; });\n };\n InfiniteEnumerable.prototype.except = function (second, compareSelector) {\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(function () {\n var enumerator;\n var keys;\n return new EnumeratorBase_1.default(function () {\n throwIfDisposed(disposed);\n enumerator = _.getEnumerator();\n keys = new Dictionary_1.default(compareSelector);\n if (second)\n Enumerator_1.forEach(second, function (key) { return keys.addByKeyValue(key, true); });\n }, function (yielder) {\n throwIfDisposed(disposed);\n while (enumerator.moveNext()) {\n var current = enumerator.current;\n if (!keys.containsKey(current)) {\n keys.addByKeyValue(current, true);\n return yielder.yieldReturn(current);\n }\n }\n return false;\n }, function () {\n dispose_1.dispose(enumerator);\n keys.clear();\n }, _._isEndless);\n }, function () {\n disposed = true;\n }, _._isEndless);\n };\n InfiniteEnumerable.prototype.distinct = function (compareSelector) {\n return this.except(null, compareSelector);\n };\n InfiniteEnumerable.prototype.distinctUntilChanged = function (compareSelector) {\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(function () {\n var enumerator;\n var compareKey;\n var initial = true;\n return new EnumeratorBase_1.default(function () {\n throwIfDisposed(disposed);\n enumerator = _.getEnumerator();\n }, function (yielder) {\n throwIfDisposed(disposed);\n while (enumerator.moveNext()) {\n var key = compareSelector(enumerator.current);\n if (initial) {\n initial = false;\n }\n else if (Values.areEqual(compareKey, key)) {\n continue;\n }\n compareKey = key;\n return yielder.yieldReturn(enumerator.current);\n }\n return false;\n }, function () {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, function () {\n disposed = true;\n }, _._isEndless);\n };\n InfiniteEnumerable.prototype.defaultIfEmpty = function (defaultValue) {\n if (defaultValue === void 0) { defaultValue = null; }\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(function () {\n var enumerator;\n var isFirst;\n return new EnumeratorBase_1.default(function () {\n isFirst = true;\n throwIfDisposed(disposed);\n enumerator = _.getEnumerator();\n }, function (yielder) {\n throwIfDisposed(disposed);\n if (enumerator.moveNext()) {\n isFirst = false;\n return yielder.yieldReturn(enumerator.current);\n }\n else if (isFirst) {\n isFirst = false;\n return yielder.yieldReturn(defaultValue);\n }\n return false;\n }, function () {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, null, _._isEndless);\n };\n InfiniteEnumerable.prototype.zip = function (second, resultSelector) {\n var _ = this;\n _.throwIfDisposed();\n return new Enumerable(function () {\n var firstEnumerator;\n var secondEnumerator;\n var index = 0;\n return new EnumeratorBase_1.default(function () {\n index = 0;\n firstEnumerator = _.getEnumerator();\n secondEnumerator = Enumerator_1.from(second);\n }, function (yielder) { return firstEnumerator.moveNext()\n && secondEnumerator.moveNext()\n && yielder.yieldReturn(resultSelector(firstEnumerator.current, secondEnumerator.current, index++)); }, function () {\n dispose_1.dispose(firstEnumerator, secondEnumerator);\n });\n });\n };\n InfiniteEnumerable.prototype.zipMultiple = function (second, resultSelector) {\n var _ = this;\n _.throwIfDisposed();\n if (!second.length)\n return Enumerable.empty();\n return new Enumerable(function () {\n var secondTemp;\n var firstEnumerator;\n var secondEnumerator;\n var index = 0;\n return new EnumeratorBase_1.default(function () {\n secondTemp = new Queue_1.default(second);\n index = 0;\n firstEnumerator = _.getEnumerator();\n secondEnumerator = null;\n }, function (yielder) {\n if (firstEnumerator.moveNext()) {\n while (true) {\n while (!secondEnumerator) {\n if (secondTemp.count) {\n var next = secondTemp.dequeue();\n if (next)\n secondEnumerator = Enumerator_1.from(next);\n }\n else\n return yielder.yieldBreak();\n }\n if (secondEnumerator.moveNext())\n return yielder.yieldReturn(resultSelector(firstEnumerator.current, secondEnumerator.current, index++));\n secondEnumerator.dispose();\n secondEnumerator = null;\n }\n }\n return yielder.yieldBreak();\n }, function () {\n dispose_1.dispose(firstEnumerator, secondTemp);\n });\n });\n };\n InfiniteEnumerable.prototype.join = function (inner, outerKeySelector, innerKeySelector, resultSelector, compareSelector) {\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\n var _ = this;\n return new Enumerable(function () {\n var outerEnumerator;\n var lookup;\n var innerElements = null;\n var innerCount = 0;\n return new EnumeratorBase_1.default(function () {\n outerEnumerator = _.getEnumerator();\n lookup = Enumerable.from(inner)\n .toLookup(innerKeySelector, Functions.Identity, compareSelector);\n }, function (yielder) {\n while (true) {\n if (innerElements != null) {\n var innerElement = innerElements[innerCount++];\n if (innerElement !== VOID0)\n return yielder.yieldReturn(resultSelector(outerEnumerator.current, innerElement));\n innerElement = null;\n innerCount = 0;\n }\n if (outerEnumerator.moveNext()) {\n var key = outerKeySelector(outerEnumerator.current);\n innerElements = lookup.get(key);\n }\n else {\n return yielder.yieldBreak();\n }\n }\n }, function () {\n dispose_1.dispose(outerEnumerator);\n });\n });\n };\n InfiniteEnumerable.prototype.groupJoin = function (inner, outerKeySelector, innerKeySelector, resultSelector, compareSelector) {\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\n var _ = this;\n return new Enumerable(function () {\n var enumerator;\n var lookup = null;\n return new EnumeratorBase_1.default(function () {\n enumerator = _.getEnumerator();\n lookup = Enumerable.from(inner)\n .toLookup(innerKeySelector, Functions.Identity, compareSelector);\n }, function (yielder) {\n return enumerator.moveNext()\n && yielder.yieldReturn(resultSelector(enumerator.current, lookup.get(outerKeySelector(enumerator.current))));\n }, function () {\n dispose_1.dispose(enumerator);\n });\n });\n };\n InfiniteEnumerable.prototype.merge = function (enumerables) {\n var _ = this, isEndless = _._isEndless || null;\n if (!enumerables || enumerables.length == 0)\n return _;\n return new Enumerable(function () {\n var enumerator;\n var queue;\n return new EnumeratorBase_1.default(function () {\n enumerator = _.getEnumerator();\n queue = new Queue_1.default(enumerables);\n }, function (yielder) {\n while (true) {\n while (!enumerator && queue.count) {\n enumerator = Enumerator_1.from(queue.dequeue());\n }\n if (enumerator && enumerator.moveNext())\n return yielder.yieldReturn(enumerator.current);\n if (enumerator) {\n enumerator.dispose();\n enumerator = null;\n continue;\n }\n return yielder.yieldBreak();\n }\n }, function () {\n dispose_1.dispose(enumerator, queue);\n }, isEndless);\n }, null, isEndless);\n };\n InfiniteEnumerable.prototype.concat = function () {\n var enumerables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n enumerables[_i - 0] = arguments[_i];\n }\n return this.merge(enumerables);\n };\n InfiniteEnumerable.prototype.union = function (second, compareSelector) {\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\n var _ = this, isEndless = _._isEndless || null;\n return new Enumerable(function () {\n var firstEnumerator;\n var secondEnumerator;\n var keys;\n return new EnumeratorBase_1.default(function () {\n firstEnumerator = _.getEnumerator();\n keys = new Dictionary_1.default(compareSelector);\n }, function (yielder) {\n var current;\n if (secondEnumerator === VOID0) {\n while (firstEnumerator.moveNext()) {\n current = firstEnumerator.current;\n if (!keys.containsKey(current)) {\n keys.addByKeyValue(current, null);\n return yielder.yieldReturn(current);\n }\n }\n secondEnumerator = Enumerator_1.from(second);\n }\n while (secondEnumerator.moveNext()) {\n current = secondEnumerator.current;\n if (!keys.containsKey(current)) {\n keys.addByKeyValue(current, null);\n return yielder.yieldReturn(current);\n }\n }\n return false;\n }, function () {\n dispose_1.dispose(firstEnumerator, secondEnumerator);\n }, isEndless);\n }, null, isEndless);\n };\n InfiniteEnumerable.prototype.insertAt = function (index, other) {\n Integer_1.default.assertZeroOrGreater(index, 'index');\n var n = index;\n var _ = this, isEndless = _._isEndless || null;\n _.throwIfDisposed();\n return new Enumerable(function () {\n var firstEnumerator;\n var secondEnumerator;\n var count = 0;\n var isEnumerated = false;\n return new EnumeratorBase_1.default(function () {\n count = 0;\n firstEnumerator = _.getEnumerator();\n secondEnumerator = Enumerator_1.from(other);\n isEnumerated = false;\n }, function (yielder) {\n if (count == n) {\n isEnumerated = true;\n if (secondEnumerator.moveNext())\n return yielder.yieldReturn(secondEnumerator.current);\n }\n if (firstEnumerator.moveNext()) {\n count++;\n return yielder.yieldReturn(firstEnumerator.current);\n }\n return !isEnumerated\n && secondEnumerator.moveNext()\n && yielder.yieldReturn(secondEnumerator.current);\n }, function () {\n dispose_1.dispose(firstEnumerator, secondEnumerator);\n }, isEndless);\n }, null, isEndless);\n };\n InfiniteEnumerable.prototype.alternateMultiple = function (sequence) {\n var _ = this;\n return new Enumerable(function () {\n var buffer, mode, enumerator, alternateEnumerator;\n return new EnumeratorBase_1.default(function () {\n alternateEnumerator = new ArrayEnumerator_1.default(Enumerable.toArray(sequence));\n enumerator = _.getEnumerator();\n var hasAtLeastOne = enumerator.moveNext();\n mode = hasAtLeastOne\n ? 1\n : 0;\n if (hasAtLeastOne)\n buffer = enumerator.current;\n }, function (yielder) {\n switch (mode) {\n case 0:\n return yielder.yieldBreak();\n case 2:\n if (alternateEnumerator.moveNext())\n return yielder.yieldReturn(alternateEnumerator.current);\n alternateEnumerator.reset();\n mode = 1;\n break;\n }\n var latest = buffer;\n var another = enumerator.moveNext();\n mode = another\n ? 2\n : 0;\n if (another)\n buffer = enumerator.current;\n return yielder.yieldReturn(latest);\n }, function () {\n dispose_1.dispose(enumerator, alternateEnumerator);\n }, _._isEndless);\n }, null, _._isEndless);\n };\n InfiniteEnumerable.prototype.alternateSingle = function (value) {\n return this.alternateMultiple(Enumerable.make(value));\n };\n InfiniteEnumerable.prototype.alternate = function () {\n var sequence = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n sequence[_i - 0] = arguments[_i];\n }\n return this.alternateMultiple(sequence);\n };\n InfiniteEnumerable.prototype.catchError = function (handler) {\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(function () {\n var enumerator;\n return new EnumeratorBase_1.default(function () {\n try {\n throwIfDisposed(disposed);\n enumerator = _.getEnumerator();\n }\n catch (e) {\n }\n }, function (yielder) {\n try {\n throwIfDisposed(disposed);\n if (enumerator.moveNext())\n return yielder.yieldReturn(enumerator.current);\n }\n catch (e) {\n handler(e);\n }\n return false;\n }, function () {\n dispose_1.dispose(enumerator);\n });\n });\n };\n InfiniteEnumerable.prototype.finallyAction = function (action) {\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(function () {\n var enumerator;\n return new EnumeratorBase_1.default(function () {\n throwIfDisposed(disposed);\n enumerator = _.getEnumerator();\n }, function (yielder) {\n throwIfDisposed(disposed);\n return (enumerator.moveNext())\n ? yielder.yieldReturn(enumerator.current)\n : false;\n }, function () {\n try {\n dispose_1.dispose(enumerator);\n }\n finally {\n action();\n }\n });\n });\n };\n InfiniteEnumerable.prototype.buffer = function (size) {\n if (size < 1 || !isFinite(size))\n throw new Error(\"Invalid buffer size.\");\n Integer_1.default.assert(size, \"size\");\n var _ = this, len;\n return new Enumerable(function () {\n var enumerator;\n return new EnumeratorBase_1.default(function () {\n enumerator = _.getEnumerator();\n }, function (yielder) {\n var array = ArrayUtility.initialize(size);\n len = 0;\n while (len < size && enumerator.moveNext()) {\n array[len++] = enumerator.current;\n }\n array.length = len;\n return len && yielder.yieldReturn(array);\n }, function () {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, null, _._isEndless);\n };\n InfiniteEnumerable.prototype.share = function () {\n var _ = this;\n _.throwIfDisposed();\n var sharedEnumerator;\n return new Enumerable(function () {\n return sharedEnumerator || (sharedEnumerator = _.getEnumerator());\n }, function () {\n dispose_1.dispose(sharedEnumerator);\n }, _._isEndless);\n };\n return InfiniteEnumerable;\n }(DisposableBase_1.default));\n exports.InfiniteEnumerable = InfiniteEnumerable;\n var Enumerable = (function (_super) {\n __extends(Enumerable, _super);\n function Enumerable(enumeratorFactory, finalizer, isEndless) {\n if (isEndless === void 0) { isEndless = null; }\n _super.call(this, enumeratorFactory, finalizer);\n this._isEndless = isEndless;\n }\n Enumerable.from = function (source) {\n var e = Enumerable.fromAny(source);\n if (!e)\n throw new UnsupportedEnumerableException_1.default();\n return e;\n };\n Enumerable.fromAny = function (source, defaultEnumerable) {\n if (defaultEnumerable === void 0) { defaultEnumerable = null; }\n if (Types_1.default.isObject(source) || Types_1.default.isString(source)) {\n if (source instanceof Enumerable)\n return source;\n if (Types_1.default.isArrayLike(source))\n return new ArrayEnumerable(source);\n if (Enumerator_1.isEnumerable(source))\n return new Enumerable(function () { return source.getEnumerator(); }, null, source.isEndless);\n }\n return defaultEnumerable;\n };\n Enumerable.fromOrEmpty = function (source) {\n return Enumerable.fromAny(source) || Enumerable.empty();\n };\n Enumerable.toArray = function (source) {\n if (source instanceof Enumerable)\n return source.toArray();\n return Enumerator_1.toArray(source);\n };\n Enumerable.choice = function (values) {\n var len = values && values.length;\n if (!len || !isFinite(len))\n throw new ArgumentOutOfRangeException_1.default('length', length);\n return new InfiniteEnumerable(function () { return new EnumeratorBase_1.default(null, function (yielder) {\n return yielder.yieldReturn(Integer_1.default.random.select(values));\n }, true); });\n };\n Enumerable.chooseFrom = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i - 0] = arguments[_i];\n }\n return Enumerable.choice(args);\n };\n Enumerable.cycle = function (values) {\n var len = values && values.length;\n if (!len || !isFinite(len))\n throw new ArgumentOutOfRangeException_1.default('length', length);\n return new InfiniteEnumerable(function () {\n var index = 0;\n return new EnumeratorBase_1.default(function () {\n index = 0;\n }, function (yielder) {\n if (index >= values.length)\n index = 0;\n return yielder.yieldReturn(values[index++]);\n }, true);\n });\n };\n Enumerable.cycleThrough = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i - 0] = arguments[_i];\n }\n return Enumerable.cycle(args);\n };\n Enumerable.empty = function () {\n return new FiniteEnumerable(getEmptyEnumerator);\n };\n Enumerable.repeat = function (element, count) {\n if (count === void 0) { count = Infinity; }\n if (!(count > 0))\n return Enumerable.empty();\n return isFinite(count) && Integer_1.default.assert(count, \"count\")\n ? new FiniteEnumerable(function () {\n var c = count;\n var index = 0;\n return new EnumeratorBase_1.default(function () { index = 0; }, function (yielder) { return (index++ < c) && yielder.yieldReturn(element); }, null, false);\n })\n : new Enumerable(function () {\n return new EnumeratorBase_1.default(null, function (yielder) { return yielder.yieldReturn(element); }, true);\n });\n };\n Enumerable.repeatWithFinalize = function (initializer, finalizer) {\n return new InfiniteEnumerable(function () {\n var element;\n return new EnumeratorBase_1.default(function () {\n element = initializer();\n }, function (yielder) { return yielder.yieldReturn(element); }, function () {\n finalizer(element);\n }, true);\n });\n };\n Enumerable.make = function (element) {\n return Enumerable.repeat(element, 1);\n };\n Enumerable.range = function (start, count, step) {\n if (step === void 0) { step = 1; }\n if (!isFinite(start))\n throw new ArgumentOutOfRangeException_1.default(\"start\", start, \"Must be a finite number.\");\n if (!(count > 0))\n return Enumerable.empty();\n if (!step)\n throw new ArgumentOutOfRangeException_1.default(\"step\", step, \"Must be a valid value\");\n if (!isFinite(step))\n throw new ArgumentOutOfRangeException_1.default(\"step\", step, \"Must be a finite number.\");\n Integer_1.default.assert(count, \"count\");\n return new FiniteEnumerable(function () {\n var value;\n var c = count;\n var index = 0;\n return new EnumeratorBase_1.default(function () {\n index = 0;\n value = start;\n }, function (yielder) {\n var result = index++ < c\n && yielder.yieldReturn(value);\n if (result && index < count)\n value += step;\n return result;\n }, false);\n });\n };\n Enumerable.rangeDown = function (start, count, step) {\n if (step === void 0) { step = 1; }\n step = Math.abs(step) * -1;\n return Enumerable.range(start, count, step);\n };\n Enumerable.toInfinity = function (start, step) {\n if (start === void 0) { start = 0; }\n if (step === void 0) { step = 1; }\n if (!isFinite(start))\n throw new ArgumentOutOfRangeException_1.default(\"start\", start, \"Must be a finite number.\");\n if (!step)\n throw new ArgumentOutOfRangeException_1.default(\"step\", step, \"Must be a valid value\");\n if (!isFinite(step))\n throw new ArgumentOutOfRangeException_1.default(\"step\", step, \"Must be a finite number.\");\n return new InfiniteEnumerable(function () {\n var value;\n return new EnumeratorBase_1.default(function () {\n value = start;\n }, function (yielder) {\n var current = value;\n value += step;\n return yielder.yieldReturn(current);\n }, true);\n });\n };\n Enumerable.toNegativeInfinity = function (start, step) {\n if (start === void 0) { start = 0; }\n if (step === void 0) { step = 1; }\n return Enumerable.toInfinity(start, -step);\n };\n Enumerable.rangeTo = function (start, to, step) {\n if (step === void 0) { step = 1; }\n if (isNaN(to) || !isFinite(to))\n throw new ArgumentOutOfRangeException_1.default(\"to\", to, \"Must be a finite number.\");\n if (step && !isFinite(step))\n throw new ArgumentOutOfRangeException_1.default(\"step\", step, \"Must be a finite non-zero number.\");\n step = Math.abs(step);\n return new FiniteEnumerable(function () {\n var value;\n return new EnumeratorBase_1.default(function () { value = start; }, start < to\n ?\n function (yielder) {\n var result = value <= to && yielder.yieldReturn(value);\n if (result)\n value += step;\n return result;\n }\n :\n function (yielder) {\n var result = value >= to && yielder.yieldReturn(value);\n if (result)\n value -= step;\n return result;\n }, false);\n });\n };\n Enumerable.matches = function (input, pattern, flags) {\n if (flags === void 0) { flags = \"\"; }\n if (input === null || input === VOID0)\n throw new ArgumentNullException_1.default(\"input\");\n var type = typeof input;\n if (type != Types_1.default.STRING)\n throw new Error(\"Cannot exec RegExp matches of type '\" + type + \"'.\");\n if (pattern instanceof RegExp) {\n flags += (pattern.ignoreCase) ? \"i\" : \"\";\n flags += (pattern.multiline) ? \"m\" : \"\";\n pattern = pattern.source;\n }\n if (flags.indexOf(\"g\") === -1)\n flags += \"g\";\n return new FiniteEnumerable(function () {\n var regex;\n return new EnumeratorBase_1.default(function () {\n regex = new RegExp(pattern, flags);\n }, function (yielder) {\n var match = regex.exec(input);\n return (match !== null) ? yielder.yieldReturn(match) : false;\n });\n });\n };\n Enumerable.generate = function (factory, count) {\n if (count === void 0) { count = Infinity; }\n if (isNaN(count) || count <= 0)\n return Enumerable.empty();\n return isFinite(count) && Integer_1.default.assert(count, \"count\")\n ?\n new FiniteEnumerable(function () {\n var c = count;\n var index = 0;\n return new EnumeratorBase_1.default(function () {\n index = 0;\n }, function (yielder) {\n var current = index++;\n return current < c && yielder.yieldReturn(factory(current));\n }, false);\n })\n :\n new InfiniteEnumerable(function () {\n var index = 0;\n return new EnumeratorBase_1.default(function () {\n index = 0;\n }, function (yielder) { return yielder.yieldReturn(factory(index++)); }, true);\n });\n };\n Enumerable.unfold = function (seed, valueFactory, skipSeed) {\n if (skipSeed === void 0) { skipSeed = false; }\n return new InfiniteEnumerable(function () {\n var index = 0;\n var value;\n var isFirst;\n return new EnumeratorBase_1.default(function () {\n index = 0;\n value = seed;\n isFirst = !skipSeed;\n }, function (yielder) {\n var i = index++;\n if (isFirst)\n isFirst = false;\n else\n value = valueFactory(value, i);\n return yielder.yieldReturn(value);\n }, true);\n });\n };\n Enumerable.forEach = function (enumerable, action) {\n Enumerator_1.forEach(enumerable, action);\n };\n Enumerable.map = function (enumerable, selector) {\n return Enumerator_1.map(enumerable, selector);\n };\n Enumerable.max = function (values) {\n return values\n .takeUntil(function (v) { return v == +Infinity; }, true)\n .aggregate(Functions.Greater);\n };\n Enumerable.min = function (values) {\n return values\n .takeUntil(function (v) { return v == -Infinity; }, true)\n .aggregate(Functions.Lesser);\n };\n Enumerable.weave = function (enumerables) {\n if (!enumerables)\n throw new ArgumentNullException_1.default('enumerables');\n return new Enumerable(function () {\n var queue;\n var mainEnumerator;\n var index;\n return new EnumeratorBase_1.default(function () {\n index = 0;\n queue = new Queue_1.default();\n mainEnumerator = Enumerator_1.from(enumerables);\n }, function (yielder) {\n var e;\n if (mainEnumerator) {\n while (!e && mainEnumerator.moveNext()) {\n var c = mainEnumerator.current;\n e = nextEnumerator(queue, c && Enumerator_1.from(c));\n }\n if (!e)\n mainEnumerator = null;\n }\n while (!e && queue.count) {\n e = nextEnumerator(queue, queue.dequeue());\n }\n return e\n ? yielder.yieldReturn(e.current)\n : yielder.yieldBreak();\n }, function () {\n dispose_1.dispose.these(queue.dump());\n dispose_1.dispose(mainEnumerator, queue);\n mainEnumerator = null;\n queue = null;\n });\n });\n };\n Enumerable.prototype.doAction = function (action, initializer, isEndless) {\n if (isEndless === void 0) { isEndless = this.isEndless; }\n return _super.prototype.doAction.call(this, action, initializer, isEndless);\n };\n Enumerable.prototype.skip = function (count) {\n return _super.prototype.skip.call(this, count);\n };\n Enumerable.prototype.skipWhile = function (predicate) {\n this.throwIfDisposed();\n return this.doAction(function (element, index) {\n return predicate(element, index)\n ? 2\n : 1;\n });\n };\n Enumerable.prototype.takeWhile = function (predicate) {\n this.throwIfDisposed();\n if (!predicate)\n throw new ArgumentNullException_1.default('predicate');\n return this.doAction(function (element, index) {\n return predicate(element, index)\n ? 1\n : 0;\n }, null, null);\n };\n Enumerable.prototype.takeUntil = function (predicate, includeUntilValue) {\n this.throwIfDisposed();\n if (!predicate)\n throw new ArgumentNullException_1.default('predicate');\n if (!includeUntilValue)\n return this.doAction(function (element, index) {\n return predicate(element, index)\n ? 0\n : 1;\n }, null, null);\n var found = false;\n return this.doAction(function (element, index) {\n if (found)\n return 0;\n found = predicate(element, index);\n return 1;\n }, function () {\n found = false;\n }, null);\n };\n Enumerable.prototype.forEach = function (action) {\n var _ = this;\n _.throwIfDisposed();\n Enumerator_1.throwIfEndless(_.isEndless);\n var index = 0;\n dispose_1.using(_.getEnumerator(), function (e) {\n Enumerator_1.throwIfEndless(e.isEndless);\n while (_.throwIfDisposed() && e.moveNext()) {\n if (action(e.current, index++) === false)\n break;\n }\n });\n };\n Enumerable.prototype.toArray = function (predicate) {\n return predicate\n ? this.where(predicate).toArray()\n : this.copyTo([]);\n };\n Enumerable.prototype.copyTo = function (target, index) {\n if (index === void 0) { index = 0; }\n this.throwIfDisposed();\n if (!target)\n throw new ArgumentNullException_1.default(\"target\");\n Integer_1.default.assertZeroOrGreater(index);\n Enumerator_1.forEach(this, function (x, i) {\n target[i + index] = x;\n });\n return target;\n };\n Enumerable.prototype.toLookup = function (keySelector, elementSelector, compareSelector) {\n if (elementSelector === void 0) { elementSelector = Functions.Identity; }\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\n var dict = new Dictionary_1.default(compareSelector);\n this.forEach(function (x) {\n var key = keySelector(x);\n var element = elementSelector(x);\n var array = dict.getValue(key);\n if (array !== VOID0)\n array.push(element);\n else\n dict.addByKeyValue(key, [element]);\n });\n return new Lookup(dict);\n };\n Enumerable.prototype.toMap = function (keySelector, elementSelector) {\n var obj = {};\n this.forEach(function (x, i) {\n obj[keySelector(x, i)] = elementSelector(x, i);\n });\n return obj;\n };\n Enumerable.prototype.toDictionary = function (keySelector, elementSelector, compareSelector) {\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\n var dict = new Dictionary_1.default(compareSelector);\n this.forEach(function (x, i) { return dict.addByKeyValue(keySelector(x, i), elementSelector(x, i)); });\n return dict;\n };\n Enumerable.prototype.toJoinedString = function (separator, selector) {\n if (separator === void 0) { separator = \"\"; }\n if (selector === void 0) { selector = Functions.Identity; }\n return this.select(selector).toArray().join(separator);\n };\n Enumerable.prototype.takeExceptLast = function (count) {\n if (count === void 0) { count = 1; }\n var _ = this;\n if (!(count > 0))\n return _;\n if (!isFinite(count))\n return Enumerable.empty();\n Integer_1.default.assert(count, \"count\");\n var c = count;\n return new Enumerable(function () {\n var enumerator;\n var q;\n return new EnumeratorBase_1.default(function () {\n enumerator = _.getEnumerator();\n q = new Queue_1.default();\n }, function (yielder) {\n while (enumerator.moveNext()) {\n q.enqueue(enumerator.current);\n if (q.count > c)\n return yielder.yieldReturn(q.dequeue());\n }\n return false;\n }, function () {\n dispose_1.dispose(enumerator, q);\n });\n });\n };\n Enumerable.prototype.skipToLast = function (count) {\n if (!(count > 0))\n return Enumerable.empty();\n var _ = this;\n if (!isFinite(count))\n return _;\n Integer_1.default.assert(count, \"count\");\n return _.reverse()\n .take(count)\n .reverse();\n };\n Enumerable.prototype.where = function (predicate) {\n return _super.prototype.where.call(this, predicate);\n };\n Enumerable.prototype.select = function (selector) {\n return _super.prototype.select.call(this, selector);\n };\n Enumerable.prototype.selectMany = function (collectionSelector, resultSelector) {\n return this._selectMany(collectionSelector, resultSelector);\n };\n Enumerable.prototype.choose = function (selector) {\n if (selector === void 0) { selector = Functions.Identity; }\n return this._choose(selector);\n };\n Enumerable.prototype.reverse = function () {\n var _ = this, disposed = !_.throwIfDisposed();\n Enumerator_1.throwIfEndless(_._isEndless);\n return new Enumerable(function () {\n var buffer;\n var index = 0;\n return new EnumeratorBase_1.default(function () {\n throwIfDisposed(disposed);\n buffer = _.toArray();\n index = buffer.length;\n }, function (yielder) { return index && yielder.yieldReturn(buffer[--index]); }, function () {\n buffer.length = 0;\n });\n }, function () {\n disposed = true;\n });\n };\n Enumerable.prototype.shuffle = function () {\n var _ = this, disposed = !_.throwIfDisposed();\n Enumerator_1.throwIfEndless(_._isEndless);\n return new Enumerable(function () {\n var buffer;\n var capacity;\n var len;\n return new EnumeratorBase_1.default(function () {\n throwIfDisposed(disposed);\n buffer = _.toArray();\n capacity = len = buffer.length;\n }, function (yielder) {\n if (!len)\n return yielder.yieldBreak();\n var selectedIndex = Integer_1.default.random(len);\n var selectedValue = buffer[selectedIndex];\n buffer[selectedIndex] = buffer[--len];\n buffer[len] = null;\n if (len % 32 == 0)\n buffer.length = len;\n return yielder.yieldReturn(selectedValue);\n }, function () {\n buffer.length = 0;\n });\n }, function () {\n disposed = true;\n });\n };\n Enumerable.prototype.count = function (predicate) {\n var count = 0;\n this.forEach(predicate\n ?\n function (x, i) {\n if (predicate(x, i))\n ++count;\n }\n :\n function () {\n ++count;\n });\n return count;\n };\n Enumerable.prototype.all = function (predicate) {\n if (!predicate)\n throw new ArgumentNullException_1.default(\"predicate\");\n var result = true;\n this.forEach(function (x, i) {\n if (!predicate(x, i)) {\n result = false;\n return false;\n }\n });\n return result;\n };\n Enumerable.prototype.every = function (predicate) {\n return this.all(predicate);\n };\n Enumerable.prototype.any = function (predicate) {\n if (!predicate)\n return _super.prototype.any.call(this);\n var result = false;\n this.forEach(function (x, i) {\n result = predicate(x, i);\n return !result;\n });\n return result;\n };\n Enumerable.prototype.some = function (predicate) {\n return this.any(predicate);\n };\n Enumerable.prototype.contains = function (value, compareSelector) {\n return compareSelector\n ? this.any(function (v) { return compareSelector(v) === compareSelector(value); })\n : this.any(function (v) { return v === value; });\n };\n Enumerable.prototype.indexOf = function (value, compareSelector) {\n var found = -1;\n this.forEach(compareSelector\n ?\n function (element, i) {\n if (Values.areEqual(compareSelector(element, i), compareSelector(value, i), true)) {\n found = i;\n return false;\n }\n }\n :\n function (element, i) {\n if (Values.areEqual(element, value, true)) {\n found = i;\n return false;\n }\n });\n return found;\n };\n Enumerable.prototype.lastIndexOf = function (value, compareSelector) {\n var result = -1;\n this.forEach(compareSelector\n ?\n function (element, i) {\n if (Values.areEqual(compareSelector(element, i), compareSelector(value, i), true))\n result\n = i;\n }\n :\n function (element, i) {\n if (Values.areEqual(element, value, true))\n result = i;\n });\n return result;\n };\n Enumerable.prototype.merge = function (enumerables) {\n return _super.prototype.merge.call(this, enumerables);\n };\n Enumerable.prototype.concat = function () {\n var enumerables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n enumerables[_i - 0] = arguments[_i];\n }\n return this.merge(enumerables);\n };\n Enumerable.prototype.intersect = function (second, compareSelector) {\n var _ = this;\n return new Enumerable(function () {\n var enumerator;\n var keys;\n var outs;\n return new EnumeratorBase_1.default(function () {\n enumerator = _.getEnumerator();\n keys = new Dictionary_1.default(compareSelector);\n outs = new Dictionary_1.default(compareSelector);\n Enumerator_1.forEach(second, function (key) {\n keys.addByKeyValue(key, true);\n });\n }, function (yielder) {\n while (enumerator.moveNext()) {\n var current = enumerator.current;\n if (!outs.containsKey(current) && keys.containsKey(current)) {\n outs.addByKeyValue(current, true);\n return yielder.yieldReturn(current);\n }\n }\n return yielder.yieldBreak();\n }, function () {\n dispose_1.dispose(enumerator, keys, outs);\n }, _._isEndless);\n }, null, _._isEndless);\n };\n Enumerable.prototype.sequenceEqual = function (second, equalityComparer) {\n if (equalityComparer === void 0) { equalityComparer = Values.areEqual; }\n return dispose_1.using(this.getEnumerator(), function (e1) { return dispose_1.using(Enumerator_1.from(second), function (e2) {\n Enumerator_1.throwIfEndless(e1.isEndless && e2.isEndless);\n while (e1.moveNext()) {\n if (!e2.moveNext() || !equalityComparer(e1.current, e2.current))\n return false;\n }\n return !e2.moveNext();\n }); });\n };\n Enumerable.prototype.ofType = function (type) {\n return _super.prototype.ofType.call(this, type);\n };\n Enumerable.prototype.except = function (second, compareSelector) {\n return _super.prototype.except.call(this, second, compareSelector);\n };\n Enumerable.prototype.distinct = function (compareSelector) {\n return _super.prototype.distinct.call(this, compareSelector);\n };\n Enumerable.prototype.distinctUntilChanged = function (compareSelector) {\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\n return _super.prototype.distinctUntilChanged.call(this, compareSelector);\n };\n Enumerable.prototype.orderBy = function (keySelector) {\n if (keySelector === void 0) { keySelector = Functions.Identity; }\n return new OrderedEnumerable(this, keySelector, 1);\n };\n Enumerable.prototype.orderUsing = function (comparison) {\n return new OrderedEnumerable(this, null, 1, null, comparison);\n };\n Enumerable.prototype.orderUsingReversed = function (comparison) {\n return new OrderedEnumerable(this, null, -1, null, comparison);\n };\n Enumerable.prototype.orderByDescending = function (keySelector) {\n if (keySelector === void 0) { keySelector = Functions.Identity; }\n return new OrderedEnumerable(this, keySelector, -1);\n };\n Enumerable.prototype.buffer = function (size) {\n return _super.prototype.buffer.call(this, size);\n };\n Enumerable.prototype.groupBy = function (keySelector, elementSelector, compareSelector) {\n var _this = this;\n if (!elementSelector)\n elementSelector = Functions.Identity;\n return new Enumerable(function () { return _this.toLookup(keySelector, elementSelector, compareSelector)\n .getEnumerator(); });\n };\n Enumerable.prototype.partitionBy = function (keySelector, elementSelector, resultSelector, compareSelector) {\n if (resultSelector === void 0) { resultSelector = function (key, elements) { return new Grouping(key, elements); }; }\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\n var _ = this;\n if (!elementSelector)\n elementSelector = Functions.Identity;\n return new Enumerable(function () {\n var enumerator;\n var key;\n var compareKey;\n var group;\n var len;\n return new EnumeratorBase_1.default(function () {\n enumerator = _.getEnumerator();\n if (enumerator.moveNext()) {\n key = keySelector(enumerator.current);\n compareKey = compareSelector(key);\n group = [elementSelector(enumerator.current)];\n len = 1;\n }\n else\n group = null;\n }, function (yielder) {\n if (!group)\n return yielder.yieldBreak();\n var hasNext, c;\n while ((hasNext = enumerator.moveNext())) {\n c = enumerator.current;\n if (compareKey === compareSelector(keySelector(c)))\n group[len++] = elementSelector(c);\n else\n break;\n }\n var result = resultSelector(key, group);\n if (hasNext) {\n c = enumerator.current;\n key = keySelector(c);\n compareKey = compareSelector(key);\n group = [elementSelector(c)];\n len = 1;\n }\n else {\n group = null;\n }\n return yielder.yieldReturn(result);\n }, function () {\n dispose_1.dispose(enumerator);\n group = null;\n });\n });\n };\n Enumerable.prototype.aggregate = function (func, seed) {\n return this.scan(func, seed).lastOrDefault();\n };\n Enumerable.prototype.average = function (selector) {\n if (selector === void 0) { selector = Types_1.default.numberOrNaN; }\n var count = 0;\n var sum = this.sum(function (e, i) {\n count++;\n return selector(e, i);\n });\n return (isNaN(sum) || !count)\n ? NaN\n : (sum / count);\n };\n Enumerable.prototype.max = function () {\n return this.aggregate(Functions.Greater);\n };\n Enumerable.prototype.min = function () {\n return this.aggregate(Functions.Lesser);\n };\n Enumerable.prototype.maxBy = function (keySelector) {\n if (keySelector === void 0) { keySelector = Functions.Identity; }\n return this.aggregate(function (a, b) { return (keySelector(a) > keySelector(b)) ? a : b; });\n };\n Enumerable.prototype.minBy = function (keySelector) {\n if (keySelector === void 0) { keySelector = Functions.Identity; }\n return this.aggregate(function (a, b) { return (keySelector(a) < keySelector(b)) ? a : b; });\n };\n Enumerable.prototype.sum = function (selector) {\n if (selector === void 0) { selector = Types_1.default.numberOrNaN; }\n var sum = 0;\n var sumInfinite = 0;\n this.forEach(function (x) {\n var value = selector(x);\n if (isNaN(value)) {\n sum = NaN;\n return false;\n }\n if (isFinite(value))\n sum += value;\n else\n sumInfinite +=\n value > 0 ?\n (+1) :\n (-1);\n });\n return isNaN(sum) ? NaN : (sumInfinite ? (sumInfinite * Infinity) : sum);\n };\n Enumerable.prototype.product = function (selector) {\n if (selector === void 0) { selector = Types_1.default.numberOrNaN; }\n var result = 1, exists = false;\n this.forEach(function (x, i) {\n exists = true;\n var value = selector(x, i);\n if (isNaN(value)) {\n result = NaN;\n return false;\n }\n if (value == 0) {\n result = 0;\n return false;\n }\n result *= value;\n });\n return (exists && isNaN(result)) ? NaN : result;\n };\n Enumerable.prototype.quotient = function (selector) {\n if (selector === void 0) { selector = Types_1.default.numberOrNaN; }\n var count = 0;\n var result = NaN;\n this.forEach(function (x, i) {\n var value = selector(x, i);\n count++;\n if (count === 1) {\n result = value;\n }\n else {\n if (isNaN(value) || value === 0 || !isFinite(value)) {\n result = NaN;\n return false;\n }\n result /= value;\n }\n });\n if (count === 1)\n result = NaN;\n return result;\n };\n Enumerable.prototype.last = function () {\n var _ = this;\n _.throwIfDisposed();\n var value = undefined;\n var found = false;\n _.forEach(function (x) {\n found = true;\n value = x;\n });\n if (!found)\n throw new Error(\"last:No element satisfies the condition.\");\n return value;\n };\n Enumerable.prototype.lastOrDefault = function (defaultValue) {\n if (defaultValue === void 0) { defaultValue = null; }\n var _ = this;\n _.throwIfDisposed();\n var value = undefined;\n var found = false;\n _.forEach(function (x) {\n found = true;\n value = x;\n });\n return (!found) ? defaultValue : value;\n };\n Enumerable.prototype.share = function () {\n return _super.prototype.share.call(this);\n };\n Enumerable.prototype.catchError = function (handler) {\n return _super.prototype.catchError.call(this, handler);\n };\n Enumerable.prototype.finallyAction = function (action) {\n return _super.prototype.finallyAction.call(this, action);\n };\n Enumerable.prototype.memoize = function () {\n var _ = this, disposed = !_.throwIfDisposed();\n var cache;\n var enumerator;\n return new Enumerable(function () {\n var index = 0;\n return new EnumeratorBase_1.default(function () {\n throwIfDisposed(disposed);\n if (!enumerator)\n enumerator = _.getEnumerator();\n if (!cache)\n cache = [];\n index = 0;\n }, function (yielder) {\n throwIfDisposed(disposed);\n var i = index++;\n if (i >= cache.length) {\n return (enumerator.moveNext())\n ? yielder.yieldReturn(cache[i] = enumerator.current)\n : false;\n }\n return yielder.yieldReturn(cache[i]);\n });\n }, function () {\n disposed = true;\n if (cache)\n cache.length = 0;\n cache = null;\n dispose_1.dispose(enumerator);\n enumerator = null;\n });\n };\n return Enumerable;\n }(InfiniteEnumerable));\n exports.Enumerable = Enumerable;\n var FiniteEnumerable = (function (_super) {\n __extends(FiniteEnumerable, _super);\n function FiniteEnumerable(enumeratorFactory, finalizer) {\n _super.call(this, enumeratorFactory, finalizer, false);\n }\n return FiniteEnumerable;\n }(Enumerable));\n exports.FiniteEnumerable = FiniteEnumerable;\n var ArrayEnumerable = (function (_super) {\n __extends(ArrayEnumerable, _super);\n function ArrayEnumerable(source) {\n _super.call(this, function () {\n _.throwIfDisposed();\n return new ArrayEnumerator_1.default(function () {\n _.throwIfDisposed(\"The underlying ArrayEnumerable was disposed.\", \"ArrayEnumerator\");\n return _._source;\n });\n });\n var _ = this;\n _._disposableObjectName = \"ArrayEnumerable\";\n _._source = source;\n }\n ArrayEnumerable.prototype._onDispose = function () {\n _super.prototype._onDispose.call(this);\n this._source = null;\n };\n Object.defineProperty(ArrayEnumerable.prototype, \"source\", {\n get: function () {\n return this._source;\n },\n enumerable: true,\n configurable: true\n });\n ArrayEnumerable.prototype.toArray = function () {\n var _ = this;\n _.throwIfDisposed();\n return Enumerator_1.toArray(_._source);\n };\n ArrayEnumerable.prototype.asEnumerable = function () {\n return new ArrayEnumerable(this._source);\n };\n ArrayEnumerable.prototype.forEach = function (action) {\n var _ = this;\n _.throwIfDisposed();\n Enumerator_1.forEach(_._source, action);\n };\n ArrayEnumerable.prototype.any = function (predicate) {\n var _ = this;\n _.throwIfDisposed();\n var source = _._source, len = source.length;\n return len && (!predicate || _super.prototype.any.call(this, predicate));\n };\n ArrayEnumerable.prototype.count = function (predicate) {\n var _ = this;\n _.throwIfDisposed();\n var source = _._source, len = source.length;\n return len && (predicate ? _super.prototype.count.call(this, predicate) : len);\n };\n ArrayEnumerable.prototype.elementAtOrDefault = function (index, defaultValue) {\n if (defaultValue === void 0) { defaultValue = null; }\n var _ = this;\n _.throwIfDisposed();\n Integer_1.default.assertZeroOrGreater(index, 'index');\n var source = _._source;\n return index < source.length\n ? source[index]\n : defaultValue;\n };\n ArrayEnumerable.prototype.last = function () {\n var _ = this;\n _.throwIfDisposed();\n var source = _._source, len = source.length;\n return (len)\n ? source[len - 1]\n : _super.prototype.last.call(this);\n };\n ArrayEnumerable.prototype.lastOrDefault = function (defaultValue) {\n if (defaultValue === void 0) { defaultValue = null; }\n var _ = this;\n _.throwIfDisposed();\n var source = _._source, len = source.length;\n return len\n ? source[len - 1]\n : defaultValue;\n };\n ArrayEnumerable.prototype.skip = function (count) {\n var _ = this;\n if (!(count > 0))\n return _;\n return new Enumerable(function () { return new ArrayEnumerator_1.default(function () { return _._source; }, count); });\n };\n ArrayEnumerable.prototype.takeExceptLast = function (count) {\n if (count === void 0) { count = 1; }\n var _ = this;\n return _.take(_._source.length - count);\n };\n ArrayEnumerable.prototype.skipToLast = function (count) {\n if (!(count > 0))\n return Enumerable.empty();\n var _ = this;\n if (!isFinite(count))\n return _;\n var len = _._source\n ? _._source.length\n : 0;\n return _.skip(len - count);\n };\n ArrayEnumerable.prototype.reverse = function () {\n var _ = this;\n return new Enumerable(function () { return new ArrayEnumerator_1.default(function () { return _._source; }, _._source\n ? (_._source.length - 1)\n : 0, -1); });\n };\n ArrayEnumerable.prototype.memoize = function () {\n return this.asEnumerable();\n };\n ArrayEnumerable.prototype.sequenceEqual = function (second, equalityComparer) {\n if (equalityComparer === void 0) { equalityComparer = Values.areEqual; }\n if (Types_1.default.isArrayLike(second))\n return Arrays.areEqual(this.source, second, true, equalityComparer);\n if (second instanceof ArrayEnumerable)\n return second.sequenceEqual(this.source, equalityComparer);\n return _super.prototype.sequenceEqual.call(this, second, equalityComparer);\n };\n ArrayEnumerable.prototype.toJoinedString = function (separator, selector) {\n if (separator === void 0) { separator = \"\"; }\n if (selector === void 0) { selector = Functions.Identity; }\n var s = this._source;\n return !selector && Array.isArray(s)\n ? s.join(separator)\n : _super.prototype.toJoinedString.call(this, separator, selector);\n };\n return ArrayEnumerable;\n }(FiniteEnumerable));\n var Grouping = (function (_super) {\n __extends(Grouping, _super);\n function Grouping(_groupKey, elements) {\n _super.call(this, elements);\n this._groupKey = _groupKey;\n }\n Object.defineProperty(Grouping.prototype, \"key\", {\n get: function () {\n return this._groupKey;\n },\n enumerable: true,\n configurable: true\n });\n return Grouping;\n }(ArrayEnumerable));\n var Lookup = (function () {\n function Lookup(_dictionary) {\n this._dictionary = _dictionary;\n }\n Object.defineProperty(Lookup.prototype, \"count\", {\n get: function () {\n return this._dictionary.count;\n },\n enumerable: true,\n configurable: true\n });\n Lookup.prototype.get = function (key) {\n return this._dictionary.getValue(key);\n };\n Lookup.prototype.contains = function (key) {\n return this._dictionary.containsKey(key);\n };\n Lookup.prototype.getEnumerator = function () {\n var _ = this;\n var enumerator;\n return new EnumeratorBase_1.default(function () {\n enumerator = _._dictionary.getEnumerator();\n }, function (yielder) {\n if (!enumerator.moveNext())\n return false;\n var current = enumerator.current;\n return yielder.yieldReturn(new Grouping(current.key, current.value));\n }, function () {\n dispose_1.dispose(enumerator);\n });\n };\n return Lookup;\n }());\n var OrderedEnumerable = (function (_super) {\n __extends(OrderedEnumerable, _super);\n function OrderedEnumerable(source, keySelector, order, parent, comparer) {\n if (comparer === void 0) { comparer = Values.compare; }\n _super.call(this, null);\n this.source = source;\n this.keySelector = keySelector;\n this.order = order;\n this.parent = parent;\n this.comparer = comparer;\n Enumerator_1.throwIfEndless(source && source.isEndless);\n }\n OrderedEnumerable.prototype.createOrderedEnumerable = function (keySelector, order) {\n return new OrderedEnumerable(this.source, keySelector, order, this);\n };\n OrderedEnumerable.prototype.thenBy = function (keySelector) {\n return this.createOrderedEnumerable(keySelector, 1);\n };\n OrderedEnumerable.prototype.thenUsing = function (comparison) {\n return new OrderedEnumerable(this.source, null, 1, this, comparison);\n };\n OrderedEnumerable.prototype.thenByDescending = function (keySelector) {\n return this.createOrderedEnumerable(keySelector, -1);\n };\n OrderedEnumerable.prototype.thenUsingReversed = function (comparison) {\n return new OrderedEnumerable(this.source, null, -1, this, comparison);\n };\n OrderedEnumerable.prototype.getEnumerator = function () {\n var _ = this;\n var buffer;\n var indexes;\n var index = 0;\n return new EnumeratorBase_1.default(function () {\n index = 0;\n buffer = Enumerable.toArray(_.source);\n indexes = createSortContext(_).generateSortedIndexes(buffer);\n }, function (yielder) {\n return (index < indexes.length)\n ? yielder.yieldReturn(buffer[indexes[index++]])\n : false;\n }, function () {\n if (buffer)\n buffer.length = 0;\n buffer = null;\n if (indexes)\n indexes.length = 0;\n indexes = null;\n }, false);\n };\n OrderedEnumerable.prototype._onDispose = function () {\n _super.prototype._onDispose.call(this);\n this.source = null;\n this.keySelector = null;\n this.order = null;\n this.parent = null;\n };\n return OrderedEnumerable;\n }(FiniteEnumerable));\n function nextEnumerator(queue, e) {\n if (e) {\n if (e.moveNext()) {\n queue.enqueue(e);\n }\n else {\n dispose_1.dispose(e);\n e = null;\n }\n }\n return e;\n }\n function createSortContext(orderedEnumerable, currentContext) {\n if (currentContext === void 0) { currentContext = null; }\n var context = new KeySortedContext_1.default(currentContext, orderedEnumerable.keySelector, orderedEnumerable.order, orderedEnumerable.comparer);\n if (orderedEnumerable.parent)\n return createSortContext(orderedEnumerable.parent, context);\n return context;\n }\n function throwIfDisposed(disposed) {\n if (disposed)\n throw new ObjectDisposedException_1.default(\"Enumerable\");\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Enumerable;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Original: http://linqjs.codeplex.com/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n///\r\n///\r\n///\r\n///\r\n///\r\n///\r\n\r\nimport * as Values from \"../System/Compare\";\r\nimport * as Arrays from \"../System/Collections/Array/Compare\";\r\nimport * as ArrayUtility from \"../System/Collections/Array/Utility\";\r\nimport {\r\n\tempty as EmptyEnumerator,\r\n\tfrom as enumeratorFrom,\r\n\tforEach,\r\n\ttoArray,\r\n\tmap,\r\n\tisEnumerable,\r\n\tthrowIfEndless\r\n} from \"../System/Collections/Enumeration/Enumerator\";\r\nimport Type from \"../System/Types\";\r\nimport Integer from \"../System/Integer\";\r\nimport BaseFunctions from \"../System/Functions\";\r\nimport ArrayEnumerator from \"../System/Collections/Enumeration/ArrayEnumerator\";\r\nimport EnumeratorBase from \"../System/Collections/Enumeration/EnumeratorBase\";\r\nimport Dictionary from \"../System/Collections/Dictionaries/Dictionary\";\r\nimport Queue from \"../System/Collections/Queue\";\r\nimport {dispose, using} from \"../System/Disposable/dispose\";\r\nimport DisposableBase from \"../System/Disposable/DisposableBase\";\r\nimport UnsupportedEnumerableException from \"../System/Collections/Enumeration/UnsupportedEnumerableException\";\r\nimport ObjectDisposedException from \"../System/Disposable/ObjectDisposedException\";\r\nimport KeySortedContext from \"../System/Collections/Sorting/KeySortedContext\";\r\nimport ArgumentNullException from \"../System/Exceptions/ArgumentNullException\";\r\nimport ArgumentOutOfRangeException from \"../System/Exceptions/ArgumentOutOfRangeException\";\r\n\r\n// #region Local Constants.\r\n\r\nconst INVALID_DEFAULT:any = {}; // create a private unique instance for referencing.\r\nconst VOID0:any = void 0;\r\nconst BREAK:(e:any)=>EnumerableAction = element => EnumerableAction.Break;\r\n\r\n// Leave internal to avoid accidental overwriting.\r\nclass LinqFunctions extends BaseFunctions\r\n{\r\n\tGreater(a:T, b:T)\r\n\t{\r\n\t\treturn a>b ? a : b;\r\n\t}\r\n\r\n\tLesser(a:T, b:T)\r\n\t{\r\n\t\treturn a\r\n{\r\n\treturn EmptyEnumerator;\r\n}\r\n\r\n// #endregion\r\n\r\n/**\r\n * Defined values for doAction.\r\n */\r\nexport const enum EnumerableAction\r\n{\r\n\tBreak = 0,\r\n\tReturn = 1,\r\n\tSkip = 2\r\n}\r\n\r\n/*\r\n * NOTE: About InfiniteEnumerable and Enumerable.\r\n * There may seem like there's extra overrides here and they may seem unnecessary.\r\n * But after closer inspection you'll see the type chain is retained and\r\n * infinite enumerables are prevented from having features that finite ones have.\r\n *\r\n * I'm not sure if it's the best option to just use overrides, but it honors the typing properly.\r\n */\r\n\r\nexport class InfiniteEnumerable\r\nextends DisposableBase implements IEnumerable\r\n{\r\n\tconstructor(\r\n\t\tprotected _enumeratorFactory:() => IEnumerator,\r\n\t\tfinalizer?:() => void)\r\n\t{\r\n\t\tsuper(finalizer);\r\n\t\tthis._isEndless = true;\r\n\t}\r\n\r\n\tprotected _isEndless:boolean;\r\n\tget isEndless():boolean\r\n\t{\r\n\t\treturn this._isEndless;\r\n\t}\r\n\r\n\t// #region IEnumerable Implementation...\r\n\tgetEnumerator():IEnumerator\r\n\t{\r\n\r\n\t\tthis.throwIfDisposed();\r\n\r\n\t\treturn this._enumeratorFactory();\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\t// #region IDisposable override...\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose(); // Just in case.\r\n\t\tthis._enumeratorFactory = null;\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\t// Return a default (unfiltered) enumerable.\r\n\tasEnumerable():InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\treturn new InfiniteEnumerable(() => _.getEnumerator());\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Similar to forEach, but executes an action for each time a value is enumerated.\r\n\t * If the action explicitly returns false or 0 (EnumerationAction.Break), the enumeration will complete.\r\n\t * If it returns a 2 (EnumerationAction.Skip) it will move on to the next item.\r\n\t * This also automatically handles disposing the enumerator.\r\n\t */\r\n\tdoAction(\r\n\t\taction:Action | Predicate | Selector | Selector,\r\n\t\tinitializer?:()=>void,\r\n\t\tisEndless:boolean = this.isEndless):InfiniteEnumerable\r\n\t{\r\n\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\tif(initializer) initializer();\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\t// May need a way to propagate isEndless\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar actionResult = action(enumerator.current, index++);\r\n\r\n\t\t\t\t\t\t\tif(actionResult===false || actionResult===EnumerableAction.Break)\r\n\t\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\r\n\t\t\t\t\t\t\tif(actionResult!==EnumerableAction.Skip) // || !== 2\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(enumerator.current);\r\n\r\n\t\t\t\t\t\t\t// If actionResult===2, then a signal for skip is received.\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\r\n\t\t\t},\r\n\t\t\t// Using a finalizer value reduces the chance of a circular reference\r\n\t\t\t// since we could simply reference the enumeration and check e.wasDisposed.\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t},\r\n\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tforce():void\r\n\t{\r\n\t\tthis.throwIfDisposed();\r\n\t\tthis.doAction(BREAK)\r\n\t\t\t.getEnumerator()\r\n\t\t\t.moveNext();\r\n\r\n\t}\r\n\r\n\t// #region Indexing/Paging methods.\r\n\tskip(count:number):InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tif(!isFinite(count)) // +Infinity equals skip all so return empty.\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\tInteger.assert(count, \"count\");\r\n\r\n\t\treturn this.doAction(\r\n\t\t\t(element:T, index?:number) =>\r\n\t\t\t\tindex\r\n\t{\r\n\t\tif(!(count>0)) // Out of bounds? Empty.\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tif(!isFinite(count))\r\n\t\t\tthrow new ArgumentOutOfRangeException('count', count, 'Must be finite.');\r\n\r\n\t\tInteger.assert(count, \"count\");\r\n\r\n\t\t// Once action returns false, the enumeration will stop.\r\n\t\treturn >_.doAction((element:T, index?:number) => index\r\n\t\t\t{\r\n\t\t\t\tvar i = 0;\r\n\t\t\t\twhile(e.moveNext())\r\n\t\t\t\t{\r\n\t\t\t\t\tif(i==n) return e.current;\r\n\t\t\t\t\ti++;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn defaultValue;\r\n\t\t\t});\r\n\t}\r\n\r\n\t/* Note: Unlike previous implementations, you could pass a predicate into these methods.\r\n\t * But since under the hood it ends up calling .where(predicate) anyway,\r\n\t * it may be better to remove this to allow for a cleaner signature/override.\r\n\t * JavaScript/TypeScript does not easily allow for a strict method interface like C#.\r\n\t * Having to write extra override logic is error prone and confusing to the consumer.\r\n\t * Removing the predicate here may also cause the consumer of this method to think more about how they structure their query.\r\n\t * The end all difference is that the user must declare .where(predicate) before .first(), .single(), or .last().\r\n\t * */\r\n\r\n\tfirst():T\r\n\t{\r\n\t\tvar v = this.firstOrDefault(INVALID_DEFAULT);\r\n\t\tif(v===INVALID_DEFAULT) throw new Error(\"first:The sequence is empty.\");\r\n\t\treturn v;\r\n\t}\r\n\r\n\tfirstOrDefault(defaultValue:T = null):T\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\treturn using(\r\n\t\t\tthis.getEnumerator(),\r\n\t\t\te=> e.moveNext() ? e.current : defaultValue\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tsingle():T\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\treturn using(\r\n\t\t\tthis.getEnumerator(),\r\n\t\t\te=>\r\n\t\t\t{\r\n\t\t\t\tif(e.moveNext())\r\n\t\t\t\t{\r\n\t\t\t\t\tvar value = e.current;\r\n\t\t\t\t\tif(!e.moveNext()) return value;\r\n\t\t\t\t\tthrow new Error(\"single:sequence contains more than one element.\");\r\n\t\t\t\t}\r\n\t\t\t\tthrow new Error(\"single:The sequence is empty.\");\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tsingleOrDefault(defaultValue:T = null):T\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\treturn using(\r\n\t\t\tthis.getEnumerator(),\r\n\t\t\te=>\r\n\t\t\t{\r\n\t\t\t\tif(e.moveNext())\r\n\t\t\t\t{\r\n\t\t\t\t\tvar value = e.current;\r\n\t\t\t\t\tif(!e.moveNext()) return value;\r\n\t\t\t\t}\r\n\t\t\t\treturn defaultValue;\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tany():boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\treturn using(\r\n\t\t\tthis.getEnumerator(),\r\n\t\t\te=> e.moveNext()\r\n\t\t);\r\n\t}\r\n\r\n\tisEmpty():boolean\r\n\t{\r\n\t\treturn !this.any();\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\r\n\t// #region Projection and Filtering Methods\r\n\r\n\ttraverseBreadthFirst(\r\n\t\tchildrenSelector:(element:T) => IEnumerableOrArray):Enumerable;\r\n\r\n\ttraverseBreadthFirst(\r\n\t\tchildrenSelector:(element:T|TNode) => IEnumerableOrArray):Enumerable;\r\n\r\n\ttraverseBreadthFirst(\r\n\t\tchildrenSelector:(element:T) => IEnumerableOrArray,\r\n\t\tresultSelector?:(element:T, nestLevel?:number) => TResult):Enumerable;\r\n\r\n\ttraverseBreadthFirst(\r\n\t\tchildrenSelector:(element:T|TNode) => IEnumerableOrArray,\r\n\t\tresultSelector?:(element:TNode, nestLevel?:number) => TResult):Enumerable;\r\n\r\n\ttraverseBreadthFirst(\r\n\t\tchildrenSelector:(element:T|TNode) => IEnumerableOrArray,\r\n\t\tresultSelector:(\r\n\t\t\telement:TNode,\r\n\t\t\tnestLevel?:number) => any = Functions.Identity):Enumerable\r\n\t{\r\n\t\tvar _ = this, isEndless = _._isEndless || null; // Is endless is not affirmative if false.\r\n\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar nestLevel:number = 0;\r\n\t\t\t\tvar buffer:any[], len:number;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tnestLevel = 0;\r\n\t\t\t\t\t\tbuffer = [];\r\n\t\t\t\t\t\tlen = 0;\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\twhile(true)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tif(enumerator.moveNext())\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tbuffer[len++] = enumerator.current;\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(resultSelector(enumerator.current, nestLevel));\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(!len)\r\n\t\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\r\n\t\t\t\t\t\t\tvar next = Enumerable\r\n\t\t\t\t\t\t\t\t.from(buffer)\r\n\t\t\t\t\t\t\t\t.selectMany(childrenSelector);\r\n\r\n\t\t\t\t\t\t\tif(!next.any())\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tnestLevel++;\r\n\t\t\t\t\t\t\t\tbuffer = [];\r\n\t\t\t\t\t\t\t\tlen = 0;\r\n\t\t\t\t\t\t\t\tenumerator.dispose();\r\n\t\t\t\t\t\t\t\tenumerator = next.getEnumerator();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t\tbuffer.length = 0;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n\ttraverseDepthFirst(\r\n\t\tchildrenSelector:(element:T) => IEnumerableOrArray):Enumerable;\r\n\r\n\ttraverseDepthFirst(\r\n\t\tchildrenSelector:(element:T|TNode) => IEnumerableOrArray):Enumerable;\r\n\r\n\ttraverseDepthFirst(\r\n\t\tchildrenSelector:(element:T) => IEnumerableOrArray,\r\n\t\tresultSelector?:(element:T, nestLevel?:number) => TResult):Enumerable;\r\n\r\n\ttraverseDepthFirst(\r\n\t\tchildrenSelector:(element:T|TNode) => IEnumerableOrArray,\r\n\t\tresultSelector?:(element:TNode, nestLevel?:number) => TResult):Enumerable;\r\n\r\n\ttraverseDepthFirst(\r\n\t\tchildrenSelector:(element:T|TNode) => IEnumerableOrArray,\r\n\t\tresultSelector:(\r\n\t\t\telement:TNode,\r\n\t\t\tnestLevel?:number) => any = Functions.Identity):Enumerable\r\n\t{\r\n\t\tvar _ = this, isEndless = _._isEndless || null; // Is endless is not affirmative if false.\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\t// Dev Note: May want to consider using an actual stack and not an array.\r\n\t\t\t\tvar enumeratorStack:IEnumerator[] = [];\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar len:number; // Avoid using push/pop since they query .length every time and can be slower.\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tlen = 0;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\twhile(true)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tif(enumerator.moveNext())\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tlet value = resultSelector(enumerator.current, len);\r\n\t\t\t\t\t\t\t\tenumeratorStack[len++] = enumerator;\r\n\t\t\t\t\t\t\t\tlet e = Enumerable.fromAny(childrenSelector(enumerator.current));\r\n\t\t\t\t\t\t\t\tenumerator = e ? e.getEnumerator() : EmptyEnumerator;\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(value);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(len==0) return false;\r\n\r\n\t\t\t\t\t\t\tenumerator.dispose();\r\n\t\t\t\t\t\t\tenumerator = enumeratorStack[--len];\r\n\t\t\t\t\t\t\tenumeratorStack.length = len;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttry\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tfinally\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tdispose.these(enumeratorStack);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tflatten():Enumerable\r\n\t{\r\n\t\tvar _ = this, isEndless = _._isEndless || null; // Is endless is not affirmative if false.;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar middleEnumerator:IEnumerator = null;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\twhile(true)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tif(middleEnumerator)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tif(middleEnumerator.moveNext())\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\treturn yielder.yieldReturn(middleEnumerator.current);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tmiddleEnumerator.dispose();\r\n\t\t\t\t\t\t\t\t\tmiddleEnumerator = null;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(enumerator.moveNext())\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tvar c = enumerator.current;\r\n\t\t\t\t\t\t\t\t// Because strings are enumerable, we can get stuck in an infinite loop.\r\n\t\t\t\t\t\t\t\t// Treat strings as primitives here.\r\n\t\t\t\t\t\t\t\tvar e = !Type.isString(c) && Enumerable.fromAny(c);\r\n\t\t\t\t\t\t\t\tif(e)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tmiddleEnumerator\r\n\t\t\t\t\t\t\t\t\t\t= e\r\n\t\t\t\t\t\t\t\t\t\t.selectMany(Functions.Identity)\r\n\t\t\t\t\t\t\t\t\t\t.flatten()\r\n\t\t\t\t\t\t\t\t\t\t.getEnumerator();\r\n\t\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\treturn yielder.yieldReturn(c);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator, middleEnumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tpairwise(selector:(prev:T, current:T) => TSelect):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tenumerator.moveNext();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar prev = enumerator.current;\r\n\t\t\t\t\t\treturn enumerator.moveNext()\r\n\t\t\t\t\t\t\t&& yielder.yieldReturn(selector(prev, enumerator.current));\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\tscan(func:(a:T, b:T) => T, seed?:T):Enumerable\r\n\t{\r\n\r\n\t\tvar isUseSeed = seed!==VOID0; // For now...\r\n\t\tvar _ = this;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar value:T;\r\n\t\t\t\tvar isFirst:boolean;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tisFirst = true;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(isFirst)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tisFirst = false;\r\n\t\t\t\t\t\t\t//noinspection JSUnusedAssignment\r\n\t\t\t\t\t\t\treturn isUseSeed\r\n\t\t\t\t\t\t\t\t? yielder.yieldReturn(value = seed)\r\n\t\t\t\t\t\t\t\t: enumerator.moveNext() && yielder.yieldReturn(value\r\n\t\t\t\t\t\t\t\t= enumerator.current);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn (enumerator.moveNext())\r\n\t\t\t\t\t\t\t? yielder.yieldReturn(value = func(value, enumerator.current))\r\n\t\t\t\t\t\t\t: false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\tselect(selector:Selector):InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\treturn enumerator.moveNext()\r\n\t\t\t\t\t\t\t? yielder.yieldReturn(selector(enumerator.current, index++))\r\n\t\t\t\t\t\t\t: yielder.yieldBreak();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t},\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\t/*\r\n\tpublic static IEnumerable SelectMany(\r\n\t\tthis IEnumerable source,\r\n\t\tFunc> collectionSelector,\r\n\t\tFunc resultSelector)\r\n\t */\r\n\r\n\tprotected _selectMany(\r\n\t\tcollectionSelector:Selector>,\r\n\t\tresultSelector?:(collection:T, element:TElement) => TResult):Enumerable\r\n\t{\r\n\t\tvar _ = this, isEndless = _._isEndless || null; // Do second enumeration, it will be indeterminate if false.\r\n\t\tif(!resultSelector)\r\n\t\t\tresultSelector = (a:T, b:any) => b;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar middleEnumerator:IEnumerator;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tmiddleEnumerator = undefined;\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\r\n\t\t\t\t\t\t// Just started, and nothing to enumerate? End.\r\n\t\t\t\t\t\tif(middleEnumerator===VOID0 && !enumerator.moveNext())\r\n\t\t\t\t\t\t\treturn false;\r\n\r\n\t\t\t\t\t\t// moveNext has been called at least once...\r\n\t\t\t\t\t\tdo\r\n\t\t\t\t\t\t{\r\n\r\n\t\t\t\t\t\t\t// Initialize middle if there isn't one.\r\n\t\t\t\t\t\t\tif(!middleEnumerator)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tvar middleSeq = collectionSelector(enumerator.current, index++);\r\n\r\n\t\t\t\t\t\t\t\t// Collection is null? Skip it...\r\n\t\t\t\t\t\t\t\tif(!middleSeq)\r\n\t\t\t\t\t\t\t\t\tcontinue;\r\n\r\n\t\t\t\t\t\t\t\tmiddleEnumerator = enumeratorFrom(middleSeq);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(middleEnumerator.moveNext())\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(\r\n\t\t\t\t\t\t\t\t\tresultSelector(\r\n\t\t\t\t\t\t\t\t\t\tenumerator.current, middleEnumerator.current\r\n\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t\t// else no more in this middle? Then clear and reset for next...\r\n\r\n\t\t\t\t\t\t\tmiddleEnumerator.dispose();\r\n\t\t\t\t\t\t\tmiddleEnumerator = null;\r\n\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\twhile(enumerator.moveNext());\r\n\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator, middleEnumerator);\r\n\t\t\t\t\t\tenumerator = null;\r\n\t\t\t\t\t\tmiddleEnumerator = null;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\tselectMany(\r\n\t\tcollectionSelector:Selector>):InfiniteEnumerable;\r\n\r\n\tselectMany(\r\n\t\tcollectionSelector:Selector>,\r\n\t\tresultSelector:(collection:T, element:TElement) => TResult):InfiniteEnumerable;\r\n\r\n\tselectMany(\r\n\t\tcollectionSelector:Selector>,\r\n\t\tresultSelector?:(collection:T, element:any) => TResult):InfiniteEnumerable\r\n\t{\r\n\t\treturn this._selectMany(collectionSelector, resultSelector);\r\n\t}\r\n\r\n\tprotected _choose(selector:Selector):Enumerable\r\n\t{\r\n\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar result = selector(enumerator.current, index++);\r\n\t\t\t\t\t\t\tif(result!==null && result!==VOID0)\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(result);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t},\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns selected values that are not null or undefined.\r\n\t */\r\n\tchoose():InfiniteEnumerable;\r\n\tchoose(selector?:Selector):InfiniteEnumerable\r\n\tchoose(selector:Selector = Functions.Identity):InfiniteEnumerable\r\n\t{\r\n\t\treturn this._choose(selector)\r\n\t}\r\n\r\n\twhere(predicate:Predicate):InfiniteEnumerable\r\n\t{\r\n\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tif(predicate(enumerator.current, index++))\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(enumerator.current);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t},\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\r\n\t}\r\n\r\n\tofType(type:{ new (...params:any[]):TType }):InfiniteEnumerable;\r\n\tofType(type:any):InfiniteEnumerable\r\n\t{\r\n\t\tvar typeName:string;\r\n\t\tswitch(type)\r\n\t\t{\r\n\t\t\tcase Number:\r\n\t\t\t\ttypeName = Type.NUMBER;\r\n\t\t\t\tbreak;\r\n\t\t\tcase String:\r\n\t\t\t\ttypeName = Type.STRING;\r\n\t\t\t\tbreak;\r\n\t\t\tcase Boolean:\r\n\t\t\t\ttypeName = Type.BOOLEAN;\r\n\t\t\t\tbreak;\r\n\t\t\tcase Function:\r\n\t\t\t\ttypeName = Type.FUNCTION;\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\treturn >this\r\n\t\t\t\t\t.where(x=>x instanceof type);\r\n\t\t}\r\n\t\treturn >this\r\n\t\t\t.choose()\r\n\t\t\t.where(x=>(typeof x)===typeName);\r\n\t}\r\n\r\n\texcept(\r\n\t\tsecond:IEnumerableOrArray,\r\n\t\tcompareSelector?:Selector):InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar keys:Dictionary;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tkeys = new Dictionary(compareSelector);\r\n\t\t\t\t\t\tif(second)\r\n\t\t\t\t\t\t\tforEach(second, key => keys.addByKeyValue(key, true));\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar current = enumerator.current;\r\n\t\t\t\t\t\t\tif(!keys.containsKey(current))\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tkeys.addByKeyValue(current, true);\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(current);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t\tkeys.clear();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t},\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\tdistinct(compareSelector?:(value:T) => T):InfiniteEnumerable\r\n\t{\r\n\t\treturn this.except(null, compareSelector);\r\n\t}\r\n\r\n\t// [0,0,0,1,1,1,2,2,2,0,0,0,1,1] results in [0,1,2,0,1];\r\n\tdistinctUntilChanged(compareSelector:Selector = Functions.Identity):InfiniteEnumerable\r\n\t{\r\n\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar compareKey:TCompare;\r\n\t\t\t\tvar initial:boolean = true;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar key = compareSelector(enumerator.current);\r\n\r\n\t\t\t\t\t\t\tif(initial)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tinitial = false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse if(Values.areEqual(compareKey,key))\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tcompareKey = key;\r\n\t\t\t\t\t\t\treturn yielder.yieldReturn(enumerator.current);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t},\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Returns a single default value if empty.\r\n\t * @param defaultValue\r\n\t * @returns {Enumerable}\r\n\t */\r\n\tdefaultIfEmpty(defaultValue:T = null):Enumerable\r\n\t{\r\n\t\tvar _ = this, disposed:boolean = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar isFirst:boolean;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tisFirst = true;\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\tif(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tisFirst = false;\r\n\t\t\t\t\t\t\treturn yielder.yieldReturn(enumerator.current);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if(isFirst)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tisFirst = false;\r\n\t\t\t\t\t\t\treturn yielder.yieldReturn(defaultValue);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\tzip(\r\n\t\tsecond:IEnumerableOrArray,\r\n\t\tresultSelector:(first:T, second:TSecond, index?:number) => TResult):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar firstEnumerator:IEnumerator;\r\n\t\t\t\tvar secondEnumerator:IEnumerator;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tfirstEnumerator = _.getEnumerator();\r\n\t\t\t\t\t\tsecondEnumerator = enumeratorFrom(second);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=> firstEnumerator.moveNext()\r\n\t\t\t\t\t&& secondEnumerator.moveNext()\r\n\t\t\t\t\t&& yielder.yieldReturn(resultSelector(firstEnumerator.current, secondEnumerator.current, index++)),\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(firstEnumerator, secondEnumerator);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tzipMultiple(\r\n\t\tsecond:IArray>,\r\n\t\tresultSelector:(first:T, second:TSecond, index?:number) => TResult):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tif(!second.length)\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar secondTemp:Queue;\r\n\t\t\t\tvar firstEnumerator:IEnumerator;\r\n\t\t\t\tvar secondEnumerator:IEnumerator;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tsecondTemp = new Queue(second);\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tfirstEnumerator = _.getEnumerator();\r\n\t\t\t\t\t\tsecondEnumerator = null;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(firstEnumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\twhile(true)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\twhile(!secondEnumerator)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tif(secondTemp.count)\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\tvar next = secondTemp.dequeue();\r\n\t\t\t\t\t\t\t\t\t\tif(next) // In case by chance next is null, then try again.\r\n\t\t\t\t\t\t\t\t\t\t\tsecondEnumerator = enumeratorFrom(next);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif(secondEnumerator.moveNext())\r\n\t\t\t\t\t\t\t\t\treturn yielder.yieldReturn(\r\n\t\t\t\t\t\t\t\t\t\tresultSelector(firstEnumerator.current, secondEnumerator.current, index++)\r\n\t\t\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t\t\tsecondEnumerator.dispose();\r\n\t\t\t\t\t\t\t\tsecondEnumerator = null;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(firstEnumerator, secondTemp);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\r\n\t// #region Join Methods\r\n\r\n\tjoin(\r\n\t\tinner:IEnumerableOrArray,\r\n\t\touterKeySelector:Selector,\r\n\t\tinnerKeySelector:Selector,\r\n\t\tresultSelector:(outer:T, inner:TInner) => TResult,\r\n\t\tcompareSelector:Selector = Functions.Identity):Enumerable\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar outerEnumerator:IEnumerator;\r\n\t\t\t\tvar lookup:ILookup;\r\n\t\t\t\tvar innerElements:TInner[] = null;\r\n\t\t\t\tvar innerCount:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\touterEnumerator = _.getEnumerator();\r\n\t\t\t\t\t\tlookup = Enumerable.from(inner)\r\n\t\t\t\t\t\t\t.toLookup(innerKeySelector, Functions.Identity, compareSelector);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\twhile(true)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tif(innerElements!=null)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tvar innerElement = innerElements[innerCount++];\r\n\t\t\t\t\t\t\t\tif(innerElement!==VOID0)\r\n\t\t\t\t\t\t\t\t\treturn yielder.yieldReturn(resultSelector(outerEnumerator.current, innerElement));\r\n\r\n\t\t\t\t\t\t\t\tinnerElement = null;\r\n\t\t\t\t\t\t\t\tinnerCount = 0;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(outerEnumerator.moveNext())\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tvar key = outerKeySelector(outerEnumerator.current);\r\n\t\t\t\t\t\t\t\tinnerElements = lookup.get(key);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(outerEnumerator);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tgroupJoin(\r\n\t\tinner:IEnumerableOrArray,\r\n\t\touterKeySelector:Selector,\r\n\t\tinnerKeySelector:Selector,\r\n\t\tresultSelector:(outer:T, inner:TInner[]) => TResult,\r\n\t\tcompareSelector:Selector = Functions.Identity):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar lookup:ILookup = null;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tlookup = Enumerable.from(inner)\r\n\t\t\t\t\t\t\t.toLookup(innerKeySelector, Functions.Identity, compareSelector);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\tenumerator.moveNext()\r\n\t\t\t\t\t&& yielder.yieldReturn(\r\n\t\t\t\t\t\tresultSelector(\r\n\t\t\t\t\t\t\tenumerator.current,\r\n\t\t\t\t\t\t\tlookup.get(outerKeySelector(enumerator.current))\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t),\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tmerge(enumerables:IArray>):InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this, isEndless = _._isEndless || null;\r\n\r\n\t\tif(!enumerables || enumerables.length==0)\r\n\t\t\treturn _;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar queue:Queue>;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t// 1) First get our values...\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tqueue = new Queue>(enumerables);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder) =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\twhile(true)\r\n\t\t\t\t\t\t{\r\n\r\n\t\t\t\t\t\t\twhile(!enumerator && queue.count)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tenumerator = enumeratorFrom(queue.dequeue()); // 4) Keep going and on to step 2. Else fall through to yieldBreak().\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(enumerator && enumerator.moveNext()) // 2) Keep returning until done.\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(enumerator.current);\r\n\r\n\t\t\t\t\t\t\tif(enumerator) // 3) Dispose and reset for next.\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tenumerator.dispose();\r\n\t\t\t\t\t\t\t\tenumerator = null;\r\n\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator, queue); // Just in case this gets disposed early.\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\tconcat(...enumerables:Array>):InfiniteEnumerable\r\n\t{\r\n\t\treturn this.merge(enumerables);\r\n\t}\r\n\r\n\r\n\tunion(\r\n\t\tsecond:IEnumerableOrArray,\r\n\t\tcompareSelector:Selector = Functions.Identity):Enumerable\r\n\t{\r\n\t\tvar _ = this, isEndless = _._isEndless || null;\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar firstEnumerator:IEnumerator;\r\n\t\t\t\tvar secondEnumerator:IEnumerator;\r\n\t\t\t\tvar keys:Dictionary;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfirstEnumerator = _.getEnumerator();\r\n\t\t\t\t\t\tkeys = new Dictionary(compareSelector); // Acting as a HashSet.\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar current:T;\r\n\t\t\t\t\t\tif(secondEnumerator===VOID0)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\twhile(firstEnumerator.moveNext())\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tcurrent = firstEnumerator.current;\r\n\t\t\t\t\t\t\t\tif(!keys.containsKey(current))\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tkeys.addByKeyValue(current, null);\r\n\t\t\t\t\t\t\t\t\treturn yielder.yieldReturn(current);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tsecondEnumerator = enumeratorFrom(second);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\twhile(secondEnumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tcurrent = secondEnumerator.current;\r\n\t\t\t\t\t\t\tif(!keys.containsKey(current))\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tkeys.addByKeyValue(current, null);\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(current);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(firstEnumerator, secondEnumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\tinsertAt(index:number, other:IEnumerableOrArray):Enumerable\r\n\t{\r\n\t\tInteger.assertZeroOrGreater(index,'index');\r\n\t\tvar n:number = index;\r\n\r\n\t\tvar _ = this, isEndless = _._isEndless || null;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\r\n\t\t\t\tvar firstEnumerator:IEnumerator;\r\n\t\t\t\tvar secondEnumerator:IEnumerator;\r\n\r\n\t\t\t\tvar count:number = 0;\r\n\t\t\t\tvar isEnumerated:boolean = false;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcount = 0;\r\n\t\t\t\t\t\tfirstEnumerator = _.getEnumerator();\r\n\t\t\t\t\t\tsecondEnumerator = enumeratorFrom(other);\r\n\t\t\t\t\t\tisEnumerated = false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder) =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(count==n)\r\n\t\t\t\t\t\t{ // Inserting?\r\n\t\t\t\t\t\t\tisEnumerated = true;\r\n\t\t\t\t\t\t\tif(secondEnumerator.moveNext())\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(secondEnumerator.current);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif(firstEnumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tcount++;\r\n\t\t\t\t\t\t\treturn yielder.yieldReturn(firstEnumerator.current);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn !isEnumerated\r\n\t\t\t\t\t\t\t&& secondEnumerator.moveNext()\r\n\t\t\t\t\t\t\t&& yielder.yieldReturn(secondEnumerator.current);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(firstEnumerator, secondEnumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n\talternateMultiple(sequence:IEnumerableOrArray):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar buffer:T,\r\n\t\t\t\t mode:EnumerableAction,\r\n\t\t\t\t enumerator:IEnumerator,\r\n\t\t\t\t alternateEnumerator:IEnumerator;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t// Instead of recalling getEnumerator every time, just reset the existing one.\r\n\t\t\t\t\t\talternateEnumerator = new ArrayEnumerator(\r\n\t\t\t\t\t\t\tEnumerable.toArray(sequence)\r\n\t\t\t\t\t\t); // Freeze\r\n\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\r\n\t\t\t\t\t\tvar hasAtLeastOne = enumerator.moveNext();\r\n\t\t\t\t\t\tmode = hasAtLeastOne\r\n\t\t\t\t\t\t\t? EnumerableAction.Return\r\n\t\t\t\t\t\t\t: EnumerableAction.Break;\r\n\r\n\t\t\t\t\t\tif(hasAtLeastOne)\r\n\t\t\t\t\t\t\tbuffer = enumerator.current;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tswitch(mode)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tcase EnumerableAction.Break: // We're done?\r\n\t\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\r\n\t\t\t\t\t\t\tcase EnumerableAction.Skip:\r\n\t\t\t\t\t\t\t\tif(alternateEnumerator.moveNext())\r\n\t\t\t\t\t\t\t\t\treturn yielder.yieldReturn(alternateEnumerator.current);\r\n\t\t\t\t\t\t\t\talternateEnumerator.reset();\r\n\t\t\t\t\t\t\t\tmode = EnumerableAction.Return;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar latest = buffer;\r\n\r\n\t\t\t\t\t\t// Set up the next round...\r\n\r\n\t\t\t\t\t\t// Is there another one? Set the buffer and setup instruct for the next one to be the alternate.\r\n\t\t\t\t\t\tvar another = enumerator.moveNext();\r\n\t\t\t\t\t\tmode = another\r\n\t\t\t\t\t\t\t? EnumerableAction.Skip\r\n\t\t\t\t\t\t\t: EnumerableAction.Break;\r\n\r\n\t\t\t\t\t\tif(another)\r\n\t\t\t\t\t\t\tbuffer = enumerator.current;\r\n\r\n\t\t\t\t\t\treturn yielder.yieldReturn(latest);\r\n\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator, alternateEnumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\talternateSingle(value:T):Enumerable\r\n\t{\r\n\t\treturn this.alternateMultiple(Enumerable.make(value));\r\n\t}\r\n\r\n\talternate(...sequence:T[]):Enumerable\r\n\t{\r\n\t\treturn this.alternateMultiple(sequence);\r\n\t}\r\n\r\n\r\n\t// #region Error Handling\r\n\tcatchError(handler:(e:any) => void):InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttry\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcatch(e)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t// Don't init...\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttry\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\t\tif(enumerator.moveNext())\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(enumerator.current);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcatch(e)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\thandler(e);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tfinallyAction(action:() => void):InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\treturn (enumerator.moveNext())\r\n\t\t\t\t\t\t\t? yielder.yieldReturn(enumerator.current)\r\n\t\t\t\t\t\t\t: false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttry\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tfinally\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\taction();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tbuffer(size:number):InfiniteEnumerable\r\n\t{\r\n\t\tif(size<1 || !isFinite(size))\r\n\t\t\tthrow new Error(\"Invalid buffer size.\");\r\n\r\n\t\tInteger.assert(size, \"size\");\r\n\r\n\t\tvar _ = this, len:number;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar array:T[] = ArrayUtility.initialize(size);\r\n\t\t\t\t\t\tlen = 0;\r\n\t\t\t\t\t\twhile(len\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tshare():InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar sharedEnumerator:IEnumerator;\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\treturn sharedEnumerator || (sharedEnumerator = _.getEnumerator());\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdispose(sharedEnumerator);\r\n\t\t\t},\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n}\r\n\r\n\r\n/**\r\n * Enumerable is a wrapper class that allows more primitive enumerables to exhibit LINQ behavior.\r\n *\r\n * In C# Enumerable is not an instance but has extensions for IEnumerable.\r\n * In this case, we use Enumerable as the underlying class that is being chained.\r\n */\r\nexport class Enumerable\r\nextends InfiniteEnumerable\r\n{\r\n\r\n\tconstructor(\r\n\t\tenumeratorFactory:() => IEnumerator,\r\n\t\tfinalizer?:() => void,\r\n\t\tisEndless:boolean = null)\r\n\t{\r\n\t\tsuper(enumeratorFactory, finalizer);\r\n\t\tthis._isEndless = isEndless;\r\n\t}\r\n\r\n\t/**\r\n\t * Universal method for converting a primitive enumerables into a LINQ enabled ones.\r\n\t *\r\n\t * Is not limited to TypeScript usages.\r\n\t */\r\n\tstatic from(source:IEnumerableOrArray):Enumerable\r\n\t{\r\n\t\tvar e = Enumerable.fromAny(source);\r\n\t\tif(!e) throw new UnsupportedEnumerableException();\r\n\t\treturn e;\r\n\t}\r\n\r\n\tstatic fromAny(\r\n\t\tsource:any):Enumerable\r\n\r\n\tstatic fromAny(\r\n\t\tsource:IEnumerableOrArray,\r\n\t\tdefaultEnumerable?:Enumerable):Enumerable\r\n\r\n\tstatic fromAny(\r\n\t\tsource:any,\r\n\t\tdefaultEnumerable?:Enumerable):Enumerable\r\n\r\n\tstatic fromAny(\r\n\t\tsource:any,\r\n\t\tdefaultEnumerable:Enumerable = null):Enumerable\r\n\t{\r\n\t\tif(Type.isObject(source) || Type.isString(source))\r\n\t\t{\r\n\t\t\tif(source instanceof Enumerable)\r\n\t\t\t\treturn source;\r\n\r\n\t\t\tif(Type.isArrayLike(source))\r\n\t\t\t\treturn new ArrayEnumerable(source);\r\n\r\n\t\t\tif(isEnumerable(source))\r\n\t\t\t\treturn new Enumerable(\r\n\t\t\t\t\t()=>source.getEnumerator(),\r\n\t\t\t\t\tnull, source.isEndless);\r\n\t\t}\r\n\r\n\t\treturn defaultEnumerable;\r\n\t}\r\n\r\n\tstatic fromOrEmpty(source:IEnumerableOrArray):Enumerable\r\n\t{\r\n\t\treturn Enumerable.fromAny(source) || Enumerable.empty();\r\n\t}\r\n\r\n\t/**\r\n\t * Static helper for converting enumerables to an array.\r\n\t * @param source\r\n\t * @returns {any}\r\n\t */\r\n\tstatic toArray(source:IEnumerableOrArray):T[]\r\n\t{\r\n\t\tif(source instanceof Enumerable)\r\n\t\t\treturn source.toArray();\r\n\r\n\t\treturn toArray(source);\r\n\t}\r\n\r\n\r\n\t//////////////////////////////////////////\r\n\t// #region Static Methods...\r\n\tstatic choice(values:IArray):InfiniteEnumerable\r\n\t{\r\n\t\tvar len = values && values.length;\r\n\t\t// We could return empty if no length, but that would break the typing and produce unexpected results.\r\n\t\t// Enforcing that there must be at least 1 choice is key.\r\n\t\tif(!len || !isFinite(len))\r\n\t\t\tthrow new ArgumentOutOfRangeException('length', length);\r\n\r\n\t\treturn new InfiniteEnumerable(\r\n\t\t\t() => new EnumeratorBase(\r\n\t\t\t\tnull,\r\n\t\t\t\t(yielder)=>\r\n\t\t\t\t\tyielder.yieldReturn(Integer.random.select(values)),\r\n\t\t\t\ttrue // Is endless!\r\n\t\t\t)\r\n\t\t);\r\n\t}\r\n\r\n\tstatic chooseFrom(...args:T[]):InfiniteEnumerable\r\n\t{\r\n\t\treturn Enumerable.choice(args);\r\n\t}\r\n\r\n\tstatic cycle(values:IArray):InfiniteEnumerable\r\n\t{\r\n\t\tvar len = values && values.length;\r\n\t\t// We could return empty if no length, but that would break the typing and produce unexpected results.\r\n\t\t// Enforcing that there must be at least 1 choice is key.\r\n\t\tif(!len || !isFinite(len))\r\n\t\t\tthrow new ArgumentOutOfRangeException('length', length);\r\n\r\n\t\treturn new InfiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar index:number = 0;\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t}, // Reinitialize the value just in case the enumerator is restarted.\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(index>=values.length) index = 0;\r\n\t\t\t\t\t\treturn yielder.yieldReturn(values[index++]);\r\n\t\t\t\t\t},\r\n\t\t\t\t\ttrue // Is endless!\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic cycleThrough(...args:T[]):InfiniteEnumerable\r\n\t{\r\n\t\treturn Enumerable.cycle(args);\r\n\t}\r\n\r\n\tstatic empty():FiniteEnumerable\r\n\t{\r\n\t\t// Could be single static instance, but for safety, we'll make a new one.\r\n\t\treturn new FiniteEnumerable(getEmptyEnumerator);\r\n\t}\r\n\r\n\tstatic repeat(element:T):InfiniteEnumerable;\r\n\tstatic repeat(element:T, count:number):FiniteEnumerable;\r\n\tstatic repeat(element:T, count:number = Infinity):Enumerable\r\n\t{\r\n\t\tif(!(count>0))\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\treturn isFinite(count) && Integer.assert(count, \"count\")\r\n\t\t\t? new FiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar c:number = count;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() => { index = 0; },\r\n\t\t\t\t\t(yielder)=> (index++(\r\n\t\t\t() =>\r\n\t\t\t\tnew EnumeratorBase(\r\n\t\t\t\t\tnull,\r\n\t\t\t\t\t(yielder)=> yielder.yieldReturn(element),\r\n\t\t\t\t\ttrue // Is endless!\r\n\t\t\t\t)\r\n\t\t);\r\n\t}\r\n\r\n\t// Note: this enumeration is endless but can be disposed/cancelled and finalized.\r\n\tstatic repeatWithFinalize(\r\n\t\tinitializer:() => T,\r\n\t\tfinalizer:(element:T) => void):InfiniteEnumerable\r\n\t{\r\n\r\n\t\treturn new InfiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar element:T;\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\telement = initializer();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=> yielder.yieldReturn(element),\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfinalizer(element);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\ttrue // Is endless!\r\n\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * Creates an enumerable of one element.\r\n\t * @param element\r\n\t * @returns {FiniteEnumerable}\r\n\t */\r\n\tstatic make(element:T):FiniteEnumerable\r\n\t{\r\n\t\treturn Enumerable.repeat(element, 1);\r\n\t}\r\n\r\n\t// start and step can be other than integer.\r\n\r\n\tstatic range(\r\n\t\tstart:number,\r\n\t\tcount:number,\r\n\t\tstep:number = 1):FiniteEnumerable\r\n\t{\r\n\t\tif(!isFinite(start))\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"start\", start, \"Must be a finite number.\");\r\n\r\n\t\tif(!(count>0))\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\tif(!step)\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"step\", step, \"Must be a valid value\");\r\n\r\n\t\tif(!isFinite(step))\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"step\", step, \"Must be a finite number.\");\r\n\r\n\t\tInteger.assert(count, \"count\");\r\n\r\n\t\treturn new FiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar value:number;\r\n\t\t\t\tvar c:number = count; // Force integer evaluation.\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tvalue = start;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar result:boolean =\r\n\t\t\t\t\t\t\t index++\r\n\t{\r\n\t\tstep = Math.abs(step)* -1;\r\n\r\n\t\treturn Enumerable.range(start, count, step);\r\n\t}\r\n\r\n\t// step = -1 behaves the same as toNegativeInfinity;\r\n\tstatic toInfinity(\r\n\t\tstart:number = 0,\r\n\t\tstep:number = 1):InfiniteEnumerable\r\n\t{\r\n\t\tif(!isFinite(start))\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"start\", start, \"Must be a finite number.\");\r\n\r\n\t\tif(!step)\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"step\", step, \"Must be a valid value\");\r\n\r\n\t\tif(!isFinite(step))\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"step\", step, \"Must be a finite number.\");\r\n\r\n\t\treturn new InfiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar value:number;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvalue = start;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar current:number = value;\r\n\t\t\t\t\t\tvalue += step;\r\n\t\t\t\t\t\treturn yielder.yieldReturn(current);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\ttrue // Is endless!\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic toNegativeInfinity(\r\n\t\tstart:number = 0,\r\n\t\tstep:number = 1):InfiniteEnumerable\r\n\t{\r\n\t\treturn Enumerable.toInfinity(start, -step);\r\n\t}\r\n\r\n\tstatic rangeTo(\r\n\t\tstart:number,\r\n\t\tto:number,\r\n\t\tstep:number = 1):FiniteEnumerable\r\n\t{\r\n\t\tif(isNaN(to) || !isFinite(to))\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"to\", to, \"Must be a finite number.\");\r\n\r\n\t\tif(step && !isFinite(step))\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"step\", step, \"Must be a finite non-zero number.\");\r\n\r\n\t\t// This way we adjust for the delta from start and to so the user can say +/- step and it will work as expected.\r\n\t\tstep = Math.abs(step);\r\n\r\n\t\treturn new FiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar value:number;\r\n\r\n\t\t\t\treturn new EnumeratorBase(() => { value = start; },\r\n\t\t\t\t\tstart)=>\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar result:boolean = value<=to && yielder.yieldReturn(value);\r\n\r\n\t\t\t\t\t\t\tif(result)\r\n\t\t\t\t\t\t\t\tvalue += step;\r\n\r\n\t\t\t\t\t\t\treturn result;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t:\r\n\t\t\t\t\t\t(yielder:IYield)=>\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar result:boolean = value>=to && yielder.yieldReturn(value);\r\n\r\n\t\t\t\t\t\t\tif(result)\r\n\t\t\t\t\t\t\t\tvalue -= step;\r\n\r\n\t\t\t\t\t\t\treturn result;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t, false);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic matches(input:string, pattern:any, flags:string = \"\"):FiniteEnumerable\r\n\t{\r\n\t\tif(input===null || input===VOID0)\r\n\t\t\tthrow new ArgumentNullException(\"input\");\r\n\t\tvar type = typeof input;\r\n\t\tif(type!=Type.STRING)\r\n\t\t\tthrow new Error(\"Cannot exec RegExp matches of type '\" + type + \"'.\");\r\n\r\n\t\tif(pattern instanceof RegExp)\r\n\t\t{\r\n\t\t\tflags += (pattern.ignoreCase) ? \"i\" : \"\";\r\n\t\t\tflags += (pattern.multiline) ? \"m\" : \"\";\r\n\t\t\tpattern = pattern.source;\r\n\t\t}\r\n\r\n\t\tif(flags.indexOf(\"g\")=== -1) flags += \"g\";\r\n\r\n\t\treturn new FiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar regex:RegExp;\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tregex = new RegExp(pattern, flags);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t// Calling regex.exec consecutively on the same input uses the lastIndex to start the next match.\r\n\t\t\t\t\t\tvar match = regex.exec(input);\r\n\t\t\t\t\t\treturn (match!==null) ? yielder.yieldReturn(match) : false;\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic generate(factory:(index?:number) => T):InfiniteEnumerable;\r\n\tstatic generate(factory:(index?:number) => T, count:number):FiniteEnumerable;\r\n\tstatic generate(factory:(index?:number) => T, count:number = Infinity):InfiniteEnumerable\r\n\t{\r\n\r\n\t\tif(isNaN(count) || count<=0)\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\treturn isFinite(count) && Integer.assert(count, \"count\")\r\n\t\t\t?\r\n\t\t\tnew FiniteEnumerable(\r\n\t\t\t\t() =>\r\n\t\t\t\t{\r\n\t\t\t\t\tvar c:number = count;\r\n\t\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t\t() =>\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar current:number = index++;\r\n\t\t\t\t\t\t\treturn current(\r\n\t\t\t\t() =>\r\n\t\t\t\t{\r\n\t\t\t\t\tvar index:number = 0;\r\n\t\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t\t() =>\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t(yielder)=> yielder.yieldReturn(factory(index++)),\r\n\r\n\t\t\t\t\t\ttrue // Is endless!\r\n\t\t\t\t\t);\r\n\t\t\t\t});\r\n\t}\r\n\r\n\tstatic unfold(\r\n\t\tseed:T,\r\n\t\tvalueFactory:Selector,\r\n\t\tskipSeed:Boolean = false):InfiniteEnumerable\r\n\t{\r\n\t\treturn new InfiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar index:number = 0;\r\n\t\t\t\tvar value:T;\r\n\t\t\t\tvar isFirst:boolean;\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tvalue = seed;\r\n\t\t\t\t\t\tisFirst = !skipSeed;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar i = index++;\r\n\t\t\t\t\t\tif(isFirst)\r\n\t\t\t\t\t\t\tisFirst = false;\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\tvalue = valueFactory(value, i);\r\n\t\t\t\t\t\treturn yielder.yieldReturn(value);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\ttrue // Is endless!\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic forEach(\r\n\t\tenumerable:IEnumerableOrArray,\r\n\t\taction:(element:T, index?:number) => any):void\r\n\t{\r\n\t\t// Will properly dispose created enumerable.\r\n\t\t// Will throw if enumerable is endless.\r\n\t\tforEach(enumerable, action);\r\n\t}\r\n\r\n\tstatic map(\r\n\t\tenumerable:IEnumerableOrArray,\r\n\t\tselector:Selector):TResult[]\r\n\t{\r\n\t\t// Will properly dispose created enumerable.\r\n\t\t// Will throw if enumerable is endless.\r\n\t\treturn map(enumerable, selector);\r\n\r\n\t}\r\n\r\n\t// Slightly optimized versions for numbers.\r\n\tstatic max(values:FiniteEnumerable):number\r\n\t{\r\n\t\treturn values\r\n\t\t\t.takeUntil(v=> v== +Infinity, true)\r\n\t\t\t.aggregate(Functions.Greater);\r\n\t}\r\n\r\n\tstatic min(values:FiniteEnumerable):number\r\n\t{\r\n\t\treturn values\r\n\t\t\t.takeUntil(v=> v== -Infinity, true)\r\n\t\t\t.aggregate(Functions.Lesser);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Takes any set of collections of the same type and weaves them together.\r\n\t * @param enumerables\r\n\t * @returns {Enumerable}\r\n\t */\r\n\tstatic weave(\r\n\t\tenumerables:IEnumerableOrArray>):Enumerable\r\n\t{\r\n\t\tif(!enumerables)\r\n\t\t\tthrow new ArgumentNullException('enumerables');\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar queue:Queue>;\r\n\t\t\t\tvar mainEnumerator:IEnumerator>;\r\n\t\t\t\tvar index:number;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tqueue = new Queue>();\r\n\t\t\t\t\t\tmainEnumerator = enumeratorFrom(enumerables);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tlet e:IEnumerator;\r\n\r\n\t\t\t\t\t\t// First pass...\r\n\t\t\t\t\t\tif(mainEnumerator) {\r\n\t\t\t\t\t\t\twhile(!e && mainEnumerator.moveNext())\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tlet c = mainEnumerator.current;\r\n\t\t\t\t\t\t\t\te = nextEnumerator(queue, c && enumeratorFrom(c));\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(!e)\r\n\t\t\t\t\t\t\t\tmainEnumerator = null;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\twhile(!e && queue.count) {\r\n\t\t\t\t\t\t\te = nextEnumerator(queue, queue.dequeue());\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn e\r\n\t\t\t\t\t\t\t? yielder.yieldReturn(e.current)\r\n\t\t\t\t\t\t\t: yielder.yieldBreak();\r\n\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose.these(queue.dump());\r\n\t\t\t\t\t\tdispose(mainEnumerator,queue);\r\n\t\t\t\t\t\tmainEnumerator = null;\r\n\t\t\t\t\t\tqueue = null;\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\tdoAction(\r\n\t\taction:Action|Predicate|Selector|Selector,\r\n\t\tinitializer?:()=>void,\r\n\t\tisEndless:boolean = this.isEndless):Enumerable\r\n\t{\r\n\t\treturn >super.doAction(action, initializer, isEndless);\r\n\t}\r\n\r\n// #region Indexing/Paging methods.\r\n\r\n\tskip(count:number):Enumerable\r\n\t{\r\n\t\treturn >super.skip(count);\r\n\t}\r\n\r\n\tskipWhile(predicate:Predicate):Enumerable\r\n\t{\r\n\t\tthis.throwIfDisposed();\r\n\t\treturn this.doAction(\r\n\t\t\t(element:T, index?:number) =>\r\n\t\t\t\tpredicate(element, index)\r\n\t\t\t\t\t? EnumerableAction.Skip\r\n\t\t\t\t\t: EnumerableAction.Return\r\n\t\t);\r\n\t}\r\n\r\n\ttakeWhile(predicate:Predicate):Enumerable\r\n\t{\r\n\t\tthis.throwIfDisposed();\r\n\r\n\t\tif(!predicate)\r\n\t\t\tthrow new ArgumentNullException('predicate');\r\n\r\n\t\treturn this.doAction(\r\n\t\t\t(element:T, index?:number) =>\r\n\t\t\t\tpredicate(element, index)\r\n\t\t\t\t\t? EnumerableAction.Return\r\n\t\t\t\t\t: EnumerableAction.Break,\r\n\t\t\tnull,\r\n\t\t\tnull // We don't know the state if it is endless or not.\r\n\t\t);\r\n\t}\r\n\r\n\t// Is like the inverse of take While with the ability to return the value identified by the predicate.\r\n\ttakeUntil(predicate:Predicate, includeUntilValue?:boolean):Enumerable\r\n\t{\r\n\t\tthis.throwIfDisposed();\r\n\r\n\t\tif(!predicate)\r\n\t\t\tthrow new ArgumentNullException('predicate');\r\n\r\n\t\tif(!includeUntilValue)\r\n\t\t\treturn this.doAction(\r\n\t\t\t\t(element:T, index?:number) =>\r\n\t\t\t\t\tpredicate(element, index)\r\n\t\t\t\t\t\t? EnumerableAction.Break\r\n\t\t\t\t\t\t: EnumerableAction.Return,\r\n\t\t\t\tnull,\r\n\t\t\t\tnull // We don't know the state if it is endless or not.\r\n\t\t\t);\r\n\r\n\t\tvar found:boolean = false;\r\n\t\treturn this.doAction(\r\n\t\t\t(element:T, index?:number) =>\r\n\t\t\t{\r\n\t\t\t\tif(found)\r\n\t\t\t\t\treturn EnumerableAction.Break;\r\n\r\n\t\t\t\tfound = predicate(element, index);\r\n\t\t\t\treturn EnumerableAction.Return;\r\n\t\t\t},\r\n\t\t\t()=>\r\n\t\t\t{\r\n\t\t\t\tfound = false;\r\n\t\t\t},\r\n\t\t\tnull // We don't know the state if it is endless or not.\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tforEach(action:Predicate | Action):void\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\tthrowIfEndless(_.isEndless);\r\n\r\n\t\tvar index:number = 0;\r\n\t\t// Return value of action can be anything, but if it is (===) false then the forEach will discontinue.\r\n\t\tusing(\r\n\t\t\t_.getEnumerator(), e=>\r\n\t\t\t{\r\n\t\t\t\tthrowIfEndless(e.isEndless);\r\n\r\n\t\t\t\t// It is possible that subsequently 'action' could cause the enumeration to dispose, so we have to check each time.\r\n\t\t\t\twhile(_.throwIfDisposed() && e.moveNext())\r\n\t\t\t\t{\r\n\t\t\t\t\tif(action(e.current, index++)===false)\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\t// #region Conversion Methods\r\n\ttoArray(predicate?:Predicate):T[]\r\n\t{\r\n\t\treturn predicate\r\n\t\t\t? this.where(predicate).toArray()\r\n\t\t\t: this.copyTo([]);\r\n\t}\r\n\r\n\tcopyTo(target:T[], index:number = 0):T[]\r\n\t{\r\n\t\tthis.throwIfDisposed();\r\n\t\tif(!target) throw new ArgumentNullException(\"target\");\r\n\t\tInteger.assertZeroOrGreater(index);\r\n\r\n\t\t// If not exposing an action that could cause dispose, then use forEach utility instead.\r\n\t\tforEach(this, (x, i)=>\r\n\t\t{\r\n\t\t\ttarget[i + index] = x\r\n\t\t});\r\n\r\n\t\treturn target;\r\n\t}\r\n\r\n\ttoLookup(\r\n\t\tkeySelector:Selector,\r\n\t\telementSelector:Selector = Functions.Identity,\r\n\t\tcompareSelector:Selector = Functions.Identity):ILookup\r\n\t{\r\n\t\tvar dict:Dictionary = new Dictionary(compareSelector);\r\n\t\tthis.forEach(\r\n\t\t\tx=>\r\n\t\t\t{\r\n\t\t\t\tvar key = keySelector(x);\r\n\t\t\t\tvar element = elementSelector(x);\r\n\r\n\t\t\t\tvar array = dict.getValue(key);\r\n\t\t\t\tif(array!==VOID0) array.push(element);\r\n\t\t\t\telse dict.addByKeyValue(key, [element]);\r\n\t\t\t}\r\n\t\t);\r\n\t\treturn new Lookup(dict);\r\n\t}\r\n\r\n\ttoMap(\r\n\t\tkeySelector:Selector,\r\n\t\telementSelector:Selector):IMap\r\n\t{\r\n\t\tvar obj:IMap = {};\r\n\t\tthis.forEach((x, i)=>\r\n\t\t{\r\n\t\t\tobj[keySelector(x, i)] = elementSelector(x, i);\r\n\t\t});\r\n\t\treturn obj;\r\n\t}\r\n\r\n\ttoDictionary(\r\n\t\tkeySelector:Selector,\r\n\t\telementSelector:Selector,\r\n\t\tcompareSelector:Selector = Functions.Identity):Dictionary\r\n\t{\r\n\t\tvar dict:Dictionary = new Dictionary(compareSelector);\r\n\t\tthis.forEach((x, i)=> dict.addByKeyValue(keySelector(x, i), elementSelector(x, i)));\r\n\t\treturn dict;\r\n\t}\r\n\r\n\ttoJoinedString(separator:string = \"\", selector:Selector = Functions.Identity)\r\n\t{\r\n\t\treturn this.select(selector).toArray().join(separator);\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\r\n\ttakeExceptLast(count:number = 1):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\tif(!(count>0)) // Out of bounds?\r\n\t\t\treturn _;\r\n\r\n\t\tif(!isFinite(count)) // +Infinity equals skip all so return empty.\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\tInteger.assert(count, \"count\");\r\n\t\tvar c = count;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar q:Queue;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tq = new Queue();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t// Add the next one to the queue.\r\n\t\t\t\t\t\t\tq.enqueue(enumerator.current);\r\n\r\n\t\t\t\t\t\t\t// Did we reach our quota?\r\n\t\t\t\t\t\t\tif(q.count>c)\r\n\t\t\t\t\t\t\t// Okay then, start returning results.\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(q.dequeue());\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator, q);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tskipToLast(count:number):Enumerable\r\n\t{\r\n\t\tif(!(count>0)) // Out of bounds? Empty.\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\tvar _ = this;\r\n\r\n\t\tif(!isFinite(count)) // Infinity means return all.\r\n\t\t\treturn _;\r\n\r\n\t\tInteger.assert(count, \"count\");\r\n\r\n\t\t// This sets up the query so nothing is done until move next is called.\r\n\t\treturn _.reverse()\r\n\t\t\t.take(count)\r\n\t\t\t.reverse();\r\n\t}\r\n\r\n\t// To help with type guarding.\r\n\r\n\twhere(predicate:Predicate):Enumerable\r\n\t{\r\n\t\treturn >super.where(predicate);\r\n\t}\r\n\r\n\tselect(selector:Selector):Enumerable\r\n\t{\r\n\t\treturn >super.select(selector);\r\n\t}\r\n\r\n\tselectMany(\r\n\t\tcollectionSelector:Selector>):Enumerable;\r\n\r\n\r\n\tselectMany(\r\n\t\tcollectionSelector:Selector>,\r\n\t\tresultSelector:(collection:T, element:TElement)=>TResult):Enumerable;\r\n\r\n\tselectMany(\r\n\t\tcollectionSelector:Selector>,\r\n\t\tresultSelector?:(collection:T, element:any)=>TResult):Enumerable\r\n\t{\r\n\t\treturn this._selectMany(collectionSelector, resultSelector);\r\n\t}\r\n\r\n\tchoose():Enumerable;\r\n\tchoose(selector?:Selector):Enumerable\r\n\tchoose(selector:Selector = Functions.Identity):Enumerable\r\n\t{\r\n\t\treturn this._choose(selector);\r\n\t}\r\n\r\n\treverse():Enumerable\r\n\t{\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\t\tthrowIfEndless(_._isEndless); // Cannot reverse an endless collection...\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar buffer:T[];\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\tbuffer = _.toArray();\r\n\t\t\t\t\t\tindex = buffer.length;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=> index && yielder.yieldReturn(buffer[--index]),\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tbuffer.length = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tshuffle():Enumerable\r\n\t{\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\t\tthrowIfEndless(_._isEndless); // Cannot shuffle an endless collection...\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar buffer:T[];\r\n\t\t\t\tvar capacity:number;\r\n\t\t\t\tvar len:number;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\tbuffer = _.toArray();\r\n\t\t\t\t\t\tcapacity = len = buffer.length;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t// Avoid using major array operations like .slice();\r\n\t\t\t\t\t\tif(!len)\r\n\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\r\n\t\t\t\t\t\tvar selectedIndex = Integer.random(len);\r\n\t\t\t\t\t\tvar selectedValue = buffer[selectedIndex];\r\n\r\n\t\t\t\t\t\tbuffer[selectedIndex] = buffer[--len]; // Take the last one and put it here.\r\n\t\t\t\t\t\tbuffer[len] = null; // clear possible reference.\r\n\r\n\t\t\t\t\t\tif(len%32==0) // Shrink?\r\n\t\t\t\t\t\t\tbuffer.length = len;\r\n\r\n\t\t\t\t\t\treturn yielder.yieldReturn(selectedValue);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tbuffer.length = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tcount(predicate?:Predicate):number\r\n\t{\r\n\t\tvar count:number = 0;\r\n\t\tthis.forEach(\r\n\t\t\tpredicate\r\n\r\n\t\t\t\t?\r\n\t\t\t\t(x, i) =>\r\n\t\t\t\t{\r\n\t\t\t\t\tif(predicate(x, i))++count;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t:\r\n\t\t\t\t() =>\r\n\t\t\t\t{\r\n\t\t\t\t\t++count;\r\n\t\t\t\t}\r\n\t\t);\r\n\r\n\t\treturn count;\r\n\t}\r\n\r\n\t// Akin to '.every' on an array.\r\n\tall(predicate:Predicate):boolean\r\n\t{\r\n\t\tif(!predicate)\r\n\t\t\tthrow new ArgumentNullException(\"predicate\");\r\n\r\n\t\tvar result = true;\r\n\t\tthis.forEach((x, i) =>\r\n\t\t{\r\n\t\t\tif(!predicate(x, i))\r\n\t\t\t{\r\n\t\t\t\tresult = false;\r\n\t\t\t\treturn false; // break\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\r\n\t// 'every' has been added here for parity/compatibility with an array.\r\n\tevery(predicate:Predicate):boolean\r\n\t{\r\n\t\treturn this.all(predicate);\r\n\t}\r\n\r\n\t// Akin to '.some' on an array.\r\n\tany(predicate?:Predicate):boolean\r\n\t{\r\n\t\tif(!predicate)\r\n\t\t\treturn super.any();\r\n\r\n\t\tvar result = false;\r\n\t\t// Splitting the forEach up this way reduces iterative processing.\r\n\t\t// forEach handles the generation and disposal of the enumerator.\r\n\t\tthis.forEach(\r\n\t\t\t(x, i) =>\r\n\t\t\t{\r\n\t\t\t\tresult = predicate(x, i); // false = not found and therefore it should continue. true = found and break;\r\n\t\t\t\treturn !result;\r\n\t\t\t});\r\n\t\treturn result;\r\n\r\n\t}\r\n\r\n\t// 'some' has been added here for parity/compatibility with an array.\r\n\tsome(predicate:Predicate):boolean\r\n\t{\r\n\t\treturn this.any(predicate);\r\n\t}\r\n\r\n\r\n\tcontains(value:T, compareSelector?:Selector):boolean\r\n\t{\r\n\t\treturn compareSelector\r\n\t\t\t? this.any(v=> compareSelector(v)===compareSelector(value))\r\n\t\t\t: this.any(v=> v===value);\r\n\t}\r\n\r\n\t// Originally has an overload for a predicate,\r\n\t// but that's a bad idea since this could be an enumeration of functions and therefore fail the intent.\r\n\t// Better to chain a where statement first to be more explicit.\r\n\tindexOf(value:T, compareSelector?:Selector):number\r\n\t{\r\n\t\tvar found:number = -1;\r\n\t\tthis.forEach(\r\n\t\t\tcompareSelector\r\n\t\t\t\t?\r\n\t\t\t\t(element:T, i?:number) =>\r\n\t\t\t\t{\r\n\t\t\t\t\tif(Values.areEqual(compareSelector(element, i), compareSelector(value, i), true))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfound = i;\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t:\r\n\t\t\t\t(element:T, i?:number) =>\r\n\t\t\t\t{\r\n\t\t\t\t\t// Why? Because NaN doesn't equal NaN. :P\r\n\t\t\t\t\tif(Values.areEqual(element, value, true))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfound = i;\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\r\n\t\treturn found;\r\n\t}\r\n\r\n\tlastIndexOf(value:T, compareSelector?:Selector):number\r\n\t{\r\n\t\tvar result:number = -1;\r\n\t\tthis.forEach(\r\n\t\t\tcompareSelector\r\n\t\t\t\t?\r\n\t\t\t\t(element:T, i?:number) =>\r\n\t\t\t\t{\r\n\t\t\t\t\tif(Values.areEqual(compareSelector(element, i), compareSelector(value, i), true)) result\r\n\t\t\t\t\t\t= i;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t:\r\n\t\t\t\t(element:T, i?:number) =>\r\n\t\t\t\t{\r\n\t\t\t\t\tif(Values.areEqual(element, value, true)) result = i;\r\n\t\t\t\t});\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\tmerge(enumerables:IArray>):Enumerable\r\n\t{\r\n\t\treturn >super.merge(enumerables);\r\n\t}\r\n\r\n\tconcat(...enumerables:Array>):Enumerable\r\n\t{\r\n\t\treturn this.merge(enumerables);\r\n\t}\r\n\r\n\r\n\tintersect(\r\n\t\tsecond:IEnumerableOrArray,\r\n\t\tcompareSelector?:Selector):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar keys:Dictionary;\r\n\t\t\t\tvar outs:Dictionary;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\r\n\t\t\t\t\t\tkeys = new Dictionary(compareSelector);\r\n\t\t\t\t\t\touts = new Dictionary(compareSelector);\r\n\r\n\t\t\t\t\t\tforEach(second, key=>\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tkeys.addByKeyValue(key, true);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar current = enumerator.current;\r\n\t\t\t\t\t\t\tif(!outs.containsKey(current) && keys.containsKey(current))\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\touts.addByKeyValue(current, true);\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(current);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator, keys, outs);\r\n\t\t\t\t\t},\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\tsequenceEqual(\r\n\t\tsecond:IEnumerableOrArray,\r\n\t\tequalityComparer:EqualityComparison = Values.areEqual):boolean\r\n\t{\r\n\t\treturn using(\r\n\t\t\tthis.getEnumerator(),\r\n\t\t\te1=> using(\r\n\t\t\t\tenumeratorFrom(second),\r\n\t\t\t\te2=>\r\n\t\t\t\t{\r\n\t\t\t\t\t// if both are endless, this will never evaluate.\r\n\t\t\t\t\tthrowIfEndless(e1.isEndless && e2.isEndless);\r\n\r\n\t\t\t\t\twhile(e1.moveNext())\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(!e2.moveNext() || !equalityComparer(e1.current, e2.current))\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn !e2.moveNext();\r\n\t\t\t\t}\r\n\t\t\t)\r\n\t\t);\r\n\t}\r\n\r\n\t//isEquivalent(second:IEnumerableOrArray,\r\n\t//\tequalityComparer:EqualityComparison = Values.areEqual):boolean\r\n\t//{\r\n\t//\treturn this\r\n\t//\t\t.orderBy(keySelector)\r\n\t//\t\t.sequenceEqual(Enumerable.from(second).orderBy(keySelector))\r\n\t//}\r\n\r\n\r\n\t// #endregion\r\n\r\n\r\n\tofType(type:{ new (...params:any[]):TType }):Enumerable;\r\n\tofType(type:any):Enumerable\r\n\t{\r\n\t\treturn >super.ofType(type);\r\n\t}\r\n\r\n\texcept(\r\n\t\tsecond:IEnumerableOrArray,\r\n\t\tcompareSelector?:Selector):Enumerable\r\n\t{\r\n\t\treturn >super.except(second, compareSelector);\r\n\t}\r\n\r\n\tdistinct(compareSelector?:(value:T)=>T):Enumerable\r\n\t{\r\n\t\treturn >super.distinct(compareSelector);\r\n\t}\r\n\r\n\tdistinctUntilChanged(compareSelector:Selector = Functions.Identity):Enumerable\r\n\t{\r\n\t\treturn >super.distinctUntilChanged(compareSelector);\r\n\t}\r\n\r\n// #region Ordering Methods\r\n\r\n\torderBy(keySelector:Selector = Functions.Identity):IOrderedEnumerable\r\n\t{\r\n\t\treturn new OrderedEnumerable(this, keySelector, Order.Ascending);\r\n\t}\r\n\r\n\torderUsing(comparison:Comparison):IOrderedEnumerable\r\n\t{\r\n\t\treturn new OrderedEnumerable(this, null, Order.Ascending, null, comparison);\r\n\t}\r\n\r\n\torderUsingReversed(comparison:Comparison):IOrderedEnumerable\r\n\t{\r\n\t\treturn new OrderedEnumerable(this, null, Order.Descending, null, comparison);\r\n\t}\r\n\r\n\torderByDescending(keySelector:Selector = Functions.Identity):IOrderedEnumerable\r\n\t{\r\n\t\treturn new OrderedEnumerable(this, keySelector, Order.Descending);\r\n\t}\r\n\r\n\t/*\r\n\t\t weightedSample(weightSelector) {\r\n\t\t weightSelector = Utils.createLambda(weightSelector);\r\n\t\t var source = this;\r\n\r\n\t\t return new Enumerable(() => {\r\n\t\t var sortedByBound;\r\n\t\t var totalWeight = 0;\r\n\r\n\t\t return new EnumeratorBase(\r\n\t\t () => {\r\n\t\t sortedByBound = source\r\n\t\t .choose(function (x) {\r\n\t\t var weight = weightSelector(x);\r\n\t\t if (weight <= 0) return null; // ignore 0\r\n\r\n\t\t totalWeight += weight;\r\n\t\t return { value: x, bound: totalWeight }\r\n\t\t })\r\n\t\t .toArray();\r\n\t\t },\r\n\t\t () => {\r\n\t\t if (sortedByBound.length > 0) {\r\n\t\t var draw = (Math.random() * totalWeight) + 1;\r\n\r\n\t\t var lower = -1;\r\n\t\t var upper = sortedByBound.length;\r\n\t\t while (upper - lower > 1) {\r\n\t\t var index = ((lower + upper) / 2);\r\n\t\t if (sortedByBound[index].bound >= draw) {\r\n\t\t upper = index;\r\n\t\t }\r\n\t\t else {\r\n\t\t lower = index;\r\n\t\t }\r\n\t\t }\r\n\r\n\t\t return (this).yieldReturn(sortedByBound[upper].value);\r\n\t\t }\r\n\r\n\t\t return (this).yieldBreak();\r\n\t\t },\r\n\t\t Functions.Blank);\r\n\t\t });\r\n\t\t }\r\n\t\t */\r\n\t// #endregion\r\n\r\n\tbuffer(size:number):Enumerable\r\n\t{\r\n\t\treturn >super.buffer(size);\r\n\t}\r\n\r\n\t// #region Grouping Methods\r\n\r\n\t// Originally contained a result selector (not common use), but this could be done simply by a select statement after.\r\n\r\n\r\n\tgroupBy(keySelector:Selector):Enumerable>;\r\n\tgroupBy(\r\n\t\tkeySelector:Selector,\r\n\t\telementSelector?:Selector,\r\n\t\tcompareSelector?:Selector):Enumerable>;\r\n\tgroupBy(\r\n\t\tkeySelector:Selector,\r\n\t\telementSelector?:Selector,\r\n\t\tcompareSelector?:Selector):Enumerable>\r\n\t{\r\n\t\tif(!elementSelector) elementSelector = Functions.Identity; // Allow for 'null' and not just undefined.\r\n\t\treturn new Enumerable>(\r\n\t\t\t() => this.toLookup(keySelector, elementSelector, compareSelector)\r\n\t\t\t\t.getEnumerator()\r\n\t\t);\r\n\t}\r\n\r\n\tpartitionBy(keySelector:Selector):Enumerable>;\r\n\tpartitionBy(\r\n\t\tkeySelector:Selector,\r\n\t\telementSelector:Selector,\r\n\t\tresultSelector?:(key:TKey, element:TElement[]) => IGrouping,\r\n\t\tcompareSelector?:Selector):Enumerable>;\r\n\tpartitionBy(\r\n\t\tkeySelector:Selector,\r\n\t\telementSelector?:Selector,\r\n\t\tresultSelector:(key:TKey, element:TElement[]) => IGrouping\r\n\t\t\t= (key:TKey, elements:TElement[]) => new Grouping(key, elements),\r\n\t\tcompareSelector:Selector\r\n\t\t\t= Functions.Identity):Enumerable>|Enumerable>\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\t\tif(!elementSelector) elementSelector = Functions.Identity; // Allow for 'null' and not just undefined.\r\n\t\treturn new Enumerable>(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar key:TKey;\r\n\t\t\t\tvar compareKey:TCompare;\r\n\t\t\t\tvar group:TElement[];\r\n\t\t\t\tvar len:number;\r\n\r\n\t\t\t\treturn new EnumeratorBase>(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tif(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tkey = keySelector(enumerator.current);\r\n\t\t\t\t\t\t\tcompareKey = compareSelector(key);\r\n\t\t\t\t\t\t\tgroup = [elementSelector(enumerator.current)];\r\n\t\t\t\t\t\t\tlen = 1;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\tgroup = null;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(!group)\r\n\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\r\n\t\t\t\t\t\tvar hasNext:boolean, c:T;\r\n\t\t\t\t\t\twhile((hasNext = enumerator.moveNext()))\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tc = enumerator.current;\r\n\t\t\t\t\t\t\tif(compareKey===compareSelector(keySelector(c)))\r\n\t\t\t\t\t\t\t\tgroup[len++] = elementSelector(c);\r\n\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar result:IGrouping\r\n\t\t\t\t\t\t\t = resultSelector(key, group);\r\n\r\n\t\t\t\t\t\tif(hasNext)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tc = enumerator.current;\r\n\t\t\t\t\t\t\tkey = keySelector(c);\r\n\t\t\t\t\t\t\tcompareKey = compareSelector(key);\r\n\t\t\t\t\t\t\tgroup = [elementSelector(c)];\r\n\t\t\t\t\t\t\tlen = 1;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tgroup = null;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn yielder.yieldReturn(result);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t\tgroup = null;\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\t// #region Aggregate Methods\r\n\r\n\taggregate(\r\n\t\tfunc:(a:T, b:T) => T,\r\n\t\tseed?:T):T\r\n\t{\r\n\t\treturn this.scan(func, seed).lastOrDefault();\r\n\t}\r\n\r\n\taverage(selector:Selector = Type.numberOrNaN):number\r\n\t{\r\n\t\tvar count = 0;\r\n\t\tvar sum = this.sum((e, i)=>\r\n\t\t{\r\n\t\t\tcount++;\r\n\t\t\treturn selector(e, i);\r\n\t\t});\r\n\r\n\t\treturn (isNaN(sum) || !count)\r\n\t\t\t? NaN\r\n\t\t\t: (sum/count);\r\n\t}\r\n\r\n\t// If using numbers, it may be useful to call .takeUntil(v=>v==Infinity,true) before calling max. See static versions for numbers.\r\n\tmax():T\r\n\t{\r\n\t\treturn this.aggregate(Functions.Greater);\r\n\t}\r\n\r\n\tmin():T\r\n\t{\r\n\t\treturn this.aggregate(Functions.Lesser);\r\n\t}\r\n\r\n\tmaxBy(keySelector:Selector = Functions.Identity):T\r\n\t{\r\n\t\treturn this.aggregate((a:T, b:T) => (keySelector(a)>keySelector(b)) ? a : b);\r\n\t}\r\n\r\n\tminBy(keySelector:Selector = Functions.Identity):T\r\n\t{\r\n\t\treturn this.aggregate((a:T, b:T) => (keySelector(a) = Type.numberOrNaN):number\r\n\t{\r\n\t\tvar sum = 0;\r\n\r\n\t\t// This allows for infinity math that doesn't destroy the other values.\r\n\t\tvar sumInfinite = 0; // Needs more investigation since we are really trying to retain signs.\r\n\r\n\t\tthis.forEach(\r\n\t\t\tx=>\r\n\t\t\t{\r\n\t\t\t\tvar value = selector(x);\r\n\t\t\t\tif(isNaN(value))\r\n\t\t\t\t{\r\n\t\t\t\t\tsum = NaN;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tif(isFinite(value))\r\n\t\t\t\t\tsum += value;\r\n\t\t\t\telse\r\n\t\t\t\t\tsumInfinite +=\r\n\t\t\t\t\t\tvalue>0 ?\r\n\t\t\t\t\t\t\t(+1) :\r\n\t\t\t\t\t\t\t(-1);\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\treturn isNaN(sum) ? NaN : (sumInfinite ? (sumInfinite*Infinity) : sum);\r\n\t}\r\n\r\n\t// Multiplication...\r\n\tproduct(selector:Selector = Type.numberOrNaN):number\r\n\t{\r\n\t\tvar result = 1, exists:boolean = false;\r\n\r\n\t\tthis.forEach(\r\n\t\t\t(x, i)=>\r\n\t\t\t{\r\n\t\t\t\texists = true;\r\n\t\t\t\tvar value = selector(x, i);\r\n\t\t\t\tif(isNaN(value))\r\n\t\t\t\t{\r\n\t\t\t\t\tresult = NaN;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(value==0)\r\n\t\t\t\t{\r\n\t\t\t\t\tresult = 0; // Multiplying by zero will always end in zero.\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Multiplication can never recover from infinity and simply must retain signs.\r\n\t\t\t\t// You could cancel out infinity with 1/infinity but no available representation exists.\r\n\t\t\t\tresult *= value;\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\treturn (exists && isNaN(result)) ? NaN : result;\r\n\t}\r\n\r\n\t/**\r\n\t * Takes the first number and divides it by all following.\r\n\t * @param selector\r\n\t * @returns {number}\r\n\t */\r\n\tquotient(selector:Selector = Type.numberOrNaN):number\r\n\t{\r\n\t\tvar count = 0;\r\n\t\tvar result:number = NaN;\r\n\r\n\t\tthis.forEach(\r\n\t\t\t(x, i)=>\r\n\t\t\t{\r\n\t\t\t\tvar value = selector(x, i);\r\n\t\t\t\tcount++;\r\n\r\n\t\t\t\tif(count===1)\r\n\t\t\t\t{\r\n\t\t\t\t\tresult = value;\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tif(isNaN(value) || value===0 || !isFinite(value))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tresult = NaN;\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tresult /= value;\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\tif(count===1)\r\n\t\t\tresult = NaN;\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\t// #region Single Value Return...\r\n\r\n\tlast():T\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar value:T = undefined;\r\n\t\tvar found:boolean = false;\r\n\t\t_.forEach(\r\n\t\t\tx =>\r\n\t\t\t{\r\n\t\t\t\tfound = true;\r\n\t\t\t\tvalue = x;\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\tif(!found) throw new Error(\"last:No element satisfies the condition.\");\r\n\t\treturn value;\r\n\t}\r\n\r\n\tlastOrDefault(defaultValue:T = null):T\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar value:T = undefined;\r\n\t\tvar found:boolean = false;\r\n\t\t_.forEach(\r\n\t\t\tx=>\r\n\t\t\t{\r\n\t\t\t\tfound = true;\r\n\t\t\t\tvalue = x;\r\n\t\t\t}\r\n\t\t);\r\n\t\treturn (!found) ? defaultValue : value;\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\tshare():Enumerable\r\n\t{\r\n\t\treturn >super.share();\r\n\t}\r\n\r\n\r\n\tcatchError(handler:(e:any)=>void):Enumerable\r\n\t{\r\n\t\treturn >super.catchError(handler);\r\n\t}\r\n\r\n\r\n\tfinallyAction(action:()=>void):Enumerable\r\n\t{\r\n\t\treturn >super.finallyAction(action);\r\n\t}\r\n\r\n\tmemoize():Enumerable\r\n\t{\r\n\t\tvar _ = this, disposed:boolean = !_.throwIfDisposed();\r\n\r\n\t\tvar cache:T[];\r\n\t\tvar enumerator:IEnumerator;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\tif(!enumerator)\r\n\t\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tif(!cache)\r\n\t\t\t\t\t\t\tcache = [];\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\tvar i = index++;\r\n\r\n\t\t\t\t\t\tif(i>=cache.length)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\treturn (enumerator.moveNext())\r\n\t\t\t\t\t\t\t\t? yielder.yieldReturn(cache[i] = enumerator.current)\r\n\t\t\t\t\t\t\t\t: false;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn yielder.yieldReturn(cache[i]);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t\tif(cache)\r\n\t\t\t\t\tcache.length = 0;\r\n\t\t\t\tcache = null;\r\n\r\n\t\t\t\tdispose(enumerator);\r\n\t\t\t\tenumerator = null;\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\r\n}\r\n\r\n\r\n// Provided for type guarding.\r\nexport class FiniteEnumerable\r\nextends Enumerable\r\n{\r\n\tconstructor(\r\n\t\tenumeratorFactory:() => IEnumerator,\r\n\t\tfinalizer?:() => void)\r\n\t{\r\n\t\tsuper(enumeratorFactory, finalizer, false);\r\n\t}\r\n\r\n}\r\n\r\nclass ArrayEnumerable\r\nextends FiniteEnumerable\r\n{\r\n\tprivate _source:IArray;\r\n\r\n\tconstructor(source:IArray)\r\n\t{\r\n\t\tsuper(() =>\r\n\t\t{\r\n\t\t\t_.throwIfDisposed();\r\n\t\t\treturn new ArrayEnumerator(() =>\r\n\t\t\t{\r\n\t\t\t\t_.throwIfDisposed(\"The underlying ArrayEnumerable was disposed.\", \"ArrayEnumerator\");\r\n\r\n\t\t\t\treturn _._source; // Should never be null, but ArrayEnumerable if not disposed simply treats null as empty array.\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tvar _ = this;\r\n\t\t_._disposableObjectName = \"ArrayEnumerable\";\r\n\t\t_._source = source;\r\n\r\n\t}\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis._source = null;\r\n\t}\r\n\r\n\tget source():IArray\r\n\t{\r\n\t\treturn this._source;\r\n\t}\r\n\r\n\ttoArray():T[]\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\treturn toArray(_._source);\r\n\t}\r\n\r\n\tasEnumerable():ArrayEnumerable\r\n\t{\r\n\t\treturn new ArrayEnumerable(this._source);\r\n\t}\r\n\r\n\t// Optimize forEach so that subsequent usage is optimized.\r\n\tforEach(action:Predicate | Action):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tforEach(_._source, action);\r\n\t}\r\n\r\n\t// These methods should ALWAYS check for array length before attempting anything.\r\n\r\n\tany(predicate?:Predicate):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar source = _._source, len = source.length;\r\n\t\treturn len && (!predicate || super.any(predicate));\r\n\t}\r\n\r\n\tcount(predicate?:Predicate):number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar source = _._source, len = source.length;\r\n\t\treturn len && (predicate ? super.count(predicate) : len);\r\n\t}\r\n\t\r\n\telementAtOrDefault(index:number, defaultValue:T = null):T\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\tInteger.assertZeroOrGreater(index,'index');\r\n\r\n\t\tvar source = _._source;\r\n\t\treturn index\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\r\n\t\tif(!(count>0))\r\n\t\t\treturn _;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() => new ArrayEnumerator(() => _._source, count)\r\n\t\t);\r\n\t}\r\n\r\n\ttakeExceptLast(count:number = 1):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn _.take(_._source.length - count);\r\n\t}\r\n\r\n\tskipToLast(count:number):Enumerable\r\n\t{\r\n\t\tif(!(count>0))\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\tvar _ = this;\r\n\t\tif(!isFinite(count))\r\n\t\t\treturn _;\r\n\r\n\t\tvar len = _._source\r\n\t\t\t? _._source.length\r\n\t\t\t: 0;\r\n\r\n\t\treturn _.skip(len - count);\r\n\t}\r\n\r\n\treverse():Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() => new ArrayEnumerator(\r\n\t\t\t\t() => _._source, _._source\r\n\t\t\t\t\t? (_._source.length - 1)\r\n\t\t\t\t\t: 0, -1\r\n\t\t\t)\r\n\t\t);\r\n\t}\r\n\r\n\tmemoize():ArrayEnumerable\r\n\t{\r\n\t\treturn this.asEnumerable();\r\n\t}\r\n\r\n\tsequenceEqual(\r\n\t\tsecond:IEnumerableOrArray,\r\n\t\tequalityComparer:EqualityComparison = Values.areEqual):boolean\r\n\t{\r\n\t\tif(Type.isArrayLike(second))\r\n\t\t\treturn Arrays.areEqual(this.source, second, true, equalityComparer);\r\n\r\n\t\tif(second instanceof ArrayEnumerable)\r\n\t\t\treturn second.sequenceEqual(this.source, equalityComparer);\r\n\r\n\t\treturn super.sequenceEqual(second, equalityComparer);\r\n\t}\r\n\r\n\r\n\ttoJoinedString(separator:string = \"\", selector:Selector = Functions.Identity)\r\n\t{\r\n\t\tvar s = this._source;\r\n\t\treturn !selector && Array.isArray(s)\r\n\t\t\t? (>s).join(separator)\r\n\t\t\t: super.toJoinedString(separator, selector);\r\n\t}\r\n\r\n}\r\n\r\n\r\nexport interface IGrouping\r\nextends Enumerable\r\n{\r\n\tkey:TKey;\r\n}\r\n\r\nclass Grouping\r\nextends ArrayEnumerable implements IGrouping\r\n{\r\n\r\n\tconstructor(private _groupKey:TKey, elements:TElement[])\r\n\t{\r\n\t\tsuper(elements);\r\n\t}\r\n\r\n\tget key():TKey\r\n\t{\r\n\t\treturn this._groupKey;\r\n\t}\r\n}\r\n\r\n\r\nexport interface ILookup\r\nextends IEnumerable>\r\n{\r\n\tcount:number;\r\n\tget(key:TKey):TElement[];\r\n\tcontains(key:TKey):boolean;\r\n}\r\n\r\nclass Lookup\r\nimplements ILookup\r\n{\r\n\r\n\tconstructor(private _dictionary:Dictionary)\r\n\t{\r\n\t}\r\n\r\n\tget count():number\r\n\t{\r\n\t\treturn this._dictionary.count;\r\n\t}\r\n\r\n\tget(key:TKey):TElement[]\r\n\t{\r\n\t\treturn this._dictionary.getValue(key);\r\n\t}\r\n\r\n\tcontains(key:TKey):boolean\r\n\t{\r\n\t\treturn this._dictionary.containsKey(key);\r\n\t}\r\n\r\n\tgetEnumerator():IEnumerator>\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\t\tvar enumerator:IEnumerator>;\r\n\r\n\t\treturn new EnumeratorBase>(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tenumerator = _._dictionary.getEnumerator();\r\n\t\t\t},\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\r\n\t\t\t\tif(!enumerator.moveNext())\r\n\t\t\t\t\treturn false;\r\n\r\n\t\t\t\tvar current = enumerator.current;\r\n\r\n\t\t\t\treturn yielder.yieldReturn(new Grouping(current.key, current.value));\r\n\t\t\t},\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdispose(enumerator);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n}\r\n\r\n\r\nexport interface IOrderedEnumerable\r\nextends FiniteEnumerable\r\n{\r\n\tthenBy(keySelector:(value:T) => any):IOrderedEnumerable;\r\n\tthenByDescending(keySelector:(value:T) => any):IOrderedEnumerable;\r\n\tthenUsing(comparison:Comparison):IOrderedEnumerable;\r\n\tthenUsingReversed(comparison:Comparison):IOrderedEnumerable\r\n}\r\n\r\nclass OrderedEnumerable\r\nextends FiniteEnumerable implements IOrderedEnumerable\r\n{\r\n\r\n\tconstructor(\r\n\t\tprivate source:IEnumerable,\r\n\t\tpublic keySelector:(value:T) => TOrderBy,\r\n\t\tpublic order:Order,\r\n\t\tpublic parent?:OrderedEnumerable,\r\n\t\tpublic comparer:Comparison = Values.compare)\r\n\t{\r\n\t\tsuper(null);\r\n\t\tthrowIfEndless(source && source.isEndless);\r\n\t}\r\n\r\n\tprivate createOrderedEnumerable(\r\n\t\tkeySelector:(value:T) => TOrderBy,\r\n\t\torder:Order):IOrderedEnumerable\r\n\t{\r\n\t\treturn new OrderedEnumerable(this.source, keySelector, order, this);\r\n\t}\r\n\r\n\tthenBy(keySelector:(value:T) => TOrderBy):IOrderedEnumerable\r\n\t{\r\n\t\treturn this.createOrderedEnumerable(keySelector, Order.Ascending);\r\n\t}\r\n\r\n\tthenUsing(comparison:Comparison):IOrderedEnumerable\r\n\t{\r\n\t\treturn new OrderedEnumerable(this.source, null, Order.Ascending, this, comparison);\r\n\t}\r\n\r\n\tthenByDescending(keySelector:(value:T) => TOrderBy):IOrderedEnumerable\r\n\t{\r\n\t\treturn this.createOrderedEnumerable(keySelector, Order.Descending);\r\n\t}\r\n\r\n\tthenUsingReversed(comparison:Comparison):IOrderedEnumerable\r\n\t{\r\n\t\treturn new OrderedEnumerable(this.source, null, Order.Descending, this, comparison);\r\n\t}\r\n\r\n\tgetEnumerator():EnumeratorBase\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar buffer:T[];\r\n\t\tvar indexes:number[];\r\n\t\tvar index:number = 0;\r\n\r\n\t\treturn new EnumeratorBase(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tindex = 0;\r\n\t\t\t\tbuffer = Enumerable.toArray(_.source);\r\n\t\t\t\tindexes = createSortContext(_).generateSortedIndexes(buffer);\r\n\t\t\t},\r\n\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\t\t\t\treturn (index\r\n\t\t\t{\r\n\t\t\t\tif(buffer)\r\n\t\t\t\t\tbuffer.length = 0;\r\n\t\t\t\tbuffer = null;\r\n\t\t\t\tif(indexes)\r\n\t\t\t\t\tindexes.length = 0;\r\n\t\t\t\tindexes = null;\r\n\t\t\t},\r\n\r\n\t\t\tfalse\r\n\t\t);\r\n\t}\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis.source = null;\r\n\t\tthis.keySelector = null;\r\n\t\tthis.order = null;\r\n\t\tthis.parent = null;\r\n\t}\r\n\r\n}\r\n\r\n// A private static helper for the weave function.\r\nfunction nextEnumerator(queue:Queue>, e:IEnumerator):IEnumerator {\r\n\tif(e) {\r\n\t\tif(e.moveNext()) {\r\n\t\t\tqueue.enqueue(e);\r\n\t\t} else {\r\n\t\t\tdispose(e);\r\n\t\t\te = null;\r\n\t\t}\r\n\t}\r\n\treturn e;\r\n}\r\n\r\n/**\r\n * Recursively builds a SortContext chain.\r\n * @param orderedEnumerable\r\n * @param currentContext\r\n * @returns {any}\r\n */\r\nfunction createSortContext(\r\n\torderedEnumerable:OrderedEnumerable,\r\n\tcurrentContext:IComparer = null):KeySortedContext\r\n{\r\n\r\n\tvar context = new KeySortedContext(\r\n\t\tcurrentContext,\r\n\t\torderedEnumerable.keySelector,\r\n\t\torderedEnumerable.order,\r\n\t\torderedEnumerable.comparer);\r\n\r\n\tif(orderedEnumerable.parent)\r\n\t\treturn createSortContext(orderedEnumerable.parent, context);\r\n\r\n\treturn context;\r\n}\r\n\r\n// #region Helper Functions...\r\n// This allows for the use of a boolean instead of calling this.throwIfDisposed()\r\n// since there is a strong chance of introducing a circular reference.\r\nfunction throwIfDisposed(disposed:boolean):void\r\n{\r\n\tif(disposed) throw new ObjectDisposedException(\"Enumerable\");\r\n}\r\n// #endregion\r\n\r\nexport default Enumerable;\r\n"]} \ No newline at end of file +{"version":3,"sources":["System.Linq/Linq.js","System.Linq/Linq.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","Values","Arrays","ArrayUtility","Enumerator_1","Types_1","Integer_1","Functions_1","ArrayEnumerator_1","EnumeratorBase_1","Dictionary_1","Queue_1","dispose_1","DisposableBase_1","UnsupportedEnumerableException_1","ObjectDisposedException_1","KeySortedContext_1","ArgumentNullException_1","ArgumentOutOfRangeException_1","getEmptyEnumerator","empty","nextEnumerator","queue","e","moveNext","enqueue","dispose","createSortContext","orderedEnumerable","currentContext","context","KeySortedContext","keySelector","order","comparer","parent","throwIfDisposed","disposed","ObjectDisposedException","INVALID_DEFAULT","VOID0","BREAK","element","LinqFunctions","_super","apply","arguments","Greater","a","Lesser","Functions","freeze","InfiniteEnumerable","_enumeratorFactory","finalizer","call","_isEndless","defineProperty","get","enumerable","configurable","getEnumerator","_onDispose","asEnumerable","_","doAction","action","initializer","isEndless","Enumerable","enumerator","index","EnumeratorBase","yielder","actionResult","current","yieldBreak","yieldReturn","force","skip","count","isFinite","Integer","assert","take","ArgumentOutOfRangeException","elementAt","v","elementAtOrDefault","defaultValue","assertZeroOrGreater","n","using","i","first","firstOrDefault","Error","single","value","singleOrDefault","any","isEmpty","traverseBreadthFirst","childrenSelector","resultSelector","Identity","buffer","len","nestLevel","next","from","selectMany","length","traverseDepthFirst","enumeratorStack","fromAny","these","flatten","middleEnumerator","c","Type","isString","pairwise","selector","prev","scan","func","seed","isUseSeed","isFirst","select","_selectMany","collectionSelector","undefined","middleSeq","_choose","result","choose","where","predicate","ofType","type","typeName","Number","NUMBER","String","STRING","Boolean","BOOLEAN","Function","FUNCTION","x","except","second","compareSelector","keys","Dictionary","forEach","key","addByKeyValue","containsKey","clear","distinct","distinctUntilChanged","compareKey","initial","areEqual","defaultIfEmpty","zip","firstEnumerator","secondEnumerator","zipMultiple","secondTemp","Queue","dequeue","join","inner","outerKeySelector","innerKeySelector","outerEnumerator","lookup","innerElements","innerCount","toLookup","innerElement","groupJoin","merge","enumerables","concat","_i","union","insertAt","other","isEnumerated","alternateMultiple","sequence","mode","alternateEnumerator","ArrayEnumerator","toArray","hasAtLeastOne","reset","latest","another","alternateSingle","make","alternate","catchError","handler","finallyAction","size","array","initialize","share","sharedEnumerator","DisposableBase","enumeratorFactory","source","UnsupportedEnumerableException","defaultEnumerable","isObject","isArrayLike","ArrayEnumerable","isEnumerable","fromOrEmpty","choice","values","random","chooseFrom","args","cycle","cycleThrough","FiniteEnumerable","repeat","Infinity","repeatWithFinalize","range","start","step","rangeDown","Math","abs","toInfinity","toNegativeInfinity","rangeTo","to","isNaN","matches","input","pattern","flags","ArgumentNullException","RegExp","indexOf","regex","match","exec","generate","factory","unfold","valueFactory","skipSeed","map","max","takeUntil","aggregate","min","weave","mainEnumerator","dump","skipWhile","takeWhile","includeUntilValue","found","throwIfEndless","copyTo","target","elementSelector","dict","getValue","push","Lookup","toMap","obj","toDictionary","toJoinedString","separator","takeExceptLast","q","skipToLast","reverse","shuffle","capacity","selectedIndex","selectedValue","all","every","some","contains","lastIndexOf","intersect","outs","sequenceEqual","equalityComparer","e1","e2","orderBy","OrderedEnumerable","orderUsing","comparison","orderUsingReversed","orderByDescending","groupBy","_this","partitionBy","elements","Grouping","group","hasNext","lastOrDefault","average","numberOrNaN","sum","NaN","maxBy","minBy","sumInfinite","product","exists","quotient","last","memoize","cache","_source","_disposableObjectName","s","Array","isArray","_groupKey","_dictionary","compare","createOrderedEnumerable","thenBy","thenUsing","thenByDescending","thenUsingReversed","indexes","generateSortedIndexes"],"mappings":"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","file":"System.Linq/Linq.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Original: http://linqjs.codeplex.com/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"../System/Compare\", \"../System/Collections/Array/Compare\", \"../System/Collections/Array/Utility\", \"../System/Collections/Enumeration/Enumerator\", \"../System/Types\", \"../System/Integer\", \"../System/Functions\", \"../System/Collections/Enumeration/ArrayEnumerator\", \"../System/Collections/Enumeration/EnumeratorBase\", \"../System/Collections/Dictionaries/Dictionary\", \"../System/Collections/Queue\", \"../System/Disposable/dispose\", \"../System/Disposable/DisposableBase\", \"../System/Collections/Enumeration/UnsupportedEnumerableException\", \"../System/Disposable/ObjectDisposedException\", \"../System/Collections/Sorting/KeySortedContext\", \"../System/Exceptions/ArgumentNullException\", \"../System/Exceptions/ArgumentOutOfRangeException\"], function (require, exports, Values, Arrays, ArrayUtility, Enumerator_1, Types_1, Integer_1, Functions_1, ArrayEnumerator_1, EnumeratorBase_1, Dictionary_1, Queue_1, dispose_1, DisposableBase_1, UnsupportedEnumerableException_1, ObjectDisposedException_1, KeySortedContext_1, ArgumentNullException_1, ArgumentOutOfRangeException_1) {\n \"use strict\";\n var INVALID_DEFAULT = {};\n var VOID0 = void 0;\n var BREAK = function (element) { return 0; };\n var LinqFunctions = (function (_super) {\n __extends(LinqFunctions, _super);\n function LinqFunctions() {\n _super.apply(this, arguments);\n }\n LinqFunctions.prototype.Greater = function (a, b) {\n return a > b ? a : b;\n };\n LinqFunctions.prototype.Lesser = function (a, b) {\n return a < b ? a : b;\n };\n return LinqFunctions;\n }(Functions_1.Functions));\n var Functions = new LinqFunctions();\n Object.freeze(Functions);\n function getEmptyEnumerator() {\n return Enumerator_1.empty;\n }\n var InfiniteEnumerable = (function (_super) {\n __extends(InfiniteEnumerable, _super);\n function InfiniteEnumerable(_enumeratorFactory, finalizer) {\n _super.call(this, finalizer);\n this._enumeratorFactory = _enumeratorFactory;\n this._isEndless = true;\n }\n Object.defineProperty(InfiniteEnumerable.prototype, \"isEndless\", {\n get: function () {\n return this._isEndless;\n },\n enumerable: true,\n configurable: true\n });\n InfiniteEnumerable.prototype.getEnumerator = function () {\n this.throwIfDisposed();\n return this._enumeratorFactory();\n };\n InfiniteEnumerable.prototype._onDispose = function () {\n _super.prototype._onDispose.call(this);\n this._enumeratorFactory = null;\n };\n InfiniteEnumerable.prototype.asEnumerable = function () {\n var _ = this;\n _.throwIfDisposed();\n return new InfiniteEnumerable(function () { return _.getEnumerator(); });\n };\n InfiniteEnumerable.prototype.doAction = function (action, initializer, isEndless) {\n if (isEndless === void 0) { isEndless = this.isEndless; }\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(function () {\n var enumerator;\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n throwIfDisposed(disposed);\n if (initializer)\n initializer();\n index = 0;\n enumerator = _.getEnumerator();\n }, function (yielder) {\n throwIfDisposed(disposed);\n while (enumerator.moveNext()) {\n var actionResult = action(enumerator.current, index++);\n if (actionResult === false || actionResult === 0)\n return yielder.yieldBreak();\n if (actionResult !== 2)\n return yielder.yieldReturn(enumerator.current);\n }\n return false;\n }, function () {\n dispose_1.dispose(enumerator);\n }, isEndless);\n }, function () {\n disposed = true;\n }, isEndless);\n };\n InfiniteEnumerable.prototype.force = function () {\n this.throwIfDisposed();\n this.doAction(BREAK)\n .getEnumerator()\n .moveNext();\n };\n InfiniteEnumerable.prototype.skip = function (count) {\n var _ = this;\n _.throwIfDisposed();\n if (!isFinite(count))\n return Enumerable.empty();\n Integer_1.Integer.assert(count, \"count\");\n return this.doAction(function (element, index) {\n return index < count\n ? 2\n : 1;\n });\n };\n InfiniteEnumerable.prototype.take = function (count) {\n if (!(count > 0))\n return Enumerable.empty();\n var _ = this;\n _.throwIfDisposed();\n if (!isFinite(count))\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('count', count, 'Must be finite.');\n Integer_1.Integer.assert(count, \"count\");\n return _.doAction(function (element, index) { return index < count; }, null, false);\n };\n InfiniteEnumerable.prototype.elementAt = function (index) {\n var v = this.elementAtOrDefault(index, INVALID_DEFAULT);\n if (v === INVALID_DEFAULT)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('index', index, \"is greater than or equal to the number of elements in source\");\n return v;\n };\n InfiniteEnumerable.prototype.elementAtOrDefault = function (index, defaultValue) {\n if (defaultValue === void 0) { defaultValue = null; }\n var _ = this;\n _.throwIfDisposed();\n Integer_1.Integer.assertZeroOrGreater(index, 'index');\n var n = index;\n return dispose_1.using(this.getEnumerator(), function (e) {\n var i = 0;\n while (e.moveNext()) {\n if (i == n)\n return e.current;\n i++;\n }\n return defaultValue;\n });\n };\n InfiniteEnumerable.prototype.first = function () {\n var v = this.firstOrDefault(INVALID_DEFAULT);\n if (v === INVALID_DEFAULT)\n throw new Error(\"first:The sequence is empty.\");\n return v;\n };\n InfiniteEnumerable.prototype.firstOrDefault = function (defaultValue) {\n if (defaultValue === void 0) { defaultValue = null; }\n var _ = this;\n _.throwIfDisposed();\n return dispose_1.using(this.getEnumerator(), function (e) { return e.moveNext() ? e.current : defaultValue; });\n };\n InfiniteEnumerable.prototype.single = function () {\n var _ = this;\n _.throwIfDisposed();\n return dispose_1.using(this.getEnumerator(), function (e) {\n if (e.moveNext()) {\n var value = e.current;\n if (!e.moveNext())\n return value;\n throw new Error(\"single:sequence contains more than one element.\");\n }\n throw new Error(\"single:The sequence is empty.\");\n });\n };\n InfiniteEnumerable.prototype.singleOrDefault = function (defaultValue) {\n if (defaultValue === void 0) { defaultValue = null; }\n var _ = this;\n _.throwIfDisposed();\n return dispose_1.using(this.getEnumerator(), function (e) {\n if (e.moveNext()) {\n var value = e.current;\n if (!e.moveNext())\n return value;\n }\n return defaultValue;\n });\n };\n InfiniteEnumerable.prototype.any = function () {\n var _ = this;\n _.throwIfDisposed();\n return dispose_1.using(this.getEnumerator(), function (e) { return e.moveNext(); });\n };\n InfiniteEnumerable.prototype.isEmpty = function () {\n return !this.any();\n };\n InfiniteEnumerable.prototype.traverseBreadthFirst = function (childrenSelector, resultSelector) {\n if (resultSelector === void 0) { resultSelector = Functions.Identity; }\n var _ = this, isEndless = _._isEndless || null;\n return new Enumerable(function () {\n var enumerator;\n var nestLevel = 0;\n var buffer, len;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n nestLevel = 0;\n buffer = [];\n len = 0;\n enumerator = _.getEnumerator();\n }, function (yielder) {\n while (true) {\n if (enumerator.moveNext()) {\n buffer[len++] = enumerator.current;\n return yielder.yieldReturn(resultSelector(enumerator.current, nestLevel));\n }\n if (!len)\n return yielder.yieldBreak();\n var next = Enumerable\n .from(buffer)\n .selectMany(childrenSelector);\n if (!next.any()) {\n return yielder.yieldBreak();\n }\n else {\n nestLevel++;\n buffer = [];\n len = 0;\n enumerator.dispose();\n enumerator = next.getEnumerator();\n }\n }\n }, function () {\n dispose_1.dispose(enumerator);\n buffer.length = 0;\n }, isEndless);\n }, null, isEndless);\n };\n InfiniteEnumerable.prototype.traverseDepthFirst = function (childrenSelector, resultSelector) {\n if (resultSelector === void 0) { resultSelector = Functions.Identity; }\n var _ = this, isEndless = _._isEndless || null;\n return new Enumerable(function () {\n var enumeratorStack = [];\n var enumerator;\n var len;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n enumerator = _.getEnumerator();\n len = 0;\n }, function (yielder) {\n while (true) {\n if (enumerator.moveNext()) {\n var value = resultSelector(enumerator.current, len);\n enumeratorStack[len++] = enumerator;\n var e = Enumerable.fromAny(childrenSelector(enumerator.current));\n enumerator = e ? e.getEnumerator() : Enumerator_1.empty;\n return yielder.yieldReturn(value);\n }\n if (len == 0)\n return false;\n enumerator.dispose();\n enumerator = enumeratorStack[--len];\n enumeratorStack.length = len;\n }\n }, function () {\n try {\n dispose_1.dispose(enumerator);\n }\n finally {\n dispose_1.dispose.these(enumeratorStack);\n }\n }, isEndless);\n }, null, isEndless);\n };\n InfiniteEnumerable.prototype.flatten = function () {\n var _ = this, isEndless = _._isEndless || null;\n return new Enumerable(function () {\n var enumerator;\n var middleEnumerator = null;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n enumerator = _.getEnumerator();\n }, function (yielder) {\n while (true) {\n if (middleEnumerator) {\n if (middleEnumerator.moveNext()) {\n return yielder.yieldReturn(middleEnumerator.current);\n }\n else {\n middleEnumerator.dispose();\n middleEnumerator = null;\n }\n }\n if (enumerator.moveNext()) {\n var c = enumerator.current;\n var e = !Types_1.Type.isString(c) && Enumerable.fromAny(c);\n if (e) {\n middleEnumerator\n = e\n .selectMany(Functions.Identity)\n .flatten()\n .getEnumerator();\n continue;\n }\n else {\n return yielder.yieldReturn(c);\n }\n }\n return yielder.yieldBreak();\n }\n }, function () {\n dispose_1.dispose(enumerator, middleEnumerator);\n }, isEndless);\n }, null, isEndless);\n };\n InfiniteEnumerable.prototype.pairwise = function (selector) {\n var _ = this;\n return new Enumerable(function () {\n var enumerator;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n enumerator = _.getEnumerator();\n enumerator.moveNext();\n }, function (yielder) {\n var prev = enumerator.current;\n return enumerator.moveNext()\n && yielder.yieldReturn(selector(prev, enumerator.current));\n }, function () {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, null, _._isEndless);\n };\n InfiniteEnumerable.prototype.scan = function (func, seed) {\n var isUseSeed = seed !== VOID0;\n var _ = this;\n return new Enumerable(function () {\n var enumerator;\n var value;\n var isFirst;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n enumerator = _.getEnumerator();\n isFirst = true;\n }, function (yielder) {\n if (isFirst) {\n isFirst = false;\n return isUseSeed\n ? yielder.yieldReturn(value = seed)\n : enumerator.moveNext() && yielder.yieldReturn(value\n = enumerator.current);\n }\n return (enumerator.moveNext())\n ? yielder.yieldReturn(value = func(value, enumerator.current))\n : false;\n }, function () {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, null, _._isEndless);\n };\n InfiniteEnumerable.prototype.select = function (selector) {\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(function () {\n var enumerator;\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n throwIfDisposed(disposed);\n index = 0;\n enumerator = _.getEnumerator();\n }, function (yielder) {\n throwIfDisposed(disposed);\n return enumerator.moveNext()\n ? yielder.yieldReturn(selector(enumerator.current, index++))\n : yielder.yieldBreak();\n }, function () {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, function () {\n disposed = true;\n }, _._isEndless);\n };\n InfiniteEnumerable.prototype._selectMany = function (collectionSelector, resultSelector) {\n var _ = this, isEndless = _._isEndless || null;\n if (!resultSelector)\n resultSelector = function (a, b) { return b; };\n return new Enumerable(function () {\n var enumerator;\n var middleEnumerator;\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n enumerator = _.getEnumerator();\n middleEnumerator = undefined;\n index = 0;\n }, function (yielder) {\n if (middleEnumerator === VOID0 && !enumerator.moveNext())\n return false;\n do {\n if (!middleEnumerator) {\n var middleSeq = collectionSelector(enumerator.current, index++);\n if (!middleSeq)\n continue;\n middleEnumerator = Enumerator_1.from(middleSeq);\n }\n if (middleEnumerator.moveNext())\n return yielder.yieldReturn(resultSelector(enumerator.current, middleEnumerator.current));\n middleEnumerator.dispose();\n middleEnumerator = null;\n } while (enumerator.moveNext());\n return false;\n }, function () {\n dispose_1.dispose(enumerator, middleEnumerator);\n enumerator = null;\n middleEnumerator = null;\n }, isEndless);\n }, null, isEndless);\n };\n InfiniteEnumerable.prototype.selectMany = function (collectionSelector, resultSelector) {\n return this._selectMany(collectionSelector, resultSelector);\n };\n InfiniteEnumerable.prototype._choose = function (selector) {\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(function () {\n var enumerator;\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n throwIfDisposed(disposed);\n index = 0;\n enumerator = _.getEnumerator();\n }, function (yielder) {\n throwIfDisposed(disposed);\n while (enumerator.moveNext()) {\n var result = selector(enumerator.current, index++);\n if (result !== null && result !== VOID0)\n return yielder.yieldReturn(result);\n }\n return false;\n }, function () {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, function () {\n disposed = true;\n }, _._isEndless);\n };\n InfiniteEnumerable.prototype.choose = function (selector) {\n if (selector === void 0) { selector = Functions.Identity; }\n return this._choose(selector);\n };\n InfiniteEnumerable.prototype.where = function (predicate) {\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(function () {\n var enumerator;\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n throwIfDisposed(disposed);\n index = 0;\n enumerator = _.getEnumerator();\n }, function (yielder) {\n throwIfDisposed(disposed);\n while (enumerator.moveNext()) {\n if (predicate(enumerator.current, index++))\n return yielder.yieldReturn(enumerator.current);\n }\n return false;\n }, function () {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, function () {\n disposed = true;\n }, _._isEndless);\n };\n InfiniteEnumerable.prototype.ofType = function (type) {\n var typeName;\n switch (type) {\n case Number:\n typeName = Types_1.Type.NUMBER;\n break;\n case String:\n typeName = Types_1.Type.STRING;\n break;\n case Boolean:\n typeName = Types_1.Type.BOOLEAN;\n break;\n case Function:\n typeName = Types_1.Type.FUNCTION;\n break;\n default:\n return this\n .where(function (x) { return x instanceof type; });\n }\n return this\n .choose()\n .where(function (x) { return (typeof x) === typeName; });\n };\n InfiniteEnumerable.prototype.except = function (second, compareSelector) {\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(function () {\n var enumerator;\n var keys;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n throwIfDisposed(disposed);\n enumerator = _.getEnumerator();\n keys = new Dictionary_1.Dictionary(compareSelector);\n if (second)\n Enumerator_1.forEach(second, function (key) { return keys.addByKeyValue(key, true); });\n }, function (yielder) {\n throwIfDisposed(disposed);\n while (enumerator.moveNext()) {\n var current = enumerator.current;\n if (!keys.containsKey(current)) {\n keys.addByKeyValue(current, true);\n return yielder.yieldReturn(current);\n }\n }\n return false;\n }, function () {\n dispose_1.dispose(enumerator);\n keys.clear();\n }, _._isEndless);\n }, function () {\n disposed = true;\n }, _._isEndless);\n };\n InfiniteEnumerable.prototype.distinct = function (compareSelector) {\n return this.except(null, compareSelector);\n };\n InfiniteEnumerable.prototype.distinctUntilChanged = function (compareSelector) {\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(function () {\n var enumerator;\n var compareKey;\n var initial = true;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n throwIfDisposed(disposed);\n enumerator = _.getEnumerator();\n }, function (yielder) {\n throwIfDisposed(disposed);\n while (enumerator.moveNext()) {\n var key = compareSelector(enumerator.current);\n if (initial) {\n initial = false;\n }\n else if (Values.areEqual(compareKey, key)) {\n continue;\n }\n compareKey = key;\n return yielder.yieldReturn(enumerator.current);\n }\n return false;\n }, function () {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, function () {\n disposed = true;\n }, _._isEndless);\n };\n InfiniteEnumerable.prototype.defaultIfEmpty = function (defaultValue) {\n if (defaultValue === void 0) { defaultValue = null; }\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(function () {\n var enumerator;\n var isFirst;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n isFirst = true;\n throwIfDisposed(disposed);\n enumerator = _.getEnumerator();\n }, function (yielder) {\n throwIfDisposed(disposed);\n if (enumerator.moveNext()) {\n isFirst = false;\n return yielder.yieldReturn(enumerator.current);\n }\n else if (isFirst) {\n isFirst = false;\n return yielder.yieldReturn(defaultValue);\n }\n return false;\n }, function () {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, null, _._isEndless);\n };\n InfiniteEnumerable.prototype.zip = function (second, resultSelector) {\n var _ = this;\n _.throwIfDisposed();\n return new Enumerable(function () {\n var firstEnumerator;\n var secondEnumerator;\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n index = 0;\n firstEnumerator = _.getEnumerator();\n secondEnumerator = Enumerator_1.from(second);\n }, function (yielder) { return firstEnumerator.moveNext()\n && secondEnumerator.moveNext()\n && yielder.yieldReturn(resultSelector(firstEnumerator.current, secondEnumerator.current, index++)); }, function () {\n dispose_1.dispose(firstEnumerator, secondEnumerator);\n });\n });\n };\n InfiniteEnumerable.prototype.zipMultiple = function (second, resultSelector) {\n var _ = this;\n _.throwIfDisposed();\n if (!second.length)\n return Enumerable.empty();\n return new Enumerable(function () {\n var secondTemp;\n var firstEnumerator;\n var secondEnumerator;\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n secondTemp = new Queue_1.Queue(second);\n index = 0;\n firstEnumerator = _.getEnumerator();\n secondEnumerator = null;\n }, function (yielder) {\n if (firstEnumerator.moveNext()) {\n while (true) {\n while (!secondEnumerator) {\n if (secondTemp.count) {\n var next = secondTemp.dequeue();\n if (next)\n secondEnumerator = Enumerator_1.from(next);\n }\n else\n return yielder.yieldBreak();\n }\n if (secondEnumerator.moveNext())\n return yielder.yieldReturn(resultSelector(firstEnumerator.current, secondEnumerator.current, index++));\n secondEnumerator.dispose();\n secondEnumerator = null;\n }\n }\n return yielder.yieldBreak();\n }, function () {\n dispose_1.dispose(firstEnumerator, secondTemp);\n });\n });\n };\n InfiniteEnumerable.prototype.join = function (inner, outerKeySelector, innerKeySelector, resultSelector, compareSelector) {\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\n var _ = this;\n return new Enumerable(function () {\n var outerEnumerator;\n var lookup;\n var innerElements = null;\n var innerCount = 0;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n outerEnumerator = _.getEnumerator();\n lookup = Enumerable.from(inner)\n .toLookup(innerKeySelector, Functions.Identity, compareSelector);\n }, function (yielder) {\n while (true) {\n if (innerElements != null) {\n var innerElement = innerElements[innerCount++];\n if (innerElement !== VOID0)\n return yielder.yieldReturn(resultSelector(outerEnumerator.current, innerElement));\n innerElement = null;\n innerCount = 0;\n }\n if (outerEnumerator.moveNext()) {\n var key = outerKeySelector(outerEnumerator.current);\n innerElements = lookup.get(key);\n }\n else {\n return yielder.yieldBreak();\n }\n }\n }, function () {\n dispose_1.dispose(outerEnumerator);\n });\n });\n };\n InfiniteEnumerable.prototype.groupJoin = function (inner, outerKeySelector, innerKeySelector, resultSelector, compareSelector) {\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\n var _ = this;\n return new Enumerable(function () {\n var enumerator;\n var lookup = null;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n enumerator = _.getEnumerator();\n lookup = Enumerable.from(inner)\n .toLookup(innerKeySelector, Functions.Identity, compareSelector);\n }, function (yielder) {\n return enumerator.moveNext()\n && yielder.yieldReturn(resultSelector(enumerator.current, lookup.get(outerKeySelector(enumerator.current))));\n }, function () {\n dispose_1.dispose(enumerator);\n });\n });\n };\n InfiniteEnumerable.prototype.merge = function (enumerables) {\n var _ = this, isEndless = _._isEndless || null;\n if (!enumerables || enumerables.length == 0)\n return _;\n return new Enumerable(function () {\n var enumerator;\n var queue;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n enumerator = _.getEnumerator();\n queue = new Queue_1.Queue(enumerables);\n }, function (yielder) {\n while (true) {\n while (!enumerator && queue.count) {\n enumerator = Enumerator_1.from(queue.dequeue());\n }\n if (enumerator && enumerator.moveNext())\n return yielder.yieldReturn(enumerator.current);\n if (enumerator) {\n enumerator.dispose();\n enumerator = null;\n continue;\n }\n return yielder.yieldBreak();\n }\n }, function () {\n dispose_1.dispose(enumerator, queue);\n }, isEndless);\n }, null, isEndless);\n };\n InfiniteEnumerable.prototype.concat = function () {\n var enumerables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n enumerables[_i - 0] = arguments[_i];\n }\n return this.merge(enumerables);\n };\n InfiniteEnumerable.prototype.union = function (second, compareSelector) {\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\n var _ = this, isEndless = _._isEndless || null;\n return new Enumerable(function () {\n var firstEnumerator;\n var secondEnumerator;\n var keys;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n firstEnumerator = _.getEnumerator();\n keys = new Dictionary_1.Dictionary(compareSelector);\n }, function (yielder) {\n var current;\n if (secondEnumerator === VOID0) {\n while (firstEnumerator.moveNext()) {\n current = firstEnumerator.current;\n if (!keys.containsKey(current)) {\n keys.addByKeyValue(current, null);\n return yielder.yieldReturn(current);\n }\n }\n secondEnumerator = Enumerator_1.from(second);\n }\n while (secondEnumerator.moveNext()) {\n current = secondEnumerator.current;\n if (!keys.containsKey(current)) {\n keys.addByKeyValue(current, null);\n return yielder.yieldReturn(current);\n }\n }\n return false;\n }, function () {\n dispose_1.dispose(firstEnumerator, secondEnumerator);\n }, isEndless);\n }, null, isEndless);\n };\n InfiniteEnumerable.prototype.insertAt = function (index, other) {\n Integer_1.Integer.assertZeroOrGreater(index, 'index');\n var n = index;\n var _ = this, isEndless = _._isEndless || null;\n _.throwIfDisposed();\n return new Enumerable(function () {\n var firstEnumerator;\n var secondEnumerator;\n var count = 0;\n var isEnumerated = false;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n count = 0;\n firstEnumerator = _.getEnumerator();\n secondEnumerator = Enumerator_1.from(other);\n isEnumerated = false;\n }, function (yielder) {\n if (count == n) {\n isEnumerated = true;\n if (secondEnumerator.moveNext())\n return yielder.yieldReturn(secondEnumerator.current);\n }\n if (firstEnumerator.moveNext()) {\n count++;\n return yielder.yieldReturn(firstEnumerator.current);\n }\n return !isEnumerated\n && secondEnumerator.moveNext()\n && yielder.yieldReturn(secondEnumerator.current);\n }, function () {\n dispose_1.dispose(firstEnumerator, secondEnumerator);\n }, isEndless);\n }, null, isEndless);\n };\n InfiniteEnumerable.prototype.alternateMultiple = function (sequence) {\n var _ = this;\n return new Enumerable(function () {\n var buffer, mode, enumerator, alternateEnumerator;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n alternateEnumerator = new ArrayEnumerator_1.ArrayEnumerator(Enumerable.toArray(sequence));\n enumerator = _.getEnumerator();\n var hasAtLeastOne = enumerator.moveNext();\n mode = hasAtLeastOne\n ? 1\n : 0;\n if (hasAtLeastOne)\n buffer = enumerator.current;\n }, function (yielder) {\n switch (mode) {\n case 0:\n return yielder.yieldBreak();\n case 2:\n if (alternateEnumerator.moveNext())\n return yielder.yieldReturn(alternateEnumerator.current);\n alternateEnumerator.reset();\n mode = 1;\n break;\n }\n var latest = buffer;\n var another = enumerator.moveNext();\n mode = another\n ? 2\n : 0;\n if (another)\n buffer = enumerator.current;\n return yielder.yieldReturn(latest);\n }, function () {\n dispose_1.dispose(enumerator, alternateEnumerator);\n }, _._isEndless);\n }, null, _._isEndless);\n };\n InfiniteEnumerable.prototype.alternateSingle = function (value) {\n return this.alternateMultiple(Enumerable.make(value));\n };\n InfiniteEnumerable.prototype.alternate = function () {\n var sequence = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n sequence[_i - 0] = arguments[_i];\n }\n return this.alternateMultiple(sequence);\n };\n InfiniteEnumerable.prototype.catchError = function (handler) {\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(function () {\n var enumerator;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n try {\n throwIfDisposed(disposed);\n enumerator = _.getEnumerator();\n }\n catch (e) {\n }\n }, function (yielder) {\n try {\n throwIfDisposed(disposed);\n if (enumerator.moveNext())\n return yielder.yieldReturn(enumerator.current);\n }\n catch (e) {\n handler(e);\n }\n return false;\n }, function () {\n dispose_1.dispose(enumerator);\n });\n });\n };\n InfiniteEnumerable.prototype.finallyAction = function (action) {\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(function () {\n var enumerator;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n throwIfDisposed(disposed);\n enumerator = _.getEnumerator();\n }, function (yielder) {\n throwIfDisposed(disposed);\n return (enumerator.moveNext())\n ? yielder.yieldReturn(enumerator.current)\n : false;\n }, function () {\n try {\n dispose_1.dispose(enumerator);\n }\n finally {\n action();\n }\n });\n });\n };\n InfiniteEnumerable.prototype.buffer = function (size) {\n if (size < 1 || !isFinite(size))\n throw new Error(\"Invalid buffer size.\");\n Integer_1.Integer.assert(size, \"size\");\n var _ = this, len;\n return new Enumerable(function () {\n var enumerator;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n enumerator = _.getEnumerator();\n }, function (yielder) {\n var array = ArrayUtility.initialize(size);\n len = 0;\n while (len < size && enumerator.moveNext()) {\n array[len++] = enumerator.current;\n }\n array.length = len;\n return len && yielder.yieldReturn(array);\n }, function () {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, null, _._isEndless);\n };\n InfiniteEnumerable.prototype.share = function () {\n var _ = this;\n _.throwIfDisposed();\n var sharedEnumerator;\n return new Enumerable(function () {\n return sharedEnumerator || (sharedEnumerator = _.getEnumerator());\n }, function () {\n dispose_1.dispose(sharedEnumerator);\n }, _._isEndless);\n };\n return InfiniteEnumerable;\n }(DisposableBase_1.DisposableBase));\n exports.InfiniteEnumerable = InfiniteEnumerable;\n var Enumerable = (function (_super) {\n __extends(Enumerable, _super);\n function Enumerable(enumeratorFactory, finalizer, isEndless) {\n if (isEndless === void 0) { isEndless = null; }\n _super.call(this, enumeratorFactory, finalizer);\n this._isEndless = isEndless;\n }\n Enumerable.from = function (source) {\n var e = Enumerable.fromAny(source);\n if (!e)\n throw new UnsupportedEnumerableException_1.UnsupportedEnumerableException();\n return e;\n };\n Enumerable.fromAny = function (source, defaultEnumerable) {\n if (defaultEnumerable === void 0) { defaultEnumerable = null; }\n if (Types_1.Type.isObject(source) || Types_1.Type.isString(source)) {\n if (source instanceof Enumerable)\n return source;\n if (Types_1.Type.isArrayLike(source))\n return new ArrayEnumerable(source);\n if (Enumerator_1.isEnumerable(source))\n return new Enumerable(function () { return source.getEnumerator(); }, null, source.isEndless);\n }\n return defaultEnumerable;\n };\n Enumerable.fromOrEmpty = function (source) {\n return Enumerable.fromAny(source) || Enumerable.empty();\n };\n Enumerable.toArray = function (source) {\n if (source instanceof Enumerable)\n return source.toArray();\n return Enumerator_1.toArray(source);\n };\n Enumerable.choice = function (values) {\n var len = values && values.length;\n if (!len || !isFinite(len))\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('length', length);\n return new InfiniteEnumerable(function () { return new EnumeratorBase_1.EnumeratorBase(null, function (yielder) {\n return yielder.yieldReturn(Integer_1.Integer.random.select(values));\n }, true); });\n };\n Enumerable.chooseFrom = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i - 0] = arguments[_i];\n }\n return Enumerable.choice(args);\n };\n Enumerable.cycle = function (values) {\n var len = values && values.length;\n if (!len || !isFinite(len))\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('length', length);\n return new InfiniteEnumerable(function () {\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n index = 0;\n }, function (yielder) {\n if (index >= values.length)\n index = 0;\n return yielder.yieldReturn(values[index++]);\n }, true);\n });\n };\n Enumerable.cycleThrough = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i - 0] = arguments[_i];\n }\n return Enumerable.cycle(args);\n };\n Enumerable.empty = function () {\n return new FiniteEnumerable(getEmptyEnumerator);\n };\n Enumerable.repeat = function (element, count) {\n if (count === void 0) { count = Infinity; }\n if (!(count > 0))\n return Enumerable.empty();\n return isFinite(count) && Integer_1.Integer.assert(count, \"count\")\n ? new FiniteEnumerable(function () {\n var c = count;\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(function () { index = 0; }, function (yielder) { return (index++ < c) && yielder.yieldReturn(element); }, null, false);\n })\n : new Enumerable(function () {\n return new EnumeratorBase_1.EnumeratorBase(null, function (yielder) { return yielder.yieldReturn(element); }, true);\n });\n };\n Enumerable.repeatWithFinalize = function (initializer, finalizer) {\n return new InfiniteEnumerable(function () {\n var element;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n element = initializer();\n }, function (yielder) { return yielder.yieldReturn(element); }, function () {\n finalizer(element);\n }, true);\n });\n };\n Enumerable.make = function (element) {\n return Enumerable.repeat(element, 1);\n };\n Enumerable.range = function (start, count, step) {\n if (step === void 0) { step = 1; }\n if (!isFinite(start))\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(\"start\", start, \"Must be a finite number.\");\n if (!(count > 0))\n return Enumerable.empty();\n if (!step)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(\"step\", step, \"Must be a valid value\");\n if (!isFinite(step))\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(\"step\", step, \"Must be a finite number.\");\n Integer_1.Integer.assert(count, \"count\");\n return new FiniteEnumerable(function () {\n var value;\n var c = count;\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n index = 0;\n value = start;\n }, function (yielder) {\n var result = index++ < c\n && yielder.yieldReturn(value);\n if (result && index < count)\n value += step;\n return result;\n }, false);\n });\n };\n Enumerable.rangeDown = function (start, count, step) {\n if (step === void 0) { step = 1; }\n step = Math.abs(step) * -1;\n return Enumerable.range(start, count, step);\n };\n Enumerable.toInfinity = function (start, step) {\n if (start === void 0) { start = 0; }\n if (step === void 0) { step = 1; }\n if (!isFinite(start))\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(\"start\", start, \"Must be a finite number.\");\n if (!step)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(\"step\", step, \"Must be a valid value\");\n if (!isFinite(step))\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(\"step\", step, \"Must be a finite number.\");\n return new InfiniteEnumerable(function () {\n var value;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n value = start;\n }, function (yielder) {\n var current = value;\n value += step;\n return yielder.yieldReturn(current);\n }, true);\n });\n };\n Enumerable.toNegativeInfinity = function (start, step) {\n if (start === void 0) { start = 0; }\n if (step === void 0) { step = 1; }\n return Enumerable.toInfinity(start, -step);\n };\n Enumerable.rangeTo = function (start, to, step) {\n if (step === void 0) { step = 1; }\n if (isNaN(to) || !isFinite(to))\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(\"to\", to, \"Must be a finite number.\");\n if (step && !isFinite(step))\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(\"step\", step, \"Must be a finite non-zero number.\");\n step = Math.abs(step);\n return new FiniteEnumerable(function () {\n var value;\n return new EnumeratorBase_1.EnumeratorBase(function () { value = start; }, start < to\n ?\n function (yielder) {\n var result = value <= to && yielder.yieldReturn(value);\n if (result)\n value += step;\n return result;\n }\n :\n function (yielder) {\n var result = value >= to && yielder.yieldReturn(value);\n if (result)\n value -= step;\n return result;\n }, false);\n });\n };\n Enumerable.matches = function (input, pattern, flags) {\n if (flags === void 0) { flags = \"\"; }\n if (input === null || input === VOID0)\n throw new ArgumentNullException_1.ArgumentNullException(\"input\");\n var type = typeof input;\n if (type != Types_1.Type.STRING)\n throw new Error(\"Cannot exec RegExp matches of type '\" + type + \"'.\");\n if (pattern instanceof RegExp) {\n flags += (pattern.ignoreCase) ? \"i\" : \"\";\n flags += (pattern.multiline) ? \"m\" : \"\";\n pattern = pattern.source;\n }\n if (flags.indexOf(\"g\") === -1)\n flags += \"g\";\n return new FiniteEnumerable(function () {\n var regex;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n regex = new RegExp(pattern, flags);\n }, function (yielder) {\n var match = regex.exec(input);\n return (match !== null) ? yielder.yieldReturn(match) : false;\n });\n });\n };\n Enumerable.generate = function (factory, count) {\n if (count === void 0) { count = Infinity; }\n if (isNaN(count) || count <= 0)\n return Enumerable.empty();\n return isFinite(count) && Integer_1.Integer.assert(count, \"count\")\n ?\n new FiniteEnumerable(function () {\n var c = count;\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n index = 0;\n }, function (yielder) {\n var current = index++;\n return current < c && yielder.yieldReturn(factory(current));\n }, false);\n })\n :\n new InfiniteEnumerable(function () {\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n index = 0;\n }, function (yielder) { return yielder.yieldReturn(factory(index++)); }, true);\n });\n };\n Enumerable.unfold = function (seed, valueFactory, skipSeed) {\n if (skipSeed === void 0) { skipSeed = false; }\n return new InfiniteEnumerable(function () {\n var index = 0;\n var value;\n var isFirst;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n index = 0;\n value = seed;\n isFirst = !skipSeed;\n }, function (yielder) {\n var i = index++;\n if (isFirst)\n isFirst = false;\n else\n value = valueFactory(value, i);\n return yielder.yieldReturn(value);\n }, true);\n });\n };\n Enumerable.forEach = function (enumerable, action) {\n Enumerator_1.forEach(enumerable, action);\n };\n Enumerable.map = function (enumerable, selector) {\n return Enumerator_1.map(enumerable, selector);\n };\n Enumerable.max = function (values) {\n return values\n .takeUntil(function (v) { return v == +Infinity; }, true)\n .aggregate(Functions.Greater);\n };\n Enumerable.min = function (values) {\n return values\n .takeUntil(function (v) { return v == -Infinity; }, true)\n .aggregate(Functions.Lesser);\n };\n Enumerable.weave = function (enumerables) {\n if (!enumerables)\n throw new ArgumentNullException_1.ArgumentNullException('enumerables');\n return new Enumerable(function () {\n var queue;\n var mainEnumerator;\n var index;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n index = 0;\n queue = new Queue_1.Queue();\n mainEnumerator = Enumerator_1.from(enumerables);\n }, function (yielder) {\n var e;\n if (mainEnumerator) {\n while (!e && mainEnumerator.moveNext()) {\n var c = mainEnumerator.current;\n e = nextEnumerator(queue, c && Enumerator_1.from(c));\n }\n if (!e)\n mainEnumerator = null;\n }\n while (!e && queue.count) {\n e = nextEnumerator(queue, queue.dequeue());\n }\n return e\n ? yielder.yieldReturn(e.current)\n : yielder.yieldBreak();\n }, function () {\n dispose_1.dispose.these(queue.dump());\n dispose_1.dispose(mainEnumerator, queue);\n mainEnumerator = null;\n queue = null;\n });\n });\n };\n Enumerable.prototype.doAction = function (action, initializer, isEndless) {\n if (isEndless === void 0) { isEndless = this.isEndless; }\n return _super.prototype.doAction.call(this, action, initializer, isEndless);\n };\n Enumerable.prototype.skip = function (count) {\n return _super.prototype.skip.call(this, count);\n };\n Enumerable.prototype.skipWhile = function (predicate) {\n this.throwIfDisposed();\n return this.doAction(function (element, index) {\n return predicate(element, index)\n ? 2\n : 1;\n });\n };\n Enumerable.prototype.takeWhile = function (predicate) {\n this.throwIfDisposed();\n if (!predicate)\n throw new ArgumentNullException_1.ArgumentNullException('predicate');\n return this.doAction(function (element, index) {\n return predicate(element, index)\n ? 1\n : 0;\n }, null, null);\n };\n Enumerable.prototype.takeUntil = function (predicate, includeUntilValue) {\n this.throwIfDisposed();\n if (!predicate)\n throw new ArgumentNullException_1.ArgumentNullException('predicate');\n if (!includeUntilValue)\n return this.doAction(function (element, index) {\n return predicate(element, index)\n ? 0\n : 1;\n }, null, null);\n var found = false;\n return this.doAction(function (element, index) {\n if (found)\n return 0;\n found = predicate(element, index);\n return 1;\n }, function () {\n found = false;\n }, null);\n };\n Enumerable.prototype.forEach = function (action) {\n var _ = this;\n _.throwIfDisposed();\n Enumerator_1.throwIfEndless(_.isEndless);\n var index = 0;\n dispose_1.using(_.getEnumerator(), function (e) {\n Enumerator_1.throwIfEndless(e.isEndless);\n while (_.throwIfDisposed() && e.moveNext()) {\n if (action(e.current, index++) === false)\n break;\n }\n });\n };\n Enumerable.prototype.toArray = function (predicate) {\n return predicate\n ? this.where(predicate).toArray()\n : this.copyTo([]);\n };\n Enumerable.prototype.copyTo = function (target, index) {\n if (index === void 0) { index = 0; }\n this.throwIfDisposed();\n if (!target)\n throw new ArgumentNullException_1.ArgumentNullException(\"target\");\n Integer_1.Integer.assertZeroOrGreater(index);\n Enumerator_1.forEach(this, function (x, i) {\n target[i + index] = x;\n });\n return target;\n };\n Enumerable.prototype.toLookup = function (keySelector, elementSelector, compareSelector) {\n if (elementSelector === void 0) { elementSelector = Functions.Identity; }\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\n var dict = new Dictionary_1.Dictionary(compareSelector);\n this.forEach(function (x) {\n var key = keySelector(x);\n var element = elementSelector(x);\n var array = dict.getValue(key);\n if (array !== VOID0)\n array.push(element);\n else\n dict.addByKeyValue(key, [element]);\n });\n return new Lookup(dict);\n };\n Enumerable.prototype.toMap = function (keySelector, elementSelector) {\n var obj = {};\n this.forEach(function (x, i) {\n obj[keySelector(x, i)] = elementSelector(x, i);\n });\n return obj;\n };\n Enumerable.prototype.toDictionary = function (keySelector, elementSelector, compareSelector) {\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\n var dict = new Dictionary_1.Dictionary(compareSelector);\n this.forEach(function (x, i) { return dict.addByKeyValue(keySelector(x, i), elementSelector(x, i)); });\n return dict;\n };\n Enumerable.prototype.toJoinedString = function (separator, selector) {\n if (separator === void 0) { separator = \"\"; }\n if (selector === void 0) { selector = Functions.Identity; }\n return this.select(selector).toArray().join(separator);\n };\n Enumerable.prototype.takeExceptLast = function (count) {\n if (count === void 0) { count = 1; }\n var _ = this;\n if (!(count > 0))\n return _;\n if (!isFinite(count))\n return Enumerable.empty();\n Integer_1.Integer.assert(count, \"count\");\n var c = count;\n return new Enumerable(function () {\n var enumerator;\n var q;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n enumerator = _.getEnumerator();\n q = new Queue_1.Queue();\n }, function (yielder) {\n while (enumerator.moveNext()) {\n q.enqueue(enumerator.current);\n if (q.count > c)\n return yielder.yieldReturn(q.dequeue());\n }\n return false;\n }, function () {\n dispose_1.dispose(enumerator, q);\n });\n });\n };\n Enumerable.prototype.skipToLast = function (count) {\n if (!(count > 0))\n return Enumerable.empty();\n var _ = this;\n if (!isFinite(count))\n return _;\n Integer_1.Integer.assert(count, \"count\");\n return _.reverse()\n .take(count)\n .reverse();\n };\n Enumerable.prototype.where = function (predicate) {\n return _super.prototype.where.call(this, predicate);\n };\n Enumerable.prototype.select = function (selector) {\n return _super.prototype.select.call(this, selector);\n };\n Enumerable.prototype.selectMany = function (collectionSelector, resultSelector) {\n return this._selectMany(collectionSelector, resultSelector);\n };\n Enumerable.prototype.choose = function (selector) {\n if (selector === void 0) { selector = Functions.Identity; }\n return this._choose(selector);\n };\n Enumerable.prototype.reverse = function () {\n var _ = this, disposed = !_.throwIfDisposed();\n Enumerator_1.throwIfEndless(_._isEndless);\n return new Enumerable(function () {\n var buffer;\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n throwIfDisposed(disposed);\n buffer = _.toArray();\n index = buffer.length;\n }, function (yielder) { return index && yielder.yieldReturn(buffer[--index]); }, function () {\n buffer.length = 0;\n });\n }, function () {\n disposed = true;\n });\n };\n Enumerable.prototype.shuffle = function () {\n var _ = this, disposed = !_.throwIfDisposed();\n Enumerator_1.throwIfEndless(_._isEndless);\n return new Enumerable(function () {\n var buffer;\n var capacity;\n var len;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n throwIfDisposed(disposed);\n buffer = _.toArray();\n capacity = len = buffer.length;\n }, function (yielder) {\n if (!len)\n return yielder.yieldBreak();\n var selectedIndex = Integer_1.Integer.random(len);\n var selectedValue = buffer[selectedIndex];\n buffer[selectedIndex] = buffer[--len];\n buffer[len] = null;\n if (len % 32 == 0)\n buffer.length = len;\n return yielder.yieldReturn(selectedValue);\n }, function () {\n buffer.length = 0;\n });\n }, function () {\n disposed = true;\n });\n };\n Enumerable.prototype.count = function (predicate) {\n var count = 0;\n this.forEach(predicate\n ?\n function (x, i) {\n if (predicate(x, i))\n ++count;\n }\n :\n function () {\n ++count;\n });\n return count;\n };\n Enumerable.prototype.all = function (predicate) {\n if (!predicate)\n throw new ArgumentNullException_1.ArgumentNullException(\"predicate\");\n var result = true;\n this.forEach(function (x, i) {\n if (!predicate(x, i)) {\n result = false;\n return false;\n }\n });\n return result;\n };\n Enumerable.prototype.every = function (predicate) {\n return this.all(predicate);\n };\n Enumerable.prototype.any = function (predicate) {\n if (!predicate)\n return _super.prototype.any.call(this);\n var result = false;\n this.forEach(function (x, i) {\n result = predicate(x, i);\n return !result;\n });\n return result;\n };\n Enumerable.prototype.some = function (predicate) {\n return this.any(predicate);\n };\n Enumerable.prototype.contains = function (value, compareSelector) {\n return compareSelector\n ? this.any(function (v) { return compareSelector(v) === compareSelector(value); })\n : this.any(function (v) { return v === value; });\n };\n Enumerable.prototype.indexOf = function (value, compareSelector) {\n var found = -1;\n this.forEach(compareSelector\n ?\n function (element, i) {\n if (Values.areEqual(compareSelector(element, i), compareSelector(value, i), true)) {\n found = i;\n return false;\n }\n }\n :\n function (element, i) {\n if (Values.areEqual(element, value, true)) {\n found = i;\n return false;\n }\n });\n return found;\n };\n Enumerable.prototype.lastIndexOf = function (value, compareSelector) {\n var result = -1;\n this.forEach(compareSelector\n ?\n function (element, i) {\n if (Values.areEqual(compareSelector(element, i), compareSelector(value, i), true))\n result\n = i;\n }\n :\n function (element, i) {\n if (Values.areEqual(element, value, true))\n result = i;\n });\n return result;\n };\n Enumerable.prototype.merge = function (enumerables) {\n return _super.prototype.merge.call(this, enumerables);\n };\n Enumerable.prototype.concat = function () {\n var enumerables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n enumerables[_i - 0] = arguments[_i];\n }\n return this.merge(enumerables);\n };\n Enumerable.prototype.intersect = function (second, compareSelector) {\n var _ = this;\n return new Enumerable(function () {\n var enumerator;\n var keys;\n var outs;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n enumerator = _.getEnumerator();\n keys = new Dictionary_1.Dictionary(compareSelector);\n outs = new Dictionary_1.Dictionary(compareSelector);\n Enumerator_1.forEach(second, function (key) {\n keys.addByKeyValue(key, true);\n });\n }, function (yielder) {\n while (enumerator.moveNext()) {\n var current = enumerator.current;\n if (!outs.containsKey(current) && keys.containsKey(current)) {\n outs.addByKeyValue(current, true);\n return yielder.yieldReturn(current);\n }\n }\n return yielder.yieldBreak();\n }, function () {\n dispose_1.dispose(enumerator, keys, outs);\n }, _._isEndless);\n }, null, _._isEndless);\n };\n Enumerable.prototype.sequenceEqual = function (second, equalityComparer) {\n if (equalityComparer === void 0) { equalityComparer = Values.areEqual; }\n return dispose_1.using(this.getEnumerator(), function (e1) { return dispose_1.using(Enumerator_1.from(second), function (e2) {\n Enumerator_1.throwIfEndless(e1.isEndless && e2.isEndless);\n while (e1.moveNext()) {\n if (!e2.moveNext() || !equalityComparer(e1.current, e2.current))\n return false;\n }\n return !e2.moveNext();\n }); });\n };\n Enumerable.prototype.ofType = function (type) {\n return _super.prototype.ofType.call(this, type);\n };\n Enumerable.prototype.except = function (second, compareSelector) {\n return _super.prototype.except.call(this, second, compareSelector);\n };\n Enumerable.prototype.distinct = function (compareSelector) {\n return _super.prototype.distinct.call(this, compareSelector);\n };\n Enumerable.prototype.distinctUntilChanged = function (compareSelector) {\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\n return _super.prototype.distinctUntilChanged.call(this, compareSelector);\n };\n Enumerable.prototype.orderBy = function (keySelector) {\n if (keySelector === void 0) { keySelector = Functions.Identity; }\n return new OrderedEnumerable(this, keySelector, 1);\n };\n Enumerable.prototype.orderUsing = function (comparison) {\n return new OrderedEnumerable(this, null, 1, null, comparison);\n };\n Enumerable.prototype.orderUsingReversed = function (comparison) {\n return new OrderedEnumerable(this, null, -1, null, comparison);\n };\n Enumerable.prototype.orderByDescending = function (keySelector) {\n if (keySelector === void 0) { keySelector = Functions.Identity; }\n return new OrderedEnumerable(this, keySelector, -1);\n };\n Enumerable.prototype.buffer = function (size) {\n return _super.prototype.buffer.call(this, size);\n };\n Enumerable.prototype.groupBy = function (keySelector, elementSelector, compareSelector) {\n var _this = this;\n if (!elementSelector)\n elementSelector = Functions.Identity;\n return new Enumerable(function () { return _this.toLookup(keySelector, elementSelector, compareSelector)\n .getEnumerator(); });\n };\n Enumerable.prototype.partitionBy = function (keySelector, elementSelector, resultSelector, compareSelector) {\n if (resultSelector === void 0) { resultSelector = function (key, elements) { return new Grouping(key, elements); }; }\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\n var _ = this;\n if (!elementSelector)\n elementSelector = Functions.Identity;\n return new Enumerable(function () {\n var enumerator;\n var key;\n var compareKey;\n var group;\n var len;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n enumerator = _.getEnumerator();\n if (enumerator.moveNext()) {\n key = keySelector(enumerator.current);\n compareKey = compareSelector(key);\n group = [elementSelector(enumerator.current)];\n len = 1;\n }\n else\n group = null;\n }, function (yielder) {\n if (!group)\n return yielder.yieldBreak();\n var hasNext, c;\n while ((hasNext = enumerator.moveNext())) {\n c = enumerator.current;\n if (compareKey === compareSelector(keySelector(c)))\n group[len++] = elementSelector(c);\n else\n break;\n }\n var result = resultSelector(key, group);\n if (hasNext) {\n c = enumerator.current;\n key = keySelector(c);\n compareKey = compareSelector(key);\n group = [elementSelector(c)];\n len = 1;\n }\n else {\n group = null;\n }\n return yielder.yieldReturn(result);\n }, function () {\n dispose_1.dispose(enumerator);\n group = null;\n });\n });\n };\n Enumerable.prototype.aggregate = function (func, seed) {\n return this.scan(func, seed).lastOrDefault();\n };\n Enumerable.prototype.average = function (selector) {\n if (selector === void 0) { selector = Types_1.Type.numberOrNaN; }\n var count = 0;\n var sum = this.sum(function (e, i) {\n count++;\n return selector(e, i);\n });\n return (isNaN(sum) || !count)\n ? NaN\n : (sum / count);\n };\n Enumerable.prototype.max = function () {\n return this.aggregate(Functions.Greater);\n };\n Enumerable.prototype.min = function () {\n return this.aggregate(Functions.Lesser);\n };\n Enumerable.prototype.maxBy = function (keySelector) {\n if (keySelector === void 0) { keySelector = Functions.Identity; }\n return this.aggregate(function (a, b) { return (keySelector(a) > keySelector(b)) ? a : b; });\n };\n Enumerable.prototype.minBy = function (keySelector) {\n if (keySelector === void 0) { keySelector = Functions.Identity; }\n return this.aggregate(function (a, b) { return (keySelector(a) < keySelector(b)) ? a : b; });\n };\n Enumerable.prototype.sum = function (selector) {\n if (selector === void 0) { selector = Types_1.Type.numberOrNaN; }\n var sum = 0;\n var sumInfinite = 0;\n this.forEach(function (x) {\n var value = selector(x);\n if (isNaN(value)) {\n sum = NaN;\n return false;\n }\n if (isFinite(value))\n sum += value;\n else\n sumInfinite +=\n value > 0 ?\n (+1) :\n (-1);\n });\n return isNaN(sum) ? NaN : (sumInfinite ? (sumInfinite * Infinity) : sum);\n };\n Enumerable.prototype.product = function (selector) {\n if (selector === void 0) { selector = Types_1.Type.numberOrNaN; }\n var result = 1, exists = false;\n this.forEach(function (x, i) {\n exists = true;\n var value = selector(x, i);\n if (isNaN(value)) {\n result = NaN;\n return false;\n }\n if (value == 0) {\n result = 0;\n return false;\n }\n result *= value;\n });\n return (exists && isNaN(result)) ? NaN : result;\n };\n Enumerable.prototype.quotient = function (selector) {\n if (selector === void 0) { selector = Types_1.Type.numberOrNaN; }\n var count = 0;\n var result = NaN;\n this.forEach(function (x, i) {\n var value = selector(x, i);\n count++;\n if (count === 1) {\n result = value;\n }\n else {\n if (isNaN(value) || value === 0 || !isFinite(value)) {\n result = NaN;\n return false;\n }\n result /= value;\n }\n });\n if (count === 1)\n result = NaN;\n return result;\n };\n Enumerable.prototype.last = function () {\n var _ = this;\n _.throwIfDisposed();\n var value = undefined;\n var found = false;\n _.forEach(function (x) {\n found = true;\n value = x;\n });\n if (!found)\n throw new Error(\"last:No element satisfies the condition.\");\n return value;\n };\n Enumerable.prototype.lastOrDefault = function (defaultValue) {\n if (defaultValue === void 0) { defaultValue = null; }\n var _ = this;\n _.throwIfDisposed();\n var value = undefined;\n var found = false;\n _.forEach(function (x) {\n found = true;\n value = x;\n });\n return (!found) ? defaultValue : value;\n };\n Enumerable.prototype.share = function () {\n return _super.prototype.share.call(this);\n };\n Enumerable.prototype.catchError = function (handler) {\n return _super.prototype.catchError.call(this, handler);\n };\n Enumerable.prototype.finallyAction = function (action) {\n return _super.prototype.finallyAction.call(this, action);\n };\n Enumerable.prototype.memoize = function () {\n var _ = this, disposed = !_.throwIfDisposed();\n var cache;\n var enumerator;\n return new Enumerable(function () {\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n throwIfDisposed(disposed);\n if (!enumerator)\n enumerator = _.getEnumerator();\n if (!cache)\n cache = [];\n index = 0;\n }, function (yielder) {\n throwIfDisposed(disposed);\n var i = index++;\n if (i >= cache.length) {\n return (enumerator.moveNext())\n ? yielder.yieldReturn(cache[i] = enumerator.current)\n : false;\n }\n return yielder.yieldReturn(cache[i]);\n });\n }, function () {\n disposed = true;\n if (cache)\n cache.length = 0;\n cache = null;\n dispose_1.dispose(enumerator);\n enumerator = null;\n });\n };\n return Enumerable;\n }(InfiniteEnumerable));\n exports.Enumerable = Enumerable;\n var FiniteEnumerable = (function (_super) {\n __extends(FiniteEnumerable, _super);\n function FiniteEnumerable(enumeratorFactory, finalizer) {\n _super.call(this, enumeratorFactory, finalizer, false);\n }\n return FiniteEnumerable;\n }(Enumerable));\n exports.FiniteEnumerable = FiniteEnumerable;\n var ArrayEnumerable = (function (_super) {\n __extends(ArrayEnumerable, _super);\n function ArrayEnumerable(source) {\n _super.call(this, function () {\n _.throwIfDisposed();\n return new ArrayEnumerator_1.ArrayEnumerator(function () {\n _.throwIfDisposed(\"The underlying ArrayEnumerable was disposed.\", \"ArrayEnumerator\");\n return _._source;\n });\n });\n var _ = this;\n _._disposableObjectName = \"ArrayEnumerable\";\n _._source = source;\n }\n ArrayEnumerable.prototype._onDispose = function () {\n _super.prototype._onDispose.call(this);\n this._source = null;\n };\n Object.defineProperty(ArrayEnumerable.prototype, \"source\", {\n get: function () {\n return this._source;\n },\n enumerable: true,\n configurable: true\n });\n ArrayEnumerable.prototype.toArray = function () {\n var _ = this;\n _.throwIfDisposed();\n return Enumerator_1.toArray(_._source);\n };\n ArrayEnumerable.prototype.asEnumerable = function () {\n return new ArrayEnumerable(this._source);\n };\n ArrayEnumerable.prototype.forEach = function (action) {\n var _ = this;\n _.throwIfDisposed();\n Enumerator_1.forEach(_._source, action);\n };\n ArrayEnumerable.prototype.any = function (predicate) {\n var _ = this;\n _.throwIfDisposed();\n var source = _._source, len = source.length;\n return len && (!predicate || _super.prototype.any.call(this, predicate));\n };\n ArrayEnumerable.prototype.count = function (predicate) {\n var _ = this;\n _.throwIfDisposed();\n var source = _._source, len = source.length;\n return len && (predicate ? _super.prototype.count.call(this, predicate) : len);\n };\n ArrayEnumerable.prototype.elementAtOrDefault = function (index, defaultValue) {\n if (defaultValue === void 0) { defaultValue = null; }\n var _ = this;\n _.throwIfDisposed();\n Integer_1.Integer.assertZeroOrGreater(index, 'index');\n var source = _._source;\n return index < source.length\n ? source[index]\n : defaultValue;\n };\n ArrayEnumerable.prototype.last = function () {\n var _ = this;\n _.throwIfDisposed();\n var source = _._source, len = source.length;\n return (len)\n ? source[len - 1]\n : _super.prototype.last.call(this);\n };\n ArrayEnumerable.prototype.lastOrDefault = function (defaultValue) {\n if (defaultValue === void 0) { defaultValue = null; }\n var _ = this;\n _.throwIfDisposed();\n var source = _._source, len = source.length;\n return len\n ? source[len - 1]\n : defaultValue;\n };\n ArrayEnumerable.prototype.skip = function (count) {\n var _ = this;\n if (!(count > 0))\n return _;\n return new Enumerable(function () { return new ArrayEnumerator_1.ArrayEnumerator(function () { return _._source; }, count); });\n };\n ArrayEnumerable.prototype.takeExceptLast = function (count) {\n if (count === void 0) { count = 1; }\n var _ = this;\n return _.take(_._source.length - count);\n };\n ArrayEnumerable.prototype.skipToLast = function (count) {\n if (!(count > 0))\n return Enumerable.empty();\n var _ = this;\n if (!isFinite(count))\n return _;\n var len = _._source\n ? _._source.length\n : 0;\n return _.skip(len - count);\n };\n ArrayEnumerable.prototype.reverse = function () {\n var _ = this;\n return new Enumerable(function () { return new ArrayEnumerator_1.ArrayEnumerator(function () { return _._source; }, _._source\n ? (_._source.length - 1)\n : 0, -1); });\n };\n ArrayEnumerable.prototype.memoize = function () {\n return this.asEnumerable();\n };\n ArrayEnumerable.prototype.sequenceEqual = function (second, equalityComparer) {\n if (equalityComparer === void 0) { equalityComparer = Values.areEqual; }\n if (Types_1.Type.isArrayLike(second))\n return Arrays.areEqual(this.source, second, true, equalityComparer);\n if (second instanceof ArrayEnumerable)\n return second.sequenceEqual(this.source, equalityComparer);\n return _super.prototype.sequenceEqual.call(this, second, equalityComparer);\n };\n ArrayEnumerable.prototype.toJoinedString = function (separator, selector) {\n if (separator === void 0) { separator = \"\"; }\n if (selector === void 0) { selector = Functions.Identity; }\n var s = this._source;\n return !selector && Array.isArray(s)\n ? s.join(separator)\n : _super.prototype.toJoinedString.call(this, separator, selector);\n };\n return ArrayEnumerable;\n }(FiniteEnumerable));\n var Grouping = (function (_super) {\n __extends(Grouping, _super);\n function Grouping(_groupKey, elements) {\n _super.call(this, elements);\n this._groupKey = _groupKey;\n }\n Object.defineProperty(Grouping.prototype, \"key\", {\n get: function () {\n return this._groupKey;\n },\n enumerable: true,\n configurable: true\n });\n return Grouping;\n }(ArrayEnumerable));\n var Lookup = (function () {\n function Lookup(_dictionary) {\n this._dictionary = _dictionary;\n }\n Object.defineProperty(Lookup.prototype, \"count\", {\n get: function () {\n return this._dictionary.count;\n },\n enumerable: true,\n configurable: true\n });\n Lookup.prototype.get = function (key) {\n return this._dictionary.getValue(key);\n };\n Lookup.prototype.contains = function (key) {\n return this._dictionary.containsKey(key);\n };\n Lookup.prototype.getEnumerator = function () {\n var _ = this;\n var enumerator;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n enumerator = _._dictionary.getEnumerator();\n }, function (yielder) {\n if (!enumerator.moveNext())\n return false;\n var current = enumerator.current;\n return yielder.yieldReturn(new Grouping(current.key, current.value));\n }, function () {\n dispose_1.dispose(enumerator);\n });\n };\n return Lookup;\n }());\n var OrderedEnumerable = (function (_super) {\n __extends(OrderedEnumerable, _super);\n function OrderedEnumerable(source, keySelector, order, parent, comparer) {\n if (comparer === void 0) { comparer = Values.compare; }\n _super.call(this, null);\n this.source = source;\n this.keySelector = keySelector;\n this.order = order;\n this.parent = parent;\n this.comparer = comparer;\n Enumerator_1.throwIfEndless(source && source.isEndless);\n }\n OrderedEnumerable.prototype.createOrderedEnumerable = function (keySelector, order) {\n return new OrderedEnumerable(this.source, keySelector, order, this);\n };\n OrderedEnumerable.prototype.thenBy = function (keySelector) {\n return this.createOrderedEnumerable(keySelector, 1);\n };\n OrderedEnumerable.prototype.thenUsing = function (comparison) {\n return new OrderedEnumerable(this.source, null, 1, this, comparison);\n };\n OrderedEnumerable.prototype.thenByDescending = function (keySelector) {\n return this.createOrderedEnumerable(keySelector, -1);\n };\n OrderedEnumerable.prototype.thenUsingReversed = function (comparison) {\n return new OrderedEnumerable(this.source, null, -1, this, comparison);\n };\n OrderedEnumerable.prototype.getEnumerator = function () {\n var _ = this;\n var buffer;\n var indexes;\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n index = 0;\n buffer = Enumerable.toArray(_.source);\n indexes = createSortContext(_).generateSortedIndexes(buffer);\n }, function (yielder) {\n return (index < indexes.length)\n ? yielder.yieldReturn(buffer[indexes[index++]])\n : false;\n }, function () {\n if (buffer)\n buffer.length = 0;\n buffer = null;\n if (indexes)\n indexes.length = 0;\n indexes = null;\n }, false);\n };\n OrderedEnumerable.prototype._onDispose = function () {\n _super.prototype._onDispose.call(this);\n this.source = null;\n this.keySelector = null;\n this.order = null;\n this.parent = null;\n };\n return OrderedEnumerable;\n }(FiniteEnumerable));\n function nextEnumerator(queue, e) {\n if (e) {\n if (e.moveNext()) {\n queue.enqueue(e);\n }\n else {\n dispose_1.dispose(e);\n e = null;\n }\n }\n return e;\n }\n function createSortContext(orderedEnumerable, currentContext) {\n if (currentContext === void 0) { currentContext = null; }\n var context = new KeySortedContext_1.KeySortedContext(currentContext, orderedEnumerable.keySelector, orderedEnumerable.order, orderedEnumerable.comparer);\n if (orderedEnumerable.parent)\n return createSortContext(orderedEnumerable.parent, context);\n return context;\n }\n function throwIfDisposed(disposed) {\n if (disposed)\n throw new ObjectDisposedException_1.ObjectDisposedException(\"Enumerable\");\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Enumerable;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Original: http://linqjs.codeplex.com/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport * as Values from \"../System/Compare\";\r\nimport * as Arrays from \"../System/Collections/Array/Compare\";\r\nimport * as ArrayUtility from \"../System/Collections/Array/Utility\";\r\nimport {\r\n\tempty as EmptyEnumerator,\r\n\tfrom as enumeratorFrom,\r\n\tforEach,\r\n\ttoArray,\r\n\tmap,\r\n\tisEnumerable,\r\n\tthrowIfEndless\r\n} from \"../System/Collections/Enumeration/Enumerator\";\r\nimport {Type} from \"../System/Types\";\r\nimport {Integer} from \"../System/Integer\";\r\nimport {Functions as BaseFunctions} from \"../System/Functions\";\r\nimport {ArrayEnumerator} from \"../System/Collections/Enumeration/ArrayEnumerator\";\r\nimport {EnumeratorBase} from \"../System/Collections/Enumeration/EnumeratorBase\";\r\nimport {Dictionary} from \"../System/Collections/Dictionaries/Dictionary\";\r\nimport {Queue} from \"../System/Collections/Queue\";\r\nimport {dispose, using} from \"../System/Disposable/dispose\";\r\nimport {DisposableBase} from \"../System/Disposable/DisposableBase\";\r\nimport {UnsupportedEnumerableException} from \"../System/Collections/Enumeration/UnsupportedEnumerableException\";\r\nimport {ObjectDisposedException} from \"../System/Disposable/ObjectDisposedException\";\r\nimport {KeySortedContext} from \"../System/Collections/Sorting/KeySortedContext\";\r\nimport {ArgumentNullException} from \"../System/Exceptions/ArgumentNullException\";\r\nimport {ArgumentOutOfRangeException} from \"../System/Exceptions/ArgumentOutOfRangeException\";\r\nimport {IEnumerator} from \"../System/Collections/Enumeration/IEnumerator\";\r\nimport {IEnumerable} from \"../System/Collections/Enumeration/IEnumerable\";\r\nimport {Action, Predicate, Selector, EqualityComparison, Comparison} from \"../System/FunctionTypes\";\r\nimport {IEnumerableOrArray} from \"../System/Collections/IEnumerableOrArray\";\r\nimport {IArray} from \"../System/Collections/Array/IArray\";\r\nimport {IMap} from \"../System/Collections/Dictionaries/IDictionary\";\r\nimport {Comparable} from \"../System/IComparable\";\r\nimport {IComparer} from \"../System/IComparer\";\r\nimport {IKeyValuePair} from \"../System/KeyValuePair\";\r\nimport {Order} from \"../System/Collections/Sorting/Order\";\r\n\r\n// #region Local Constants.\r\n\r\nconst INVALID_DEFAULT:any = {}; // create a private unique instance for referencing.\r\nconst VOID0:any = void 0;\r\nconst BREAK:(e:any)=>EnumerableAction = element => EnumerableAction.Break;\r\n\r\n// Leave internal to avoid accidental overwriting.\r\nclass LinqFunctions extends BaseFunctions\r\n{\r\n\tGreater(a:T, b:T)\r\n\t{\r\n\t\treturn a>b ? a : b;\r\n\t}\r\n\r\n\tLesser(a:T, b:T)\r\n\t{\r\n\t\treturn a\r\n{\r\n\treturn EmptyEnumerator;\r\n}\r\n\r\n// #endregion\r\n\r\n/**\r\n * Defined values for doAction.\r\n */\r\nexport const enum EnumerableAction\r\n{\r\n\tBreak = 0,\r\n\tReturn = 1,\r\n\tSkip = 2\r\n}\r\n\r\n/*\r\n * NOTE: About InfiniteEnumerable and Enumerable.\r\n * There may seem like there's extra overrides here and they may seem unnecessary.\r\n * But after closer inspection you'll see the type chain is retained and\r\n * infinite enumerables are prevented from having features that finite ones have.\r\n *\r\n * I'm not sure if it's the best option to just use overrides, but it honors the typing properly.\r\n */\r\n\r\nexport class InfiniteEnumerable\r\nextends DisposableBase implements IEnumerable\r\n{\r\n\tconstructor(\r\n\t\tprotected _enumeratorFactory:() => IEnumerator,\r\n\t\tfinalizer?:() => void)\r\n\t{\r\n\t\tsuper(finalizer);\r\n\t\tthis._isEndless = true;\r\n\t}\r\n\r\n\tprotected _isEndless:boolean;\r\n\tget isEndless():boolean\r\n\t{\r\n\t\treturn this._isEndless;\r\n\t}\r\n\r\n\t// #region IEnumerable Implementation...\r\n\tgetEnumerator():IEnumerator\r\n\t{\r\n\r\n\t\tthis.throwIfDisposed();\r\n\r\n\t\treturn this._enumeratorFactory();\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\t// #region IDisposable override...\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose(); // Just in case.\r\n\t\tthis._enumeratorFactory = null;\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\t// Return a default (unfiltered) enumerable.\r\n\tasEnumerable():InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\treturn new InfiniteEnumerable(() => _.getEnumerator());\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Similar to forEach, but executes an action for each time a value is enumerated.\r\n\t * If the action explicitly returns false or 0 (EnumerationAction.Break), the enumeration will complete.\r\n\t * If it returns a 2 (EnumerationAction.Skip) it will move on to the next item.\r\n\t * This also automatically handles disposing the enumerator.\r\n\t */\r\n\tdoAction(\r\n\t\taction:Action | Predicate | Selector | Selector,\r\n\t\tinitializer?:()=>void,\r\n\t\tisEndless:boolean = this.isEndless):InfiniteEnumerable\r\n\t{\r\n\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\tif(initializer) initializer();\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\t// May need a way to propagate isEndless\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar actionResult = action(enumerator.current, index++);\r\n\r\n\t\t\t\t\t\t\tif(actionResult===false || actionResult===EnumerableAction.Break)\r\n\t\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\r\n\t\t\t\t\t\t\tif(actionResult!==EnumerableAction.Skip) // || !== 2\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(enumerator.current);\r\n\r\n\t\t\t\t\t\t\t// If actionResult===2, then a signal for skip is received.\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\r\n\t\t\t},\r\n\t\t\t// Using a finalizer value reduces the chance of a circular reference\r\n\t\t\t// since we could simply reference the enumeration and check e.wasDisposed.\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t},\r\n\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tforce():void\r\n\t{\r\n\t\tthis.throwIfDisposed();\r\n\t\tthis.doAction(BREAK)\r\n\t\t\t.getEnumerator()\r\n\t\t\t.moveNext();\r\n\r\n\t}\r\n\r\n\t// #region Indexing/Paging methods.\r\n\tskip(count:number):InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tif(!isFinite(count)) // +Infinity equals skip all so return empty.\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\tInteger.assert(count, \"count\");\r\n\r\n\t\treturn this.doAction(\r\n\t\t\t(element:T, index?:number) =>\r\n\t\t\t\tindex\r\n\t{\r\n\t\tif(!(count>0)) // Out of bounds? Empty.\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tif(!isFinite(count))\r\n\t\t\tthrow new ArgumentOutOfRangeException('count', count, 'Must be finite.');\r\n\r\n\t\tInteger.assert(count, \"count\");\r\n\r\n\t\t// Once action returns false, the enumeration will stop.\r\n\t\treturn >_.doAction((element:T, index?:number) => index\r\n\t\t\t{\r\n\t\t\t\tvar i = 0;\r\n\t\t\t\twhile(e.moveNext())\r\n\t\t\t\t{\r\n\t\t\t\t\tif(i==n) return e.current;\r\n\t\t\t\t\ti++;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn defaultValue;\r\n\t\t\t});\r\n\t}\r\n\r\n\t/* Note: Unlike previous implementations, you could pass a predicate into these methods.\r\n\t * But since under the hood it ends up calling .where(predicate) anyway,\r\n\t * it may be better to remove this to allow for a cleaner signature/override.\r\n\t * JavaScript/TypeScript does not easily allow for a strict method interface like C#.\r\n\t * Having to write extra override logic is error prone and confusing to the consumer.\r\n\t * Removing the predicate here may also cause the consumer of this method to think more about how they structure their query.\r\n\t * The end all difference is that the user must declare .where(predicate) before .first(), .single(), or .last().\r\n\t * */\r\n\r\n\tfirst():T\r\n\t{\r\n\t\tvar v = this.firstOrDefault(INVALID_DEFAULT);\r\n\t\tif(v===INVALID_DEFAULT) throw new Error(\"first:The sequence is empty.\");\r\n\t\treturn v;\r\n\t}\r\n\r\n\tfirstOrDefault(defaultValue:T = null):T\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\treturn using(\r\n\t\t\tthis.getEnumerator(),\r\n\t\t\te=> e.moveNext() ? e.current : defaultValue\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tsingle():T\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\treturn using(\r\n\t\t\tthis.getEnumerator(),\r\n\t\t\te=>\r\n\t\t\t{\r\n\t\t\t\tif(e.moveNext())\r\n\t\t\t\t{\r\n\t\t\t\t\tvar value = e.current;\r\n\t\t\t\t\tif(!e.moveNext()) return value;\r\n\t\t\t\t\tthrow new Error(\"single:sequence contains more than one element.\");\r\n\t\t\t\t}\r\n\t\t\t\tthrow new Error(\"single:The sequence is empty.\");\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tsingleOrDefault(defaultValue:T = null):T\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\treturn using(\r\n\t\t\tthis.getEnumerator(),\r\n\t\t\te=>\r\n\t\t\t{\r\n\t\t\t\tif(e.moveNext())\r\n\t\t\t\t{\r\n\t\t\t\t\tvar value = e.current;\r\n\t\t\t\t\tif(!e.moveNext()) return value;\r\n\t\t\t\t}\r\n\t\t\t\treturn defaultValue;\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tany():boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\treturn using(\r\n\t\t\tthis.getEnumerator(),\r\n\t\t\te=> e.moveNext()\r\n\t\t);\r\n\t}\r\n\r\n\tisEmpty():boolean\r\n\t{\r\n\t\treturn !this.any();\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\r\n\t// #region Projection and Filtering Methods\r\n\r\n\ttraverseBreadthFirst(\r\n\t\tchildrenSelector:(element:T) => IEnumerableOrArray):Enumerable;\r\n\r\n\ttraverseBreadthFirst(\r\n\t\tchildrenSelector:(element:T|TNode) => IEnumerableOrArray):Enumerable;\r\n\r\n\ttraverseBreadthFirst(\r\n\t\tchildrenSelector:(element:T) => IEnumerableOrArray,\r\n\t\tresultSelector?:(element:T, nestLevel?:number) => TResult):Enumerable;\r\n\r\n\ttraverseBreadthFirst(\r\n\t\tchildrenSelector:(element:T|TNode) => IEnumerableOrArray,\r\n\t\tresultSelector?:(element:TNode, nestLevel?:number) => TResult):Enumerable;\r\n\r\n\ttraverseBreadthFirst(\r\n\t\tchildrenSelector:(element:T|TNode) => IEnumerableOrArray,\r\n\t\tresultSelector:(\r\n\t\t\telement:TNode,\r\n\t\t\tnestLevel?:number) => any = Functions.Identity):Enumerable\r\n\t{\r\n\t\tvar _ = this, isEndless = _._isEndless || null; // Is endless is not affirmative if false.\r\n\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar nestLevel:number = 0;\r\n\t\t\t\tvar buffer:any[], len:number;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tnestLevel = 0;\r\n\t\t\t\t\t\tbuffer = [];\r\n\t\t\t\t\t\tlen = 0;\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\twhile(true)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tif(enumerator.moveNext())\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tbuffer[len++] = enumerator.current;\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(resultSelector(enumerator.current, nestLevel));\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(!len)\r\n\t\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\r\n\t\t\t\t\t\t\tvar next = Enumerable\r\n\t\t\t\t\t\t\t\t.from(buffer)\r\n\t\t\t\t\t\t\t\t.selectMany(childrenSelector);\r\n\r\n\t\t\t\t\t\t\tif(!next.any())\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tnestLevel++;\r\n\t\t\t\t\t\t\t\tbuffer = [];\r\n\t\t\t\t\t\t\t\tlen = 0;\r\n\t\t\t\t\t\t\t\tenumerator.dispose();\r\n\t\t\t\t\t\t\t\tenumerator = next.getEnumerator();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t\tbuffer.length = 0;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n\ttraverseDepthFirst(\r\n\t\tchildrenSelector:(element:T) => IEnumerableOrArray):Enumerable;\r\n\r\n\ttraverseDepthFirst(\r\n\t\tchildrenSelector:(element:T|TNode) => IEnumerableOrArray):Enumerable;\r\n\r\n\ttraverseDepthFirst(\r\n\t\tchildrenSelector:(element:T) => IEnumerableOrArray,\r\n\t\tresultSelector?:(element:T, nestLevel?:number) => TResult):Enumerable;\r\n\r\n\ttraverseDepthFirst(\r\n\t\tchildrenSelector:(element:T|TNode) => IEnumerableOrArray,\r\n\t\tresultSelector?:(element:TNode, nestLevel?:number) => TResult):Enumerable;\r\n\r\n\ttraverseDepthFirst(\r\n\t\tchildrenSelector:(element:T|TNode) => IEnumerableOrArray,\r\n\t\tresultSelector:(\r\n\t\t\telement:TNode,\r\n\t\t\tnestLevel?:number) => any = Functions.Identity):Enumerable\r\n\t{\r\n\t\tvar _ = this, isEndless = _._isEndless || null; // Is endless is not affirmative if false.\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\t// Dev Note: May want to consider using an actual stack and not an array.\r\n\t\t\t\tvar enumeratorStack:IEnumerator[] = [];\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar len:number; // Avoid using push/pop since they query .length every time and can be slower.\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tlen = 0;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\twhile(true)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tif(enumerator.moveNext())\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tlet value = resultSelector(enumerator.current, len);\r\n\t\t\t\t\t\t\t\tenumeratorStack[len++] = enumerator;\r\n\t\t\t\t\t\t\t\tlet e = Enumerable.fromAny(childrenSelector(enumerator.current));\r\n\t\t\t\t\t\t\t\tenumerator = e ? e.getEnumerator() : EmptyEnumerator;\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(value);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(len==0) return false;\r\n\r\n\t\t\t\t\t\t\tenumerator.dispose();\r\n\t\t\t\t\t\t\tenumerator = enumeratorStack[--len];\r\n\t\t\t\t\t\t\tenumeratorStack.length = len;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttry\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tfinally\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tdispose.these(enumeratorStack);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tflatten():Enumerable\r\n\t{\r\n\t\tvar _ = this, isEndless = _._isEndless || null; // Is endless is not affirmative if false.;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar middleEnumerator:IEnumerator = null;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\twhile(true)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tif(middleEnumerator)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tif(middleEnumerator.moveNext())\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\treturn yielder.yieldReturn(middleEnumerator.current);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tmiddleEnumerator.dispose();\r\n\t\t\t\t\t\t\t\t\tmiddleEnumerator = null;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(enumerator.moveNext())\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tvar c = enumerator.current;\r\n\t\t\t\t\t\t\t\t// Because strings are enumerable, we can get stuck in an infinite loop.\r\n\t\t\t\t\t\t\t\t// Treat strings as primitives here.\r\n\t\t\t\t\t\t\t\tvar e = !Type.isString(c) && Enumerable.fromAny(c);\r\n\t\t\t\t\t\t\t\tif(e)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tmiddleEnumerator\r\n\t\t\t\t\t\t\t\t\t\t= e\r\n\t\t\t\t\t\t\t\t\t\t.selectMany(Functions.Identity)\r\n\t\t\t\t\t\t\t\t\t\t.flatten()\r\n\t\t\t\t\t\t\t\t\t\t.getEnumerator();\r\n\t\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\treturn yielder.yieldReturn(c);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator, middleEnumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tpairwise(selector:(prev:T, current:T) => TSelect):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tenumerator.moveNext();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar prev = enumerator.current;\r\n\t\t\t\t\t\treturn enumerator.moveNext()\r\n\t\t\t\t\t\t\t&& yielder.yieldReturn(selector(prev, enumerator.current));\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\tscan(func:(a:T, b:T) => T, seed?:T):Enumerable\r\n\t{\r\n\r\n\t\tvar isUseSeed = seed!==VOID0; // For now...\r\n\t\tvar _ = this;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar value:T;\r\n\t\t\t\tvar isFirst:boolean;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tisFirst = true;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(isFirst)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tisFirst = false;\r\n\t\t\t\t\t\t\t//noinspection JSUnusedAssignment\r\n\t\t\t\t\t\t\treturn isUseSeed\r\n\t\t\t\t\t\t\t\t? yielder.yieldReturn(value = seed)\r\n\t\t\t\t\t\t\t\t: enumerator.moveNext() && yielder.yieldReturn(value\r\n\t\t\t\t\t\t\t\t= enumerator.current);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn (enumerator.moveNext())\r\n\t\t\t\t\t\t\t? yielder.yieldReturn(value = func(value, enumerator.current))\r\n\t\t\t\t\t\t\t: false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\tselect(selector:Selector):InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\treturn enumerator.moveNext()\r\n\t\t\t\t\t\t\t? yielder.yieldReturn(selector(enumerator.current, index++))\r\n\t\t\t\t\t\t\t: yielder.yieldBreak();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t},\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\t/*\r\n\tpublic static IEnumerable SelectMany(\r\n\t\tthis IEnumerable source,\r\n\t\tFunc> collectionSelector,\r\n\t\tFunc resultSelector)\r\n\t */\r\n\r\n\tprotected _selectMany(\r\n\t\tcollectionSelector:Selector>,\r\n\t\tresultSelector?:(collection:T, element:TElement) => TResult):Enumerable\r\n\t{\r\n\t\tvar _ = this, isEndless = _._isEndless || null; // Do second enumeration, it will be indeterminate if false.\r\n\t\tif(!resultSelector)\r\n\t\t\tresultSelector = (a:T, b:any) => b;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar middleEnumerator:IEnumerator;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tmiddleEnumerator = undefined;\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\r\n\t\t\t\t\t\t// Just started, and nothing to enumerate? End.\r\n\t\t\t\t\t\tif(middleEnumerator===VOID0 && !enumerator.moveNext())\r\n\t\t\t\t\t\t\treturn false;\r\n\r\n\t\t\t\t\t\t// moveNext has been called at least once...\r\n\t\t\t\t\t\tdo\r\n\t\t\t\t\t\t{\r\n\r\n\t\t\t\t\t\t\t// Initialize middle if there isn't one.\r\n\t\t\t\t\t\t\tif(!middleEnumerator)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tvar middleSeq = collectionSelector(enumerator.current, index++);\r\n\r\n\t\t\t\t\t\t\t\t// Collection is null? Skip it...\r\n\t\t\t\t\t\t\t\tif(!middleSeq)\r\n\t\t\t\t\t\t\t\t\tcontinue;\r\n\r\n\t\t\t\t\t\t\t\tmiddleEnumerator = enumeratorFrom(middleSeq);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(middleEnumerator.moveNext())\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(\r\n\t\t\t\t\t\t\t\t\tresultSelector(\r\n\t\t\t\t\t\t\t\t\t\tenumerator.current, middleEnumerator.current\r\n\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t\t// else no more in this middle? Then clear and reset for next...\r\n\r\n\t\t\t\t\t\t\tmiddleEnumerator.dispose();\r\n\t\t\t\t\t\t\tmiddleEnumerator = null;\r\n\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\twhile(enumerator.moveNext());\r\n\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator, middleEnumerator);\r\n\t\t\t\t\t\tenumerator = null;\r\n\t\t\t\t\t\tmiddleEnumerator = null;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\tselectMany(\r\n\t\tcollectionSelector:Selector>):InfiniteEnumerable;\r\n\r\n\tselectMany(\r\n\t\tcollectionSelector:Selector>,\r\n\t\tresultSelector:(collection:T, element:TElement) => TResult):InfiniteEnumerable;\r\n\r\n\tselectMany(\r\n\t\tcollectionSelector:Selector>,\r\n\t\tresultSelector?:(collection:T, element:any) => TResult):InfiniteEnumerable\r\n\t{\r\n\t\treturn this._selectMany(collectionSelector, resultSelector);\r\n\t}\r\n\r\n\tprotected _choose(selector:Selector):Enumerable\r\n\t{\r\n\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar result = selector(enumerator.current, index++);\r\n\t\t\t\t\t\t\tif(result!==null && result!==VOID0)\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(result);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t},\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns selected values that are not null or undefined.\r\n\t */\r\n\tchoose():InfiniteEnumerable;\r\n\tchoose(selector?:Selector):InfiniteEnumerable\r\n\tchoose(selector:Selector = Functions.Identity):InfiniteEnumerable\r\n\t{\r\n\t\treturn this._choose(selector)\r\n\t}\r\n\r\n\twhere(predicate:Predicate):InfiniteEnumerable\r\n\t{\r\n\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tif(predicate(enumerator.current, index++))\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(enumerator.current);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t},\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\r\n\t}\r\n\r\n\tofType(type:{ new (...params:any[]):TType }):InfiniteEnumerable;\r\n\tofType(type:any):InfiniteEnumerable\r\n\t{\r\n\t\tvar typeName:string;\r\n\t\tswitch(type)\r\n\t\t{\r\n\t\t\tcase Number:\r\n\t\t\t\ttypeName = Type.NUMBER;\r\n\t\t\t\tbreak;\r\n\t\t\tcase String:\r\n\t\t\t\ttypeName = Type.STRING;\r\n\t\t\t\tbreak;\r\n\t\t\tcase Boolean:\r\n\t\t\t\ttypeName = Type.BOOLEAN;\r\n\t\t\t\tbreak;\r\n\t\t\tcase Function:\r\n\t\t\t\ttypeName = Type.FUNCTION;\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\treturn >this\r\n\t\t\t\t\t.where(x=>x instanceof type);\r\n\t\t}\r\n\t\treturn >this\r\n\t\t\t.choose()\r\n\t\t\t.where(x=>(typeof x)===typeName);\r\n\t}\r\n\r\n\texcept(\r\n\t\tsecond:IEnumerableOrArray,\r\n\t\tcompareSelector?:Selector):InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar keys:Dictionary;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tkeys = new Dictionary(compareSelector);\r\n\t\t\t\t\t\tif(second)\r\n\t\t\t\t\t\t\tforEach(second, key => keys.addByKeyValue(key, true));\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar current = enumerator.current;\r\n\t\t\t\t\t\t\tif(!keys.containsKey(current))\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tkeys.addByKeyValue(current, true);\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(current);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t\tkeys.clear();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t},\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\tdistinct(compareSelector?:(value:T) => T):InfiniteEnumerable\r\n\t{\r\n\t\treturn this.except(null, compareSelector);\r\n\t}\r\n\r\n\t// [0,0,0,1,1,1,2,2,2,0,0,0,1,1] results in [0,1,2,0,1];\r\n\tdistinctUntilChanged(compareSelector:Selector = Functions.Identity):InfiniteEnumerable\r\n\t{\r\n\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar compareKey:TCompare;\r\n\t\t\t\tvar initial:boolean = true;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar key = compareSelector(enumerator.current);\r\n\r\n\t\t\t\t\t\t\tif(initial)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tinitial = false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse if(Values.areEqual(compareKey, key))\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tcompareKey = key;\r\n\t\t\t\t\t\t\treturn yielder.yieldReturn(enumerator.current);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t},\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Returns a single default value if empty.\r\n\t * @param defaultValue\r\n\t * @returns {Enumerable}\r\n\t */\r\n\tdefaultIfEmpty(defaultValue:T = null):Enumerable\r\n\t{\r\n\t\tvar _ = this, disposed:boolean = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar isFirst:boolean;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tisFirst = true;\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\tif(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tisFirst = false;\r\n\t\t\t\t\t\t\treturn yielder.yieldReturn(enumerator.current);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if(isFirst)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tisFirst = false;\r\n\t\t\t\t\t\t\treturn yielder.yieldReturn(defaultValue);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\tzip(\r\n\t\tsecond:IEnumerableOrArray,\r\n\t\tresultSelector:(first:T, second:TSecond, index?:number) => TResult):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar firstEnumerator:IEnumerator;\r\n\t\t\t\tvar secondEnumerator:IEnumerator;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tfirstEnumerator = _.getEnumerator();\r\n\t\t\t\t\t\tsecondEnumerator = enumeratorFrom(second);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=> firstEnumerator.moveNext()\r\n\t\t\t\t\t&& secondEnumerator.moveNext()\r\n\t\t\t\t\t&& yielder.yieldReturn(resultSelector(firstEnumerator.current, secondEnumerator.current, index++)),\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(firstEnumerator, secondEnumerator);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tzipMultiple(\r\n\t\tsecond:IArray>,\r\n\t\tresultSelector:(first:T, second:TSecond, index?:number) => TResult):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tif(!second.length)\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar secondTemp:Queue;\r\n\t\t\t\tvar firstEnumerator:IEnumerator;\r\n\t\t\t\tvar secondEnumerator:IEnumerator;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tsecondTemp = new Queue(second);\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tfirstEnumerator = _.getEnumerator();\r\n\t\t\t\t\t\tsecondEnumerator = null;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(firstEnumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\twhile(true)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\twhile(!secondEnumerator)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tif(secondTemp.count)\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\tvar next = secondTemp.dequeue();\r\n\t\t\t\t\t\t\t\t\t\tif(next) // In case by chance next is null, then try again.\r\n\t\t\t\t\t\t\t\t\t\t\tsecondEnumerator = enumeratorFrom(next);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif(secondEnumerator.moveNext())\r\n\t\t\t\t\t\t\t\t\treturn yielder.yieldReturn(\r\n\t\t\t\t\t\t\t\t\t\tresultSelector(firstEnumerator.current, secondEnumerator.current, index++)\r\n\t\t\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t\t\tsecondEnumerator.dispose();\r\n\t\t\t\t\t\t\t\tsecondEnumerator = null;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(firstEnumerator, secondTemp);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\r\n\t// #region Join Methods\r\n\r\n\tjoin(\r\n\t\tinner:IEnumerableOrArray,\r\n\t\touterKeySelector:Selector,\r\n\t\tinnerKeySelector:Selector,\r\n\t\tresultSelector:(outer:T, inner:TInner) => TResult,\r\n\t\tcompareSelector:Selector = Functions.Identity):Enumerable\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar outerEnumerator:IEnumerator;\r\n\t\t\t\tvar lookup:ILookup;\r\n\t\t\t\tvar innerElements:TInner[] = null;\r\n\t\t\t\tvar innerCount:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\touterEnumerator = _.getEnumerator();\r\n\t\t\t\t\t\tlookup = Enumerable.from(inner)\r\n\t\t\t\t\t\t\t.toLookup(innerKeySelector, Functions.Identity, compareSelector);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\twhile(true)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tif(innerElements!=null)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tvar innerElement = innerElements[innerCount++];\r\n\t\t\t\t\t\t\t\tif(innerElement!==VOID0)\r\n\t\t\t\t\t\t\t\t\treturn yielder.yieldReturn(resultSelector(outerEnumerator.current, innerElement));\r\n\r\n\t\t\t\t\t\t\t\tinnerElement = null;\r\n\t\t\t\t\t\t\t\tinnerCount = 0;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(outerEnumerator.moveNext())\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tvar key = outerKeySelector(outerEnumerator.current);\r\n\t\t\t\t\t\t\t\tinnerElements = lookup.get(key);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(outerEnumerator);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tgroupJoin(\r\n\t\tinner:IEnumerableOrArray,\r\n\t\touterKeySelector:Selector,\r\n\t\tinnerKeySelector:Selector,\r\n\t\tresultSelector:(outer:T, inner:TInner[]) => TResult,\r\n\t\tcompareSelector:Selector = Functions.Identity):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar lookup:ILookup = null;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tlookup = Enumerable.from(inner)\r\n\t\t\t\t\t\t\t.toLookup(innerKeySelector, Functions.Identity, compareSelector);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\tenumerator.moveNext()\r\n\t\t\t\t\t&& yielder.yieldReturn(\r\n\t\t\t\t\t\tresultSelector(\r\n\t\t\t\t\t\t\tenumerator.current,\r\n\t\t\t\t\t\t\tlookup.get(outerKeySelector(enumerator.current))\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t),\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tmerge(enumerables:IArray>):InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this, isEndless = _._isEndless || null;\r\n\r\n\t\tif(!enumerables || enumerables.length==0)\r\n\t\t\treturn _;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar queue:Queue>;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t// 1) First get our values...\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tqueue = new Queue>(enumerables);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder) =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\twhile(true)\r\n\t\t\t\t\t\t{\r\n\r\n\t\t\t\t\t\t\twhile(!enumerator && queue.count)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tenumerator = enumeratorFrom(queue.dequeue()); // 4) Keep going and on to step 2. Else fall through to yieldBreak().\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(enumerator && enumerator.moveNext()) // 2) Keep returning until done.\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(enumerator.current);\r\n\r\n\t\t\t\t\t\t\tif(enumerator) // 3) Dispose and reset for next.\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tenumerator.dispose();\r\n\t\t\t\t\t\t\t\tenumerator = null;\r\n\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator, queue); // Just in case this gets disposed early.\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\tconcat(...enumerables:Array>):InfiniteEnumerable\r\n\t{\r\n\t\treturn this.merge(enumerables);\r\n\t}\r\n\r\n\r\n\tunion(\r\n\t\tsecond:IEnumerableOrArray,\r\n\t\tcompareSelector:Selector = Functions.Identity):Enumerable\r\n\t{\r\n\t\tvar _ = this, isEndless = _._isEndless || null;\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar firstEnumerator:IEnumerator;\r\n\t\t\t\tvar secondEnumerator:IEnumerator;\r\n\t\t\t\tvar keys:Dictionary;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfirstEnumerator = _.getEnumerator();\r\n\t\t\t\t\t\tkeys = new Dictionary(compareSelector); // Acting as a HashSet.\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar current:T;\r\n\t\t\t\t\t\tif(secondEnumerator===VOID0)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\twhile(firstEnumerator.moveNext())\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tcurrent = firstEnumerator.current;\r\n\t\t\t\t\t\t\t\tif(!keys.containsKey(current))\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tkeys.addByKeyValue(current, null);\r\n\t\t\t\t\t\t\t\t\treturn yielder.yieldReturn(current);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tsecondEnumerator = enumeratorFrom(second);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\twhile(secondEnumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tcurrent = secondEnumerator.current;\r\n\t\t\t\t\t\t\tif(!keys.containsKey(current))\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tkeys.addByKeyValue(current, null);\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(current);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(firstEnumerator, secondEnumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\tinsertAt(index:number, other:IEnumerableOrArray):Enumerable\r\n\t{\r\n\t\tInteger.assertZeroOrGreater(index, 'index');\r\n\t\tvar n:number = index;\r\n\r\n\t\tvar _ = this, isEndless = _._isEndless || null;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\r\n\t\t\t\tvar firstEnumerator:IEnumerator;\r\n\t\t\t\tvar secondEnumerator:IEnumerator;\r\n\r\n\t\t\t\tvar count:number = 0;\r\n\t\t\t\tvar isEnumerated:boolean = false;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcount = 0;\r\n\t\t\t\t\t\tfirstEnumerator = _.getEnumerator();\r\n\t\t\t\t\t\tsecondEnumerator = enumeratorFrom(other);\r\n\t\t\t\t\t\tisEnumerated = false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder) =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(count==n)\r\n\t\t\t\t\t\t{ // Inserting?\r\n\t\t\t\t\t\t\tisEnumerated = true;\r\n\t\t\t\t\t\t\tif(secondEnumerator.moveNext())\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(secondEnumerator.current);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif(firstEnumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tcount++;\r\n\t\t\t\t\t\t\treturn yielder.yieldReturn(firstEnumerator.current);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn !isEnumerated\r\n\t\t\t\t\t\t\t&& secondEnumerator.moveNext()\r\n\t\t\t\t\t\t\t&& yielder.yieldReturn(secondEnumerator.current);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(firstEnumerator, secondEnumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n\talternateMultiple(sequence:IEnumerableOrArray):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar buffer:T,\r\n\t\t\t\t mode:EnumerableAction,\r\n\t\t\t\t enumerator:IEnumerator,\r\n\t\t\t\t alternateEnumerator:IEnumerator;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t// Instead of recalling getEnumerator every time, just reset the existing one.\r\n\t\t\t\t\t\talternateEnumerator = new ArrayEnumerator(\r\n\t\t\t\t\t\t\tEnumerable.toArray(sequence)\r\n\t\t\t\t\t\t); // Freeze\r\n\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\r\n\t\t\t\t\t\tvar hasAtLeastOne = enumerator.moveNext();\r\n\t\t\t\t\t\tmode = hasAtLeastOne\r\n\t\t\t\t\t\t\t? EnumerableAction.Return\r\n\t\t\t\t\t\t\t: EnumerableAction.Break;\r\n\r\n\t\t\t\t\t\tif(hasAtLeastOne)\r\n\t\t\t\t\t\t\tbuffer = enumerator.current;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tswitch(mode)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tcase EnumerableAction.Break: // We're done?\r\n\t\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\r\n\t\t\t\t\t\t\tcase EnumerableAction.Skip:\r\n\t\t\t\t\t\t\t\tif(alternateEnumerator.moveNext())\r\n\t\t\t\t\t\t\t\t\treturn yielder.yieldReturn(alternateEnumerator.current);\r\n\t\t\t\t\t\t\t\talternateEnumerator.reset();\r\n\t\t\t\t\t\t\t\tmode = EnumerableAction.Return;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar latest = buffer;\r\n\r\n\t\t\t\t\t\t// Set up the next round...\r\n\r\n\t\t\t\t\t\t// Is there another one? Set the buffer and setup instruct for the next one to be the alternate.\r\n\t\t\t\t\t\tvar another = enumerator.moveNext();\r\n\t\t\t\t\t\tmode = another\r\n\t\t\t\t\t\t\t? EnumerableAction.Skip\r\n\t\t\t\t\t\t\t: EnumerableAction.Break;\r\n\r\n\t\t\t\t\t\tif(another)\r\n\t\t\t\t\t\t\tbuffer = enumerator.current;\r\n\r\n\t\t\t\t\t\treturn yielder.yieldReturn(latest);\r\n\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator, alternateEnumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\talternateSingle(value:T):Enumerable\r\n\t{\r\n\t\treturn this.alternateMultiple(Enumerable.make(value));\r\n\t}\r\n\r\n\talternate(...sequence:T[]):Enumerable\r\n\t{\r\n\t\treturn this.alternateMultiple(sequence);\r\n\t}\r\n\r\n\r\n\t// #region Error Handling\r\n\tcatchError(handler:(e:any) => void):InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttry\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcatch(e)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t// Don't init...\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttry\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\t\tif(enumerator.moveNext())\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(enumerator.current);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcatch(e)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\thandler(e);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tfinallyAction(action:() => void):InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\treturn (enumerator.moveNext())\r\n\t\t\t\t\t\t\t? yielder.yieldReturn(enumerator.current)\r\n\t\t\t\t\t\t\t: false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttry\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tfinally\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\taction();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tbuffer(size:number):InfiniteEnumerable\r\n\t{\r\n\t\tif(size<1 || !isFinite(size))\r\n\t\t\tthrow new Error(\"Invalid buffer size.\");\r\n\r\n\t\tInteger.assert(size, \"size\");\r\n\r\n\t\tvar _ = this, len:number;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar array:T[] = ArrayUtility.initialize(size);\r\n\t\t\t\t\t\tlen = 0;\r\n\t\t\t\t\t\twhile(len\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tshare():InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar sharedEnumerator:IEnumerator;\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\treturn sharedEnumerator || (sharedEnumerator = _.getEnumerator());\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdispose(sharedEnumerator);\r\n\t\t\t},\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n}\r\n\r\n\r\n/**\r\n * Enumerable is a wrapper class that allows more primitive enumerables to exhibit LINQ behavior.\r\n *\r\n * In C# Enumerable is not an instance but has extensions for IEnumerable.\r\n * In this case, we use Enumerable as the underlying class that is being chained.\r\n */\r\nexport class Enumerable\r\nextends InfiniteEnumerable\r\n{\r\n\r\n\tconstructor(\r\n\t\tenumeratorFactory:() => IEnumerator,\r\n\t\tfinalizer?:() => void,\r\n\t\tisEndless:boolean = null)\r\n\t{\r\n\t\tsuper(enumeratorFactory, finalizer);\r\n\t\tthis._isEndless = isEndless;\r\n\t}\r\n\r\n\t/**\r\n\t * Universal method for converting a primitive enumerables into a LINQ enabled ones.\r\n\t *\r\n\t * Is not limited to TypeScript usages.\r\n\t */\r\n\tstatic from(source:IEnumerableOrArray):Enumerable\r\n\t{\r\n\t\tvar e = Enumerable.fromAny(source);\r\n\t\tif(!e) throw new UnsupportedEnumerableException();\r\n\t\treturn e;\r\n\t}\r\n\r\n\tstatic fromAny(\r\n\t\tsource:any):Enumerable\r\n\r\n\tstatic fromAny(\r\n\t\tsource:IEnumerableOrArray,\r\n\t\tdefaultEnumerable?:Enumerable):Enumerable\r\n\r\n\tstatic fromAny(\r\n\t\tsource:any,\r\n\t\tdefaultEnumerable?:Enumerable):Enumerable\r\n\r\n\tstatic fromAny(\r\n\t\tsource:any,\r\n\t\tdefaultEnumerable:Enumerable = null):Enumerable\r\n\t{\r\n\t\tif(Type.isObject(source) || Type.isString(source))\r\n\t\t{\r\n\t\t\tif(source instanceof Enumerable)\r\n\t\t\t\treturn source;\r\n\r\n\t\t\tif(Type.isArrayLike(source))\r\n\t\t\t\treturn new ArrayEnumerable(source);\r\n\r\n\t\t\tif(isEnumerable(source))\r\n\t\t\t\treturn new Enumerable(\r\n\t\t\t\t\t()=>source.getEnumerator(),\r\n\t\t\t\t\tnull, source.isEndless);\r\n\t\t}\r\n\r\n\t\treturn defaultEnumerable;\r\n\t}\r\n\r\n\tstatic fromOrEmpty(source:IEnumerableOrArray):Enumerable\r\n\t{\r\n\t\treturn Enumerable.fromAny(source) || Enumerable.empty();\r\n\t}\r\n\r\n\t/**\r\n\t * Static helper for converting enumerables to an array.\r\n\t * @param source\r\n\t * @returns {any}\r\n\t */\r\n\tstatic toArray(source:IEnumerableOrArray):T[]\r\n\t{\r\n\t\tif(source instanceof Enumerable)\r\n\t\t\treturn source.toArray();\r\n\r\n\t\treturn toArray(source);\r\n\t}\r\n\r\n\r\n\t//////////////////////////////////////////\r\n\t// #region Static Methods...\r\n\tstatic choice(values:IArray):InfiniteEnumerable\r\n\t{\r\n\t\tvar len = values && values.length;\r\n\t\t// We could return empty if no length, but that would break the typing and produce unexpected results.\r\n\t\t// Enforcing that there must be at least 1 choice is key.\r\n\t\tif(!len || !isFinite(len))\r\n\t\t\tthrow new ArgumentOutOfRangeException('length', length);\r\n\r\n\t\treturn new InfiniteEnumerable(\r\n\t\t\t() => new EnumeratorBase(\r\n\t\t\t\tnull,\r\n\t\t\t\t(yielder)=>\r\n\t\t\t\t\tyielder.yieldReturn(Integer.random.select(values)),\r\n\t\t\t\ttrue // Is endless!\r\n\t\t\t)\r\n\t\t);\r\n\t}\r\n\r\n\tstatic chooseFrom(...args:T[]):InfiniteEnumerable\r\n\t{\r\n\t\treturn Enumerable.choice(args);\r\n\t}\r\n\r\n\tstatic cycle(values:IArray):InfiniteEnumerable\r\n\t{\r\n\t\tvar len = values && values.length;\r\n\t\t// We could return empty if no length, but that would break the typing and produce unexpected results.\r\n\t\t// Enforcing that there must be at least 1 choice is key.\r\n\t\tif(!len || !isFinite(len))\r\n\t\t\tthrow new ArgumentOutOfRangeException('length', length);\r\n\r\n\t\treturn new InfiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar index:number = 0;\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t}, // Reinitialize the value just in case the enumerator is restarted.\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(index>=values.length) index = 0;\r\n\t\t\t\t\t\treturn yielder.yieldReturn(values[index++]);\r\n\t\t\t\t\t},\r\n\t\t\t\t\ttrue // Is endless!\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic cycleThrough(...args:T[]):InfiniteEnumerable\r\n\t{\r\n\t\treturn Enumerable.cycle(args);\r\n\t}\r\n\r\n\tstatic empty():FiniteEnumerable\r\n\t{\r\n\t\t// Could be single static instance, but for safety, we'll make a new one.\r\n\t\treturn new FiniteEnumerable(getEmptyEnumerator);\r\n\t}\r\n\r\n\tstatic repeat(element:T):InfiniteEnumerable;\r\n\tstatic repeat(element:T, count:number):FiniteEnumerable;\r\n\tstatic repeat(element:T, count:number = Infinity):Enumerable\r\n\t{\r\n\t\tif(!(count>0))\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\treturn isFinite(count) && Integer.assert(count, \"count\")\r\n\t\t\t? new FiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar c:number = count;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() => { index = 0; },\r\n\t\t\t\t\t(yielder)=> (index++(\r\n\t\t\t() =>\r\n\t\t\t\tnew EnumeratorBase(\r\n\t\t\t\t\tnull,\r\n\t\t\t\t\t(yielder)=> yielder.yieldReturn(element),\r\n\t\t\t\t\ttrue // Is endless!\r\n\t\t\t\t)\r\n\t\t);\r\n\t}\r\n\r\n\t// Note: this enumeration is endless but can be disposed/cancelled and finalized.\r\n\tstatic repeatWithFinalize(\r\n\t\tinitializer:() => T,\r\n\t\tfinalizer:(element:T) => void):InfiniteEnumerable\r\n\t{\r\n\r\n\t\treturn new InfiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar element:T;\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\telement = initializer();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=> yielder.yieldReturn(element),\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfinalizer(element);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\ttrue // Is endless!\r\n\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * Creates an enumerable of one element.\r\n\t * @param element\r\n\t * @returns {FiniteEnumerable}\r\n\t */\r\n\tstatic make(element:T):FiniteEnumerable\r\n\t{\r\n\t\treturn Enumerable.repeat(element, 1);\r\n\t}\r\n\r\n\t// start and step can be other than integer.\r\n\r\n\tstatic range(\r\n\t\tstart:number,\r\n\t\tcount:number,\r\n\t\tstep:number = 1):FiniteEnumerable\r\n\t{\r\n\t\tif(!isFinite(start))\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"start\", start, \"Must be a finite number.\");\r\n\r\n\t\tif(!(count>0))\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\tif(!step)\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"step\", step, \"Must be a valid value\");\r\n\r\n\t\tif(!isFinite(step))\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"step\", step, \"Must be a finite number.\");\r\n\r\n\t\tInteger.assert(count, \"count\");\r\n\r\n\t\treturn new FiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar value:number;\r\n\t\t\t\tvar c:number = count; // Force integer evaluation.\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tvalue = start;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar result:boolean =\r\n\t\t\t\t\t\t\t index++\r\n\t{\r\n\t\tstep = Math.abs(step)* -1;\r\n\r\n\t\treturn Enumerable.range(start, count, step);\r\n\t}\r\n\r\n\t// step = -1 behaves the same as toNegativeInfinity;\r\n\tstatic toInfinity(\r\n\t\tstart:number = 0,\r\n\t\tstep:number = 1):InfiniteEnumerable\r\n\t{\r\n\t\tif(!isFinite(start))\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"start\", start, \"Must be a finite number.\");\r\n\r\n\t\tif(!step)\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"step\", step, \"Must be a valid value\");\r\n\r\n\t\tif(!isFinite(step))\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"step\", step, \"Must be a finite number.\");\r\n\r\n\t\treturn new InfiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar value:number;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvalue = start;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar current:number = value;\r\n\t\t\t\t\t\tvalue += step;\r\n\t\t\t\t\t\treturn yielder.yieldReturn(current);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\ttrue // Is endless!\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic toNegativeInfinity(\r\n\t\tstart:number = 0,\r\n\t\tstep:number = 1):InfiniteEnumerable\r\n\t{\r\n\t\treturn Enumerable.toInfinity(start, -step);\r\n\t}\r\n\r\n\tstatic rangeTo(\r\n\t\tstart:number,\r\n\t\tto:number,\r\n\t\tstep:number = 1):FiniteEnumerable\r\n\t{\r\n\t\tif(isNaN(to) || !isFinite(to))\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"to\", to, \"Must be a finite number.\");\r\n\r\n\t\tif(step && !isFinite(step))\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"step\", step, \"Must be a finite non-zero number.\");\r\n\r\n\t\t// This way we adjust for the delta from start and to so the user can say +/- step and it will work as expected.\r\n\t\tstep = Math.abs(step);\r\n\r\n\t\treturn new FiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar value:number;\r\n\r\n\t\t\t\treturn new EnumeratorBase(() => { value = start; },\r\n\t\t\t\t\tstart\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar result:boolean = value<=to && yielder.yieldReturn(value);\r\n\r\n\t\t\t\t\t\t\tif(result)\r\n\t\t\t\t\t\t\t\tvalue += step;\r\n\r\n\t\t\t\t\t\t\treturn result;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t:\r\n\t\t\t\t\t\tyielder=>\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar result:boolean = value>=to && yielder.yieldReturn(value);\r\n\r\n\t\t\t\t\t\t\tif(result)\r\n\t\t\t\t\t\t\t\tvalue -= step;\r\n\r\n\t\t\t\t\t\t\treturn result;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t, false);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic matches(input:string, pattern:any, flags:string = \"\"):FiniteEnumerable\r\n\t{\r\n\t\tif(input===null || input===VOID0)\r\n\t\t\tthrow new ArgumentNullException(\"input\");\r\n\t\tvar type = typeof input;\r\n\t\tif(type!=Type.STRING)\r\n\t\t\tthrow new Error(\"Cannot exec RegExp matches of type '\" + type + \"'.\");\r\n\r\n\t\tif(pattern instanceof RegExp)\r\n\t\t{\r\n\t\t\tflags += (pattern.ignoreCase) ? \"i\" : \"\";\r\n\t\t\tflags += (pattern.multiline) ? \"m\" : \"\";\r\n\t\t\tpattern = pattern.source;\r\n\t\t}\r\n\r\n\t\tif(flags.indexOf(\"g\")=== -1) flags += \"g\";\r\n\r\n\t\treturn new FiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar regex:RegExp;\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tregex = new RegExp(pattern, flags);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t// Calling regex.exec consecutively on the same input uses the lastIndex to start the next match.\r\n\t\t\t\t\t\tvar match = regex.exec(input);\r\n\t\t\t\t\t\treturn (match!==null) ? yielder.yieldReturn(match) : false;\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic generate(factory:(index?:number) => T):InfiniteEnumerable;\r\n\tstatic generate(factory:(index?:number) => T, count:number):FiniteEnumerable;\r\n\tstatic generate(factory:(index?:number) => T, count:number = Infinity):InfiniteEnumerable\r\n\t{\r\n\r\n\t\tif(isNaN(count) || count<=0)\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\treturn isFinite(count) && Integer.assert(count, \"count\")\r\n\t\t\t?\r\n\t\t\tnew FiniteEnumerable(\r\n\t\t\t\t() =>\r\n\t\t\t\t{\r\n\t\t\t\t\tvar c:number = count;\r\n\t\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t\t() =>\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar current:number = index++;\r\n\t\t\t\t\t\t\treturn current(\r\n\t\t\t\t() =>\r\n\t\t\t\t{\r\n\t\t\t\t\tvar index:number = 0;\r\n\t\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t\t() =>\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t(yielder)=> yielder.yieldReturn(factory(index++)),\r\n\r\n\t\t\t\t\t\ttrue // Is endless!\r\n\t\t\t\t\t);\r\n\t\t\t\t});\r\n\t}\r\n\r\n\tstatic unfold(\r\n\t\tseed:T,\r\n\t\tvalueFactory:Selector,\r\n\t\tskipSeed:Boolean = false):InfiniteEnumerable\r\n\t{\r\n\t\treturn new InfiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar index:number = 0;\r\n\t\t\t\tvar value:T;\r\n\t\t\t\tvar isFirst:boolean;\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tvalue = seed;\r\n\t\t\t\t\t\tisFirst = !skipSeed;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar i = index++;\r\n\t\t\t\t\t\tif(isFirst)\r\n\t\t\t\t\t\t\tisFirst = false;\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\tvalue = valueFactory(value, i);\r\n\t\t\t\t\t\treturn yielder.yieldReturn(value);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\ttrue // Is endless!\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic forEach(\r\n\t\tenumerable:IEnumerableOrArray,\r\n\t\taction:(element:T, index?:number) => any):void\r\n\t{\r\n\t\t// Will properly dispose created enumerable.\r\n\t\t// Will throw if enumerable is endless.\r\n\t\tforEach(enumerable, action);\r\n\t}\r\n\r\n\tstatic map(\r\n\t\tenumerable:IEnumerableOrArray,\r\n\t\tselector:Selector):TResult[]\r\n\t{\r\n\t\t// Will properly dispose created enumerable.\r\n\t\t// Will throw if enumerable is endless.\r\n\t\treturn map(enumerable, selector);\r\n\r\n\t}\r\n\r\n\t// Slightly optimized versions for numbers.\r\n\tstatic max(values:FiniteEnumerable):number\r\n\t{\r\n\t\treturn values\r\n\t\t\t.takeUntil(v=> v== +Infinity, true)\r\n\t\t\t.aggregate(Functions.Greater);\r\n\t}\r\n\r\n\tstatic min(values:FiniteEnumerable):number\r\n\t{\r\n\t\treturn values\r\n\t\t\t.takeUntil(v=> v== -Infinity, true)\r\n\t\t\t.aggregate(Functions.Lesser);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Takes any set of collections of the same type and weaves them together.\r\n\t * @param enumerables\r\n\t * @returns {Enumerable}\r\n\t */\r\n\tstatic weave(\r\n\t\tenumerables:IEnumerableOrArray>):Enumerable\r\n\t{\r\n\t\tif(!enumerables)\r\n\t\t\tthrow new ArgumentNullException('enumerables');\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar queue:Queue>;\r\n\t\t\t\tvar mainEnumerator:IEnumerator>;\r\n\t\t\t\tvar index:number;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tqueue = new Queue>();\r\n\t\t\t\t\t\tmainEnumerator = enumeratorFrom(enumerables);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tlet e:IEnumerator;\r\n\r\n\t\t\t\t\t\t// First pass...\r\n\t\t\t\t\t\tif(mainEnumerator)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\twhile(!e && mainEnumerator.moveNext())\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tlet c = mainEnumerator.current;\r\n\t\t\t\t\t\t\t\te = nextEnumerator(queue, c && enumeratorFrom(c));\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(!e)\r\n\t\t\t\t\t\t\t\tmainEnumerator = null;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\twhile(!e && queue.count)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\te = nextEnumerator(queue, queue.dequeue());\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn e\r\n\t\t\t\t\t\t\t? yielder.yieldReturn(e.current)\r\n\t\t\t\t\t\t\t: yielder.yieldBreak();\r\n\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose.these(queue.dump());\r\n\t\t\t\t\t\tdispose(mainEnumerator, queue);\r\n\t\t\t\t\t\tmainEnumerator = null;\r\n\t\t\t\t\t\tqueue = null;\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\tdoAction(\r\n\t\taction:Action|Predicate|Selector|Selector,\r\n\t\tinitializer?:()=>void,\r\n\t\tisEndless:boolean = this.isEndless):Enumerable\r\n\t{\r\n\t\treturn >super.doAction(action, initializer, isEndless);\r\n\t}\r\n\r\n// #region Indexing/Paging methods.\r\n\r\n\tskip(count:number):Enumerable\r\n\t{\r\n\t\treturn >super.skip(count);\r\n\t}\r\n\r\n\tskipWhile(predicate:Predicate):Enumerable\r\n\t{\r\n\t\tthis.throwIfDisposed();\r\n\t\treturn this.doAction(\r\n\t\t\t(element:T, index?:number) =>\r\n\t\t\t\tpredicate(element, index)\r\n\t\t\t\t\t? EnumerableAction.Skip\r\n\t\t\t\t\t: EnumerableAction.Return\r\n\t\t);\r\n\t}\r\n\r\n\ttakeWhile(predicate:Predicate):Enumerable\r\n\t{\r\n\t\tthis.throwIfDisposed();\r\n\r\n\t\tif(!predicate)\r\n\t\t\tthrow new ArgumentNullException('predicate');\r\n\r\n\t\treturn this.doAction(\r\n\t\t\t(element:T, index?:number) =>\r\n\t\t\t\tpredicate(element, index)\r\n\t\t\t\t\t? EnumerableAction.Return\r\n\t\t\t\t\t: EnumerableAction.Break,\r\n\t\t\tnull,\r\n\t\t\tnull // We don't know the state if it is endless or not.\r\n\t\t);\r\n\t}\r\n\r\n\t// Is like the inverse of take While with the ability to return the value identified by the predicate.\r\n\ttakeUntil(predicate:Predicate, includeUntilValue?:boolean):Enumerable\r\n\t{\r\n\t\tthis.throwIfDisposed();\r\n\r\n\t\tif(!predicate)\r\n\t\t\tthrow new ArgumentNullException('predicate');\r\n\r\n\t\tif(!includeUntilValue)\r\n\t\t\treturn this.doAction(\r\n\t\t\t\t(element:T, index?:number) =>\r\n\t\t\t\t\tpredicate(element, index)\r\n\t\t\t\t\t\t? EnumerableAction.Break\r\n\t\t\t\t\t\t: EnumerableAction.Return,\r\n\t\t\t\tnull,\r\n\t\t\t\tnull // We don't know the state if it is endless or not.\r\n\t\t\t);\r\n\r\n\t\tvar found:boolean = false;\r\n\t\treturn this.doAction(\r\n\t\t\t(element:T, index?:number) =>\r\n\t\t\t{\r\n\t\t\t\tif(found)\r\n\t\t\t\t\treturn EnumerableAction.Break;\r\n\r\n\t\t\t\tfound = predicate(element, index);\r\n\t\t\t\treturn EnumerableAction.Return;\r\n\t\t\t},\r\n\t\t\t()=>\r\n\t\t\t{\r\n\t\t\t\tfound = false;\r\n\t\t\t},\r\n\t\t\tnull // We don't know the state if it is endless or not.\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tforEach(action:Predicate | Action):void\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\tthrowIfEndless(_.isEndless);\r\n\r\n\t\tvar index:number = 0;\r\n\t\t// Return value of action can be anything, but if it is (===) false then the forEach will discontinue.\r\n\t\tusing(\r\n\t\t\t_.getEnumerator(), e=>\r\n\t\t\t{\r\n\t\t\t\tthrowIfEndless(e.isEndless);\r\n\r\n\t\t\t\t// It is possible that subsequently 'action' could cause the enumeration to dispose, so we have to check each time.\r\n\t\t\t\twhile(_.throwIfDisposed() && e.moveNext())\r\n\t\t\t\t{\r\n\t\t\t\t\tif(action(e.current, index++)===false)\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\t// #region Conversion Methods\r\n\ttoArray(predicate?:Predicate):T[]\r\n\t{\r\n\t\treturn predicate\r\n\t\t\t? this.where(predicate).toArray()\r\n\t\t\t: this.copyTo([]);\r\n\t}\r\n\r\n\tcopyTo(target:T[], index:number = 0):T[]\r\n\t{\r\n\t\tthis.throwIfDisposed();\r\n\t\tif(!target) throw new ArgumentNullException(\"target\");\r\n\t\tInteger.assertZeroOrGreater(index);\r\n\r\n\t\t// If not exposing an action that could cause dispose, then use forEach utility instead.\r\n\t\tforEach(this, (x, i)=>\r\n\t\t{\r\n\t\t\ttarget[i + index] = x\r\n\t\t});\r\n\r\n\t\treturn target;\r\n\t}\r\n\r\n\ttoLookup(\r\n\t\tkeySelector:Selector,\r\n\t\telementSelector:Selector = Functions.Identity,\r\n\t\tcompareSelector:Selector = Functions.Identity):ILookup\r\n\t{\r\n\t\tvar dict:Dictionary = new Dictionary(compareSelector);\r\n\t\tthis.forEach(\r\n\t\t\tx=>\r\n\t\t\t{\r\n\t\t\t\tvar key = keySelector(x);\r\n\t\t\t\tvar element = elementSelector(x);\r\n\r\n\t\t\t\tvar array = dict.getValue(key);\r\n\t\t\t\tif(array!==VOID0) array.push(element);\r\n\t\t\t\telse dict.addByKeyValue(key, [element]);\r\n\t\t\t}\r\n\t\t);\r\n\t\treturn new Lookup(dict);\r\n\t}\r\n\r\n\ttoMap(\r\n\t\tkeySelector:Selector,\r\n\t\telementSelector:Selector):IMap\r\n\t{\r\n\t\tvar obj:IMap = {};\r\n\t\tthis.forEach((x, i)=>\r\n\t\t{\r\n\t\t\tobj[keySelector(x, i)] = elementSelector(x, i);\r\n\t\t});\r\n\t\treturn obj;\r\n\t}\r\n\r\n\ttoDictionary(\r\n\t\tkeySelector:Selector,\r\n\t\telementSelector:Selector,\r\n\t\tcompareSelector:Selector = Functions.Identity):Dictionary\r\n\t{\r\n\t\tvar dict:Dictionary = new Dictionary(compareSelector);\r\n\t\tthis.forEach((x, i)=> dict.addByKeyValue(keySelector(x, i), elementSelector(x, i)));\r\n\t\treturn dict;\r\n\t}\r\n\r\n\ttoJoinedString(separator:string = \"\", selector:Selector = Functions.Identity)\r\n\t{\r\n\t\treturn this.select(selector).toArray().join(separator);\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\r\n\ttakeExceptLast(count:number = 1):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\tif(!(count>0)) // Out of bounds?\r\n\t\t\treturn _;\r\n\r\n\t\tif(!isFinite(count)) // +Infinity equals skip all so return empty.\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\tInteger.assert(count, \"count\");\r\n\t\tvar c = count;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar q:Queue;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tq = new Queue();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t// Add the next one to the queue.\r\n\t\t\t\t\t\t\tq.enqueue(enumerator.current);\r\n\r\n\t\t\t\t\t\t\t// Did we reach our quota?\r\n\t\t\t\t\t\t\tif(q.count>c)\r\n\t\t\t\t\t\t\t// Okay then, start returning results.\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(q.dequeue());\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator, q);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tskipToLast(count:number):Enumerable\r\n\t{\r\n\t\tif(!(count>0)) // Out of bounds? Empty.\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\tvar _ = this;\r\n\r\n\t\tif(!isFinite(count)) // Infinity means return all.\r\n\t\t\treturn _;\r\n\r\n\t\tInteger.assert(count, \"count\");\r\n\r\n\t\t// This sets up the query so nothing is done until move next is called.\r\n\t\treturn _.reverse()\r\n\t\t\t.take(count)\r\n\t\t\t.reverse();\r\n\t}\r\n\r\n\t// To help with type guarding.\r\n\r\n\twhere(predicate:Predicate):Enumerable\r\n\t{\r\n\t\treturn >super.where(predicate);\r\n\t}\r\n\r\n\tselect(selector:Selector):Enumerable\r\n\t{\r\n\t\treturn >super.select(selector);\r\n\t}\r\n\r\n\tselectMany(\r\n\t\tcollectionSelector:Selector>):Enumerable;\r\n\r\n\r\n\tselectMany(\r\n\t\tcollectionSelector:Selector>,\r\n\t\tresultSelector:(collection:T, element:TElement)=>TResult):Enumerable;\r\n\r\n\tselectMany(\r\n\t\tcollectionSelector:Selector>,\r\n\t\tresultSelector?:(collection:T, element:any)=>TResult):Enumerable\r\n\t{\r\n\t\treturn this._selectMany(collectionSelector, resultSelector);\r\n\t}\r\n\r\n\tchoose():Enumerable;\r\n\tchoose(selector?:Selector):Enumerable\r\n\tchoose(selector:Selector = Functions.Identity):Enumerable\r\n\t{\r\n\t\treturn this._choose(selector);\r\n\t}\r\n\r\n\treverse():Enumerable\r\n\t{\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\t\tthrowIfEndless(_._isEndless); // Cannot reverse an endless collection...\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar buffer:T[];\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\tbuffer = _.toArray();\r\n\t\t\t\t\t\tindex = buffer.length;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=> index && yielder.yieldReturn(buffer[--index]),\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tbuffer.length = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tshuffle():Enumerable\r\n\t{\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\t\tthrowIfEndless(_._isEndless); // Cannot shuffle an endless collection...\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar buffer:T[];\r\n\t\t\t\tvar capacity:number;\r\n\t\t\t\tvar len:number;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\tbuffer = _.toArray();\r\n\t\t\t\t\t\tcapacity = len = buffer.length;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t// Avoid using major array operations like .slice();\r\n\t\t\t\t\t\tif(!len)\r\n\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\r\n\t\t\t\t\t\tvar selectedIndex = Integer.random(len);\r\n\t\t\t\t\t\tvar selectedValue = buffer[selectedIndex];\r\n\r\n\t\t\t\t\t\tbuffer[selectedIndex] = buffer[--len]; // Take the last one and put it here.\r\n\t\t\t\t\t\tbuffer[len] = null; // clear possible reference.\r\n\r\n\t\t\t\t\t\tif(len%32==0) // Shrink?\r\n\t\t\t\t\t\t\tbuffer.length = len;\r\n\r\n\t\t\t\t\t\treturn yielder.yieldReturn(selectedValue);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tbuffer.length = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tcount(predicate?:Predicate):number\r\n\t{\r\n\t\tvar count:number = 0;\r\n\t\tthis.forEach(\r\n\t\t\tpredicate\r\n\r\n\t\t\t\t?\r\n\t\t\t\t(x, i) =>\r\n\t\t\t\t{\r\n\t\t\t\t\tif(predicate(x, i))++count;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t:\r\n\t\t\t\t() =>\r\n\t\t\t\t{\r\n\t\t\t\t\t++count;\r\n\t\t\t\t}\r\n\t\t);\r\n\r\n\t\treturn count;\r\n\t}\r\n\r\n\t// Akin to '.every' on an array.\r\n\tall(predicate:Predicate):boolean\r\n\t{\r\n\t\tif(!predicate)\r\n\t\t\tthrow new ArgumentNullException(\"predicate\");\r\n\r\n\t\tvar result = true;\r\n\t\tthis.forEach((x, i) =>\r\n\t\t{\r\n\t\t\tif(!predicate(x, i))\r\n\t\t\t{\r\n\t\t\t\tresult = false;\r\n\t\t\t\treturn false; // break\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\r\n\t// 'every' has been added here for parity/compatibility with an array.\r\n\tevery(predicate:Predicate):boolean\r\n\t{\r\n\t\treturn this.all(predicate);\r\n\t}\r\n\r\n\t// Akin to '.some' on an array.\r\n\tany(predicate?:Predicate):boolean\r\n\t{\r\n\t\tif(!predicate)\r\n\t\t\treturn super.any();\r\n\r\n\t\tvar result = false;\r\n\t\t// Splitting the forEach up this way reduces iterative processing.\r\n\t\t// forEach handles the generation and disposal of the enumerator.\r\n\t\tthis.forEach(\r\n\t\t\t(x, i) =>\r\n\t\t\t{\r\n\t\t\t\tresult = predicate(x, i); // false = not found and therefore it should continue. true = found and break;\r\n\t\t\t\treturn !result;\r\n\t\t\t});\r\n\t\treturn result;\r\n\r\n\t}\r\n\r\n\t// 'some' has been added here for parity/compatibility with an array.\r\n\tsome(predicate:Predicate):boolean\r\n\t{\r\n\t\treturn this.any(predicate);\r\n\t}\r\n\r\n\r\n\tcontains(value:T, compareSelector?:Selector):boolean\r\n\t{\r\n\t\treturn compareSelector\r\n\t\t\t? this.any(v=> compareSelector(v)===compareSelector(value))\r\n\t\t\t: this.any(v=> v===value);\r\n\t}\r\n\r\n\t// Originally has an overload for a predicate,\r\n\t// but that's a bad idea since this could be an enumeration of functions and therefore fail the intent.\r\n\t// Better to chain a where statement first to be more explicit.\r\n\tindexOf(value:T, compareSelector?:Selector):number\r\n\t{\r\n\t\tvar found:number = -1;\r\n\t\tthis.forEach(\r\n\t\t\tcompareSelector\r\n\t\t\t\t?\r\n\t\t\t\t(element:T, i?:number) =>\r\n\t\t\t\t{\r\n\t\t\t\t\tif(Values.areEqual(compareSelector(element, i), compareSelector(value, i), true))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfound = i;\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t:\r\n\t\t\t\t(element:T, i?:number) =>\r\n\t\t\t\t{\r\n\t\t\t\t\t// Why? Because NaN doesn't equal NaN. :P\r\n\t\t\t\t\tif(Values.areEqual(element, value, true))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfound = i;\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\r\n\t\treturn found;\r\n\t}\r\n\r\n\tlastIndexOf(value:T, compareSelector?:Selector):number\r\n\t{\r\n\t\tvar result:number = -1;\r\n\t\tthis.forEach(\r\n\t\t\tcompareSelector\r\n\t\t\t\t?\r\n\t\t\t\t(element:T, i?:number) =>\r\n\t\t\t\t{\r\n\t\t\t\t\tif(Values.areEqual(compareSelector(element, i), compareSelector(value, i), true)) result\r\n\t\t\t\t\t\t= i;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t:\r\n\t\t\t\t(element:T, i?:number) =>\r\n\t\t\t\t{\r\n\t\t\t\t\tif(Values.areEqual(element, value, true)) result = i;\r\n\t\t\t\t});\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\tmerge(enumerables:IArray>):Enumerable\r\n\t{\r\n\t\treturn >super.merge(enumerables);\r\n\t}\r\n\r\n\tconcat(...enumerables:Array>):Enumerable\r\n\t{\r\n\t\treturn this.merge(enumerables);\r\n\t}\r\n\r\n\r\n\tintersect(\r\n\t\tsecond:IEnumerableOrArray,\r\n\t\tcompareSelector?:Selector):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar keys:Dictionary;\r\n\t\t\t\tvar outs:Dictionary;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\r\n\t\t\t\t\t\tkeys = new Dictionary(compareSelector);\r\n\t\t\t\t\t\touts = new Dictionary(compareSelector);\r\n\r\n\t\t\t\t\t\tforEach(second, key=>\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tkeys.addByKeyValue(key, true);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar current = enumerator.current;\r\n\t\t\t\t\t\t\tif(!outs.containsKey(current) && keys.containsKey(current))\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\touts.addByKeyValue(current, true);\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(current);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator, keys, outs);\r\n\t\t\t\t\t},\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\tsequenceEqual(\r\n\t\tsecond:IEnumerableOrArray,\r\n\t\tequalityComparer:EqualityComparison = Values.areEqual):boolean\r\n\t{\r\n\t\treturn using(\r\n\t\t\tthis.getEnumerator(),\r\n\t\t\te1=> using(\r\n\t\t\t\tenumeratorFrom(second),\r\n\t\t\t\te2=>\r\n\t\t\t\t{\r\n\t\t\t\t\t// if both are endless, this will never evaluate.\r\n\t\t\t\t\tthrowIfEndless(e1.isEndless && e2.isEndless);\r\n\r\n\t\t\t\t\twhile(e1.moveNext())\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(!e2.moveNext() || !equalityComparer(e1.current, e2.current))\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn !e2.moveNext();\r\n\t\t\t\t}\r\n\t\t\t)\r\n\t\t);\r\n\t}\r\n\r\n\t//isEquivalent(second:IEnumerableOrArray,\r\n\t//\tequalityComparer:EqualityComparison = Values.areEqual):boolean\r\n\t//{\r\n\t//\treturn this\r\n\t//\t\t.orderBy(keySelector)\r\n\t//\t\t.sequenceEqual(Enumerable.from(second).orderBy(keySelector))\r\n\t//}\r\n\r\n\r\n\t// #endregion\r\n\r\n\r\n\tofType(type:{ new (...params:any[]):TType }):Enumerable;\r\n\tofType(type:any):Enumerable\r\n\t{\r\n\t\treturn >super.ofType(type);\r\n\t}\r\n\r\n\texcept(\r\n\t\tsecond:IEnumerableOrArray,\r\n\t\tcompareSelector?:Selector):Enumerable\r\n\t{\r\n\t\treturn >super.except(second, compareSelector);\r\n\t}\r\n\r\n\tdistinct(compareSelector?:(value:T)=>T):Enumerable\r\n\t{\r\n\t\treturn >super.distinct(compareSelector);\r\n\t}\r\n\r\n\tdistinctUntilChanged(compareSelector:Selector = Functions.Identity):Enumerable\r\n\t{\r\n\t\treturn >super.distinctUntilChanged(compareSelector);\r\n\t}\r\n\r\n// #region Ordering Methods\r\n\r\n\torderBy(keySelector:Selector = Functions.Identity):IOrderedEnumerable\r\n\t{\r\n\t\treturn new OrderedEnumerable(this, keySelector, Order.Ascending);\r\n\t}\r\n\r\n\torderUsing(comparison:Comparison):IOrderedEnumerable\r\n\t{\r\n\t\treturn new OrderedEnumerable(this, null, Order.Ascending, null, comparison);\r\n\t}\r\n\r\n\torderUsingReversed(comparison:Comparison):IOrderedEnumerable\r\n\t{\r\n\t\treturn new OrderedEnumerable(this, null, Order.Descending, null, comparison);\r\n\t}\r\n\r\n\torderByDescending(keySelector:Selector = Functions.Identity):IOrderedEnumerable\r\n\t{\r\n\t\treturn new OrderedEnumerable(this, keySelector, Order.Descending);\r\n\t}\r\n\r\n\t/*\r\n\t\t weightedSample(weightSelector) {\r\n\t\t weightSelector = Utils.createLambda(weightSelector);\r\n\t\t var source = this;\r\n\r\n\t\t return new Enumerable(() => {\r\n\t\t var sortedByBound;\r\n\t\t var totalWeight = 0;\r\n\r\n\t\t return new EnumeratorBase(\r\n\t\t () => {\r\n\t\t sortedByBound = source\r\n\t\t .choose(function (x) {\r\n\t\t var weight = weightSelector(x);\r\n\t\t if (weight <= 0) return null; // ignore 0\r\n\r\n\t\t totalWeight += weight;\r\n\t\t return { value: x, bound: totalWeight }\r\n\t\t })\r\n\t\t .toArray();\r\n\t\t },\r\n\t\t () => {\r\n\t\t if (sortedByBound.length > 0) {\r\n\t\t var draw = (Math.random() * totalWeight) + 1;\r\n\r\n\t\t var lower = -1;\r\n\t\t var upper = sortedByBound.length;\r\n\t\t while (upper - lower > 1) {\r\n\t\t var index = ((lower + upper) / 2);\r\n\t\t if (sortedByBound[index].bound >= draw) {\r\n\t\t upper = index;\r\n\t\t }\r\n\t\t else {\r\n\t\t lower = index;\r\n\t\t }\r\n\t\t }\r\n\r\n\t\t return (this).yieldReturn(sortedByBound[upper].value);\r\n\t\t }\r\n\r\n\t\t return (this).yieldBreak();\r\n\t\t },\r\n\t\t Functions.Blank);\r\n\t\t });\r\n\t\t }\r\n\t\t */\r\n\t// #endregion\r\n\r\n\tbuffer(size:number):Enumerable\r\n\t{\r\n\t\treturn >super.buffer(size);\r\n\t}\r\n\r\n\t// #region Grouping Methods\r\n\r\n\t// Originally contained a result selector (not common use), but this could be done simply by a select statement after.\r\n\r\n\r\n\tgroupBy(keySelector:Selector):Enumerable>;\r\n\tgroupBy(\r\n\t\tkeySelector:Selector,\r\n\t\telementSelector?:Selector,\r\n\t\tcompareSelector?:Selector):Enumerable>;\r\n\tgroupBy(\r\n\t\tkeySelector:Selector,\r\n\t\telementSelector?:Selector,\r\n\t\tcompareSelector?:Selector):Enumerable>\r\n\t{\r\n\t\tif(!elementSelector) elementSelector = Functions.Identity; // Allow for 'null' and not just undefined.\r\n\t\treturn new Enumerable>(\r\n\t\t\t() => this.toLookup(keySelector, elementSelector, compareSelector)\r\n\t\t\t\t.getEnumerator()\r\n\t\t);\r\n\t}\r\n\r\n\tpartitionBy(keySelector:Selector):Enumerable>;\r\n\tpartitionBy(\r\n\t\tkeySelector:Selector,\r\n\t\telementSelector:Selector,\r\n\t\tresultSelector?:(key:TKey, element:TElement[]) => IGrouping,\r\n\t\tcompareSelector?:Selector):Enumerable>;\r\n\tpartitionBy(\r\n\t\tkeySelector:Selector,\r\n\t\telementSelector?:Selector,\r\n\t\tresultSelector:(key:TKey, element:TElement[]) => IGrouping\r\n\t\t\t= (key:TKey, elements:TElement[]) => new Grouping(key, elements),\r\n\t\tcompareSelector:Selector\r\n\t\t\t= Functions.Identity):Enumerable>|Enumerable>\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\t\tif(!elementSelector) elementSelector = Functions.Identity; // Allow for 'null' and not just undefined.\r\n\t\treturn new Enumerable>(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar key:TKey;\r\n\t\t\t\tvar compareKey:TCompare;\r\n\t\t\t\tvar group:TElement[];\r\n\t\t\t\tvar len:number;\r\n\r\n\t\t\t\treturn new EnumeratorBase>(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tif(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tkey = keySelector(enumerator.current);\r\n\t\t\t\t\t\t\tcompareKey = compareSelector(key);\r\n\t\t\t\t\t\t\tgroup = [elementSelector(enumerator.current)];\r\n\t\t\t\t\t\t\tlen = 1;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\tgroup = null;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(!group)\r\n\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\r\n\t\t\t\t\t\tvar hasNext:boolean, c:T;\r\n\t\t\t\t\t\twhile((hasNext = enumerator.moveNext()))\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tc = enumerator.current;\r\n\t\t\t\t\t\t\tif(compareKey===compareSelector(keySelector(c)))\r\n\t\t\t\t\t\t\t\tgroup[len++] = elementSelector(c);\r\n\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar result:IGrouping\r\n\t\t\t\t\t\t\t = resultSelector(key, group);\r\n\r\n\t\t\t\t\t\tif(hasNext)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tc = enumerator.current;\r\n\t\t\t\t\t\t\tkey = keySelector(c);\r\n\t\t\t\t\t\t\tcompareKey = compareSelector(key);\r\n\t\t\t\t\t\t\tgroup = [elementSelector(c)];\r\n\t\t\t\t\t\t\tlen = 1;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tgroup = null;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn yielder.yieldReturn(result);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t\tgroup = null;\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\t// #region Aggregate Methods\r\n\r\n\taggregate(\r\n\t\tfunc:(a:T, b:T) => T,\r\n\t\tseed?:T):T\r\n\t{\r\n\t\treturn this.scan(func, seed).lastOrDefault();\r\n\t}\r\n\r\n\taverage(selector:Selector = Type.numberOrNaN):number\r\n\t{\r\n\t\tvar count = 0;\r\n\t\tvar sum = this.sum((e, i)=>\r\n\t\t{\r\n\t\t\tcount++;\r\n\t\t\treturn selector(e, i);\r\n\t\t});\r\n\r\n\t\treturn (isNaN(sum) || !count)\r\n\t\t\t? NaN\r\n\t\t\t: (sum/count);\r\n\t}\r\n\r\n\t// If using numbers, it may be useful to call .takeUntil(v=>v==Infinity,true) before calling max. See static versions for numbers.\r\n\tmax():T\r\n\t{\r\n\t\treturn this.aggregate(Functions.Greater);\r\n\t}\r\n\r\n\tmin():T\r\n\t{\r\n\t\treturn this.aggregate(Functions.Lesser);\r\n\t}\r\n\r\n\tmaxBy(keySelector:Selector = Functions.Identity):T\r\n\t{\r\n\t\treturn this.aggregate((a:T, b:T) => (keySelector(a)>keySelector(b)) ? a : b);\r\n\t}\r\n\r\n\tminBy(keySelector:Selector = Functions.Identity):T\r\n\t{\r\n\t\treturn this.aggregate((a:T, b:T) => (keySelector(a) = Type.numberOrNaN):number\r\n\t{\r\n\t\tvar sum = 0;\r\n\r\n\t\t// This allows for infinity math that doesn't destroy the other values.\r\n\t\tvar sumInfinite = 0; // Needs more investigation since we are really trying to retain signs.\r\n\r\n\t\tthis.forEach(\r\n\t\t\tx=>\r\n\t\t\t{\r\n\t\t\t\tvar value = selector(x);\r\n\t\t\t\tif(isNaN(value))\r\n\t\t\t\t{\r\n\t\t\t\t\tsum = NaN;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tif(isFinite(value))\r\n\t\t\t\t\tsum += value;\r\n\t\t\t\telse\r\n\t\t\t\t\tsumInfinite +=\r\n\t\t\t\t\t\tvalue>0 ?\r\n\t\t\t\t\t\t\t(+1) :\r\n\t\t\t\t\t\t\t(-1);\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\treturn isNaN(sum) ? NaN : (sumInfinite ? (sumInfinite*Infinity) : sum);\r\n\t}\r\n\r\n\t// Multiplication...\r\n\tproduct(selector:Selector = Type.numberOrNaN):number\r\n\t{\r\n\t\tvar result = 1, exists:boolean = false;\r\n\r\n\t\tthis.forEach(\r\n\t\t\t(x, i)=>\r\n\t\t\t{\r\n\t\t\t\texists = true;\r\n\t\t\t\tvar value = selector(x, i);\r\n\t\t\t\tif(isNaN(value))\r\n\t\t\t\t{\r\n\t\t\t\t\tresult = NaN;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(value==0)\r\n\t\t\t\t{\r\n\t\t\t\t\tresult = 0; // Multiplying by zero will always end in zero.\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Multiplication can never recover from infinity and simply must retain signs.\r\n\t\t\t\t// You could cancel out infinity with 1/infinity but no available representation exists.\r\n\t\t\t\tresult *= value;\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\treturn (exists && isNaN(result)) ? NaN : result;\r\n\t}\r\n\r\n\t/**\r\n\t * Takes the first number and divides it by all following.\r\n\t * @param selector\r\n\t * @returns {number}\r\n\t */\r\n\tquotient(selector:Selector = Type.numberOrNaN):number\r\n\t{\r\n\t\tvar count = 0;\r\n\t\tvar result:number = NaN;\r\n\r\n\t\tthis.forEach(\r\n\t\t\t(x, i)=>\r\n\t\t\t{\r\n\t\t\t\tvar value = selector(x, i);\r\n\t\t\t\tcount++;\r\n\r\n\t\t\t\tif(count===1)\r\n\t\t\t\t{\r\n\t\t\t\t\tresult = value;\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tif(isNaN(value) || value===0 || !isFinite(value))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tresult = NaN;\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tresult /= value;\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\tif(count===1)\r\n\t\t\tresult = NaN;\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\t// #region Single Value Return...\r\n\r\n\tlast():T\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar value:T = undefined;\r\n\t\tvar found:boolean = false;\r\n\t\t_.forEach(\r\n\t\t\tx =>\r\n\t\t\t{\r\n\t\t\t\tfound = true;\r\n\t\t\t\tvalue = x;\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\tif(!found) throw new Error(\"last:No element satisfies the condition.\");\r\n\t\treturn value;\r\n\t}\r\n\r\n\tlastOrDefault(defaultValue:T = null):T\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar value:T = undefined;\r\n\t\tvar found:boolean = false;\r\n\t\t_.forEach(\r\n\t\t\tx=>\r\n\t\t\t{\r\n\t\t\t\tfound = true;\r\n\t\t\t\tvalue = x;\r\n\t\t\t}\r\n\t\t);\r\n\t\treturn (!found) ? defaultValue : value;\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\tshare():Enumerable\r\n\t{\r\n\t\treturn >super.share();\r\n\t}\r\n\r\n\r\n\tcatchError(handler:(e:any)=>void):Enumerable\r\n\t{\r\n\t\treturn >super.catchError(handler);\r\n\t}\r\n\r\n\r\n\tfinallyAction(action:()=>void):Enumerable\r\n\t{\r\n\t\treturn >super.finallyAction(action);\r\n\t}\r\n\r\n\tmemoize():Enumerable\r\n\t{\r\n\t\tvar _ = this, disposed:boolean = !_.throwIfDisposed();\r\n\r\n\t\tvar cache:T[];\r\n\t\tvar enumerator:IEnumerator;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\tif(!enumerator)\r\n\t\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tif(!cache)\r\n\t\t\t\t\t\t\tcache = [];\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\tvar i = index++;\r\n\r\n\t\t\t\t\t\tif(i>=cache.length)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\treturn (enumerator.moveNext())\r\n\t\t\t\t\t\t\t\t? yielder.yieldReturn(cache[i] = enumerator.current)\r\n\t\t\t\t\t\t\t\t: false;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn yielder.yieldReturn(cache[i]);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t\tif(cache)\r\n\t\t\t\t\tcache.length = 0;\r\n\t\t\t\tcache = null;\r\n\r\n\t\t\t\tdispose(enumerator);\r\n\t\t\t\tenumerator = null;\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\r\n}\r\n\r\n\r\n// Provided for type guarding.\r\nexport class FiniteEnumerable\r\nextends Enumerable\r\n{\r\n\tconstructor(\r\n\t\tenumeratorFactory:() => IEnumerator,\r\n\t\tfinalizer?:() => void)\r\n\t{\r\n\t\tsuper(enumeratorFactory, finalizer, false);\r\n\t}\r\n\r\n}\r\n\r\nclass ArrayEnumerable\r\nextends FiniteEnumerable\r\n{\r\n\tprivate _source:IArray;\r\n\r\n\tconstructor(source:IArray)\r\n\t{\r\n\t\tsuper(() =>\r\n\t\t{\r\n\t\t\t_.throwIfDisposed();\r\n\t\t\treturn new ArrayEnumerator(() =>\r\n\t\t\t{\r\n\t\t\t\t_.throwIfDisposed(\"The underlying ArrayEnumerable was disposed.\", \"ArrayEnumerator\");\r\n\r\n\t\t\t\treturn _._source; // Should never be null, but ArrayEnumerable if not disposed simply treats null as empty array.\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tvar _ = this;\r\n\t\t_._disposableObjectName = \"ArrayEnumerable\";\r\n\t\t_._source = source;\r\n\r\n\t}\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis._source = null;\r\n\t}\r\n\r\n\tget source():IArray\r\n\t{\r\n\t\treturn this._source;\r\n\t}\r\n\r\n\ttoArray():T[]\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\treturn toArray(_._source);\r\n\t}\r\n\r\n\tasEnumerable():ArrayEnumerable\r\n\t{\r\n\t\treturn new ArrayEnumerable(this._source);\r\n\t}\r\n\r\n\t// Optimize forEach so that subsequent usage is optimized.\r\n\tforEach(action:Predicate | Action):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tforEach(_._source, action);\r\n\t}\r\n\r\n\t// These methods should ALWAYS check for array length before attempting anything.\r\n\r\n\tany(predicate?:Predicate):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar source = _._source, len = source.length;\r\n\t\treturn len && (!predicate || super.any(predicate));\r\n\t}\r\n\r\n\tcount(predicate?:Predicate):number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar source = _._source, len = source.length;\r\n\t\treturn len && (predicate ? super.count(predicate) : len);\r\n\t}\r\n\r\n\telementAtOrDefault(index:number, defaultValue:T = null):T\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\tInteger.assertZeroOrGreater(index, 'index');\r\n\r\n\t\tvar source = _._source;\r\n\t\treturn index\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\r\n\t\tif(!(count>0))\r\n\t\t\treturn _;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() => new ArrayEnumerator(() => _._source, count)\r\n\t\t);\r\n\t}\r\n\r\n\ttakeExceptLast(count:number = 1):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn _.take(_._source.length - count);\r\n\t}\r\n\r\n\tskipToLast(count:number):Enumerable\r\n\t{\r\n\t\tif(!(count>0))\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\tvar _ = this;\r\n\t\tif(!isFinite(count))\r\n\t\t\treturn _;\r\n\r\n\t\tvar len = _._source\r\n\t\t\t? _._source.length\r\n\t\t\t: 0;\r\n\r\n\t\treturn _.skip(len - count);\r\n\t}\r\n\r\n\treverse():Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() => new ArrayEnumerator(\r\n\t\t\t\t() => _._source, _._source\r\n\t\t\t\t\t? (_._source.length - 1)\r\n\t\t\t\t\t: 0, -1\r\n\t\t\t)\r\n\t\t);\r\n\t}\r\n\r\n\tmemoize():ArrayEnumerable\r\n\t{\r\n\t\treturn this.asEnumerable();\r\n\t}\r\n\r\n\tsequenceEqual(\r\n\t\tsecond:IEnumerableOrArray,\r\n\t\tequalityComparer:EqualityComparison = Values.areEqual):boolean\r\n\t{\r\n\t\tif(Type.isArrayLike(second))\r\n\t\t\treturn Arrays.areEqual(this.source, second, true, equalityComparer);\r\n\r\n\t\tif(second instanceof ArrayEnumerable)\r\n\t\t\treturn second.sequenceEqual(this.source, equalityComparer);\r\n\r\n\t\treturn super.sequenceEqual(second, equalityComparer);\r\n\t}\r\n\r\n\r\n\ttoJoinedString(separator:string = \"\", selector:Selector = Functions.Identity)\r\n\t{\r\n\t\tvar s = this._source;\r\n\t\treturn !selector && Array.isArray(s)\r\n\t\t\t? (>s).join(separator)\r\n\t\t\t: super.toJoinedString(separator, selector);\r\n\t}\r\n\r\n}\r\n\r\n\r\nexport interface IGrouping\r\nextends Enumerable\r\n{\r\n\tkey:TKey;\r\n}\r\n\r\nclass Grouping\r\nextends ArrayEnumerable implements IGrouping\r\n{\r\n\r\n\tconstructor(private _groupKey:TKey, elements:TElement[])\r\n\t{\r\n\t\tsuper(elements);\r\n\t}\r\n\r\n\tget key():TKey\r\n\t{\r\n\t\treturn this._groupKey;\r\n\t}\r\n}\r\n\r\n\r\nexport interface ILookup\r\nextends IEnumerable>\r\n{\r\n\tcount:number;\r\n\tget(key:TKey):TElement[];\r\n\tcontains(key:TKey):boolean;\r\n}\r\n\r\nclass Lookup\r\nimplements ILookup\r\n{\r\n\r\n\tconstructor(private _dictionary:Dictionary)\r\n\t{\r\n\t}\r\n\r\n\tget count():number\r\n\t{\r\n\t\treturn this._dictionary.count;\r\n\t}\r\n\r\n\tget(key:TKey):TElement[]\r\n\t{\r\n\t\treturn this._dictionary.getValue(key);\r\n\t}\r\n\r\n\tcontains(key:TKey):boolean\r\n\t{\r\n\t\treturn this._dictionary.containsKey(key);\r\n\t}\r\n\r\n\tgetEnumerator():IEnumerator>\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\t\tvar enumerator:IEnumerator>;\r\n\r\n\t\treturn new EnumeratorBase>(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tenumerator = _._dictionary.getEnumerator();\r\n\t\t\t},\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\r\n\t\t\t\tif(!enumerator.moveNext())\r\n\t\t\t\t\treturn false;\r\n\r\n\t\t\t\tvar current = enumerator.current;\r\n\r\n\t\t\t\treturn yielder.yieldReturn(new Grouping(current.key, current.value));\r\n\t\t\t},\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdispose(enumerator);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n}\r\n\r\n\r\nexport interface IOrderedEnumerable\r\nextends FiniteEnumerable\r\n{\r\n\tthenBy(keySelector:(value:T) => any):IOrderedEnumerable;\r\n\tthenByDescending(keySelector:(value:T) => any):IOrderedEnumerable;\r\n\tthenUsing(comparison:Comparison):IOrderedEnumerable;\r\n\tthenUsingReversed(comparison:Comparison):IOrderedEnumerable\r\n}\r\n\r\nclass OrderedEnumerable\r\nextends FiniteEnumerable implements IOrderedEnumerable\r\n{\r\n\r\n\tconstructor(\r\n\t\tprivate source:IEnumerable,\r\n\t\tpublic keySelector:(value:T) => TOrderBy,\r\n\t\tpublic order:Order,\r\n\t\tpublic parent?:OrderedEnumerable,\r\n\t\tpublic comparer:Comparison = Values.compare)\r\n\t{\r\n\t\tsuper(null);\r\n\t\tthrowIfEndless(source && source.isEndless);\r\n\t}\r\n\r\n\tprivate createOrderedEnumerable(\r\n\t\tkeySelector:(value:T) => TOrderBy,\r\n\t\torder:Order):IOrderedEnumerable\r\n\t{\r\n\t\treturn new OrderedEnumerable(this.source, keySelector, order, this);\r\n\t}\r\n\r\n\tthenBy(keySelector:(value:T) => TOrderBy):IOrderedEnumerable\r\n\t{\r\n\t\treturn this.createOrderedEnumerable(keySelector, Order.Ascending);\r\n\t}\r\n\r\n\tthenUsing(comparison:Comparison):IOrderedEnumerable\r\n\t{\r\n\t\treturn new OrderedEnumerable(this.source, null, Order.Ascending, this, comparison);\r\n\t}\r\n\r\n\tthenByDescending(keySelector:(value:T) => TOrderBy):IOrderedEnumerable\r\n\t{\r\n\t\treturn this.createOrderedEnumerable(keySelector, Order.Descending);\r\n\t}\r\n\r\n\tthenUsingReversed(comparison:Comparison):IOrderedEnumerable\r\n\t{\r\n\t\treturn new OrderedEnumerable(this.source, null, Order.Descending, this, comparison);\r\n\t}\r\n\r\n\tgetEnumerator():EnumeratorBase\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar buffer:T[];\r\n\t\tvar indexes:number[];\r\n\t\tvar index:number = 0;\r\n\r\n\t\treturn new EnumeratorBase(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tindex = 0;\r\n\t\t\t\tbuffer = Enumerable.toArray(_.source);\r\n\t\t\t\tindexes = createSortContext(_).generateSortedIndexes(buffer);\r\n\t\t\t},\r\n\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\t\t\t\treturn (index\r\n\t\t\t{\r\n\t\t\t\tif(buffer)\r\n\t\t\t\t\tbuffer.length = 0;\r\n\t\t\t\tbuffer = null;\r\n\t\t\t\tif(indexes)\r\n\t\t\t\t\tindexes.length = 0;\r\n\t\t\t\tindexes = null;\r\n\t\t\t},\r\n\r\n\t\t\tfalse\r\n\t\t);\r\n\t}\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis.source = null;\r\n\t\tthis.keySelector = null;\r\n\t\tthis.order = null;\r\n\t\tthis.parent = null;\r\n\t}\r\n\r\n}\r\n\r\n// A private static helper for the weave function.\r\nfunction nextEnumerator(queue:Queue>, e:IEnumerator):IEnumerator\r\n{\r\n\tif(e)\r\n\t{\r\n\t\tif(e.moveNext())\r\n\t\t{\r\n\t\t\tqueue.enqueue(e);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tdispose(e);\r\n\t\t\te = null;\r\n\t\t}\r\n\t}\r\n\treturn e;\r\n}\r\n\r\n/**\r\n * Recursively builds a SortContext chain.\r\n * @param orderedEnumerable\r\n * @param currentContext\r\n * @returns {any}\r\n */\r\nfunction createSortContext(\r\n\torderedEnumerable:OrderedEnumerable,\r\n\tcurrentContext:IComparer = null):KeySortedContext\r\n{\r\n\r\n\tvar context = new KeySortedContext(\r\n\t\tcurrentContext,\r\n\t\torderedEnumerable.keySelector,\r\n\t\torderedEnumerable.order,\r\n\t\torderedEnumerable.comparer);\r\n\r\n\tif(orderedEnumerable.parent)\r\n\t\treturn createSortContext(orderedEnumerable.parent, context);\r\n\r\n\treturn context;\r\n}\r\n\r\n// #region Helper Functions...\r\n// This allows for the use of a boolean instead of calling this.throwIfDisposed()\r\n// since there is a strong chance of introducing a circular reference.\r\nfunction throwIfDisposed(disposed:boolean):void\r\n{\r\n\tif(disposed) throw new ObjectDisposedException(\"Enumerable\");\r\n}\r\n// #endregion\r\n\r\nexport default Enumerable;\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Collections/Array/Compare.d.ts b/dist/amd/System/Collections/Array/Compare.d.ts index 2ce82c2d..84dc3239 100644 --- a/dist/amd/System/Collections/Array/Compare.d.ts +++ b/dist/amd/System/Collections/Array/Compare.d.ts @@ -1,11 +1,11 @@ -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { Primitive } from "../../Primitive"; +import { EqualityComparison, Comparison } from "../../FunctionTypes"; +import { IArray } from "./IArray"; +import { IComparable } from "../../IComparable"; export declare function areAllEqual(arrays: any[][], strict?: boolean, equalityComparer?: EqualityComparison): boolean; export declare function areEqual(a: IArray, b: IArray, strict?: boolean, equalityComparer?: EqualityComparison): boolean; export declare function areEquivalent(a: IArray, b: IArray): boolean; diff --git a/dist/amd/System/Collections/Array/Compare.js b/dist/amd/System/Collections/Array/Compare.js index 061c94a1..8d889cee 100644 --- a/dist/amd/System/Collections/Array/Compare.js +++ b/dist/amd/System/Collections/Array/Compare.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -define(["require","exports","../../Compare","../../Types"],function(r,e,n,t){"use strict";function a(r,e){if(r&&e&&r===e||!r&&!e)return!0;if(!r||!e)return!1;var n=r.length;return n!==e.length?!1:0===n?!0:n}function u(r,e,t){if(void 0===t&&(t=n.areEqual),!r)throw new Error("ArgumentNullException: 'arrays' cannot be null.");if(r.length<2)throw new Error("Cannot compare a set of arrays less than 2.");for(var a=r[0],u=0,i=r.length;i>u;u++)if(!o(a,r[u],e,t))return!1;return!0}function o(r,e,u,o){void 0===o&&(o=n.areEqual);var i=a(r,e);if(t["default"].isBoolean(i))return i;for(var f=0;i>f;f++)if(!o(r[f],e[f],u))return!1;return!0}function i(r,e){if(!r||r.length<2)return r;var n,t=r.length;t>65536?n=new Array(t):(n=[],n.length=t);for(var a=0;t>a;a++)n[a]=r[a];return n.sort(e),n}function f(r,e,u){void 0===u&&(u=n.compare);var o=a(r,e);if(t["default"].isBoolean(o))return o;r=i(r,u),e=i(e,u);for(var f=0;o>f;f++)if(0!==u(r[f],e[f]))return!1;return!0}e.areAllEqual=u,e.areEqual=o,e.areEquivalent=f}); +define(["require","exports","../../Compare","../../Types"],function(r,e,n,t){"use strict";function a(r,e){if(r&&e&&r===e||!r&&!e)return!0;if(!r||!e)return!1;var n=r.length;return n!==e.length?!1:0===n?!0:n}function o(r,e,t){if(void 0===t&&(t=n.areEqual),!r)throw new Error("ArgumentNullException: 'arrays' cannot be null.");if(r.length<2)throw new Error("Cannot compare a set of arrays less than 2.");for(var a=r[0],o=0,i=r.length;i>o;o++)if(!u(a,r[o],e,t))return!1;return!0}function u(r,e,o,u){void 0===u&&(u=n.areEqual);var i=a(r,e);if(t.Type.isBoolean(i))return i;for(var f=0;i>f;f++)if(!u(r[f],e[f],o))return!1;return!0}function i(r,e){if(!r||r.length<2)return r;var n,t=r.length;t>65536?n=new Array(t):(n=[],n.length=t);for(var a=0;t>a;a++)n[a]=r[a];return n.sort(e),n}function f(r,e,o){void 0===o&&(o=n.compare);var u=a(r,e);if(t.Type.isBoolean(u))return u;r=i(r,o),e=i(e,o);for(var f=0;u>f;f++)if(0!==o(r[f],e[f]))return!1;return!0}e.areAllEqual=o,e.areEqual=u,e.areEquivalent=f}); //# sourceMappingURL=Compare.js.map diff --git a/dist/amd/System/Collections/Array/Compare.js.map b/dist/amd/System/Collections/Array/Compare.js.map index d8dacfa0..f306f849 100644 --- a/dist/amd/System/Collections/Array/Compare.js.map +++ b/dist/amd/System/Collections/Array/Compare.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Array/Compare.js","System/Collections/Array/Compare.ts"],"names":["define","require","exports","Values","Types_1","validateSize","a","b","len","length","areAllEqual","arrays","strict","equalityComparer","areEqual","Error","first","i","l","isBoolean","sort","comparer","Array","areEquivalent","compare"],"mappings":";;;;AAIAA,QAAQ,UAAW,UAAW,gBAAiB,eAAgB,SAAUC,EAASC,EAASC,EAAQC,GAC/F,YCUJ,SAAAC,GAAsBC,EAAeC,GAGpC,GAAGD,GAAKC,GAAKD,IAAIC,IAAMD,IAAMC,EAC5B,OAAO,CAGR,KAAID,IAAMC,EACT,OAAO,CAER,IAAIC,GAAMF,EAAEG,MACZ,OAAGD,KAAMD,EAAEE,QACH,EAGC,IAAND,GACK,EAGDA,EAGR,QAAAE,GACCC,EACAC,EACAC,GAEA,GAFA,SAAAA,IAAAA,EAA2CV,EAAOW,WAE9CH,EACH,KAAM,IAAII,OAAM,kDACjB,IAAGJ,EAAOF,OAAO,EAChB,KAAM,IAAIM,OAAM,8CAEjB,KAAI,GADAC,GAAQL,EAAO,GACXM,EAAI,EAAGC,EAAIP,EAAOF,OAAUS,EAAFD,EAAKA,IAEtC,IAAIH,EAASE,EAAOL,EAAOM,GAAIL,EAAQC,GACtC,OAAO,CAET,QAAO,EAGR,QAAAC,GACCR,EAAaC,EACbK,EACAC,GAAA,SAAAA,IAAAA,EAAyCV,EAAOW,SAEhD,IAAIN,GAAMH,EAAaC,EAAGC,EAC1B,IAAGH,EAAAA,WAAKe,UAAUX,GAAM,MAAgBA,EAExC,KAAI,GAAIS,GAAI,EAAKT,EAAFS,EAAOA,IAErB,IAAIJ,EAAiBP,EAAEW,GAAIV,EAAEU,GAAIL,GAChC,OAAO,CAGT,QAAO,EAIR,QAAAQ,GAAiBd,EAAae,GAE7B,IAAIf,GAAKA,EAAEG,OAAO,EAAG,MAAOH,EAE5B,IAAoBC,GAAhBC,EAAMF,EAAEG,MACTD,GAAI,MACND,EAAI,GAAIe,OAAMd,IAEdD,KACAA,EAAEE,OAASD,EAEZ,KAAI,GAAIS,GAAI,EAAKT,EAAFS,EAAOA,IACrBV,EAAEU,GAAKX,EAAEW,EAGV,OADAV,GAAEa,KAAKC,GACAd,EAMR,QAAAgB,GACCjB,EAAaC,EACbc,GAAA,SAAAA,IAAAA,EAAyBlB,EAAOqB,QAEhC,IAAIhB,GAAMH,EAAaC,EAAGC,EAC1B,IAAGH,EAAAA,WAAKe,UAAUX,GAAM,MAAgBA,EAIxCF,GAAIc,EAAKd,EAAGe,GACZd,EAAIa,EAAKb,EAAGc,EAEZ,KAAI,GAAIJ,GAAI,EAAKT,EAAFS,EAAOA,IAErB,GAA0B,IAAvBI,EAASf,EAAEW,GAAIV,EAAEU,IACnB,OAAO,CAGT,QAAO,EA3EQf,EAAAQ,YAAWA,EAkBXR,EAAAY,SAAQA,EAuCRZ,EAAAqB,cAAaA","file":"System/Collections/Array/Compare.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\", \"../../Compare\", \"../../Types\"], function (require, exports, Values, Types_1) {\n \"use strict\";\n function validateSize(a, b) {\n if (a && b && a === b || !a && !b)\n return true;\n if (!a || !b)\n return false;\n var len = a.length;\n if (len !== b.length)\n return false;\n if (len === 0)\n return true;\n return len;\n }\n function areAllEqual(arrays, strict, equalityComparer) {\n if (equalityComparer === void 0) { equalityComparer = Values.areEqual; }\n if (!arrays)\n throw new Error(\"ArgumentNullException: 'arrays' cannot be null.\");\n if (arrays.length < 2)\n throw new Error(\"Cannot compare a set of arrays less than 2.\");\n var first = arrays[0];\n for (var i = 0, l = arrays.length; i < l; i++) {\n if (!areEqual(first, arrays[i], strict, equalityComparer))\n return false;\n }\n return true;\n }\n exports.areAllEqual = areAllEqual;\n function areEqual(a, b, strict, equalityComparer) {\n if (equalityComparer === void 0) { equalityComparer = Values.areEqual; }\n var len = validateSize(a, b);\n if (Types_1.default.isBoolean(len))\n return len;\n for (var i = 0; i < len; i++) {\n if (!equalityComparer(a[i], b[i], strict))\n return false;\n }\n return true;\n }\n exports.areEqual = areEqual;\n function sort(a, comparer) {\n if (!a || a.length < 2)\n return a;\n var len = a.length, b;\n if (len > 65536)\n b = new Array(len);\n else {\n b = [];\n b.length = len;\n }\n for (var i = 0; i < len; i++)\n b[i] = a[i];\n b.sort(comparer);\n return b;\n }\n function areEquivalent(a, b, comparer) {\n if (comparer === void 0) { comparer = Values.compare; }\n var len = validateSize(a, b);\n if (Types_1.default.isBoolean(len))\n return len;\n a = sort(a, comparer);\n b = sort(b, comparer);\n for (var i = 0; i < len; i++) {\n if (comparer(a[i], b[i]) !== 0)\n return false;\n }\n return true;\n }\n exports.areEquivalent = areEquivalent;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n///\r\nimport * as Values from \"../../Compare\";\r\nimport Type from \"../../Types\";\r\n\r\n/* validateSize: Utility for quick validation/invalidation of array equality.\r\n\tWhy this way? Why not pass a closure for the last return?\r\n\tReason: Performance and avoiding the creation of new functions/closures. */\r\nfunction validateSize(a:IArray, b:IArray):any\r\n{\r\n\t// Both valid and are same object, or both are null/undefined.\r\n\tif(a && b && a===b || !a && !b)\r\n\t\treturn true;\r\n\r\n\t// At this point, at least one has to be non-null.\r\n\tif(!a || !b)\r\n\t\treturn false;\r\n\r\n\tvar len = a.length;\r\n\tif(len!==b.length)\r\n\t\treturn false;\r\n\r\n\t// If both are arrays and have zero length, they are equal.\r\n\tif(len===0)\r\n\t\treturn true;\r\n\r\n\t// Return the length for downstream processing.\r\n\treturn len;\r\n}\r\n\r\nexport function areAllEqual(\r\n\tarrays:any[][],\r\n\tstrict?:boolean,\r\n\tequalityComparer:EqualityComparison = Values.areEqual):boolean\r\n{\r\n\tif(!arrays)\r\n\t\tthrow new Error(\"ArgumentNullException: 'arrays' cannot be null.\");\r\n\tif(arrays.length<2)\r\n\t\tthrow new Error(\"Cannot compare a set of arrays less than 2.\");\r\n\tvar first = arrays[0];\r\n\tfor(let i = 0, l = arrays.length; i(\r\n\ta:IArray, b:IArray,\r\n\tstrict?:boolean,\r\n\tequalityComparer:EqualityComparison = Values.areEqual):boolean\r\n{\r\n\tvar len = validateSize(a, b);\r\n\tif(Type.isBoolean(len)) return len;\r\n\r\n\tfor(let i = 0; i(a:IArray, comparer:Comparison):IArray\r\n{\r\n\tif(!a || a.length<2) return a;\r\n\r\n\tvar len = a.length, b:T[];\r\n\tif(len>65536)\r\n\t\tb = new Array(len);\r\n\telse {\r\n\t\tb = [];\r\n\t\tb.length = len;\r\n\t}\r\n\tfor(let i = 0; i(a:IArray, b:IArray):boolean;\r\nexport function areEquivalent(a:IArray>, b:IArray>):boolean;\r\nexport function areEquivalent(a:IArray, b:IArray, comparer:Comparison):boolean;\r\nexport function areEquivalent(\r\n\ta:IArray, b:IArray,\r\n\tcomparer:Comparison = Values.compare):boolean\r\n{\r\n\tvar len = validateSize(a, b);\r\n\tif(Type.isBoolean(len)) return len;\r\n\r\n\t// There might be a better more performant way to do this, but for the moment, this\r\n\t// works quite well.\r\n\ta = sort(a, comparer);\r\n\tb = sort(b, comparer);\r\n\r\n\tfor(let i = 0; i 65536)\n b = new Array(len);\n else {\n b = [];\n b.length = len;\n }\n for (var i = 0; i < len; i++) {\n b[i] = a[i];\n }\n b.sort(comparer);\n return b;\n }\n function areEquivalent(a, b, comparer) {\n if (comparer === void 0) { comparer = Values.compare; }\n var len = validateSize(a, b);\n if (Types_1.Type.isBoolean(len))\n return len;\n a = sort(a, comparer);\n b = sort(b, comparer);\n for (var i = 0; i < len; i++) {\n if (comparer(a[i], b[i]) !== 0)\n return false;\n }\n return true;\n }\n exports.areEquivalent = areEquivalent;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport * as Values from \"../../Compare\";\r\nimport {Type} from \"../../Types\";\r\nimport {Primitive} from \"../../Primitive\";\r\nimport {EqualityComparison, Comparison} from \"../../FunctionTypes\";\r\nimport {IArray} from \"./IArray\";\r\nimport {IComparable} from \"../../IComparable\";\r\n\r\n/* validateSize: Utility for quick validation/invalidation of array equality.\r\n\tWhy this way? Why not pass a closure for the last return?\r\n\tReason: Performance and avoiding the creation of new functions/closures. */\r\nfunction validateSize(a:IArray, b:IArray):any\r\n{\r\n\t// Both valid and are same object, or both are null/undefined.\r\n\tif(a && b && a===b || !a && !b)\r\n\t\treturn true;\r\n\r\n\t// At this point, at least one has to be non-null.\r\n\tif(!a || !b)\r\n\t\treturn false;\r\n\r\n\tvar len = a.length;\r\n\tif(len!==b.length)\r\n\t\treturn false;\r\n\r\n\t// If both are arrays and have zero length, they are equal.\r\n\tif(len===0)\r\n\t\treturn true;\r\n\r\n\t// Return the length for downstream processing.\r\n\treturn len;\r\n}\r\n\r\nexport function areAllEqual(\r\n\tarrays:any[][],\r\n\tstrict?:boolean,\r\n\tequalityComparer:EqualityComparison = Values.areEqual):boolean\r\n{\r\n\tif(!arrays)\r\n\t\tthrow new Error(\"ArgumentNullException: 'arrays' cannot be null.\");\r\n\tif(arrays.length<2)\r\n\t\tthrow new Error(\"Cannot compare a set of arrays less than 2.\");\r\n\tvar first = arrays[0];\r\n\tfor(let i = 0, l = arrays.length; i(\r\n\ta:IArray, b:IArray,\r\n\tstrict?:boolean,\r\n\tequalityComparer:EqualityComparison = Values.areEqual):boolean\r\n{\r\n\tvar len = validateSize(a, b);\r\n\tif(Type.isBoolean(len)) return len;\r\n\r\n\tfor(let i = 0; i(a:IArray, comparer:Comparison):IArray\r\n{\r\n\tif(!a || a.length<2) return a;\r\n\r\n\tvar len = a.length, b:T[];\r\n\tif(len>65536)\r\n\t\tb = new Array(len);\r\n\telse\r\n\t{\r\n\t\tb = [];\r\n\t\tb.length = len;\r\n\t}\r\n\tfor(let i = 0; i(a:IArray, b:IArray):boolean;\r\nexport function areEquivalent(a:IArray>, b:IArray>):boolean;\r\nexport function areEquivalent(a:IArray, b:IArray, comparer:Comparison):boolean;\r\nexport function areEquivalent(\r\n\ta:IArray, b:IArray,\r\n\tcomparer:Comparison = Values.compare):boolean\r\n{\r\n\tvar len = validateSize(a, b);\r\n\tif(Type.isBoolean(len)) return len;\r\n\r\n\t// There might be a better more performant way to do this, but for the moment, this\r\n\t// works quite well.\r\n\ta = sort(a, comparer);\r\n\tb = sort(b, comparer);\r\n\r\n\tfor(let i = 0; i -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { IArray } from "./IArray"; export interface DispatchErrorHandler { (ex?: any, i?: number): void; } diff --git a/dist/amd/System/Collections/Array/Dispatch.js b/dist/amd/System/Collections/Array/Dispatch.js index 4d01a8db..fd1439cd 100644 --- a/dist/amd/System/Collections/Array/Dispatch.js +++ b/dist/amd/System/Collections/Array/Dispatch.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -define(["require","exports","../../Types","./Utility"],function(t,e,i,n){"use strict";function r(t,e,n){if(t&&t.length)for(var r=0,f=t.length;f>r;r++){var u=t[r];if(u)try{u(e)}catch(o){if(!n)throw o;i["default"].isFunction(n)&&n(o,r)}}}function f(t,e,r){if(!t)return null;var f=n.copy(t);if(t.length)for(var u=0,a=f.length;a>u;u++){var c=f[u];try{f[u]=c?c(e):o}catch(l){if(f[u]=o,!r)throw l;i["default"].isFunction(r)&&r(l,u)}}return f}function u(t,e,i){r(n.copy(t),e,i)}var o=void 0;e.unsafe=r,e.mapped=f,e.dispatch=u,Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=u}); +define(["require","exports","../../Types","./Utility"],function(t,e,i,n){"use strict";function r(t,e,n){if(t&&t.length)for(var r=0,f=t.length;f>r;r++){var o=t[r];if(o)try{o(e)}catch(c){if(!n)throw c;i.Type.isFunction(n)&&n(c,r)}}}function f(t,e,r){if(!t)return null;var f=n.copy(t);if(t.length)for(var o=0,u=f.length;u>o;o++){var a=f[o];try{f[o]=a?a(e):c}catch(l){if(f[o]=c,!r)throw l;i.Type.isFunction(r)&&r(l,o)}}return f}function o(t,e,i){r(n.copy(t),e,i)}var c=void 0;e.unsafe=r,e.mapped=f,e.dispatch=o,Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=o}); //# sourceMappingURL=Dispatch.js.map diff --git a/dist/amd/System/Collections/Array/Dispatch.js.map b/dist/amd/System/Collections/Array/Dispatch.js.map index d1aa2d94..02252655 100644 --- a/dist/amd/System/Collections/Array/Dispatch.js.map +++ b/dist/amd/System/Collections/Array/Dispatch.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Array/Dispatch.js","System/Collections/Array/Dispatch.ts"],"names":["define","require","exports","Types_1","Utility_1","unsafe","listeners","payload","trap","length","i","len","fn","ex","isFunction","mapped","result","copy","VOID0","dispatch","Object","defineProperty","value"],"mappings":";;;;AAIAA,QAAQ,UAAW,UAAW,cAAe,aAAc,SAAUC,EAASC,EAASC,EAASC,GAC5F,YCiCJ,SAAAC,GACCC,EACAC,EAAWC,GAEX,GAAGF,GAAaA,EAAUG,OAEzB,IAAI,GAAIC,GAAI,EAAGC,EAAML,EAAUG,OAAUE,EAAFD,EAAOA,IAC9C,CACC,GAAIE,GAAcN,EAAUI,EAC5B,IAAIE,EACJ,IAECA,EAAGL,GAEJ,MAAMM,GAEL,IAAIL,EACH,KAAMK,EACCV,GAAAA,WAAKW,WAAWN,IACvBA,EAAKK,EAAIH,KAed,QAAAK,GACCT,EACAC,EAAWC,GAGX,IAAIF,EAAW,MAAO,KAEtB,IAAIU,GAAeZ,EAAAa,KAAKX,EACxB,IAAGA,EAAUG,OAGZ,IAAI,GAAIC,GAAI,EAAGC,EAAMK,EAAOP,OAAUE,EAAFD,EAAOA,IAC3C,CACC,GAAIE,GAAcI,EAAON,EACzB,KAECM,EAAON,GAAKE,EACTA,EAAGL,GACHW,EAEJ,MAAML,GAGL,GADAG,EAAON,GAAKQ,GACRV,EACH,KAAMK,EACCV,GAAAA,WAAKW,WAAWN,IACvBA,EAAKK,EAAIH,IAKb,MAAOM,GAYR,QAAAG,GACCb,EACAC,EAAWC,GAEXH,EAAOD,EAAAa,KAAKX,GAAYC,EAASC,GA7GlC,GAAMU,GAAY,MA4BFhB,GAAAG,OAAMA,EAkCNH,EAAAa,OAAMA,EA2CNb,EAAAiB,SAAQA,EAOxBC,OAAAC,eAAAnB,EAAA,cAAAoB,OAAA,IDnEIpB,EAAAA,WCmEWiB","file":"System/Collections/Array/Dispatch.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\", \"../../Types\", \"./Utility\"], function (require, exports, Types_1, Utility_1) {\n \"use strict\";\n var VOID0 = void (0);\n function unsafe(listeners, payload, trap) {\n if (listeners && listeners.length) {\n for (var i = 0, len = listeners.length; i < len; i++) {\n var fn = listeners[i];\n if (!fn)\n continue;\n try {\n fn(payload);\n }\n catch (ex) {\n if (!trap)\n throw ex;\n else if (Types_1.default.isFunction(trap))\n trap(ex, i);\n }\n }\n }\n }\n exports.unsafe = unsafe;\n function mapped(listeners, payload, trap) {\n if (!listeners)\n return null;\n var result = Utility_1.copy(listeners);\n if (listeners.length) {\n for (var i = 0, len = result.length; i < len; i++) {\n var fn = result[i];\n try {\n result[i] = fn\n ? fn(payload)\n : VOID0;\n }\n catch (ex) {\n result[i] = VOID0;\n if (!trap)\n throw ex;\n else if (Types_1.default.isFunction(trap))\n trap(ex, i);\n }\n }\n }\n return result;\n }\n exports.mapped = mapped;\n function dispatch(listeners, payload, trap) {\n unsafe(Utility_1.copy(listeners), payload, trap);\n }\n exports.dispatch = dispatch;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = dispatch;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\nimport Type from \"../../Types\";\r\nimport {copy} from \"./Utility\";\r\n\r\nconst VOID0:any = void(0);\r\n\r\nexport interface DispatchErrorHandler\r\n{\r\n\t(ex?:any, i?:number):void;\r\n}\r\n\r\n/**\r\n * Simply takes a payload and passes it to all the listeners.\r\n *\r\n * While dispatching:\r\n * * This is an unsafe method if by chance any of the listeners modify the array.\r\n * * It cannot prevent changes to the payload.\r\n *\r\n * Improving safety:\r\n * * Only use a local array that isn't exposed to the listeners.\r\n * * Use the dispatch method instead as it makes a copy of the listeners array.\r\n * * Freeze the listeners array so it can't be modified.\r\n * * Freeze the payload.\r\n *\r\n * Specifying trap will catch any errors and pass them along if trap is a function.\r\n * A payload is used instead of arguments for easy typing.\r\n *\r\n *\r\n * @param listeners\r\n * @param payload\r\n * @param trap\r\n */\r\nexport function unsafe(\r\n\tlisteners:IArray<(payload:T)=>any>,\r\n\tpayload:T, trap?:boolean|DispatchErrorHandler):void\r\n{\r\n\tif(listeners && listeners.length)\r\n\t{\r\n\t\tfor(let i = 0, len = listeners.length; i(\r\n\tlisteners:IArray<(payload:T)=>TResult>,\r\n\tpayload:T, trap?:boolean|DispatchErrorHandler):TResult[]\r\n{\r\n\r\n\tif(!listeners) return null;\r\n\t// Reuse the copy as the array result.\r\n\tvar result:any[] = copy(listeners);\r\n\tif(listeners.length)\r\n\t{\r\n\r\n\t\tfor(let i = 0, len = result.length; i(\r\n\tlisteners:IArray<(payload:T)=>any>,\r\n\tpayload:T, trap?:boolean|DispatchErrorHandler):void\r\n{\r\n\tunsafe(copy(listeners), payload, trap);\r\n}\r\n\r\nexport default dispatch;"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Array/Dispatch.js","System/Collections/Array/Dispatch.ts"],"names":["define","require","exports","Types_1","Utility_1","unsafe","listeners","payload","trap","length","i","len","fn","ex","Type","isFunction","mapped","result","copy","VOID0","dispatch","Object","defineProperty","value"],"mappings":";;;;AAIAA,QAAQ,UAAW,UAAW,cAAe,aAAc,SAAUC,EAASC,EAASC,EAASC,GAC5F,YCgCJ,SAAAC,GACCC,EACAC,EAAWC,GAEX,GAAGF,GAAaA,EAAUG,OAEzB,IAAI,GAAIC,GAAI,EAAGC,EAAML,EAAUG,OAAUE,EAAFD,EAAOA,IAC9C,CACC,GAAIE,GAAcN,EAAUI,EAC5B,IAAIE,EACJ,IAECA,EAAGL,GAEJ,MAAMM,GAEL,IAAIL,EACH,KAAMK,EACCV,GAAAW,KAAKC,WAAWP,IACvBA,EAAKK,EAAIH,KAed,QAAAM,GACCV,EACAC,EAAWC,GAGX,IAAIF,EAAW,MAAO,KAEtB,IAAIW,GAAeb,EAAAc,KAAKZ,EACxB,IAAGA,EAAUG,OAGZ,IAAI,GAAIC,GAAI,EAAGC,EAAMM,EAAOR,OAAUE,EAAFD,EAAOA,IAC3C,CACC,GAAIE,GAAcK,EAAOP,EACzB,KAECO,EAAOP,GAAKE,EACTA,EAAGL,GACHY,EAEJ,MAAMN,GAGL,GADAI,EAAOP,GAAKS,GACRX,EACH,KAAMK,EACCV,GAAAW,KAAKC,WAAWP,IACvBA,EAAKK,EAAIH,IAKb,MAAOO,GAYR,QAAAG,GACCd,EACAC,EAAWC,GAEXH,EAAOD,EAAAc,KAAKZ,GAAYC,EAASC,GA7GlC,GAAMW,GAAY,MA4BFjB,GAAAG,OAAMA,EAkCNH,EAAAc,OAAMA,EA2CNd,EAAAkB,SAAQA,EAOxBC,OAAAC,eAAApB,EAAA,cAAAqB,OAAA,IDlEIrB,EAAAA,WCkEWkB","file":"System/Collections/Array/Dispatch.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\", \"../../Types\", \"./Utility\"], function (require, exports, Types_1, Utility_1) {\n \"use strict\";\n var VOID0 = void (0);\n function unsafe(listeners, payload, trap) {\n if (listeners && listeners.length) {\n for (var i = 0, len = listeners.length; i < len; i++) {\n var fn = listeners[i];\n if (!fn)\n continue;\n try {\n fn(payload);\n }\n catch (ex) {\n if (!trap)\n throw ex;\n else if (Types_1.Type.isFunction(trap))\n trap(ex, i);\n }\n }\n }\n }\n exports.unsafe = unsafe;\n function mapped(listeners, payload, trap) {\n if (!listeners)\n return null;\n var result = Utility_1.copy(listeners);\n if (listeners.length) {\n for (var i = 0, len = result.length; i < len; i++) {\n var fn = result[i];\n try {\n result[i] = fn\n ? fn(payload)\n : VOID0;\n }\n catch (ex) {\n result[i] = VOID0;\n if (!trap)\n throw ex;\n else if (Types_1.Type.isFunction(trap))\n trap(ex, i);\n }\n }\n }\n return result;\n }\n exports.mapped = mapped;\n function dispatch(listeners, payload, trap) {\n unsafe(Utility_1.copy(listeners), payload, trap);\n }\n exports.dispatch = dispatch;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = dispatch;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {Type} from \"../../Types\";\r\nimport {copy} from \"./Utility\";\r\nimport {IArray} from \"./IArray\";\r\n\r\nconst VOID0:any = void(0);\r\n\r\nexport interface DispatchErrorHandler\r\n{\r\n\t(ex?:any, i?:number):void;\r\n}\r\n\r\n/**\r\n * Simply takes a payload and passes it to all the listeners.\r\n *\r\n * While dispatching:\r\n * * This is an unsafe method if by chance any of the listeners modify the array.\r\n * * It cannot prevent changes to the payload.\r\n *\r\n * Improving safety:\r\n * * Only use a local array that isn't exposed to the listeners.\r\n * * Use the dispatch method instead as it makes a copy of the listeners array.\r\n * * Freeze the listeners array so it can't be modified.\r\n * * Freeze the payload.\r\n *\r\n * Specifying trap will catch any errors and pass them along if trap is a function.\r\n * A payload is used instead of arguments for easy typing.\r\n *\r\n *\r\n * @param listeners\r\n * @param payload\r\n * @param trap\r\n */\r\nexport function unsafe(\r\n\tlisteners:IArray<(payload:T)=>any>,\r\n\tpayload:T, trap?:boolean|DispatchErrorHandler):void\r\n{\r\n\tif(listeners && listeners.length)\r\n\t{\r\n\t\tfor(let i = 0, len = listeners.length; i(\r\n\tlisteners:IArray<(payload:T)=>TResult>,\r\n\tpayload:T, trap?:boolean|DispatchErrorHandler):TResult[]\r\n{\r\n\r\n\tif(!listeners) return null;\r\n\t// Reuse the copy as the array result.\r\n\tvar result:any[] = copy(listeners);\r\n\tif(listeners.length)\r\n\t{\r\n\r\n\t\tfor(let i = 0, len = result.length; i(\r\n\tlisteners:IArray<(payload:T)=>any>,\r\n\tpayload:T, trap?:boolean|DispatchErrorHandler):void\r\n{\r\n\tunsafe(copy(listeners), payload, trap);\r\n}\r\n\r\nexport default dispatch;"]} \ No newline at end of file diff --git a/dist/amd/System/Collections/Array/ReadOnlyArrayWrapper.d.ts b/dist/amd/System/Collections/Array/ReadOnlyArrayWrapper.d.ts index 88e74cbc..f27159ff 100644 --- a/dist/amd/System/Collections/Array/ReadOnlyArrayWrapper.d.ts +++ b/dist/amd/System/Collections/Array/ReadOnlyArrayWrapper.d.ts @@ -2,7 +2,8 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import ReadOnlyCollectionBase from "../ReadOnlyCollectionBase"; +import { ReadOnlyCollectionBase } from "../ReadOnlyCollectionBase"; +import { IArray } from "./IArray"; export default class ReadOnlyArrayWrapper extends ReadOnlyCollectionBase { constructor(array: IArray); getValueAt: (index: number) => T; diff --git a/dist/amd/System/Collections/Array/ReadOnlyArrayWrapper.js b/dist/amd/System/Collections/Array/ReadOnlyArrayWrapper.js index d6ee7842..e7ea354c 100644 --- a/dist/amd/System/Collections/Array/ReadOnlyArrayWrapper.js +++ b/dist/amd/System/Collections/Array/ReadOnlyArrayWrapper.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)};define(["require","exports","../../Exceptions/ArgumentNullException","../Enumeration/Enumerator","../ReadOnlyCollectionBase"],function(t,e,n,r,o){"use strict";var u=function(t){function e(e){if(t.call(this),!e)throw new n["default"]("array");var o=this;o._getCount=function(){return e.length},o.getEnumerator=function(){return r.from(e)},o.getValueAt=function(t){return e[t]}}return __extends(e,t),e}(o["default"]);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=u}); +var __extends=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)};define(["require","exports","../../Exceptions/ArgumentNullException","../ReadOnlyCollectionBase","../Enumeration/Enumerator"],function(t,e,n,r,o){"use strict";var u=function(t){function e(e){if(t.call(this),!e)throw new n.ArgumentNullException("array");var r=this;r._getCount=function(){return e.length},r.getEnumerator=function(){return o.from(e)},r.getValueAt=function(t){return e[t]}}return __extends(e,t),e}(r.ReadOnlyCollectionBase);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=u}); //# sourceMappingURL=ReadOnlyArrayWrapper.js.map diff --git a/dist/amd/System/Collections/Array/ReadOnlyArrayWrapper.js.map b/dist/amd/System/Collections/Array/ReadOnlyArrayWrapper.js.map index 579d3834..0946a785 100644 --- a/dist/amd/System/Collections/Array/ReadOnlyArrayWrapper.js.map +++ b/dist/amd/System/Collections/Array/ReadOnlyArrayWrapper.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Array/ReadOnlyArrayWrapper.js","System/Collections/Array/ReadOnlyArrayWrapper.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","ArgumentNullException_1","Enumerator_1","ReadOnlyCollectionBase_1","ReadOnlyArrayWrapper","_super","array","call","_","_getCount","length","getEnumerator","from","getValueAt","i","defineProperty","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,yCAA0C,4BAA6B,6BAA8B,SAAUC,EAASC,EAASC,EAAyBC,EAAcC,GAClM,YCDJ,IAAAC,GAAA,SAAAC,GAGC,QAAAD,GAAYE,GAGX,GADAD,EAAAE,KAAAnB,OACIkB,EACH,KAAM,IAAIL,GAAAA,WAAsB,QAEjC,IAAIO,GAAIpB,IACRoB,GAAEC,UAAY,WAAM,MAAAH,GAAMI,QAC1BF,EAAEG,cAAgB,WAAM,MAAAT,GAAAU,KAAeN,IACvCE,EAAEK,WAAa,SAAAC,GAAK,MAAAR,GAAMQ,IAI5B,MAhBqD3B,WAAAiB,EAAAC,GAgBrDD,GAhBqDD,EAAAA,WAArDP,QAAAmB,eAAAf,EAAA,cAAAgB,OAAA,IDgBIhB,EAAAA,WAAkBI","file":"System/Collections/Array/ReadOnlyArrayWrapper.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"../../Exceptions/ArgumentNullException\", \"../Enumeration/Enumerator\", \"../ReadOnlyCollectionBase\"], function (require, exports, ArgumentNullException_1, Enumerator_1, ReadOnlyCollectionBase_1) {\n \"use strict\";\n var ReadOnlyArrayWrapper = (function (_super) {\n __extends(ReadOnlyArrayWrapper, _super);\n function ReadOnlyArrayWrapper(array) {\n _super.call(this);\n if (!array)\n throw new ArgumentNullException_1.default('array');\n var _ = this;\n _._getCount = function () { return array.length; };\n _.getEnumerator = function () { return Enumerator_1.from(array); };\n _.getValueAt = function (i) { return array[i]; };\n }\n return ReadOnlyArrayWrapper;\n }(ReadOnlyCollectionBase_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ReadOnlyArrayWrapper;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport ArgumentNullException from \"../../Exceptions/ArgumentNullException\";\r\nimport {from as enumeratorFrom} from \"../Enumeration/Enumerator\";\r\nimport ReadOnlyCollectionBase from \"../ReadOnlyCollectionBase\";\r\n\r\nexport default class ReadOnlyArrayWrapper extends ReadOnlyCollectionBase\r\n{\r\n\r\n\tconstructor(array:IArray)\r\n\t{\r\n\t\tsuper();\r\n\t\tif(!array)\r\n\t\t\tthrow new ArgumentNullException('array');\r\n\r\n\t\tvar _ = this;\r\n\t\t_._getCount = () => array.length;\r\n\t\t_.getEnumerator = () => enumeratorFrom(array);\r\n\t\t_.getValueAt = i => array[i];\r\n\t}\r\n\r\n\tgetValueAt:(index:number)=>T;\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Array/ReadOnlyArrayWrapper.js","System/Collections/Array/ReadOnlyArrayWrapper.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","ArgumentNullException_1","ReadOnlyCollectionBase_1","Enumerator_1","ReadOnlyArrayWrapper","_super","array","call","ArgumentNullException","_","_getCount","length","getEnumerator","from","getValueAt","i","ReadOnlyCollectionBase","defineProperty","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,yCAA0C,4BAA6B,6BAA8B,SAAUC,EAASC,EAASC,EAAyBC,EAA0BC,GAC9M,YCAJ,IAAAC,GAAA,SAAAC,GAGC,QAAAD,GAAYE,GAGX,GADAD,EAAAE,KAAAnB,OACIkB,EACH,KAAM,IAAIL,GAAAO,sBAAsB,QAEjC,IAAIC,GAAIrB,IACRqB,GAAEC,UAAY,WAAM,MAAAJ,GAAMK,QAC1BF,EAAEG,cAAgB,WAAM,MAAAT,GAAAU,KAAeP,IACvCG,EAAEK,WAAa,SAAAC,GAAK,MAAAT,GAAMS,IAI5B,MAhBqD5B,WAAAiB,EAAAC,GAgBrDD,GAhBqDF,EAAAc,uBAArDpB,QAAAqB,eAAAjB,EAAA,cAAAkB,OAAA,IDeIlB,EAAAA,WAAkBI","file":"System/Collections/Array/ReadOnlyArrayWrapper.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"../../Exceptions/ArgumentNullException\", \"../ReadOnlyCollectionBase\", \"../Enumeration/Enumerator\"], function (require, exports, ArgumentNullException_1, ReadOnlyCollectionBase_1, Enumerator_1) {\n \"use strict\";\n var ReadOnlyArrayWrapper = (function (_super) {\n __extends(ReadOnlyArrayWrapper, _super);\n function ReadOnlyArrayWrapper(array) {\n _super.call(this);\n if (!array)\n throw new ArgumentNullException_1.ArgumentNullException('array');\n var _ = this;\n _._getCount = function () { return array.length; };\n _.getEnumerator = function () { return Enumerator_1.from(array); };\n _.getValueAt = function (i) { return array[i]; };\n }\n return ReadOnlyArrayWrapper;\n }(ReadOnlyCollectionBase_1.ReadOnlyCollectionBase));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ReadOnlyArrayWrapper;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {ArgumentNullException} from \"../../Exceptions/ArgumentNullException\";\r\nimport {ReadOnlyCollectionBase} from \"../ReadOnlyCollectionBase\";\r\nimport {IArray} from \"./IArray\";\r\nimport {from as enumeratorFrom} from \"../Enumeration/Enumerator\";\r\n\r\nexport default class ReadOnlyArrayWrapper extends ReadOnlyCollectionBase\r\n{\r\n\r\n\tconstructor(array:IArray)\r\n\t{\r\n\t\tsuper();\r\n\t\tif(!array)\r\n\t\t\tthrow new ArgumentNullException('array');\r\n\r\n\t\tvar _ = this;\r\n\t\t_._getCount = () => array.length;\r\n\t\t_.getEnumerator = () => enumeratorFrom(array);\r\n\t\t_.getValueAt = i => array[i];\r\n\t}\r\n\r\n\tgetValueAt:(index:number)=>T;\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Collections/Array/Sort.d.ts b/dist/amd/System/Collections/Array/Sort.d.ts index 5524bcb8..3201c0e9 100644 --- a/dist/amd/System/Collections/Array/Sort.d.ts +++ b/dist/amd/System/Collections/Array/Sort.d.ts @@ -1,9 +1,9 @@ -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { Primitive } from "../../Primitive"; +import { Selector, Comparison } from "../../FunctionTypes"; +import { Order } from "../Sorting/Order"; export declare function createComparer(selector: Selector, order?: Order | Order[], equivalentToNaN?: any): Comparison; export { createComparer as default, createComparer as by }; diff --git a/dist/amd/System/Collections/Array/Sort.js b/dist/amd/System/Collections/Array/Sort.js index 5ebf17cb..41b930ff 100644 --- a/dist/amd/System/Collections/Array/Sort.js +++ b/dist/amd/System/Collections/Array/Sort.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -define(["require","exports","../../Types","../../Compare"],function(r,e,a,t){"use strict";function n(r){return Array.isArray(r)?r:[r]}function u(r,e,u){void 0===e&&(e=1),void 0===u&&(u=NaN);var i=!a["default"].isTrueNaN(u);return function(f,o){for(var l=n(r(f)),s=n(r(o)),N=Math.min(l.length,s.length),c=Array.isArray(e)?e:null,d=0;N>d;d++){var v=l[d],y=s[d],p=c?dc;c++){var T=y[c],l=f[c],v=N?c\r\n///\r\n///\r\n\r\nimport Type from '../../Types';\r\nimport {compare} from '../../Compare';\r\n\r\nfunction ensureArray(value:T|T[]):T[]\r\n{\r\n\treturn Array.isArray(value)\r\n\t\t? value\r\n\t\t: [value];\r\n}\r\n\r\n/**\r\n * A factory function that creates a comparer to be used in multi-dimensional sorting.\r\n *\r\n *

Example

\r\n * ```typescript\r\n * var myArray = [{a:1:b:2},{a:3,b:4},{a:1,b:3}];\r\n *\r\n * // First sort by a, then by b.\r\n * myArray.sort(\r\n * createComparer(\r\n * (e)=> [e.a, e.b],\r\n * [Order.Ascending, Order.Descending]\r\n * )\r\n * );\r\n *\r\n * // result: [{a:1,b:3},{a:1:b:2},{a:3,b:4}]\r\n * ```\r\n *\r\n * @param selector\r\n * @param order\r\n * @param equivalentToNaN\r\n * @returns {function((TSource|TSource[]), (TSource|TSource[])): CompareResult}\r\n */\r\nexport function createComparer(\r\n\tselector:Selector,\r\n\torder:Order | Order[] = Order.Ascending,\r\n\tequivalentToNaN:any = NaN):Comparison\r\n{\r\n\tvar nanHasEquivalent = !Type.isTrueNaN(equivalentToNaN);\r\n\r\n\treturn (a:TSource|TSource[], b:TSource|TSource[]):CompareResult=>\r\n\t{\r\n\t\t// Use an array always to ensure a single code path.\r\n\t\tvar aValue = ensureArray(selector(a));\r\n\t\tvar bValue = ensureArray(selector(b));\r\n\t\tvar len = Math.min(aValue.length, bValue.length);\r\n\r\n\t\tvar oArray:Order[] = Array.isArray(order) ? order : null;\r\n\t\tfor(let i = 0; iorder;\r\n\r\n\t\t\tif(nanHasEquivalent)\r\n\t\t\t{\r\n\t\t\t\tif(Type.isTrueNaN(vA))\r\n\t\t\t\t\tvA = equivalentToNaN;\r\n\t\t\t\tif(Type.isTrueNaN(vB))\r\n\t\t\t\t\tvB = equivalentToNaN;\r\n\r\n\t\t\t}\r\n\r\n\t\t\tvar r = compare(vA, vB);\r\n\t\t\tif(r!==CompareResult.Equal)\r\n\t\t\t\treturn o*r;\r\n\r\n\t\t}\r\n\r\n\t\treturn 0;\r\n\t};\r\n}\r\n\r\nexport {\r\n\tcreateComparer as default, // Allow for default import.\r\n\tcreateComparer as by // Alias for Sort.by(...) instead of Sort.createComparer\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Array/Sort.js","System/Collections/Array/Sort.ts"],"names":["define","require","exports","Types_1","Compare_1","ensureArray","value","Array","isArray","createComparer","selector","order","equivalentToNaN","NaN","nanHasEquivalent","Type","isTrueNaN","a","b","aValue","bValue","len","Math","min","length","oArray","i","vA","vB","o","r","compare","by"],"mappings":";;;;AAIAA,QAAQ,UAAW,UAAW,cAAe,iBAAkB,SAAUC,EAASC,EAASC,EAASC,GAChG,YCQJ,SAAAC,GAAwBC,GAEvB,MAAOC,OAAMC,QAAQF,GACbA,GACDA,GA0BR,QAAAG,GACCC,EACAC,EACAC,GADA,SAAAD,IAAAA,EAAA,GACA,SAAAC,IAAAA,EAAAC,IAEA,IAAIC,IAAoBX,EAAAY,KAAKC,UAAUJ,EAEvC,OAAO,UAACK,EAAqBC,GAQ5B,IAAI,GALAC,GAASd,EAAYK,EAASO,IAC9BG,EAASf,EAAYK,EAASQ,IAC9BG,EAAMC,KAAKC,IAAIJ,EAAOK,OAAQJ,EAAOI,QAErCC,EAAiBlB,MAAMC,QAAQG,GAASA,EAAQ,KAC5Ce,EAAI,EAAKL,EAAFK,EAAOA,IACtB,CACC,GAAIC,GAAKR,EAAOO,GAAIE,EAAKR,EAAOM,GAC5BG,EAAqBJ,EACjBC,EAAED,EAAOD,OAASC,EAAOC,GAAK,EACxBf,CAEXG,KAECX,EAAAY,KAAKC,UAAUW,KACjBA,EAAKf,GACHT,EAAAY,KAAKC,UAAUY,KACjBA,EAAKhB,GAIP,IAAIkB,GAAI1B,EAAA2B,QAAQJ,EAAIC,EACpB,IAAO,IAAJE,EACF,MAAOD,GAAEC,EAIX,MAAO,IArCO5B,EAAAO,eAAcA,EA0CXP,EAAAA,WAAOO,EACPP,EAAA8B,GAAEvB","file":"System/Collections/Array/Sort.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\", \"../../Types\", \"../../Compare\"], function (require, exports, Types_1, Compare_1) {\n \"use strict\";\n function ensureArray(value) {\n return Array.isArray(value)\n ? value\n : [value];\n }\n function createComparer(selector, order, equivalentToNaN) {\n if (order === void 0) { order = 1; }\n if (equivalentToNaN === void 0) { equivalentToNaN = NaN; }\n var nanHasEquivalent = !Types_1.Type.isTrueNaN(equivalentToNaN);\n return function (a, b) {\n var aValue = ensureArray(selector(a));\n var bValue = ensureArray(selector(b));\n var len = Math.min(aValue.length, bValue.length);\n var oArray = Array.isArray(order) ? order : null;\n for (var i = 0; i < len; i++) {\n var vA = aValue[i], vB = bValue[i], o = oArray\n ? (i < oArray.length ? oArray[i] : 1)\n : order;\n if (nanHasEquivalent) {\n if (Types_1.Type.isTrueNaN(vA))\n vA = equivalentToNaN;\n if (Types_1.Type.isTrueNaN(vB))\n vB = equivalentToNaN;\n }\n var r = Compare_1.compare(vA, vB);\n if (r !== 0)\n return o * r;\n }\n return 0;\n };\n }\n exports.createComparer = createComparer;\n exports.default = createComparer;\n exports.by = createComparer;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {Type} from \"../../Types\";\r\nimport {compare} from \"../../Compare\";\r\nimport {Primitive} from \"../../Primitive\";\r\nimport {Selector, Comparison} from \"../../FunctionTypes\";\r\nimport {CompareResult} from \"../../CompareResult\";\r\nimport {Order} from \"../Sorting/Order\";\r\n\r\nfunction ensureArray(value:T|T[]):T[]\r\n{\r\n\treturn Array.isArray(value)\r\n\t\t? value\r\n\t\t: [value];\r\n}\r\n\r\n/**\r\n * A factory function that creates a comparer to be used in multi-dimensional sorting.\r\n *\r\n *

Example

\r\n * ```typescript\r\n * var myArray = [{a:1:b:2},{a:3,b:4},{a:1,b:3}];\r\n *\r\n * // First sort by a, then by b.\r\n * myArray.sort(\r\n * createComparer(\r\n * (e)=> [e.a, e.b],\r\n * [Order.Ascending, Order.Descending]\r\n * )\r\n * );\r\n *\r\n * // result: [{a:1,b:3},{a:1:b:2},{a:3,b:4}]\r\n * ```\r\n *\r\n * @param selector\r\n * @param order\r\n * @param equivalentToNaN\r\n * @returns {function((TSource|TSource[]), (TSource|TSource[])): CompareResult}\r\n */\r\nexport function createComparer(\r\n\tselector:Selector,\r\n\torder:Order | Order[] = Order.Ascending,\r\n\tequivalentToNaN:any = NaN):Comparison\r\n{\r\n\tvar nanHasEquivalent = !Type.isTrueNaN(equivalentToNaN);\r\n\r\n\treturn (a:TSource|TSource[], b:TSource|TSource[]):CompareResult=>\r\n\t{\r\n\t\t// Use an array always to ensure a single code path.\r\n\t\tvar aValue = ensureArray(selector(a));\r\n\t\tvar bValue = ensureArray(selector(b));\r\n\t\tvar len = Math.min(aValue.length, bValue.length);\r\n\r\n\t\tvar oArray:Order[] = Array.isArray(order) ? order : null;\r\n\t\tfor(let i = 0; iorder;\r\n\r\n\t\t\tif(nanHasEquivalent)\r\n\t\t\t{\r\n\t\t\t\tif(Type.isTrueNaN(vA))\r\n\t\t\t\t\tvA = equivalentToNaN;\r\n\t\t\t\tif(Type.isTrueNaN(vB))\r\n\t\t\t\t\tvB = equivalentToNaN;\r\n\r\n\t\t\t}\r\n\r\n\t\t\tvar r = compare(vA, vB);\r\n\t\t\tif(r!==CompareResult.Equal)\r\n\t\t\t\treturn o*r;\r\n\r\n\t\t}\r\n\r\n\t\treturn 0;\r\n\t};\r\n}\r\n\r\nexport {\r\n\tcreateComparer as default, // Allow for default import.\r\n\tcreateComparer as by // Alias for Sort.by(...) instead of Sort.createComparer\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Collections/Array/Utility.d.ts b/dist/amd/System/Collections/Array/Utility.d.ts index 2314ac04..9c7b0c7f 100644 --- a/dist/amd/System/Collections/Array/Utility.d.ts +++ b/dist/amd/System/Collections/Array/Utility.d.ts @@ -1,9 +1,9 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { EqualityComparison, Predicate, Action } from "../../FunctionTypes"; +import { IArray } from "./IArray"; export declare function initialize(length: number): T[]; export declare function copy(source: IArray, sourceIndex?: number, length?: number): T[]; export declare function copyTo>(source: IArray, destination: TDestination, sourceIndex?: number, destinationIndex?: number, length?: number): TDestination; diff --git a/dist/amd/System/Collections/Array/Utility.js b/dist/amd/System/Collections/Array/Utility.js index 385ca8df..8594a7b8 100644 --- a/dist/amd/System/Collections/Array/Utility.js +++ b/dist/amd/System/Collections/Array/Utility.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -define(["require","exports","../../Types","../../Integer","../../Compare","../../Exceptions/ArgumentException","../../Exceptions/ArgumentNullException","../../Exceptions/ArgumentOutOfRangeException"],function(e,t,n,r,i,a,o,f){"use strict";function u(e){r["default"].assert(e,"length");var t;return e>65536?t=new Array(e):(t=[],t.length=e),t}function l(e,t,n){return void 0===t&&(t=0),void 0===n&&(n=1/0),e?s(e,u(Math.min(n,Math.max(e.length-t,0))),t,0,n):e}function s(e,t,n,r,i){if(void 0===n&&(n=0),void 0===r&&(r=0),void 0===i&&(i=1/0),!e)throw new o["default"]("source",q);if(!t)throw new o["default"]("destination",q);if(0>n)throw new f["default"]("sourceIndex",n,O);var a=e.length;if(!a)return t;if(n>=a)throw new f["default"]("sourceIndex",n,"Must be less than the length of the source array.");if(t.length<0)throw new f["default"]("destinationIndex",r,O);var u=e.length-n;if(isFinite(i)&&i>u)throw new f["default"]("sourceIndex",n,"Source index + length cannot exceed the length of the source array.");i=Math.min(i,u);var l=r+i;l>t.length&&(t.length=l);for(var s=0;i>s;s++)t[r+s]=e[n+s];return t}function d(e,t,r){void 0===r&&(r=i.areEqual);var a=e&&e.length;if(a){if(Array.isArray(e)&&!n["default"].isTrueNaN(t))return e.indexOf(t);for(var o=0;a>o;o++)if(r(e[o],t))return o}return-1}function h(e,t,n){return void 0===n&&(n=i.areEqual),-1!=d(e,t,n)}function c(e,t,n,r){if(!e||!e.length||0===r)return 0;if(0>r)throw new f["default"]("max",r,O);r||(r=1/0);for(var i=0,a=0,o=e.length;o>a&&(e[a]!==t||(e[a]=n,++i,i!=r));a++);return i}function v(e,t,n,i){if(void 0===n&&(n=0),e){if(r["default"].assertZeroOrGreater(n,"start"),i||0===i||(i=e.length),r["default"].assert(i,"stop"),n>i)throw new f["default"]("stop",i,"is less than start");for(var a=n;i>a;a++)e[a]=t}}function w(e,t,n){void 0===t&&(t=0),v(e,null,t,n)}function g(e,t,n){if(void 0===n&&(n=i.areEqual),!e)throw new o["default"]("array",q);var r=e.length,a=!r||!h(e,t,n);return a&&(e[r]=t),a}function p(e,t){if(!e)throw new o["default"]("array",q);if(!n["default"].isFunction(t))throw new a["default"]("predicate","Must be a function.");var r=e.length;if(Array.isArray(e)){for(var i=0;r>i;i++)if(t(e[i]))return i}else for(var i=0;r>i;i++)if(i in e&&t(e[i]))return i;return-1}function x(e,t){if(e&&t)for(var n=0;nt)throw new f["default"]("index",t,O);var n=tn)throw new f["default"]("max",n,O);var a=0;if(n&&isFinite(n)){for(var o=[],u=0,l=e.length;l>u&&(!r(e[u],t)||(o.push(u),++a,a!=n));u++);for(var u=o.length-1;u>=0;u--)e.splice(o[u],1)}else for(var u=e.length-1;u>=0;u--)r(e[u],t)&&(e.splice(u,1),++a);return a}function A(e,t){if(r["default"].assert(t,"count"),0>t)throw new f["default"]("count",t,O);for(var n=u(t),i=0;t>i;i++)n[i]=e;return n}function b(e,t,n){if(void 0===n&&(n=1),isNaN(e)||!isFinite(e))throw new f["default"]("first",e,C);if(isNaN(t)||!isFinite(t))throw new f["default"]("count",t,C);if(0>t)throw new f["default"]("count",t,O);for(var r=u(t),i=0;t>i;i++)r[i]=e,e+=n;return r}function I(e,t,n){if(void 0===n&&(n=1),0==n)throw new f["default"]("step",n,F);return b(e,(t-e)/n,n)}function N(e){var t={};return e.filter(function(e){return!(e in t)&&(t[e]=!0)})}function M(e,t){void 0===t&&(t=0);for(var n=[],r=0;r0&&(i=M(i,t-1));for(var a=0;a65536?n=new Array(e):(n=[],n.length=e),n}function c(e,n,t){return void 0===n&&(n=0),void 0===t&&(t=1/0),e?g(e,f(Math.min(t,Math.max(e.length-n,0))),n,0,t):e}function g(e,n,t,r,i){if(void 0===t&&(t=0),void 0===r&&(r=0),void 0===i&&(i=1/0),!e)throw new u.ArgumentNullException("source",b);if(!n)throw new u.ArgumentNullException("destination",b);if(0>t)throw new a.ArgumentOutOfRangeException("sourceIndex",t,T);var o=e.length;if(!o)return n;if(t>=o)throw new a.ArgumentOutOfRangeException("sourceIndex",t,"Must be less than the length of the source array.");if(n.length<0)throw new a.ArgumentOutOfRangeException("destinationIndex",r,T);var f=e.length-t;if(isFinite(i)&&i>f)throw new a.ArgumentOutOfRangeException("sourceIndex",t,"Source index + length cannot exceed the length of the source array.");i=Math.min(i,f);var c=r+i;c>n.length&&(n.length=c);for(var g=0;i>g;g++)n[r+g]=e[t+g];return n}function s(e,n,r){void 0===r&&(r=i.areEqual);var o=e&&e.length;if(o){if(Array.isArray(e)&&!t.Type.isTrueNaN(n))return e.indexOf(n);for(var u=0;o>u;u++)if(r(e[u],n))return u}return-1}function l(e,n,t){return void 0===t&&(t=i.areEqual),-1!=s(e,n,t)}function h(e,n,t,r){if(!e||!e.length||0===r)return 0;if(0>r)throw new a.ArgumentOutOfRangeException("max",r,T);r||(r=1/0);for(var i=0,o=0,u=e.length;u>o&&(e[o]!==n||(e[o]=t,++i,i!=r));o++);return i}function p(e,n,t,i){if(void 0===t&&(t=0),e){if(r.Integer.assertZeroOrGreater(t,"start"),i||0===i||(i=e.length),r.Integer.assert(i,"stop"),t>i)throw new a.ArgumentOutOfRangeException("stop",i,"is less than start");for(var o=t;i>o;o++)e[o]=n}}function v(e,n,t){void 0===n&&(n=0),p(e,null,n,t)}function x(e,n,t){if(void 0===t&&(t=i.areEqual),!e)throw new u.ArgumentNullException("array",b);var r=e.length,o=!r||!l(e,n,t);return o&&(e[r]=n),o}function w(e,n){if(!e)throw new u.ArgumentNullException("array",b);if(!t.Type.isFunction(n))throw new o.ArgumentException("predicate","Must be a function.");var r=e.length;if(Array.isArray(e)){for(var i=0;r>i;i++)if(n(e[i]))return i}else for(var i=0;r>i;i++)if(i in e&&n(e[i]))return i;return-1}function d(e,n){if(e&&n)for(var t=0;tn)throw new a.ArgumentOutOfRangeException("index",n,T);var t=nt)throw new a.ArgumentOutOfRangeException("max",t,T);var o=0;if(t&&isFinite(t)){for(var u=[],f=0,c=e.length;c>f&&(!r(e[f],n)||(u.push(f),++o,o!=t));f++);for(var f=u.length-1;f>=0;f--)e.splice(u[f],1)}else for(var f=e.length-1;f>=0;f--)r(e[f],n)&&(e.splice(f,1),++o);return o}function A(e,n){if(r.Integer.assert(n,"count"),0>n)throw new a.ArgumentOutOfRangeException("count",n,T);for(var t=f(n),i=0;n>i;i++)t[i]=e;return t}function y(e,n,t){if(void 0===t&&(t=1),isNaN(e)||!isFinite(e))throw new a.ArgumentOutOfRangeException("first",e,q);if(isNaN(n)||!isFinite(n))throw new a.ArgumentOutOfRangeException("count",n,q);if(0>n)throw new a.ArgumentOutOfRangeException("count",n,T);for(var r=f(n),i=0;n>i;i++)r[i]=e,e+=t;return r}function R(e,n,t){if(void 0===t&&(t=1),0==t)throw new a.ArgumentOutOfRangeException("step",t,M);return y(e,(n-e)/t,t)}function I(e){var n={};return e.filter(function(e){return!(e in n)&&(n[e]=!0)})}function N(e,n){void 0===n&&(n=0);for(var t=[],r=0;r0&&(i=N(i,n-1));for(var o=0;o 65536)\n array = new Array(length);\n else {\n array = [];\n array.length = length;\n }\n return array;\n }\n exports.initialize = initialize;\n function copy(source, sourceIndex, length) {\n if (sourceIndex === void 0) { sourceIndex = 0; }\n if (length === void 0) { length = Infinity; }\n if (!source)\n return source;\n return copyTo(source, initialize(Math.min(length, Math.max(source.length - sourceIndex, 0))), sourceIndex, 0, length);\n }\n exports.copy = copy;\n var CBN = 'Cannot be null.', CB0 = 'Cannot be zero.', CBL0 = 'Cannot be less than zero.', VFN = 'Must be a valid finite number';\n function copyTo(source, destination, sourceIndex, destinationIndex, length) {\n if (sourceIndex === void 0) { sourceIndex = 0; }\n if (destinationIndex === void 0) { destinationIndex = 0; }\n if (length === void 0) { length = Infinity; }\n if (!source)\n throw new ArgumentNullException_1.default('source', CBN);\n if (!destination)\n throw new ArgumentNullException_1.default('destination', CBN);\n if (sourceIndex < 0)\n throw new ArgumentOutOfRangeException_1.default('sourceIndex', sourceIndex, CBL0);\n var sourceLength = source.length;\n if (!sourceLength)\n return destination;\n if (sourceIndex >= sourceLength)\n throw new ArgumentOutOfRangeException_1.default('sourceIndex', sourceIndex, 'Must be less than the length of the source array.');\n if (destination.length < 0)\n throw new ArgumentOutOfRangeException_1.default('destinationIndex', destinationIndex, CBL0);\n var maxLength = source.length - sourceIndex;\n if (isFinite(length) && length > maxLength)\n throw new ArgumentOutOfRangeException_1.default('sourceIndex', sourceIndex, 'Source index + length cannot exceed the length of the source array.');\n length = Math.min(length, maxLength);\n var newLength = destinationIndex + length;\n if (newLength > destination.length)\n destination.length = newLength;\n for (var i = 0; i < length; i++) {\n destination[destinationIndex + i] = source[sourceIndex + i];\n }\n return destination;\n }\n exports.copyTo = copyTo;\n function indexOf(array, item, equalityComparer) {\n if (equalityComparer === void 0) { equalityComparer = Compare_1.areEqual; }\n var len = array && array.length;\n if (len) {\n if (Array.isArray(array) && !Types_1.default.isTrueNaN(item))\n return array.indexOf(item);\n for (var i = 0; i < len; i++) {\n if (equalityComparer(array[i], item))\n return i;\n }\n }\n return -1;\n }\n exports.indexOf = indexOf;\n function contains(array, item, equalityComparer) {\n if (equalityComparer === void 0) { equalityComparer = Compare_1.areEqual; }\n return indexOf(array, item, equalityComparer) != -1;\n }\n exports.contains = contains;\n function replace(array, old, newValue, max) {\n if (!array || !array.length || max === 0)\n return 0;\n if (max < 0)\n throw new ArgumentOutOfRangeException_1.default('max', max, CBL0);\n if (!max)\n max = Infinity;\n var count = 0;\n for (var i = 0, len = array.length; i < len; i++) {\n if (array[i] === old) {\n array[i] = newValue;\n ++count;\n if (count == max)\n break;\n }\n }\n return count;\n }\n exports.replace = replace;\n function updateRange(array, value, start, stop) {\n if (start === void 0) { start = 0; }\n if (!array)\n return;\n Integer_1.default.assertZeroOrGreater(start, 'start');\n if (!stop && stop !== 0)\n stop = array.length;\n Integer_1.default.assert(stop, 'stop');\n if (stop < start)\n throw new ArgumentOutOfRangeException_1.default(\"stop\", stop, \"is less than start\");\n for (var i = start; i < stop; i++) {\n array[i] = value;\n }\n }\n exports.updateRange = updateRange;\n function clear(array, start, stop) {\n if (start === void 0) { start = 0; }\n updateRange(array, null, start, stop);\n }\n exports.clear = clear;\n function register(array, item, equalityComparer) {\n if (equalityComparer === void 0) { equalityComparer = Compare_1.areEqual; }\n if (!array)\n throw new ArgumentNullException_1.default('array', CBN);\n var len = array.length;\n var ok = !len || !contains(array, item, equalityComparer);\n if (ok)\n array[len] = item;\n return ok;\n }\n exports.register = register;\n function findIndex(array, predicate) {\n if (!array)\n throw new ArgumentNullException_1.default('array', CBN);\n if (!Types_1.default.isFunction(predicate))\n throw new ArgumentException_1.default('predicate', 'Must be a function.');\n var len = array.length;\n if (Array.isArray(array)) {\n for (var i = 0; i < len; i++) {\n if (predicate(array[i]))\n return i;\n }\n }\n else {\n for (var i = 0; i < len; i++) {\n if ((i) in (array) && predicate(array[i]))\n return i;\n }\n }\n return -1;\n }\n exports.findIndex = findIndex;\n function forEach(source, action) {\n if (source && action) {\n for (var i = 0; i < source.length; i++) {\n if (action(source[i], i) === false)\n break;\n }\n }\n }\n exports.forEach = forEach;\n function applyTo(target, fn) {\n if (target && fn) {\n for (var i = 0; i < target.length; i++) {\n target[i] = fn(target[i]);\n }\n }\n }\n exports.applyTo = applyTo;\n function removeIndex(array, index) {\n if (!array)\n throw new ArgumentNullException_1.default('array', CBN);\n Integer_1.default.assert(index, 'index');\n if (index < 0)\n throw new ArgumentOutOfRangeException_1.default('index', index, CBL0);\n var exists = index < array.length;\n if (exists)\n array.splice(index, 1);\n return exists;\n }\n exports.removeIndex = removeIndex;\n function remove(array, value, max, equalityComparer) {\n if (equalityComparer === void 0) { equalityComparer = Compare_1.areEqual; }\n if (!array || !array.length || max === 0)\n return 0;\n if (max < 0)\n throw new ArgumentOutOfRangeException_1.default('max', max, CBL0);\n var count = 0;\n if (!max || !isFinite(max)) {\n for (var i = (array.length - 1); i >= 0; i--) {\n if (equalityComparer(array[i], value)) {\n array.splice(i, 1);\n ++count;\n }\n }\n }\n else {\n var found = [];\n for (var i = 0, len = array.length; i < len; i++) {\n if (equalityComparer(array[i], value)) {\n found.push(i);\n ++count;\n if (count == max)\n break;\n }\n }\n for (var i = found.length - 1; i >= 0; i--) {\n array.splice(found[i], 1);\n }\n }\n return count;\n }\n exports.remove = remove;\n function repeat(element, count) {\n Integer_1.default.assert(count, 'count');\n if (count < 0)\n throw new ArgumentOutOfRangeException_1.default('count', count, CBL0);\n var result = initialize(count);\n for (var i = 0; i < count; i++) {\n result[i] = element;\n }\n return result;\n }\n exports.repeat = repeat;\n function range(first, count, step) {\n if (step === void 0) { step = 1; }\n if (isNaN(first) || !isFinite(first))\n throw new ArgumentOutOfRangeException_1.default('first', first, VFN);\n if (isNaN(count) || !isFinite(count))\n throw new ArgumentOutOfRangeException_1.default('count', count, VFN);\n if (count < 0)\n throw new ArgumentOutOfRangeException_1.default('count', count, CBL0);\n var result = initialize(count);\n for (var i = 0; i < count; i++) {\n result[i] = first;\n first += step;\n }\n return result;\n }\n exports.range = range;\n function rangeUntil(first, until, step) {\n if (step === void 0) { step = 1; }\n if (step == 0)\n throw new ArgumentOutOfRangeException_1.default('step', step, CB0);\n return range(first, (until - first) / step, step);\n }\n exports.rangeUntil = rangeUntil;\n function distinct(source) {\n var seen = {};\n return source.filter(function (e) { return !(e in seen) && (seen[e] = true); });\n }\n exports.distinct = distinct;\n function flatten(a, recurseDepth) {\n if (recurseDepth === void 0) { recurseDepth = 0; }\n var result = [];\n for (var i = 0; i < a.length; i++) {\n var x = a[i];\n if (Array.isArray(x)) {\n if (recurseDepth > 0)\n x = flatten(x, recurseDepth - 1);\n for (var n = 0; n < x.length; n++)\n result.push(x[n]);\n }\n else\n result.push(x);\n }\n return result;\n }\n exports.flatten = flatten;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\nimport Type from \"../../Types\";\r\nimport Integer from \"../../Integer\";\r\nimport {areEqual} from \"../../Compare\";\r\nimport ArgumentException from \"../../Exceptions/ArgumentException\";\r\nimport ArgumentNullException from \"../../Exceptions/ArgumentNullException\";\r\nimport ArgumentOutOfRangeException from \"../../Exceptions/ArgumentOutOfRangeException\";\r\n\r\n/**\r\n * Initializes an array depending on the requested capacity.\r\n * The returned array will have a .length equal to the value provided.\r\n * @param length\r\n * @returns {T[]}\r\n */\r\nexport function initialize(length:number):T[]\r\n{\r\n\tInteger.assert(length, 'length');\r\n\t// This logic is based upon JS performance tests that show a significant difference at the level of 65536.\r\n\tvar array:T[];\r\n\tif(length>65536)\r\n\t\tarray = new Array(length);\r\n\telse\r\n\t{\r\n\t\tarray = [];\r\n\t\tarray.length = length;\r\n\t}\r\n\treturn array;\r\n}\r\n\r\n/**\r\n *\r\n * @param source\r\n * @param sourceIndex\r\n * @param length\r\n * @returns {any}\r\n */\r\nexport function copy(\r\n\tsource:IArray,\r\n\tsourceIndex:number = 0,\r\n\tlength:number = Infinity):T[]\r\n{\r\n\tif(!source) return source; // may have passed zero? undefined? or null?\r\n\treturn copyTo(\r\n\t\tsource,\r\n\t\tinitialize(Math.min(length, Math.max(source.length - sourceIndex, 0))),\r\n\t\tsourceIndex, 0, length);\r\n}\r\n\r\nconst\r\n\tCBN = 'Cannot be null.',\r\n\tCB0 = 'Cannot be zero.',\r\n\tCBL0 = 'Cannot be less than zero.',\r\n\tVFN = 'Must be a valid finite number';\r\n\r\n/**\r\n * Copies one array to another.\r\n * @param source\r\n * @param destination\r\n * @param sourceIndex\r\n * @param destinationIndex\r\n * @param length An optional limit to stop copying.\r\n * @returns The destination array.\r\n */\r\nexport function copyTo>(\r\n\tsource:IArray,\r\n\tdestination:TDestination,\r\n\tsourceIndex:number = 0,\r\n\tdestinationIndex:number = 0,\r\n\tlength:number = Infinity):TDestination\r\n{\r\n\tif(!source)\r\n\t\tthrow new ArgumentNullException('source', CBN);\r\n\r\n\tif(!destination)\r\n\t\tthrow new ArgumentNullException('destination', CBN);\r\n\r\n\tif(sourceIndex<0)\r\n\t\tthrow new ArgumentOutOfRangeException('sourceIndex', sourceIndex, CBL0);\r\n\r\n\tvar sourceLength = source.length;\r\n\tif(!sourceLength)\r\n\t\treturn destination;\r\n\tif(sourceIndex>=sourceLength)\r\n\t\tthrow new ArgumentOutOfRangeException('sourceIndex', sourceIndex, 'Must be less than the length of the source array.');\r\n\r\n\tif(destination.length<0)\r\n\t\tthrow new ArgumentOutOfRangeException('destinationIndex', destinationIndex, CBL0);\r\n\r\n\tvar maxLength = source.length - sourceIndex;\r\n\tif(isFinite(length) && length>maxLength)\r\n\t\tthrow new ArgumentOutOfRangeException('sourceIndex', sourceIndex, 'Source index + length cannot exceed the length of the source array.');\r\n\r\n\tlength = Math.min(length, maxLength);\r\n\tvar newLength = destinationIndex + length;\r\n\tif(newLength>destination.length) destination.length = newLength;\r\n\r\n\tfor(let i = 0; i(\r\n\tarray:IArray, item:T,\r\n\tequalityComparer:EqualityComparison = areEqual):number\r\n{\r\n\r\n\tvar len = array && array.length;\r\n\tif(len)\r\n\t{\r\n\t\t// NaN NEVER evaluates its equality so be careful.\r\n\t\tif(Array.isArray(array) && !Type.isTrueNaN(item))\r\n\t\t\treturn array.indexOf(item);\r\n\r\n\t\tfor(let i = 0; i(\r\n\tarray:IArray, item:T,\r\n\tequalityComparer:EqualityComparison = areEqual):boolean\r\n{\r\n\treturn indexOf(array, item, equalityComparer)!= -1;\r\n}\r\n\r\n/**\r\n * Finds and replaces a value from an array. Will replaces all instances unless a maximum is specified.\r\n * @param array\r\n * @param old\r\n * @param newValue\r\n * @param max\r\n * @returns {number}\r\n */\r\nexport function replace(\r\n\tarray:IArray,\r\n\told:T,\r\n\tnewValue:T,\r\n\tmax?:number):number\r\n{\r\n\tif(!array || !array.length || max===0) return 0;\r\n\tif(max<0) throw new ArgumentOutOfRangeException('max', max, CBL0);\r\n\tif(!max) max = Infinity;\r\n\r\n\tvar count = 0;\r\n\r\n\tfor(let i = 0,len=array.length;i(\r\n\tarray:IArray,\r\n\tvalue:T,\r\n\tstart:number = 0,\r\n\tstop?:number):void\r\n{\r\n\tif(!array) return;\r\n\tInteger.assertZeroOrGreater(start, 'start');\r\n\tif(!stop && stop!==0) stop = array.length;\r\n\tInteger.assert(stop, 'stop');\r\n\tif(stop,\r\n\tstart:number = 0,\r\n\tstop?:number):void\r\n{\r\n\tupdateRange(array, null, start, stop);\r\n}\r\n\r\n/**\r\n * Ensures a value exists within an array. If not found, adds to the end.\r\n * @param array\r\n * @param item\r\n * @param {function?} equalityComparer\r\n * @returns {boolean}\r\n */\r\nexport function register(\r\n\tarray:IArray, item:T,\r\n\tequalityComparer:EqualityComparison = areEqual):boolean\r\n{\r\n\tif(!array)\r\n\t\tthrow new ArgumentNullException('array', CBN);\r\n\tvar len = array.length; // avoid querying .length more than once. *\r\n\tvar ok = !len || !contains(array, item, equalityComparer);\r\n\tif(ok) array[len] = item; // * push would query length again.\r\n\treturn ok;\r\n}\r\n\r\n/**\r\n * Returns the first index of which the provided predicate returns true.\r\n * Returns -1 if always false.\r\n * @param array\r\n * @param predicate\r\n * @returns {number}\r\n */\r\nexport function findIndex(array:IArray, predicate:Predicate):number\r\n{\r\n\tif(!array)\r\n\t\tthrow new ArgumentNullException('array', CBN);\r\n\tif(!Type.isFunction(predicate))\r\n\t\tthrow new ArgumentException('predicate', 'Must be a function.');\r\n\r\n\tvar len = array.length;\r\n\tif(Array.isArray(array)) {\r\n\t\tfor(let i = 0; i(\r\n\tsource:IArray,\r\n\taction:Predicate | Action):void\r\n{\r\n\tif(source && action)\r\n\t{\r\n\t\t// Don't cache the length since it is possible that the underlying array changed.\r\n\t\tfor(let i = 0; i(target:IArray, fn:(a:T) => T):void\r\n{\r\n\tif(target && fn)\r\n\t{\r\n\t\tfor(let i = 0; i(array:T[], index:number):boolean\r\n{\r\n\tif(!array)\r\n\t\tthrow new ArgumentNullException('array', CBN);\r\n\r\n\tInteger.assert(index, 'index');\r\n\tif(index<0) throw new ArgumentOutOfRangeException('index', index, CBL0);\r\n\r\n\r\n\tvar exists = index(\r\n\tarray:T[], value:T, max?:number,\r\n\tequalityComparer:EqualityComparison = areEqual):number\r\n{\r\n\tif(!array || !array.length || max===0) return 0;\r\n\tif(max<0) throw new ArgumentOutOfRangeException('max', max, CBL0);\r\n\r\n\tvar count = 0;\r\n\tif(!max || !isFinite(max)) {\r\n\t\t// Don't track the indexes and remove in reverse.\r\n\t\tfor(let i = (array.length - 1); i>=0; i--)\r\n\t\t{\r\n\t\t\tif(equalityComparer(array[i], value))\r\n\t\t\t{\r\n\t\t\t\tarray.splice(i, 1);\r\n\t\t\t\t++count;\r\n\t\t\t}\r\n\t\t}\r\n\t} else {\r\n\t\t// Since the user will expect it to happen in forward order...\r\n\t\tvar found:number[] = []; // indexes;\r\n\t\tfor(let i = 0, len = array.length; i=0;i--) {\r\n\t\t\tarray.splice(found[i], 1);\r\n\t\t}\r\n\t}\r\n\r\n\r\n\treturn count;\r\n}\r\n\r\n/**\r\n * Simply repeats a value the number of times specified.\r\n * @param element\r\n * @param count\r\n * @returns {T[]}\r\n */\r\nexport function repeat(element:T, count:number):T[]\r\n{\r\n\tInteger.assert(count, 'count');\r\n\tif(count<0) throw new ArgumentOutOfRangeException('count', count, CBL0);\r\n\r\n\tvar result = initialize(count);\r\n\tfor(let i = 0; i(count);\r\n\tfor(let i = 0; i !(e in seen) && (seen[e] = true));\r\n}\r\n\r\n/**\r\n * Takes any arrays within an array and inserts the values contained within in place of that array.\r\n * For every count higher than 0 in recurseDepth it will attempt an additional pass. Passing Infinity will flatten all arrays contained.\r\n * @param a\r\n * @param recurseDepth\r\n * @returns {any[]}\r\n */\r\nexport function flatten(a:any[], recurseDepth:number = 0):any[]\r\n{\r\n\tvar result:any[] = [];\r\n\tfor(var i = 0; i0) x = flatten(x, recurseDepth - 1);\r\n\t\t\tfor(var n = 0; n 65536)\n array = new Array(length);\n else {\n array = [];\n array.length = length;\n }\n return array;\n }\n exports.initialize = initialize;\n function copy(source, sourceIndex, length) {\n if (sourceIndex === void 0) { sourceIndex = 0; }\n if (length === void 0) { length = Infinity; }\n if (!source)\n return source;\n return copyTo(source, initialize(Math.min(length, Math.max(source.length - sourceIndex, 0))), sourceIndex, 0, length);\n }\n exports.copy = copy;\n var CBN = 'Cannot be null.', CB0 = 'Cannot be zero.', CBL0 = 'Cannot be less than zero.', VFN = 'Must be a valid finite number';\n function copyTo(source, destination, sourceIndex, destinationIndex, length) {\n if (sourceIndex === void 0) { sourceIndex = 0; }\n if (destinationIndex === void 0) { destinationIndex = 0; }\n if (length === void 0) { length = Infinity; }\n if (!source)\n throw new ArgumentNullException_1.ArgumentNullException('source', CBN);\n if (!destination)\n throw new ArgumentNullException_1.ArgumentNullException('destination', CBN);\n if (sourceIndex < 0)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('sourceIndex', sourceIndex, CBL0);\n var sourceLength = source.length;\n if (!sourceLength)\n return destination;\n if (sourceIndex >= sourceLength)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('sourceIndex', sourceIndex, 'Must be less than the length of the source array.');\n if (destination.length < 0)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('destinationIndex', destinationIndex, CBL0);\n var maxLength = source.length - sourceIndex;\n if (isFinite(length) && length > maxLength)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('sourceIndex', sourceIndex, 'Source index + length cannot exceed the length of the source array.');\n length = Math.min(length, maxLength);\n var newLength = destinationIndex + length;\n if (newLength > destination.length)\n destination.length = newLength;\n for (var i = 0; i < length; i++) {\n destination[destinationIndex + i] = source[sourceIndex + i];\n }\n return destination;\n }\n exports.copyTo = copyTo;\n function indexOf(array, item, equalityComparer) {\n if (equalityComparer === void 0) { equalityComparer = Compare_1.areEqual; }\n var len = array && array.length;\n if (len) {\n if (Array.isArray(array) && !Types_1.Type.isTrueNaN(item))\n return array.indexOf(item);\n for (var i = 0; i < len; i++) {\n if (equalityComparer(array[i], item))\n return i;\n }\n }\n return -1;\n }\n exports.indexOf = indexOf;\n function contains(array, item, equalityComparer) {\n if (equalityComparer === void 0) { equalityComparer = Compare_1.areEqual; }\n return indexOf(array, item, equalityComparer) != -1;\n }\n exports.contains = contains;\n function replace(array, old, newValue, max) {\n if (!array || !array.length || max === 0)\n return 0;\n if (max < 0)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('max', max, CBL0);\n if (!max)\n max = Infinity;\n var count = 0;\n for (var i = 0, len = array.length; i < len; i++) {\n if (array[i] === old) {\n array[i] = newValue;\n ++count;\n if (count == max)\n break;\n }\n }\n return count;\n }\n exports.replace = replace;\n function updateRange(array, value, start, stop) {\n if (start === void 0) { start = 0; }\n if (!array)\n return;\n Integer_1.Integer.assertZeroOrGreater(start, 'start');\n if (!stop && stop !== 0)\n stop = array.length;\n Integer_1.Integer.assert(stop, 'stop');\n if (stop < start)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(\"stop\", stop, \"is less than start\");\n for (var i = start; i < stop; i++) {\n array[i] = value;\n }\n }\n exports.updateRange = updateRange;\n function clear(array, start, stop) {\n if (start === void 0) { start = 0; }\n updateRange(array, null, start, stop);\n }\n exports.clear = clear;\n function register(array, item, equalityComparer) {\n if (equalityComparer === void 0) { equalityComparer = Compare_1.areEqual; }\n if (!array)\n throw new ArgumentNullException_1.ArgumentNullException('array', CBN);\n var len = array.length;\n var ok = !len || !contains(array, item, equalityComparer);\n if (ok)\n array[len] = item;\n return ok;\n }\n exports.register = register;\n function findIndex(array, predicate) {\n if (!array)\n throw new ArgumentNullException_1.ArgumentNullException('array', CBN);\n if (!Types_1.Type.isFunction(predicate))\n throw new ArgumentException_1.ArgumentException('predicate', 'Must be a function.');\n var len = array.length;\n if (Array.isArray(array)) {\n for (var i = 0; i < len; i++) {\n if (predicate(array[i]))\n return i;\n }\n }\n else {\n for (var i = 0; i < len; i++) {\n if ((i) in (array) && predicate(array[i]))\n return i;\n }\n }\n return -1;\n }\n exports.findIndex = findIndex;\n function forEach(source, action) {\n if (source && action) {\n for (var i = 0; i < source.length; i++) {\n if (action(source[i], i) === false)\n break;\n }\n }\n }\n exports.forEach = forEach;\n function applyTo(target, fn) {\n if (target && fn) {\n for (var i = 0; i < target.length; i++) {\n target[i] = fn(target[i]);\n }\n }\n }\n exports.applyTo = applyTo;\n function removeIndex(array, index) {\n if (!array)\n throw new ArgumentNullException_1.ArgumentNullException('array', CBN);\n Integer_1.Integer.assert(index, 'index');\n if (index < 0)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('index', index, CBL0);\n var exists = index < array.length;\n if (exists)\n array.splice(index, 1);\n return exists;\n }\n exports.removeIndex = removeIndex;\n function remove(array, value, max, equalityComparer) {\n if (equalityComparer === void 0) { equalityComparer = Compare_1.areEqual; }\n if (!array || !array.length || max === 0)\n return 0;\n if (max < 0)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('max', max, CBL0);\n var count = 0;\n if (!max || !isFinite(max)) {\n for (var i = (array.length - 1); i >= 0; i--) {\n if (equalityComparer(array[i], value)) {\n array.splice(i, 1);\n ++count;\n }\n }\n }\n else {\n var found = [];\n for (var i = 0, len = array.length; i < len; i++) {\n if (equalityComparer(array[i], value)) {\n found.push(i);\n ++count;\n if (count == max)\n break;\n }\n }\n for (var i = found.length - 1; i >= 0; i--) {\n array.splice(found[i], 1);\n }\n }\n return count;\n }\n exports.remove = remove;\n function repeat(element, count) {\n Integer_1.Integer.assert(count, 'count');\n if (count < 0)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('count', count, CBL0);\n var result = initialize(count);\n for (var i = 0; i < count; i++) {\n result[i] = element;\n }\n return result;\n }\n exports.repeat = repeat;\n function range(first, count, step) {\n if (step === void 0) { step = 1; }\n if (isNaN(first) || !isFinite(first))\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('first', first, VFN);\n if (isNaN(count) || !isFinite(count))\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('count', count, VFN);\n if (count < 0)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('count', count, CBL0);\n var result = initialize(count);\n for (var i = 0; i < count; i++) {\n result[i] = first;\n first += step;\n }\n return result;\n }\n exports.range = range;\n function rangeUntil(first, until, step) {\n if (step === void 0) { step = 1; }\n if (step == 0)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('step', step, CB0);\n return range(first, (until - first) / step, step);\n }\n exports.rangeUntil = rangeUntil;\n function distinct(source) {\n var seen = {};\n return source.filter(function (e) { return !(e in seen) && (seen[e] = true); });\n }\n exports.distinct = distinct;\n function flatten(a, recurseDepth) {\n if (recurseDepth === void 0) { recurseDepth = 0; }\n var result = [];\n for (var i = 0; i < a.length; i++) {\n var x = a[i];\n if (Array.isArray(x)) {\n if (recurseDepth > 0)\n x = flatten(x, recurseDepth - 1);\n for (var n = 0; n < x.length; n++)\n result.push(x[n]);\n }\n else\n result.push(x);\n }\n return result;\n }\n exports.flatten = flatten;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {Type} from \"../../Types\";\r\nimport {Integer} from \"../../Integer\";\r\nimport {areEqual} from \"../../Compare\";\r\nimport {ArgumentException} from \"../../Exceptions/ArgumentException\";\r\nimport {ArgumentNullException} from \"../../Exceptions/ArgumentNullException\";\r\nimport {ArgumentOutOfRangeException} from \"../../Exceptions/ArgumentOutOfRangeException\";\r\nimport {EqualityComparison, Predicate, Action} from \"../../FunctionTypes\";\r\nimport {IArray} from \"./IArray\";\r\n\r\n/**\r\n * Initializes an array depending on the requested capacity.\r\n * The returned array will have a .length equal to the value provided.\r\n * @param length\r\n * @returns {T[]}\r\n */\r\nexport function initialize(length:number):T[]\r\n{\r\n\tInteger.assert(length, 'length');\r\n\t// This logic is based upon JS performance tests that show a significant difference at the level of 65536.\r\n\tvar array:T[];\r\n\tif(length>65536)\r\n\t\tarray = new Array(length);\r\n\telse\r\n\t{\r\n\t\tarray = [];\r\n\t\tarray.length = length;\r\n\t}\r\n\treturn array;\r\n}\r\n\r\n/**\r\n *\r\n * @param source\r\n * @param sourceIndex\r\n * @param length\r\n * @returns {any}\r\n */\r\nexport function copy(\r\n\tsource:IArray,\r\n\tsourceIndex:number = 0,\r\n\tlength:number = Infinity):T[]\r\n{\r\n\tif(!source) return source; // may have passed zero? undefined? or null?\r\n\treturn copyTo(\r\n\t\tsource,\r\n\t\tinitialize(Math.min(length, Math.max(source.length - sourceIndex, 0))),\r\n\t\tsourceIndex, 0, length);\r\n}\r\n\r\nconst\r\n\tCBN = 'Cannot be null.',\r\n\tCB0 = 'Cannot be zero.',\r\n\tCBL0 = 'Cannot be less than zero.',\r\n\tVFN = 'Must be a valid finite number';\r\n\r\n/**\r\n * Copies one array to another.\r\n * @param source\r\n * @param destination\r\n * @param sourceIndex\r\n * @param destinationIndex\r\n * @param length An optional limit to stop copying.\r\n * @returns The destination array.\r\n */\r\nexport function copyTo>(\r\n\tsource:IArray,\r\n\tdestination:TDestination,\r\n\tsourceIndex:number = 0,\r\n\tdestinationIndex:number = 0,\r\n\tlength:number = Infinity):TDestination\r\n{\r\n\tif(!source)\r\n\t\tthrow new ArgumentNullException('source', CBN);\r\n\r\n\tif(!destination)\r\n\t\tthrow new ArgumentNullException('destination', CBN);\r\n\r\n\tif(sourceIndex<0)\r\n\t\tthrow new ArgumentOutOfRangeException('sourceIndex', sourceIndex, CBL0);\r\n\r\n\tvar sourceLength = source.length;\r\n\tif(!sourceLength)\r\n\t\treturn destination;\r\n\tif(sourceIndex>=sourceLength)\r\n\t\tthrow new ArgumentOutOfRangeException('sourceIndex', sourceIndex, 'Must be less than the length of the source array.');\r\n\r\n\tif(destination.length<0)\r\n\t\tthrow new ArgumentOutOfRangeException('destinationIndex', destinationIndex, CBL0);\r\n\r\n\tvar maxLength = source.length - sourceIndex;\r\n\tif(isFinite(length) && length>maxLength)\r\n\t\tthrow new ArgumentOutOfRangeException('sourceIndex', sourceIndex, 'Source index + length cannot exceed the length of the source array.');\r\n\r\n\tlength = Math.min(length, maxLength);\r\n\tvar newLength = destinationIndex + length;\r\n\tif(newLength>destination.length) destination.length = newLength;\r\n\r\n\tfor(let i = 0; i(\r\n\tarray:IArray, item:T,\r\n\tequalityComparer:EqualityComparison = areEqual):number\r\n{\r\n\r\n\tvar len = array && array.length;\r\n\tif(len)\r\n\t{\r\n\t\t// NaN NEVER evaluates its equality so be careful.\r\n\t\tif(Array.isArray(array) && !Type.isTrueNaN(item))\r\n\t\t\treturn array.indexOf(item);\r\n\r\n\t\tfor(let i = 0; i(\r\n\tarray:IArray, item:T,\r\n\tequalityComparer:EqualityComparison = areEqual):boolean\r\n{\r\n\treturn indexOf(array, item, equalityComparer)!= -1;\r\n}\r\n\r\n/**\r\n * Finds and replaces a value from an array. Will replaces all instances unless a maximum is specified.\r\n * @param array\r\n * @param old\r\n * @param newValue\r\n * @param max\r\n * @returns {number}\r\n */\r\nexport function replace(\r\n\tarray:IArray,\r\n\told:T,\r\n\tnewValue:T,\r\n\tmax?:number):number\r\n{\r\n\tif(!array || !array.length || max===0) return 0;\r\n\tif(max<0) throw new ArgumentOutOfRangeException('max', max, CBL0);\r\n\tif(!max) max = Infinity;\r\n\r\n\tvar count = 0;\r\n\r\n\tfor(let i = 0, len = array.length; i(\r\n\tarray:IArray,\r\n\tvalue:T,\r\n\tstart:number = 0,\r\n\tstop?:number):void\r\n{\r\n\tif(!array) return;\r\n\tInteger.assertZeroOrGreater(start, 'start');\r\n\tif(!stop && stop!==0) stop = array.length;\r\n\tInteger.assert(stop, 'stop');\r\n\tif(stop,\r\n\tstart:number = 0,\r\n\tstop?:number):void\r\n{\r\n\tupdateRange(array, null, start, stop);\r\n}\r\n\r\n/**\r\n * Ensures a value exists within an array. If not found, adds to the end.\r\n * @param array\r\n * @param item\r\n * @param {function?} equalityComparer\r\n * @returns {boolean}\r\n */\r\nexport function register(\r\n\tarray:IArray, item:T,\r\n\tequalityComparer:EqualityComparison = areEqual):boolean\r\n{\r\n\tif(!array)\r\n\t\tthrow new ArgumentNullException('array', CBN);\r\n\tvar len = array.length; // avoid querying .length more than once. *\r\n\tvar ok = !len || !contains(array, item, equalityComparer);\r\n\tif(ok) array[len] = item; // * push would query length again.\r\n\treturn ok;\r\n}\r\n\r\n/**\r\n * Returns the first index of which the provided predicate returns true.\r\n * Returns -1 if always false.\r\n * @param array\r\n * @param predicate\r\n * @returns {number}\r\n */\r\nexport function findIndex(array:IArray, predicate:Predicate):number\r\n{\r\n\tif(!array)\r\n\t\tthrow new ArgumentNullException('array', CBN);\r\n\tif(!Type.isFunction(predicate))\r\n\t\tthrow new ArgumentException('predicate', 'Must be a function.');\r\n\r\n\tvar len = array.length;\r\n\tif(Array.isArray(array))\r\n\t{\r\n\t\tfor(let i = 0; i(\r\n\tsource:IArray,\r\n\taction:Predicate | Action):void\r\n{\r\n\tif(source && action)\r\n\t{\r\n\t\t// Don't cache the length since it is possible that the underlying array changed.\r\n\t\tfor(let i = 0; i(target:IArray, fn:(a:T) => T):void\r\n{\r\n\tif(target && fn)\r\n\t{\r\n\t\tfor(let i = 0; i(array:T[], index:number):boolean\r\n{\r\n\tif(!array)\r\n\t\tthrow new ArgumentNullException('array', CBN);\r\n\r\n\tInteger.assert(index, 'index');\r\n\tif(index<0) throw new ArgumentOutOfRangeException('index', index, CBL0);\r\n\r\n\r\n\tvar exists = index(\r\n\tarray:T[], value:T, max?:number,\r\n\tequalityComparer:EqualityComparison = areEqual):number\r\n{\r\n\tif(!array || !array.length || max===0) return 0;\r\n\tif(max<0) throw new ArgumentOutOfRangeException('max', max, CBL0);\r\n\r\n\tvar count = 0;\r\n\tif(!max || !isFinite(max))\r\n\t{\r\n\t\t// Don't track the indexes and remove in reverse.\r\n\t\tfor(let i = (array.length - 1); i>=0; i--)\r\n\t\t{\r\n\t\t\tif(equalityComparer(array[i], value))\r\n\t\t\t{\r\n\t\t\t\tarray.splice(i, 1);\r\n\t\t\t\t++count;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\telse\r\n\t{\r\n\t\t// Since the user will expect it to happen in forward order...\r\n\t\tvar found:number[] = []; // indexes;\r\n\t\tfor(let i = 0, len = array.length; i=0; i--)\r\n\t\t{\r\n\t\t\tarray.splice(found[i], 1);\r\n\t\t}\r\n\t}\r\n\r\n\r\n\treturn count;\r\n}\r\n\r\n/**\r\n * Simply repeats a value the number of times specified.\r\n * @param element\r\n * @param count\r\n * @returns {T[]}\r\n */\r\nexport function repeat(element:T, count:number):T[]\r\n{\r\n\tInteger.assert(count, 'count');\r\n\tif(count<0) throw new ArgumentOutOfRangeException('count', count, CBL0);\r\n\r\n\tvar result = initialize(count);\r\n\tfor(let i = 0; i(count);\r\n\tfor(let i = 0; i !(e in seen) && (seen[e] = true));\r\n}\r\n\r\n/**\r\n * Takes any arrays within an array and inserts the values contained within in place of that array.\r\n * For every count higher than 0 in recurseDepth it will attempt an additional pass. Passing Infinity will flatten all arrays contained.\r\n * @param a\r\n * @param recurseDepth\r\n * @returns {any[]}\r\n */\r\nexport function flatten(a:any[], recurseDepth:number = 0):any[]\r\n{\r\n\tvar result:any[] = [];\r\n\tfor(var i = 0; i0) x = flatten(x, recurseDepth - 1);\r\n\t\t\tfor(var n = 0; n -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import DisposableBase from "../Disposable/DisposableBase"; -declare abstract class CollectionBase extends DisposableBase implements ICollection, IEnumerateEach { +import { DisposableBase } from "../Disposable/DisposableBase"; +import { ICollection } from "./ICollection"; +import { IEnumerator } from "./Enumeration/IEnumerator"; +import { IEnumerateEach } from "./Enumeration/IEnumerateEach"; +import { EqualityComparison, Predicate, Action } from "../FunctionTypes"; +import { IEnumerableOrArray } from "./IEnumerableOrArray"; +import { IArray } from "./Array/IArray"; +export declare abstract class CollectionBase extends DisposableBase implements ICollection, IEnumerateEach { protected _equalityComparer: EqualityComparison; constructor(source?: IEnumerableOrArray, _equalityComparer?: EqualityComparison); protected abstract getCount(): number; diff --git a/dist/amd/System/Collections/CollectionBase.js b/dist/amd/System/Collections/CollectionBase.js index 5e89d320..d51166c7 100644 --- a/dist/amd/System/Collections/CollectionBase.js +++ b/dist/amd/System/Collections/CollectionBase.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(t,e){function o(){this.constructor=t}for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)};define(["require","exports","./Enumeration/Enumerator","../Compare","../Exceptions/ArgumentNullException","../Exceptions/InvalidOperationException","../Disposable/DisposableBase"],function(t,e,o,i,n,r,a){"use strict";var s="CollectionBase",u="Cannot modify a disposed collection.",d="Cannot modify a read-only collection.",f=function(t){function e(e,o){void 0===o&&(o=i.areEqual),t.call(this),this._equalityComparer=o;var n=this;n._disposableObjectName=s,n._importEntries(e),n._updateRecursion=0,n._modifiedCount=0,n._version=0}return __extends(e,t),Object.defineProperty(e.prototype,"count",{get:function(){return this.getCount()},enumerable:!0,configurable:!0}),e.prototype.getIsReadOnly=function(){return!1},Object.defineProperty(e.prototype,"isReadOnly",{get:function(){return this.getIsReadOnly()},enumerable:!0,configurable:!0}),e.prototype.assertModifiable=function(){if(this.throwIfDisposed(u),this.getIsReadOnly())throw new r["default"](d)},e.prototype.assertVersion=function(t){if(t!=this._version)throw new r["default"]("Collection was modified.")},e.prototype._onModified=function(){},e.prototype._signalModification=function(t){var e=this;if(t&&e._modifiedCount++,e._modifiedCount&&!this._updateRecursion){e._modifiedCount=0,e._version++;try{e._onModified()}catch(o){console.error(o)}return!0}return!1},e.prototype._incrementModified=function(){this._modifiedCount++},Object.defineProperty(e.prototype,"isUpdating",{get:function(){return 0!=this._updateRecursion},enumerable:!0,configurable:!0}),e.prototype.handleUpdate=function(t){if(!t)return!1;var e=this;e.assertModifiable(),e._updateRecursion++;var o=!1;try{(o=t())&&e._modifiedCount++}finally{e._updateRecursion--}return e._signalModification(),o},e.prototype.add=function(t){var e=this;e.assertModifiable(),e._updateRecursion++;try{e._addInternal(t)&&e._modifiedCount++}finally{e._updateRecursion--}e._signalModification()},e.prototype.remove=function(t,e){void 0===e&&(e=1/0);var o=this;o.assertModifiable(),o._updateRecursion++;var i;try{(i=o._removeInternal(t,e))&&o._modifiedCount++}finally{o._updateRecursion--}return o._signalModification(),i},e.prototype.clear=function(){var t=this;t.assertModifiable(),t._updateRecursion++;var e;try{(e=t._clearInternal())&&t._modifiedCount++}finally{t._updateRecursion--}return t._signalModification(),e},e.prototype._onDispose=function(){t.prototype._onDispose.call(this),this._clearInternal(),this._version=0,this._updateRecursion=0,this._modifiedCount=0},e.prototype._importEntries=function(t){var e=this,i=0;if(t)if(Array.isArray(t))for(var n=0,r=t;n65536?new Array(t):[])},e}(a["default"]);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=f}); +var __extends=this&&this.__extends||function(t,e){function o(){this.constructor=t}for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)};define(["require","exports","./Enumeration/Enumerator","../Compare","../Exceptions/ArgumentNullException","../Exceptions/InvalidOperationException","../Disposable/DisposableBase"],function(t,e,o,i,n,r,a){"use strict";var s="CollectionBase",u="Cannot modify a disposed collection.",p="Cannot modify a read-only collection.",d=function(t){function e(e,o){void 0===o&&(o=i.areEqual),t.call(this),this._equalityComparer=o;var n=this;n._disposableObjectName=s,n._importEntries(e),n._updateRecursion=0,n._modifiedCount=0,n._version=0}return __extends(e,t),Object.defineProperty(e.prototype,"count",{get:function(){return this.getCount()},enumerable:!0,configurable:!0}),e.prototype.getIsReadOnly=function(){return!1},Object.defineProperty(e.prototype,"isReadOnly",{get:function(){return this.getIsReadOnly()},enumerable:!0,configurable:!0}),e.prototype.assertModifiable=function(){if(this.throwIfDisposed(u),this.getIsReadOnly())throw new r.InvalidOperationException(p)},e.prototype.assertVersion=function(t){if(t!=this._version)throw new r.InvalidOperationException("Collection was modified.")},e.prototype._onModified=function(){},e.prototype._signalModification=function(t){var e=this;if(t&&e._modifiedCount++,e._modifiedCount&&!this._updateRecursion){e._modifiedCount=0,e._version++;try{e._onModified()}catch(o){console.error(o)}return!0}return!1},e.prototype._incrementModified=function(){this._modifiedCount++},Object.defineProperty(e.prototype,"isUpdating",{get:function(){return 0!=this._updateRecursion},enumerable:!0,configurable:!0}),e.prototype.handleUpdate=function(t){if(!t)return!1;var e=this;e.assertModifiable(),e._updateRecursion++;var o=!1;try{(o=t())&&e._modifiedCount++}finally{e._updateRecursion--}return e._signalModification(),o},e.prototype.add=function(t){var e=this;e.assertModifiable(),e._updateRecursion++;try{e._addInternal(t)&&e._modifiedCount++}finally{e._updateRecursion--}e._signalModification()},e.prototype.remove=function(t,e){void 0===e&&(e=1/0);var o=this;o.assertModifiable(),o._updateRecursion++;var i;try{(i=o._removeInternal(t,e))&&o._modifiedCount++}finally{o._updateRecursion--}return o._signalModification(),i},e.prototype.clear=function(){var t=this;t.assertModifiable(),t._updateRecursion++;var e;try{(e=t._clearInternal())&&t._modifiedCount++}finally{t._updateRecursion--}return t._signalModification(),e},e.prototype._onDispose=function(){t.prototype._onDispose.call(this),this._clearInternal(),this._version=0,this._updateRecursion=0,this._modifiedCount=0},e.prototype._importEntries=function(t){var e=this,i=0;if(t)if(Array.isArray(t))for(var n=0,r=t;n65536?new Array(t):[])},e}(a.DisposableBase);e.CollectionBase=d,Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=d}); //# sourceMappingURL=CollectionBase.js.map diff --git a/dist/amd/System/Collections/CollectionBase.js.map b/dist/amd/System/Collections/CollectionBase.js.map index 115fa443..1c7c9222 100644 --- a/dist/amd/System/Collections/CollectionBase.js.map +++ b/dist/amd/System/Collections/CollectionBase.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/CollectionBase.js","System/Collections/CollectionBase.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","Enumerator_1","Compare_1","ArgumentNullException_1","InvalidOperationException_1","DisposableBase_1","NAME","CMDC","CMRO","CollectionBase","_super","source","_equalityComparer","areEqual","call","_","_disposableObjectName","_importEntries","_updateRecursion","_modifiedCount","_version","defineProperty","get","getCount","enumerable","configurable","getIsReadOnly","assertModifiable","throwIfDisposed","assertVersion","version","_onModified","_signalModification","increment","ex","console","error","_incrementModified","handleUpdate","closure","updated","add","entry","_addInternal","remove","max","Infinity","n","_removeInternal","clear","_clearInternal","_onDispose","entries","_this","added","Array","isArray","_i","entries_1","length","e","forEach","importEntries","contains","found","equals","action","useCopy","a","toArray","getEnumerator","copyTo","target","index","count","newLength","moveNext","current","value"],"mappings":"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","file":"System/Collections/CollectionBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"./Enumeration/Enumerator\", \"../Compare\", \"../Exceptions/ArgumentNullException\", \"../Exceptions/InvalidOperationException\", \"../Disposable/DisposableBase\"], function (require, exports, Enumerator_1, Compare_1, ArgumentNullException_1, InvalidOperationException_1, DisposableBase_1) {\n \"use strict\";\n var NAME = \"CollectionBase\", CMDC = \"Cannot modify a disposed collection.\", CMRO = \"Cannot modify a read-only collection.\";\n var CollectionBase = (function (_super) {\n __extends(CollectionBase, _super);\n function CollectionBase(source, _equalityComparer) {\n if (_equalityComparer === void 0) { _equalityComparer = Compare_1.areEqual; }\n _super.call(this);\n this._equalityComparer = _equalityComparer;\n var _ = this;\n _._disposableObjectName = NAME;\n _._importEntries(source);\n _._updateRecursion = 0;\n _._modifiedCount = 0;\n _._version = 0;\n }\n Object.defineProperty(CollectionBase.prototype, \"count\", {\n get: function () {\n return this.getCount();\n },\n enumerable: true,\n configurable: true\n });\n CollectionBase.prototype.getIsReadOnly = function () {\n return false;\n };\n Object.defineProperty(CollectionBase.prototype, \"isReadOnly\", {\n get: function () {\n return this.getIsReadOnly();\n },\n enumerable: true,\n configurable: true\n });\n CollectionBase.prototype.assertModifiable = function () {\n this.throwIfDisposed(CMDC);\n if (this.getIsReadOnly())\n throw new InvalidOperationException_1.default(CMRO);\n };\n CollectionBase.prototype.assertVersion = function (version) {\n if (version != this._version)\n throw new InvalidOperationException_1.default(\"Collection was modified.\");\n };\n CollectionBase.prototype._onModified = function () { };\n CollectionBase.prototype._signalModification = function (increment) {\n var _ = this;\n if (increment)\n _._modifiedCount++;\n if (_._modifiedCount && !this._updateRecursion) {\n _._modifiedCount = 0;\n _._version++;\n try {\n _._onModified();\n }\n catch (ex) {\n console.error(ex);\n }\n return true;\n }\n return false;\n };\n CollectionBase.prototype._incrementModified = function () { this._modifiedCount++; };\n Object.defineProperty(CollectionBase.prototype, \"isUpdating\", {\n get: function () { return this._updateRecursion != 0; },\n enumerable: true,\n configurable: true\n });\n CollectionBase.prototype.handleUpdate = function (closure) {\n if (!closure)\n return false;\n var _ = this;\n _.assertModifiable();\n _._updateRecursion++;\n var updated = false;\n try {\n if (updated = closure())\n _._modifiedCount++;\n }\n finally {\n _._updateRecursion--;\n }\n _._signalModification();\n return updated;\n };\n CollectionBase.prototype.add = function (entry) {\n var _ = this;\n _.assertModifiable();\n _._updateRecursion++;\n try {\n if (_._addInternal(entry))\n _._modifiedCount++;\n }\n finally {\n _._updateRecursion--;\n }\n _._signalModification();\n };\n CollectionBase.prototype.remove = function (entry, max) {\n if (max === void 0) { max = Infinity; }\n var _ = this;\n _.assertModifiable();\n _._updateRecursion++;\n var n;\n try {\n if (n = _._removeInternal(entry, max))\n _._modifiedCount++;\n }\n finally {\n _._updateRecursion--;\n }\n _._signalModification();\n return n;\n };\n CollectionBase.prototype.clear = function () {\n var _ = this;\n _.assertModifiable();\n _._updateRecursion++;\n var n;\n try {\n if (n = _._clearInternal())\n _._modifiedCount++;\n }\n finally {\n _._updateRecursion--;\n }\n _._signalModification();\n return n;\n };\n CollectionBase.prototype._onDispose = function () {\n _super.prototype._onDispose.call(this);\n this._clearInternal();\n this._version = 0;\n this._updateRecursion = 0;\n this._modifiedCount = 0;\n };\n CollectionBase.prototype._importEntries = function (entries) {\n var _this = this;\n var added = 0;\n if (entries) {\n if (Array.isArray(entries)) {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var e = entries_1[_i];\n if (this._addInternal(e))\n added++;\n }\n }\n else {\n Enumerator_1.forEach(entries, function (e) {\n if (_this._addInternal(e))\n added++;\n });\n }\n }\n return added;\n };\n CollectionBase.prototype.importEntries = function (entries) {\n var _ = this;\n _.assertModifiable();\n _._updateRecursion++;\n var n;\n try {\n if (n = _._importEntries(entries))\n _._modifiedCount++;\n }\n finally {\n _._updateRecursion--;\n }\n _._signalModification();\n return n;\n };\n CollectionBase.prototype.contains = function (entry) {\n if (!this.getCount())\n return false;\n var found = false, equals = this._equalityComparer;\n this.forEach(function (e) { return !(found = equals(entry, e)); });\n return found;\n };\n CollectionBase.prototype.forEach = function (action, useCopy) {\n if (useCopy) {\n var a = this.toArray();\n Enumerator_1.forEach(a, action);\n a.length = 0;\n }\n else {\n Enumerator_1.forEach(this.getEnumerator(), action);\n }\n };\n CollectionBase.prototype.copyTo = function (target, index) {\n if (index === void 0) { index = 0; }\n if (!target)\n throw new ArgumentNullException_1.default('target');\n var count = this.getCount(), newLength = count + index;\n if (target.length < newLength)\n target.length = newLength;\n var e = this.getEnumerator();\n while (e.moveNext()) {\n target[index++] = e.current;\n }\n return target;\n };\n CollectionBase.prototype.toArray = function () {\n var count = this.getCount();\n return this.copyTo(count > 65536 ? new Array(count) : []);\n };\n return CollectionBase;\n }(DisposableBase_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = CollectionBase;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\nimport {forEach} from \"./Enumeration/Enumerator\";\r\nimport {areEqual} from \"../Compare\";\r\nimport ArgumentNullException from \"../Exceptions/ArgumentNullException\";\r\nimport InvalidOperationException from \"../Exceptions/InvalidOperationException\";\r\nimport DisposableBase from \"../Disposable/DisposableBase\";\r\n\r\n//noinspection SpellCheckingInspection\r\nconst NAME = \"CollectionBase\",\r\n CMDC = \"Cannot modify a disposed collection.\",\r\n CMRO = \"Cannot modify a read-only collection.\";\r\n\r\nabstract class CollectionBase\r\nextends DisposableBase implements ICollection, IEnumerateEach\r\n{\r\n\r\n\tconstructor(\r\n\t\tsource?:IEnumerableOrArray,\r\n\t\tprotected _equalityComparer:EqualityComparison = areEqual)\r\n\t{\r\n\t\tsuper();\r\n\t\tvar _ = this;\r\n\t\t_._disposableObjectName = NAME;\r\n\t\t_._importEntries(source);\r\n\t\t_._updateRecursion = 0;\r\n\t\t_._modifiedCount = 0;\r\n\t\t_._version = 0;\r\n\t}\r\n\r\n\r\n\tprotected abstract getCount():number;\r\n\r\n\tget count():number\r\n\t{\r\n\t\treturn this.getCount();\r\n\t}\r\n\r\n\tprotected getIsReadOnly():boolean\r\n\t{\r\n\t\treturn false;\r\n\t}\r\n\r\n\tget isReadOnly():boolean\r\n\t{\r\n\t\treturn this.getIsReadOnly();\r\n\t}\r\n\r\n\tprotected assertModifiable():void\r\n\t{\r\n\t\tthis.throwIfDisposed(CMDC);\r\n\t\tif(this.getIsReadOnly())\r\n\t\t\tthrow new InvalidOperationException(CMRO);\r\n\t}\r\n\r\n\tprotected _version:number; // Provides an easy means of tracking changes and invalidating enumerables.\r\n\tassertVersion(version:number):void\r\n\t{\r\n\t\tif(version!=this._version)\r\n\t\t\tthrow new InvalidOperationException(\"Collection was modified.\");\r\n\t}\r\n\r\n\t/*\r\n\t * Note: Avoid changing modified count by any means but ++;\r\n\t * If setting modified count by the result of a closure it may be a negative number or NaN and ruin the pattern.\r\n\t */\r\n\tprivate _modifiedCount:number;\r\n\tprivate _updateRecursion:number;\r\n\r\n\tprotected _onModified():void {}\r\n\r\n\tprotected _signalModification(increment?:boolean):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(increment) _._modifiedCount++;\r\n\t\tif(_._modifiedCount && !this._updateRecursion)\r\n\t\t{\r\n\t\t\t_._modifiedCount = 0;\r\n\t\t\t_._version++;\r\n\t\t\ttry {\r\n\t\t\t\t_._onModified();\r\n\t\t\t} catch (ex) {\r\n\t\t\t\t// Avoid fatal errors which may have been caused by consumer.\r\n\t\t\t\tconsole.error(ex);\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tprotected _incrementModified():void { this._modifiedCount++; }\r\n\r\n\tget isUpdating():boolean { return this._updateRecursion!=0; }\r\n\r\n\t/**\r\n\t * Takes a closure that if returning true will propagate an update signal.\r\n\t * Multiple update operations can be occurring at once or recursively and the onModified signal will only occur once they're done.\r\n\t * @param closure\r\n\t * @returns {boolean}\r\n\t */\r\n\thandleUpdate(closure?:() => boolean):boolean\r\n\t{\r\n\t\tif(!closure) return false;\r\n\t\tvar _ = this;\r\n\t\t_.assertModifiable();\r\n\t\t_._updateRecursion++;\r\n\t\tvar updated:boolean = false;\r\n\r\n\t\ttry\r\n\t\t{\r\n\t\t\tif(updated = closure())\r\n\t\t\t\t_._modifiedCount++;\r\n\t\t}\r\n\t\tfinally\r\n\t\t{\r\n\t\t\t_._updateRecursion--;\r\n\t\t}\r\n\r\n\t\t_._signalModification();\r\n\r\n\t\treturn updated;\r\n\t}\r\n\r\n\tprotected abstract _addInternal(entry:T):boolean;\r\n\r\n\t/*\r\n\t * Note: for a slight amount more code, we avoid creating functions/closures.\r\n\t * Calling handleUpdate is the correct pattern, but if possible avoid creating another function scope.\r\n\t */\r\n\r\n\tadd(entry:T):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.assertModifiable();\r\n\t\t_._updateRecursion++;\r\n\r\n\t\ttry\r\n\t\t{ if(_._addInternal(entry)) _._modifiedCount++; }\r\n\t\tfinally\r\n\t\t{ _._updateRecursion--; }\r\n\r\n\t\t_._signalModification();\r\n\t}\r\n\r\n\tprotected abstract _removeInternal(entry:T, max?:number):number;\r\n\r\n\tremove(entry:T, max:number = Infinity):number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.assertModifiable();\r\n\t\t_._updateRecursion++;\r\n\r\n\t\tvar n:number;\r\n\t\ttry\r\n\t\t{ if(n = _._removeInternal(entry, max)) _._modifiedCount++; }\r\n\t\tfinally\r\n\t\t{ _._updateRecursion--; }\r\n\r\n\t\t_._signalModification();\r\n\t\treturn n;\r\n\t}\r\n\r\n\tprotected abstract _clearInternal():number;\r\n\r\n\tclear():number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.assertModifiable();\r\n\t\t_._updateRecursion++;\r\n\r\n\t\tvar n:number;\r\n\t\ttry\r\n\t\t{ if(n = _._clearInternal()) _._modifiedCount++; }\r\n\t\tfinally\r\n\t\t{ _._updateRecursion--; }\r\n\r\n\t\t_._signalModification();\r\n\r\n\t\treturn n;\r\n\t}\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis._clearInternal();\r\n\t\tthis._version = 0;\r\n\t\tthis._updateRecursion = 0;\r\n\t\tthis._modifiedCount = 0;\r\n\t}\r\n\r\n\tprotected _importEntries(entries:IEnumerableOrArray):number\r\n\t{\r\n\t\tvar added = 0;\r\n\t\tif(entries)\r\n\t\t{\r\n\t\t\tif(Array.isArray(entries))\r\n\t\t\t{\r\n\t\t\t\t// Optimize for avoiding a new closure.\r\n\t\t\t\tfor(let e of entries)\r\n\t\t\t\t{\r\n\t\t\t\t\tif(this._addInternal(e)) added++;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tforEach(entries, e=>\r\n\t\t\t\t{\r\n\t\t\t\t\tif(this._addInternal(e)) added++;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn added;\r\n\t}\r\n\r\n\timportEntries(entries:IEnumerableOrArray):number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.assertModifiable();\r\n\t\t_._updateRecursion++;\r\n\r\n\t\tvar n:number;\r\n\t\ttry\r\n\t\t{ if(n = _._importEntries(entries)) _._modifiedCount++; }\r\n\t\tfinally\r\n\t\t{ _._updateRecursion--; }\r\n\r\n\t\t_._signalModification();\r\n\t\treturn n;\r\n\t}\r\n\r\n\t// Fundamentally the most important part of the collection.\r\n\tabstract getEnumerator():IEnumerator;\r\n\r\n\tcontains(entry:T):boolean\r\n\t{\r\n\t\tif(!this.getCount()) return false;\r\n\t\tvar found:boolean = false, equals = this._equalityComparer;\r\n\t\tthis.forEach(e => !(found = equals(entry, e)));\r\n\t\treturn found;\r\n\t}\r\n\r\n\tforEach(action:Predicate|Action, useCopy?:boolean):void\r\n\t{\r\n\t\tif(useCopy)\r\n\t\t{\r\n\t\t\tvar a = this.toArray();\r\n\t\t\tforEach(a, action);\r\n\t\t\ta.length = 0;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tforEach(this.getEnumerator(), action);\r\n\t\t}\r\n\t}\r\n\r\n\tcopyTo>(\r\n\t\ttarget:TTarget,\r\n\t\tindex:number = 0):TTarget\r\n\t{\r\n\t\tif(!target) throw new ArgumentNullException('target');\r\n\r\n\t\tvar count = this.getCount(), newLength = count + index;\r\n\t\tif(target.length65536 ? new Array(count) : []);\r\n\t}\r\n\r\n\r\n}\r\n\r\nexport default CollectionBase;"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/CollectionBase.js","System/Collections/CollectionBase.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","Enumerator_1","Compare_1","ArgumentNullException_1","InvalidOperationException_1","DisposableBase_1","NAME","CMDC","CMRO","CollectionBase","_super","source","_equalityComparer","areEqual","call","_","_disposableObjectName","_importEntries","_updateRecursion","_modifiedCount","_version","defineProperty","get","getCount","enumerable","configurable","getIsReadOnly","assertModifiable","throwIfDisposed","InvalidOperationException","assertVersion","version","_onModified","_signalModification","increment","ex","console","error","_incrementModified","handleUpdate","closure","updated","add","entry","_addInternal","remove","max","Infinity","n","_removeInternal","clear","_clearInternal","_onDispose","entries","_this","added","Array","isArray","_i","entries_1","length","e","forEach","importEntries","contains","found","equals","action","useCopy","a","toArray","getEnumerator","copyTo","target","index","ArgumentNullException","count","newLength","moveNext","current","DisposableBase","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,2BAA4B,aAAc,sCAAuC,0CAA2C,gCAAiC,SAAUC,EAASC,EAASC,EAAcC,EAAWC,EAAyBC,EAA6BC,GAClS,YCQJ,IAAMC,GAAO,iBACPC,EAAO,uCACPC,EAAO,wCAEbC,EAAA,SAAAC,GAIC,QAAAD,GACCE,EACUC,GAAV,SAAAA,IAAAA,EAAAV,EAAAW,UAEAH,EAAAI,KAAA1B,MAFUA,KAAAwB,kBAAAA,CAGV,IAAIG,GAAI3B,IACR2B,GAAEC,sBAAwBV,EAC1BS,EAAEE,eAAeN,GACjBI,EAAEG,iBAAmB,EACrBH,EAAEI,eAAiB,EACnBJ,EAAEK,SAAW,EA+Pf,MA5QQjC,WAAAsB,EAAAC,GAmBPd,OAAAyB,eAAIZ,EAAAd,UAAA,SDhBO2B,ICgBX,WAEC,MAAOlC,MAAKmC,YDfFC,YAAY,EACZC,cAAc,ICiBfhB,EAAAd,UAAA+B,cAAV,WAEC,OAAO,GAGR9B,OAAAyB,eAAIZ,EAAAd,UAAA,cDhBO2B,ICgBX,WAEC,MAAOlC,MAAKsC,iBDfFF,YAAY,EACZC,cAAc,ICiBfhB,EAAAd,UAAAgC,iBAAV,WAGC,GADAvC,KAAKwC,gBAAgBrB,GAClBnB,KAAKsC,gBACP,KAAM,IAAItB,GAAAyB,0BAA0BrB,IAItCC,EAAAd,UAAAmC,cAAA,SAAcC,GAEb,GAAGA,GAAS3C,KAAKgC,SAChB,KAAM,IAAIhB,GAAAyB,0BAA0B,6BAU5BpB,EAAAd,UAAAqC,YAAV,aAEUvB,EAAAd,UAAAsC,oBAAV,SAA8BC,GAE7B,GAAInB,GAAI3B,IAER,IADG8C,GAAWnB,EAAEI,iBACbJ,EAAEI,iBAAmB/B,KAAK8B,iBAC7B,CACCH,EAAEI,eAAiB,EACnBJ,EAAEK,UACF,KAECL,EAAEiB,cAEH,MAAMG,GAGLC,QAAQC,MAAMF,GAEf,OAAO,EAER,OAAO,GAGE1B,EAAAd,UAAA2C,mBAAV,WAAsClD,KAAK+B,kBAE3CvB,OAAAyB,eAAIZ,EAAAd,UAAA,cDjCO2B,ICiCX,WAA2B,MAA8B,IAAvBlC,KAAK8B,kBDhC5BM,YAAY,EACZC,cAAc,ICuCzBhB,EAAAd,UAAA4C,aAAA,SAAaC,GAEZ,IAAIA,EAAS,OAAO,CACpB,IAAIzB,GAAI3B,IACR2B,GAAEY,mBACFZ,EAAEG,kBACF,IAAIuB,IAAkB,CAEtB,MAEIA,EAAUD,MACZzB,EAAEI,iBDrCM,QCyCTJ,EAAEG,mBAKH,MAFAH,GAAEkB,sBAEKQ,GAURhC,EAAAd,UAAA+C,IAAA,SAAIC,GAEH,GAAI5B,GAAI3B,IACR2B,GAAEY,mBACFZ,EAAEG,kBAEF,KACKH,EAAE6B,aAAaD,IAAQ5B,EAAEI,iBDjDpB,QCmDRJ,EAAEG,mBAEJH,EAAEkB,uBAKHxB,EAAAd,UAAAkD,OAAA,SAAOF,EAASG,GAAA,SAAAA,IAAAA,EAAAC,EAAAA,EAEf,IAAIhC,GAAI3B,IACR2B,GAAEY,mBACFZ,EAAEG,kBAEF,IAAI8B,EACJ,MACKA,EAAIjC,EAAEkC,gBAAgBN,EAAOG,KAAM/B,EAAEI,iBDnDhC,QCqDRJ,EAAEG,mBAGJ,MADAH,GAAEkB,sBACKe,GAKRvC,EAAAd,UAAAuD,MAAA,WAEC,GAAInC,GAAI3B,IACR2B,GAAEY,mBACFZ,EAAEG,kBAEF,IAAI8B,EACJ,MACKA,EAAIjC,EAAEoC,mBAAkBpC,EAAEI,iBDtDrB,QCwDRJ,EAAEG,mBAIJ,MAFAH,GAAEkB,sBAEKe,GAGEvC,EAAAd,UAAAyD,WAAV,WAEC1C,EAAAf,UAAMyD,WAAUtC,KAAA1B,MAChBA,KAAK+D,iBACL/D,KAAKgC,SAAW,EAChBhC,KAAK8B,iBAAmB,EACxB9B,KAAK+B,eAAiB,GAGbV,EAAAd,UAAAsB,eAAV,SAAyBoC,GAAzB,GAAAC,GAAAlE,KAEKmE,EAAQ,CACZ,IAAGF,EAEF,GAAGG,MAAMC,QAAQJ,GAGhB,IAAa,GAAAK,GAAA,EAAAC,EAAAN,EAAAK,EAAAC,EAAAC,OAAAF,IAAQ,CAAjB,GAAIG,GAACF,EAAAD,EAELtE,MAAKwD,aAAaiB,IAAIN,QAK1BtD,GAAA6D,QAAQT,EAAS,SAAAQ,GAEbP,EAAKV,aAAaiB,IAAIN,KAI5B,OAAOA,IAGR9C,EAAAd,UAAAoE,cAAA,SAAcV,GAEb,GAAItC,GAAI3B,IACR2B,GAAEY,mBACFZ,EAAEG,kBAEF,IAAI8B,EACJ,MACKA,EAAIjC,EAAEE,eAAeoC,KAAUtC,EAAEI,iBD9D5B,QCgERJ,EAAEG,mBAGJ,MADAH,GAAEkB,sBACKe,GAMRvC,EAAAd,UAAAqE,SAAA,SAASrB,GAER,IAAIvD,KAAKmC,WAAY,OAAO,CAC5B,IAAI0C,IAAgB,EAAOC,EAAS9E,KAAKwB,iBAEzC,OADAxB,MAAK0E,QAAQ,SAAAD,GAAK,QAAEI,EAAQC,EAAOvB,EAAOkB,MACnCI,GAGRxD,EAAAd,UAAAmE,QAAA,SAAQK,EAA+BC,GAEtC,GAAGA,EACH,CACC,GAAIC,GAAIjF,KAAKkF,SACbrE,GAAA6D,QAAQO,EAAGF,GACXE,EAAET,OAAS,MAIX3D,GAAA6D,QAAQ1E,KAAKmF,gBAAiBJ,IAIhC1D,EAAAd,UAAA6E,OAAA,SACCC,EACAC,GAEA,GAFA,SAAAA,IAAAA,EAAA,IAEID,EAAQ,KAAM,IAAItE,GAAAwE,sBAAsB,SAE5C,IAAIC,GAAQxF,KAAKmC,WAAYsD,EAAYD,EAAQF,CAC9CD,GAAOb,OAAOiB,IAAWJ,EAAOb,OAASiB,EAG5C,KADA,GAAIhB,GAAIzE,KAAKmF,gBACPV,EAAEiB,YAEPL,EAAOC,KAAWb,EAAEkB,OAErB,OAAON,IAGRhE,EAAAd,UAAA2E,QAAA,WAEC,GAAIM,GAAQxF,KAAKmC,UACjB,OAAOnC,MAAKoF,OAAOI,EAAM,MAAQ,GAAIpB,OAASoB,QAIhDnE,GA5QQJ,EAAA2E,eADchF,GAAAS,eAAcA,EA+QpCb,OAAAyB,eAAArB,EAAA,cAAAiF,OAAA,ID7EIjF,EAAAA,WC6EWS","file":"System/Collections/CollectionBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"./Enumeration/Enumerator\", \"../Compare\", \"../Exceptions/ArgumentNullException\", \"../Exceptions/InvalidOperationException\", \"../Disposable/DisposableBase\"], function (require, exports, Enumerator_1, Compare_1, ArgumentNullException_1, InvalidOperationException_1, DisposableBase_1) {\n \"use strict\";\n var NAME = \"CollectionBase\", CMDC = \"Cannot modify a disposed collection.\", CMRO = \"Cannot modify a read-only collection.\";\n var CollectionBase = (function (_super) {\n __extends(CollectionBase, _super);\n function CollectionBase(source, _equalityComparer) {\n if (_equalityComparer === void 0) { _equalityComparer = Compare_1.areEqual; }\n _super.call(this);\n this._equalityComparer = _equalityComparer;\n var _ = this;\n _._disposableObjectName = NAME;\n _._importEntries(source);\n _._updateRecursion = 0;\n _._modifiedCount = 0;\n _._version = 0;\n }\n Object.defineProperty(CollectionBase.prototype, \"count\", {\n get: function () {\n return this.getCount();\n },\n enumerable: true,\n configurable: true\n });\n CollectionBase.prototype.getIsReadOnly = function () {\n return false;\n };\n Object.defineProperty(CollectionBase.prototype, \"isReadOnly\", {\n get: function () {\n return this.getIsReadOnly();\n },\n enumerable: true,\n configurable: true\n });\n CollectionBase.prototype.assertModifiable = function () {\n this.throwIfDisposed(CMDC);\n if (this.getIsReadOnly())\n throw new InvalidOperationException_1.InvalidOperationException(CMRO);\n };\n CollectionBase.prototype.assertVersion = function (version) {\n if (version != this._version)\n throw new InvalidOperationException_1.InvalidOperationException(\"Collection was modified.\");\n };\n CollectionBase.prototype._onModified = function () { };\n CollectionBase.prototype._signalModification = function (increment) {\n var _ = this;\n if (increment)\n _._modifiedCount++;\n if (_._modifiedCount && !this._updateRecursion) {\n _._modifiedCount = 0;\n _._version++;\n try {\n _._onModified();\n }\n catch (ex) {\n console.error(ex);\n }\n return true;\n }\n return false;\n };\n CollectionBase.prototype._incrementModified = function () { this._modifiedCount++; };\n Object.defineProperty(CollectionBase.prototype, \"isUpdating\", {\n get: function () { return this._updateRecursion != 0; },\n enumerable: true,\n configurable: true\n });\n CollectionBase.prototype.handleUpdate = function (closure) {\n if (!closure)\n return false;\n var _ = this;\n _.assertModifiable();\n _._updateRecursion++;\n var updated = false;\n try {\n if (updated = closure())\n _._modifiedCount++;\n }\n finally {\n _._updateRecursion--;\n }\n _._signalModification();\n return updated;\n };\n CollectionBase.prototype.add = function (entry) {\n var _ = this;\n _.assertModifiable();\n _._updateRecursion++;\n try {\n if (_._addInternal(entry))\n _._modifiedCount++;\n }\n finally {\n _._updateRecursion--;\n }\n _._signalModification();\n };\n CollectionBase.prototype.remove = function (entry, max) {\n if (max === void 0) { max = Infinity; }\n var _ = this;\n _.assertModifiable();\n _._updateRecursion++;\n var n;\n try {\n if (n = _._removeInternal(entry, max))\n _._modifiedCount++;\n }\n finally {\n _._updateRecursion--;\n }\n _._signalModification();\n return n;\n };\n CollectionBase.prototype.clear = function () {\n var _ = this;\n _.assertModifiable();\n _._updateRecursion++;\n var n;\n try {\n if (n = _._clearInternal())\n _._modifiedCount++;\n }\n finally {\n _._updateRecursion--;\n }\n _._signalModification();\n return n;\n };\n CollectionBase.prototype._onDispose = function () {\n _super.prototype._onDispose.call(this);\n this._clearInternal();\n this._version = 0;\n this._updateRecursion = 0;\n this._modifiedCount = 0;\n };\n CollectionBase.prototype._importEntries = function (entries) {\n var _this = this;\n var added = 0;\n if (entries) {\n if (Array.isArray(entries)) {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var e = entries_1[_i];\n if (this._addInternal(e))\n added++;\n }\n }\n else {\n Enumerator_1.forEach(entries, function (e) {\n if (_this._addInternal(e))\n added++;\n });\n }\n }\n return added;\n };\n CollectionBase.prototype.importEntries = function (entries) {\n var _ = this;\n _.assertModifiable();\n _._updateRecursion++;\n var n;\n try {\n if (n = _._importEntries(entries))\n _._modifiedCount++;\n }\n finally {\n _._updateRecursion--;\n }\n _._signalModification();\n return n;\n };\n CollectionBase.prototype.contains = function (entry) {\n if (!this.getCount())\n return false;\n var found = false, equals = this._equalityComparer;\n this.forEach(function (e) { return !(found = equals(entry, e)); });\n return found;\n };\n CollectionBase.prototype.forEach = function (action, useCopy) {\n if (useCopy) {\n var a = this.toArray();\n Enumerator_1.forEach(a, action);\n a.length = 0;\n }\n else {\n Enumerator_1.forEach(this.getEnumerator(), action);\n }\n };\n CollectionBase.prototype.copyTo = function (target, index) {\n if (index === void 0) { index = 0; }\n if (!target)\n throw new ArgumentNullException_1.ArgumentNullException('target');\n var count = this.getCount(), newLength = count + index;\n if (target.length < newLength)\n target.length = newLength;\n var e = this.getEnumerator();\n while (e.moveNext()) {\n target[index++] = e.current;\n }\n return target;\n };\n CollectionBase.prototype.toArray = function () {\n var count = this.getCount();\n return this.copyTo(count > 65536 ? new Array(count) : []);\n };\n return CollectionBase;\n }(DisposableBase_1.DisposableBase));\n exports.CollectionBase = CollectionBase;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = CollectionBase;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {forEach} from \"./Enumeration/Enumerator\";\r\nimport {areEqual} from \"../Compare\";\r\nimport {ArgumentNullException} from \"../Exceptions/ArgumentNullException\";\r\nimport {InvalidOperationException} from \"../Exceptions/InvalidOperationException\";\r\nimport {DisposableBase} from \"../Disposable/DisposableBase\";\r\nimport {ICollection} from \"./ICollection\";\r\nimport {IEnumerator} from \"./Enumeration/IEnumerator\";\r\nimport {IEnumerateEach} from \"./Enumeration/IEnumerateEach\";\r\nimport {EqualityComparison, Predicate, Action} from \"../FunctionTypes\";\r\nimport {IEnumerableOrArray} from \"./IEnumerableOrArray\";\r\nimport {IArray} from \"./Array/IArray\";\r\n\r\n//noinspection SpellCheckingInspection\r\nconst NAME = \"CollectionBase\",\r\n CMDC = \"Cannot modify a disposed collection.\",\r\n CMRO = \"Cannot modify a read-only collection.\";\r\n\r\nexport abstract class CollectionBase\r\nextends DisposableBase implements ICollection, IEnumerateEach\r\n{\r\n\r\n\tconstructor(\r\n\t\tsource?:IEnumerableOrArray,\r\n\t\tprotected _equalityComparer:EqualityComparison = areEqual)\r\n\t{\r\n\t\tsuper();\r\n\t\tvar _ = this;\r\n\t\t_._disposableObjectName = NAME;\r\n\t\t_._importEntries(source);\r\n\t\t_._updateRecursion = 0;\r\n\t\t_._modifiedCount = 0;\r\n\t\t_._version = 0;\r\n\t}\r\n\r\n\r\n\tprotected abstract getCount():number;\r\n\r\n\tget count():number\r\n\t{\r\n\t\treturn this.getCount();\r\n\t}\r\n\r\n\tprotected getIsReadOnly():boolean\r\n\t{\r\n\t\treturn false;\r\n\t}\r\n\r\n\tget isReadOnly():boolean\r\n\t{\r\n\t\treturn this.getIsReadOnly();\r\n\t}\r\n\r\n\tprotected assertModifiable():void\r\n\t{\r\n\t\tthis.throwIfDisposed(CMDC);\r\n\t\tif(this.getIsReadOnly())\r\n\t\t\tthrow new InvalidOperationException(CMRO);\r\n\t}\r\n\r\n\tprotected _version:number; // Provides an easy means of tracking changes and invalidating enumerables.\r\n\tassertVersion(version:number):void\r\n\t{\r\n\t\tif(version!=this._version)\r\n\t\t\tthrow new InvalidOperationException(\"Collection was modified.\");\r\n\t}\r\n\r\n\t/*\r\n\t * Note: Avoid changing modified count by any means but ++;\r\n\t * If setting modified count by the result of a closure it may be a negative number or NaN and ruin the pattern.\r\n\t */\r\n\tprivate _modifiedCount:number;\r\n\tprivate _updateRecursion:number;\r\n\r\n\tprotected _onModified():void {}\r\n\r\n\tprotected _signalModification(increment?:boolean):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(increment) _._modifiedCount++;\r\n\t\tif(_._modifiedCount && !this._updateRecursion)\r\n\t\t{\r\n\t\t\t_._modifiedCount = 0;\r\n\t\t\t_._version++;\r\n\t\t\ttry\r\n\t\t\t{\r\n\t\t\t\t_._onModified();\r\n\t\t\t}\r\n\t\t\tcatch(ex)\r\n\t\t\t{\r\n\t\t\t\t// Avoid fatal errors which may have been caused by consumer.\r\n\t\t\t\tconsole.error(ex);\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tprotected _incrementModified():void { this._modifiedCount++; }\r\n\r\n\tget isUpdating():boolean { return this._updateRecursion!=0; }\r\n\r\n\t/**\r\n\t * Takes a closure that if returning true will propagate an update signal.\r\n\t * Multiple update operations can be occurring at once or recursively and the onModified signal will only occur once they're done.\r\n\t * @param closure\r\n\t * @returns {boolean}\r\n\t */\r\n\thandleUpdate(closure?:() => boolean):boolean\r\n\t{\r\n\t\tif(!closure) return false;\r\n\t\tvar _ = this;\r\n\t\t_.assertModifiable();\r\n\t\t_._updateRecursion++;\r\n\t\tvar updated:boolean = false;\r\n\r\n\t\ttry\r\n\t\t{\r\n\t\t\tif(updated = closure())\r\n\t\t\t\t_._modifiedCount++;\r\n\t\t}\r\n\t\tfinally\r\n\t\t{\r\n\t\t\t_._updateRecursion--;\r\n\t\t}\r\n\r\n\t\t_._signalModification();\r\n\r\n\t\treturn updated;\r\n\t}\r\n\r\n\tprotected abstract _addInternal(entry:T):boolean;\r\n\r\n\t/*\r\n\t * Note: for a slight amount more code, we avoid creating functions/closures.\r\n\t * Calling handleUpdate is the correct pattern, but if possible avoid creating another function scope.\r\n\t */\r\n\r\n\tadd(entry:T):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.assertModifiable();\r\n\t\t_._updateRecursion++;\r\n\r\n\t\ttry\r\n\t\t{ if(_._addInternal(entry)) _._modifiedCount++; }\r\n\t\tfinally\r\n\t\t{ _._updateRecursion--; }\r\n\r\n\t\t_._signalModification();\r\n\t}\r\n\r\n\tprotected abstract _removeInternal(entry:T, max?:number):number;\r\n\r\n\tremove(entry:T, max:number = Infinity):number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.assertModifiable();\r\n\t\t_._updateRecursion++;\r\n\r\n\t\tvar n:number;\r\n\t\ttry\r\n\t\t{ if(n = _._removeInternal(entry, max)) _._modifiedCount++; }\r\n\t\tfinally\r\n\t\t{ _._updateRecursion--; }\r\n\r\n\t\t_._signalModification();\r\n\t\treturn n;\r\n\t}\r\n\r\n\tprotected abstract _clearInternal():number;\r\n\r\n\tclear():number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.assertModifiable();\r\n\t\t_._updateRecursion++;\r\n\r\n\t\tvar n:number;\r\n\t\ttry\r\n\t\t{ if(n = _._clearInternal()) _._modifiedCount++; }\r\n\t\tfinally\r\n\t\t{ _._updateRecursion--; }\r\n\r\n\t\t_._signalModification();\r\n\r\n\t\treturn n;\r\n\t}\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis._clearInternal();\r\n\t\tthis._version = 0;\r\n\t\tthis._updateRecursion = 0;\r\n\t\tthis._modifiedCount = 0;\r\n\t}\r\n\r\n\tprotected _importEntries(entries:IEnumerableOrArray):number\r\n\t{\r\n\t\tvar added = 0;\r\n\t\tif(entries)\r\n\t\t{\r\n\t\t\tif(Array.isArray(entries))\r\n\t\t\t{\r\n\t\t\t\t// Optimize for avoiding a new closure.\r\n\t\t\t\tfor(let e of entries)\r\n\t\t\t\t{\r\n\t\t\t\t\tif(this._addInternal(e)) added++;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tforEach(entries, e=>\r\n\t\t\t\t{\r\n\t\t\t\t\tif(this._addInternal(e)) added++;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn added;\r\n\t}\r\n\r\n\timportEntries(entries:IEnumerableOrArray):number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.assertModifiable();\r\n\t\t_._updateRecursion++;\r\n\r\n\t\tvar n:number;\r\n\t\ttry\r\n\t\t{ if(n = _._importEntries(entries)) _._modifiedCount++; }\r\n\t\tfinally\r\n\t\t{ _._updateRecursion--; }\r\n\r\n\t\t_._signalModification();\r\n\t\treturn n;\r\n\t}\r\n\r\n\t// Fundamentally the most important part of the collection.\r\n\tabstract getEnumerator():IEnumerator;\r\n\r\n\tcontains(entry:T):boolean\r\n\t{\r\n\t\tif(!this.getCount()) return false;\r\n\t\tvar found:boolean = false, equals = this._equalityComparer;\r\n\t\tthis.forEach(e => !(found = equals(entry, e)));\r\n\t\treturn found;\r\n\t}\r\n\r\n\tforEach(action:Predicate|Action, useCopy?:boolean):void\r\n\t{\r\n\t\tif(useCopy)\r\n\t\t{\r\n\t\t\tvar a = this.toArray();\r\n\t\t\tforEach(a, action);\r\n\t\t\ta.length = 0;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tforEach(this.getEnumerator(), action);\r\n\t\t}\r\n\t}\r\n\r\n\tcopyTo>(\r\n\t\ttarget:TTarget,\r\n\t\tindex:number = 0):TTarget\r\n\t{\r\n\t\tif(!target) throw new ArgumentNullException('target');\r\n\r\n\t\tvar count = this.getCount(), newLength = count + index;\r\n\t\tif(target.length65536 ? new Array(count) : []);\r\n\t}\r\n\r\n\r\n}\r\n\r\nexport default CollectionBase;"]} \ No newline at end of file diff --git a/dist/amd/System/Collections/Dictionaries/Dictionary.d.ts b/dist/amd/System/Collections/Dictionaries/Dictionary.d.ts index 8ce9d526..990f04d1 100644 --- a/dist/amd/System/Collections/Dictionaries/Dictionary.d.ts +++ b/dist/amd/System/Collections/Dictionaries/Dictionary.d.ts @@ -1,14 +1,16 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Original: http://linqjs.codeplex.com/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { IKeyValuePair } from "../../KeyValuePair"; +import { IEnumerator } from "../Enumeration/IEnumerator"; +import { ILinkedNode } from "../ILinkedListNode"; +import { Selector } from "../../FunctionTypes"; import DictionaryBase from "./DictionaryBase"; export interface IHashEntry extends ILinkedNode>, IKeyValuePair { } -export default class Dictionary extends DictionaryBase { +export declare class Dictionary extends DictionaryBase { private _keyComparer; private _entries; private _buckets; @@ -24,3 +26,4 @@ export default class Dictionary extends DictionaryBase\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport {areEqual} from \"../../Compare\";\r\nimport Type from \"../../Types\";\r\nimport Functions from \"../../Functions\";\r\nimport DictionaryBase from \"./DictionaryBase\";\r\nimport EnumeratorBase from \"../Enumeration/EnumeratorBase\";\r\nimport LinkedNodeList from \"../LinkedNodeList\";\r\nimport ObjectPool from \"../../Disposable/ObjectPool\";\r\n\r\nconst VOID0:any = void 0;\r\n\r\n\r\nexport interface IHashEntry\r\nextends ILinkedNode>, IKeyValuePair {\r\n\r\n}\r\n// LinkedList for Dictionary\r\nclass HashEntry\r\nimplements IHashEntry\r\n{\r\n\tconstructor(\r\n\t\tpublic key?:TKey,\r\n\t\tpublic value?:TValue,\r\n\t\tpublic previous?:IHashEntry,\r\n\t\tpublic next?:IHashEntry)\r\n\t{ }\r\n}\r\n\r\n\r\nvar linkedListPool:ObjectPool>;\r\nfunction linkedNodeList():LinkedNodeList;\r\nfunction linkedNodeList(recycle?:LinkedNodeList):void;\r\nfunction linkedNodeList(recycle?:LinkedNodeList):LinkedNodeList {\r\n\tif(!linkedListPool)\r\n\t\tlinkedListPool\r\n\t\t\t= new ObjectPool>(20,()=>new LinkedNodeList());\r\n\tif(!recycle) return linkedListPool.take();\r\n\trecycle.clear();\r\n\tlinkedListPool.add(recycle);\r\n}\r\n\r\n// static utility methods\r\nfunction callHasOwnProperty(target:any, key:string)\r\n{\r\n\treturn Object.prototype.hasOwnProperty.call(target, key);\r\n}\r\n\r\nconst NULL = \"null\", GET_HASH_CODE = \"getHashCode\";\r\nfunction getHashString(obj:any):string\r\n{\r\n\tif(obj===null) return NULL;\r\n\tif(obj===VOID0) return Type.UNDEFINED;\r\n\r\n\t// See IHashable.\r\n\tif(Type.hasMemberOfType(obj, GET_HASH_CODE, Type.FUNCTION))\r\n\t{\r\n\t\treturn obj.getHashCode();\r\n\t}\r\n\r\n\treturn (typeof obj.toString==Type.FUNCTION)\r\n\t\t? obj.toString()\r\n\t\t: Object.prototype.toString.call(obj);\r\n}\r\n\r\n\r\nexport default\r\nclass Dictionary extends DictionaryBase\r\n{\r\n\t// Retains the order...\r\n\tprivate _entries:LinkedNodeList>;\r\n\tprivate _buckets:IMap>>>;\r\n\r\n\tconstructor(\r\n\t\tprivate _keyComparer:Selector = Functions.Identity)\r\n\t{\r\n\t\tsuper();\r\n\t\tthis._entries = linkedNodeList();\r\n\t\tthis._buckets = {};\r\n\t}\r\n\r\n\tprotected getCount():number\r\n\t{\r\n\t\treturn this._entries.unsafeCount;\r\n\t}\r\n\r\n\r\n\tprivate _getBucket(\r\n\t\thash:string,\r\n\t\tcreateIfMissing?:boolean):LinkedNodeList>>\r\n\t{\r\n\t\tif(hash===null || hash===VOID0 || !createIfMissing && !this.getCount())\r\n\t\t\treturn null;\r\n\r\n\t\tvar buckets = this._buckets;\r\n\t\tvar bucket = callHasOwnProperty(buckets, hash) ? buckets[hash] : VOID0;\r\n\r\n\t\tif(createIfMissing && !bucket)\r\n\t\t\tbuckets[hash]\r\n\t\t\t\t= bucket\r\n\t\t\t\t= linkedNodeList();\r\n\r\n\t\treturn bucket;\r\n\t}\r\n\r\n\tprivate _getBucketEntry(\r\n\t\tkey:TKey,\r\n\t\thash?:string,\r\n\t\tbucket?:LinkedNodeList>>):IHashEntry>\r\n\t{\r\n\t\tif(key===null || key===VOID0 || !this.getCount())\r\n\t\t\treturn null;\r\n\r\n\t\tvar _ = this,\r\n\t\t comparer = _._keyComparer,\r\n\t\t compareKey = comparer(key);\r\n\r\n\t\tif(!bucket) bucket = _._getBucket(hash || getHashString(compareKey));\r\n\r\n\t\treturn bucket && bucket\r\n\t\t\t\t.find(e=>comparer(e.key)===compareKey);\r\n\t}\r\n\r\n\tprotected _getEntry(key:TKey):IHashEntry\r\n\t{\r\n\t\tvar e = this._getBucketEntry(key);\r\n\t\treturn e && e.value;\r\n\t}\r\n\r\n\tgetValue(key:TKey):TValue\r\n\t{\r\n\t\tvar e = this._getEntry(key);\r\n\t\treturn e ? e.value : VOID0;\r\n\t}\r\n\r\n\tprotected _setValueInternal(key:TKey, value:TValue):boolean\r\n\t{\r\n\t\tvar _ = this,\r\n\t\t buckets = _._buckets,\r\n\t\t entries = _._entries,\r\n\t\t comparer = _._keyComparer,\r\n\t\t compareKey = comparer(key),\r\n\t\t hash = getHashString(compareKey),\r\n\t\t bucket = _._getBucket(hash),\r\n\t\t bucketEntry = bucket && _._getBucketEntry(key, hash, bucket);\r\n\r\n\t\t// Entry exits? Delete or update\r\n\t\tif(bucketEntry)\r\n\t\t{\r\n\t\t\tif(value===VOID0)\r\n\t\t\t{\r\n\t\t\t\tlet x = bucket.removeNode(bucketEntry),\r\n\t\t\t\t y = entries.removeNode(bucketEntry.value);\r\n\r\n\t\t\t\tif(x && !bucket.count) {\r\n\t\t\t\t\tdelete buckets[hash];\r\n\t\t\t\t\tlinkedNodeList(bucket);\r\n\t\t\t\t\tbucket = null;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(x!==y) throw \"Entries and buckets are out of sync.\";\r\n\r\n\t\t\t\tif(x) return true;\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\t// We don't expose the internal hash entries so replacing the value is ok.\r\n\t\t\t\tvar old = bucketEntry.value.value;\r\n\t\t\t\tbucketEntry.value.value = value;\r\n\t\t\t\treturn !areEqual(value, old);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\telse if(value!==VOID0)\r\n\t\t{\r\n\t\t\tif(!bucket) bucket = _._getBucket(hash, true);\r\n\t\t\tlet entry = new HashEntry(key, value);\r\n\t\t\tentries.addNode(entry);\r\n\t\t\tbucket.addNode(new HashEntry(key, entry));\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\tprotected _clearInternal():number\r\n\t{\r\n\t\tvar _ = this, buckets = _._buckets;\r\n\r\n\t\t// Ensure reset and clean...\r\n\t\tfor(let key in buckets)\r\n\t\t{\r\n\t\t\tif(buckets.hasOwnProperty(key))\r\n\t\t\t{\r\n\t\t\t\tlet bucket = buckets[key];\r\n\t\t\t\tdelete buckets[key];\r\n\t\t\t\tlinkedNodeList(bucket);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn _._entries.clear();\r\n\t}\r\n\r\n\t/*\r\n\t * Note: super.getEnumerator() works perfectly well,\r\n\t * but enumerating the internal linked node list is much more efficient.\r\n\t */\r\n\tgetEnumerator():IEnumerator>\r\n\t{\r\n\t\tvar _ = this, ver:number, currentEntry:IHashEntry;\r\n\r\n\t\treturn new EnumeratorBase>(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tver = _._version;\r\n\t\t\t\tcurrentEntry = _._entries.first;\r\n\t\t\t},\r\n\t\t\t(yielder) =>\r\n\t\t\t{\r\n\t\t\t\tif(currentEntry!=null)\r\n\t\t\t\t{\r\n\t\t\t\t\t_.assertVersion(ver);\r\n\t\t\t\t\tvar result = {key: currentEntry.key, value: currentEntry.value};\r\n\t\t\t\t\tcurrentEntry = currentEntry.next;\r\n\t\t\t\t\treturn yielder.yieldReturn(result);\r\n\t\t\t\t}\r\n\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tprotected getKeys():TKey[]\r\n\t{\r\n\t\tvar _ = this, result:TKey[] = [];\r\n\t\tvar e = _._entries.first;\r\n\t\twhile(e)\r\n\t\t{\r\n\t\t\tresult.push(e.key);\r\n\t\t\te = e.next;\r\n\t\t}\r\n\t\treturn result;\r\n\t}\r\n\r\n\tprotected getValues():TValue[]\r\n\t{\r\n\t\tvar _ = this, result:TValue[] = [];\r\n\t\tvar e = _._entries.first;\r\n\t\twhile(e)\r\n\t\t{\r\n\t\t\tresult.push(e.value);\r\n\t\t\te = e.next;\r\n\t\t}\r\n\t\treturn result;\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Dictionaries/Dictionary.js","System/Collections/Dictionaries/Dictionary.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","Compare_1","Types_1","Functions_1","EnumeratorBase_1","LinkedNodeList_1","ObjectPool_1","DictionaryBase_1","linkedNodeList","recycle","linkedListPool","ObjectPool","LinkedNodeList","clear","add","take","callHasOwnProperty","target","key","call","getHashString","obj","NULL","VOID0","Type","UNDEFINED","hasMemberOfType","GET_HASH_CODE","FUNCTION","getHashCode","toString","HashEntry","value","previous","next","Dictionary","_super","_keyComparer","Functions","Identity","_entries","_buckets","getCount","unsafeCount","_getBucket","hash","createIfMissing","buckets","bucket","_getBucketEntry","_","comparer","compareKey","find","e","_getEntry","getValue","_setValueInternal","entries","bucketEntry","old","areEqual","x","removeNode","y","count","entry","addNode","_clearInternal","getEnumerator","ver","currentEntry","EnumeratorBase","_version","first","yielder","assertVersion","result","yieldReturn","yieldBreak","getKeys","push","getValues","defineProperty"],"mappings":";;;;;AAKA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,gBAAiB,cAAe,kBAAmB,gCAAiC,oBAAqB,8BAA+B,oBAAqB,SAAUC,EAASC,EAASC,EAAWC,EAASC,EAAaC,EAAkBC,EAAkBC,EAAcC,GACtS,YCgCJ,SAAAC,GAAwBC,GAKvB,MAHIC,KACHA,EACG,GAAIJ,GAAAK,WAAgC,GAAI,WAAI,MAAA,IAAIN,GAAAO,kBAChDH,GACJA,EAAQI,YACRH,GAAeI,IAAIL,IAFCC,EAAeK,OAMpC,QAAAC,GAA4BC,EAAYC,GAEvC,MAAOtB,QAAOD,UAAUD,eAAeyB,KAAKF,EAAQC,GAIrD,QAAAE,GAAuBC,GAEtB,MAAS,QAANA,EAAmBC,EACnBD,IAAME,EAAcrB,EAAAsB,KAAKC,UAGzBvB,EAAAsB,KAAKE,gBAAgBL,EAAKM,EAAezB,EAAAsB,KAAKI,UAEzCP,EAAIQ,oBAGGR,GAAIS,UAAU5B,EAAAsB,KAAKI,SAC/BP,EAAIS,WACJlC,OAAOD,UAAUmC,SAASX,KAAKE,GAtDnC,GAqBIX,GArBEa,EAAY,OASlBQ,EAAA,WAGC,QAAAA,GACQb,EACAc,EACAC,EACAC,GAHA9C,KAAA8B,IAAAA,EACA9B,KAAA4C,MAAAA,EACA5C,KAAA6C,SAAAA,EACA7C,KAAA8C,KAAAA,EAET,MAAAH,MAsBMT,EAAO,OAAQK,EAAgB,cAkBrCQ,EAAA,SAAAC,GAMC,QAAAD,GACSE,GAAR,SAAAA,IAAAA,EAA0ClC,EAAAmC,UAAUC,UAEpDH,EAAAjB,KAAA/B,MAFQA,KAAAiD,aAAAA,EAGRjD,KAAKoD,SAAWhC,IAChBpB,KAAKqD,YAmLP,MA9L8CtD,WAAAgD,EAAAC,GAcnCD,EAAAxC,UAAA+C,SAAV,WAEC,MAAOtD,MAAKoD,SAASG,aAIdR,EAAAxC,UAAAiD,WAAR,SACCC,EACAC,GAEA,GAAU,OAAPD,GAAeA,IAAOtB,IAAUuB,IAAoB1D,KAAKsD,WAC3D,MAAO,KAER,IAAIK,GAAU3D,KAAKqD,SACfO,EAAShC,EAAmB+B,EAASF,GAAQE,EAAQF,GAAQtB,CAOjE,OALGuB,KAAoBE,IACtBD,EAAQF,GACLG,EACAxC,KAEGwC,GAGAb,EAAAxC,UAAAsD,gBAAR,SACC/B,EACA2B,EACAG,GAEA,GAAS,OAAN9B,GAAcA,IAAMK,IAAUnC,KAAKsD,WACrC,MAAO,KAER,IAAIQ,GAAa9D,KACb+D,EAAaD,EAAEb,aACfe,EAAaD,EAASjC,EAI1B,OAFI8B,KAAQA,EAASE,EAAEN,WAAWC,GAAQzB,EAAcgC,KAEjDJ,GAAUA,EACdK,KAAK,SAAAC,GAAG,MAAAH,GAASG,EAAEpC,OAAOkC,KAGpBjB,EAAAxC,UAAA4D,UAAV,SAAoBrC,GAEnB,GAAIoC,GAAIlE,KAAK6D,gBAAgB/B,EAC7B,OAAOoC,IAAKA,EAAEtB,OAGfG,EAAAxC,UAAA6D,SAAA,SAAStC,GAER,GAAIoC,GAAIlE,KAAKmE,UAAUrC,EACvB,OAAOoC,GAAIA,EAAEtB,MAAQT,GAGZY,EAAAxC,UAAA8D,kBAAV,SAA4BvC,EAAUc,GAErC,GAAIkB,GAAc9D,KACd2D,EAAcG,EAAET,SAChBiB,EAAcR,EAAEV,SAChBW,EAAcD,EAAEb,aAChBe,EAAcD,EAASjC,GACvB2B,EAAczB,EAAcgC,GAC5BJ,EAAcE,EAAEN,WAAWC,GAC3Bc,EAAcX,GAAUE,EAAED,gBAAgB/B,EAAK2B,EAAMG,EAGzD,IAAGW,EACH,CACC,GAAG3B,IAAQT,EAiBX,CAEC,GAAIqC,GAAMD,EAAY3B,MAAMA,KAE5B,OADA2B,GAAY3B,MAAMA,MAAQA,GAClB/B,EAAA4D,SAAS7B,EAAO4B,GAnBxB,GAAIE,GAAId,EAAOe,WAAWJ,GACtBK,EAAIN,EAAQK,WAAWJ,EAAY3B,MASvC,IAPG8B,IAAMd,EAAOiB,cAERlB,GAAQF,GACfrC,EAAewC,GACfA,EAAS,MAGPc,IAAIE,EAAG,KAAM,sCAEhB,IAAGF,EAAG,OAAO,MAWV,IAAG9B,IAAQT,EAChB,CACKyB,IAAQA,EAASE,EAAEN,WAAWC,GAAM,GACxC,IAAIqB,GAAQ,GAAInC,GAAUb,EAAKc,EAG/B,OAFA0B,GAAQS,QAAQD,GAChBlB,EAAOmB,QAAQ,GAAIpC,GAAUb,EAAKgD,KAC3B,EAGR,OAAO,GAGE/B,EAAAxC,UAAAyE,eAAV,WAEC,GAAIlB,GAAI9D,KAAM2D,EAAUG,EAAET,QAG1B,KAAI,GAAIvB,KAAO6B,GAEd,GAAGA,EAAQrD,eAAewB,GAC1B,CACC,GAAI8B,GAASD,EAAQ7B,SACd6B,GAAQ7B,GACfV,EAAewC,GAIjB,MAAOE,GAAEV,SAAS3B,SAOnBsB,EAAAxC,UAAA0E,cAAA,WAEC,GAAcC,GAAYC,EAAtBrB,EAAI9D,IAER,OAAO,IAAIgB,GAAAoE,eACV,WAECF,EAAMpB,EAAEuB,SACRF,EAAerB,EAAEV,SAASkC,OAE3B,SAACC,GAEA,GAAiB,MAAdJ,EACH,CACCrB,EAAE0B,cAAcN,EAChB,IAAIO,IAAU3D,IAAKqD,EAAarD,IAAKc,MAAOuC,EAAavC,MAEzD,OADAuC,GAAeA,EAAarC,KACrByC,EAAQG,YAAYD,GAE5B,MAAOF,GAAQI,gBAMR5C,EAAAxC,UAAAqF,QAAV,WAIC,IAFA,GAAI9B,GAAI9D,KAAMyF,KACVvB,EAAIJ,EAAEV,SAASkC,MACbpB,GAELuB,EAAOI,KAAK3B,EAAEpC,KACdoC,EAAIA,EAAEpB,IAEP,OAAO2C,IAGE1C,EAAAxC,UAAAuF,UAAV,WAIC,IAFA,GAAIhC,GAAI9D,KAAMyF,KACVvB,EAAIJ,EAAEV,SAASkC,MACbpB,GAELuB,EAAOI,KAAK3B,EAAEtB,OACdsB,EAAIA,EAAEpB,IAEP,OAAO2C,IAGT1C,GA9L8C5B,EAAAA,WAAjCP,GAAAmC,WAAUA,EAgMvBvC,OAAAuF,eAAAnF,EAAA,cAAAgC,OAAA,IDtGIhC,EAAAA,WCsGWmC","file":"System/Collections/Dictionaries/Dictionary.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Original: http://linqjs.codeplex.com/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"../../Compare\", \"../../Types\", \"../../Functions\", \"../Enumeration/EnumeratorBase\", \"../LinkedNodeList\", \"../../Disposable/ObjectPool\", \"./DictionaryBase\"], function (require, exports, Compare_1, Types_1, Functions_1, EnumeratorBase_1, LinkedNodeList_1, ObjectPool_1, DictionaryBase_1) {\n \"use strict\";\n var VOID0 = void 0;\n var HashEntry = (function () {\n function HashEntry(key, value, previous, next) {\n this.key = key;\n this.value = value;\n this.previous = previous;\n this.next = next;\n }\n return HashEntry;\n }());\n var linkedListPool;\n function linkedNodeList(recycle) {\n if (!linkedListPool)\n linkedListPool\n = new ObjectPool_1.ObjectPool(20, function () { return new LinkedNodeList_1.LinkedNodeList(); });\n if (!recycle)\n return linkedListPool.take();\n recycle.clear();\n linkedListPool.add(recycle);\n }\n function callHasOwnProperty(target, key) {\n return Object.prototype.hasOwnProperty.call(target, key);\n }\n var NULL = \"null\", GET_HASH_CODE = \"getHashCode\";\n function getHashString(obj) {\n if (obj === null)\n return NULL;\n if (obj === VOID0)\n return Types_1.Type.UNDEFINED;\n if (Types_1.Type.hasMemberOfType(obj, GET_HASH_CODE, Types_1.Type.FUNCTION)) {\n return obj.getHashCode();\n }\n return (typeof obj.toString == Types_1.Type.FUNCTION)\n ? obj.toString()\n : Object.prototype.toString.call(obj);\n }\n var Dictionary = (function (_super) {\n __extends(Dictionary, _super);\n function Dictionary(_keyComparer) {\n if (_keyComparer === void 0) { _keyComparer = Functions_1.Functions.Identity; }\n _super.call(this);\n this._keyComparer = _keyComparer;\n this._entries = linkedNodeList();\n this._buckets = {};\n }\n Dictionary.prototype.getCount = function () {\n return this._entries.unsafeCount;\n };\n Dictionary.prototype._getBucket = function (hash, createIfMissing) {\n if (hash === null || hash === VOID0 || !createIfMissing && !this.getCount())\n return null;\n var buckets = this._buckets;\n var bucket = callHasOwnProperty(buckets, hash) ? buckets[hash] : VOID0;\n if (createIfMissing && !bucket)\n buckets[hash]\n = bucket\n = linkedNodeList();\n return bucket;\n };\n Dictionary.prototype._getBucketEntry = function (key, hash, bucket) {\n if (key === null || key === VOID0 || !this.getCount())\n return null;\n var _ = this, comparer = _._keyComparer, compareKey = comparer(key);\n if (!bucket)\n bucket = _._getBucket(hash || getHashString(compareKey));\n return bucket && bucket\n .find(function (e) { return comparer(e.key) === compareKey; });\n };\n Dictionary.prototype._getEntry = function (key) {\n var e = this._getBucketEntry(key);\n return e && e.value;\n };\n Dictionary.prototype.getValue = function (key) {\n var e = this._getEntry(key);\n return e ? e.value : VOID0;\n };\n Dictionary.prototype._setValueInternal = function (key, value) {\n var _ = this, buckets = _._buckets, entries = _._entries, comparer = _._keyComparer, compareKey = comparer(key), hash = getHashString(compareKey), bucket = _._getBucket(hash), bucketEntry = bucket && _._getBucketEntry(key, hash, bucket);\n if (bucketEntry) {\n if (value === VOID0) {\n var x = bucket.removeNode(bucketEntry), y = entries.removeNode(bucketEntry.value);\n if (x && !bucket.count) {\n delete buckets[hash];\n linkedNodeList(bucket);\n bucket = null;\n }\n if (x !== y)\n throw \"Entries and buckets are out of sync.\";\n if (x)\n return true;\n }\n else {\n var old = bucketEntry.value.value;\n bucketEntry.value.value = value;\n return !Compare_1.areEqual(value, old);\n }\n }\n else if (value !== VOID0) {\n if (!bucket)\n bucket = _._getBucket(hash, true);\n var entry = new HashEntry(key, value);\n entries.addNode(entry);\n bucket.addNode(new HashEntry(key, entry));\n return true;\n }\n return false;\n };\n Dictionary.prototype._clearInternal = function () {\n var _ = this, buckets = _._buckets;\n for (var key in buckets) {\n if (buckets.hasOwnProperty(key)) {\n var bucket = buckets[key];\n delete buckets[key];\n linkedNodeList(bucket);\n }\n }\n return _._entries.clear();\n };\n Dictionary.prototype.getEnumerator = function () {\n var _ = this, ver, currentEntry;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n ver = _._version;\n currentEntry = _._entries.first;\n }, function (yielder) {\n if (currentEntry != null) {\n _.assertVersion(ver);\n var result = { key: currentEntry.key, value: currentEntry.value };\n currentEntry = currentEntry.next;\n return yielder.yieldReturn(result);\n }\n return yielder.yieldBreak();\n });\n };\n Dictionary.prototype.getKeys = function () {\n var _ = this, result = [];\n var e = _._entries.first;\n while (e) {\n result.push(e.key);\n e = e.next;\n }\n return result;\n };\n Dictionary.prototype.getValues = function () {\n var _ = this, result = [];\n var e = _._entries.first;\n while (e) {\n result.push(e.value);\n e = e.next;\n }\n return result;\n };\n return Dictionary;\n }(DictionaryBase_1.default));\n exports.Dictionary = Dictionary;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Dictionary;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Original: http://linqjs.codeplex.com/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {areEqual} from \"../../Compare\";\r\nimport {Type} from \"../../Types\";\r\nimport {Functions} from \"../../Functions\";\r\nimport {EnumeratorBase} from \"../Enumeration/EnumeratorBase\";\r\nimport {LinkedNodeList} from \"../LinkedNodeList\";\r\nimport {ObjectPool} from \"../../Disposable/ObjectPool\";\r\nimport {IMap} from \"./IDictionary\";\r\nimport {IKeyValuePair} from \"../../KeyValuePair\";\r\nimport {IEnumerator} from \"../Enumeration/IEnumerator\";\r\nimport {ILinkedNode} from \"../ILinkedListNode\";\r\nimport {Selector} from \"../../FunctionTypes\";\r\nimport DictionaryBase from \"./DictionaryBase\";\r\n\r\nconst VOID0:any = void 0;\r\n\r\n\r\nexport interface IHashEntry\r\nextends ILinkedNode>, IKeyValuePair\r\n{\r\n\r\n}\r\n// LinkedList for Dictionary\r\nclass HashEntry\r\nimplements IHashEntry\r\n{\r\n\tconstructor(\r\n\t\tpublic key?:TKey,\r\n\t\tpublic value?:TValue,\r\n\t\tpublic previous?:IHashEntry,\r\n\t\tpublic next?:IHashEntry)\r\n\t{ }\r\n}\r\n\r\n\r\nvar linkedListPool:ObjectPool>;\r\nfunction linkedNodeList():LinkedNodeList;\r\nfunction linkedNodeList(recycle?:LinkedNodeList):void;\r\nfunction linkedNodeList(recycle?:LinkedNodeList):LinkedNodeList\r\n{\r\n\tif(!linkedListPool)\r\n\t\tlinkedListPool\r\n\t\t\t= new ObjectPool>(20, ()=>new LinkedNodeList());\r\n\tif(!recycle) return linkedListPool.take();\r\n\trecycle.clear();\r\n\tlinkedListPool.add(recycle);\r\n}\r\n\r\n// static utility methods\r\nfunction callHasOwnProperty(target:any, key:string)\r\n{\r\n\treturn Object.prototype.hasOwnProperty.call(target, key);\r\n}\r\n\r\nconst NULL = \"null\", GET_HASH_CODE = \"getHashCode\";\r\nfunction getHashString(obj:any):string\r\n{\r\n\tif(obj===null) return NULL;\r\n\tif(obj===VOID0) return Type.UNDEFINED;\r\n\r\n\t// See IHashable.\r\n\tif(Type.hasMemberOfType(obj, GET_HASH_CODE, Type.FUNCTION))\r\n\t{\r\n\t\treturn obj.getHashCode();\r\n\t}\r\n\r\n\treturn (typeof obj.toString==Type.FUNCTION)\r\n\t\t? obj.toString()\r\n\t\t: Object.prototype.toString.call(obj);\r\n}\r\n\r\n\r\nexport class Dictionary extends DictionaryBase\r\n{\r\n\t// Retains the order...\r\n\tprivate _entries:LinkedNodeList>;\r\n\tprivate _buckets:IMap>>>;\r\n\r\n\tconstructor(\r\n\t\tprivate _keyComparer:Selector = Functions.Identity)\r\n\t{\r\n\t\tsuper();\r\n\t\tthis._entries = linkedNodeList();\r\n\t\tthis._buckets = {};\r\n\t}\r\n\r\n\tprotected getCount():number\r\n\t{\r\n\t\treturn this._entries.unsafeCount;\r\n\t}\r\n\r\n\r\n\tprivate _getBucket(\r\n\t\thash:string,\r\n\t\tcreateIfMissing?:boolean):LinkedNodeList>>\r\n\t{\r\n\t\tif(hash===null || hash===VOID0 || !createIfMissing && !this.getCount())\r\n\t\t\treturn null;\r\n\r\n\t\tvar buckets = this._buckets;\r\n\t\tvar bucket = callHasOwnProperty(buckets, hash) ? buckets[hash] : VOID0;\r\n\r\n\t\tif(createIfMissing && !bucket)\r\n\t\t\tbuckets[hash]\r\n\t\t\t\t= bucket\r\n\t\t\t\t= linkedNodeList();\r\n\r\n\t\treturn bucket;\r\n\t}\r\n\r\n\tprivate _getBucketEntry(\r\n\t\tkey:TKey,\r\n\t\thash?:string,\r\n\t\tbucket?:LinkedNodeList>>):IHashEntry>\r\n\t{\r\n\t\tif(key===null || key===VOID0 || !this.getCount())\r\n\t\t\treturn null;\r\n\r\n\t\tvar _ = this,\r\n\t\t comparer = _._keyComparer,\r\n\t\t compareKey = comparer(key);\r\n\r\n\t\tif(!bucket) bucket = _._getBucket(hash || getHashString(compareKey));\r\n\r\n\t\treturn bucket && bucket\r\n\t\t\t\t.find(e=>comparer(e.key)===compareKey);\r\n\t}\r\n\r\n\tprotected _getEntry(key:TKey):IHashEntry\r\n\t{\r\n\t\tvar e = this._getBucketEntry(key);\r\n\t\treturn e && e.value;\r\n\t}\r\n\r\n\tgetValue(key:TKey):TValue\r\n\t{\r\n\t\tvar e = this._getEntry(key);\r\n\t\treturn e ? e.value : VOID0;\r\n\t}\r\n\r\n\tprotected _setValueInternal(key:TKey, value:TValue):boolean\r\n\t{\r\n\t\tvar _ = this,\r\n\t\t buckets = _._buckets,\r\n\t\t entries = _._entries,\r\n\t\t comparer = _._keyComparer,\r\n\t\t compareKey = comparer(key),\r\n\t\t hash = getHashString(compareKey),\r\n\t\t bucket = _._getBucket(hash),\r\n\t\t bucketEntry = bucket && _._getBucketEntry(key, hash, bucket);\r\n\r\n\t\t// Entry exits? Delete or update\r\n\t\tif(bucketEntry)\r\n\t\t{\r\n\t\t\tif(value===VOID0)\r\n\t\t\t{\r\n\t\t\t\tlet x = bucket.removeNode(bucketEntry),\r\n\t\t\t\t y = entries.removeNode(bucketEntry.value);\r\n\r\n\t\t\t\tif(x && !bucket.count)\r\n\t\t\t\t{\r\n\t\t\t\t\tdelete buckets[hash];\r\n\t\t\t\t\tlinkedNodeList(bucket);\r\n\t\t\t\t\tbucket = null;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(x!==y) throw \"Entries and buckets are out of sync.\";\r\n\r\n\t\t\t\tif(x) return true;\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\t// We don't expose the internal hash entries so replacing the value is ok.\r\n\t\t\t\tvar old = bucketEntry.value.value;\r\n\t\t\t\tbucketEntry.value.value = value;\r\n\t\t\t\treturn !areEqual(value, old);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\telse if(value!==VOID0)\r\n\t\t{\r\n\t\t\tif(!bucket) bucket = _._getBucket(hash, true);\r\n\t\t\tlet entry = new HashEntry(key, value);\r\n\t\t\tentries.addNode(entry);\r\n\t\t\tbucket.addNode(new HashEntry(key, entry));\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\tprotected _clearInternal():number\r\n\t{\r\n\t\tvar _ = this, buckets = _._buckets;\r\n\r\n\t\t// Ensure reset and clean...\r\n\t\tfor(let key in buckets)\r\n\t\t{\r\n\t\t\tif(buckets.hasOwnProperty(key))\r\n\t\t\t{\r\n\t\t\t\tlet bucket = buckets[key];\r\n\t\t\t\tdelete buckets[key];\r\n\t\t\t\tlinkedNodeList(bucket);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn _._entries.clear();\r\n\t}\r\n\r\n\t/*\r\n\t * Note: super.getEnumerator() works perfectly well,\r\n\t * but enumerating the internal linked node list is much more efficient.\r\n\t */\r\n\tgetEnumerator():IEnumerator>\r\n\t{\r\n\t\tvar _ = this, ver:number, currentEntry:IHashEntry;\r\n\r\n\t\treturn new EnumeratorBase>(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tver = _._version;\r\n\t\t\t\tcurrentEntry = _._entries.first;\r\n\t\t\t},\r\n\t\t\t(yielder) =>\r\n\t\t\t{\r\n\t\t\t\tif(currentEntry!=null)\r\n\t\t\t\t{\r\n\t\t\t\t\t_.assertVersion(ver);\r\n\t\t\t\t\tvar result = {key: currentEntry.key, value: currentEntry.value};\r\n\t\t\t\t\tcurrentEntry = currentEntry.next;\r\n\t\t\t\t\treturn yielder.yieldReturn(result);\r\n\t\t\t\t}\r\n\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tprotected getKeys():TKey[]\r\n\t{\r\n\t\tvar _ = this, result:TKey[] = [];\r\n\t\tvar e = _._entries.first;\r\n\t\twhile(e)\r\n\t\t{\r\n\t\t\tresult.push(e.key);\r\n\t\t\te = e.next;\r\n\t\t}\r\n\t\treturn result;\r\n\t}\r\n\r\n\tprotected getValues():TValue[]\r\n\t{\r\n\t\tvar _ = this, result:TValue[] = [];\r\n\t\tvar e = _._entries.first;\r\n\t\twhile(e)\r\n\t\t{\r\n\t\t\tresult.push(e.value);\r\n\t\t\te = e.next;\r\n\t\t}\r\n\t\treturn result;\r\n\t}\r\n\r\n}\r\n\r\nexport default Dictionary;"]} \ No newline at end of file diff --git a/dist/amd/System/Collections/Dictionaries/DictionaryBase.d.ts b/dist/amd/System/Collections/Dictionaries/DictionaryBase.d.ts index f931e1a7..e242d770 100644 --- a/dist/amd/System/Collections/Dictionaries/DictionaryBase.d.ts +++ b/dist/amd/System/Collections/Dictionaries/DictionaryBase.d.ts @@ -1,10 +1,13 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import CollectionBase from "../CollectionBase"; -declare abstract class DictionaryBase extends CollectionBase> implements IDictionary { +import { CollectionBase } from "../CollectionBase"; +import { IKeyValuePair, KeyValuePair } from "../../KeyValuePair"; +import { IDictionary } from "./IDictionary"; +import { IEnumerator } from "../Enumeration/IEnumerator"; +import { IEnumerableOrArray } from "../IEnumerableOrArray"; +export declare abstract class DictionaryBase extends CollectionBase> implements IDictionary { constructor(source?: IEnumerableOrArray>); protected _onValueModified(key: TKey, value: TValue, old: TValue): void; protected _addInternal(item: KeyValuePair): boolean; diff --git a/dist/amd/System/Collections/Dictionaries/DictionaryBase.js b/dist/amd/System/Collections/Dictionaries/DictionaryBase.js index 88068a65..45d57bd9 100644 --- a/dist/amd/System/Collections/Dictionaries/DictionaryBase.js +++ b/dist/amd/System/Collections/Dictionaries/DictionaryBase.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)};define(["require","exports","../../Compare","../Enumeration/Enumerator","../CollectionBase","../Enumeration/EnumeratorBase","../../Exceptions/ArgumentNullException","../../Exceptions/InvalidOperationException","../../KeyValueExtract"],function(e,t,r,n,o,a,u,i,l){"use strict";var s=void 0,f=function(e){function t(t){e.call(this,t)}return __extends(t,e),t.prototype._onValueModified=function(e,t,r){},t.prototype._addInternal=function(e){var t=this;if(!e)throw new u["default"]("item","Dictionaries must use a valid key/value pair. '"+e+"' is not allowed.");return l["default"](e,function(e,r){return t.addByKeyValue(e,r)})},t.prototype._clearInternal=function(){for(var e=this,t=0,r=0,n=e.keys;ro;){var u=t[o++],i=n.getValue(u);if(i!==s)return a.yieldReturn({key:u,value:i})}return a.yieldBreak()})},t}(o["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=f}); +var __extends=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)};define(["require","exports","../../Compare","../Enumeration/Enumerator","../CollectionBase","../Enumeration/EnumeratorBase","../../Exceptions/ArgumentNullException","../../Exceptions/InvalidOperationException","../../KeyValueExtract"],function(e,t,r,n,o,a,i,u,l){"use strict";var s=void 0,c=function(e){function t(t){e.call(this,t)}return __extends(t,e),t.prototype._onValueModified=function(e,t,r){},t.prototype._addInternal=function(e){var t=this;if(!e)throw new i.ArgumentNullException("item","Dictionaries must use a valid key/value pair. '"+e+"' is not allowed.");return l.extractKeyValue(e,function(e,r){return t.addByKeyValue(e,r)})},t.prototype._clearInternal=function(){for(var e=this,t=0,r=0,n=e.keys;ro;){var i=t[o++],u=n.getValue(i);if(u!==s)return a.yieldReturn({key:i,value:u})}return a.yieldBreak()})},t}(o.CollectionBase);t.DictionaryBase=c,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=c}); //# sourceMappingURL=DictionaryBase.js.map diff --git a/dist/amd/System/Collections/Dictionaries/DictionaryBase.js.map b/dist/amd/System/Collections/Dictionaries/DictionaryBase.js.map index 00fcdc95..c99aa259 100644 --- a/dist/amd/System/Collections/Dictionaries/DictionaryBase.js.map +++ b/dist/amd/System/Collections/Dictionaries/DictionaryBase.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Dictionaries/DictionaryBase.js","System/Collections/Dictionaries/DictionaryBase.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","Compare_1","Enumerator_1","CollectionBase_1","EnumeratorBase_1","ArgumentNullException_1","InvalidOperationException_1","KeyValueExtract_1","VOID0","DictionaryBase","_super","source","call","_onValueModified","key","value","old","_addInternal","item","_this","addByKeyValue","_clearInternal","_","count","_i","_a","keys","length","removeByKey","contains","getCount","v","getValue","areEqual","_removeInternal","defineProperty","get","getKeys","enumerable","configurable","getValues","containsKey","ex","data","setValue","assertModifiable","changed","_setValueInternal","_signalModification","_getEntry","containsValue","e","getEnumerator","equal","moveNext","current","dispose","removeByValue","importEntries","pairs","_importEntries","forEach","pair","ver","len","i","_version","yielder","assertVersion","yieldReturn","yieldBreak"],"mappings":"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","file":"System/Collections/Dictionaries/DictionaryBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"../../Compare\", \"../Enumeration/Enumerator\", \"../CollectionBase\", \"../Enumeration/EnumeratorBase\", \"../../Exceptions/ArgumentNullException\", \"../../Exceptions/InvalidOperationException\", \"../../KeyValueExtract\"], function (require, exports, Compare_1, Enumerator_1, CollectionBase_1, EnumeratorBase_1, ArgumentNullException_1, InvalidOperationException_1, KeyValueExtract_1) {\n 'use strict';\n var VOID0 = void (0);\n var DictionaryBase = (function (_super) {\n __extends(DictionaryBase, _super);\n function DictionaryBase(source) {\n _super.call(this, source);\n }\n DictionaryBase.prototype._onValueModified = function (key, value, old) {\n };\n DictionaryBase.prototype._addInternal = function (item) {\n var _this = this;\n if (!item)\n throw new ArgumentNullException_1.default('item', 'Dictionaries must use a valid key/value pair. \\'' + item + '\\' is not allowed.');\n return KeyValueExtract_1.default(item, function (key, value) { return _this.addByKeyValue(key, value); });\n };\n DictionaryBase.prototype._clearInternal = function () {\n var _ = this, count = 0;\n for (var _i = 0, _a = _.keys; _i < _a.length; _i++) {\n var key = _a[_i];\n if (_.removeByKey(key))\n count++;\n }\n return count;\n };\n DictionaryBase.prototype.contains = function (item) {\n var _this = this;\n if (!item || !this.getCount())\n return false;\n return KeyValueExtract_1.default(item, function (key, value) {\n var v = _this.getValue(key);\n return Compare_1.areEqual(value, v);\n });\n };\n DictionaryBase.prototype._removeInternal = function (item) {\n var _this = this;\n if (!item)\n return 0;\n return KeyValueExtract_1.default(item, function (key, value) {\n var v = _this.getValue(key);\n return (Compare_1.areEqual(value, v) && _this.removeByKey(key))\n ? 1 : 0;\n });\n };\n Object.defineProperty(DictionaryBase.prototype, \"keys\", {\n get: function () { return this.getKeys(); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DictionaryBase.prototype, \"values\", {\n get: function () { return this.getValues(); },\n enumerable: true,\n configurable: true\n });\n DictionaryBase.prototype.addByKeyValue = function (key, value) {\n if (value === VOID0)\n throw new InvalidOperationException_1.default(\"Cannot add 'undefined' as a value.\");\n var _ = this;\n if (_.containsKey(key)) {\n var ex = new InvalidOperationException_1.default(\"Adding a key/value when the key already exists.\");\n ex.data['key'] = key;\n ex.data['value'] = value;\n throw ex;\n }\n return _.setValue(key, value);\n };\n DictionaryBase.prototype.setValue = function (key, value) {\n var _ = this;\n _.assertModifiable();\n var changed = false, old = _.getValue(key);\n if (!Compare_1.areEqual(value, old) && _._setValueInternal(key, value)) {\n changed = true;\n _._onValueModified(key, value, old);\n }\n _._signalModification(changed);\n return changed;\n };\n DictionaryBase.prototype.containsKey = function (key) {\n return !!this._getEntry(key);\n };\n DictionaryBase.prototype.containsValue = function (value) {\n var e = this.getEnumerator(), equal = Compare_1.areEqual;\n while (e.moveNext()) {\n if (equal(e.current, value, true)) {\n e.dispose();\n return true;\n }\n }\n return false;\n };\n DictionaryBase.prototype.removeByKey = function (key) {\n return this.setValue(key, VOID0);\n };\n DictionaryBase.prototype.removeByValue = function (value) {\n var _ = this, count = 0, equal = Compare_1.areEqual;\n for (var _i = 0, _a = _.getKeys(); _i < _a.length; _i++) {\n var key = _a[_i];\n if (equal(_.getValue(key), value, true)) {\n _.removeByKey(key);\n count++;\n }\n }\n return count;\n };\n DictionaryBase.prototype.importEntries = function (pairs) {\n return _super.prototype.importEntries.call(this, pairs);\n };\n DictionaryBase.prototype._importEntries = function (pairs) {\n var _ = this;\n if (!pairs)\n return 0;\n var changed = 0;\n Enumerator_1.forEach(pairs, function (pair) { return KeyValueExtract_1.default(pair, function (key, value) {\n if (_._setValueInternal(key, value))\n changed++;\n }); });\n return changed;\n };\n DictionaryBase.prototype.getEnumerator = function () {\n var _ = this;\n var ver, keys, len, i = 0;\n return new EnumeratorBase_1.default(function () {\n ver = _._version;\n keys = _.getKeys();\n len = keys.length;\n }, function (yielder) {\n _.assertVersion(ver);\n while (i < len) {\n var key = keys[i++], value = _.getValue(key);\n if (value !== VOID0)\n return yielder.yieldReturn({ key: key, value: value });\n }\n return yielder.yieldBreak();\n });\n };\n return DictionaryBase;\n }(CollectionBase_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = DictionaryBase;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport {areEqual} from \"../../Compare\";\r\nimport {forEach} from \"../Enumeration/Enumerator\";\r\nimport CollectionBase from \"../CollectionBase\";\r\nimport EnumeratorBase from \"../Enumeration/EnumeratorBase\";\r\nimport ArgumentNullException from \"../../Exceptions/ArgumentNullException\";\r\nimport InvalidOperationException from \"../../Exceptions/InvalidOperationException\";\r\nimport extractKeyValue from \"../../KeyValueExtract\";\r\n\r\nconst VOID0:any = void(0);\r\n\r\n// Design Note: Should DictionaryAbstractBase be IDisposable?\r\nabstract class DictionaryBase\r\nextends CollectionBase> implements IDictionary\r\n{\r\n\tconstructor(source?:IEnumerableOrArray>)\r\n\t{\r\n\t\tsuper(source);\r\n\t}\r\n\r\n\r\n\tprotected _onValueModified(key:TKey, value:TValue, old:TValue):void\r\n\t{\r\n\t}\r\n\r\n\tprotected _addInternal(item:KeyValuePair):boolean\r\n\t{\r\n\t\tif(!item)\r\n\t\t\tthrow new ArgumentNullException(\r\n\t\t\t\t'item', 'Dictionaries must use a valid key/value pair. \\'' + item + '\\' is not allowed.'\r\n\t\t\t);\r\n\r\n\t\treturn extractKeyValue(item,\r\n\t\t\t(key, value)=>this.addByKeyValue(key, value));\r\n\t}\r\n\r\n\tprotected _clearInternal():number\r\n\t{\r\n\t\tvar _ = this, count = 0;\r\n\r\n\t\tfor(let key of _.keys)\r\n\t\t{\r\n\t\t\tif(_.removeByKey(key)) count++;\r\n\t\t}\r\n\r\n\t\treturn count;\r\n\t}\r\n\r\n\tcontains(item:KeyValuePair):boolean\r\n\t{\r\n\t\t// Should never have a null object in the collection.\r\n\t\tif(!item || !this.getCount()) return false;\r\n\r\n\t\treturn extractKeyValue(item,\r\n\t\t\t(key, value)=>\r\n\t\t\t{\r\n\t\t\t\t// Leave as variable for debugging...\r\n\t\t\t\tlet v = this.getValue(key);\r\n\t\t\t\treturn areEqual(value, v);\r\n\t\t\t});\r\n\r\n\t}\r\n\r\n\tprotected _removeInternal(item:IKeyValuePair|[TKey,TValue]):number\r\n\t{\r\n\t\tif(!item) return 0;\r\n\r\n\t\treturn extractKeyValue(item,\r\n\t\t\t(key, value)=>\r\n\t\t\t{\r\n\t\t\t\t// Leave as variable for debugging...\r\n\t\t\t\tlet v = this.getValue(key);\r\n\t\t\t\treturn (areEqual(value, v) && this.removeByKey(key))\r\n\t\t\t\t\t? 1 : 0;\r\n\t\t\t});\r\n\t}\r\n\r\n\t/////////////////////////////////////////\r\n\t// IDictionary\r\n\t/////////////////////////////////////////\r\n\r\n\tprotected abstract getKeys():TKey[];\r\n\r\n\tget keys():TKey[] { return this.getKeys(); }\r\n\r\n\tprotected abstract getValues():TValue[];\r\n\r\n\tget values():TValue[] { return this.getValues(); }\r\n\r\n\r\n\taddByKeyValue(key:TKey, value:TValue):boolean\r\n\t{\r\n\t\tif(value===VOID0)\r\n\t\t\tthrow new InvalidOperationException(\"Cannot add 'undefined' as a value.\");\r\n\r\n\t\tvar _ = this;\r\n\t\tif(_.containsKey(key))\r\n\t\t{\r\n\t\t\tvar ex = new InvalidOperationException(\"Adding a key/value when the key already exists.\");\r\n\t\t\tex.data['key'] = key;\r\n\t\t\tex.data['value'] = value;\r\n\t\t\tthrow ex;\r\n\t\t}\r\n\r\n\t\treturn _.setValue(key, value);\r\n\t}\r\n\r\n\tprotected abstract _getEntry(key:TKey):IKeyValuePair;\r\n\r\n\tabstract getValue(key:TKey):TValue;\r\n\r\n\tprotected abstract _setValueInternal(key:TKey, value:TValue):boolean;\r\n\r\n\tsetValue(key:TKey, value:TValue):boolean\r\n\t{\r\n\t\t// setValue shouldn't need to worry about recursion...\r\n\t\tvar _ = this;\r\n\t\t_.assertModifiable();\r\n\r\n\t\tvar changed = false, old = _.getValue(key); // get the old value here and pass to internal.\r\n\t\tif(!areEqual(value, old) && _._setValueInternal(key, value))\r\n\t\t{\r\n\t\t\tchanged = true;\r\n\t\t\t_._onValueModified(key, value, old)\r\n\t\t}\r\n\r\n\t\t_._signalModification(changed);\r\n\t\treturn changed;\r\n\t}\r\n\r\n\tcontainsKey(key:TKey):boolean\r\n\t{\r\n\t\treturn !!this._getEntry(key);\r\n\t}\r\n\r\n\tcontainsValue(value:TValue):boolean\r\n\t{\r\n\t\tvar e = this.getEnumerator(), equal:(a:any, b:any, strict?:boolean) => boolean = areEqual;\r\n\r\n\t\twhile(e.moveNext())\r\n\t\t{\r\n\t\t\tif(equal(e.current, value, true))\r\n\t\t\t{\r\n\t\t\t\te.dispose();\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tremoveByKey(key:TKey):boolean\r\n\t{\r\n\t\treturn this.setValue(key, VOID0);\r\n\t}\r\n\r\n\tremoveByValue(value:TValue):number\r\n\t{\r\n\t\tvar _ = this, count = 0, equal:(a:any, b:any, strict?:boolean) => boolean = areEqual;\r\n\t\tfor(let key of _.getKeys())\r\n\t\t{\r\n\t\t\tif(equal(_.getValue(key), value, true))\r\n\t\t\t{\r\n\t\t\t\t_.removeByKey(key);\r\n\t\t\t\tcount++;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn count;\r\n\t}\r\n\r\n\timportEntries(pairs:IEnumerableOrArray>):number\r\n\t{\r\n\t\t// Allow piping through to trigger onModified properly.\r\n\t\treturn super.importEntries(pairs);\r\n\t}\r\n\r\n\tprotected _importEntries(pairs:IEnumerableOrArray>):number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(!pairs) return 0;\r\n\t\tlet changed:number = 0;\r\n\t\tforEach(pairs,\r\n\t\t\tpair=>extractKeyValue(pair, (key, value)=>\r\n\t\t\t{\r\n\t\t\t\tif(_._setValueInternal(key, value))\r\n\t\t\t\t\tchanged++;\r\n\t\t\t})\r\n\t\t);\r\n\t\treturn changed;\r\n\t}\r\n\r\n\tgetEnumerator():IEnumerator>\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar ver:number, keys:TKey[], len:number, i = 0;\r\n\t\treturn new EnumeratorBase>(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tver = _._version; // Track the version since getKeys is a copy.\r\n\t\t\t\tkeys = _.getKeys();\r\n\t\t\t\tlen = keys.length;\r\n\t\t\t},\r\n\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\t\t\t\t_.assertVersion(ver);\r\n\r\n\t\t\t\twhile(i\r\nextends CollectionBase> implements IDictionary\r\n{\r\n\tconstructor(source?:IEnumerableOrArray>)\r\n\t{\r\n\t\tsuper(source);\r\n\t}\r\n\r\n\r\n\tprotected _onValueModified(key:TKey, value:TValue, old:TValue):void\r\n\t{\r\n\t}\r\n\r\n\tprotected _addInternal(item:KeyValuePair):boolean\r\n\t{\r\n\t\tif(!item)\r\n\t\t\tthrow new ArgumentNullException(\r\n\t\t\t\t'item', 'Dictionaries must use a valid key/value pair. \\'' + item + '\\' is not allowed.'\r\n\t\t\t);\r\n\r\n\t\treturn extractKeyValue(item,\r\n\t\t\t(key, value)=>this.addByKeyValue(key, value));\r\n\t}\r\n\r\n\tprotected _clearInternal():number\r\n\t{\r\n\t\tvar _ = this, count = 0;\r\n\r\n\t\tfor(let key of _.keys)\r\n\t\t{\r\n\t\t\tif(_.removeByKey(key)) count++;\r\n\t\t}\r\n\r\n\t\treturn count;\r\n\t}\r\n\r\n\tcontains(item:KeyValuePair):boolean\r\n\t{\r\n\t\t// Should never have a null object in the collection.\r\n\t\tif(!item || !this.getCount()) return false;\r\n\r\n\t\treturn extractKeyValue(item,\r\n\t\t\t(key, value)=>\r\n\t\t\t{\r\n\t\t\t\t// Leave as variable for debugging...\r\n\t\t\t\tlet v = this.getValue(key);\r\n\t\t\t\treturn areEqual(value, v);\r\n\t\t\t});\r\n\r\n\t}\r\n\r\n\tprotected _removeInternal(item:IKeyValuePair|[TKey,TValue]):number\r\n\t{\r\n\t\tif(!item) return 0;\r\n\r\n\t\treturn extractKeyValue(item,\r\n\t\t\t(key, value)=>\r\n\t\t\t{\r\n\t\t\t\t// Leave as variable for debugging...\r\n\t\t\t\tlet v = this.getValue(key);\r\n\t\t\t\treturn (areEqual(value, v) && this.removeByKey(key))\r\n\t\t\t\t\t? 1 : 0;\r\n\t\t\t});\r\n\t}\r\n\r\n\t/////////////////////////////////////////\r\n\t// IDictionary\r\n\t/////////////////////////////////////////\r\n\r\n\tprotected abstract getKeys():TKey[];\r\n\r\n\tget keys():TKey[] { return this.getKeys(); }\r\n\r\n\tprotected abstract getValues():TValue[];\r\n\r\n\tget values():TValue[] { return this.getValues(); }\r\n\r\n\r\n\taddByKeyValue(key:TKey, value:TValue):boolean\r\n\t{\r\n\t\tif(value===VOID0)\r\n\t\t\tthrow new InvalidOperationException(\"Cannot add 'undefined' as a value.\");\r\n\r\n\t\tvar _ = this;\r\n\t\tif(_.containsKey(key))\r\n\t\t{\r\n\t\t\tvar ex = new InvalidOperationException(\"Adding a key/value when the key already exists.\");\r\n\t\t\tex.data['key'] = key;\r\n\t\t\tex.data['value'] = value;\r\n\t\t\tthrow ex;\r\n\t\t}\r\n\r\n\t\treturn _.setValue(key, value);\r\n\t}\r\n\r\n\tprotected abstract _getEntry(key:TKey):IKeyValuePair;\r\n\r\n\tabstract getValue(key:TKey):TValue;\r\n\r\n\tprotected abstract _setValueInternal(key:TKey, value:TValue):boolean;\r\n\r\n\tsetValue(key:TKey, value:TValue):boolean\r\n\t{\r\n\t\t// setValue shouldn't need to worry about recursion...\r\n\t\tvar _ = this;\r\n\t\t_.assertModifiable();\r\n\r\n\t\tvar changed = false, old = _.getValue(key); // get the old value here and pass to internal.\r\n\t\tif(!areEqual(value, old) && _._setValueInternal(key, value))\r\n\t\t{\r\n\t\t\tchanged = true;\r\n\t\t\t_._onValueModified(key, value, old)\r\n\t\t}\r\n\r\n\t\t_._signalModification(changed);\r\n\t\treturn changed;\r\n\t}\r\n\r\n\tcontainsKey(key:TKey):boolean\r\n\t{\r\n\t\treturn !!this._getEntry(key);\r\n\t}\r\n\r\n\tcontainsValue(value:TValue):boolean\r\n\t{\r\n\t\tvar e = this.getEnumerator(), equal:(a:any, b:any, strict?:boolean) => boolean = areEqual;\r\n\r\n\t\twhile(e.moveNext())\r\n\t\t{\r\n\t\t\tif(equal(e.current, value, true))\r\n\t\t\t{\r\n\t\t\t\te.dispose();\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tremoveByKey(key:TKey):boolean\r\n\t{\r\n\t\treturn this.setValue(key, VOID0);\r\n\t}\r\n\r\n\tremoveByValue(value:TValue):number\r\n\t{\r\n\t\tvar _ = this, count = 0, equal:(a:any, b:any, strict?:boolean) => boolean = areEqual;\r\n\t\tfor(let key of _.getKeys())\r\n\t\t{\r\n\t\t\tif(equal(_.getValue(key), value, true))\r\n\t\t\t{\r\n\t\t\t\t_.removeByKey(key);\r\n\t\t\t\tcount++;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn count;\r\n\t}\r\n\r\n\timportEntries(pairs:IEnumerableOrArray>):number\r\n\t{\r\n\t\t// Allow piping through to trigger onModified properly.\r\n\t\treturn super.importEntries(pairs);\r\n\t}\r\n\r\n\tprotected _importEntries(pairs:IEnumerableOrArray>):number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(!pairs) return 0;\r\n\t\tlet changed:number = 0;\r\n\t\tforEach(pairs,\r\n\t\t\tpair=>extractKeyValue(pair, (key, value)=>\r\n\t\t\t{\r\n\t\t\t\tif(_._setValueInternal(key, value))\r\n\t\t\t\t\tchanged++;\r\n\t\t\t})\r\n\t\t);\r\n\t\treturn changed;\r\n\t}\r\n\r\n\tgetEnumerator():IEnumerator>\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar ver:number, keys:TKey[], len:number, i = 0;\r\n\t\treturn new EnumeratorBase>(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tver = _._version; // Track the version since getKeys is a copy.\r\n\t\t\t\tkeys = _.getKeys();\r\n\t\t\t\tlen = keys.length;\r\n\t\t\t},\r\n\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\t\t\t\t_.assertVersion(ver);\r\n\r\n\t\t\t\twhile(i extends StringKeyDictionary implements IOrderedDictionary { +import { StringKeyDictionary } from "./StringKeyDictionary"; +import { IOrderedDictionary } from "./IDictionary"; +export declare class OrderedStringKeyDictionary extends StringKeyDictionary implements IOrderedDictionary { private _order; constructor(); indexOfKey(key: string): number; @@ -15,3 +16,4 @@ export default class OrderedStringKeyDictionary extends StringKeyDiction removeByIndex(index: number): boolean; protected getKeys(): string[]; } +export default OrderedStringKeyDictionary; diff --git a/dist/amd/System/Collections/Dictionaries/OrderedStringKeyDictionary.js b/dist/amd/System/Collections/Dictionaries/OrderedStringKeyDictionary.js index 3890d12b..70e137b0 100644 --- a/dist/amd/System/Collections/Dictionaries/OrderedStringKeyDictionary.js +++ b/dist/amd/System/Collections/Dictionaries/OrderedStringKeyDictionary.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)};define(["require","exports","../Array/Utility","./StringKeyDictionary","../../Exceptions/ArgumentOutOfRangeException"],function(t,e,r,n,o){"use strict";var i=void 0,u=function(t){function e(){t.call(this),this._order=[]}return __extends(e,t),e.prototype.indexOfKey=function(t){var e=this._order;return e.length?e.indexOf(t,0):-1},e.prototype.getValueByIndex=function(t){var e=this._order;return tt)throw new o["default"]("index",t,"Is less than zero.");if(t>=n.length)throw new o["default"]("index",t,"Is greater than the count.");return r.setValue(n[t],e)},e.prototype.importValues=function(t){var e=this;return e.handleUpdate(function(){for(var r=!1,n=0;nt)throw new o.ArgumentOutOfRangeException("index",t,"Is less than zero.");if(t>=n.length)throw new o.ArgumentOutOfRangeException("index",t,"Is greater than the count.");return r.setValue(n[t],e)},e.prototype.importValues=function(t){var e=this;return e.handleUpdate(function(){for(var r=!1,n=0;n= order.length)\n throw new ArgumentOutOfRangeException_1.default('index', index, 'Is greater than the count.');\n return _.setValue(order[index], value);\n };\n OrderedStringKeyDictionary.prototype.importValues = function (values) {\n var _ = this;\n return _.handleUpdate(function () {\n var changed = false;\n for (var i = 0; i < values.length; i++) {\n if (_.setByIndex(i, values[i]))\n changed = true;\n }\n return changed;\n });\n };\n OrderedStringKeyDictionary.prototype.setValues = function () {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i - 0] = arguments[_i];\n }\n return this.importValues(values);\n };\n OrderedStringKeyDictionary.prototype.removeByIndex = function (index) {\n return this.setByIndex(index, VOID0);\n };\n OrderedStringKeyDictionary.prototype.getKeys = function () {\n var _ = this, o = _._order;\n return o.length && o.filter(function (key) { return _.containsKey(key); }) || [];\n };\n return OrderedStringKeyDictionary;\n }(StringKeyDictionary_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = OrderedStringKeyDictionary;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport * as ArrayUtility from \"../Array/Utility\";\r\nimport StringKeyDictionary from \"./StringKeyDictionary\";\r\nimport ArgumentOutOfRangeException from \"../../Exceptions/ArgumentOutOfRangeException\";\r\n\r\nconst VOID0:any = void 0;\r\n\r\nexport default\r\nclass OrderedStringKeyDictionary\r\nextends StringKeyDictionary implements IOrderedDictionary\r\n{\r\n\r\n\t// noinspection JSMismatchedCollectionQueryUpdate\r\n\tprivate _order:string[] = []; // Maintains indexes.\r\n\r\n\tconstructor()\r\n\t{\r\n\t\tsuper();\r\n\t}\r\n\r\n\tindexOfKey(key:string):number\r\n\t{\r\n\t\tvar o = this._order;\r\n\t\treturn o.length ? o.indexOf(key, 0) : -1;\r\n\t}\r\n\r\n\tgetValueByIndex(index:number):TValue\r\n\t{\r\n\t\tvar o = this._order;\r\n\t\treturn index=order.length)\r\n\t\t\tthrow new ArgumentOutOfRangeException('index', index, 'Is greater than the count.');\r\n\t\treturn _.setValue(order[index], value);\r\n\t}\r\n\r\n\t// importValues([x,y,z]);\r\n\timportValues(values:TValue[]):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn _.handleUpdate(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar changed:boolean = false;\r\n\t\t\t\tfor(let i = 0; i _.containsKey(key)) || [];\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Dictionaries/OrderedStringKeyDictionary.js","System/Collections/Dictionaries/OrderedStringKeyDictionary.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","ArrayUtility","StringKeyDictionary_1","ArgumentOutOfRangeException_1","VOID0","OrderedStringKeyDictionary","_super","call","_order","indexOfKey","key","o","length","indexOf","getValueByIndex","index","getValue","setValue","value","keepIndex","_","exists","remove","push","setByIndex","order","ArgumentOutOfRangeException","importValues","values","handleUpdate","changed","i","setValues","_i","arguments","removeByIndex","getKeys","filter","containsKey","StringKeyDictionary","defineProperty"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,mBAAoB,wBAAyB,gDAAiD,SAAUC,EAASC,EAASC,EAAcC,EAAuBC,GACzL,YCAJ,IAAMC,GAAY,OAElBC,EAAA,SAAAC,GAOC,QAAAD,KAECC,EAAAC,KAAAnB,MAJOA,KAAAoB,UA8ET,MAlFQrB,WAAAkB,EAAAC,GAWPD,EAAAV,UAAAc,WAAA,SAAWC,GAEV,GAAIC,GAAIvB,KAAKoB,MACb,OAAOG,GAAEC,OAASD,EAAEE,QAAQH,EAAK,GAAK,IAGvCL,EAAAV,UAAAmB,gBAAA,SAAgBC,GAEf,GAAIJ,GAAIvB,KAAKoB,MACb,OAAOO,GAAMJ,EAAEC,OAASxB,KAAK4B,SAASL,EAAEI,IAAUX,GAInDC,EAAAV,UAAAsB,SAAA,SAASP,EAAYQ,EAAcC,GAGlC,GAAIC,GAAIhC,KAAMiC,EAA6B,IAApBD,EAAEX,WAAWC,EAMpC,OALIW,IAAWH,IAAQd,IAASe,EAExBE,GAAUH,IAAQd,IAAUe,GACnClB,EAAaqB,OAAOF,EAAEZ,OAAQE,GAF9BU,EAAEZ,OAAOe,KAAKb,GAIRJ,EAAAX,UAAMsB,SAAQV,KAAAnB,KAACsB,EAAKQ,IAG5Bb,EAAAV,UAAA6B,WAAA,SAAWT,EAAcG,GAExB,GAAIE,GAAIhC,KAAMqC,EAAQL,EAAEZ,MACxB,IAAS,EAANO,EACF,KAAM,IAAIZ,GAAAuB,4BAA4B,QAASX,EAAO,qBACvD,IAAGA,GAAOU,EAAMb,OACf,KAAM,IAAIT,GAAAuB,4BAA4B,QAASX,EAAO,6BACvD,OAAOK,GAAEH,SAASQ,EAAMV,GAAQG,IAIjCb,EAAAV,UAAAgC,aAAA,SAAaC,GAEZ,GAAIR,GAAIhC,IACR,OAAOgC,GAAES,aACR,WAGC,IAAI,GADAC,IAAkB,EACdC,EAAI,EAAGA,EAAEH,EAAOhB,OAAQmB,IAE5BX,EAAEI,WAAWO,EAAGH,EAAOG,MACzBD,GAAU,EAEZ,OAAOA,MAOVzB,EAAAV,UAAAqC,UAAA,WDxBW,ICwBD,GAAAJ,MAAAK,EAAA,EAAAA,EAAAC,UAAAtB,OAAAqB,IAAAL,EAAAK,EAAA,GAAAC,UAAAD,EAET,OAAO7C,MAAKuC,aAAaC,IAG1BvB,EAAAV,UAAAwC,cAAA,SAAcpB,GAEb,MAAO3B,MAAKoC,WAAWT,EAAOX,IAGrBC,EAAAV,UAAAyC,QAAV,WAEC,GAAIhB,GAAIhC,KAAMuB,EAAIS,EAAEZ,MACpB,OAAOG,GAAEC,QAAUD,EAAE0B,OAAO,SAAA3B,GAAM,MAAAU,GAAEkB,YAAY5B,UAGlDL,GAlFQH,EAAAqC,oBADKvC,GAAAK,2BAA0BA,EAqFvCT,OAAA4C,eAAAxC,EAAA,cAAAkB,OAAA,ID1BIlB,EAAAA,WC0BWK","file":"System/Collections/Dictionaries/OrderedStringKeyDictionary.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"../Array/Utility\", \"./StringKeyDictionary\", \"../../Exceptions/ArgumentOutOfRangeException\"], function (require, exports, ArrayUtility, StringKeyDictionary_1, ArgumentOutOfRangeException_1) {\n \"use strict\";\n var VOID0 = void 0;\n var OrderedStringKeyDictionary = (function (_super) {\n __extends(OrderedStringKeyDictionary, _super);\n function OrderedStringKeyDictionary() {\n _super.call(this);\n this._order = [];\n }\n OrderedStringKeyDictionary.prototype.indexOfKey = function (key) {\n var o = this._order;\n return o.length ? o.indexOf(key, 0) : -1;\n };\n OrderedStringKeyDictionary.prototype.getValueByIndex = function (index) {\n var o = this._order;\n return index < o.length ? this.getValue(o[index]) : VOID0;\n };\n OrderedStringKeyDictionary.prototype.setValue = function (key, value, keepIndex) {\n var _ = this, exists = _.indexOfKey(key) != -1;\n if (!exists && (value !== VOID0 || keepIndex))\n _._order.push(key);\n else if (exists && value === VOID0 && !keepIndex)\n ArrayUtility.remove(_._order, key);\n return _super.prototype.setValue.call(this, key, value);\n };\n OrderedStringKeyDictionary.prototype.setByIndex = function (index, value) {\n var _ = this, order = _._order;\n if (index < 0)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('index', index, 'Is less than zero.');\n if (index >= order.length)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('index', index, 'Is greater than the count.');\n return _.setValue(order[index], value);\n };\n OrderedStringKeyDictionary.prototype.importValues = function (values) {\n var _ = this;\n return _.handleUpdate(function () {\n var changed = false;\n for (var i = 0; i < values.length; i++) {\n if (_.setByIndex(i, values[i]))\n changed = true;\n }\n return changed;\n });\n };\n OrderedStringKeyDictionary.prototype.setValues = function () {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i - 0] = arguments[_i];\n }\n return this.importValues(values);\n };\n OrderedStringKeyDictionary.prototype.removeByIndex = function (index) {\n return this.setByIndex(index, VOID0);\n };\n OrderedStringKeyDictionary.prototype.getKeys = function () {\n var _ = this, o = _._order;\n return o.length && o.filter(function (key) { return _.containsKey(key); }) || [];\n };\n return OrderedStringKeyDictionary;\n }(StringKeyDictionary_1.StringKeyDictionary));\n exports.OrderedStringKeyDictionary = OrderedStringKeyDictionary;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = OrderedStringKeyDictionary;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport * as ArrayUtility from \"../Array/Utility\";\r\nimport {StringKeyDictionary} from \"./StringKeyDictionary\";\r\nimport {ArgumentOutOfRangeException} from \"../../Exceptions/ArgumentOutOfRangeException\";\r\nimport {IOrderedDictionary} from \"./IDictionary\";\r\n\r\nconst VOID0:any = void 0;\r\n\r\nexport class OrderedStringKeyDictionary\r\nextends StringKeyDictionary implements IOrderedDictionary\r\n{\r\n\r\n\t// noinspection JSMismatchedCollectionQueryUpdate\r\n\tprivate _order:string[] = []; // Maintains indexes.\r\n\r\n\tconstructor()\r\n\t{\r\n\t\tsuper();\r\n\t}\r\n\r\n\tindexOfKey(key:string):number\r\n\t{\r\n\t\tvar o = this._order;\r\n\t\treturn o.length ? o.indexOf(key, 0) : -1;\r\n\t}\r\n\r\n\tgetValueByIndex(index:number):TValue\r\n\t{\r\n\t\tvar o = this._order;\r\n\t\treturn index=order.length)\r\n\t\t\tthrow new ArgumentOutOfRangeException('index', index, 'Is greater than the count.');\r\n\t\treturn _.setValue(order[index], value);\r\n\t}\r\n\r\n\t// importValues([x,y,z]);\r\n\timportValues(values:TValue[]):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn _.handleUpdate(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar changed:boolean = false;\r\n\t\t\t\tfor(let i = 0; i _.containsKey(key)) || [];\r\n\t}\r\n\r\n}\r\n\r\nexport default OrderedStringKeyDictionary;\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Collections/Dictionaries/StringKeyDictionary.d.ts b/dist/amd/System/Collections/Dictionaries/StringKeyDictionary.d.ts index 15152615..2b7c006a 100644 --- a/dist/amd/System/Collections/Dictionaries/StringKeyDictionary.d.ts +++ b/dist/amd/System/Collections/Dictionaries/StringKeyDictionary.d.ts @@ -1,10 +1,11 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import DictionaryBase from "./DictionaryBase"; -export default class StringKeyDictionary extends DictionaryBase implements IStringKeyDictionary { +import { IStringKeyDictionary, IMap } from "./IDictionary"; +import { IKeyValuePair } from "../../KeyValuePair"; +import { DictionaryBase } from "./DictionaryBase"; +export declare class StringKeyDictionary extends DictionaryBase implements IStringKeyDictionary { private _count; private _map; protected _getEntry(key: string): IKeyValuePair; @@ -18,3 +19,4 @@ export default class StringKeyDictionary extends DictionaryBasee;e++)t[e]=this._map[t[e]];return t},e.prototype.getCount=function(){return this._count},e}(r["default"]);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=i}); +var __extends=this&&this.__extends||function(t,n){function e(){this.constructor=t}for(var r in n)n.hasOwnProperty(r)&&(t[r]=n[r]);t.prototype=null===n?Object.create(n):(e.prototype=n.prototype,new e)};define(["require","exports","../../Compare","./DictionaryBase"],function(t,n,e,r){"use strict";var o=void 0,i=function(t){function n(){t.apply(this,arguments),this._count=0,this._map={}}return __extends(n,t),n.prototype._getEntry=function(t){return this.containsKey(t)?{key:t,value:this.getValue(t)}:null},n.prototype.containsKey=function(t){return null!==t&&t!==o&&this._count?t in this._map:!1},n.prototype.containsValue=function(t){if(!this._count)return!1;var n=this._map,r=e.areEqual;for(var o in n)if(n.hasOwnProperty(o)&&r(n[o],t))return!0;return!1},n.prototype.getValue=function(t){return null!==t&&t!==o&&this._count?this._map[t]:o},n.prototype._setValueInternal=function(t,n){var e=this,r=e._map,i=r[t];return i!==n?(n===o?t in r&&(delete r[t],e._count--):(r.hasOwnProperty(t)||e._count++,r[t]=n),!0):!1},n.prototype.importMap=function(t){var n=this;return n.handleUpdate(function(){var e=!1;for(var r in t)t.hasOwnProperty(r)&&n.setValue(r,t[r])&&(e=!0);return e})},n.prototype.toMap=function(t){var n=this,e={};if(n._count)for(var r in n._map)if(n._map.hasOwnProperty(r)){var i=n._map[r];t&&(i=t(r,i)),i!==o&&(e[r]=i)}return e},n.prototype.getKeys=function(){return Object.keys(this._map)},n.prototype.getValues=function(){if(!this._count)return[];for(var t=Object.keys(this._map),n=0,e=t.length;e>n;n++)t[n]=this._map[t[n]];return t},n.prototype.getCount=function(){return this._count},n}(r.DictionaryBase);n.StringKeyDictionary=i,Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=i}); //# sourceMappingURL=StringKeyDictionary.js.map diff --git a/dist/amd/System/Collections/Dictionaries/StringKeyDictionary.js.map b/dist/amd/System/Collections/Dictionaries/StringKeyDictionary.js.map index 4c32cc3c..92004996 100644 --- a/dist/amd/System/Collections/Dictionaries/StringKeyDictionary.js.map +++ b/dist/amd/System/Collections/Dictionaries/StringKeyDictionary.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Dictionaries/StringKeyDictionary.js","System/Collections/Dictionaries/StringKeyDictionary.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","Compare_1","DictionaryBase_1","VOID0","StringKeyDictionary","_super","apply","arguments","_count","_map","_getEntry","key","containsKey","value","getValue","containsValue","map","equal","areEqual","_setValueInternal","_","old","importMap","values","handleUpdate","changed","setValue","toMap","selector","result","getKeys","keys","getValues","i","len","length","getCount","defineProperty"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,gBAAiB,oBAAqB,SAAUC,EAASC,EAASC,EAAWC,GCH3G,YAKA,IAAMC,GAAY,OAElBC,EAAA,SAAAC,GAAA,QAAAD,KAEQC,EAAAC,MAAAlB,KAAAmB,WAGCnB,KAAAoB,OAAgB,EAChBpB,KAAAqB,QAwHT,MA5HQtB,WAAAiB,EAAAC,GAMGD,EAAAT,UAAAe,UAAV,SAAoBC,GAEnB,MAAQvB,MAAKwB,YAAYD,IAExBA,IAAKA,EACLE,MAAOzB,KAAK0B,SAASH,IAFnB,MAMJP,EAAAT,UAAAiB,YAAA,SAAYD,GAEX,MAAS,QAANA,GAAcA,IAAMR,GAAUf,KAAKoB,OAC/B,IAAUpB,MAAS,MAD2B,GAItDgB,EAAAT,UAAAoB,cAAA,SAAcF,GAEb,IAAIzB,KAAKoB,OAAQ,OAAO,CACxB,IAAIQ,GAAM5B,KAAKqB,KAAMQ,EAAmDhB,EAAAiB,QACxE,KAAI,GAAIP,KAAOK,GAEd,GAAGA,EAAItB,eAAeiB,IAAQM,EAAMD,EAAIL,GAAME,GAC7C,OAAO,CAET,QAAO,GAIRT,EAAAT,UAAAmB,SAAA,SAASH,GAER,MAAS,QAANA,GAAcA,IAAMR,GAAUf,KAAKoB,OAC/BpB,KAAKqB,KAAKE,GADoCR,GAI5CC,EAAAT,UAAAwB,kBAAV,SAA4BR,EAAYE,GAEvC,GAAIO,GAAIhC,KAAM4B,EAAMI,EAAEX,KAAMY,EAAML,EAAIL,EACtC,OAAGU,KAAMR,GAGLA,IAAQV,EAEP,IAAS,WAEJa,GAAIL,GACXS,EAAEZ,WAKCQ,EAAItB,eAAeiB,IACtBS,EAAEZ,SACHQ,EAAIL,GAAOE,IAGL,IAED,GAIRT,EAAAT,UAAA2B,UAAA,SAAUC,GAET,GAAIH,GAAIhC,IACR,OAAOgC,GAAEI,aACR,WAEC,GAAIC,IAAkB,CACtB,KAAI,GAAId,KAAOY,GAEXA,EAAO7B,eAAeiB,IAAQS,EAAEM,SAASf,EAAKY,EAAOZ,MACvDc,GAAU,EAEZ,OAAOA,MAKVrB,EAAAT,UAAAgC,MAAA,SAAMC,GAEL,GAAIR,GAAIhC,KAAMyC,IACd,IAAGT,EAAEZ,OAAQ,IAAI,GAAIG,KAAOS,GAAEX,KAE7B,GAAGW,EAAEX,KAAKf,eAAeiB,GACzB,CACC,GAAIE,GAAQO,EAAEX,KAAKE,EAChBiB,KACFf,EAAQe,EAASjB,EAAKE,IACpBA,IAAQV,IACV0B,EAAOlB,GAAOE,GAGjB,MAAOgB,IAGEzB,EAAAT,UAAAmC,QAAV,WAEC,MAAOlC,QAAOmC,KAAK3C,KAAKqB,OAGfL,EAAAT,UAAAqC,UAAV,WAEC,IAAI5C,KAAKoB,OAAQ,QAEjB,KAAI,GADAqB,GAAejC,OAAOmC,KAAK3C,KAAKqB,MAC5BwB,EAAI,EAAGC,EAAML,EAAOM,OAAUD,EAAFD,EAAOA,IAE1CJ,EAAOI,GAAK7C,KAAKqB,KAAKoB,EAAOI,GAG9B,OAAOJ,IAGEzB,EAAAT,UAAAyC,SAAV,WAEC,MAAOhD,MAAKoB,QAIdJ,GA5HQF,EAAAA,WAFRN,QAAAyC,eAAArC,EAAA,cAAAa,OAAA,ID8FIb,EAAAA,WAAkBI","file":"System/Collections/Dictionaries/StringKeyDictionary.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"../../Compare\", \"./DictionaryBase\"], function (require, exports, Compare_1, DictionaryBase_1) {\n 'use strict';\n var VOID0 = void 0;\n var StringKeyDictionary = (function (_super) {\n __extends(StringKeyDictionary, _super);\n function StringKeyDictionary() {\n _super.apply(this, arguments);\n this._count = 0;\n this._map = {};\n }\n StringKeyDictionary.prototype._getEntry = function (key) {\n return !this.containsKey(key)\n ? null : {\n key: key,\n value: this.getValue(key)\n };\n };\n StringKeyDictionary.prototype.containsKey = function (key) {\n if (key === null || key === VOID0 || !this._count)\n return false;\n return (key) in (this._map);\n };\n StringKeyDictionary.prototype.containsValue = function (value) {\n if (!this._count)\n return false;\n var map = this._map, equal = Compare_1.areEqual;\n for (var key in map) {\n if (map.hasOwnProperty(key) && equal(map[key], value))\n return true;\n }\n return false;\n };\n StringKeyDictionary.prototype.getValue = function (key) {\n if (key === null || key === VOID0 || !this._count)\n return VOID0;\n return this._map[key];\n };\n StringKeyDictionary.prototype._setValueInternal = function (key, value) {\n var _ = this, map = _._map, old = map[key];\n if (old !== value) {\n if (value === VOID0) {\n if ((key) in (map)) {\n delete map[key];\n _._count--;\n }\n }\n else {\n if (!map.hasOwnProperty(key))\n _._count++;\n map[key] = value;\n }\n return true;\n }\n return false;\n };\n StringKeyDictionary.prototype.importMap = function (values) {\n var _ = this;\n return _.handleUpdate(function () {\n var changed = false;\n for (var key in values) {\n if (values.hasOwnProperty(key) && _.setValue(key, values[key]))\n changed = true;\n }\n return changed;\n });\n };\n StringKeyDictionary.prototype.toMap = function (selector) {\n var _ = this, result = {};\n if (_._count)\n for (var key in _._map) {\n if (_._map.hasOwnProperty(key)) {\n var value = _._map[key];\n if (selector)\n value = selector(key, value);\n if (value !== VOID0)\n result[key] = value;\n }\n }\n return result;\n };\n StringKeyDictionary.prototype.getKeys = function () {\n return Object.keys(this._map);\n };\n StringKeyDictionary.prototype.getValues = function () {\n if (!this._count)\n return [];\n var result = Object.keys(this._map);\n for (var i = 0, len = result.length; i < len; i++) {\n result[i] = this._map[result[i]];\n }\n return result;\n };\n StringKeyDictionary.prototype.getCount = function () {\n return this._count;\n };\n return StringKeyDictionary;\n }(DictionaryBase_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = StringKeyDictionary;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport {areEqual} from \"../../Compare\";\r\nimport DictionaryBase from \"./DictionaryBase\";\r\n\r\nconst VOID0:any = void 0;\r\n\r\nexport default\r\nclass StringKeyDictionary\r\nextends DictionaryBase implements IStringKeyDictionary\r\n{\r\n\r\n\tprivate _count:number = 0;\r\n\tprivate _map:IMap = {};\r\n\r\n\tprotected _getEntry(key:string):IKeyValuePair\r\n\t{\r\n\t\treturn !this.containsKey(key)\r\n\t\t\t? null : {\r\n\t\t\tkey: key,\r\n\t\t\tvalue: this.getValue(key)\r\n\t\t}\r\n\t}\r\n\r\n\tcontainsKey(key:string):boolean\r\n\t{\r\n\t\tif(key===null || key===VOID0 || !this._count) return false;\r\n\t\treturn (key) in (this._map);\r\n\t}\r\n\r\n\tcontainsValue(value:TValue):boolean\r\n\t{\r\n\t\tif(!this._count) return false;\r\n\t\tvar map = this._map, equal:(a:any, b:any, strict?:boolean) => boolean = areEqual;\r\n\t\tfor(let key in map)\r\n\t\t{\r\n\t\t\tif(map.hasOwnProperty(key) && equal(map[key], value))\r\n\t\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\r\n\tgetValue(key:string):TValue\r\n\t{\r\n\t\tif(key===null || key===VOID0 || !this._count) return VOID0;\r\n\t\treturn this._map[key];\r\n\t}\r\n\r\n\tprotected _setValueInternal(key:string, value:TValue):boolean\r\n\t{\r\n\t\tvar _ = this, map = _._map, old = map[key];\r\n\t\tif(old!==value)\r\n\t\t{\r\n\r\n\t\t\tif(value===VOID0)\r\n\t\t\t{\r\n\t\t\t\tif((key) in (map))\r\n\t\t\t\t{\r\n\t\t\t\t\tdelete map[key];\r\n\t\t\t\t\t_._count--;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tif(!map.hasOwnProperty(key))\r\n\t\t\t\t\t_._count++;\r\n\t\t\t\tmap[key] = value;\r\n\t\t\t}\r\n\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t// Returns true if any value is updated...\r\n\timportMap(values:IMap):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn _.handleUpdate(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar changed:boolean = false;\r\n\t\t\t\tfor(let key in values)\r\n\t\t\t\t{\r\n\t\t\t\t\tif(values.hasOwnProperty(key) && _.setValue(key, values[key]))\r\n\t\t\t\t\t\tchanged = true;\r\n\t\t\t\t}\r\n\t\t\t\treturn changed;\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\ttoMap(selector?:(key:string, value:TValue) => TValue):IMap\r\n\t{\r\n\t\tvar _ = this, result:IMap = {};\r\n\t\tif(_._count) for(let key in _._map)\r\n\t\t{\r\n\t\t\tif(_._map.hasOwnProperty(key)) // This simply satisfies inspection.\r\n\t\t\t{\r\n\t\t\t\tvar value = _._map[key];\r\n\t\t\t\tif(selector)\r\n\t\t\t\t\tvalue = selector(key, value);\r\n\t\t\t\tif(value!==VOID0)\r\n\t\t\t\t\tresult[key] = value;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn result;\r\n\t}\r\n\r\n\tprotected getKeys():string[]\r\n\t{\r\n\t\treturn Object.keys(this._map);\r\n\t}\r\n\r\n\tprotected getValues():TValue[]\r\n\t{\r\n\t\tif(!this._count) return [];\r\n\t\tvar result:any[] = Object.keys(this._map);\r\n\t\tfor(let i = 0, len = result.length; i\r\nextends DictionaryBase implements IStringKeyDictionary\r\n{\r\n\r\n\tprivate _count:number = 0;\r\n\tprivate _map:IMap = {};\r\n\r\n\tprotected _getEntry(key:string):IKeyValuePair\r\n\t{\r\n\t\treturn !this.containsKey(key)\r\n\t\t\t? null : {\r\n\t\t\tkey: key,\r\n\t\t\tvalue: this.getValue(key)\r\n\t\t}\r\n\t}\r\n\r\n\tcontainsKey(key:string):boolean\r\n\t{\r\n\t\tif(key===null || key===VOID0 || !this._count) return false;\r\n\t\treturn (key) in (this._map);\r\n\t}\r\n\r\n\tcontainsValue(value:TValue):boolean\r\n\t{\r\n\t\tif(!this._count) return false;\r\n\t\tvar map = this._map, equal:(a:any, b:any, strict?:boolean) => boolean = areEqual;\r\n\t\tfor(let key in map)\r\n\t\t{\r\n\t\t\tif(map.hasOwnProperty(key) && equal(map[key], value))\r\n\t\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\r\n\tgetValue(key:string):TValue\r\n\t{\r\n\t\tif(key===null || key===VOID0 || !this._count) return VOID0;\r\n\t\treturn this._map[key];\r\n\t}\r\n\r\n\tprotected _setValueInternal(key:string, value:TValue):boolean\r\n\t{\r\n\t\tvar _ = this, map = _._map, old = map[key];\r\n\t\tif(old!==value)\r\n\t\t{\r\n\r\n\t\t\tif(value===VOID0)\r\n\t\t\t{\r\n\t\t\t\tif((key) in (map))\r\n\t\t\t\t{\r\n\t\t\t\t\tdelete map[key];\r\n\t\t\t\t\t_._count--;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tif(!map.hasOwnProperty(key))\r\n\t\t\t\t\t_._count++;\r\n\t\t\t\tmap[key] = value;\r\n\t\t\t}\r\n\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t// Returns true if any value is updated...\r\n\timportMap(values:IMap):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn _.handleUpdate(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar changed:boolean = false;\r\n\t\t\t\tfor(let key in values)\r\n\t\t\t\t{\r\n\t\t\t\t\tif(values.hasOwnProperty(key) && _.setValue(key, values[key]))\r\n\t\t\t\t\t\tchanged = true;\r\n\t\t\t\t}\r\n\t\t\t\treturn changed;\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\ttoMap(selector?:(key:string, value:TValue) => TValue):IMap\r\n\t{\r\n\t\tvar _ = this, result:IMap = {};\r\n\t\tif(_._count) for(let key in _._map)\r\n\t\t{\r\n\t\t\tif(_._map.hasOwnProperty(key)) // This simply satisfies inspection.\r\n\t\t\t{\r\n\t\t\t\tvar value = _._map[key];\r\n\t\t\t\tif(selector)\r\n\t\t\t\t\tvalue = selector(key, value);\r\n\t\t\t\tif(value!==VOID0)\r\n\t\t\t\t\tresult[key] = value;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn result;\r\n\t}\r\n\r\n\tprotected getKeys():string[]\r\n\t{\r\n\t\treturn Object.keys(this._map);\r\n\t}\r\n\r\n\tprotected getValues():TValue[]\r\n\t{\r\n\t\tif(!this._count) return [];\r\n\t\tvar result:any[] = Object.keys(this._map);\r\n\t\tfor(let i = 0, len = result.length; i /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import IndexEnumerator from "./IndexEnumerator"; -export default class ArrayEnumerator extends IndexEnumerator { +import { IndexEnumerator } from "./IndexEnumerator"; +import { IArray } from "../Array/IArray"; +export declare class ArrayEnumerator extends IndexEnumerator { constructor(arrayFactory: () => IArray, start?: number, step?: number); constructor(array: IArray, start?: number, step?: number); } +export default ArrayEnumerator; diff --git a/dist/amd/System/Collections/Enumeration/ArrayEnumerator.js b/dist/amd/System/Collections/Enumeration/ArrayEnumerator.js index 33b54ec3..acd8d607 100644 --- a/dist/amd/System/Collections/Enumeration/ArrayEnumerator.js +++ b/dist/amd/System/Collections/Enumeration/ArrayEnumerator.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(e,t){function n(){this.constructor=e}for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)};define(["require","exports","./IndexEnumerator","../../Types"],function(e,t,n,r){"use strict";var o=function(e){function t(t,n,o){void 0===n&&(n=0),void 0===o&&(o=1),e.call(this,function(){var e=r["default"].isFunction(t)?t():t;return{source:e,pointer:n,length:e?e.length:0,step:o}})}return __extends(t,e),t}(n["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=o}); +var __extends=this&&this.__extends||function(e,t){function n(){this.constructor=e}for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)};define(["require","exports","./IndexEnumerator","../../Types"],function(e,t,n,r){"use strict";var o=function(e){function t(t,n,o){void 0===n&&(n=0),void 0===o&&(o=1),e.call(this,function(){var e=r.Type.isFunction(t)?t():t;return{source:e,pointer:n,length:e?e.length:0,step:o}})}return __extends(t,e),t}(n.IndexEnumerator);t.ArrayEnumerator=o,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=o}); //# sourceMappingURL=ArrayEnumerator.js.map diff --git a/dist/amd/System/Collections/Enumeration/ArrayEnumerator.js.map b/dist/amd/System/Collections/Enumeration/ArrayEnumerator.js.map index 39995eab..87068d51 100644 --- a/dist/amd/System/Collections/Enumeration/ArrayEnumerator.js.map +++ b/dist/amd/System/Collections/Enumeration/ArrayEnumerator.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Enumeration/ArrayEnumerator.js","System/Collections/Enumeration/ArrayEnumerator.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","IndexEnumerator_1","Types_1","ArrayEnumerator","_super","arrayOrFactory","start","step","call","array","isFunction","source","pointer","length","defineProperty","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,oBAAqB,eAAgB,SAAUC,EAASC,EAASC,EAAmBC,GCHlH,YAKA,IAAAC,GAAA,SAAAC,GAKC,QAAAD,GAAYE,EAAoBC,EAAkBC,GAAlB,SAAAD,IAAAA,EAAA,GAAkB,SAAAC,IAAAA,EAAA,GAEjDH,EAAAI,KAAApB,KACC,WAEC,GAAIqB,GAAQP,EAAAA,WAAKQ,WAAWL,GAAkBA,IAAmBA,CACjE,QAAQM,OAAQF,EAAOG,QAASN,EAAOO,OAAQJ,EAAQA,EAAMI,OAAS,EAAGN,KAAMA,KAInF,MAdiCpB,WAAAgB,EAAAC,GAcjCD,GAdiCF,EAAAA,WADjCL,QAAAkB,eAAAd,EAAA,cAAAe,OAAA,IDaIf,EAAAA,WAAkBG","file":"System/Collections/Enumeration/ArrayEnumerator.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"./IndexEnumerator\", \"../../Types\"], function (require, exports, IndexEnumerator_1, Types_1) {\n 'use strict';\n var ArrayEnumerator = (function (_super) {\n __extends(ArrayEnumerator, _super);\n function ArrayEnumerator(arrayOrFactory, start, step) {\n if (start === void 0) { start = 0; }\n if (step === void 0) { step = 1; }\n _super.call(this, function () {\n var array = Types_1.default.isFunction(arrayOrFactory) ? arrayOrFactory() : arrayOrFactory;\n return { source: array, pointer: start, length: array ? array.length : 0, step: step };\n });\n }\n return ArrayEnumerator;\n }(IndexEnumerator_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ArrayEnumerator;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport IndexEnumerator from \"./IndexEnumerator\";\r\nimport Type from \"../../Types\";\r\n\r\nexport default\r\nclass ArrayEnumerator extends IndexEnumerator\r\n{\r\n\tconstructor(arrayFactory:() => IArray, start?:number, step?:number);\r\n\tconstructor(array:IArray, start?:number, step?:number);\r\n\tconstructor(arrayOrFactory:any, start:number = 0, step:number = 1)\r\n\t{\r\n\t\tsuper(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar array = Type.isFunction(arrayOrFactory) ? arrayOrFactory() : arrayOrFactory;\r\n\t\t\t\treturn {source: array, pointer: start, length: array ? array.length : 0, step: step};\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n}\r\n\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Enumeration/ArrayEnumerator.js","System/Collections/Enumeration/ArrayEnumerator.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","IndexEnumerator_1","Types_1","ArrayEnumerator","_super","arrayOrFactory","start","step","call","array","Type","isFunction","source","pointer","length","IndexEnumerator","defineProperty","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,oBAAqB,eAAgB,SAAUC,EAASC,EAASC,EAAmBC,GAC9G,YCAJ,IAAAC,GAAA,SAAAC,GAIC,QAAAD,GAAYE,EAAoBC,EAAkBC,GAAlB,SAAAD,IAAAA,EAAA,GAAkB,SAAAC,IAAAA,EAAA,GAEjDH,EAAAI,KAAApB,KACC,WAEC,GAAIqB,GAAQP,EAAAQ,KAAKC,WAAWN,GAAkBA,IAAmBA,CACjE,QACCO,OAAQH,EACRI,QAASP,EACTQ,OAAQL,EAAQA,EAAMK,OAAS,EAC/BP,KAAMA,KAKX,MAnBwCpB,WAAAgB,EAAAC,GAmBxCD,GAnBwCF,EAAAc,gBAA3Bf,GAAAG,gBAAeA,EAqB5BP,OAAAoB,eAAAhB,EAAA,cAAAiB,OAAA,IDDIjB,EAAAA,WCCWG","file":"System/Collections/Enumeration/ArrayEnumerator.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"./IndexEnumerator\", \"../../Types\"], function (require, exports, IndexEnumerator_1, Types_1) {\n \"use strict\";\n var ArrayEnumerator = (function (_super) {\n __extends(ArrayEnumerator, _super);\n function ArrayEnumerator(arrayOrFactory, start, step) {\n if (start === void 0) { start = 0; }\n if (step === void 0) { step = 1; }\n _super.call(this, function () {\n var array = Types_1.Type.isFunction(arrayOrFactory) ? arrayOrFactory() : arrayOrFactory;\n return {\n source: array,\n pointer: start,\n length: array ? array.length : 0,\n step: step\n };\n });\n }\n return ArrayEnumerator;\n }(IndexEnumerator_1.IndexEnumerator));\n exports.ArrayEnumerator = ArrayEnumerator;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ArrayEnumerator;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {IndexEnumerator} from \"./IndexEnumerator\";\r\nimport {Type} from \"../../Types\";\r\nimport {IArray} from \"../Array/IArray\";\r\n\r\nexport class ArrayEnumerator extends IndexEnumerator\r\n{\r\n\tconstructor(arrayFactory:() => IArray, start?:number, step?:number);\r\n\tconstructor(array:IArray, start?:number, step?:number);\r\n\tconstructor(arrayOrFactory:any, start:number = 0, step:number = 1)\r\n\t{\r\n\t\tsuper(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar array = Type.isFunction(arrayOrFactory) ? arrayOrFactory() : arrayOrFactory;\r\n\t\t\t\treturn {\r\n\t\t\t\t\tsource: array,\r\n\t\t\t\t\tpointer: start,\r\n\t\t\t\t\tlength: array ? array.length : 0,\r\n\t\t\t\t\tstep: step\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n}\r\n\r\nexport default ArrayEnumerator;"]} \ No newline at end of file diff --git a/dist/amd/System/Collections/Enumeration/Enumerator.d.ts b/dist/amd/System/Collections/Enumeration/Enumerator.d.ts index 4001711b..b0c4a155 100644 --- a/dist/amd/System/Collections/Enumeration/Enumerator.d.ts +++ b/dist/amd/System/Collections/Enumeration/Enumerator.d.ts @@ -1,13 +1,11 @@ -/// -/// -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { Selector } from "../../FunctionTypes"; +import { IEnumerator } from "./IEnumerator"; +import { IEnumerable } from "./IEnumerable"; +import { IEnumerableOrArray } from "../IEnumerableOrArray"; export declare function throwIfEndless(isEndless: boolean): void; export declare const empty: IEnumerator; export declare function from(source: IEnumerableOrArray): IEnumerator; diff --git a/dist/amd/System/Collections/Enumeration/Enumerator.js b/dist/amd/System/Collections/Enumeration/Enumerator.js index a5cb54d4..a86ecffa 100644 --- a/dist/amd/System/Collections/Enumeration/Enumerator.js +++ b/dist/amd/System/Collections/Enumeration/Enumerator.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -define(["require","exports","../../Disposable/dispose","../../Types","./ArrayEnumerator","./IndexEnumerator","./UnsupportedEnumerableException"],function(e,r,n,t,u,i,o){"use strict";function f(e){if(e)throw new o["default"](g)}function a(e){if(Array.isArray(e)||t["default"].isString(e)){var r=e.length;if(isFinite(r)){if(r>65535)return new Array(r);var n=[];return n.length=r,n}}return[]}function s(e){if(!e)return v;if(Array.isArray(e))return new u["default"](e);if(t["default"].isArrayLike(e))return new i["default"](function(){return{source:e,length:e.length,pointer:0,step:1}});if(!t["default"].isPrimitive(e)&&l(e))return e.getEnumerator();throw new Error("Unknown enumerable.")}function l(e){return t["default"].hasMemberOfType(e,"getEnumerator",t["default"].FUNCTION)}function c(e){return t["default"].isArrayLike(e)||l(e)}function p(e){return t["default"].hasMemberOfType(e,"moveNext",t["default"].FUNCTION)}function d(e,r){if(e!==h&&null!==e){if(t["default"].isArrayLike(e)){f(!isFinite(e.length));for(var u=0;u65535)return new Array(r);var n=[];return n.length=r,n}}return[]}function p(e){if(!e)return v;if(Array.isArray(e))return new i.ArrayEnumerator(e);if(t.Type.isArrayLike(e))return new o.IndexEnumerator(function(){return{source:e,length:e.length,pointer:0,step:1}});if(!t.Type.isPrimitive(e)&&s(e))return e.getEnumerator();throw new Error("Unknown enumerable.")}function s(e){return t.Type.hasMemberOfType(e,"getEnumerator",t.Type.FUNCTION)}function c(e){return t.Type.isArrayLike(e)||s(e)}function y(e){return t.Type.hasMemberOfType(e,"moveNext",t.Type.FUNCTION)}function l(e,r){if(e!==d&&null!==e){if(t.Type.isArrayLike(e)){a(!isFinite(e.length));for(var i=0;i 65535)\n return new Array(len);\n var result = [];\n result.length = len;\n return result;\n }\n }\n return [];\n }\n var EmptyEnumerator = (function () {\n function EmptyEnumerator() {\n }\n Object.defineProperty(EmptyEnumerator.prototype, \"current\", {\n get: function () {\n return VOID0;\n },\n enumerable: true,\n configurable: true\n });\n EmptyEnumerator.prototype.moveNext = function () {\n return false;\n };\n EmptyEnumerator.prototype.nextValue = function () {\n return VOID0;\n };\n EmptyEnumerator.prototype.next = function () {\n return {\n value: VOID0,\n done: true\n };\n };\n EmptyEnumerator.prototype.reset = function () { };\n EmptyEnumerator.prototype.dispose = function () { };\n Object.defineProperty(EmptyEnumerator.prototype, \"isEndless\", {\n get: function () {\n return false;\n },\n enumerable: true,\n configurable: true\n });\n return EmptyEnumerator;\n }());\n var Empty = new EmptyEnumerator();\n Object.freeze(Empty);\n exports.empty = Empty;\n function from(source) {\n if (!source)\n return Empty;\n if (Array.isArray(source))\n return new ArrayEnumerator_1.default(source);\n if (Types_1.default.isArrayLike(source)) {\n return new IndexEnumerator_1.default(function () {\n return {\n source: source,\n length: source.length,\n pointer: 0,\n step: 1\n };\n });\n }\n if (!Types_1.default.isPrimitive(source)) {\n if (isEnumerable(source))\n return source.getEnumerator();\n }\n throw new Error(\"Unknown enumerable.\");\n }\n exports.from = from;\n function isEnumerable(instance) {\n return Types_1.default.hasMemberOfType(instance, \"getEnumerator\", Types_1.default.FUNCTION);\n }\n exports.isEnumerable = isEnumerable;\n function isEnumerableOrArrayLike(instance) {\n return Types_1.default.isArrayLike(instance) || isEnumerable(instance);\n }\n exports.isEnumerableOrArrayLike = isEnumerableOrArrayLike;\n function isEnumerator(instance) {\n return Types_1.default.hasMemberOfType(instance, \"moveNext\", Types_1.default.FUNCTION);\n }\n exports.isEnumerator = isEnumerator;\n function forEach(e, action) {\n if (e !== VOID0 && e !== null) {\n if (Types_1.default.isArrayLike(e)) {\n throwIfEndless(!isFinite(e.length));\n for (var i = 0; i < e.length; i++) {\n if (action(e[i], i) === false)\n break;\n }\n return true;\n }\n if (isEnumerator(e)) {\n throwIfEndless(e.isEndless);\n var index = 0;\n while (e.moveNext()) {\n if (action(e.current, index++) === false)\n break;\n }\n return true;\n }\n if (isEnumerable(e)) {\n throwIfEndless(e.isEndless);\n dispose_1.using(e.getEnumerator(), function (f) { return forEach(f, action); });\n return true;\n }\n return false;\n }\n }\n exports.forEach = forEach;\n function toArray(source) {\n if (source === STRING_EMPTY)\n return [];\n if (Array.isArray(source))\n return source.slice();\n var result = initArrayFrom(source);\n if (!forEach(source, function (e, i) { result[i] = e; }))\n throw new UnsupportedEnumerableException_1.default();\n return result;\n }\n exports.toArray = toArray;\n function map(source, selector) {\n var result = initArrayFrom(source);\n if (!forEach(source, function (e, i) { result[i] = selector(e); }))\n throw new UnsupportedEnumerableException_1.default();\n return result;\n }\n exports.map = map;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport {using} from \"../../Disposable/dispose\";\r\nimport Type from \"../../Types\";\r\nimport ArrayEnumerator from \"./ArrayEnumerator\";\r\nimport IndexEnumerator from \"./IndexEnumerator\";\r\nimport UnsupportedEnumerableException from \"./UnsupportedEnumerableException\";\r\n\r\nconst\r\n\tVOID0:any = void(0),\r\n\tSTRING_EMPTY:string = \"\",\r\n\tENDLESS_EXCEPTION_MESSAGE =\r\n\t\t'Cannot call forEach on an endless enumerable. '+\r\n\t\t'Would result in an infinite loop that could hang the current process.';\r\n\r\nexport function throwIfEndless(isEndless:boolean):void {\r\n\tif(isEndless) throw new UnsupportedEnumerableException(ENDLESS_EXCEPTION_MESSAGE);\r\n}\r\n\r\nfunction initArrayFrom(source:IEnumerableOrArray|IEnumerator):any[] {\r\n\tif(Array.isArray(source) || Type.isString(source)) {\r\n\t\tvar len = source.length;\r\n\t\tif(isFinite(len))\r\n\t\t{\r\n\t\t\tif(len>65535) return new Array(len);\r\n\t\t\tvar result:any[] = [];\r\n\t\t\tresult.length = len;\r\n\t\t\treturn result;\r\n\t\t}\r\n\t}\r\n\treturn [];\r\n}\r\n\r\nclass EmptyEnumerator implements IEnumerator\r\n{\r\n\tget current():any\r\n\t{\r\n\t\treturn VOID0;\r\n\t}\r\n\r\n\tmoveNext():boolean\r\n\t{\r\n\t\treturn false;\r\n\t}\r\n\r\n\tnextValue():any\r\n\t{\r\n\t\treturn VOID0;\r\n\t}\r\n\r\n\tnext():IIteratorResult\r\n\t{\r\n\t\treturn {\r\n\t\t\tvalue: VOID0,\r\n\t\t\tdone: true\r\n\t\t}\r\n\t}\r\n\r\n\treset():void { }\r\n\r\n\tdispose():void { }\r\n\r\n\tget isEndless():boolean {\r\n\t\treturn false;\r\n\t}\r\n}\r\n\r\nconst Empty = new EmptyEnumerator();\r\nObject.freeze(Empty);\r\n\r\nexport const empty:IEnumerator = Empty;\r\n\r\n// Could be array, or IEnumerable...\r\nexport function from(source:IEnumerableOrArray):IEnumerator\r\n{\r\n\t// To simplify and prevent null reference exceptions:\r\n\tif(!source)\r\n\t\treturn Empty;\r\n\r\n\tif(Array.isArray(source))\r\n\t\treturn new ArrayEnumerator(source);\r\n\r\n\tif(Type.isArrayLike(source))\r\n\t{\r\n\t\treturn new IndexEnumerator(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\treturn {\r\n\t\t\t\t\tsource: source,\r\n\t\t\t\t\tlength: source.length,\r\n\t\t\t\t\tpointer: 0,\r\n\t\t\t\t\tstep: 1\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tif(!Type.isPrimitive(source))\r\n\t{\r\n\t\tif(isEnumerable(source))\r\n\t\t\treturn source.getEnumerator();\r\n\r\n\t}\r\n\r\n\tthrow new Error(\"Unknown enumerable.\");\r\n}\r\n\r\nexport function isEnumerable(instance:any):instance is IEnumerable\r\n{\r\n\treturn Type.hasMemberOfType>(instance, \"getEnumerator\", Type.FUNCTION);\r\n}\r\n\r\nexport function isEnumerableOrArrayLike(instance:any):instance is IEnumerableOrArray\r\n{\r\n\treturn Type.isArrayLike(instance) || isEnumerable(instance);\r\n}\r\n\r\n\r\nexport function isEnumerator(instance:any):instance is IEnumerator\r\n{\r\n\treturn Type.hasMemberOfType>(instance, \"moveNext\", Type.FUNCTION);\r\n}\r\n\r\n/**\r\n * Flexible method for iterating any enumerable, enumerable, array, or array-like object.\r\n * @param e\r\n * @param action\r\n * @returns true if enumerated, false if null or unrecognized enumerable, void if nothing done\r\n */\r\nexport function forEach(\r\n\te:IEnumerableOrArray|IEnumerator,\r\n\taction:(element:T, index?:number) => any):boolean|void\r\n{\r\n\tif(e!==VOID0 && e!==null) // Allow for empty string.\r\n\t{\r\n\t\tif(Type.isArrayLike(e))\r\n\t\t{\r\n\t\t\t// Assume e.length is constant or at least doesn't deviate to infinite or NaN.\r\n\t\t\tthrowIfEndless(!isFinite(e.length));\r\n\r\n\t\t\tfor(let i = 0; i(e))\r\n\t\t{\r\n\t\t\tthrowIfEndless(e.isEndless);\r\n\r\n\t\t\tvar index = 0;\r\n\t\t\t// Return value of action can be anything, but if it is (===) false then the forEach will discontinue.\r\n\t\t\twhile(e.moveNext())\r\n\t\t\t{\r\n\t\t\t\tif(action(e.current, index++)===false)\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tif(isEnumerable(e))\r\n\t\t{\r\n\t\t\tthrowIfEndless(e.isEndless);\r\n\r\n\t\t\t// For enumerators that aren't EnumerableBase, ensure dispose is called.\r\n\t\t\tusing(\r\n\t\t\t\t(>e).getEnumerator(),\r\n\t\t\t\tf=>forEach(f, action)\r\n\t\t\t);\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n}\r\n\r\n/**\r\n * Converts any enumerable to an array.\r\n * @param source\r\n * @returns {any}\r\n */\r\nexport function toArray(\r\n\tsource:IEnumerableOrArray|IEnumerator):T[]\r\n{\r\n\tif(source===STRING_EMPTY) return [];\r\n\r\n\tif(Array.isArray(source))\r\n\t\treturn source.slice();\r\n\r\n\tvar result:T[] = initArrayFrom(source);\r\n\tif(!forEach(source,(e, i) => { result[i] = e; }))\r\n\t\tthrow new UnsupportedEnumerableException();\r\n\r\n\treturn result;\r\n}\r\n\r\n/**\r\n * Converts any enumerable to an array of selected values.\r\n * @param source\r\n * @param selector\r\n * @returns {TResult[]}\r\n */\r\nexport function map(\r\n\tsource:IEnumerableOrArray|IEnumerator,\r\n\tselector:Selector):TResult[]\r\n{\r\n\tvar result:TResult[] = initArrayFrom(source);\r\n\tif(!forEach(source,(e, i) => { result[i] = selector(e); }))\r\n\t\tthrow new UnsupportedEnumerableException();\r\n\r\n\treturn result;\r\n}"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Enumeration/Enumerator.js","System/Collections/Enumeration/Enumerator.ts"],"names":["define","require","exports","dispose_1","Types_1","ArrayEnumerator_1","IndexEnumerator_1","UnsupportedEnumerableException_1","throwIfEndless","isEndless","UnsupportedEnumerableException","ENDLESS_EXCEPTION_MESSAGE","initArrayFrom","source","Array","isArray","Type","isString","len","length","isFinite","result","from","Empty","ArrayEnumerator","isArrayLike","IndexEnumerator","pointer","step","isPrimitive","isEnumerable","getEnumerator","Error","instance","hasMemberOfType","FUNCTION","isEnumerableOrArrayLike","isEnumerator","forEach","e","action","VOID0","i","index","moveNext","current","using","f","toArray","STRING_EMPTY","slice","map","selector","EmptyEnumerator","Object","defineProperty","prototype","get","enumerable","configurable","nextValue","next","value","done","reset","dispose","freeze","empty"],"mappings":"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","file":"System/Collections/Enumeration/Enumerator.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\", \"../../Disposable/dispose\", \"../../Types\", \"./ArrayEnumerator\", \"./IndexEnumerator\", \"./UnsupportedEnumerableException\"], function (require, exports, dispose_1, Types_1, ArrayEnumerator_1, IndexEnumerator_1, UnsupportedEnumerableException_1) {\n \"use strict\";\n var VOID0 = void (0), STRING_EMPTY = \"\", ENDLESS_EXCEPTION_MESSAGE = 'Cannot call forEach on an endless enumerable. ' +\n 'Would result in an infinite loop that could hang the current process.';\n function throwIfEndless(isEndless) {\n if (isEndless)\n throw new UnsupportedEnumerableException_1.UnsupportedEnumerableException(ENDLESS_EXCEPTION_MESSAGE);\n }\n exports.throwIfEndless = throwIfEndless;\n function initArrayFrom(source) {\n if (Array.isArray(source) || Types_1.Type.isString(source)) {\n var len = source.length;\n if (isFinite(len)) {\n if (len > 65535)\n return new Array(len);\n var result = [];\n result.length = len;\n return result;\n }\n }\n return [];\n }\n var EmptyEnumerator = (function () {\n function EmptyEnumerator() {\n }\n Object.defineProperty(EmptyEnumerator.prototype, \"current\", {\n get: function () {\n return VOID0;\n },\n enumerable: true,\n configurable: true\n });\n EmptyEnumerator.prototype.moveNext = function () {\n return false;\n };\n EmptyEnumerator.prototype.nextValue = function () {\n return VOID0;\n };\n EmptyEnumerator.prototype.next = function () {\n return {\n value: VOID0,\n done: true\n };\n };\n EmptyEnumerator.prototype.reset = function () { };\n EmptyEnumerator.prototype.dispose = function () { };\n Object.defineProperty(EmptyEnumerator.prototype, \"isEndless\", {\n get: function () {\n return false;\n },\n enumerable: true,\n configurable: true\n });\n return EmptyEnumerator;\n }());\n var Empty = new EmptyEnumerator();\n Object.freeze(Empty);\n exports.empty = Empty;\n function from(source) {\n if (!source)\n return Empty;\n if (Array.isArray(source))\n return new ArrayEnumerator_1.ArrayEnumerator(source);\n if (Types_1.Type.isArrayLike(source)) {\n return new IndexEnumerator_1.IndexEnumerator(function () {\n return {\n source: source,\n length: source.length,\n pointer: 0,\n step: 1\n };\n });\n }\n if (!Types_1.Type.isPrimitive(source)) {\n if (isEnumerable(source))\n return source.getEnumerator();\n }\n throw new Error(\"Unknown enumerable.\");\n }\n exports.from = from;\n function isEnumerable(instance) {\n return Types_1.Type.hasMemberOfType(instance, \"getEnumerator\", Types_1.Type.FUNCTION);\n }\n exports.isEnumerable = isEnumerable;\n function isEnumerableOrArrayLike(instance) {\n return Types_1.Type.isArrayLike(instance) || isEnumerable(instance);\n }\n exports.isEnumerableOrArrayLike = isEnumerableOrArrayLike;\n function isEnumerator(instance) {\n return Types_1.Type.hasMemberOfType(instance, \"moveNext\", Types_1.Type.FUNCTION);\n }\n exports.isEnumerator = isEnumerator;\n function forEach(e, action) {\n if (e !== VOID0 && e !== null) {\n if (Types_1.Type.isArrayLike(e)) {\n throwIfEndless(!isFinite(e.length));\n for (var i = 0; i < e.length; i++) {\n if (action(e[i], i) === false)\n break;\n }\n return true;\n }\n if (isEnumerator(e)) {\n throwIfEndless(e.isEndless);\n var index = 0;\n while (e.moveNext()) {\n if (action(e.current, index++) === false)\n break;\n }\n return true;\n }\n if (isEnumerable(e)) {\n throwIfEndless(e.isEndless);\n dispose_1.using(e.getEnumerator(), function (f) { return forEach(f, action); });\n return true;\n }\n return false;\n }\n }\n exports.forEach = forEach;\n function toArray(source) {\n if (source === STRING_EMPTY)\n return [];\n if (Array.isArray(source))\n return source.slice();\n var result = initArrayFrom(source);\n if (!forEach(source, function (e, i) { result[i] = e; }))\n throw new UnsupportedEnumerableException_1.UnsupportedEnumerableException();\n return result;\n }\n exports.toArray = toArray;\n function map(source, selector) {\n var result = initArrayFrom(source);\n if (!forEach(source, function (e, i) { result[i] = selector(e); }))\n throw new UnsupportedEnumerableException_1.UnsupportedEnumerableException();\n return result;\n }\n exports.map = map;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {using} from \"../../Disposable/dispose\";\r\nimport {Type} from \"../../Types\";\r\nimport {ArrayEnumerator} from \"./ArrayEnumerator\";\r\nimport {IndexEnumerator} from \"./IndexEnumerator\";\r\nimport {UnsupportedEnumerableException} from \"./UnsupportedEnumerableException\";\r\nimport {Selector} from \"../../FunctionTypes\";\r\nimport {IEnumerator} from \"./IEnumerator\";\r\nimport {IEnumerable} from \"./IEnumerable\";\r\nimport {IIteratorResult} from \"./IIterator\";\r\nimport {IEnumerableOrArray} from \"../IEnumerableOrArray\";\r\n\r\nconst\r\n\tVOID0:any = void(0),\r\n\tSTRING_EMPTY:string = \"\",\r\n\tENDLESS_EXCEPTION_MESSAGE =\r\n\t\t'Cannot call forEach on an endless enumerable. ' +\r\n\t\t'Would result in an infinite loop that could hang the current process.';\r\n\r\nexport function throwIfEndless(isEndless:boolean):void\r\n{\r\n\tif(isEndless) throw new UnsupportedEnumerableException(ENDLESS_EXCEPTION_MESSAGE);\r\n}\r\n\r\nfunction initArrayFrom(source:IEnumerableOrArray|IEnumerator):any[]\r\n{\r\n\tif(Array.isArray(source) || Type.isString(source))\r\n\t{\r\n\t\tvar len = source.length;\r\n\t\tif(isFinite(len))\r\n\t\t{\r\n\t\t\tif(len>65535) return new Array(len);\r\n\t\t\tvar result:any[] = [];\r\n\t\t\tresult.length = len;\r\n\t\t\treturn result;\r\n\t\t}\r\n\t}\r\n\treturn [];\r\n}\r\n\r\nclass EmptyEnumerator implements IEnumerator\r\n{\r\n\tget current():any\r\n\t{\r\n\t\treturn VOID0;\r\n\t}\r\n\r\n\tmoveNext():boolean\r\n\t{\r\n\t\treturn false;\r\n\t}\r\n\r\n\tnextValue():any\r\n\t{\r\n\t\treturn VOID0;\r\n\t}\r\n\r\n\tnext():IIteratorResult\r\n\t{\r\n\t\treturn {\r\n\t\t\tvalue: VOID0,\r\n\t\t\tdone: true\r\n\t\t}\r\n\t}\r\n\r\n\treset():void { }\r\n\r\n\tdispose():void { }\r\n\r\n\tget isEndless():boolean\r\n\t{\r\n\t\treturn false;\r\n\t}\r\n}\r\n\r\nconst Empty = new EmptyEnumerator();\r\nObject.freeze(Empty);\r\n\r\nexport const empty:IEnumerator = Empty;\r\n\r\n// Could be array, or IEnumerable...\r\nexport function from(source:IEnumerableOrArray):IEnumerator\r\n{\r\n\t// To simplify and prevent null reference exceptions:\r\n\tif(!source)\r\n\t\treturn Empty;\r\n\r\n\tif(Array.isArray(source))\r\n\t\treturn new ArrayEnumerator(source);\r\n\r\n\tif(Type.isArrayLike(source))\r\n\t{\r\n\t\treturn new IndexEnumerator(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\treturn {\r\n\t\t\t\t\tsource: source,\r\n\t\t\t\t\tlength: source.length,\r\n\t\t\t\t\tpointer: 0,\r\n\t\t\t\t\tstep: 1\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tif(!Type.isPrimitive(source))\r\n\t{\r\n\t\tif(isEnumerable(source))\r\n\t\t\treturn source.getEnumerator();\r\n\r\n\t}\r\n\r\n\tthrow new Error(\"Unknown enumerable.\");\r\n}\r\n\r\nexport function isEnumerable(instance:any):instance is IEnumerable\r\n{\r\n\treturn Type.hasMemberOfType>(instance, \"getEnumerator\", Type.FUNCTION);\r\n}\r\n\r\nexport function isEnumerableOrArrayLike(instance:any):instance is IEnumerableOrArray\r\n{\r\n\treturn Type.isArrayLike(instance) || isEnumerable(instance);\r\n}\r\n\r\n\r\nexport function isEnumerator(instance:any):instance is IEnumerator\r\n{\r\n\treturn Type.hasMemberOfType>(instance, \"moveNext\", Type.FUNCTION);\r\n}\r\n\r\n/**\r\n * Flexible method for iterating any enumerable, enumerable, array, or array-like object.\r\n * @param e\r\n * @param action\r\n * @returns true if enumerated, false if null or unrecognized enumerable, void if nothing done\r\n */\r\nexport function forEach(\r\n\te:IEnumerableOrArray|IEnumerator,\r\n\taction:(element:T, index?:number) => any):boolean|void\r\n{\r\n\tif(e!==VOID0 && e!==null) // Allow for empty string.\r\n\t{\r\n\t\tif(Type.isArrayLike(e))\r\n\t\t{\r\n\t\t\t// Assume e.length is constant or at least doesn't deviate to infinite or NaN.\r\n\t\t\tthrowIfEndless(!isFinite(e.length));\r\n\r\n\t\t\tfor(let i = 0; i(e))\r\n\t\t{\r\n\t\t\tthrowIfEndless(e.isEndless);\r\n\r\n\t\t\tvar index = 0;\r\n\t\t\t// Return value of action can be anything, but if it is (===) false then the forEach will discontinue.\r\n\t\t\twhile(e.moveNext())\r\n\t\t\t{\r\n\t\t\t\tif(action(e.current, index++)===false)\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tif(isEnumerable(e))\r\n\t\t{\r\n\t\t\tthrowIfEndless(e.isEndless);\r\n\r\n\t\t\t// For enumerators that aren't EnumerableBase, ensure dispose is called.\r\n\t\t\tusing(\r\n\t\t\t\t(>e).getEnumerator(),\r\n\t\t\t\tf=>forEach(f, action)\r\n\t\t\t);\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n}\r\n\r\n/**\r\n * Converts any enumerable to an array.\r\n * @param source\r\n * @returns {any}\r\n */\r\nexport function toArray(\r\n\tsource:IEnumerableOrArray|IEnumerator):T[]\r\n{\r\n\tif(source===STRING_EMPTY) return [];\r\n\r\n\tif(Array.isArray(source))\r\n\t\treturn source.slice();\r\n\r\n\tvar result:T[] = initArrayFrom(source);\r\n\tif(!forEach(source, (e, i) => { result[i] = e; }))\r\n\t\tthrow new UnsupportedEnumerableException();\r\n\r\n\treturn result;\r\n}\r\n\r\n/**\r\n * Converts any enumerable to an array of selected values.\r\n * @param source\r\n * @param selector\r\n * @returns {TResult[]}\r\n */\r\nexport function map(\r\n\tsource:IEnumerableOrArray|IEnumerator,\r\n\tselector:Selector):TResult[]\r\n{\r\n\tvar result:TResult[] = initArrayFrom(source);\r\n\tif(!forEach(source, (e, i) => { result[i] = selector(e); }))\r\n\t\tthrow new UnsupportedEnumerableException();\r\n\r\n\treturn result;\r\n}"]} \ No newline at end of file diff --git a/dist/amd/System/Collections/Enumeration/EnumeratorBase.d.ts b/dist/amd/System/Collections/Enumeration/EnumeratorBase.d.ts index 8ed548b8..e86eaee3 100644 --- a/dist/amd/System/Collections/Enumeration/EnumeratorBase.d.ts +++ b/dist/amd/System/Collections/Enumeration/EnumeratorBase.d.ts @@ -1,13 +1,12 @@ -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import DisposableBase from "../../Disposable/DisposableBase"; -export default class EnumeratorBase extends DisposableBase implements IEnumerator { +import { DisposableBase } from "../../Disposable/DisposableBase"; +import { IEnumerator } from "./IEnumerator"; +import { IIteratorResult } from "./IIterator"; +import { IYield } from "./IYield"; +export declare class EnumeratorBase extends DisposableBase implements IEnumerator { private _initializer; private _tryGetNext; private _yielder; @@ -24,3 +23,4 @@ export default class EnumeratorBase extends DisposableBase implements IEnumer next(): IIteratorResult; protected _onDispose(): void; } +export default EnumeratorBase; diff --git a/dist/amd/System/Collections/Enumeration/EnumeratorBase.js b/dist/amd/System/Collections/Enumeration/EnumeratorBase.js index 77ffdee7..ac4b0e3c 100644 --- a/dist/amd/System/Collections/Enumeration/EnumeratorBase.js +++ b/dist/amd/System/Collections/Enumeration/EnumeratorBase.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)};define(["require","exports","../../Types","../../Disposable/DisposableBase","../../Disposable/ObjectPool"],function(e,t,r,n,i){"use strict";function o(e){return s||(s=new i["default"](40,function(){return new a})),e?(e.yieldBreak(),void s.add(e)):s.take()}var s,u,l=void 0,a=function(){function e(){this._current=l}return Object.defineProperty(e.prototype,"current",{get:function(){return this._current},enumerable:!0,configurable:!0}),e.prototype.yieldReturn=function(e){return this._current=e,!0},e.prototype.yieldBreak=function(){return this._current=l,!1},e.prototype.dispose=function(){this.yieldBreak()},e}();!function(e){e[e.Before=0]="Before",e[e.Running=1]="Running",e[e.After=2]="After"}(u||(u={}));var c=function(e){function t(t,n,i,o){e.call(this),this._initializer=t,this._tryGetNext=n,this.reset(),r["default"].isBoolean(o)?this._isEndless=o:r["default"].isBoolean(i)&&(this._isEndless=i),r["default"].isFunction(i)&&(this._disposer=i)}return __extends(t,e),Object.defineProperty(t.prototype,"current",{get:function(){return this._yielder.current},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isEndless",{get:function(){return this._isEndless},enumerable:!0,configurable:!0}),t.prototype.reset=function(){var e=this;e.throwIfDisposed();var t=e._yielder;t?t.yieldBreak():e._yielder=o(),e._state=u.Before},t.prototype.moveNext=function(){var e=this;try{switch(e._state){case u.Before:e._state=u.Running;var t=e._initializer;t&&t();case u.Running:return e._tryGetNext(e._yielder)?!0:(this.dispose(),!1);case u.After:return!1}}catch(r){throw this.dispose(),r}},t.prototype.nextValue=function(){return this.moveNext()?this._yielder.current:l},t.prototype.next=function(){return this.moveNext()?{value:this._yielder.current,done:!1}:{value:l,done:!0}},t.prototype._onDispose=function(){var e=this,t=e._disposer;e._initializer=null,e._disposer=null;var r=e._yielder;e._yielder=null,o(r);try{t&&t()}finally{this._state=u.After}},t}(n["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=c}); +var __extends=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)};define(["require","exports","../../Types","../../Disposable/DisposableBase","../../Disposable/ObjectPool"],function(e,t,r,n,i){"use strict";function o(e){return s||(s=new i.ObjectPool(40,function(){return new c})),e?(e.yieldBreak(),void s.add(e)):s.take()}var s,u,a=void 0,c=function(){function e(){this._current=a}return Object.defineProperty(e.prototype,"current",{get:function(){return this._current},enumerable:!0,configurable:!0}),e.prototype.yieldReturn=function(e){return this._current=e,!0},e.prototype.yieldBreak=function(){return this._current=a,!1},e.prototype.dispose=function(){this.yieldBreak()},e}();!function(e){e[e.Before=0]="Before",e[e.Running=1]="Running",e[e.After=2]="After"}(u||(u={}));var l=function(e){function t(t,n,i,o){e.call(this),this._initializer=t,this._tryGetNext=n,this.reset(),r.Type.isBoolean(o)?this._isEndless=o:r.Type.isBoolean(i)&&(this._isEndless=i),r.Type.isFunction(i)&&(this._disposer=i)}return __extends(t,e),Object.defineProperty(t.prototype,"current",{get:function(){return this._yielder.current},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isEndless",{get:function(){return this._isEndless},enumerable:!0,configurable:!0}),t.prototype.reset=function(){var e=this;e.throwIfDisposed();var t=e._yielder;t?t.yieldBreak():e._yielder=o(),e._state=u.Before},t.prototype.moveNext=function(){var e=this;try{switch(e._state){case u.Before:e._state=u.Running;var t=e._initializer;t&&t();case u.Running:return e._tryGetNext(e._yielder)?!0:(this.dispose(),!1);case u.After:return!1}}catch(r){throw this.dispose(),r}},t.prototype.nextValue=function(){return this.moveNext()?this._yielder.current:a},t.prototype.next=function(){return this.moveNext()?{value:this._yielder.current,done:!1}:{value:a,done:!0}},t.prototype._onDispose=function(){var e=this,t=e._disposer;e._initializer=null,e._disposer=null;var r=e._yielder;e._yielder=null,o(r);try{t&&t()}finally{this._state=u.After}},t}(n.DisposableBase);t.EnumeratorBase=l,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=l}); //# sourceMappingURL=EnumeratorBase.js.map diff --git a/dist/amd/System/Collections/Enumeration/EnumeratorBase.js.map b/dist/amd/System/Collections/Enumeration/EnumeratorBase.js.map index 5c85be64..4b226d40 100644 --- a/dist/amd/System/Collections/Enumeration/EnumeratorBase.js.map +++ b/dist/amd/System/Collections/Enumeration/EnumeratorBase.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Enumeration/EnumeratorBase.js","System/Collections/Enumeration/EnumeratorBase.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","Types_1","DisposableBase_1","ObjectPool_1","yielder","recycle","yielderPool","Yielder","yieldBreak","add","take","EnumeratorState","VOID0","_current","defineProperty","get","enumerable","configurable","yieldReturn","value","dispose","EnumeratorBase","_super","_initializer","_tryGetNext","disposer","isEndless","call","reset","isBoolean","_isEndless","isFunction","_disposer","_yielder","current","_","throwIfDisposed","y","_state","Before","moveNext","Running","initializer","After","e","nextValue","next","done","_onDispose"],"mappings":"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","file":"System/Collections/Enumeration/EnumeratorBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"../../Types\", \"../../Disposable/DisposableBase\", \"../../Disposable/ObjectPool\"], function (require, exports, Types_1, DisposableBase_1, ObjectPool_1) {\n 'use strict';\n var VOID0 = void (0);\n var yielderPool;\n function yielder(recycle) {\n if (!yielderPool)\n yielderPool\n = new ObjectPool_1.default(40, function () { return new Yielder(); });\n if (!recycle)\n return yielderPool.take();\n recycle.yieldBreak();\n yielderPool.add(recycle);\n }\n var Yielder = (function () {\n function Yielder() {\n this._current = VOID0;\n }\n Object.defineProperty(Yielder.prototype, \"current\", {\n get: function () { return this._current; },\n enumerable: true,\n configurable: true\n });\n Yielder.prototype.yieldReturn = function (value) {\n this._current = value;\n return true;\n };\n Yielder.prototype.yieldBreak = function () {\n this._current = VOID0;\n return false;\n };\n Yielder.prototype.dispose = function () {\n this.yieldBreak();\n };\n return Yielder;\n }());\n var EnumeratorState;\n (function (EnumeratorState) {\n EnumeratorState[EnumeratorState[\"Before\"] = 0] = \"Before\";\n EnumeratorState[EnumeratorState[\"Running\"] = 1] = \"Running\";\n EnumeratorState[EnumeratorState[\"After\"] = 2] = \"After\";\n })(EnumeratorState || (EnumeratorState = {}));\n var EnumeratorBase = (function (_super) {\n __extends(EnumeratorBase, _super);\n function EnumeratorBase(_initializer, _tryGetNext, disposer, isEndless) {\n _super.call(this);\n this._initializer = _initializer;\n this._tryGetNext = _tryGetNext;\n this.reset();\n if (Types_1.default.isBoolean(isEndless))\n this._isEndless = isEndless;\n else if (Types_1.default.isBoolean(disposer))\n this._isEndless = disposer;\n if (Types_1.default.isFunction(disposer))\n this._disposer = disposer;\n }\n Object.defineProperty(EnumeratorBase.prototype, \"current\", {\n get: function () {\n return this._yielder.current;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EnumeratorBase.prototype, \"isEndless\", {\n get: function () {\n return this._isEndless;\n },\n enumerable: true,\n configurable: true\n });\n EnumeratorBase.prototype.reset = function () {\n var _ = this;\n _.throwIfDisposed();\n var y = _._yielder;\n if (y)\n y.yieldBreak();\n else\n _._yielder = yielder();\n _._state = EnumeratorState.Before;\n };\n EnumeratorBase.prototype.moveNext = function () {\n var _ = this;\n try {\n switch (_._state) {\n case EnumeratorState.Before:\n _._state = EnumeratorState.Running;\n var initializer = _._initializer;\n if (initializer)\n initializer();\n case EnumeratorState.Running:\n if (_._tryGetNext(_._yielder)) {\n return true;\n }\n else {\n this.dispose();\n return false;\n }\n case EnumeratorState.After:\n return false;\n }\n }\n catch (e) {\n this.dispose();\n throw e;\n }\n };\n EnumeratorBase.prototype.nextValue = function () {\n return this.moveNext()\n ? this._yielder.current\n : VOID0;\n };\n EnumeratorBase.prototype.next = function () {\n return this.moveNext() ?\n {\n value: this._yielder.current,\n done: false\n } : {\n value: VOID0,\n done: true\n };\n };\n EnumeratorBase.prototype._onDispose = function () {\n var _ = this, disposer = _._disposer;\n _._initializer = null;\n _._disposer = null;\n var y = _._yielder;\n _._yielder = null;\n yielder(y);\n try {\n if (disposer)\n disposer();\n }\n finally {\n this._state = EnumeratorState.After;\n }\n };\n return EnumeratorBase;\n }(DisposableBase_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = EnumeratorBase;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport Type from \"../../Types\";\r\nimport DisposableBase from \"../../Disposable/DisposableBase\";\r\nimport ObjectPool from \"../../Disposable/ObjectPool\";\r\n\r\nconst VOID0:any = void(0);\r\n\r\nvar yielderPool:ObjectPool>;\r\nfunction yielder():Yielder;\r\nfunction yielder(recycle?:Yielder):void;\r\nfunction yielder(recycle?:Yielder):Yielder\r\n{\r\n\tif(!yielderPool)\r\n\t\tyielderPool\r\n\t\t\t= new ObjectPool>(40, ()=>new Yielder());\r\n\tif(!recycle) return yielderPool.take();\r\n\trecycle.yieldBreak();\r\n\tyielderPool.add(recycle);\r\n}\r\n\r\nclass Yielder implements IYield, IDisposable\r\n{\r\n\tprivate _current:T = VOID0;\r\n\tget current():T { return this._current; }\r\n\r\n\tyieldReturn(value:T):boolean\r\n\t{\r\n\t\tthis._current = value;\r\n\t\treturn true;\r\n\t}\r\n\r\n\tyieldBreak():boolean\r\n\t{\r\n\t\tthis._current = VOID0;\r\n\t\treturn false;\r\n\t}\r\n\r\n\tdispose():void\r\n\t{\r\n\t\tthis.yieldBreak();\r\n\t}\r\n}\r\n\r\ntype ActionVoid = ()=>void;\r\n\r\n// IEnumerator State\r\nenum EnumeratorState { Before, Running, After }\r\n\r\n// \"Enumerator\" is conflict JScript's \"Enumerator\"\r\n// Naming this class EnumeratorBase to avoid collision with IE.\r\nexport default\r\nclass EnumeratorBase extends DisposableBase implements IEnumerator\r\n{\r\n\r\n\tprivate _yielder:Yielder;\r\n\tprivate _state:EnumeratorState;\r\n\tprivate _disposer:()=>void;\r\n\r\n\tget current():T\r\n\t{\r\n\t\treturn this._yielder.current;\r\n\t}\r\n\r\n\tconstructor(\r\n\t\tinitializer:() => void,\r\n\t\ttryGetNext:(yielder:IYield) => boolean,\r\n\t\tisEndless?:boolean);\r\n\tconstructor(\r\n\t\tinitializer:() => void,\r\n\t\ttryGetNext:(yielder:IYield) => boolean,\r\n\t\tdisposer?:()=>void,\r\n\t\tisEndless?:boolean);\r\n\tconstructor(\r\n\t\tprivate _initializer:() => void,\r\n\t\tprivate _tryGetNext:(yielder:IYield) => boolean,\r\n\t\tdisposer?:ActionVoid|boolean,\r\n\t\tisEndless?:boolean)\r\n\t{\r\n\t\tsuper();\r\n\t\tthis.reset();\r\n\t\tif(Type.isBoolean(isEndless))\r\n\t\t\tthis._isEndless = isEndless;\r\n\t\telse if(Type.isBoolean(disposer))\r\n\t\t\tthis._isEndless = disposer;\r\n\r\n\t\tif(Type.isFunction(disposer))\r\n\t\t\tthis._disposer = disposer;\r\n\t}\r\n\r\n\tprotected _isEndless:boolean;\r\n\t/*\r\n\t * Provides a mechanism to indicate if this enumerable never ends.\r\n\t * If set to true, some operations that expect a finite result may throw.\r\n\t * Explicit false means it has an end.\r\n\t * Implicit void means unknown.\r\n\t */\r\n\tget isEndless():boolean {\r\n\t\treturn this._isEndless;\r\n\t}\r\n\r\n\treset():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\tvar y = _._yielder;\r\n\t\tif(y) y.yieldBreak(); // Already exists? Reset.\r\n\t\telse _._yielder = yielder(); // New? Get one from the object pool.\r\n\t\t_._state = EnumeratorState.Before;\r\n\t}\r\n\r\n\tmoveNext():boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\ttry\r\n\t\t{\r\n\t\t\tswitch(_._state)\r\n\t\t\t{\r\n\t\t\t\tcase EnumeratorState.Before:\r\n\t\t\t\t\t_._state = EnumeratorState.Running;\r\n\t\t\t\t\tvar initializer = _._initializer;\r\n\t\t\t\t\tif(initializer)\r\n\t\t\t\t\t\tinitializer();\r\n\t\t\t\t// fall through\r\n\t\t\t\tcase EnumeratorState.Running:\r\n\t\t\t\t\tif(_._tryGetNext(_._yielder))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthis.dispose();\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\tcase EnumeratorState.After:\r\n\t\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\t\tcatch(e)\r\n\t\t{\r\n\t\t\tthis.dispose();\r\n\t\t\tthrow e;\r\n\t\t}\r\n\t}\r\n\r\n\tnextValue():T\r\n\t{\r\n\t\treturn this.moveNext()\r\n\t\t\t? this._yielder.current\r\n\t\t\t: VOID0;\r\n\t}\r\n\r\n\t/**\r\n\t * Exposed for compatibility with generators.\r\n\t */\r\n\tnext():IIteratorResult\r\n\t{\r\n\t\treturn this.moveNext() ?\r\n\t\t{\r\n\t\t\tvalue: this._yielder.current,\r\n\t\t\tdone: false\r\n\t\t} : {\r\n\t\t\tvalue: VOID0,\r\n\t\t\tdone: true\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tvar _ = this, disposer = _._disposer;\r\n\r\n\t\t_._initializer = null;\r\n\t\t_._disposer = null;\r\n\r\n\r\n\t\tvar y = _._yielder;\r\n\t\t_._yielder = null;\r\n\t\tyielder(y);\r\n\r\n\t\ttry\r\n\t\t{\r\n\t\t\tif(disposer)\r\n\t\t\t\tdisposer();\r\n\t\t}\r\n\t\tfinally\r\n\t\t{\r\n\t\t\t//if(this._state==EnumeratorState.Running)\r\n\t\t\tthis._state = EnumeratorState.After;\r\n\t\t}\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Enumeration/EnumeratorBase.js","System/Collections/Enumeration/EnumeratorBase.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","Types_1","DisposableBase_1","ObjectPool_1","yielder","recycle","yielderPool","ObjectPool","Yielder","yieldBreak","add","take","EnumeratorState","VOID0","_current","defineProperty","get","enumerable","configurable","yieldReturn","value","dispose","EnumeratorBase","_super","_initializer","_tryGetNext","disposer","isEndless","call","reset","Type","isBoolean","_isEndless","isFunction","_disposer","_yielder","current","_","throwIfDisposed","y","_state","Before","moveNext","Running","initializer","After","e","nextValue","next","done","_onDispose","DisposableBase"],"mappings":"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","file":"System/Collections/Enumeration/EnumeratorBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"../../Types\", \"../../Disposable/DisposableBase\", \"../../Disposable/ObjectPool\"], function (require, exports, Types_1, DisposableBase_1, ObjectPool_1) {\n \"use strict\";\n var VOID0 = void (0);\n var yielderPool;\n function yielder(recycle) {\n if (!yielderPool)\n yielderPool\n = new ObjectPool_1.ObjectPool(40, function () { return new Yielder(); });\n if (!recycle)\n return yielderPool.take();\n recycle.yieldBreak();\n yielderPool.add(recycle);\n }\n var Yielder = (function () {\n function Yielder() {\n this._current = VOID0;\n }\n Object.defineProperty(Yielder.prototype, \"current\", {\n get: function () { return this._current; },\n enumerable: true,\n configurable: true\n });\n Yielder.prototype.yieldReturn = function (value) {\n this._current = value;\n return true;\n };\n Yielder.prototype.yieldBreak = function () {\n this._current = VOID0;\n return false;\n };\n Yielder.prototype.dispose = function () {\n this.yieldBreak();\n };\n return Yielder;\n }());\n var EnumeratorState;\n (function (EnumeratorState) {\n EnumeratorState[EnumeratorState[\"Before\"] = 0] = \"Before\";\n EnumeratorState[EnumeratorState[\"Running\"] = 1] = \"Running\";\n EnumeratorState[EnumeratorState[\"After\"] = 2] = \"After\";\n })(EnumeratorState || (EnumeratorState = {}));\n var EnumeratorBase = (function (_super) {\n __extends(EnumeratorBase, _super);\n function EnumeratorBase(_initializer, _tryGetNext, disposer, isEndless) {\n _super.call(this);\n this._initializer = _initializer;\n this._tryGetNext = _tryGetNext;\n this.reset();\n if (Types_1.Type.isBoolean(isEndless))\n this._isEndless = isEndless;\n else if (Types_1.Type.isBoolean(disposer))\n this._isEndless = disposer;\n if (Types_1.Type.isFunction(disposer))\n this._disposer = disposer;\n }\n Object.defineProperty(EnumeratorBase.prototype, \"current\", {\n get: function () {\n return this._yielder.current;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EnumeratorBase.prototype, \"isEndless\", {\n get: function () {\n return this._isEndless;\n },\n enumerable: true,\n configurable: true\n });\n EnumeratorBase.prototype.reset = function () {\n var _ = this;\n _.throwIfDisposed();\n var y = _._yielder;\n if (y)\n y.yieldBreak();\n else\n _._yielder = yielder();\n _._state = EnumeratorState.Before;\n };\n EnumeratorBase.prototype.moveNext = function () {\n var _ = this;\n try {\n switch (_._state) {\n case EnumeratorState.Before:\n _._state = EnumeratorState.Running;\n var initializer = _._initializer;\n if (initializer)\n initializer();\n case EnumeratorState.Running:\n if (_._tryGetNext(_._yielder)) {\n return true;\n }\n else {\n this.dispose();\n return false;\n }\n case EnumeratorState.After:\n return false;\n }\n }\n catch (e) {\n this.dispose();\n throw e;\n }\n };\n EnumeratorBase.prototype.nextValue = function () {\n return this.moveNext()\n ? this._yielder.current\n : VOID0;\n };\n EnumeratorBase.prototype.next = function () {\n return this.moveNext() ?\n {\n value: this._yielder.current,\n done: false\n } : {\n value: VOID0,\n done: true\n };\n };\n EnumeratorBase.prototype._onDispose = function () {\n var _ = this, disposer = _._disposer;\n _._initializer = null;\n _._disposer = null;\n var y = _._yielder;\n _._yielder = null;\n yielder(y);\n try {\n if (disposer)\n disposer();\n }\n finally {\n this._state = EnumeratorState.After;\n }\n };\n return EnumeratorBase;\n }(DisposableBase_1.DisposableBase));\n exports.EnumeratorBase = EnumeratorBase;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = EnumeratorBase;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {Type} from \"../../Types\";\r\nimport {DisposableBase} from \"../../Disposable/DisposableBase\";\r\nimport {ObjectPool} from \"../../Disposable/ObjectPool\";\r\nimport {IDisposable} from \"../../Disposable/IDisposable\";\r\nimport {IEnumerator} from \"./IEnumerator\";\r\nimport {IIteratorResult} from \"./IIterator\";\r\nimport {IYield} from \"./IYield\";\r\n\r\nconst VOID0:any = void(0);\r\n\r\nvar yielderPool:ObjectPool>;\r\nfunction yielder():Yielder;\r\nfunction yielder(recycle?:Yielder):void;\r\nfunction yielder(recycle?:Yielder):Yielder\r\n{\r\n\tif(!yielderPool)\r\n\t\tyielderPool\r\n\t\t\t= new ObjectPool>(40, ()=>new Yielder());\r\n\tif(!recycle) return yielderPool.take();\r\n\trecycle.yieldBreak();\r\n\tyielderPool.add(recycle);\r\n}\r\n\r\nclass Yielder implements IYield, IDisposable\r\n{\r\n\tprivate _current:T = VOID0;\r\n\tget current():T { return this._current; }\r\n\r\n\tyieldReturn(value:T):boolean\r\n\t{\r\n\t\tthis._current = value;\r\n\t\treturn true;\r\n\t}\r\n\r\n\tyieldBreak():boolean\r\n\t{\r\n\t\tthis._current = VOID0;\r\n\t\treturn false;\r\n\t}\r\n\r\n\tdispose():void\r\n\t{\r\n\t\tthis.yieldBreak();\r\n\t}\r\n}\r\n\r\ntype ActionVoid = ()=>void;\r\n\r\n// IEnumerator State\r\nenum EnumeratorState { Before, Running, After }\r\n\r\n// \"Enumerator\" is conflict JScript's \"Enumerator\"\r\n// Naming this class EnumeratorBase to avoid collision with IE.\r\nexport class EnumeratorBase extends DisposableBase implements IEnumerator\r\n{\r\n\r\n\tprivate _yielder:Yielder;\r\n\tprivate _state:EnumeratorState;\r\n\tprivate _disposer:()=>void;\r\n\r\n\tget current():T\r\n\t{\r\n\t\treturn this._yielder.current;\r\n\t}\r\n\r\n\tconstructor(\r\n\t\tinitializer:() => void,\r\n\t\ttryGetNext:(yielder:IYield) => boolean,\r\n\t\tisEndless?:boolean);\r\n\tconstructor(\r\n\t\tinitializer:() => void,\r\n\t\ttryGetNext:(yielder:IYield) => boolean,\r\n\t\tdisposer?:()=>void,\r\n\t\tisEndless?:boolean);\r\n\tconstructor(\r\n\t\tprivate _initializer:() => void,\r\n\t\tprivate _tryGetNext:(yielder:IYield) => boolean,\r\n\t\tdisposer?:ActionVoid|boolean,\r\n\t\tisEndless?:boolean)\r\n\t{\r\n\t\tsuper();\r\n\t\tthis.reset();\r\n\t\tif(Type.isBoolean(isEndless))\r\n\t\t\tthis._isEndless = isEndless;\r\n\t\telse if(Type.isBoolean(disposer))\r\n\t\t\tthis._isEndless = disposer;\r\n\r\n\t\tif(Type.isFunction(disposer))\r\n\t\t\tthis._disposer = disposer;\r\n\t}\r\n\r\n\tprotected _isEndless:boolean;\r\n\t/*\r\n\t * Provides a mechanism to indicate if this enumerable never ends.\r\n\t * If set to true, some operations that expect a finite result may throw.\r\n\t * Explicit false means it has an end.\r\n\t * Implicit void means unknown.\r\n\t */\r\n\tget isEndless():boolean {\r\n\t\treturn this._isEndless;\r\n\t}\r\n\r\n\treset():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\tvar y = _._yielder;\r\n\t\tif(y) y.yieldBreak(); // Already exists? Reset.\r\n\t\telse _._yielder = yielder(); // New? Get one from the object pool.\r\n\t\t_._state = EnumeratorState.Before;\r\n\t}\r\n\r\n\tmoveNext():boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\ttry\r\n\t\t{\r\n\t\t\tswitch(_._state)\r\n\t\t\t{\r\n\t\t\t\tcase EnumeratorState.Before:\r\n\t\t\t\t\t_._state = EnumeratorState.Running;\r\n\t\t\t\t\tvar initializer = _._initializer;\r\n\t\t\t\t\tif(initializer)\r\n\t\t\t\t\t\tinitializer();\r\n\t\t\t\t// fall through\r\n\t\t\t\tcase EnumeratorState.Running:\r\n\t\t\t\t\tif(_._tryGetNext(_._yielder))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthis.dispose();\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\tcase EnumeratorState.After:\r\n\t\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\t\tcatch(e)\r\n\t\t{\r\n\t\t\tthis.dispose();\r\n\t\t\tthrow e;\r\n\t\t}\r\n\t}\r\n\r\n\tnextValue():T\r\n\t{\r\n\t\treturn this.moveNext()\r\n\t\t\t? this._yielder.current\r\n\t\t\t: VOID0;\r\n\t}\r\n\r\n\t/**\r\n\t * Exposed for compatibility with generators.\r\n\t */\r\n\tnext():IIteratorResult\r\n\t{\r\n\t\treturn this.moveNext() ?\r\n\t\t{\r\n\t\t\tvalue: this._yielder.current,\r\n\t\t\tdone: false\r\n\t\t} : {\r\n\t\t\tvalue: VOID0,\r\n\t\t\tdone: true\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tvar _ = this, disposer = _._disposer;\r\n\r\n\t\t_._initializer = null;\r\n\t\t_._disposer = null;\r\n\r\n\r\n\t\tvar y = _._yielder;\r\n\t\t_._yielder = null;\r\n\t\tyielder(y);\r\n\r\n\t\ttry\r\n\t\t{\r\n\t\t\tif(disposer)\r\n\t\t\t\tdisposer();\r\n\t\t}\r\n\t\tfinally\r\n\t\t{\r\n\t\t\t//if(this._state==EnumeratorState.Running)\r\n\t\t\tthis._state = EnumeratorState.After;\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\nexport default EnumeratorBase;\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Collections/Enumeration/IndexEnumerator.d.ts b/dist/amd/System/Collections/Enumeration/IndexEnumerator.d.ts index e85a88be..d5df161c 100644 --- a/dist/amd/System/Collections/Enumeration/IndexEnumerator.d.ts +++ b/dist/amd/System/Collections/Enumeration/IndexEnumerator.d.ts @@ -2,8 +2,8 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import EnumeratorBase from "./EnumeratorBase"; -export default class IndexEnumerator extends EnumeratorBase { +import { EnumeratorBase } from "./EnumeratorBase"; +export declare class IndexEnumerator extends EnumeratorBase { constructor(sourceFactory: () => { source: { [index: number]: T; @@ -13,3 +13,4 @@ export default class IndexEnumerator extends EnumeratorBase { step?: number; }); } +export default IndexEnumerator; diff --git a/dist/amd/System/Collections/Enumeration/IndexEnumerator.js b/dist/amd/System/Collections/Enumeration/IndexEnumerator.js index 21ed9e87..31501410 100644 --- a/dist/amd/System/Collections/Enumeration/IndexEnumerator.js +++ b/dist/amd/System/Collections/Enumeration/IndexEnumerator.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(e,r){function t(){this.constructor=e}for(var n in r)r.hasOwnProperty(n)&&(e[n]=r[n]);e.prototype=null===r?Object.create(r):(t.prototype=r.prototype,new t)};define(["require","exports","./EnumeratorBase"],function(e,r,t){"use strict";var n=function(e){function r(r){var t;e.call(this,function(){if(t=r(),t&&t.source){var e=t.length;if(0>e)throw new Error("length must be zero or greater");if(!isFinite(e))throw new Error("length must finite number");if(e&&0===t.step)throw new Error("Invalid IndexEnumerator step value (0).");var n=t.pointer;if(n){if(n!=Math.floor(n))throw new Error("Invalid IndexEnumerator pointer value ("+n+") has decimal.")}else n=0;t.pointer=n;var o=t.step;if(o){if(o!=Math.floor(o))throw new Error("Invalid IndexEnumerator step value ("+o+") has decimal.")}else o=1;t.step=o}},function(e){var r=t&&t.source?t.length:0;if(!r||isNaN(r))return e.yieldBreak();var n=t.pointer;return t.pointer+=t.step,r>n&&n>=0?e.yieldReturn(t.source[n]):e.yieldBreak()},function(){t&&(t.source=null)}),this._isEndless=!1}return __extends(r,e),r}(t["default"]);Object.defineProperty(r,"__esModule",{value:!0}),r["default"]=n}); +var __extends=this&&this.__extends||function(e,r){function t(){this.constructor=e}for(var n in r)r.hasOwnProperty(n)&&(e[n]=r[n]);e.prototype=null===r?Object.create(r):(t.prototype=r.prototype,new t)};define(["require","exports","./EnumeratorBase"],function(e,r,t){"use strict";var n=function(e){function r(r){var t;e.call(this,function(){if(t=r(),t&&t.source){var e=t.length;if(0>e)throw new Error("length must be zero or greater");if(!isFinite(e))throw new Error("length must finite number");if(e&&0===t.step)throw new Error("Invalid IndexEnumerator step value (0).");var n=t.pointer;if(n){if(n!=Math.floor(n))throw new Error("Invalid IndexEnumerator pointer value ("+n+") has decimal.")}else n=0;t.pointer=n;var o=t.step;if(o){if(o!=Math.floor(o))throw new Error("Invalid IndexEnumerator step value ("+o+") has decimal.")}else o=1;t.step=o}},function(e){var r=t&&t.source?t.length:0;if(!r||isNaN(r))return e.yieldBreak();var n=t.pointer;return t.pointer+=t.step,r>n&&n>=0?e.yieldReturn(t.source[n]):e.yieldBreak()},function(){t&&(t.source=null)}),this._isEndless=!1}return __extends(r,e),r}(t.EnumeratorBase);r.IndexEnumerator=n,Object.defineProperty(r,"__esModule",{value:!0}),r["default"]=n}); //# sourceMappingURL=IndexEnumerator.js.map diff --git a/dist/amd/System/Collections/Enumeration/IndexEnumerator.js.map b/dist/amd/System/Collections/Enumeration/IndexEnumerator.js.map index 9b9cc241..aa4e8882 100644 --- a/dist/amd/System/Collections/Enumeration/IndexEnumerator.js.map +++ b/dist/amd/System/Collections/Enumeration/IndexEnumerator.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Enumeration/IndexEnumerator.js","System/Collections/Enumeration/IndexEnumerator.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","EnumeratorBase_1","IndexEnumerator","_super","sourceFactory","source","call","len","length","Error","isFinite","step","pointer","Math","floor","yielder","isNaN","yieldBreak","current","yieldReturn","_isEndless","defineProperty","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,oBAAqB,SAAUC,EAASC,EAASC,GCJ/E,YAIA,IAAAC,GAAA,SAAAC,GAIC,QAAAD,GACCE,GAGA,GAAIC,EACJF,GAAAG,KAAAlB,KACC,WAGC,GADAiB,EAASD,IACNC,GAAUA,EAAOA,OACpB,CACC,GAAIE,GAAMF,EAAOG,MACjB,IAAO,EAAJD,EACF,KAAM,IAAIE,OAAM,iCAEjB,KAAIC,SAASH,GACZ,KAAM,IAAIE,OAAM,4BAEjB,IAAGF,GAAqB,IAAdF,EAAOM,KAChB,KAAM,IAAIF,OAAM,0CACjB,IAAIG,GAAUP,EAAOO,OACrB,IAAIA,GAEC,GAAGA,GAASC,KAAKC,MAAMF,GAC3B,KAAM,IAAIH,OAAM,0CAA4CG,EAAU,sBAFtEA,GAAU,CAGXP,GAAOO,QAAUA,CAEjB,IAAID,GAAON,EAAOM,IAClB,IAAIA,GAEC,GAAGA,GAAME,KAAKC,MAAMH,GACxB,KAAM,IAAIF,OAAM,uCAAyCE,EAAO,sBAFhEA,GAAO,CAGRN,GAAOM,KAAOA,IAIhB,SAACI,GAEA,GAAIR,GAAOF,GAAUA,EAAOA,OAAUA,EAAOG,OAAS,CACtD,KAAID,GAAOS,MAAMT,GAChB,MAAOQ,GAAQE,YAChB,IAAIC,GAAUb,EAAOO,OAErB,OADAP,GAAOO,SAAWP,EAAOM,KACTJ,EAARW,GAAeA,GAAS,EAC7BH,EAAQI,YAAYd,EAAOA,OAAOa,IAClCH,EAAQE,cAGZ,WAEIZ,IAEFA,EAAOA,OAAS,QAInBjB,KAAKgC,YAAa,EAEpB,MA7DiCjC,WAAAe,EAAAC,GA6DjCD,GA7DiCD,EAAAA,WADjCL,QAAAyB,eAAArB,EAAA,cAAAsB,OAAA,IDgDItB,EAAAA,WAAkBE","file":"System/Collections/Enumeration/IndexEnumerator.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"./EnumeratorBase\"], function (require, exports, EnumeratorBase_1) {\n 'use strict';\n var IndexEnumerator = (function (_super) {\n __extends(IndexEnumerator, _super);\n function IndexEnumerator(sourceFactory) {\n var source;\n _super.call(this, function () {\n source = sourceFactory();\n if (source && source.source) {\n var len = source.length;\n if (len < 0)\n throw new Error(\"length must be zero or greater\");\n if (!isFinite(len))\n throw new Error(\"length must finite number\");\n if (len && source.step === 0)\n throw new Error(\"Invalid IndexEnumerator step value (0).\");\n var pointer = source.pointer;\n if (!pointer)\n pointer = 0;\n else if (pointer != Math.floor(pointer))\n throw new Error(\"Invalid IndexEnumerator pointer value (\" + pointer + \") has decimal.\");\n source.pointer = pointer;\n var step = source.step;\n if (!step)\n step = 1;\n else if (step != Math.floor(step))\n throw new Error(\"Invalid IndexEnumerator step value (\" + step + \") has decimal.\");\n source.step = step;\n }\n }, function (yielder) {\n var len = (source && source.source) ? source.length : 0;\n if (!len || isNaN(len))\n return yielder.yieldBreak();\n var current = source.pointer;\n source.pointer += source.step;\n return (current < len && current >= 0)\n ? yielder.yieldReturn(source.source[current])\n : yielder.yieldBreak();\n }, function () {\n if (source) {\n source.source = null;\n }\n });\n this._isEndless = false;\n }\n return IndexEnumerator;\n }(EnumeratorBase_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = IndexEnumerator;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport EnumeratorBase from \"./EnumeratorBase\";\r\n\r\nexport default\r\nclass IndexEnumerator extends EnumeratorBase\r\n{\r\n\r\n\tconstructor(\r\n\t\tsourceFactory:() => { source: { [index: number]: T }; pointer?: number; length: number; step?: number })\r\n\t{\r\n\r\n\t\tvar source:{ source: { [index: number]: T }; pointer?: number; length: number; step?: number };\r\n\t\tsuper(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tsource = sourceFactory();\r\n\t\t\t\tif(source && source.source)\r\n\t\t\t\t{\r\n\t\t\t\t\tvar len = source.length;\r\n\t\t\t\t\tif(len<0) // Null is allowed but will exit immediately.\r\n\t\t\t\t\t\tthrow new Error(\"length must be zero or greater\");\r\n\r\n\t\t\t\t\tif(!isFinite(len))\r\n\t\t\t\t\t\tthrow new Error(\"length must finite number\");\r\n\r\n\t\t\t\t\tif(len && source.step===0)\r\n\t\t\t\t\t\tthrow new Error(\"Invalid IndexEnumerator step value (0).\");\r\n\t\t\t\t\tvar pointer = source.pointer;\r\n\t\t\t\t\tif(!pointer)\r\n\t\t\t\t\t\tpointer = 0;\r\n\t\t\t\t\telse if(pointer!=Math.floor(pointer))\r\n\t\t\t\t\t\tthrow new Error(\"Invalid IndexEnumerator pointer value (\" + pointer + \") has decimal.\");\r\n\t\t\t\t\tsource.pointer = pointer;\r\n\r\n\t\t\t\t\tvar step = source.step;\r\n\t\t\t\t\tif(!step)\r\n\t\t\t\t\t\tstep = 1;\r\n\t\t\t\t\telse if(step!=Math.floor(step))\r\n\t\t\t\t\t\tthrow new Error(\"Invalid IndexEnumerator step value (\" + step + \") has decimal.\");\r\n\t\t\t\t\tsource.step = step;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\t\t\t\tvar len = (source && source.source) ? source.length : 0;\r\n\t\t\t\tif(!len || isNaN(len))\r\n\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\tvar current = source.pointer;\r\n\t\t\t\tsource.pointer += source.step;\r\n\t\t\t\treturn (current=0)\r\n\t\t\t\t\t? yielder.yieldReturn(source.source[current])\r\n\t\t\t\t\t: yielder.yieldBreak();\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tif(source)\r\n\t\t\t\t{\r\n\t\t\t\t\tsource.source = null;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\t\tthis._isEndless = false;\r\n\t}\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Enumeration/IndexEnumerator.js","System/Collections/Enumeration/IndexEnumerator.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","EnumeratorBase_1","IndexEnumerator","_super","sourceFactory","source","call","len","length","Error","isFinite","step","pointer","Math","floor","yielder","isNaN","yieldBreak","current","yieldReturn","_isEndless","EnumeratorBase","defineProperty","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,oBAAqB,SAAUC,EAASC,EAASC,GAC3E,YCHJ,IAAAC,GAAA,SAAAC,GAGC,QAAAD,GACCE,GAGA,GAAIC,EACJF,GAAAG,KAAAlB,KACC,WAGC,GADAiB,EAASD,IACNC,GAAUA,EAAOA,OACpB,CACC,GAAIE,GAAMF,EAAOG,MACjB,IAAO,EAAJD,EACF,KAAM,IAAIE,OAAM,iCAEjB,KAAIC,SAASH,GACZ,KAAM,IAAIE,OAAM,4BAEjB,IAAGF,GAAqB,IAAdF,EAAOM,KAChB,KAAM,IAAIF,OAAM,0CACjB,IAAIG,GAAUP,EAAOO,OACrB,IAAIA,GAEC,GAAGA,GAASC,KAAKC,MAAMF,GAC3B,KAAM,IAAIH,OAAM,0CAA4CG,EAAU,sBAFtEA,GAAU,CAGXP,GAAOO,QAAUA,CAEjB,IAAID,GAAON,EAAOM,IAClB,IAAIA,GAEC,GAAGA,GAAME,KAAKC,MAAMH,GACxB,KAAM,IAAIF,OAAM,uCAAyCE,EAAO,sBAFhEA,GAAO,CAGRN,GAAOM,KAAOA,IAIhB,SAACI,GAEA,GAAIR,GAAOF,GAAUA,EAAOA,OAAUA,EAAOG,OAAS,CACtD,KAAID,GAAOS,MAAMT,GAChB,MAAOQ,GAAQE,YAChB,IAAIC,GAAUb,EAAOO,OAErB,OADAP,GAAOO,SAAWP,EAAOM,KACTJ,EAARW,GAAeA,GAAS,EAC7BH,EAAQI,YAAYd,EAAOA,OAAOa,IAClCH,EAAQE,cAGZ,WAEIZ,IAEFA,EAAOA,OAAS,QAInBjB,KAAKgC,YAAa,EAEpB,MA7DwCjC,WAAAe,EAAAC,GA6DxCD,GA7DwCD,EAAAoB,eAA3BrB,GAAAE,gBAAeA,EA+D5BN,OAAA0B,eAAAtB,EAAA,cAAAuB,OAAA,IDZIvB,EAAAA,WCYWE","file":"System/Collections/Enumeration/IndexEnumerator.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"./EnumeratorBase\"], function (require, exports, EnumeratorBase_1) {\n \"use strict\";\n var IndexEnumerator = (function (_super) {\n __extends(IndexEnumerator, _super);\n function IndexEnumerator(sourceFactory) {\n var source;\n _super.call(this, function () {\n source = sourceFactory();\n if (source && source.source) {\n var len = source.length;\n if (len < 0)\n throw new Error(\"length must be zero or greater\");\n if (!isFinite(len))\n throw new Error(\"length must finite number\");\n if (len && source.step === 0)\n throw new Error(\"Invalid IndexEnumerator step value (0).\");\n var pointer = source.pointer;\n if (!pointer)\n pointer = 0;\n else if (pointer != Math.floor(pointer))\n throw new Error(\"Invalid IndexEnumerator pointer value (\" + pointer + \") has decimal.\");\n source.pointer = pointer;\n var step = source.step;\n if (!step)\n step = 1;\n else if (step != Math.floor(step))\n throw new Error(\"Invalid IndexEnumerator step value (\" + step + \") has decimal.\");\n source.step = step;\n }\n }, function (yielder) {\n var len = (source && source.source) ? source.length : 0;\n if (!len || isNaN(len))\n return yielder.yieldBreak();\n var current = source.pointer;\n source.pointer += source.step;\n return (current < len && current >= 0)\n ? yielder.yieldReturn(source.source[current])\n : yielder.yieldBreak();\n }, function () {\n if (source) {\n source.source = null;\n }\n });\n this._isEndless = false;\n }\n return IndexEnumerator;\n }(EnumeratorBase_1.EnumeratorBase));\n exports.IndexEnumerator = IndexEnumerator;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = IndexEnumerator;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {EnumeratorBase} from \"./EnumeratorBase\";\r\n\r\nexport class IndexEnumerator extends EnumeratorBase\r\n{\r\n\r\n\tconstructor(\r\n\t\tsourceFactory:() => { source: { [index: number]: T }; pointer?: number; length: number; step?: number })\r\n\t{\r\n\r\n\t\tvar source:{ source: { [index: number]: T }; pointer?: number; length: number; step?: number };\r\n\t\tsuper(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tsource = sourceFactory();\r\n\t\t\t\tif(source && source.source)\r\n\t\t\t\t{\r\n\t\t\t\t\tvar len = source.length;\r\n\t\t\t\t\tif(len<0) // Null is allowed but will exit immediately.\r\n\t\t\t\t\t\tthrow new Error(\"length must be zero or greater\");\r\n\r\n\t\t\t\t\tif(!isFinite(len))\r\n\t\t\t\t\t\tthrow new Error(\"length must finite number\");\r\n\r\n\t\t\t\t\tif(len && source.step===0)\r\n\t\t\t\t\t\tthrow new Error(\"Invalid IndexEnumerator step value (0).\");\r\n\t\t\t\t\tvar pointer = source.pointer;\r\n\t\t\t\t\tif(!pointer)\r\n\t\t\t\t\t\tpointer = 0;\r\n\t\t\t\t\telse if(pointer!=Math.floor(pointer))\r\n\t\t\t\t\t\tthrow new Error(\"Invalid IndexEnumerator pointer value (\" + pointer + \") has decimal.\");\r\n\t\t\t\t\tsource.pointer = pointer;\r\n\r\n\t\t\t\t\tvar step = source.step;\r\n\t\t\t\t\tif(!step)\r\n\t\t\t\t\t\tstep = 1;\r\n\t\t\t\t\telse if(step!=Math.floor(step))\r\n\t\t\t\t\t\tthrow new Error(\"Invalid IndexEnumerator step value (\" + step + \") has decimal.\");\r\n\t\t\t\t\tsource.step = step;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\t\t\t\tvar len = (source && source.source) ? source.length : 0;\r\n\t\t\t\tif(!len || isNaN(len))\r\n\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\tvar current = source.pointer;\r\n\t\t\t\tsource.pointer += source.step;\r\n\t\t\t\treturn (current=0)\r\n\t\t\t\t\t? yielder.yieldReturn(source.source[current])\r\n\t\t\t\t\t: yielder.yieldBreak();\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tif(source)\r\n\t\t\t\t{\r\n\t\t\t\t\tsource.source = null;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\t\tthis._isEndless = false;\r\n\t}\r\n}\r\n\r\nexport default IndexEnumerator;"]} \ No newline at end of file diff --git a/dist/amd/System/Collections/Enumeration/UnsupportedEnumerableException.d.ts b/dist/amd/System/Collections/Enumeration/UnsupportedEnumerableException.d.ts index b966255b..fc268ec1 100644 --- a/dist/amd/System/Collections/Enumeration/UnsupportedEnumerableException.d.ts +++ b/dist/amd/System/Collections/Enumeration/UnsupportedEnumerableException.d.ts @@ -3,8 +3,9 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -import SystemException from "../../Exceptions/SystemException"; -export default class UnsupportedEnumerableException extends SystemException { +import { SystemException } from "../../Exceptions/SystemException"; +export declare class UnsupportedEnumerableException extends SystemException { constructor(message?: string); protected getName(): string; } +export default UnsupportedEnumerableException; diff --git a/dist/amd/System/Collections/Enumeration/UnsupportedEnumerableException.js b/dist/amd/System/Collections/Enumeration/UnsupportedEnumerableException.js index bf6e9a77..658418b4 100644 --- a/dist/amd/System/Collections/Enumeration/UnsupportedEnumerableException.js +++ b/dist/amd/System/Collections/Enumeration/UnsupportedEnumerableException.js @@ -3,5 +3,5 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -var __extends=this&&this.__extends||function(e,t){function n(){this.constructor=e}for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)};define(["require","exports","../../Exceptions/SystemException"],function(e,t,n){"use strict";var r="UnsupportedEnumerableException",o=function(e){function t(t){e.call(this,t||"Unsupported enumerable.")}return __extends(t,e),t.prototype.getName=function(){return r},t}(n["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=o}); +var __extends=this&&this.__extends||function(e,t){function n(){this.constructor=e}for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)};define(["require","exports","../../Exceptions/SystemException"],function(e,t,n){"use strict";var o="UnsupportedEnumerableException",r=function(e){function t(t){e.call(this,t||"Unsupported enumerable.")}return __extends(t,e),t.prototype.getName=function(){return o},t}(n.SystemException);t.UnsupportedEnumerableException=r,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=r}); //# sourceMappingURL=UnsupportedEnumerableException.js.map diff --git a/dist/amd/System/Collections/Enumeration/UnsupportedEnumerableException.js.map b/dist/amd/System/Collections/Enumeration/UnsupportedEnumerableException.js.map index 5197d8c3..c6cc4d64 100644 --- a/dist/amd/System/Collections/Enumeration/UnsupportedEnumerableException.js.map +++ b/dist/amd/System/Collections/Enumeration/UnsupportedEnumerableException.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Enumeration/UnsupportedEnumerableException.js","System/Collections/Enumeration/UnsupportedEnumerableException.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","SystemException_1","NAME","UnsupportedEnumerableException","_super","message","call","getName","defineProperty","value"],"mappings":";;;;;AAKA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,oCAAqC,SAAUC,EAASC,EAASC,GCJ/F,YAIA,IAAMC,GAAc,iCAEpBC,EAAA,SAAAC,GAGC,QAAAD,GAAYE,GACXD,EAAAE,KAAAlB,KAAMiB,GAAW,2BAOnB,MAV6ClB,WAAAgB,EAAAC,GAMlCD,EAAAR,UAAAY,QAAV,WAEC,MAAOL,IAETC,GAV6CF,EAAAA,WAD7CL,QAAAY,eAAAR,EAAA,cAAAS,OAAA,IDYIT,EAAAA,WAAkBG","file":"System/Collections/Enumeration/UnsupportedEnumerableException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"../../Exceptions/SystemException\"], function (require, exports, SystemException_1) {\n 'use strict';\n var NAME = 'UnsupportedEnumerableException';\n var UnsupportedEnumerableException = (function (_super) {\n __extends(UnsupportedEnumerableException, _super);\n function UnsupportedEnumerableException(message) {\n _super.call(this, message || \"Unsupported enumerable.\");\n }\n UnsupportedEnumerableException.prototype.getName = function () {\n return NAME;\n };\n return UnsupportedEnumerableException;\n }(SystemException_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = UnsupportedEnumerableException;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport SystemException from \"../../Exceptions/SystemException\";\r\n\r\nconst NAME:string = 'UnsupportedEnumerableException';\r\n\r\nexport default\r\nclass UnsupportedEnumerableException extends SystemException {\r\n\r\n\tconstructor(message?:string){\r\n\t\tsuper(message || \"Unsupported enumerable.\");\r\n\t}\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Enumeration/UnsupportedEnumerableException.js","System/Collections/Enumeration/UnsupportedEnumerableException.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","SystemException_1","NAME","UnsupportedEnumerableException","_super","message","call","getName","SystemException","defineProperty","value"],"mappings":";;;;;AAKA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,oCAAqC,SAAUC,EAASC,EAASC,GAC3F,YCHJ,IAAMC,GAAc,iCAEpBC,EAAA,SAAAC,GAGC,QAAAD,GAAYE,GAEXD,EAAAE,KAAAlB,KAAMiB,GAAW,2BAOnB,MAZoDlB,WAAAgB,EAAAC,GAQzCD,EAAAR,UAAAY,QAAV,WAEC,MAAOL,IAETC,GAZoDF,EAAAO,gBAAvCR,GAAAG,+BAA8BA,EAc3CP,OAAAa,eAAAT,EAAA,cAAAU,OAAA,IDCIV,EAAAA,WCDWG","file":"System/Collections/Enumeration/UnsupportedEnumerableException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"../../Exceptions/SystemException\"], function (require, exports, SystemException_1) {\n \"use strict\";\n var NAME = 'UnsupportedEnumerableException';\n var UnsupportedEnumerableException = (function (_super) {\n __extends(UnsupportedEnumerableException, _super);\n function UnsupportedEnumerableException(message) {\n _super.call(this, message || \"Unsupported enumerable.\");\n }\n UnsupportedEnumerableException.prototype.getName = function () {\n return NAME;\n };\n return UnsupportedEnumerableException;\n }(SystemException_1.SystemException));\n exports.UnsupportedEnumerableException = UnsupportedEnumerableException;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = UnsupportedEnumerableException;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\nimport {SystemException} from \"../../Exceptions/SystemException\";\r\n\r\nconst NAME:string = 'UnsupportedEnumerableException';\r\n\r\nexport class UnsupportedEnumerableException extends SystemException\r\n{\r\n\r\n\tconstructor(message?:string)\r\n\t{\r\n\t\tsuper(message || \"Unsupported enumerable.\");\r\n\t}\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n}\r\n\r\nexport default UnsupportedEnumerableException;"]} \ No newline at end of file diff --git a/dist/amd/System/Collections/LinkedList.d.ts b/dist/amd/System/Collections/LinkedList.d.ts index 6de7a80e..b3fef8d7 100644 --- a/dist/amd/System/Collections/LinkedList.d.ts +++ b/dist/amd/System/Collections/LinkedList.d.ts @@ -1,12 +1,14 @@ -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Based Upon: http://msdn.microsoft.com/en-us/library/he2s3bh7%28v=vs.110%29.aspx * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import CollectionBase from "./CollectionBase"; +import { CollectionBase } from "./CollectionBase"; +import { ILinkedListNode } from "./ILinkedListNode"; +import { IEnumerator } from "./Enumeration/IEnumerator"; +import { Predicate, Action, EqualityComparison } from "../FunctionTypes"; +import { ILinkedList } from "./ILinkedList"; +import { IEnumerableOrArray } from "./IEnumerableOrArray"; export default class LinkedList extends CollectionBase implements ILinkedList { private _listInternal; constructor(source?: IEnumerableOrArray, equalityComparer?: EqualityComparison); diff --git a/dist/amd/System/Collections/LinkedList.js b/dist/amd/System/Collections/LinkedList.js index f86f8414..ef3fb69b 100644 --- a/dist/amd/System/Collections/LinkedList.js +++ b/dist/amd/System/Collections/LinkedList.js @@ -3,5 +3,5 @@ * Based Upon: http://msdn.microsoft.com/en-us/library/he2s3bh7%28v=vs.110%29.aspx * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)};define(["require","exports","../Compare","./LinkedNodeList","../Exceptions/InvalidOperationException","../Exceptions/ArgumentNullException","./CollectionBase"],function(t,e,n,r,o,i,a){"use strict";function s(t,e){if(!t)return null;if(!e)throw new i["default"]("list");var n=t.external;return n||(t.external=n=new f(e,t)),n}function l(t,e){if(!t)throw new i["default"]("node");if(!e)throw new i["default"]("list");if(t.list!=e)throw new o["default"]("Provided node does not belong to this list.");var n=t._nodeInternal;if(!n)throw new o["default"]("Provided node is not valid.");return n}var u=function(){function t(t,e,n){this.value=t,this.previous=e,this.next=n}return t.prototype.assertDetached=function(){if(this.next||this.previous)throw new o["default"]("Adding a node that is already placed.")},t}(),d=function(t){function e(e,o){void 0===o&&(o=n.areEqual),t.call(this,null,o);var i=this;i._listInternal=new r["default"],i._importEntries(e)}return __extends(e,t),e.prototype.getCount=function(){return this._listInternal.unsafeCount},e.prototype._addInternal=function(t){return this._listInternal.addNode(new u(t)),!0},e.prototype._removeInternal=function(t,e){void 0===e&&(e=1/0);var n=this,r=n._equalityComparer,o=n._listInternal,i=0;return o.forEach(function(n){return r(t,n.value)&&o.removeNode(n)&&i++,e>i}),i},e.prototype._clearInternal=function(){return this._listInternal.clear()},e.prototype.forEach=function(e,n){void 0===n&&(n=!1),n?t.prototype.forEach.call(this,e,n):this._listInternal.forEach(function(t,n){return e(t.value,n)})},e.prototype.getEnumerator=function(){return r["default"].valueEnumeratorFrom(this._listInternal)},e.prototype._findFirst=function(t){for(var e=this,n=e._equalityComparer,r=e._listInternal.first;r;){if(n(t,r.value))return r;r=r.next}return null},e.prototype._findLast=function(t){for(var e=this,n=e._equalityComparer,r=e._listInternal.last;r;){if(n(t,r.value))return r;r=r.previous}return null},e.prototype.removeOnce=function(t){return 0!==this.remove(t,1)},Object.defineProperty(e.prototype,"first",{get:function(){return s(this._listInternal.first,this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"last",{get:function(){return s(this._listInternal.last,this)},enumerable:!0,configurable:!0}),e.prototype.getValueAt=function(t){var e=this._listInternal.getNodeAt(t);return e?void 0:e&&e.value||void 0},e.prototype.getNodeAt=function(t){return s(this._listInternal.getNodeAt(t),this)},e.prototype.find=function(t){return s(this._findFirst(t),this)},e.prototype.findLast=function(t){return s(this._findLast(t),this)},e.prototype.addFirst=function(t){this._listInternal.addNodeBefore(new u(t)),this._signalModification(!0)},e.prototype.addLast=function(t){this.add(t)},e.prototype.removeFirst=function(){var t=this,e=t._listInternal.first;e&&t._listInternal.removeNode(e)&&t._signalModification(!0)},e.prototype.removeLast=function(){var t=this,e=t._listInternal.last;e&&t._listInternal.removeNode(e)&&t._signalModification(!0)},e.prototype.removeNode=function(t){var e=this;return e._listInternal.removeNode(l(t,e))?(e._signalModification(!0),!0):!1},e.prototype.addBefore=function(t,e){var n=this;n._listInternal.addNodeBefore(new u(e),l(t,n)),n._signalModification(!0)},e.prototype.addAfter=function(t,e){var n=this;n._listInternal.addNodeAfter(new u(e),l(t,n)),n._signalModification(!0)},e.prototype.addNodeBefore=function(t,e){var n=this;n._listInternal.addNodeBefore(l(e,n),l(t,n)),n._signalModification(!0)},e.prototype.addNodeAfter=function(t,e){var n=this;this._listInternal.addNodeAfter(l(e,n),l(t,n)),n._signalModification(!0)},e}(a["default"]);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=d;var f=function(){function t(t,e){this._list=t,this._nodeInternal=e}return Object.defineProperty(t.prototype,"list",{get:function(){return this._list},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"previous",{get:function(){return s(this._nodeInternal.previous,this._list)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"next",{get:function(){return s(this._nodeInternal.next,this._list)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"value",{get:function(){return this._nodeInternal.value},set:function(t){this._nodeInternal.value=t},enumerable:!0,configurable:!0}),t.prototype.addBefore=function(t){this._list.addBefore(this,t)},t.prototype.addAfter=function(t){this._list.addAfter(this,t)},t.prototype.addNodeBefore=function(t){this._list.addNodeBefore(this,t)},t.prototype.addNodeAfter=function(t){this._list.addNodeAfter(this,t)},t.prototype.remove=function(){this._list.removeNode(this)},t}()}); +var __extends=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)};define(["require","exports","../Compare","./LinkedNodeList","../Exceptions/InvalidOperationException","../Exceptions/ArgumentNullException","./CollectionBase"],function(t,e,n,o,r,i,a){"use strict";function s(t,e){if(!t)return null;if(!e)throw new i.ArgumentNullException("list");var n=t.external;return n||(t.external=n=new f(e,t)),n}function l(t,e){if(!t)throw new i.ArgumentNullException("node");if(!e)throw new i.ArgumentNullException("list");if(t.list!=e)throw new r.InvalidOperationException("Provided node does not belong to this list.");var n=t._nodeInternal;if(!n)throw new r.InvalidOperationException("Provided node is not valid.");return n}var u=function(){function t(t,e,n){this.value=t,this.previous=e,this.next=n}return t.prototype.assertDetached=function(){if(this.next||this.previous)throw new r.InvalidOperationException("Adding a node that is already placed.")},t}(),d=function(t){function e(e,r){void 0===r&&(r=n.areEqual),t.call(this,null,r);var i=this;i._listInternal=new o.LinkedNodeList,i._importEntries(e)}return __extends(e,t),e.prototype.getCount=function(){return this._listInternal.unsafeCount},e.prototype._addInternal=function(t){return this._listInternal.addNode(new u(t)),!0},e.prototype._removeInternal=function(t,e){void 0===e&&(e=1/0);var n=this,o=n._equalityComparer,r=n._listInternal,i=0;return r.forEach(function(n){return o(t,n.value)&&r.removeNode(n)&&i++,e>i}),i},e.prototype._clearInternal=function(){return this._listInternal.clear()},e.prototype.forEach=function(e,n){void 0===n&&(n=!1),n?t.prototype.forEach.call(this,e,n):this._listInternal.forEach(function(t,n){return e(t.value,n)})},e.prototype.getEnumerator=function(){return o.LinkedNodeList.valueEnumeratorFrom(this._listInternal)},e.prototype._findFirst=function(t){for(var e=this,n=e._equalityComparer,o=e._listInternal.first;o;){if(n(t,o.value))return o;o=o.next}return null},e.prototype._findLast=function(t){for(var e=this,n=e._equalityComparer,o=e._listInternal.last;o;){if(n(t,o.value))return o;o=o.previous}return null},e.prototype.removeOnce=function(t){return 0!==this.remove(t,1)},Object.defineProperty(e.prototype,"first",{get:function(){return s(this._listInternal.first,this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"last",{get:function(){return s(this._listInternal.last,this)},enumerable:!0,configurable:!0}),e.prototype.getValueAt=function(t){var e=this._listInternal.getNodeAt(t);return e?void 0:e&&e.value||void 0},e.prototype.getNodeAt=function(t){return s(this._listInternal.getNodeAt(t),this)},e.prototype.find=function(t){return s(this._findFirst(t),this)},e.prototype.findLast=function(t){return s(this._findLast(t),this)},e.prototype.addFirst=function(t){this._listInternal.addNodeBefore(new u(t)),this._signalModification(!0)},e.prototype.addLast=function(t){this.add(t)},e.prototype.removeFirst=function(){var t=this,e=t._listInternal.first;e&&t._listInternal.removeNode(e)&&t._signalModification(!0)},e.prototype.removeLast=function(){var t=this,e=t._listInternal.last;e&&t._listInternal.removeNode(e)&&t._signalModification(!0)},e.prototype.removeNode=function(t){var e=this;return e._listInternal.removeNode(l(t,e))?(e._signalModification(!0),!0):!1},e.prototype.addBefore=function(t,e){var n=this;n._listInternal.addNodeBefore(new u(e),l(t,n)),n._signalModification(!0)},e.prototype.addAfter=function(t,e){var n=this;n._listInternal.addNodeAfter(new u(e),l(t,n)),n._signalModification(!0)},e.prototype.addNodeBefore=function(t,e){var n=this;n._listInternal.addNodeBefore(l(e,n),l(t,n)),n._signalModification(!0)},e.prototype.addNodeAfter=function(t,e){var n=this;this._listInternal.addNodeAfter(l(e,n),l(t,n)),n._signalModification(!0)},e}(a.CollectionBase);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=d;var f=function(){function t(t,e){this._list=t,this._nodeInternal=e}return Object.defineProperty(t.prototype,"list",{get:function(){return this._list},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"previous",{get:function(){return s(this._nodeInternal.previous,this._list)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"next",{get:function(){return s(this._nodeInternal.next,this._list)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"value",{get:function(){return this._nodeInternal.value},set:function(t){this._nodeInternal.value=t},enumerable:!0,configurable:!0}),t.prototype.addBefore=function(t){this._list.addBefore(this,t)},t.prototype.addAfter=function(t){this._list.addAfter(this,t)},t.prototype.addNodeBefore=function(t){this._list.addNodeBefore(this,t)},t.prototype.addNodeAfter=function(t){this._list.addNodeAfter(this,t)},t.prototype.remove=function(){this._list.removeNode(this)},t}()}); //# sourceMappingURL=LinkedList.js.map diff --git a/dist/amd/System/Collections/LinkedList.js.map b/dist/amd/System/Collections/LinkedList.js.map index eea757f9..dd69b7e0 100644 --- a/dist/amd/System/Collections/LinkedList.js.map +++ b/dist/amd/System/Collections/LinkedList.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/LinkedList.js","System/Collections/LinkedList.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","Compare_1","LinkedNodeList_1","InvalidOperationException_1","ArgumentNullException_1","CollectionBase_1","ensureExternal","node","list","external","LinkedListNode","getInternal","n","_nodeInternal","InternalNode","value","previous","next","assertDetached","LinkedList","_super","source","equalityComparer","areEqual","call","_","_listInternal","_importEntries","getCount","unsafeCount","_addInternal","entry","addNode","_removeInternal","max","Infinity","equals","_equalityComparer","removedCount","forEach","removeNode","_clearInternal","clear","action","useCopy","i","getEnumerator","valueEnumeratorFrom","_findFirst","first","_findLast","prev","last","removeOnce","remove","defineProperty","get","enumerable","configurable","getValueAt","index","getNodeAt","find","findLast","addFirst","addNodeBefore","_signalModification","addLast","add","removeFirst","removeLast","addBefore","before","addAfter","after","addNodeAfter","_list","set","v"],"mappings":"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","file":"System/Collections/LinkedList.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based Upon: http://msdn.microsoft.com/en-us/library/he2s3bh7%28v=vs.110%29.aspx\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"../Compare\", \"./LinkedNodeList\", \"../Exceptions/InvalidOperationException\", \"../Exceptions/ArgumentNullException\", \"./CollectionBase\"], function (require, exports, Compare_1, LinkedNodeList_1, InvalidOperationException_1, ArgumentNullException_1, CollectionBase_1) {\n 'use strict';\n var InternalNode = (function () {\n function InternalNode(value, previous, next) {\n this.value = value;\n this.previous = previous;\n this.next = next;\n }\n InternalNode.prototype.assertDetached = function () {\n if (this.next || this.previous)\n throw new InvalidOperationException_1.default(\"Adding a node that is already placed.\");\n };\n return InternalNode;\n }());\n function ensureExternal(node, list) {\n if (!node)\n return null;\n if (!list)\n throw new ArgumentNullException_1.default(\"list\");\n var external = node.external;\n if (!external)\n node.external = external = new LinkedListNode(list, node);\n return external;\n }\n function getInternal(node, list) {\n if (!node)\n throw new ArgumentNullException_1.default(\"node\");\n if (!list)\n throw new ArgumentNullException_1.default(\"list\");\n if (node.list != list)\n throw new InvalidOperationException_1.default(\"Provided node does not belong to this list.\");\n var n = node._nodeInternal;\n if (!n)\n throw new InvalidOperationException_1.default(\"Provided node is not valid.\");\n return n;\n }\n var LinkedList = (function (_super) {\n __extends(LinkedList, _super);\n function LinkedList(source, equalityComparer) {\n if (equalityComparer === void 0) { equalityComparer = Compare_1.areEqual; }\n _super.call(this, null, equalityComparer);\n var _ = this;\n _._listInternal = new LinkedNodeList_1.default();\n _._importEntries(source);\n }\n LinkedList.prototype.getCount = function () {\n return this._listInternal.unsafeCount;\n };\n LinkedList.prototype._addInternal = function (entry) {\n this._listInternal.addNode(new InternalNode(entry));\n return true;\n };\n LinkedList.prototype._removeInternal = function (entry, max) {\n if (max === void 0) { max = Infinity; }\n var _ = this, equals = _._equalityComparer, list = _._listInternal, removedCount = 0;\n list.forEach(function (node) {\n if (equals(entry, node.value) && list.removeNode(node))\n removedCount++;\n return removedCount < max;\n });\n return removedCount;\n };\n LinkedList.prototype._clearInternal = function () {\n return this._listInternal.clear();\n };\n LinkedList.prototype.forEach = function (action, useCopy) {\n if (useCopy === void 0) { useCopy = false; }\n if (useCopy)\n _super.prototype.forEach.call(this, action, useCopy);\n else\n this._listInternal.forEach(function (node, i) { return action(node.value, i); });\n };\n LinkedList.prototype.getEnumerator = function () {\n return LinkedNodeList_1.default.valueEnumeratorFrom(this._listInternal);\n };\n LinkedList.prototype._findFirst = function (entry) {\n var _ = this, equals = _._equalityComparer, next = _._listInternal.first;\n while (next) {\n if (equals(entry, next.value))\n return next;\n next = next.next;\n }\n return null;\n };\n LinkedList.prototype._findLast = function (entry) {\n var _ = this, equals = _._equalityComparer, prev = _._listInternal.last;\n while (prev) {\n if (equals(entry, prev.value))\n return prev;\n prev = prev.previous;\n }\n return null;\n };\n LinkedList.prototype.removeOnce = function (entry) {\n return this.remove(entry, 1) !== 0;\n };\n Object.defineProperty(LinkedList.prototype, \"first\", {\n get: function () {\n return ensureExternal(this._listInternal.first, this);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedList.prototype, \"last\", {\n get: function () {\n return ensureExternal(this._listInternal.last, this);\n },\n enumerable: true,\n configurable: true\n });\n LinkedList.prototype.getValueAt = function (index) {\n var node = this._listInternal.getNodeAt(index);\n if (!node)\n return node && node.value || void (0);\n };\n LinkedList.prototype.getNodeAt = function (index) {\n return ensureExternal(this._listInternal.getNodeAt(index), this);\n };\n LinkedList.prototype.find = function (entry) {\n return ensureExternal(this._findFirst(entry), this);\n };\n LinkedList.prototype.findLast = function (entry) {\n return ensureExternal(this._findLast(entry), this);\n };\n LinkedList.prototype.addFirst = function (entry) {\n this._listInternal.addNodeBefore(new InternalNode(entry));\n this._signalModification(true);\n };\n LinkedList.prototype.addLast = function (entry) {\n this.add(entry);\n };\n LinkedList.prototype.removeFirst = function () {\n var _ = this, first = _._listInternal.first;\n if (first && _._listInternal.removeNode(first))\n _._signalModification(true);\n };\n LinkedList.prototype.removeLast = function () {\n var _ = this, last = _._listInternal.last;\n if (last && _._listInternal.removeNode(last))\n _._signalModification(true);\n };\n LinkedList.prototype.removeNode = function (node) {\n var _ = this;\n if (_._listInternal.removeNode(getInternal(node, _))) {\n _._signalModification(true);\n return true;\n }\n return false;\n };\n LinkedList.prototype.addBefore = function (before, entry) {\n var _ = this;\n _._listInternal.addNodeBefore(new InternalNode(entry), getInternal(before, _));\n _._signalModification(true);\n };\n LinkedList.prototype.addAfter = function (after, entry) {\n var _ = this;\n _._listInternal.addNodeAfter(new InternalNode(entry), getInternal(after, _));\n _._signalModification(true);\n };\n LinkedList.prototype.addNodeBefore = function (node, before) {\n var _ = this;\n _._listInternal.addNodeBefore(getInternal(before, _), getInternal(node, _));\n _._signalModification(true);\n };\n LinkedList.prototype.addNodeAfter = function (node, after) {\n var _ = this;\n this._listInternal.addNodeAfter(getInternal(after, _), getInternal(node, _));\n _._signalModification(true);\n };\n return LinkedList;\n }(CollectionBase_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = LinkedList;\n var LinkedListNode = (function () {\n function LinkedListNode(_list, _nodeInternal) {\n this._list = _list;\n this._nodeInternal = _nodeInternal;\n }\n Object.defineProperty(LinkedListNode.prototype, \"list\", {\n get: function () {\n return this._list;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedListNode.prototype, \"previous\", {\n get: function () {\n return ensureExternal(this._nodeInternal.previous, this._list);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedListNode.prototype, \"next\", {\n get: function () {\n return ensureExternal(this._nodeInternal.next, this._list);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedListNode.prototype, \"value\", {\n get: function () {\n return this._nodeInternal.value;\n },\n set: function (v) {\n this._nodeInternal.value = v;\n },\n enumerable: true,\n configurable: true\n });\n LinkedListNode.prototype.addBefore = function (entry) {\n this._list.addBefore(this, entry);\n };\n LinkedListNode.prototype.addAfter = function (entry) {\n this._list.addAfter(this, entry);\n };\n LinkedListNode.prototype.addNodeBefore = function (before) {\n this._list.addNodeBefore(this, before);\n };\n LinkedListNode.prototype.addNodeAfter = function (after) {\n this._list.addNodeAfter(this, after);\n };\n LinkedListNode.prototype.remove = function () {\n this._list.removeNode(this);\n };\n return LinkedListNode;\n }());\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based Upon: http://msdn.microsoft.com/en-us/library/he2s3bh7%28v=vs.110%29.aspx\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport {areEqual} from \"../Compare\";\r\nimport LinkedNodeList from \"./LinkedNodeList\";\r\nimport InvalidOperationException from \"../Exceptions/InvalidOperationException\";\r\nimport ArgumentNullException from \"../Exceptions/ArgumentNullException\";\r\nimport CollectionBase from \"./CollectionBase\";\r\n\r\n\r\n/*****************************\r\n * IMPORTANT NOTES ABOUT PERFORMANCE:\r\n * http://jsperf.com/simulating-a-queue\r\n *\r\n * Adding to an array is very fast, but modifying is slow.\r\n * LinkedList wins when modifying contents.\r\n * http://stackoverflow.com/questions/166884/array-versus-linked-list\r\n *****************************/\r\n\r\n/*\r\n * An internal node is used to manage the order without exposing underlying link chain to the consumer.\r\n */\r\nclass InternalNode\r\nimplements ILinkedNode>, INodeWithValue\r\n{\r\n\tconstructor(\r\n\t\tpublic value?:T,\r\n\t\tpublic previous?:InternalNode,\r\n\t\tpublic next?:InternalNode)\r\n\t{\r\n\t}\r\n\r\n\texternal:ILinkedListNode;\r\n\r\n\tassertDetached():void\r\n\t{\r\n\t\tif(this.next || this.previous)\r\n\t\t\tthrow new InvalidOperationException(\r\n\t\t\t\t\"Adding a node that is already placed.\");\r\n\t}\r\n\r\n}\r\n\r\nfunction ensureExternal(node:InternalNode, list:LinkedList):ILinkedListNode\r\n{\r\n\tif(!node)\r\n\t\treturn null;\r\n\tif(!list)\r\n\t\tthrow new ArgumentNullException(\"list\");\r\n\r\n\tvar external:ILinkedListNode = node.external;\r\n\tif(!external)\r\n\t\tnode.external = external = new LinkedListNode(list, node);\r\n\r\n\treturn external;\r\n}\r\n\r\nfunction getInternal(node:ILinkedListNode, list:LinkedList):InternalNode\r\n{\r\n\tif(!node)\r\n\t\tthrow new ArgumentNullException(\"node\");\r\n\tif(!list)\r\n\t\tthrow new ArgumentNullException(\"list\");\r\n\r\n\tif(node.list!=list)\r\n\t\tthrow new InvalidOperationException(\r\n\t\t\t\"Provided node does not belong to this list.\");\r\n\r\n\tvar n:InternalNode = (node)._nodeInternal;\r\n\tif(!n)\r\n\t\tthrow new InvalidOperationException(\r\n\t\t\t\"Provided node is not valid.\");\r\n\r\n\treturn n;\r\n}\r\n\r\nexport default\r\nclass LinkedList\r\nextends CollectionBase implements ILinkedList\r\n{\r\n\tprivate _listInternal:LinkedNodeList>;\r\n\r\n\tconstructor(\r\n\t\tsource?:IEnumerableOrArray,\r\n\t\tequalityComparer:EqualityComparison = areEqual)\r\n\t{\r\n\t\tsuper(null, equalityComparer);\r\n\t\tvar _ = this;\r\n\t\t_._listInternal = new LinkedNodeList>();\r\n\t\t_._importEntries(source);\r\n\t}\r\n\r\n\tprotected getCount():number\r\n\t{\r\n\t\treturn this._listInternal.unsafeCount;\r\n\t}\r\n\r\n\tprotected _addInternal(entry:T):boolean\r\n\t{\r\n\t\tthis._listInternal.addNode(new InternalNode(entry));\r\n\t\treturn true;\r\n\t}\r\n\r\n\tprotected _removeInternal(entry:T, max:number = Infinity):number\r\n\t{\r\n\t\tvar _ = this,\r\n\t\t equals = _._equalityComparer,\r\n\t\t list = _._listInternal,\r\n\t\t removedCount = 0;\r\n\r\n\t\tlist.forEach(node=>\r\n\t\t{\r\n\t\t\tif(equals(entry, node.value) && list.removeNode(node))\r\n\t\t\t\tremovedCount++;\r\n\r\n\t\t\treturn removedCount | Action,\r\n\t\tuseCopy:boolean = false):void\r\n\t{\r\n\t\tif(useCopy) super.forEach(action, useCopy);\r\n\t\telse this._listInternal.forEach((node, i)=>action(node.value, i));\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\t// #region IEnumerable\r\n\tgetEnumerator():IEnumerator\r\n\t{\r\n\t\treturn LinkedNodeList.valueEnumeratorFrom(this._listInternal);\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\tprivate _findFirst(entry:T):InternalNode\r\n\t{\r\n\t\t//noinspection UnnecessaryLocalVariableJS\r\n\t\tvar _ = this,\r\n\t\t equals = _._equalityComparer,\r\n\t\t next = _._listInternal.first;\r\n\t\twhile(next)\r\n\t\t{\r\n\t\t\tif(equals(entry, next.value))\r\n\t\t\t\treturn next;\r\n\t\t\tnext = next.next;\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\tprivate _findLast(entry:T):InternalNode\r\n\t{\r\n\t\t//noinspection UnnecessaryLocalVariableJS\r\n\t\tvar _ = this,\r\n\t\t equals = _._equalityComparer,\r\n\t\t prev = _._listInternal.last;\r\n\t\twhile(prev)\r\n\t\t{\r\n\t\t\tif(equals(entry, prev.value))\r\n\t\t\t\treturn prev;\r\n\t\t\tprev = prev.previous;\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\tremoveOnce(entry:T):boolean\r\n\t{\r\n\t\treturn this.remove(entry, 1)!==0;\r\n\t}\r\n\r\n\tget first():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._listInternal.first, this);\r\n\t}\r\n\r\n\tget last():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._listInternal.last, this);\r\n\t}\r\n\r\n\t// get methods are available for convenience but is an n*index operation.\r\n\r\n\r\n\tgetValueAt(index:number):T\r\n\t{\r\n\t\tvar node = this._listInternal.getNodeAt(index);\r\n\t\tif(!node)\r\n\t\t\treturn node && node.value || void(0);\r\n\t}\r\n\r\n\tgetNodeAt(index:number):ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._listInternal.getNodeAt(index), this);\r\n\t}\r\n\r\n\tfind(entry:T):ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._findFirst(entry), this);\r\n\t}\r\n\r\n\tfindLast(entry:T):ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._findLast(entry), this);\r\n\t}\r\n\r\n\taddFirst(entry:T):void\r\n\t{\r\n\t\tthis._listInternal.addNodeBefore(new InternalNode(entry));\r\n\t\tthis._signalModification(true);\r\n\t}\r\n\r\n\taddLast(entry:T):void\r\n\t{\r\n\t\tthis.add(entry);\r\n\t}\r\n\r\n\tremoveFirst():void\r\n\t{\r\n\t\tvar _ = this, first = _._listInternal.first;\r\n\t\tif(first && _._listInternal.removeNode(first))\r\n\t\t\t_._signalModification(true);\r\n\t}\r\n\r\n\tremoveLast():void\r\n\t{\r\n\t\tvar _ = this, last = _._listInternal.last;\r\n\t\tif(last && _._listInternal.removeNode(last))\r\n\t\t\t_._signalModification(true);\r\n\t}\r\n\r\n\t// Returns true if successful and false if not found (already removed).\r\n\tremoveNode(node:ILinkedListNode):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\tif(_._listInternal.removeNode(getInternal(node, _)))\r\n\t\t{\r\n\t\t\t_._signalModification(true);\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\taddBefore(before:ILinkedListNode, entry:T):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_._listInternal.addNodeBefore(\r\n\t\t\tnew InternalNode(entry),\r\n\t\t\tgetInternal(before, _)\r\n\t\t);\r\n\r\n\t\t_._signalModification(true);\r\n\t}\r\n\r\n\taddAfter(after:ILinkedListNode, entry:T):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_._listInternal.addNodeAfter(\r\n\t\t\tnew InternalNode(entry),\r\n\t\t\tgetInternal(after, _)\r\n\t\t);\r\n\r\n\t\t_._signalModification(true);\r\n\t}\r\n\r\n\taddNodeBefore(node:ILinkedListNode, before:ILinkedListNode):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_._listInternal.addNodeBefore(\r\n\t\t\tgetInternal(before, _),\r\n\t\t\tgetInternal(node, _)\r\n\t\t);\r\n\r\n\t\t_._signalModification(true);\r\n\t}\r\n\r\n\taddNodeAfter(node:ILinkedListNode, after:ILinkedListNode):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tthis._listInternal.addNodeAfter(\r\n\t\t\tgetInternal(after, _),\r\n\t\t\tgetInternal(node, _)\r\n\t\t);\r\n\r\n\t\t_._signalModification(true);\r\n\t}\r\n\r\n\r\n}\r\n\r\n// Use an internal node class to prevent mucking up the LinkedList.\r\nclass LinkedListNode implements ILinkedListNode\r\n{\r\n\tconstructor(\r\n\t\tprivate _list:LinkedList,\r\n\t\tprivate _nodeInternal:InternalNode)\r\n\t{\r\n\t}\r\n\r\n\tget list():LinkedList\r\n\t{\r\n\t\treturn this._list;\r\n\t}\r\n\r\n\tget previous():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._nodeInternal.previous, this._list);\r\n\t}\r\n\r\n\tget next():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._nodeInternal.next, this._list);\r\n\t}\r\n\r\n\tget value():T\r\n\t{\r\n\t\treturn this._nodeInternal.value;\r\n\t}\r\n\r\n\tset value(v:T)\r\n\t{\r\n\t\tthis._nodeInternal.value = v;\r\n\t}\r\n\r\n\taddBefore(entry:T):void\r\n\t{\r\n\t\tthis._list.addBefore(this, entry);\r\n\t}\r\n\r\n\taddAfter(entry:T):void\r\n\t{\r\n\t\tthis._list.addAfter(this, entry);\r\n\t}\r\n\r\n\taddNodeBefore(before:ILinkedListNode):void\r\n\t{\r\n\t\tthis._list.addNodeBefore(this, before);\r\n\t}\r\n\r\n\taddNodeAfter(after:ILinkedListNode):void\r\n\t{\r\n\t\tthis._list.addNodeAfter(this, after);\r\n\t}\r\n\r\n\tremove():void\r\n\t{\r\n\t\tthis._list.removeNode(this);\r\n\t}\r\n\r\n}\r\n\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/LinkedList.js","System/Collections/LinkedList.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","Compare_1","LinkedNodeList_1","InvalidOperationException_1","ArgumentNullException_1","CollectionBase_1","ensureExternal","node","list","ArgumentNullException","external","LinkedListNode","getInternal","InvalidOperationException","n","_nodeInternal","InternalNode","value","previous","next","assertDetached","LinkedList","_super","source","equalityComparer","areEqual","call","_","_listInternal","LinkedNodeList","_importEntries","getCount","unsafeCount","_addInternal","entry","addNode","_removeInternal","max","Infinity","equals","_equalityComparer","removedCount","forEach","removeNode","_clearInternal","clear","action","useCopy","i","getEnumerator","valueEnumeratorFrom","_findFirst","first","_findLast","prev","last","removeOnce","remove","defineProperty","get","enumerable","configurable","getValueAt","index","getNodeAt","find","findLast","addFirst","addNodeBefore","_signalModification","addLast","add","removeFirst","removeLast","addBefore","before","addAfter","after","addNodeAfter","CollectionBase","_list","set","v"],"mappings":"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","file":"System/Collections/LinkedList.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based Upon: http://msdn.microsoft.com/en-us/library/he2s3bh7%28v=vs.110%29.aspx\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"../Compare\", \"./LinkedNodeList\", \"../Exceptions/InvalidOperationException\", \"../Exceptions/ArgumentNullException\", \"./CollectionBase\"], function (require, exports, Compare_1, LinkedNodeList_1, InvalidOperationException_1, ArgumentNullException_1, CollectionBase_1) {\n \"use strict\";\n var InternalNode = (function () {\n function InternalNode(value, previous, next) {\n this.value = value;\n this.previous = previous;\n this.next = next;\n }\n InternalNode.prototype.assertDetached = function () {\n if (this.next || this.previous)\n throw new InvalidOperationException_1.InvalidOperationException(\"Adding a node that is already placed.\");\n };\n return InternalNode;\n }());\n function ensureExternal(node, list) {\n if (!node)\n return null;\n if (!list)\n throw new ArgumentNullException_1.ArgumentNullException(\"list\");\n var external = node.external;\n if (!external)\n node.external = external = new LinkedListNode(list, node);\n return external;\n }\n function getInternal(node, list) {\n if (!node)\n throw new ArgumentNullException_1.ArgumentNullException(\"node\");\n if (!list)\n throw new ArgumentNullException_1.ArgumentNullException(\"list\");\n if (node.list != list)\n throw new InvalidOperationException_1.InvalidOperationException(\"Provided node does not belong to this list.\");\n var n = node._nodeInternal;\n if (!n)\n throw new InvalidOperationException_1.InvalidOperationException(\"Provided node is not valid.\");\n return n;\n }\n var LinkedList = (function (_super) {\n __extends(LinkedList, _super);\n function LinkedList(source, equalityComparer) {\n if (equalityComparer === void 0) { equalityComparer = Compare_1.areEqual; }\n _super.call(this, null, equalityComparer);\n var _ = this;\n _._listInternal = new LinkedNodeList_1.LinkedNodeList();\n _._importEntries(source);\n }\n LinkedList.prototype.getCount = function () {\n return this._listInternal.unsafeCount;\n };\n LinkedList.prototype._addInternal = function (entry) {\n this._listInternal.addNode(new InternalNode(entry));\n return true;\n };\n LinkedList.prototype._removeInternal = function (entry, max) {\n if (max === void 0) { max = Infinity; }\n var _ = this, equals = _._equalityComparer, list = _._listInternal, removedCount = 0;\n list.forEach(function (node) {\n if (equals(entry, node.value) && list.removeNode(node))\n removedCount++;\n return removedCount < max;\n });\n return removedCount;\n };\n LinkedList.prototype._clearInternal = function () {\n return this._listInternal.clear();\n };\n LinkedList.prototype.forEach = function (action, useCopy) {\n if (useCopy === void 0) { useCopy = false; }\n if (useCopy)\n _super.prototype.forEach.call(this, action, useCopy);\n else\n this._listInternal.forEach(function (node, i) { return action(node.value, i); });\n };\n LinkedList.prototype.getEnumerator = function () {\n return LinkedNodeList_1.LinkedNodeList.valueEnumeratorFrom(this._listInternal);\n };\n LinkedList.prototype._findFirst = function (entry) {\n var _ = this, equals = _._equalityComparer, next = _._listInternal.first;\n while (next) {\n if (equals(entry, next.value))\n return next;\n next = next.next;\n }\n return null;\n };\n LinkedList.prototype._findLast = function (entry) {\n var _ = this, equals = _._equalityComparer, prev = _._listInternal.last;\n while (prev) {\n if (equals(entry, prev.value))\n return prev;\n prev = prev.previous;\n }\n return null;\n };\n LinkedList.prototype.removeOnce = function (entry) {\n return this.remove(entry, 1) !== 0;\n };\n Object.defineProperty(LinkedList.prototype, \"first\", {\n get: function () {\n return ensureExternal(this._listInternal.first, this);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedList.prototype, \"last\", {\n get: function () {\n return ensureExternal(this._listInternal.last, this);\n },\n enumerable: true,\n configurable: true\n });\n LinkedList.prototype.getValueAt = function (index) {\n var node = this._listInternal.getNodeAt(index);\n if (!node)\n return node && node.value || void (0);\n };\n LinkedList.prototype.getNodeAt = function (index) {\n return ensureExternal(this._listInternal.getNodeAt(index), this);\n };\n LinkedList.prototype.find = function (entry) {\n return ensureExternal(this._findFirst(entry), this);\n };\n LinkedList.prototype.findLast = function (entry) {\n return ensureExternal(this._findLast(entry), this);\n };\n LinkedList.prototype.addFirst = function (entry) {\n this._listInternal.addNodeBefore(new InternalNode(entry));\n this._signalModification(true);\n };\n LinkedList.prototype.addLast = function (entry) {\n this.add(entry);\n };\n LinkedList.prototype.removeFirst = function () {\n var _ = this, first = _._listInternal.first;\n if (first && _._listInternal.removeNode(first))\n _._signalModification(true);\n };\n LinkedList.prototype.removeLast = function () {\n var _ = this, last = _._listInternal.last;\n if (last && _._listInternal.removeNode(last))\n _._signalModification(true);\n };\n LinkedList.prototype.removeNode = function (node) {\n var _ = this;\n if (_._listInternal.removeNode(getInternal(node, _))) {\n _._signalModification(true);\n return true;\n }\n return false;\n };\n LinkedList.prototype.addBefore = function (before, entry) {\n var _ = this;\n _._listInternal.addNodeBefore(new InternalNode(entry), getInternal(before, _));\n _._signalModification(true);\n };\n LinkedList.prototype.addAfter = function (after, entry) {\n var _ = this;\n _._listInternal.addNodeAfter(new InternalNode(entry), getInternal(after, _));\n _._signalModification(true);\n };\n LinkedList.prototype.addNodeBefore = function (node, before) {\n var _ = this;\n _._listInternal.addNodeBefore(getInternal(before, _), getInternal(node, _));\n _._signalModification(true);\n };\n LinkedList.prototype.addNodeAfter = function (node, after) {\n var _ = this;\n this._listInternal.addNodeAfter(getInternal(after, _), getInternal(node, _));\n _._signalModification(true);\n };\n return LinkedList;\n }(CollectionBase_1.CollectionBase));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = LinkedList;\n var LinkedListNode = (function () {\n function LinkedListNode(_list, _nodeInternal) {\n this._list = _list;\n this._nodeInternal = _nodeInternal;\n }\n Object.defineProperty(LinkedListNode.prototype, \"list\", {\n get: function () {\n return this._list;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedListNode.prototype, \"previous\", {\n get: function () {\n return ensureExternal(this._nodeInternal.previous, this._list);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedListNode.prototype, \"next\", {\n get: function () {\n return ensureExternal(this._nodeInternal.next, this._list);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedListNode.prototype, \"value\", {\n get: function () {\n return this._nodeInternal.value;\n },\n set: function (v) {\n this._nodeInternal.value = v;\n },\n enumerable: true,\n configurable: true\n });\n LinkedListNode.prototype.addBefore = function (entry) {\n this._list.addBefore(this, entry);\n };\n LinkedListNode.prototype.addAfter = function (entry) {\n this._list.addAfter(this, entry);\n };\n LinkedListNode.prototype.addNodeBefore = function (before) {\n this._list.addNodeBefore(this, before);\n };\n LinkedListNode.prototype.addNodeAfter = function (after) {\n this._list.addNodeAfter(this, after);\n };\n LinkedListNode.prototype.remove = function () {\n this._list.removeNode(this);\n };\n return LinkedListNode;\n }());\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based Upon: http://msdn.microsoft.com/en-us/library/he2s3bh7%28v=vs.110%29.aspx\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {areEqual} from \"../Compare\";\r\nimport {LinkedNodeList} from \"./LinkedNodeList\";\r\nimport {InvalidOperationException} from \"../Exceptions/InvalidOperationException\";\r\nimport {ArgumentNullException} from \"../Exceptions/ArgumentNullException\";\r\nimport {CollectionBase} from \"./CollectionBase\";\r\nimport {ILinkedListNode, ILinkedNode, INodeWithValue} from \"./ILinkedListNode\";\r\nimport {IEnumerator} from \"./Enumeration/IEnumerator\";\r\nimport {Predicate, Action, EqualityComparison} from \"../FunctionTypes\";\r\nimport {ILinkedList} from \"./ILinkedList\";\r\nimport {IEnumerableOrArray} from \"./IEnumerableOrArray\";\r\n\r\n/*****************************\r\n * IMPORTANT NOTES ABOUT PERFORMANCE:\r\n * http://jsperf.com/simulating-a-queue\r\n *\r\n * Adding to an array is very fast, but modifying is slow.\r\n * LinkedList wins when modifying contents.\r\n * http://stackoverflow.com/questions/166884/array-versus-linked-list\r\n *****************************/\r\n\r\n/*\r\n * An internal node is used to manage the order without exposing underlying link chain to the consumer.\r\n */\r\nclass InternalNode\r\nimplements ILinkedNode>, INodeWithValue\r\n{\r\n\tconstructor(\r\n\t\tpublic value?:T,\r\n\t\tpublic previous?:InternalNode,\r\n\t\tpublic next?:InternalNode)\r\n\t{\r\n\t}\r\n\r\n\texternal:ILinkedListNode;\r\n\r\n\tassertDetached():void\r\n\t{\r\n\t\tif(this.next || this.previous)\r\n\t\t\tthrow new InvalidOperationException(\r\n\t\t\t\t\"Adding a node that is already placed.\");\r\n\t}\r\n\r\n}\r\n\r\nfunction ensureExternal(node:InternalNode, list:LinkedList):ILinkedListNode\r\n{\r\n\tif(!node)\r\n\t\treturn null;\r\n\tif(!list)\r\n\t\tthrow new ArgumentNullException(\"list\");\r\n\r\n\tvar external:ILinkedListNode = node.external;\r\n\tif(!external)\r\n\t\tnode.external = external = new LinkedListNode(list, node);\r\n\r\n\treturn external;\r\n}\r\n\r\nfunction getInternal(node:ILinkedListNode, list:LinkedList):InternalNode\r\n{\r\n\tif(!node)\r\n\t\tthrow new ArgumentNullException(\"node\");\r\n\tif(!list)\r\n\t\tthrow new ArgumentNullException(\"list\");\r\n\r\n\tif(node.list!=list)\r\n\t\tthrow new InvalidOperationException(\r\n\t\t\t\"Provided node does not belong to this list.\");\r\n\r\n\tvar n:InternalNode = (node)._nodeInternal;\r\n\tif(!n)\r\n\t\tthrow new InvalidOperationException(\r\n\t\t\t\"Provided node is not valid.\");\r\n\r\n\treturn n;\r\n}\r\n\r\nexport default\r\nclass LinkedList\r\nextends CollectionBase implements ILinkedList\r\n{\r\n\tprivate _listInternal:LinkedNodeList>;\r\n\r\n\tconstructor(\r\n\t\tsource?:IEnumerableOrArray,\r\n\t\tequalityComparer:EqualityComparison = areEqual)\r\n\t{\r\n\t\tsuper(null, equalityComparer);\r\n\t\tvar _ = this;\r\n\t\t_._listInternal = new LinkedNodeList>();\r\n\t\t_._importEntries(source);\r\n\t}\r\n\r\n\tprotected getCount():number\r\n\t{\r\n\t\treturn this._listInternal.unsafeCount;\r\n\t}\r\n\r\n\tprotected _addInternal(entry:T):boolean\r\n\t{\r\n\t\tthis._listInternal.addNode(new InternalNode(entry));\r\n\t\treturn true;\r\n\t}\r\n\r\n\tprotected _removeInternal(entry:T, max:number = Infinity):number\r\n\t{\r\n\t\tvar _ = this,\r\n\t\t equals = _._equalityComparer,\r\n\t\t list = _._listInternal,\r\n\t\t removedCount = 0;\r\n\r\n\t\tlist.forEach(node=>\r\n\t\t{\r\n\t\t\tif(equals(entry, node.value) && list.removeNode(node))\r\n\t\t\t\tremovedCount++;\r\n\r\n\t\t\treturn removedCount | Action,\r\n\t\tuseCopy:boolean = false):void\r\n\t{\r\n\t\tif(useCopy) super.forEach(action, useCopy);\r\n\t\telse this._listInternal.forEach((node, i)=>action(node.value, i));\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\t// #region IEnumerable\r\n\tgetEnumerator():IEnumerator\r\n\t{\r\n\t\treturn LinkedNodeList.valueEnumeratorFrom(this._listInternal);\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\tprivate _findFirst(entry:T):InternalNode\r\n\t{\r\n\t\t//noinspection UnnecessaryLocalVariableJS\r\n\t\tvar _ = this,\r\n\t\t equals = _._equalityComparer,\r\n\t\t next = _._listInternal.first;\r\n\t\twhile(next)\r\n\t\t{\r\n\t\t\tif(equals(entry, next.value))\r\n\t\t\t\treturn next;\r\n\t\t\tnext = next.next;\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\tprivate _findLast(entry:T):InternalNode\r\n\t{\r\n\t\t//noinspection UnnecessaryLocalVariableJS\r\n\t\tvar _ = this,\r\n\t\t equals = _._equalityComparer,\r\n\t\t prev = _._listInternal.last;\r\n\t\twhile(prev)\r\n\t\t{\r\n\t\t\tif(equals(entry, prev.value))\r\n\t\t\t\treturn prev;\r\n\t\t\tprev = prev.previous;\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\tremoveOnce(entry:T):boolean\r\n\t{\r\n\t\treturn this.remove(entry, 1)!==0;\r\n\t}\r\n\r\n\tget first():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._listInternal.first, this);\r\n\t}\r\n\r\n\tget last():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._listInternal.last, this);\r\n\t}\r\n\r\n\t// get methods are available for convenience but is an n*index operation.\r\n\r\n\r\n\tgetValueAt(index:number):T\r\n\t{\r\n\t\tvar node = this._listInternal.getNodeAt(index);\r\n\t\tif(!node)\r\n\t\t\treturn node && node.value || void(0);\r\n\t}\r\n\r\n\tgetNodeAt(index:number):ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._listInternal.getNodeAt(index), this);\r\n\t}\r\n\r\n\tfind(entry:T):ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._findFirst(entry), this);\r\n\t}\r\n\r\n\tfindLast(entry:T):ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._findLast(entry), this);\r\n\t}\r\n\r\n\taddFirst(entry:T):void\r\n\t{\r\n\t\tthis._listInternal.addNodeBefore(new InternalNode(entry));\r\n\t\tthis._signalModification(true);\r\n\t}\r\n\r\n\taddLast(entry:T):void\r\n\t{\r\n\t\tthis.add(entry);\r\n\t}\r\n\r\n\tremoveFirst():void\r\n\t{\r\n\t\tvar _ = this, first = _._listInternal.first;\r\n\t\tif(first && _._listInternal.removeNode(first))\r\n\t\t\t_._signalModification(true);\r\n\t}\r\n\r\n\tremoveLast():void\r\n\t{\r\n\t\tvar _ = this, last = _._listInternal.last;\r\n\t\tif(last && _._listInternal.removeNode(last))\r\n\t\t\t_._signalModification(true);\r\n\t}\r\n\r\n\t// Returns true if successful and false if not found (already removed).\r\n\tremoveNode(node:ILinkedListNode):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\tif(_._listInternal.removeNode(getInternal(node, _)))\r\n\t\t{\r\n\t\t\t_._signalModification(true);\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\taddBefore(before:ILinkedListNode, entry:T):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_._listInternal.addNodeBefore(\r\n\t\t\tnew InternalNode(entry),\r\n\t\t\tgetInternal(before, _)\r\n\t\t);\r\n\r\n\t\t_._signalModification(true);\r\n\t}\r\n\r\n\taddAfter(after:ILinkedListNode, entry:T):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_._listInternal.addNodeAfter(\r\n\t\t\tnew InternalNode(entry),\r\n\t\t\tgetInternal(after, _)\r\n\t\t);\r\n\r\n\t\t_._signalModification(true);\r\n\t}\r\n\r\n\taddNodeBefore(node:ILinkedListNode, before:ILinkedListNode):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_._listInternal.addNodeBefore(\r\n\t\t\tgetInternal(before, _),\r\n\t\t\tgetInternal(node, _)\r\n\t\t);\r\n\r\n\t\t_._signalModification(true);\r\n\t}\r\n\r\n\taddNodeAfter(node:ILinkedListNode, after:ILinkedListNode):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tthis._listInternal.addNodeAfter(\r\n\t\t\tgetInternal(after, _),\r\n\t\t\tgetInternal(node, _)\r\n\t\t);\r\n\r\n\t\t_._signalModification(true);\r\n\t}\r\n\r\n\r\n}\r\n\r\n// Use an internal node class to prevent mucking up the LinkedList.\r\nclass LinkedListNode implements ILinkedListNode\r\n{\r\n\tconstructor(\r\n\t\tprivate _list:LinkedList,\r\n\t\tprivate _nodeInternal:InternalNode)\r\n\t{\r\n\t}\r\n\r\n\tget list():LinkedList\r\n\t{\r\n\t\treturn this._list;\r\n\t}\r\n\r\n\tget previous():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._nodeInternal.previous, this._list);\r\n\t}\r\n\r\n\tget next():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._nodeInternal.next, this._list);\r\n\t}\r\n\r\n\tget value():T\r\n\t{\r\n\t\treturn this._nodeInternal.value;\r\n\t}\r\n\r\n\tset value(v:T)\r\n\t{\r\n\t\tthis._nodeInternal.value = v;\r\n\t}\r\n\r\n\taddBefore(entry:T):void\r\n\t{\r\n\t\tthis._list.addBefore(this, entry);\r\n\t}\r\n\r\n\taddAfter(entry:T):void\r\n\t{\r\n\t\tthis._list.addAfter(this, entry);\r\n\t}\r\n\r\n\taddNodeBefore(before:ILinkedListNode):void\r\n\t{\r\n\t\tthis._list.addNodeBefore(this, before);\r\n\t}\r\n\r\n\taddNodeAfter(after:ILinkedListNode):void\r\n\t{\r\n\t\tthis._list.addNodeAfter(this, after);\r\n\t}\r\n\r\n\tremove():void\r\n\t{\r\n\t\tthis._list.removeNode(this);\r\n\t}\r\n\r\n}\r\n\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Collections/LinkedNodeList.d.ts b/dist/amd/System/Collections/LinkedNodeList.d.ts index 2f91455d..2baad203 100644 --- a/dist/amd/System/Collections/LinkedNodeList.d.ts +++ b/dist/amd/System/Collections/LinkedNodeList.d.ts @@ -1,9 +1,15 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -export default class LinkedNodeList> implements ILinkedNodeList, IEnumerateEach, IDisposable { +import { ILinkedNode, ILinkedNodeWithValue } from "./ILinkedListNode"; +import { IEnumerateEach } from "./Enumeration/IEnumerateEach"; +import { IDisposable } from "../Disposable/IDisposable"; +import { ILinkedNodeList } from "./ILinkedList"; +import { IEnumerator } from "./Enumeration/IEnumerator"; +import { Predicate, Selector, Action } from "../FunctionTypes"; +import { IArray } from "./Array/IArray"; +export declare class LinkedNodeList> implements ILinkedNodeList, IEnumerateEach, IDisposable { private _first; private _last; unsafeCount: number; @@ -29,3 +35,4 @@ export default class LinkedNodeList> implements static valueEnumeratorFrom(list: LinkedNodeList>): IEnumerator; static copyValues>(list: LinkedNodeList>, array: TDestination, index?: number): TDestination; } +export default LinkedNodeList; diff --git a/dist/amd/System/Collections/LinkedNodeList.js b/dist/amd/System/Collections/LinkedNodeList.js index cc0ab84e..fad2a7df 100644 --- a/dist/amd/System/Collections/LinkedNodeList.js +++ b/dist/amd/System/Collections/LinkedNodeList.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -define(["require","exports","../Text/Utility","../Exceptions/InvalidOperationException","../Exceptions/ArgumentException","../Exceptions/ArgumentNullException","./Enumeration/EnumeratorBase"],function(t,e,r,n,o,i,u){"use strict";function s(t,e){if(void 0===e&&(e="node"),null==t)throw new i["default"](e);if(t.next||t.previous)throw new n["default"]("Cannot add a node to a LinkedNodeList that is already linked.")}var f=function(){function t(){this._first=null,this._last=null,this.unsafeCount=0}return Object.defineProperty(t.prototype,"first",{get:function(){return this._first},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"last",{get:function(){return this._last},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"count",{get:function(){for(var t=this._first,e=0;t;)e++,t=t.next;return e},enumerable:!0,configurable:!0}),t.prototype.forEach=function(t){var e=null,r=this.first,n=0;do e=r,r=e&&e.next;while(e&&t(e,n++)!==!1)},t.prototype.map=function(t){if(!t)throw new i["default"]("selector");var e=[];return this.forEach(function(r){e.push(t(r))}),e},t.prototype.clear=function(){var t,e=this,r=0,n=0;for(t=e._first,e._first=null;t;){r++;var o=t;t=t.next,o.next=null}for(t=e._last,e._last=null;t;){n++;var o=t;t=t.previous,o.previous=null}return r!==n&&console.warn("LinkedNodeList: Forward versus reverse count does not match when clearing. Forward: "+r+", Reverse: "+n),e.unsafeCount=0,r},t.prototype.dispose=function(){this.clear()},t.prototype.contains=function(t){return-1!=this.indexOf(t)},t.prototype.getNodeAt=function(t){if(0>t)return null;for(var e=this._first,r=0;e&&tt)return null;for(var e=this._first,n=0;e&&t\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport * as TextUtility from \"../Text/Utility\";\r\nimport InvalidOperationException from \"../Exceptions/InvalidOperationException\";\r\nimport ArgumentException from \"../Exceptions/ArgumentException\";\r\nimport ArgumentNullException from \"../Exceptions/ArgumentNullException\";\r\nimport EnumeratorBase from \"./Enumeration/EnumeratorBase\";\r\n\r\n\r\n/*****************************\r\n * IMPORTANT NOTES ABOUT PERFORMANCE:\r\n * http://jsperf.com/simulating-a-queue\r\n *\r\n * Adding to an array is very fast, but modifying is slow.\r\n * LinkedList wins when modifying contents.\r\n * http://stackoverflow.com/questions/166884/array-versus-linked-list\r\n *****************************/\r\n\r\n/**\r\n * This class is useful for managing a list of linked nodes, but it does not protect against modifying individual links.\r\n * If the consumer modifies a link (sets the previous or next value) it will effectively break the collection.\r\n *\r\n * It is possible to declare a node type of any kind as long as it contains a previous and next value that can reference another node.\r\n * Although not as safe as the included LinkedList, this class has less overhead and is more flexible.\r\n *\r\n * The count (or length) of this LinkedNodeList is not tracked since it could be corrupted at any time.\r\n */\r\nexport default\r\nclass LinkedNodeList>\r\nimplements ILinkedNodeList, IEnumerateEach, IDisposable\r\n{\r\n\r\n\tprivate _first:TNode;\r\n\tprivate _last:TNode;\r\n\tunsafeCount:number;\r\n\r\n\tconstructor()\r\n\t{\r\n\t\tthis._first = null;\r\n\t\tthis._last = null;\r\n\t\tthis.unsafeCount = 0;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * The first node. Will be null if the collection is empty.\r\n\t */\r\n\tget first():TNode\r\n\t{\r\n\t\treturn this._first;\r\n\t}\r\n\r\n\t/**\r\n\t * The last node.\r\n\t */\r\n\tget last():TNode\r\n\t{\r\n\t\treturn this._last;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Iteratively counts the number of linked nodes and returns the value.\r\n\t * @returns {number}\r\n\t */\r\n\tget count():number\r\n\t{\r\n\r\n\t\tvar next = this._first, i:number = 0;\r\n\t\twhile(next)\r\n\t\t{\r\n\t\t\ti++;\r\n\t\t\tnext = next.next;\r\n\t\t}\r\n\r\n\t\treturn i;\r\n\t}\r\n\r\n\t// Note, no need for 'useCopy' since this avoids any modification conflict.\r\n\t// If iterating over a copy is necessary, a copy should be made manually.\r\n\tforEach(\r\n\t\taction:Predicate | Action):void\r\n\t{\r\n\t\tvar current:TNode = null,\r\n\t\t next:TNode = this.first, // Be sure to track the next node so if current node is removed.\r\n\t\t index:number = 0;\r\n\r\n\t\tdo {\r\n\t\t\tcurrent = next;\r\n\t\t\tnext = current && current.next;\r\n\t\t}\r\n\t\twhile(current\r\n\t\t&& action(current, index++)!==false);\r\n\t}\r\n\r\n\tmap(selector:Selector):T[]\r\n\t{\r\n\t\tif(!selector) throw new ArgumentNullException('selector');\r\n\r\n\t\tvar result:T[] = [];\r\n\t\tthis.forEach(node=>\r\n\t\t{\r\n\t\t\tresult.push(selector(node));\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\r\n\t/**\r\n\t * Erases the linked node's references to each other and returns the number of nodes.\r\n\t * @returns {number}\r\n\t */\r\n\tclear():number\r\n\t{\r\n\t\tvar _ = this, n:TNode, cF:number = 0, cL:number = 0;\r\n\r\n\t\t// First, clear in the forward direction.\r\n\t\tn = _._first;\r\n\t\t_._first = null;\r\n\r\n\t\twhile(n)\r\n\t\t{\r\n\t\t\tcF++;\r\n\t\t\tlet current = n;\r\n\t\t\tn = n.next;\r\n\t\t\tcurrent.next = null;\r\n\t\t}\r\n\r\n\t\t// Last, clear in the reverse direction.\r\n\t\tn = _._last;\r\n\t\t_._last = null;\r\n\r\n\t\twhile(n)\r\n\t\t{\r\n\t\t\tcL++;\r\n\t\t\tlet current = n;\r\n\t\t\tn = n.previous;\r\n\t\t\tcurrent.previous = null;\r\n\t\t}\r\n\r\n\t\tif(cF!==cL) console.warn('LinkedNodeList: Forward versus reverse count does not match when clearing. Forward: ' + cF + \", Reverse: \" + cL);\r\n\r\n\t\t_.unsafeCount = 0;\r\n\r\n\t\treturn cF;\r\n\t}\r\n\r\n\t/**\r\n\t * Clears the list.\r\n\t */\r\n\tdispose():void\r\n\t{\r\n\t\tthis.clear();\r\n\t}\r\n\r\n\t/**\r\n\t * Iterates the list to see if a node exists.\r\n\t * @param node\r\n\t * @returns {boolean}\r\n\t */\r\n\tcontains(node:TNode):boolean\r\n\t{\r\n\t\treturn this.indexOf(node)!= -1;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Gets the index of a particular node.\r\n\t * @param index\r\n\t */\r\n\tgetNodeAt(index:number):TNode\r\n\t{\r\n\t\tif(index<0)\r\n\t\t\treturn null;\r\n\r\n\t\tvar next = this._first, i:number = 0;\r\n\t\twhile(next && index):TNode {\r\n\t\tvar node:TNode = null;\r\n\t\tthis.forEach((n,i)=>{\r\n\t\t\tif(condition(n,i)) {\r\n\t\t\t\tnode = n;\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn node;\r\n\t}\r\n\r\n\t/**\r\n\t * Iterates the list to find the specified node and returns its index.\r\n\t * @param node\r\n\t * @returns {boolean}\r\n\t */\r\n\tindexOf(node:TNode):number\r\n\t{\r\n\t\tif(node && (node.previous || node.next))\r\n\t\t{\r\n\r\n\t\t\tvar index = 0;\r\n\t\t\tvar c:TNode, n:TNode = this._first;\r\n\t\t\tdo {\r\n\t\t\t\tc = n;\r\n\t\t\t\tif(c===node) return index;\r\n\t\t\t\tindex++;\r\n\t\t\t}\r\n\t\t\twhile((n = c && c.next));\r\n\t\t}\r\n\r\n\t\treturn -1;\r\n\t}\r\n\r\n\t/**\r\n\t * Removes the first node and returns true if successful.\r\n\t * @returns {boolean}\r\n\t */\r\n\tremoveFirst():boolean\r\n\t{\r\n\t\treturn this.removeNode(this._first);\r\n\t}\r\n\r\n\t/**\r\n\t * Removes the last node and returns true if successful.\r\n\t * @returns {boolean}\r\n\t */\r\n\tremoveLast():boolean\r\n\t{\r\n\t\treturn this.removeNode(this._last);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Removes the specified node.\r\n\t * Returns true if successful and false if not found (already removed).\r\n\t * @param node\r\n\t * @returns {boolean}\r\n\t */\r\n\tremoveNode(node:TNode):boolean\r\n\t{\r\n\t\tif(node==null)\r\n\t\t\tthrow new ArgumentNullException('node');\r\n\r\n\t\tvar _ = this;\r\n\t\tvar prev = node.previous, next = node.next, a:boolean = false, b:boolean = false;\r\n\r\n\t\tif(prev) prev.next = next;\r\n\t\telse if(_._first==node) _._first = next;\r\n\t\telse a = true;\r\n\r\n\t\tif(next) next.previous = prev;\r\n\t\telse if(_._last==node) _._last = prev;\r\n\t\telse b = true;\r\n\r\n\t\tif(a!==b)\r\n\t\t{\r\n\t\t\tthrow new ArgumentException(\r\n\t\t\t\t'node', TextUtility.format(\r\n\t\t\t\t\t\"Provided node is has no {0} reference but is not the {1} node!\",\r\n\t\t\t\t\ta ? \"previous\" : \"next\", a ? \"first\" : \"last\"\r\n\t\t\t\t)\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tvar removed = !a && !b;\r\n\t\tif(removed) _.unsafeCount--;\r\n\t\treturn removed;\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Adds a node to the end of the list.\r\n\t * @param node\r\n\t */\r\n\taddNode(node:TNode):void\r\n\t{\r\n\t\tthis.addNodeAfter(node);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Inserts a node before the specified 'before' node.\r\n\t * If no 'before' node is specified, it inserts it as the first node.\r\n\t * @param node\r\n\t * @param before\r\n\t */\r\n\taddNodeBefore(node:TNode, before?:TNode):void\r\n\t{\r\n\t\tassertValidDetached(node);\r\n\r\n\t\tvar _ = this;\r\n\r\n\t\tif(!before)\r\n\t\t{\r\n\t\t\tbefore = _._first;\r\n\t\t}\r\n\r\n\t\tif(before)\r\n\t\t{\r\n\t\t\tlet prev = before.previous;\r\n\t\t\tnode.previous = prev;\r\n\t\t\tnode.next = before;\r\n\r\n\t\t\tbefore.previous = node;\r\n\t\t\tif(prev) prev.next = node;\r\n\t\t\tif(before==_._first) _._last = node;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t_._first = _._last = node;\r\n\t\t}\r\n\r\n\t\t_.unsafeCount++;\r\n\t}\r\n\r\n\t/**\r\n\t * Inserts a node after the specified 'after' node.\r\n\t * If no 'after' node is specified, it appends it as the last node.\r\n\t * @param node\r\n\t * @param after\r\n\t */\r\n\taddNodeAfter(node:TNode, after?:TNode):void\r\n\t{\r\n\t\tassertValidDetached(node);\r\n\r\n\t\tvar _ = this;\r\n\r\n\t\tif(!after)\r\n\t\t{\r\n\t\t\tafter = _._last;\r\n\t\t}\r\n\r\n\t\tif(after)\r\n\t\t{\r\n\t\t\tlet next = after.next;\r\n\t\t\tnode.next = next;\r\n\t\t\tnode.previous = after;\r\n\r\n\t\t\tafter.next = node;\r\n\t\t\tif(next) next.previous = node;\r\n\t\t\tif(after==_._last) _._last = node;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t_._first = _._last = node;\r\n\t\t}\r\n\r\n\t\t_.unsafeCount++;\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Takes and existing node and replaces it.\r\n\t * @param node\r\n\t * @param replacement\r\n\t */\r\n\treplace(node:TNode, replacement:TNode):void\r\n\t{\r\n\r\n\t\tif(node==null)\r\n\t\t\tthrow new ArgumentNullException('node');\r\n\r\n\t\tassertValidDetached(replacement, 'replacement');\r\n\r\n\t\tvar _ = this;\r\n\t\treplacement.previous = node.previous;\r\n\t\treplacement.next = node.next;\r\n\r\n\t\tif(node.previous) node.previous.next = replacement;\r\n\t\tif(node.next) node.next.previous = replacement;\r\n\r\n\t\tif(node==_._first) _._first = replacement;\r\n\t\tif(node==_._last) _._last = replacement;\r\n\t}\r\n\r\n\tstatic valueEnumeratorFrom(list:LinkedNodeList>):IEnumerator {\r\n\r\n\t\tif(!list) throw new ArgumentNullException('list');\r\n\r\n\t\tvar _ = this,\r\n\t\t current:ILinkedNodeWithValue,\r\n\t\t next:ILinkedNodeWithValue;\r\n\r\n\t\treturn new EnumeratorBase(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\t// Initialize anchor...\r\n\t\t\t\tcurrent = null;\r\n\t\t\t\tnext = list.first;\r\n\t\t\t},\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\r\n\t\t\t\tif(next)\r\n\t\t\t\t{\r\n\t\t\t\t\tcurrent = next;\r\n\t\t\t\t\tnext = current && current.next;\r\n\t\t\t\t\treturn yielder.yieldReturn(current.value);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic copyValues>(\r\n\t\tlist:LinkedNodeList>,\r\n\t\tarray:TDestination,\r\n\t\tindex:number = 0):TDestination\r\n\t{\r\n\t\tif(list && list.first)\r\n\t\t{\r\n\t\t\tif(!array) throw new ArgumentNullException('array');\r\n\r\n\t\t\tlist.forEach(\r\n\t\t\t\t(node, i) =>\r\n\t\t\t\t{\r\n\t\t\t\t\tarray[index + i] = node.value;\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\treturn array;\r\n\t}\r\n\r\n}\r\n\r\nfunction assertValidDetached>(node:TNode, propName:string = 'node')\r\n{\r\n\r\n\tif(node==null)\r\n\t\tthrow new ArgumentNullException(propName);\r\n\r\n\tif(node.next || node.previous)\r\n\t\tthrow new InvalidOperationException(\"Cannot add a node to a LinkedNodeList that is already linked.\");\r\n\r\n}"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/LinkedNodeList.js","System/Collections/LinkedNodeList.ts"],"names":["define","require","exports","TextUtility","InvalidOperationException_1","ArgumentException_1","ArgumentNullException_1","EnumeratorBase_1","assertValidDetached","node","propName","ArgumentNullException","next","previous","InvalidOperationException","LinkedNodeList","this","_first","_last","unsafeCount","Object","defineProperty","prototype","get","enumerable","configurable","i","forEach","action","current","first","index","map","selector","result","push","clear","n","_","cF","cL","console","warn","dispose","contains","indexOf","getNodeAt","find","condition","c","removeFirst","removeNode","removeLast","prev","a","b","ArgumentException","format","removed","addNode","addNodeAfter","addNodeBefore","before","after","replace","replacement","valueEnumeratorFrom","list","EnumeratorBase","yielder","yieldReturn","value","yieldBreak","copyValues","array"],"mappings":"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","file":"System/Collections/LinkedNodeList.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\", \"../Text/Utility\", \"../Exceptions/InvalidOperationException\", \"../Exceptions/ArgumentException\", \"../Exceptions/ArgumentNullException\", \"./Enumeration/EnumeratorBase\"], function (require, exports, TextUtility, InvalidOperationException_1, ArgumentException_1, ArgumentNullException_1, EnumeratorBase_1) {\n \"use strict\";\n var LinkedNodeList = (function () {\n function LinkedNodeList() {\n this._first = null;\n this._last = null;\n this.unsafeCount = 0;\n }\n Object.defineProperty(LinkedNodeList.prototype, \"first\", {\n get: function () {\n return this._first;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedNodeList.prototype, \"last\", {\n get: function () {\n return this._last;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedNodeList.prototype, \"count\", {\n get: function () {\n var next = this._first, i = 0;\n while (next) {\n i++;\n next = next.next;\n }\n return i;\n },\n enumerable: true,\n configurable: true\n });\n LinkedNodeList.prototype.forEach = function (action) {\n var current = null, next = this.first, index = 0;\n do {\n current = next;\n next = current && current.next;\n } while (current\n && action(current, index++) !== false);\n };\n LinkedNodeList.prototype.map = function (selector) {\n if (!selector)\n throw new ArgumentNullException_1.ArgumentNullException('selector');\n var result = [];\n this.forEach(function (node) {\n result.push(selector(node));\n });\n return result;\n };\n LinkedNodeList.prototype.clear = function () {\n var _ = this, n, cF = 0, cL = 0;\n n = _._first;\n _._first = null;\n while (n) {\n cF++;\n var current = n;\n n = n.next;\n current.next = null;\n }\n n = _._last;\n _._last = null;\n while (n) {\n cL++;\n var current = n;\n n = n.previous;\n current.previous = null;\n }\n if (cF !== cL)\n console.warn('LinkedNodeList: Forward versus reverse count does not match when clearing. Forward: ' + cF + \", Reverse: \" + cL);\n _.unsafeCount = 0;\n return cF;\n };\n LinkedNodeList.prototype.dispose = function () {\n this.clear();\n };\n LinkedNodeList.prototype.contains = function (node) {\n return this.indexOf(node) != -1;\n };\n LinkedNodeList.prototype.getNodeAt = function (index) {\n if (index < 0)\n return null;\n var next = this._first, i = 0;\n while (next && index < i++) {\n next = next.next;\n }\n return next;\n };\n LinkedNodeList.prototype.find = function (condition) {\n var node = null;\n this.forEach(function (n, i) {\n if (condition(n, i)) {\n node = n;\n return false;\n }\n });\n return node;\n };\n LinkedNodeList.prototype.indexOf = function (node) {\n if (node && (node.previous || node.next)) {\n var index = 0;\n var c, n = this._first;\n do {\n c = n;\n if (c === node)\n return index;\n index++;\n } while ((n = c && c.next));\n }\n return -1;\n };\n LinkedNodeList.prototype.removeFirst = function () {\n return this.removeNode(this._first);\n };\n LinkedNodeList.prototype.removeLast = function () {\n return this.removeNode(this._last);\n };\n LinkedNodeList.prototype.removeNode = function (node) {\n if (node == null)\n throw new ArgumentNullException_1.ArgumentNullException('node');\n var _ = this;\n var prev = node.previous, next = node.next, a = false, b = false;\n if (prev)\n prev.next = next;\n else if (_._first == node)\n _._first = next;\n else\n a = true;\n if (next)\n next.previous = prev;\n else if (_._last == node)\n _._last = prev;\n else\n b = true;\n if (a !== b) {\n throw new ArgumentException_1.ArgumentException('node', TextUtility.format(\"Provided node is has no {0} reference but is not the {1} node!\", a ? \"previous\" : \"next\", a ? \"first\" : \"last\"));\n }\n var removed = !a && !b;\n if (removed)\n _.unsafeCount--;\n return removed;\n };\n LinkedNodeList.prototype.addNode = function (node) {\n this.addNodeAfter(node);\n };\n LinkedNodeList.prototype.addNodeBefore = function (node, before) {\n assertValidDetached(node);\n var _ = this;\n if (!before) {\n before = _._first;\n }\n if (before) {\n var prev = before.previous;\n node.previous = prev;\n node.next = before;\n before.previous = node;\n if (prev)\n prev.next = node;\n if (before == _._first)\n _._last = node;\n }\n else {\n _._first = _._last = node;\n }\n _.unsafeCount++;\n };\n LinkedNodeList.prototype.addNodeAfter = function (node, after) {\n assertValidDetached(node);\n var _ = this;\n if (!after) {\n after = _._last;\n }\n if (after) {\n var next = after.next;\n node.next = next;\n node.previous = after;\n after.next = node;\n if (next)\n next.previous = node;\n if (after == _._last)\n _._last = node;\n }\n else {\n _._first = _._last = node;\n }\n _.unsafeCount++;\n };\n LinkedNodeList.prototype.replace = function (node, replacement) {\n if (node == null)\n throw new ArgumentNullException_1.ArgumentNullException('node');\n assertValidDetached(replacement, 'replacement');\n var _ = this;\n replacement.previous = node.previous;\n replacement.next = node.next;\n if (node.previous)\n node.previous.next = replacement;\n if (node.next)\n node.next.previous = replacement;\n if (node == _._first)\n _._first = replacement;\n if (node == _._last)\n _._last = replacement;\n };\n LinkedNodeList.valueEnumeratorFrom = function (list) {\n if (!list)\n throw new ArgumentNullException_1.ArgumentNullException('list');\n var _ = this, current, next;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n current = null;\n next = list.first;\n }, function (yielder) {\n if (next) {\n current = next;\n next = current && current.next;\n return yielder.yieldReturn(current.value);\n }\n return yielder.yieldBreak();\n });\n };\n LinkedNodeList.copyValues = function (list, array, index) {\n if (index === void 0) { index = 0; }\n if (list && list.first) {\n if (!array)\n throw new ArgumentNullException_1.ArgumentNullException('array');\n list.forEach(function (node, i) {\n array[index + i] = node.value;\n });\n }\n return array;\n };\n return LinkedNodeList;\n }());\n exports.LinkedNodeList = LinkedNodeList;\n function assertValidDetached(node, propName) {\n if (propName === void 0) { propName = 'node'; }\n if (node == null)\n throw new ArgumentNullException_1.ArgumentNullException(propName);\n if (node.next || node.previous)\n throw new InvalidOperationException_1.InvalidOperationException(\"Cannot add a node to a LinkedNodeList that is already linked.\");\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = LinkedNodeList;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport * as TextUtility from \"../Text/Utility\";\r\nimport {InvalidOperationException} from \"../Exceptions/InvalidOperationException\";\r\nimport {ArgumentException} from \"../Exceptions/ArgumentException\";\r\nimport {ArgumentNullException} from \"../Exceptions/ArgumentNullException\";\r\nimport {EnumeratorBase} from \"./Enumeration/EnumeratorBase\";\r\nimport {ILinkedNode, ILinkedNodeWithValue} from \"./ILinkedListNode\";\r\nimport {IEnumerateEach} from \"./Enumeration/IEnumerateEach\";\r\nimport {IDisposable} from \"../Disposable/IDisposable\";\r\nimport {ILinkedNodeList} from \"./ILinkedList\";\r\nimport {IEnumerator} from \"./Enumeration/IEnumerator\";\r\nimport {Predicate, Selector, Action} from \"../FunctionTypes\";\r\nimport {IArray} from \"./Array/IArray\";\r\n\r\n\r\n/*****************************\r\n * IMPORTANT NOTES ABOUT PERFORMANCE:\r\n * http://jsperf.com/simulating-a-queue\r\n *\r\n * Adding to an array is very fast, but modifying is slow.\r\n * LinkedList wins when modifying contents.\r\n * http://stackoverflow.com/questions/166884/array-versus-linked-list\r\n *****************************/\r\n\r\n/**\r\n * This class is useful for managing a list of linked nodes, but it does not protect against modifying individual links.\r\n * If the consumer modifies a link (sets the previous or next value) it will effectively break the collection.\r\n *\r\n * It is possible to declare a node type of any kind as long as it contains a previous and next value that can reference another node.\r\n * Although not as safe as the included LinkedList, this class has less overhead and is more flexible.\r\n *\r\n * The count (or length) of this LinkedNodeList is not tracked since it could be corrupted at any time.\r\n */\r\nexport class LinkedNodeList>\r\nimplements ILinkedNodeList, IEnumerateEach, IDisposable\r\n{\r\n\r\n\tprivate _first:TNode;\r\n\tprivate _last:TNode;\r\n\tunsafeCount:number;\r\n\r\n\tconstructor()\r\n\t{\r\n\t\tthis._first = null;\r\n\t\tthis._last = null;\r\n\t\tthis.unsafeCount = 0;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * The first node. Will be null if the collection is empty.\r\n\t */\r\n\tget first():TNode\r\n\t{\r\n\t\treturn this._first;\r\n\t}\r\n\r\n\t/**\r\n\t * The last node.\r\n\t */\r\n\tget last():TNode\r\n\t{\r\n\t\treturn this._last;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Iteratively counts the number of linked nodes and returns the value.\r\n\t * @returns {number}\r\n\t */\r\n\tget count():number\r\n\t{\r\n\r\n\t\tvar next = this._first, i:number = 0;\r\n\t\twhile(next)\r\n\t\t{\r\n\t\t\ti++;\r\n\t\t\tnext = next.next;\r\n\t\t}\r\n\r\n\t\treturn i;\r\n\t}\r\n\r\n\t// Note, no need for 'useCopy' since this avoids any modification conflict.\r\n\t// If iterating over a copy is necessary, a copy should be made manually.\r\n\tforEach(\r\n\t\taction:Predicate | Action):void\r\n\t{\r\n\t\tvar current:TNode = null,\r\n\t\t next:TNode = this.first, // Be sure to track the next node so if current node is removed.\r\n\t\t index:number = 0;\r\n\r\n\t\tdo {\r\n\t\t\tcurrent = next;\r\n\t\t\tnext = current && current.next;\r\n\t\t}\r\n\t\twhile(current\r\n\t\t&& action(current, index++)!==false);\r\n\t}\r\n\r\n\tmap(selector:Selector):T[]\r\n\t{\r\n\t\tif(!selector) throw new ArgumentNullException('selector');\r\n\r\n\t\tvar result:T[] = [];\r\n\t\tthis.forEach(node=>\r\n\t\t{\r\n\t\t\tresult.push(selector(node));\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\r\n\t/**\r\n\t * Erases the linked node's references to each other and returns the number of nodes.\r\n\t * @returns {number}\r\n\t */\r\n\tclear():number\r\n\t{\r\n\t\tvar _ = this, n:TNode, cF:number = 0, cL:number = 0;\r\n\r\n\t\t// First, clear in the forward direction.\r\n\t\tn = _._first;\r\n\t\t_._first = null;\r\n\r\n\t\twhile(n)\r\n\t\t{\r\n\t\t\tcF++;\r\n\t\t\tlet current = n;\r\n\t\t\tn = n.next;\r\n\t\t\tcurrent.next = null;\r\n\t\t}\r\n\r\n\t\t// Last, clear in the reverse direction.\r\n\t\tn = _._last;\r\n\t\t_._last = null;\r\n\r\n\t\twhile(n)\r\n\t\t{\r\n\t\t\tcL++;\r\n\t\t\tlet current = n;\r\n\t\t\tn = n.previous;\r\n\t\t\tcurrent.previous = null;\r\n\t\t}\r\n\r\n\t\tif(cF!==cL) console.warn('LinkedNodeList: Forward versus reverse count does not match when clearing. Forward: ' + cF + \", Reverse: \" + cL);\r\n\r\n\t\t_.unsafeCount = 0;\r\n\r\n\t\treturn cF;\r\n\t}\r\n\r\n\t/**\r\n\t * Clears the list.\r\n\t */\r\n\tdispose():void\r\n\t{\r\n\t\tthis.clear();\r\n\t}\r\n\r\n\t/**\r\n\t * Iterates the list to see if a node exists.\r\n\t * @param node\r\n\t * @returns {boolean}\r\n\t */\r\n\tcontains(node:TNode):boolean\r\n\t{\r\n\t\treturn this.indexOf(node)!= -1;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Gets the index of a particular node.\r\n\t * @param index\r\n\t */\r\n\tgetNodeAt(index:number):TNode\r\n\t{\r\n\t\tif(index<0)\r\n\t\t\treturn null;\r\n\r\n\t\tvar next = this._first, i:number = 0;\r\n\t\twhile(next && index):TNode {\r\n\t\tvar node:TNode = null;\r\n\t\tthis.forEach((n,i)=>{\r\n\t\t\tif(condition(n,i)) {\r\n\t\t\t\tnode = n;\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn node;\r\n\t}\r\n\r\n\t/**\r\n\t * Iterates the list to find the specified node and returns its index.\r\n\t * @param node\r\n\t * @returns {boolean}\r\n\t */\r\n\tindexOf(node:TNode):number\r\n\t{\r\n\t\tif(node && (node.previous || node.next))\r\n\t\t{\r\n\r\n\t\t\tvar index = 0;\r\n\t\t\tvar c:TNode, n:TNode = this._first;\r\n\t\t\tdo {\r\n\t\t\t\tc = n;\r\n\t\t\t\tif(c===node) return index;\r\n\t\t\t\tindex++;\r\n\t\t\t}\r\n\t\t\twhile((n = c && c.next));\r\n\t\t}\r\n\r\n\t\treturn -1;\r\n\t}\r\n\r\n\t/**\r\n\t * Removes the first node and returns true if successful.\r\n\t * @returns {boolean}\r\n\t */\r\n\tremoveFirst():boolean\r\n\t{\r\n\t\treturn this.removeNode(this._first);\r\n\t}\r\n\r\n\t/**\r\n\t * Removes the last node and returns true if successful.\r\n\t * @returns {boolean}\r\n\t */\r\n\tremoveLast():boolean\r\n\t{\r\n\t\treturn this.removeNode(this._last);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Removes the specified node.\r\n\t * Returns true if successful and false if not found (already removed).\r\n\t * @param node\r\n\t * @returns {boolean}\r\n\t */\r\n\tremoveNode(node:TNode):boolean\r\n\t{\r\n\t\tif(node==null)\r\n\t\t\tthrow new ArgumentNullException('node');\r\n\r\n\t\tvar _ = this;\r\n\t\tvar prev = node.previous, next = node.next, a:boolean = false, b:boolean = false;\r\n\r\n\t\tif(prev) prev.next = next;\r\n\t\telse if(_._first==node) _._first = next;\r\n\t\telse a = true;\r\n\r\n\t\tif(next) next.previous = prev;\r\n\t\telse if(_._last==node) _._last = prev;\r\n\t\telse b = true;\r\n\r\n\t\tif(a!==b)\r\n\t\t{\r\n\t\t\tthrow new ArgumentException(\r\n\t\t\t\t'node', TextUtility.format(\r\n\t\t\t\t\t\"Provided node is has no {0} reference but is not the {1} node!\",\r\n\t\t\t\t\ta ? \"previous\" : \"next\", a ? \"first\" : \"last\"\r\n\t\t\t\t)\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tvar removed = !a && !b;\r\n\t\tif(removed) _.unsafeCount--;\r\n\t\treturn removed;\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Adds a node to the end of the list.\r\n\t * @param node\r\n\t */\r\n\taddNode(node:TNode):void\r\n\t{\r\n\t\tthis.addNodeAfter(node);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Inserts a node before the specified 'before' node.\r\n\t * If no 'before' node is specified, it inserts it as the first node.\r\n\t * @param node\r\n\t * @param before\r\n\t */\r\n\taddNodeBefore(node:TNode, before?:TNode):void\r\n\t{\r\n\t\tassertValidDetached(node);\r\n\r\n\t\tvar _ = this;\r\n\r\n\t\tif(!before)\r\n\t\t{\r\n\t\t\tbefore = _._first;\r\n\t\t}\r\n\r\n\t\tif(before)\r\n\t\t{\r\n\t\t\tlet prev = before.previous;\r\n\t\t\tnode.previous = prev;\r\n\t\t\tnode.next = before;\r\n\r\n\t\t\tbefore.previous = node;\r\n\t\t\tif(prev) prev.next = node;\r\n\t\t\tif(before==_._first) _._last = node;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t_._first = _._last = node;\r\n\t\t}\r\n\r\n\t\t_.unsafeCount++;\r\n\t}\r\n\r\n\t/**\r\n\t * Inserts a node after the specified 'after' node.\r\n\t * If no 'after' node is specified, it appends it as the last node.\r\n\t * @param node\r\n\t * @param after\r\n\t */\r\n\taddNodeAfter(node:TNode, after?:TNode):void\r\n\t{\r\n\t\tassertValidDetached(node);\r\n\r\n\t\tvar _ = this;\r\n\r\n\t\tif(!after)\r\n\t\t{\r\n\t\t\tafter = _._last;\r\n\t\t}\r\n\r\n\t\tif(after)\r\n\t\t{\r\n\t\t\tlet next = after.next;\r\n\t\t\tnode.next = next;\r\n\t\t\tnode.previous = after;\r\n\r\n\t\t\tafter.next = node;\r\n\t\t\tif(next) next.previous = node;\r\n\t\t\tif(after==_._last) _._last = node;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t_._first = _._last = node;\r\n\t\t}\r\n\r\n\t\t_.unsafeCount++;\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Takes and existing node and replaces it.\r\n\t * @param node\r\n\t * @param replacement\r\n\t */\r\n\treplace(node:TNode, replacement:TNode):void\r\n\t{\r\n\r\n\t\tif(node==null)\r\n\t\t\tthrow new ArgumentNullException('node');\r\n\r\n\t\tassertValidDetached(replacement, 'replacement');\r\n\r\n\t\tvar _ = this;\r\n\t\treplacement.previous = node.previous;\r\n\t\treplacement.next = node.next;\r\n\r\n\t\tif(node.previous) node.previous.next = replacement;\r\n\t\tif(node.next) node.next.previous = replacement;\r\n\r\n\t\tif(node==_._first) _._first = replacement;\r\n\t\tif(node==_._last) _._last = replacement;\r\n\t}\r\n\r\n\tstatic valueEnumeratorFrom(list:LinkedNodeList>):IEnumerator {\r\n\r\n\t\tif(!list) throw new ArgumentNullException('list');\r\n\r\n\t\tvar _ = this,\r\n\t\t current:ILinkedNodeWithValue,\r\n\t\t next:ILinkedNodeWithValue;\r\n\r\n\t\treturn new EnumeratorBase(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\t// Initialize anchor...\r\n\t\t\t\tcurrent = null;\r\n\t\t\t\tnext = list.first;\r\n\t\t\t},\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\r\n\t\t\t\tif(next)\r\n\t\t\t\t{\r\n\t\t\t\t\tcurrent = next;\r\n\t\t\t\t\tnext = current && current.next;\r\n\t\t\t\t\treturn yielder.yieldReturn(current.value);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic copyValues>(\r\n\t\tlist:LinkedNodeList>,\r\n\t\tarray:TDestination,\r\n\t\tindex:number = 0):TDestination\r\n\t{\r\n\t\tif(list && list.first)\r\n\t\t{\r\n\t\t\tif(!array) throw new ArgumentNullException('array');\r\n\r\n\t\t\tlist.forEach(\r\n\t\t\t\t(node, i) =>\r\n\t\t\t\t{\r\n\t\t\t\t\tarray[index + i] = node.value;\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\treturn array;\r\n\t}\r\n\r\n}\r\n\r\nfunction assertValidDetached>(node:TNode, propName:string = 'node')\r\n{\r\n\r\n\tif(node==null)\r\n\t\tthrow new ArgumentNullException(propName);\r\n\r\n\tif(node.next || node.previous)\r\n\t\tthrow new InvalidOperationException(\"Cannot add a node to a LinkedNodeList that is already linked.\");\r\n\r\n}\r\n\r\nexport default LinkedNodeList;"]} \ No newline at end of file diff --git a/dist/amd/System/Collections/List.d.ts b/dist/amd/System/Collections/List.d.ts index 39f8549b..4841979b 100644 --- a/dist/amd/System/Collections/List.d.ts +++ b/dist/amd/System/Collections/List.d.ts @@ -1,10 +1,15 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import CollectionBase from "./CollectionBase"; -export default class List extends CollectionBase implements IList, IEnumerateEach { +import { CollectionBase } from "./CollectionBase"; +import { Predicate, Action, EqualityComparison } from "../FunctionTypes"; +import { IEnumerator } from "./Enumeration/IEnumerator"; +import { IList } from "./IList"; +import { IEnumerateEach } from "./Enumeration/IEnumerateEach"; +import { IEnumerableOrArray } from "./IEnumerableOrArray"; +import { IArray } from "./Array/IArray"; +export declare class List extends CollectionBase implements IList, IEnumerateEach { protected _source: T[]; constructor(source?: IEnumerableOrArray, equalityComparer?: EqualityComparison); protected getCount(): number; @@ -22,3 +27,4 @@ export default class List extends CollectionBase implements IList, IEnu getEnumerator(): IEnumerator; forEach(action: Predicate | Action, useCopy?: boolean): void; } +export default List; diff --git a/dist/amd/System/Collections/List.js b/dist/amd/System/Collections/List.js index 440e9122..95805b8e 100644 --- a/dist/amd/System/Collections/List.js +++ b/dist/amd/System/Collections/List.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)};define(["require","exports","../Compare","./Array/Utility","./Enumeration/Enumerator","../Types","./Enumeration/ArrayEnumerator","./CollectionBase"],function(t,e,r,o,n,i,u,s){"use strict";var c=function(t){function e(e,o){void 0===o&&(o=r.areEqual),t.call(this,null,o);var n=this;Array.isArray(e)?n._source=e.slice():(n._source=[],n._importEntries(e))}return __extends(e,t),e.prototype.getCount=function(){return this._source.length},e.prototype._addInternal=function(t){return this._source.push(t),!0},e.prototype._removeInternal=function(t,e){return void 0===e&&(e=1/0),o.remove(this._source,t,e,this._equalityComparer)},e.prototype._clearInternal=function(){var t=this._source.length;return this._source.length=0,t},e.prototype._importEntries=function(e){if(i["default"].isArrayLike(e)){var r=e.length;if(!r)return 0;var o=this._source,n=o.length;o.length+=r;for(var u=0;r>u;u++)o[u+n]=e[u];return r}return t.prototype._importEntries.call(this,e)},e.prototype.get=function(t){return this._source[t]},e.prototype.set=function(t,e){var o=this._source;return ts;s++)o[s+n]=r[s];return e}return t.prototype._importEntries.call(this,r)},r.prototype.get=function(t){return this._source[t]},r.prototype.set=function(t,r){var o=this._source;return t\r\n\r\n// A means for interfacing an array with ICollection and for use as a base class.\r\nimport {areEqual} from \"../Compare\";\r\nimport {remove, indexOf, contains, copyTo, removeIndex} from \"./Array/Utility\";\r\nimport {forEach} from \"./Enumeration/Enumerator\";\r\nimport Type from \"../Types\";\r\nimport ArrayEnumerator from \"./Enumeration/ArrayEnumerator\";\r\nimport CollectionBase from \"./CollectionBase\";\r\nexport default class List\r\nextends CollectionBase\r\nimplements IList, IEnumerateEach\r\n{\r\n\r\n\tprotected _source:T[];\r\n\r\n\tconstructor(\r\n\t\tsource?:IEnumerableOrArray,\r\n\t\tequalityComparer:EqualityComparison = areEqual)\r\n\t{\r\n\t\tsuper(null,equalityComparer);\r\n\t\tvar _ = this;\r\n\t\tif(Array.isArray(source))\r\n\t\t{\r\n\t\t\t_._source = source.slice();\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t_._source = [];\r\n\t\t\t_._importEntries(source);\r\n\t\t}\r\n\t}\r\n\r\n\tprotected getCount():number\r\n\t{\r\n\t\treturn this._source.length;\r\n\t}\r\n\r\n\tprotected _addInternal(entry:T):boolean\r\n\t{\r\n\t\tthis._source.push(entry);\r\n\t\treturn true;\r\n\t}\r\n\r\n\tprotected _removeInternal(entry:T, max:number = Infinity):number\r\n\t{\r\n\t\treturn remove(\r\n\t\t\tthis._source, entry, max,\r\n\t\t\tthis._equalityComparer);\r\n\t}\r\n\r\n\tprotected _clearInternal():number\r\n\t{\r\n\t\tvar len = this._source.length;\r\n\t\tthis._source.length = 0;\r\n\t\treturn len;\t}\r\n\r\n\tprotected _importEntries(entries:IEnumerableOrArray):number\r\n\t{\r\n\t\tif(Type.isArrayLike(entries))\r\n\t\t{\r\n\t\t\tvar len = entries.length;\r\n\t\t\tif(!len) return 0;\r\n\t\t\tvar s = this._source;\r\n\r\n\t\t\tvar first = s.length;\r\n\t\t\ts.length += len;\r\n\t\t\tfor(let i = 0;i>(target:TTarget, index?:number):TTarget\r\n\t{\r\n\t\treturn copyTo(this._source, target, 0, index);\r\n\t}\r\n\t\r\n\tgetEnumerator():IEnumerator\r\n\t{\r\n\t\treturn new ArrayEnumerator(this._source);\r\n\t}\r\n\r\n\tforEach(action:Predicate|Action, useCopy?:boolean):void\r\n\t{\r\n\t\tvar s = this._source;\r\n\t\tforEach(useCopy ? s.slice() : s, action);\r\n\t}\r\n\r\n}"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/List.js","System/Collections/List.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","Compare_1","Utility_1","Enumerator_1","Types_1","ArrayEnumerator_1","CollectionBase_1","List","_super","source","equalityComparer","areEqual","call","_","Array","isArray","_source","slice","_importEntries","getCount","length","_addInternal","entry","push","_removeInternal","max","Infinity","remove","_equalityComparer","_clearInternal","len","entries","Type","isArrayLike","s","first","i","get","index","set","value","_onModified","indexOf","item","insert","splice","removeAt","removeIndex","contains","copyTo","target","getEnumerator","ArrayEnumerator","forEach","action","useCopy","CollectionBase","defineProperty"],"mappings":"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","file":"System/Collections/List.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"../Compare\", \"./Array/Utility\", \"./Enumeration/Enumerator\", \"../Types\", \"./Enumeration/ArrayEnumerator\", \"./CollectionBase\"], function (require, exports, Compare_1, Utility_1, Enumerator_1, Types_1, ArrayEnumerator_1, CollectionBase_1) {\n \"use strict\";\n var List = (function (_super) {\n __extends(List, _super);\n function List(source, equalityComparer) {\n if (equalityComparer === void 0) { equalityComparer = Compare_1.areEqual; }\n _super.call(this, null, equalityComparer);\n var _ = this;\n if (Array.isArray(source)) {\n _._source = source.slice();\n }\n else {\n _._source = [];\n _._importEntries(source);\n }\n }\n List.prototype.getCount = function () {\n return this._source.length;\n };\n List.prototype._addInternal = function (entry) {\n this._source.push(entry);\n return true;\n };\n List.prototype._removeInternal = function (entry, max) {\n if (max === void 0) { max = Infinity; }\n return Utility_1.remove(this._source, entry, max, this._equalityComparer);\n };\n List.prototype._clearInternal = function () {\n var len = this._source.length;\n this._source.length = 0;\n return len;\n };\n List.prototype._importEntries = function (entries) {\n if (Types_1.Type.isArrayLike(entries)) {\n var len = entries.length;\n if (!len)\n return 0;\n var s = this._source;\n var first = s.length;\n s.length += len;\n for (var i = 0; i < len; i++) {\n s[i + first] = entries[i];\n }\n return len;\n }\n else {\n return _super.prototype._importEntries.call(this, entries);\n }\n };\n List.prototype.get = function (index) {\n return this._source[index];\n };\n List.prototype.set = function (index, value) {\n var s = this._source;\n if (index < s.length && Compare_1.areEqual(value, s[index]))\n return false;\n s[index] = value;\n this._onModified();\n return true;\n };\n List.prototype.indexOf = function (item) {\n return Utility_1.indexOf(this._source, item, this._equalityComparer);\n };\n List.prototype.insert = function (index, value) {\n var s = this._source;\n if (index < s.length) {\n this._source.splice(index, 0, value);\n }\n else {\n this._source[index] = value;\n }\n this._onModified();\n };\n List.prototype.removeAt = function (index) {\n if (Utility_1.removeIndex(this._source, index)) {\n this._onModified();\n return true;\n }\n return false;\n };\n List.prototype.contains = function (item) {\n return Utility_1.contains(this._source, item, this._equalityComparer);\n };\n List.prototype.copyTo = function (target, index) {\n return Utility_1.copyTo(this._source, target, 0, index);\n };\n List.prototype.getEnumerator = function () {\n return new ArrayEnumerator_1.ArrayEnumerator(this._source);\n };\n List.prototype.forEach = function (action, useCopy) {\n var s = this._source;\n Enumerator_1.forEach(useCopy ? s.slice() : s, action);\n };\n return List;\n }(CollectionBase_1.CollectionBase));\n exports.List = List;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = List;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {areEqual} from \"../Compare\";\r\nimport {remove, indexOf, contains, copyTo, removeIndex} from \"./Array/Utility\";\r\nimport {forEach} from \"./Enumeration/Enumerator\";\r\nimport {Type} from \"../Types\";\r\nimport {ArrayEnumerator} from \"./Enumeration/ArrayEnumerator\";\r\nimport {CollectionBase} from \"./CollectionBase\";\r\nimport {Predicate, Action, EqualityComparison} from \"../FunctionTypes\";\r\nimport {IEnumerator} from \"./Enumeration/IEnumerator\";\r\nimport {IList} from \"./IList\";\r\nimport {IEnumerateEach} from \"./Enumeration/IEnumerateEach\";\r\nimport {IEnumerableOrArray} from \"./IEnumerableOrArray\";\r\nimport {IArray} from \"./Array/IArray\";\r\n\r\nexport class List\r\nextends CollectionBase implements IList, IEnumerateEach\r\n{\r\n\r\n\tprotected _source:T[];\r\n\r\n\tconstructor(\r\n\t\tsource?:IEnumerableOrArray,\r\n\t\tequalityComparer:EqualityComparison = areEqual)\r\n\t{\r\n\t\tsuper(null, equalityComparer);\r\n\t\tvar _ = this;\r\n\t\tif(Array.isArray(source))\r\n\t\t{\r\n\t\t\t_._source = source.slice();\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t_._source = [];\r\n\t\t\t_._importEntries(source);\r\n\t\t}\r\n\t}\r\n\r\n\tprotected getCount():number\r\n\t{\r\n\t\treturn this._source.length;\r\n\t}\r\n\r\n\tprotected _addInternal(entry:T):boolean\r\n\t{\r\n\t\tthis._source.push(entry);\r\n\t\treturn true;\r\n\t}\r\n\r\n\tprotected _removeInternal(entry:T, max:number = Infinity):number\r\n\t{\r\n\t\treturn remove(\r\n\t\t\tthis._source, entry, max,\r\n\t\t\tthis._equalityComparer);\r\n\t}\r\n\r\n\tprotected _clearInternal():number\r\n\t{\r\n\t\tvar len = this._source.length;\r\n\t\tthis._source.length = 0;\r\n\t\treturn len;\r\n\t}\r\n\r\n\tprotected _importEntries(entries:IEnumerableOrArray):number\r\n\t{\r\n\t\tif(Type.isArrayLike(entries))\r\n\t\t{\r\n\t\t\tvar len = entries.length;\r\n\t\t\tif(!len) return 0;\r\n\t\t\tvar s = this._source;\r\n\r\n\t\t\tvar first = s.length;\r\n\t\t\ts.length += len;\r\n\t\t\tfor(let i = 0; i>(target:TTarget, index?:number):TTarget\r\n\t{\r\n\t\treturn copyTo(this._source, target, 0, index);\r\n\t}\r\n\r\n\tgetEnumerator():IEnumerator\r\n\t{\r\n\t\treturn new ArrayEnumerator(this._source);\r\n\t}\r\n\r\n\tforEach(action:Predicate|Action, useCopy?:boolean):void\r\n\t{\r\n\t\tvar s = this._source;\r\n\t\tforEach(useCopy ? s.slice() : s, action);\r\n\t}\r\n\r\n}\r\n\r\nexport default List;"]} \ No newline at end of file diff --git a/dist/amd/System/Collections/Queue.d.ts b/dist/amd/System/Collections/Queue.d.ts index e634439d..818016a6 100644 --- a/dist/amd/System/Collections/Queue.d.ts +++ b/dist/amd/System/Collections/Queue.d.ts @@ -1,15 +1,13 @@ -/// -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Based Upon: http://referencesource.microsoft.com/#System/CompMod/system/collections/generic/queue.cs * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import CollectionBase from "./CollectionBase"; -export default class Queue extends CollectionBase { +import { CollectionBase } from "./CollectionBase"; +import { EqualityComparison, Predicate, Action } from "../FunctionTypes"; +import { IEnumerator } from "./Enumeration/IEnumerator"; +import { IEnumerableOrArray } from "./IEnumerableOrArray"; +export declare class Queue extends CollectionBase { private _array; private _head; private _tail; @@ -33,3 +31,4 @@ export default class Queue extends CollectionBase { trimExcess(threshold?: number): void; getEnumerator(): IEnumerator; } +export default Queue; diff --git a/dist/amd/System/Collections/Queue.js b/dist/amd/System/Collections/Queue.js index 1726bff5..bd0e818f 100644 --- a/dist/amd/System/Collections/Queue.js +++ b/dist/amd/System/Collections/Queue.js @@ -3,5 +3,5 @@ * Based Upon: http://referencesource.microsoft.com/#System/CompMod/system/collections/generic/queue.cs * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(e,t){function i(){this.constructor=e}for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)};define(["require","exports","../Compare","./Array/Utility","../Types","../Integer","./Enumeration/EnumeratorBase","../Exceptions/NotImplementedException","../Exceptions/InvalidOperationException","../Exceptions/ArgumentOutOfRangeException","./CollectionBase"],function(e,t,i,r,a,n,o,s,u,c,_){"use strict";function p(e,t){if(0>e)throw new c["default"](t,e,"Must be greater than zero")}function l(e,t){n["default"].assert(e,t),p(e,t)}var y=4,f=32,d=100,h=y,v=[],m=function(e){function t(t,n){void 0===n&&(n=i.areEqual),e.call(this,null,n);var o=this;if(o._head=0,o._tail=0,o._size=0,t)if(a["default"].isNumber(t)){var s=t;l(s,"capacity"),o._array=s?r.initialize(s):v}else{var u=t;o._array=r.initialize(a["default"].isArrayLike(u)?u.length:h),o._importEntries(u)}else o._array=v;o._capacity=o._array.length}return __extends(t,e),t.prototype.getCount=function(){return this._size},t.prototype._addInternal=function(e){var t=this,i=t._array,r=t._size,a=t._capacity;if(r==a){var n=a*d;a+y>n&&(n=a+y),t.setCapacity(n),i=t._array,a=t._capacity}var o=t._tail;return i[o]=e,t._tail=(o+1)%a,t._size=r+1,!0},t.prototype._removeInternal=function(e,t){throw new s["default"]("ICollection.remove is not implemented in Queue since it would require destroying the underlying array to remove the item.")},t.prototype._clearInternal=function(){var e=this,t=e._array,i=e._head,a=e._tail,n=e._size;return a>i?r.clear(t,i,a):(r.clear(t,i,t.length-i),r.clear(t,0,a)),e._head=0,e._tail=0,e._size=0,e.trimExcess(),n},t.prototype._onDispose=function(){e.prototype._onDispose.call(this);var t=this;t._array!=v&&(t._array.length=t._capacity=0,t._array=v)},t.prototype.dump=function(e){void 0===e&&(e=1/0);var t=this,i=[];if(isFinite(e)){if(n["default"].assertZeroOrGreater(e),0!==e)for(;e--&&t._size;)i.push(t._dequeueInternal())}else for(;t._size;)i.push(t._dequeueInternal());return t.trimExcess(),t._signalModification(),i},t.prototype.forEach=function(t){e.prototype.forEach.call(this,t,!0)},t.prototype.setCapacity=function(e){l(e,"capacity");var t=this,i=t._array,a=t._capacity;if(e!=a){var n=t._head,o=t._tail,s=t._size;if(i!=v&&e>a&&o>n)return i.length=t._capacity=e,void t._version++;var u=r.initialize(e);s>0&&(o>n?r.copyTo(i,u,n,0,s):(r.copyTo(i,u,n,0,a-n),r.copyTo(i,u,0,a-n,o))),t._array=u,t._capacity=e,t._head=0,t._tail=s==e?0:s,t._signalModification(!0)}},t.prototype.enqueue=function(e){this.add(e)},t.prototype._dequeueInternal=function(e){void 0===e&&(e=!1);var t=this;{if(0!=t._size){var i=t._array,r=t._head,a=t._array[r];return i[r]=null,t._head=(r+1)%t._capacity,t._size--,t._incrementModified(),a}if(e)throw new u["default"]("Cannot dequeue an empty queue.")}},t.prototype.dequeue=function(e){void 0===e&&(e=!1);var t=this;t.assertModifiable();var i=!!t._size,r=this._dequeueInternal(e);return i&&t._sizee)&&t.setCapacity(i)},t.prototype.getEnumerator=function(){var e,t,i=this;return new o["default"](function(){t=i._version,e=0},function(r){return i.assertVersion(t),e==i._size?r.yieldBreak():r.yieldReturn(i._getElement(e++))})},t}(_["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=m}); +var __extends=this&&this.__extends||function(e,t){function i(){this.constructor=e}for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)};define(["require","exports","../Compare","./Array/Utility","../Types","../Integer","./Enumeration/EnumeratorBase","../Exceptions/NotImplementedException","../Exceptions/InvalidOperationException","../Exceptions/ArgumentOutOfRangeException","./CollectionBase"],function(e,t,i,r,a,n,o,s,c,p,u){"use strict";function _(e,t){if(0>e)throw new p.ArgumentOutOfRangeException(t,e,"Must be greater than zero")}function y(e,t){n.Integer.assert(e,t),_(e,t)}var l=4,f=32,h=100,d=l,v=[],m=function(e){function t(t,n){void 0===n&&(n=i.areEqual),e.call(this,null,n);var o=this;if(o._head=0,o._tail=0,o._size=0,t)if(a.Type.isNumber(t)){var s=t;y(s,"capacity"),o._array=s?r.initialize(s):v}else{var c=t;o._array=r.initialize(a.Type.isArrayLike(c)?c.length:d),o._importEntries(c)}else o._array=v;o._capacity=o._array.length}return __extends(t,e),t.prototype.getCount=function(){return this._size},t.prototype._addInternal=function(e){var t=this,i=t._array,r=t._size,a=t._capacity;if(r==a){var n=a*h;a+l>n&&(n=a+l),t.setCapacity(n),i=t._array,a=t._capacity}var o=t._tail;return i[o]=e,t._tail=(o+1)%a,t._size=r+1,!0},t.prototype._removeInternal=function(e,t){throw new s.NotImplementedException("ICollection.remove is not implemented in Queue since it would require destroying the underlying array to remove the item.")},t.prototype._clearInternal=function(){var e=this,t=e._array,i=e._head,a=e._tail,n=e._size;return a>i?r.clear(t,i,a):(r.clear(t,i,t.length-i),r.clear(t,0,a)),e._head=0,e._tail=0,e._size=0,e.trimExcess(),n},t.prototype._onDispose=function(){e.prototype._onDispose.call(this);var t=this;t._array!=v&&(t._array.length=t._capacity=0,t._array=v)},t.prototype.dump=function(e){void 0===e&&(e=1/0);var t=this,i=[];if(isFinite(e)){if(n.Integer.assertZeroOrGreater(e),0!==e)for(;e--&&t._size;)i.push(t._dequeueInternal())}else for(;t._size;)i.push(t._dequeueInternal());return t.trimExcess(),t._signalModification(),i},t.prototype.forEach=function(t){e.prototype.forEach.call(this,t,!0)},t.prototype.setCapacity=function(e){y(e,"capacity");var t=this,i=t._array,a=t._capacity;if(e!=a){var n=t._head,o=t._tail,s=t._size;if(i!=v&&e>a&&o>n)return i.length=t._capacity=e,void t._version++;var c=r.initialize(e);s>0&&(o>n?r.copyTo(i,c,n,0,s):(r.copyTo(i,c,n,0,a-n),r.copyTo(i,c,0,a-n,o))),t._array=c,t._capacity=e,t._head=0,t._tail=s==e?0:s,t._signalModification(!0)}},t.prototype.enqueue=function(e){this.add(e)},t.prototype._dequeueInternal=function(e){void 0===e&&(e=!1);var t=this;{if(0!=t._size){var i=t._array,r=t._head,a=t._array[r];return i[r]=null,t._head=(r+1)%t._capacity,t._size--,t._incrementModified(),a}if(e)throw new c.InvalidOperationException("Cannot dequeue an empty queue.")}},t.prototype.dequeue=function(e){void 0===e&&(e=!1);var t=this;t.assertModifiable();var i=!!t._size,r=this._dequeueInternal(e);return i&&t._sizee)&&t.setCapacity(i)},t.prototype.getEnumerator=function(){var e,t,i=this;return new o.EnumeratorBase(function(){t=i._version,e=0},function(r){return i.assertVersion(t),e==i._size?r.yieldBreak():r.yieldReturn(i._getElement(e++))})},t}(u.CollectionBase);t.Queue=m,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=m}); //# sourceMappingURL=Queue.js.map diff --git a/dist/amd/System/Collections/Queue.js.map b/dist/amd/System/Collections/Queue.js.map index a5ae9c45..ea40249e 100644 --- a/dist/amd/System/Collections/Queue.js.map +++ b/dist/amd/System/Collections/Queue.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Queue.js","System/Collections/Queue.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","Compare_1","AU","Types_1","Integer_1","EnumeratorBase_1","NotImplementedException_1","InvalidOperationException_1","ArgumentOutOfRangeException_1","CollectionBase_1","assertZeroOrGreater","value","property","assertIntegerZeroOrGreater","assert","MINIMUM_GROW","SHRINK_THRESHOLD","GROW_FACTOR_HALF","DEFAULT_CAPACITY","emptyArray","Queue","_super","source","equalityComparer","areEqual","call","_","_head","_tail","_size","isNumber","capacity","_array","initialize","se","isArrayLike","length","_importEntries","_capacity","getCount","_addInternal","item","array","size","len","newCapacity","setCapacity","tail","_removeInternal","max","_clearInternal","head","clear","trimExcess","_onDispose","dump","Infinity","result","isFinite","push","_dequeueInternal","_signalModification","forEach","action","_version","newArray","copyTo","enqueue","add","throwIfEmpty","removed","_incrementModified","dequeue","assertModifiable","modified","v","tryDequeue","out","_getElement","index","peek","threshold","Math","floor","isNaN","getEnumerator","version","yielder","assertVersion","yieldBreak","yieldReturn","defineProperty"],"mappings":"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","file":"System/Collections/Queue.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based Upon: http://referencesource.microsoft.com/#System/CompMod/system/collections/generic/queue.cs\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"../Compare\", \"./Array/Utility\", \"../Types\", \"../Integer\", \"./Enumeration/EnumeratorBase\", \"../Exceptions/NotImplementedException\", \"../Exceptions/InvalidOperationException\", \"../Exceptions/ArgumentOutOfRangeException\", \"./CollectionBase\"], function (require, exports, Compare_1, AU, Types_1, Integer_1, EnumeratorBase_1, NotImplementedException_1, InvalidOperationException_1, ArgumentOutOfRangeException_1, CollectionBase_1) {\n 'use strict';\n var MINIMUM_GROW = 4;\n var SHRINK_THRESHOLD = 32;\n var GROW_FACTOR_HALF = 100;\n var DEFAULT_CAPACITY = MINIMUM_GROW;\n var emptyArray = [];\n var Queue = (function (_super) {\n __extends(Queue, _super);\n function Queue(source, equalityComparer) {\n if (equalityComparer === void 0) { equalityComparer = Compare_1.areEqual; }\n _super.call(this, null, equalityComparer);\n var _ = this;\n _._head = 0;\n _._tail = 0;\n _._size = 0;\n if (!source)\n _._array = emptyArray;\n else {\n if (Types_1.default.isNumber(source)) {\n var capacity = source;\n assertIntegerZeroOrGreater(capacity, \"capacity\");\n _._array = capacity\n ? AU.initialize(capacity)\n : emptyArray;\n }\n else {\n var se = source;\n _._array = AU.initialize(Types_1.default.isArrayLike(se)\n ? se.length\n : DEFAULT_CAPACITY);\n _._importEntries(se);\n }\n }\n _._capacity = _._array.length;\n }\n Queue.prototype.getCount = function () {\n return this._size;\n };\n Queue.prototype._addInternal = function (item) {\n var _ = this, array = _._array, size = _._size, len = _._capacity;\n if (size == len) {\n var newCapacity = len * GROW_FACTOR_HALF;\n if (newCapacity < len + MINIMUM_GROW)\n newCapacity = len + MINIMUM_GROW;\n _.setCapacity(newCapacity);\n array = _._array;\n len = _._capacity;\n }\n var tail = _._tail;\n array[tail] = item;\n _._tail = (tail + 1) % len;\n _._size = size + 1;\n return true;\n };\n Queue.prototype._removeInternal = function (item, max) {\n throw new NotImplementedException_1.default(\"ICollection\\.remove is not implemented in Queue\\\" +\n \" since it would require destroying the underlying array to remove the item.\");\n };\n Queue.prototype._clearInternal = function () {\n var _ = this, array = _._array, head = _._head, tail = _._tail, size = _._size;\n if (head < tail)\n AU.clear(array, head, tail);\n else {\n AU.clear(array, head, array.length - head);\n AU.clear(array, 0, tail);\n }\n _._head = 0;\n _._tail = 0;\n _._size = 0;\n _.trimExcess();\n return size;\n };\n Queue.prototype._onDispose = function () {\n _super.prototype._onDispose.call(this);\n var _ = this;\n if (_._array != emptyArray) {\n _._array.length = _._capacity = 0;\n _._array = emptyArray;\n }\n };\n Queue.prototype.dump = function (max) {\n if (max === void 0) { max = Infinity; }\n var _ = this, result = [];\n if (isFinite(max)) {\n Integer_1.default.assertZeroOrGreater(max);\n if (max !== 0) {\n while (max-- && _._size) {\n result.push(_._dequeueInternal());\n }\n }\n }\n else {\n while (_._size) {\n result.push(_._dequeueInternal());\n }\n }\n _.trimExcess();\n _._signalModification();\n return result;\n };\n Queue.prototype.forEach = function (action) {\n _super.prototype.forEach.call(this, action, true);\n };\n Queue.prototype.setCapacity = function (capacity) {\n assertIntegerZeroOrGreater(capacity, \"capacity\");\n var _ = this, array = _._array, len = _._capacity;\n if (capacity == len)\n return;\n var head = _._head, tail = _._tail, size = _._size;\n if (array != emptyArray && capacity > len && head < tail) {\n array.length = _._capacity = capacity;\n _._version++;\n return;\n }\n var newArray = AU.initialize(capacity);\n if (size > 0) {\n if (head < tail) {\n AU.copyTo(array, newArray, head, 0, size);\n }\n else {\n AU.copyTo(array, newArray, head, 0, len - head);\n AU.copyTo(array, newArray, 0, len - head, tail);\n }\n }\n _._array = newArray;\n _._capacity = capacity;\n _._head = 0;\n _._tail = (size == capacity) ? 0 : size;\n _._signalModification(true);\n };\n Queue.prototype.enqueue = function (item) {\n this.add(item);\n };\n Queue.prototype._dequeueInternal = function (throwIfEmpty) {\n if (throwIfEmpty === void 0) { throwIfEmpty = false; }\n var _ = this;\n if (_._size == 0) {\n if (throwIfEmpty)\n throw new InvalidOperationException_1.default(\"Cannot dequeue an empty queue.\");\n return void 0;\n }\n var array = _._array, head = _._head;\n var removed = _._array[head];\n array[head] = null;\n _._head = (head + 1) % _._capacity;\n _._size--;\n _._incrementModified();\n return removed;\n };\n Queue.prototype.dequeue = function (throwIfEmpty) {\n if (throwIfEmpty === void 0) { throwIfEmpty = false; }\n var _ = this;\n _.assertModifiable();\n var modified = !!_._size;\n var v = this._dequeueInternal(throwIfEmpty);\n if (modified && _._size < _._capacity / 2)\n _.trimExcess(SHRINK_THRESHOLD);\n _._signalModification();\n return v;\n };\n Queue.prototype.tryDequeue = function (out) {\n if (!this._size)\n return false;\n var d = this.dequeue();\n if (out)\n out(d);\n return true;\n };\n Queue.prototype._getElement = function (index) {\n assertIntegerZeroOrGreater(index, \"index\");\n var _ = this;\n return _._array[(_._head + index) % _._capacity];\n };\n Queue.prototype.peek = function () {\n if (this._size == 0)\n throw new InvalidOperationException_1.default(\"Cannot call peek on an empty queue.\");\n return this._array[this._head];\n };\n Queue.prototype.trimExcess = function (threshold) {\n var _ = this;\n var size = _._size;\n if (size < Math.floor(_._capacity * 0.9) && (isNaN(threshold) || threshold < size))\n _.setCapacity(size);\n };\n Queue.prototype.getEnumerator = function () {\n var _ = this;\n var index;\n var version;\n return new EnumeratorBase_1.default(function () {\n version = _._version;\n index = 0;\n }, function (yielder) {\n _.assertVersion(version);\n if (index == _._size)\n return yielder.yieldBreak();\n return yielder.yieldReturn(_._getElement(index++));\n });\n };\n return Queue;\n }(CollectionBase_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Queue;\n function assertZeroOrGreater(value, property) {\n if (value < 0)\n throw new ArgumentOutOfRangeException_1.default(property, value, \"Must be greater than zero\");\n }\n function assertIntegerZeroOrGreater(value, property) {\n Integer_1.default.assert(value, property);\n assertZeroOrGreater(value, property);\n }\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based Upon: http://referencesource.microsoft.com/#System/CompMod/system/collections/generic/queue.cs\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport {areEqual} from \"../Compare\";\r\nimport * as AU from \"./Array/Utility\";\r\nimport Type from \"../Types\";\r\nimport Integer from \"../Integer\";\r\nimport EnumeratorBase from \"./Enumeration/EnumeratorBase\";\r\nimport NotImplementedException from \"../Exceptions/NotImplementedException\";\r\nimport InvalidOperationException from \"../Exceptions/InvalidOperationException\";\r\nimport ArgumentOutOfRangeException from \"../Exceptions/ArgumentOutOfRangeException\";\r\nimport CollectionBase from \"./CollectionBase\";\r\n\r\nconst MINIMUM_GROW:number = 4;\r\nconst SHRINK_THRESHOLD:number = 32; // Unused?\r\n// var GROW_FACTOR: number = 200; // double each time\r\nconst GROW_FACTOR_HALF:number = 100;\r\nconst DEFAULT_CAPACITY:number = MINIMUM_GROW;\r\nvar emptyArray:any[] = [];\r\n\r\nexport default\r\nclass Queue\r\nextends CollectionBase\r\n{\r\n\r\n\tprivate _array:T[];\r\n\tprivate _head:number; // First valid element in the queue\r\n\tprivate _tail:number; // Last valid element in the queue\r\n\tprivate _size:number; // Number of elements.\r\n\tprivate _capacity:number; // Maps to _array.length;\r\n\r\n\tconstructor(\r\n\t\tsource?:IEnumerableOrArray | number,\r\n\t\tequalityComparer:EqualityComparison = areEqual)\r\n\t{\r\n\t\tsuper(null,equalityComparer);\r\n\t\tvar _ = this;\r\n\t\t_._head = 0;\r\n\t\t_._tail = 0;\r\n\t\t_._size = 0;\r\n\r\n\t\tif(!source)\r\n\t\t\t_._array = emptyArray;\r\n\t\telse\r\n\t\t{\r\n\t\t\tif(Type.isNumber(source))\r\n\t\t\t{\r\n\t\t\t\tvar capacity = source;\r\n\t\t\t\tassertIntegerZeroOrGreater(capacity, \"capacity\");\r\n\r\n\t\t\t\t_._array = capacity\r\n\t\t\t\t\t? AU.initialize(capacity)\r\n\t\t\t\t\t: emptyArray;\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tvar se = > source;\r\n\t\t\t\t_._array = AU.initialize(\r\n\t\t\t\t\tType.isArrayLike(se)\r\n\t\t\t\t\t\t? se.length\r\n\t\t\t\t\t\t: DEFAULT_CAPACITY\r\n\t\t\t\t);\r\n\r\n\t\t\t\t_._importEntries(se);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t_._capacity = _._array.length;\r\n\t}\r\n\r\n\tprotected getCount():number\r\n\t{\r\n\t\treturn this._size;\r\n\t}\r\n\r\n\tprotected _addInternal(item:T):boolean\r\n\t{\r\n\t\tvar _ = this, array = _._array, size = _._size, len = _._capacity;\r\n\t\tif(size==len)\r\n\t\t{\r\n\t\t\tvar newCapacity = len*GROW_FACTOR_HALF;\r\n\t\t\tif(newCapacity.remove is not implemented in Queue\\\" +\r\n\t\t\t\" since it would require destroying the underlying array to remove the item.\"\r\n\t\t);\r\n\t}\r\n\r\n\tprotected _clearInternal():number\r\n\t{\r\n\t\tvar _ = this, array = _._array, head = _._head, tail = _._tail, size = _._size;\r\n\t\tif(head | Action):void\r\n\t{\r\n\t\tsuper.forEach(action,true);\r\n\t}\r\n\r\n\tsetCapacity(capacity:number):void\r\n\t{\r\n\r\n\t\tassertIntegerZeroOrGreater(capacity, \"capacity\");\r\n\r\n\t\tvar _ = this, array = _._array, len = _._capacity;\r\n\r\n\t\tif(capacity==len)\r\n\t\t\treturn;\r\n\r\n\t\tvar head = _._head, tail = _._tail, size = _._size;\r\n\r\n\t\t// Special case where we can simply extend the length of the array. (JavaScript only)\r\n\t\tif(array!=emptyArray && capacity>len && head(capacity);\r\n\t\tif(size>0)\r\n\t\t{\r\n\t\t\tif(headvoid):boolean\r\n\t{\r\n\t\tif(!this._size) return false;\r\n\t\tvar d = this.dequeue();\r\n\t\tif(out) out(d);\r\n\t\treturn true;\r\n\t}\r\n\r\n\tprivate _getElement(index:number):T\r\n\t{\r\n\t\tassertIntegerZeroOrGreater(index, \"index\");\r\n\r\n\t\tvar _ = this;\r\n\t\treturn _._array[(_._head + index)%_._capacity];\r\n\t}\r\n\r\n\tpeek():T\r\n\t{\r\n\t\tif(this._size==0)\r\n\t\t\tthrow new InvalidOperationException(\"Cannot call peek on an empty queue.\");\r\n\r\n\t\treturn this._array[this._head];\r\n\t}\r\n\r\n\ttrimExcess(threshold?:number):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar size = _._size;\r\n\t\tif(size\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar index:number;\r\n\t\tvar version:number;\r\n\t\treturn new EnumeratorBase(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tversion = _._version;\r\n\t\t\t\tindex = 0;\r\n\t\t\t},\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\t\t\t\t_.assertVersion(version);\r\n\r\n\t\t\t\tif(index==_._size)\r\n\t\t\t\t\treturn yielder.yieldBreak();\r\n\r\n\t\t\t\treturn yielder.yieldReturn(_._getElement(index++));\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n}\r\n\r\nfunction assertZeroOrGreater(value:number, property:string):void\r\n{\r\n\tif(value<0)\r\n\t\tthrow new ArgumentOutOfRangeException(property, value, \"Must be greater than zero\");\r\n\r\n}\r\n\r\nfunction assertIntegerZeroOrGreater(value:number, property:string):void\r\n{\r\n\tInteger.assert(value, property);\r\n\tassertZeroOrGreater(value, property);\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Queue.js","System/Collections/Queue.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","Compare_1","AU","Types_1","Integer_1","EnumeratorBase_1","NotImplementedException_1","InvalidOperationException_1","ArgumentOutOfRangeException_1","CollectionBase_1","assertZeroOrGreater","value","property","ArgumentOutOfRangeException","assertIntegerZeroOrGreater","Integer","assert","MINIMUM_GROW","SHRINK_THRESHOLD","GROW_FACTOR_HALF","DEFAULT_CAPACITY","emptyArray","Queue","_super","source","equalityComparer","areEqual","call","_","_head","_tail","_size","Type","isNumber","capacity","_array","initialize","se","isArrayLike","length","_importEntries","_capacity","getCount","_addInternal","item","array","size","len","newCapacity","setCapacity","tail","_removeInternal","max","NotImplementedException","_clearInternal","head","clear","trimExcess","_onDispose","dump","Infinity","result","isFinite","push","_dequeueInternal","_signalModification","forEach","action","_version","newArray","copyTo","enqueue","add","throwIfEmpty","removed","_incrementModified","InvalidOperationException","dequeue","assertModifiable","modified","v","tryDequeue","out","_getElement","index","peek","threshold","Math","floor","isNaN","getEnumerator","version","EnumeratorBase","yielder","assertVersion","yieldBreak","yieldReturn","CollectionBase","defineProperty"],"mappings":"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","file":"System/Collections/Queue.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based Upon: http://referencesource.microsoft.com/#System/CompMod/system/collections/generic/queue.cs\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"../Compare\", \"./Array/Utility\", \"../Types\", \"../Integer\", \"./Enumeration/EnumeratorBase\", \"../Exceptions/NotImplementedException\", \"../Exceptions/InvalidOperationException\", \"../Exceptions/ArgumentOutOfRangeException\", \"./CollectionBase\"], function (require, exports, Compare_1, AU, Types_1, Integer_1, EnumeratorBase_1, NotImplementedException_1, InvalidOperationException_1, ArgumentOutOfRangeException_1, CollectionBase_1) {\n \"use strict\";\n var MINIMUM_GROW = 4;\n var SHRINK_THRESHOLD = 32;\n var GROW_FACTOR_HALF = 100;\n var DEFAULT_CAPACITY = MINIMUM_GROW;\n var emptyArray = [];\n var Queue = (function (_super) {\n __extends(Queue, _super);\n function Queue(source, equalityComparer) {\n if (equalityComparer === void 0) { equalityComparer = Compare_1.areEqual; }\n _super.call(this, null, equalityComparer);\n var _ = this;\n _._head = 0;\n _._tail = 0;\n _._size = 0;\n if (!source)\n _._array = emptyArray;\n else {\n if (Types_1.Type.isNumber(source)) {\n var capacity = source;\n assertIntegerZeroOrGreater(capacity, \"capacity\");\n _._array = capacity\n ? AU.initialize(capacity)\n : emptyArray;\n }\n else {\n var se = source;\n _._array = AU.initialize(Types_1.Type.isArrayLike(se)\n ? se.length\n : DEFAULT_CAPACITY);\n _._importEntries(se);\n }\n }\n _._capacity = _._array.length;\n }\n Queue.prototype.getCount = function () {\n return this._size;\n };\n Queue.prototype._addInternal = function (item) {\n var _ = this, array = _._array, size = _._size, len = _._capacity;\n if (size == len) {\n var newCapacity = len * GROW_FACTOR_HALF;\n if (newCapacity < len + MINIMUM_GROW)\n newCapacity = len + MINIMUM_GROW;\n _.setCapacity(newCapacity);\n array = _._array;\n len = _._capacity;\n }\n var tail = _._tail;\n array[tail] = item;\n _._tail = (tail + 1) % len;\n _._size = size + 1;\n return true;\n };\n Queue.prototype._removeInternal = function (item, max) {\n throw new NotImplementedException_1.NotImplementedException(\"ICollection\\.remove is not implemented in Queue\\\" +\n \" since it would require destroying the underlying array to remove the item.\");\n };\n Queue.prototype._clearInternal = function () {\n var _ = this, array = _._array, head = _._head, tail = _._tail, size = _._size;\n if (head < tail)\n AU.clear(array, head, tail);\n else {\n AU.clear(array, head, array.length - head);\n AU.clear(array, 0, tail);\n }\n _._head = 0;\n _._tail = 0;\n _._size = 0;\n _.trimExcess();\n return size;\n };\n Queue.prototype._onDispose = function () {\n _super.prototype._onDispose.call(this);\n var _ = this;\n if (_._array != emptyArray) {\n _._array.length = _._capacity = 0;\n _._array = emptyArray;\n }\n };\n Queue.prototype.dump = function (max) {\n if (max === void 0) { max = Infinity; }\n var _ = this, result = [];\n if (isFinite(max)) {\n Integer_1.Integer.assertZeroOrGreater(max);\n if (max !== 0) {\n while (max-- && _._size) {\n result.push(_._dequeueInternal());\n }\n }\n }\n else {\n while (_._size) {\n result.push(_._dequeueInternal());\n }\n }\n _.trimExcess();\n _._signalModification();\n return result;\n };\n Queue.prototype.forEach = function (action) {\n _super.prototype.forEach.call(this, action, true);\n };\n Queue.prototype.setCapacity = function (capacity) {\n assertIntegerZeroOrGreater(capacity, \"capacity\");\n var _ = this, array = _._array, len = _._capacity;\n if (capacity == len)\n return;\n var head = _._head, tail = _._tail, size = _._size;\n if (array != emptyArray && capacity > len && head < tail) {\n array.length = _._capacity = capacity;\n _._version++;\n return;\n }\n var newArray = AU.initialize(capacity);\n if (size > 0) {\n if (head < tail) {\n AU.copyTo(array, newArray, head, 0, size);\n }\n else {\n AU.copyTo(array, newArray, head, 0, len - head);\n AU.copyTo(array, newArray, 0, len - head, tail);\n }\n }\n _._array = newArray;\n _._capacity = capacity;\n _._head = 0;\n _._tail = (size == capacity) ? 0 : size;\n _._signalModification(true);\n };\n Queue.prototype.enqueue = function (item) {\n this.add(item);\n };\n Queue.prototype._dequeueInternal = function (throwIfEmpty) {\n if (throwIfEmpty === void 0) { throwIfEmpty = false; }\n var _ = this;\n if (_._size == 0) {\n if (throwIfEmpty)\n throw new InvalidOperationException_1.InvalidOperationException(\"Cannot dequeue an empty queue.\");\n return void 0;\n }\n var array = _._array, head = _._head;\n var removed = _._array[head];\n array[head] = null;\n _._head = (head + 1) % _._capacity;\n _._size--;\n _._incrementModified();\n return removed;\n };\n Queue.prototype.dequeue = function (throwIfEmpty) {\n if (throwIfEmpty === void 0) { throwIfEmpty = false; }\n var _ = this;\n _.assertModifiable();\n var modified = !!_._size;\n var v = this._dequeueInternal(throwIfEmpty);\n if (modified && _._size < _._capacity / 2)\n _.trimExcess(SHRINK_THRESHOLD);\n _._signalModification();\n return v;\n };\n Queue.prototype.tryDequeue = function (out) {\n if (!this._size)\n return false;\n var d = this.dequeue();\n if (out)\n out(d);\n return true;\n };\n Queue.prototype._getElement = function (index) {\n assertIntegerZeroOrGreater(index, \"index\");\n var _ = this;\n return _._array[(_._head + index) % _._capacity];\n };\n Queue.prototype.peek = function () {\n if (this._size == 0)\n throw new InvalidOperationException_1.InvalidOperationException(\"Cannot call peek on an empty queue.\");\n return this._array[this._head];\n };\n Queue.prototype.trimExcess = function (threshold) {\n var _ = this;\n var size = _._size;\n if (size < Math.floor(_._capacity * 0.9) && (isNaN(threshold) || threshold < size))\n _.setCapacity(size);\n };\n Queue.prototype.getEnumerator = function () {\n var _ = this;\n var index;\n var version;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n version = _._version;\n index = 0;\n }, function (yielder) {\n _.assertVersion(version);\n if (index == _._size)\n return yielder.yieldBreak();\n return yielder.yieldReturn(_._getElement(index++));\n });\n };\n return Queue;\n }(CollectionBase_1.CollectionBase));\n exports.Queue = Queue;\n function assertZeroOrGreater(value, property) {\n if (value < 0)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(property, value, \"Must be greater than zero\");\n }\n function assertIntegerZeroOrGreater(value, property) {\n Integer_1.Integer.assert(value, property);\n assertZeroOrGreater(value, property);\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Queue;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based Upon: http://referencesource.microsoft.com/#System/CompMod/system/collections/generic/queue.cs\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {areEqual} from \"../Compare\";\r\nimport * as AU from \"./Array/Utility\";\r\nimport {Type} from \"../Types\";\r\nimport {Integer} from \"../Integer\";\r\nimport {EnumeratorBase} from \"./Enumeration/EnumeratorBase\";\r\nimport {NotImplementedException} from \"../Exceptions/NotImplementedException\";\r\nimport {InvalidOperationException} from \"../Exceptions/InvalidOperationException\";\r\nimport {ArgumentOutOfRangeException} from \"../Exceptions/ArgumentOutOfRangeException\";\r\nimport {CollectionBase} from \"./CollectionBase\";\r\nimport {EqualityComparison, Predicate, Action} from \"../FunctionTypes\";\r\nimport {IEnumerator} from \"./Enumeration/IEnumerator\";\r\nimport {IEnumerableOrArray} from \"./IEnumerableOrArray\";\r\n\r\nconst MINIMUM_GROW:number = 4;\r\nconst SHRINK_THRESHOLD:number = 32; // Unused?\r\n// var GROW_FACTOR: number = 200; // double each time\r\nconst GROW_FACTOR_HALF:number = 100;\r\nconst DEFAULT_CAPACITY:number = MINIMUM_GROW;\r\nvar emptyArray:any[] = [];\r\n\r\nexport class Queue\r\nextends CollectionBase\r\n{\r\n\r\n\tprivate _array:T[];\r\n\tprivate _head:number; // First valid element in the queue\r\n\tprivate _tail:number; // Last valid element in the queue\r\n\tprivate _size:number; // Number of elements.\r\n\tprivate _capacity:number; // Maps to _array.length;\r\n\r\n\tconstructor(\r\n\t\tsource?:IEnumerableOrArray | number,\r\n\t\tequalityComparer:EqualityComparison = areEqual)\r\n\t{\r\n\t\tsuper(null, equalityComparer);\r\n\t\tvar _ = this;\r\n\t\t_._head = 0;\r\n\t\t_._tail = 0;\r\n\t\t_._size = 0;\r\n\r\n\t\tif(!source)\r\n\t\t\t_._array = emptyArray;\r\n\t\telse\r\n\t\t{\r\n\t\t\tif(Type.isNumber(source))\r\n\t\t\t{\r\n\t\t\t\tvar capacity = source;\r\n\t\t\t\tassertIntegerZeroOrGreater(capacity, \"capacity\");\r\n\r\n\t\t\t\t_._array = capacity\r\n\t\t\t\t\t? AU.initialize(capacity)\r\n\t\t\t\t\t: emptyArray;\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tvar se = > source;\r\n\t\t\t\t_._array = AU.initialize(\r\n\t\t\t\t\tType.isArrayLike(se)\r\n\t\t\t\t\t\t? se.length\r\n\t\t\t\t\t\t: DEFAULT_CAPACITY\r\n\t\t\t\t);\r\n\r\n\t\t\t\t_._importEntries(se);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t_._capacity = _._array.length;\r\n\t}\r\n\r\n\tprotected getCount():number\r\n\t{\r\n\t\treturn this._size;\r\n\t}\r\n\r\n\tprotected _addInternal(item:T):boolean\r\n\t{\r\n\t\tvar _ = this, array = _._array, size = _._size, len = _._capacity;\r\n\t\tif(size==len)\r\n\t\t{\r\n\t\t\tvar newCapacity = len*GROW_FACTOR_HALF;\r\n\t\t\tif(newCapacity.remove is not implemented in Queue\\\" +\r\n\t\t\t\" since it would require destroying the underlying array to remove the item.\"\r\n\t\t);\r\n\t}\r\n\r\n\tprotected _clearInternal():number\r\n\t{\r\n\t\tvar _ = this, array = _._array, head = _._head, tail = _._tail, size = _._size;\r\n\t\tif(head | Action):void\r\n\t{\r\n\t\tsuper.forEach(action, true);\r\n\t}\r\n\r\n\tsetCapacity(capacity:number):void\r\n\t{\r\n\r\n\t\tassertIntegerZeroOrGreater(capacity, \"capacity\");\r\n\r\n\t\tvar _ = this, array = _._array, len = _._capacity;\r\n\r\n\t\tif(capacity==len)\r\n\t\t\treturn;\r\n\r\n\t\tvar head = _._head, tail = _._tail, size = _._size;\r\n\r\n\t\t// Special case where we can simply extend the length of the array. (JavaScript only)\r\n\t\tif(array!=emptyArray && capacity>len && head(capacity);\r\n\t\tif(size>0)\r\n\t\t{\r\n\t\t\tif(headvoid):boolean\r\n\t{\r\n\t\tif(!this._size) return false;\r\n\t\tvar d = this.dequeue();\r\n\t\tif(out) out(d);\r\n\t\treturn true;\r\n\t}\r\n\r\n\tprivate _getElement(index:number):T\r\n\t{\r\n\t\tassertIntegerZeroOrGreater(index, \"index\");\r\n\r\n\t\tvar _ = this;\r\n\t\treturn _._array[(_._head + index)%_._capacity];\r\n\t}\r\n\r\n\tpeek():T\r\n\t{\r\n\t\tif(this._size==0)\r\n\t\t\tthrow new InvalidOperationException(\"Cannot call peek on an empty queue.\");\r\n\r\n\t\treturn this._array[this._head];\r\n\t}\r\n\r\n\ttrimExcess(threshold?:number):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar size = _._size;\r\n\t\tif(size\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar index:number;\r\n\t\tvar version:number;\r\n\t\treturn new EnumeratorBase(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tversion = _._version;\r\n\t\t\t\tindex = 0;\r\n\t\t\t},\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\t\t\t\t_.assertVersion(version);\r\n\r\n\t\t\t\tif(index==_._size)\r\n\t\t\t\t\treturn yielder.yieldBreak();\r\n\r\n\t\t\t\treturn yielder.yieldReturn(_._getElement(index++));\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n}\r\n\r\nfunction assertZeroOrGreater(value:number, property:string):void\r\n{\r\n\tif(value<0)\r\n\t\tthrow new ArgumentOutOfRangeException(property, value, \"Must be greater than zero\");\r\n\r\n}\r\n\r\nfunction assertIntegerZeroOrGreater(value:number, property:string):void\r\n{\r\n\tInteger.assert(value, property);\r\n\tassertZeroOrGreater(value, property);\r\n}\r\n\r\nexport default Queue;\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Collections/ReadOnlyCollectionBase.d.ts b/dist/amd/System/Collections/ReadOnlyCollectionBase.d.ts index 5633231c..2553028b 100644 --- a/dist/amd/System/Collections/ReadOnlyCollectionBase.d.ts +++ b/dist/amd/System/Collections/ReadOnlyCollectionBase.d.ts @@ -1,11 +1,10 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import CollectionBase from "./CollectionBase"; -declare abstract class ReadOnlyCollectionBase extends CollectionBase { +import { CollectionBase } from "./CollectionBase"; +import { IEnumerator } from "./Enumeration/IEnumerator"; +export declare abstract class ReadOnlyCollectionBase extends CollectionBase { protected _getCount: () => number; protected getCount(): number; protected getIsReadOnly(): boolean; diff --git a/dist/amd/System/Collections/ReadOnlyCollectionBase.js b/dist/amd/System/Collections/ReadOnlyCollectionBase.js index 44d844e8..acbb9b8e 100644 --- a/dist/amd/System/Collections/ReadOnlyCollectionBase.js +++ b/dist/amd/System/Collections/ReadOnlyCollectionBase.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)};define(["require","exports","./CollectionBase"],function(t,e,n){"use strict";var r=function(t){function e(){t.apply(this,arguments)}return __extends(e,t),e.prototype.getCount=function(){return this._getCount()},e.prototype.getIsReadOnly=function(){return!0},e.prototype._addInternal=function(t){return!1},e.prototype._removeInternal=function(t,e){return 0},e.prototype._clearInternal=function(){return 0},e.prototype.getEnumerator=function(){return this._getEnumerator()},e}(n["default"]);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r}); +var __extends=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)};define(["require","exports","./CollectionBase"],function(t,e,n){"use strict";var o=function(t){function e(){t.apply(this,arguments)}return __extends(e,t),e.prototype.getCount=function(){return this._getCount()},e.prototype.getIsReadOnly=function(){return!0},e.prototype._addInternal=function(t){return!1},e.prototype._removeInternal=function(t,e){return 0},e.prototype._clearInternal=function(){return 0},e.prototype.getEnumerator=function(){return this._getEnumerator()},e}(n.CollectionBase);e.ReadOnlyCollectionBase=o,Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=o}); //# sourceMappingURL=ReadOnlyCollectionBase.js.map diff --git a/dist/amd/System/Collections/ReadOnlyCollectionBase.js.map b/dist/amd/System/Collections/ReadOnlyCollectionBase.js.map index ac7c0b84..94030922 100644 --- a/dist/amd/System/Collections/ReadOnlyCollectionBase.js.map +++ b/dist/amd/System/Collections/ReadOnlyCollectionBase.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/ReadOnlyCollectionBase.js","System/Collections/ReadOnlyCollectionBase.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","CollectionBase_1","ReadOnlyCollectionBase","_super","apply","arguments","getCount","_getCount","getIsReadOnly","_addInternal","entry","_removeInternal","max","_clearInternal","getEnumerator","_getEnumerator","defineProperty","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,oBAAqB,SAAUC,EAASC,EAASC,GAC3E,YCAJ,IAAAC,GAAA,SAAAC,GAAA,QAAAD,KACQC,EAAAC,MAAAhB,KAAAiB,WAkCR,MAlCQlB,WAAAe,EAAAC,GAIGD,EAAAP,UAAAW,SAAV,WAEC,MAAOlB,MAAKmB,aAGHL,EAAAP,UAAAa,cAAV,WAEC,OAAO,GAGEN,EAAAP,UAAAc,aAAV,SAAuBC,GAEtB,OAAO,GAGER,EAAAP,UAAAgB,gBAAV,SAA0BD,EAASE,GAElC,MAAO,IAGEV,EAAAP,UAAAkB,eAAV,WAEC,MAAO,IAIRX,EAAAP,UAAAmB,cAAA,WACC,MAAO1B,MAAK2B,kBAGdb,GAlCQD,EAAAA,WAoCRL,QAAAoB,eAAAhB,EAAA,cAAAiB,OAAA,IDVIjB,EAAAA,WCUWE","file":"System/Collections/ReadOnlyCollectionBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"./CollectionBase\"], function (require, exports, CollectionBase_1) {\n \"use strict\";\n var ReadOnlyCollectionBase = (function (_super) {\n __extends(ReadOnlyCollectionBase, _super);\n function ReadOnlyCollectionBase() {\n _super.apply(this, arguments);\n }\n ReadOnlyCollectionBase.prototype.getCount = function () {\n return this._getCount();\n };\n ReadOnlyCollectionBase.prototype.getIsReadOnly = function () {\n return true;\n };\n ReadOnlyCollectionBase.prototype._addInternal = function (entry) {\n return false;\n };\n ReadOnlyCollectionBase.prototype._removeInternal = function (entry, max) {\n return 0;\n };\n ReadOnlyCollectionBase.prototype._clearInternal = function () {\n return 0;\n };\n ReadOnlyCollectionBase.prototype.getEnumerator = function () {\n return this._getEnumerator();\n };\n return ReadOnlyCollectionBase;\n }(CollectionBase_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ReadOnlyCollectionBase;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n\r\nimport CollectionBase from \"./CollectionBase\";\r\n\r\nabstract class ReadOnlyCollectionBase\r\nextends CollectionBase\r\n{\r\n\r\n\tprotected _getCount:()=>number;\r\n\tprotected getCount():number\r\n\t{\r\n\t\treturn this._getCount();\r\n\t}\r\n\r\n\tprotected getIsReadOnly():boolean\r\n\t{\r\n\t\treturn true;\r\n\t}\r\n\r\n\tprotected _addInternal(entry:T):boolean\r\n\t{\r\n\t\treturn false;\r\n\t}\r\n\r\n\tprotected _removeInternal(entry:T, max?:number):number\r\n\t{\r\n\t\treturn 0;\r\n\t}\r\n\r\n\tprotected _clearInternal():number\r\n\t{\r\n\t\treturn 0;\r\n\t}\r\n\r\n\tprotected _getEnumerator:()=>IEnumerator;\r\n\tgetEnumerator():IEnumerator {\r\n\t\treturn this._getEnumerator();\r\n\t}\r\n\r\n}\r\n\r\nexport default ReadOnlyCollectionBase;"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/ReadOnlyCollectionBase.js","System/Collections/ReadOnlyCollectionBase.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","CollectionBase_1","ReadOnlyCollectionBase","_super","apply","arguments","getCount","_getCount","getIsReadOnly","_addInternal","entry","_removeInternal","max","_clearInternal","getEnumerator","_getEnumerator","CollectionBase","defineProperty","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,oBAAqB,SAAUC,EAASC,EAASC,GAC3E,YCFJ,IAAAC,GAAA,SAAAC,GAAA,QAAAD,KACQC,EAAAC,MAAAhB,KAAAiB,WAqCR,MArCQlB,WAAAe,EAAAC,GAKGD,EAAAP,UAAAW,SAAV,WAEC,MAAOlB,MAAKmB,aAGHL,EAAAP,UAAAa,cAAV,WAEC,OAAO,GAGEN,EAAAP,UAAAc,aAAV,SAAuBC,GAEtB,OAAO,GAGER,EAAAP,UAAAgB,gBAAV,SAA0BD,EAASE,GAElC,MAAO,IAGEV,EAAAP,UAAAkB,eAAV,WAEC,MAAO,IAKRX,EAAAP,UAAAmB,cAAA,WAEC,MAAO1B,MAAK2B,kBAGdb,GArCQD,EAAAe,eADchB,GAAAE,uBAAsBA,EAwC5CN,OAAAqB,eAAAjB,EAAA,cAAAkB,OAAA,IDVIlB,EAAAA,WCUWE","file":"System/Collections/ReadOnlyCollectionBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"./CollectionBase\"], function (require, exports, CollectionBase_1) {\n \"use strict\";\n var ReadOnlyCollectionBase = (function (_super) {\n __extends(ReadOnlyCollectionBase, _super);\n function ReadOnlyCollectionBase() {\n _super.apply(this, arguments);\n }\n ReadOnlyCollectionBase.prototype.getCount = function () {\n return this._getCount();\n };\n ReadOnlyCollectionBase.prototype.getIsReadOnly = function () {\n return true;\n };\n ReadOnlyCollectionBase.prototype._addInternal = function (entry) {\n return false;\n };\n ReadOnlyCollectionBase.prototype._removeInternal = function (entry, max) {\n return 0;\n };\n ReadOnlyCollectionBase.prototype._clearInternal = function () {\n return 0;\n };\n ReadOnlyCollectionBase.prototype.getEnumerator = function () {\n return this._getEnumerator();\n };\n return ReadOnlyCollectionBase;\n }(CollectionBase_1.CollectionBase));\n exports.ReadOnlyCollectionBase = ReadOnlyCollectionBase;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ReadOnlyCollectionBase;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {CollectionBase} from \"./CollectionBase\";\r\nimport {IEnumerator} from \"./Enumeration/IEnumerator\";\r\n\r\nexport abstract class ReadOnlyCollectionBase\r\nextends CollectionBase\r\n{\r\n\r\n\tprotected _getCount:()=>number;\r\n\r\n\tprotected getCount():number\r\n\t{\r\n\t\treturn this._getCount();\r\n\t}\r\n\r\n\tprotected getIsReadOnly():boolean\r\n\t{\r\n\t\treturn true;\r\n\t}\r\n\r\n\tprotected _addInternal(entry:T):boolean\r\n\t{\r\n\t\treturn false;\r\n\t}\r\n\r\n\tprotected _removeInternal(entry:T, max?:number):number\r\n\t{\r\n\t\treturn 0;\r\n\t}\r\n\r\n\tprotected _clearInternal():number\r\n\t{\r\n\t\treturn 0;\r\n\t}\r\n\r\n\tprotected _getEnumerator:()=>IEnumerator;\r\n\r\n\tgetEnumerator():IEnumerator\r\n\t{\r\n\t\treturn this._getEnumerator();\r\n\t}\r\n\r\n}\r\n\r\nexport default ReadOnlyCollectionBase;"]} \ No newline at end of file diff --git a/dist/amd/System/Collections/ReadOnlyCollectionWrapper.d.ts b/dist/amd/System/Collections/ReadOnlyCollectionWrapper.d.ts index 4b2dbde9..3bd3b498 100644 --- a/dist/amd/System/Collections/ReadOnlyCollectionWrapper.d.ts +++ b/dist/amd/System/Collections/ReadOnlyCollectionWrapper.d.ts @@ -2,7 +2,8 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import ReadOnlyCollection from "./ReadOnlyCollectionBase"; -export default class ReadOnlyCollectionWrapper extends ReadOnlyCollection { +import { ReadOnlyCollectionBase } from "./ReadOnlyCollectionBase"; +import { ICollection } from "./ICollection"; +export default class ReadOnlyCollectionWrapper extends ReadOnlyCollectionBase { constructor(c: ICollection); } diff --git a/dist/amd/System/Collections/ReadOnlyCollectionWrapper.js b/dist/amd/System/Collections/ReadOnlyCollectionWrapper.js index 0090e9e7..e19c7513 100644 --- a/dist/amd/System/Collections/ReadOnlyCollectionWrapper.js +++ b/dist/amd/System/Collections/ReadOnlyCollectionWrapper.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)};define(["require","exports","../Exceptions/ArgumentNullException","./ReadOnlyCollectionBase"],function(t,e,n,o){"use strict";var r=function(t){function e(e){if(t.call(this),!e)throw new n["default"]("collection");var o=this;o._getCount=function(){return e.count},o.getEnumerator=function(){return e.getEnumerator()}}return __extends(e,t),e}(o["default"]);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r}); +var __extends=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)};define(["require","exports","../Exceptions/ArgumentNullException","./ReadOnlyCollectionBase"],function(t,e,n,o){"use strict";var r=function(t){function e(e){if(t.call(this),!e)throw new n.ArgumentNullException("collection");var o=this;o._getCount=function(){return e.count},o.getEnumerator=function(){return e.getEnumerator()}}return __extends(e,t),e}(o.ReadOnlyCollectionBase);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r}); //# sourceMappingURL=ReadOnlyCollectionWrapper.js.map diff --git a/dist/amd/System/Collections/ReadOnlyCollectionWrapper.js.map b/dist/amd/System/Collections/ReadOnlyCollectionWrapper.js.map index d14140bc..5f41bc48 100644 --- a/dist/amd/System/Collections/ReadOnlyCollectionWrapper.js.map +++ b/dist/amd/System/Collections/ReadOnlyCollectionWrapper.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/ReadOnlyCollectionWrapper.js","System/Collections/ReadOnlyCollectionWrapper.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","ArgumentNullException_1","ReadOnlyCollectionBase_1","ReadOnlyCollectionWrapper","_super","c","call","_","_getCount","count","getEnumerator","defineProperty","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,sCAAuC,4BAA6B,SAAUC,EAASC,EAASC,EAAyBC,GACnJ,YCFJ,IAAAC,GAAA,SAAAC,GAEC,QAAAD,GAAYE,GAIX,GAFAD,EAAAE,KAAAlB,OAEIiB,EACH,KAAM,IAAIJ,GAAAA,WAAsB,aAEjC,IAAIM,GAAInB,IACRmB,GAAEC,UAAY,WAAI,MAAAH,GAAEI,OACpBF,EAAEG,cAAgB,WAAK,MAAAL,GAAEK,iBAE3B,MAb0DvB,WAAAgB,EAAAC,GAa1DD,GAb0DD,EAAAA,WAA1DN,QAAAe,eAAAX,EAAA,cAAAY,OAAA,IDgBIZ,EAAAA,WAAkBG","file":"System/Collections/ReadOnlyCollectionWrapper.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"../Exceptions/ArgumentNullException\", \"./ReadOnlyCollectionBase\"], function (require, exports, ArgumentNullException_1, ReadOnlyCollectionBase_1) {\n \"use strict\";\n var ReadOnlyCollectionWrapper = (function (_super) {\n __extends(ReadOnlyCollectionWrapper, _super);\n function ReadOnlyCollectionWrapper(c) {\n _super.call(this);\n if (!c)\n throw new ArgumentNullException_1.default('collection');\n var _ = this;\n _._getCount = function () { return c.count; };\n _.getEnumerator = function () { return c.getEnumerator(); };\n }\n return ReadOnlyCollectionWrapper;\n }(ReadOnlyCollectionBase_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ReadOnlyCollectionWrapper;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport ArgumentNullException from \"../Exceptions/ArgumentNullException\";\r\nimport ReadOnlyCollection from \"./ReadOnlyCollectionBase\";\r\n\r\nexport default class ReadOnlyCollectionWrapper extends ReadOnlyCollection\r\n{\r\n\tconstructor(c:ICollection)\r\n\t{\r\n\t\tsuper();\r\n\r\n\t\tif(!c)\r\n\t\t\tthrow new ArgumentNullException('collection');\r\n\r\n\t\tvar _ = this;\r\n\t\t_._getCount = ()=>c.count;\r\n\t\t_.getEnumerator = ()=> c.getEnumerator();\r\n\t}\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/ReadOnlyCollectionWrapper.js","System/Collections/ReadOnlyCollectionWrapper.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","ArgumentNullException_1","ReadOnlyCollectionBase_1","ReadOnlyCollectionWrapper","_super","c","call","ArgumentNullException","_","_getCount","count","getEnumerator","ReadOnlyCollectionBase","defineProperty","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,sCAAuC,4BAA6B,SAAUC,EAASC,EAASC,EAAyBC,GACnJ,YCDJ,IAAAC,GAAA,SAAAC,GAEC,QAAAD,GAAYE,GAIX,GAFAD,EAAAE,KAAAlB,OAEIiB,EACH,KAAM,IAAIJ,GAAAM,sBAAsB,aAEjC,IAAIC,GAAIpB,IACRoB,GAAEC,UAAY,WAAI,MAAAJ,GAAEK,OACpBF,EAAEG,cAAgB,WAAK,MAAAN,GAAEM,iBAE3B,MAb0DxB,WAAAgB,EAAAC,GAa1DD,GAb0DD,EAAAU,uBAA1DhB,QAAAiB,eAAAb,EAAA,cAAAc,OAAA,IDeId,EAAAA,WAAkBG","file":"System/Collections/ReadOnlyCollectionWrapper.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"../Exceptions/ArgumentNullException\", \"./ReadOnlyCollectionBase\"], function (require, exports, ArgumentNullException_1, ReadOnlyCollectionBase_1) {\n \"use strict\";\n var ReadOnlyCollectionWrapper = (function (_super) {\n __extends(ReadOnlyCollectionWrapper, _super);\n function ReadOnlyCollectionWrapper(c) {\n _super.call(this);\n if (!c)\n throw new ArgumentNullException_1.ArgumentNullException('collection');\n var _ = this;\n _._getCount = function () { return c.count; };\n _.getEnumerator = function () { return c.getEnumerator(); };\n }\n return ReadOnlyCollectionWrapper;\n }(ReadOnlyCollectionBase_1.ReadOnlyCollectionBase));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ReadOnlyCollectionWrapper;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {ArgumentNullException} from \"../Exceptions/ArgumentNullException\";\r\nimport {ReadOnlyCollectionBase} from \"./ReadOnlyCollectionBase\";\r\nimport {ICollection} from \"./ICollection\";\r\n\r\nexport default class ReadOnlyCollectionWrapper extends ReadOnlyCollectionBase\r\n{\r\n\tconstructor(c:ICollection)\r\n\t{\r\n\t\tsuper();\r\n\r\n\t\tif(!c)\r\n\t\t\tthrow new ArgumentNullException('collection');\r\n\r\n\t\tvar _ = this;\r\n\t\t_._getCount = ()=>c.count;\r\n\t\t_.getEnumerator = ()=> c.getEnumerator();\r\n\t}\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Collections/Set.d.ts b/dist/amd/System/Collections/Set.d.ts index b44c6c2d..9d80d8ae 100644 --- a/dist/amd/System/Collections/Set.d.ts +++ b/dist/amd/System/Collections/Set.d.ts @@ -1,12 +1,12 @@ -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import SetBase from "./SetBase"; -export default class Set extends SetBase { +import { SetBase } from "./SetBase"; +import { ILinkedNodeWithValue } from "./ILinkedListNode"; +import { Primitive } from "../Primitive"; +import { IEnumerableOrArray } from "./IEnumerableOrArray"; +export declare class Set extends SetBase { protected newUsing(source?: IEnumerableOrArray): Set; private _registry; protected _addInternal(item: T): boolean; @@ -15,3 +15,4 @@ export default class Set extends SetBase { protected _getNode(item: T): ILinkedNodeWithValue; protected _removeInternal(item: T, max?: number): number; } +export default Set; diff --git a/dist/amd/System/Collections/Set.js b/dist/amd/System/Collections/Set.js index fea17428..cb931de5 100644 --- a/dist/amd/System/Collections/Set.js +++ b/dist/amd/System/Collections/Set.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)};define(["require","exports","../Types","../Exceptions/ArgumentException","./SetBase"],function(e,t,r,n,o){"use strict";function i(e,t){if(void 0===t&&(t=1),e&&t)for(var r=0,n=Object.keys(e);r\r\n///\r\n///\r\nimport Type from \"../Types\";\r\nimport ArgumentException from \"../Exceptions/ArgumentException\";\r\nimport SetBase from \"./SetBase\";\r\n\r\nconst OTHER = 'other';\r\n\r\nexport default class Set\r\nextends SetBase\r\n{\r\n\tprotected newUsing(source?:IEnumerableOrArray):Set\r\n\t{\r\n\t\treturn new Set(source);\r\n\t}\r\n\r\n\tprivate _registry:IMap>>;\r\n\r\n\tprotected _addInternal(item:T):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(!_.contains(item))\r\n\t\t{\r\n\t\t\tvar type = typeof item;\r\n\t\t\tif(!Type.isPrimitive(type))\r\n\t\t\t\tthrow new ArgumentException(\"item\", \"A Set can only index primitives. Complex objects require a HashSet.\");\r\n\r\n\t\t\tvar r = _._registry;\r\n\t\t\tvar t = r && r[type];\r\n\t\t\tif(!r) _._registry = r = {};\r\n\t\t\tif(!t) r[type] = t = {};\r\n\t\t\tvar node:ILinkedNodeWithValue = {value: item};\r\n\t\t\t_._getSet().addNode(node);\r\n\t\t\tt[item] = node;\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tprotected _clearInternal():number\r\n\t{\r\n\t\twipe(this._registry, 2);\r\n\t\treturn super._clearInternal();\r\n\t}\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis._registry = null;\r\n\t}\r\n\r\n\tprotected _getNode(item:T):ILinkedNodeWithValue\r\n\t{\r\n\t\tvar r = this._registry, t = r && r[typeof item];\r\n\r\n\t\treturn t && t[item];\r\n\t}\r\n\r\n\tprotected _removeInternal(item:T, max:number = Infinity):number\r\n\t{\r\n\t\tif(max===0) return 0;\r\n\r\n\t\tvar r = this._registry,\r\n\t\t t = r && r[typeof item],\r\n\t\t node = t && t[item];\r\n\r\n\t\tif(node)\r\n\t\t{\r\n\t\t\tdelete t[item];\r\n\t\t\tvar s = this._set;\r\n\t\t\tif(s && s.removeNode(node))\r\n\t\t\t{\r\n\t\t\t\treturn 1;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn 0;\r\n\t}\r\n\t\r\n}\r\n\r\nfunction wipe(map:IMap, depth:number = 1):void\r\n{\r\n\tif(map && depth)\r\n\t{\r\n\t\tfor(var key of Object.keys(map))\r\n\t\t{\r\n\t\t\tvar v = map[key];\r\n\t\t\tdelete map[key];\r\n\t\t\twipe(v, depth - 1);\r\n\t\t}\r\n\t}\r\n}"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Set.js","System/Collections/Set.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","Types_1","ArgumentException_1","SetBase_1","wipe","map","depth","_i","_a","keys","length","key","v","Set","_super","apply","arguments","newUsing","source","_addInternal","item","_","contains","type","Type","isPrimitive","ArgumentException","r","_registry","t","node","value","_getSet","addNode","_clearInternal","call","_onDispose","_getNode","_removeInternal","max","Infinity","s","_set","removeNode","SetBase","defineProperty"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,WAAY,kCAAmC,aAAc,SAAUC,EAASC,EAASC,EAASC,EAAqBC,GACjJ,YC+EJ,SAAAC,GAAcC,EAAeC,GAE5B,GAF4B,SAAAA,IAAAA,EAAA,GAEzBD,GAAOC,EAET,IAAe,GAAAC,GAAA,EAAAC,EAAAZ,OAAOa,KAAKJ,GAAZE,EAAAC,EAAAE,OAAAH,IAAiB,CAA5B,GAAII,GAAGH,EAAAD,GAENK,EAAIP,EAAIM,SACLN,GAAIM,GACXP,EAAKQ,EAAGN,EAAQ,IAnFnB,GAEAO,GAAA,SAAAC,GAAA,QAAAD,KACQC,EAAAC,MAAA3B,KAAA4B,WAsER,MAtEQ7B,WAAA0B,EAAAC,GAEGD,EAAAlB,UAAAsB,SAAV,SAAmBC,GAElB,MAAO,IAAIL,GAAOK,IAKTL,EAAAlB,UAAAwB,aAAV,SAAuBC,GAEtB,GAAIC,GAAIjC,IACR,KAAIiC,EAAEC,SAASF,GACf,CACC,GAAIG,SAAcH,EAClB,KAAInB,EAAAuB,KAAKC,YAAYF,GACpB,KAAM,IAAIrB,GAAAwB,kBAAkB,OAAQ,uEAErC,IAAIC,GAAIN,EAAEO,UACNC,EAAIF,GAAKA,EAAEJ,EACXI,KAAGN,EAAEO,UAAYD,MACjBE,IAAGF,EAAEJ,GAAQM,KACjB,IAAIC,IAAgCC,MAAOX,EAG3C,OAFAC,GAAEW,UAAUC,QAAQH,GACpBD,EAAOT,GAAQU,GACR,EAER,OAAO,GAGEjB,EAAAlB,UAAAuC,eAAV,WAGC,MADA9B,GAAKhB,KAAKwC,UAAW,GACdd,EAAAnB,UAAMuC,eAAcC,KAAA/C,OAGlByB,EAAAlB,UAAAyC,WAAV,WAECtB,EAAAnB,UAAMyC,WAAUD,KAAA/C,MAChBA,KAAKwC,UAAY,MAGRf,EAAAlB,UAAA0C,SAAV,SAAmBjB,GAElB,GAAIO,GAAIvC,KAAKwC,UAAWC,EAAIF,GAAKA,QAASP,GAE1C,OAAOS,IAAKA,EAAOT,IAGVP,EAAAlB,UAAA2C,gBAAV,SAA0BlB,EAAQmB,GAEjC,GAFiC,SAAAA,IAAAA,EAAAC,EAAAA,GAExB,IAAND,EAAS,MAAO,EAEnB,IAAIZ,GAAOvC,KAAKwC,UACZC,EAAOF,GAAKA,QAASP,IACrBU,EAAOD,GAAKA,EAAOT,EAEvB,IAAGU,EACH,OACQD,GAAOT,EACd,IAAIqB,GAAIrD,KAAKsD,IACb,IAAGD,GAAKA,EAAEE,WAAWb,GAEpB,MAAO,GAIT,MAAO,IAGTjB,GAtEQV,EAAAyC,QADK5C,GAAAa,IAAGA,EAsFhBjB,OAAAiD,eAAA7C,EAAA,cAAA+B,OAAA,IDtBI/B,EAAAA,WCsBWa","file":"System/Collections/Set.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"../Types\", \"../Exceptions/ArgumentException\", \"./SetBase\"], function (require, exports, Types_1, ArgumentException_1, SetBase_1) {\n \"use strict\";\n var OTHER = 'other';\n var Set = (function (_super) {\n __extends(Set, _super);\n function Set() {\n _super.apply(this, arguments);\n }\n Set.prototype.newUsing = function (source) {\n return new Set(source);\n };\n Set.prototype._addInternal = function (item) {\n var _ = this;\n if (!_.contains(item)) {\n var type = typeof item;\n if (!Types_1.Type.isPrimitive(type))\n throw new ArgumentException_1.ArgumentException(\"item\", \"A Set can only index primitives. Complex objects require a HashSet.\");\n var r = _._registry;\n var t = r && r[type];\n if (!r)\n _._registry = r = {};\n if (!t)\n r[type] = t = {};\n var node = { value: item };\n _._getSet().addNode(node);\n t[item] = node;\n return true;\n }\n return false;\n };\n Set.prototype._clearInternal = function () {\n wipe(this._registry, 2);\n return _super.prototype._clearInternal.call(this);\n };\n Set.prototype._onDispose = function () {\n _super.prototype._onDispose.call(this);\n this._registry = null;\n };\n Set.prototype._getNode = function (item) {\n var r = this._registry, t = r && r[typeof item];\n return t && t[item];\n };\n Set.prototype._removeInternal = function (item, max) {\n if (max === void 0) { max = Infinity; }\n if (max === 0)\n return 0;\n var r = this._registry, t = r && r[typeof item], node = t && t[item];\n if (node) {\n delete t[item];\n var s = this._set;\n if (s && s.removeNode(node)) {\n return 1;\n }\n }\n return 0;\n };\n return Set;\n }(SetBase_1.SetBase));\n exports.Set = Set;\n function wipe(map, depth) {\n if (depth === void 0) { depth = 1; }\n if (map && depth) {\n for (var _i = 0, _a = Object.keys(map); _i < _a.length; _i++) {\n var key = _a[_i];\n var v = map[key];\n delete map[key];\n wipe(v, depth - 1);\n }\n }\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Set;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {Type} from \"../Types\";\r\nimport {ArgumentException} from \"../Exceptions/ArgumentException\";\r\nimport {SetBase} from \"./SetBase\";\r\nimport {IMap} from \"./Dictionaries/IDictionary\";\r\nimport {ILinkedNodeWithValue} from \"./ILinkedListNode\";\r\nimport {Primitive} from \"../Primitive\";\r\nimport {IEnumerableOrArray} from \"./IEnumerableOrArray\";\r\n\r\nconst OTHER = 'other';\r\n\r\nexport class Set\r\nextends SetBase\r\n{\r\n\tprotected newUsing(source?:IEnumerableOrArray):Set\r\n\t{\r\n\t\treturn new Set(source);\r\n\t}\r\n\r\n\tprivate _registry:IMap>>;\r\n\r\n\tprotected _addInternal(item:T):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(!_.contains(item))\r\n\t\t{\r\n\t\t\tvar type = typeof item;\r\n\t\t\tif(!Type.isPrimitive(type))\r\n\t\t\t\tthrow new ArgumentException(\"item\", \"A Set can only index primitives. Complex objects require a HashSet.\");\r\n\r\n\t\t\tvar r = _._registry;\r\n\t\t\tvar t = r && r[type];\r\n\t\t\tif(!r) _._registry = r = {};\r\n\t\t\tif(!t) r[type] = t = {};\r\n\t\t\tvar node:ILinkedNodeWithValue = {value: item};\r\n\t\t\t_._getSet().addNode(node);\r\n\t\t\tt[item] = node;\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tprotected _clearInternal():number\r\n\t{\r\n\t\twipe(this._registry, 2);\r\n\t\treturn super._clearInternal();\r\n\t}\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis._registry = null;\r\n\t}\r\n\r\n\tprotected _getNode(item:T):ILinkedNodeWithValue\r\n\t{\r\n\t\tvar r = this._registry, t = r && r[typeof item];\r\n\r\n\t\treturn t && t[item];\r\n\t}\r\n\r\n\tprotected _removeInternal(item:T, max:number = Infinity):number\r\n\t{\r\n\t\tif(max===0) return 0;\r\n\r\n\t\tvar r = this._registry,\r\n\t\t t = r && r[typeof item],\r\n\t\t node = t && t[item];\r\n\r\n\t\tif(node)\r\n\t\t{\r\n\t\t\tdelete t[item];\r\n\t\t\tvar s = this._set;\r\n\t\t\tif(s && s.removeNode(node))\r\n\t\t\t{\r\n\t\t\t\treturn 1;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn 0;\r\n\t}\r\n\r\n}\r\n\r\nfunction wipe(map:IMap, depth:number = 1):void\r\n{\r\n\tif(map && depth)\r\n\t{\r\n\t\tfor(var key of Object.keys(map))\r\n\t\t{\r\n\t\t\tvar v = map[key];\r\n\t\t\tdelete map[key];\r\n\t\t\twipe(v, depth - 1);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default Set;"]} \ No newline at end of file diff --git a/dist/amd/System/Collections/SetBase.d.ts b/dist/amd/System/Collections/SetBase.d.ts index 1b129395..efd9f1c3 100644 --- a/dist/amd/System/Collections/SetBase.d.ts +++ b/dist/amd/System/Collections/SetBase.d.ts @@ -1,13 +1,16 @@ -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import LinkedNodeList from "./LinkedNodeList"; -import CollectionBase from "./CollectionBase"; -declare abstract class SetBase extends CollectionBase implements ISet, IDisposable { +import { LinkedNodeList } from "./LinkedNodeList"; +import { CollectionBase } from "./CollectionBase"; +import { IDisposable } from "../Disposable/IDisposable"; +import { ILinkedNodeWithValue } from "./ILinkedListNode"; +import { Predicate, Action } from "../FunctionTypes"; +import { IEnumerator } from "./Enumeration/IEnumerator"; +import { IEnumerableOrArray } from "./IEnumerableOrArray"; +import { ISet } from "./ISet"; +export declare abstract class SetBase extends CollectionBase implements ISet, IDisposable { constructor(source?: IEnumerableOrArray); protected abstract newUsing(source?: IEnumerableOrArray): SetBase; protected _set: LinkedNodeList>; diff --git a/dist/amd/System/Collections/SetBase.js b/dist/amd/System/Collections/SetBase.js index 81851095..81360922 100644 --- a/dist/amd/System/Collections/SetBase.js +++ b/dist/amd/System/Collections/SetBase.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)};define(["require","exports","./LinkedNodeList","../Exceptions/ArgumentNullException","./Enumeration/Enumerator","../Disposable/dispose","../Compare","./CollectionBase"],function(t,e,n,o,i,r,s,u){"use strict";var f="other",a=function(t){function e(e){t.call(this,null,s.areEqual),this._importEntries(e)}return __extends(e,t),e.prototype._getSet=function(){var t=this._set;return t||(this._set=t=new n["default"]),t},e.prototype.getCount=function(){return this._set?this._set.unsafeCount:0},e.prototype.exceptWith=function(t){var e=this;if(!t)throw new o["default"](f);i.forEach(t,function(t){e._removeInternal(t)&&e._incrementModified()}),e._signalModification()},e.prototype.intersectWith=function(t){if(!t)throw new o["default"](f);var n=this;if(t instanceof e){var i=n._set;i&&i.forEach(function(e){!t.contains(e.value)&&n._removeInternal(e.value)&&n._incrementModified()}),n._signalModification()}else r.using(n.newUsing(t),function(t){return n.intersectWith(t)})},e.prototype.isProperSubsetOf=function(t){var n=this;if(!t)throw new o["default"](f);return t instanceof e?t.isProperSupersetOf(this):r.using(this.newUsing(t),function(t){return t.isProperSupersetOf(n)})},e.prototype.isProperSupersetOf=function(t){var n=this;if(!t)throw new o["default"](f);var s,u=!0;return t instanceof e?(u=this.isSupersetOf(t),s=t.getCount()):r.using(this.newUsing(),function(e){i.forEach(t,function(t){return e.add(t),u=n.contains(t)}),s=e.getCount()}),u&&this.getCount()>s},e.prototype.isSubsetOf=function(t){var n=this;if(!t)throw new o["default"](f);return t instanceof e?t.isSupersetOf(this):r.using(this.newUsing(t),function(t){return t.isSupersetOf(n)})},e.prototype.isSupersetOf=function(t){var e=this;if(!t)throw new o["default"](f);var n=!0;return i.forEach(t,function(t){return n=e.contains(t)}),n},e.prototype.overlaps=function(t){var e=this;if(!t)throw new o["default"](f);var n=!1;return i.forEach(t,function(t){return!(n=e.contains(t))}),n},e.prototype.setEquals=function(t){if(!t)throw new o["default"](f);return this.getCount()==(t instanceof e?t.getCount():r.using(this.newUsing(t),function(t){return t.getCount()}))&&this.isSubsetOf(t)},e.prototype.symmetricExceptWith=function(t){if(!t)throw new o["default"](f);var n=this;t instanceof e?(i.forEach(t,function(t){n.contains(t)?n._removeInternal(t)&&n._incrementModified():n._addInternal(t)&&n._incrementModified()}),n._signalModification()):r.using(this.newUsing(t),function(t){return n.symmetricExceptWith(t)})},e.prototype.unionWith=function(t){this.importEntries(t)},e.prototype._clearInternal=function(){var t=this._set;return t?t.clear():0},e.prototype._onDispose=function(){t.prototype._onDispose.call(this),this._set=null},e.prototype.contains=function(t){return!(!this.getCount()||!this._getNode(t))},e.prototype.getEnumerator=function(){var t=this._set;return t&&this.getCount()?n["default"].valueEnumeratorFrom(t):i.empty},e.prototype.forEach=function(e,n){void 0===n&&(n=!1),n?t.prototype.forEach.call(this,e,n):this._set.forEach(function(t,n){return e(t.value,n)})},e.prototype._removeNode=function(t){return t?0!=this.remove(t.value):!1},e.prototype.removeFirst=function(){var t=this._set;return this._removeNode(t&&t.first)},e.prototype.removeLast=function(){var t=this._set;return this._removeNode(t&&t.last)},e}(u["default"]);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=a}); +var __extends=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)};define(["require","exports","./LinkedNodeList","../Exceptions/ArgumentNullException","./Enumeration/Enumerator","../Disposable/dispose","../Compare","./CollectionBase"],function(t,e,n,o,i,r,s,u){"use strict";var c="other",p=function(t){function e(e){t.call(this,null,s.areEqual),this._importEntries(e)}return __extends(e,t),e.prototype._getSet=function(){var t=this._set;return t||(this._set=t=new n.LinkedNodeList),t},e.prototype.getCount=function(){return this._set?this._set.unsafeCount:0},e.prototype.exceptWith=function(t){var e=this;if(!t)throw new o.ArgumentNullException(c);i.forEach(t,function(t){e._removeInternal(t)&&e._incrementModified()}),e._signalModification()},e.prototype.intersectWith=function(t){if(!t)throw new o.ArgumentNullException(c);var n=this;if(t instanceof e){var i=n._set;i&&i.forEach(function(e){!t.contains(e.value)&&n._removeInternal(e.value)&&n._incrementModified()}),n._signalModification()}else r.using(n.newUsing(t),function(t){return n.intersectWith(t)})},e.prototype.isProperSubsetOf=function(t){var n=this;if(!t)throw new o.ArgumentNullException(c);return t instanceof e?t.isProperSupersetOf(this):r.using(this.newUsing(t),function(t){return t.isProperSupersetOf(n)})},e.prototype.isProperSupersetOf=function(t){var n=this;if(!t)throw new o.ArgumentNullException(c);var s,u=!0;return t instanceof e?(u=this.isSupersetOf(t),s=t.getCount()):r.using(this.newUsing(),function(e){i.forEach(t,function(t){return e.add(t),u=n.contains(t)}),s=e.getCount()}),u&&this.getCount()>s},e.prototype.isSubsetOf=function(t){var n=this;if(!t)throw new o.ArgumentNullException(c);return t instanceof e?t.isSupersetOf(this):r.using(this.newUsing(t),function(t){return t.isSupersetOf(n)})},e.prototype.isSupersetOf=function(t){var e=this;if(!t)throw new o.ArgumentNullException(c);var n=!0;return i.forEach(t,function(t){return n=e.contains(t)}),n},e.prototype.overlaps=function(t){var e=this;if(!t)throw new o.ArgumentNullException(c);var n=!1;return i.forEach(t,function(t){return!(n=e.contains(t))}),n},e.prototype.setEquals=function(t){if(!t)throw new o.ArgumentNullException(c);return this.getCount()==(t instanceof e?t.getCount():r.using(this.newUsing(t),function(t){return t.getCount()}))&&this.isSubsetOf(t)},e.prototype.symmetricExceptWith=function(t){if(!t)throw new o.ArgumentNullException(c);var n=this;t instanceof e?(i.forEach(t,function(t){n.contains(t)?n._removeInternal(t)&&n._incrementModified():n._addInternal(t)&&n._incrementModified()}),n._signalModification()):r.using(this.newUsing(t),function(t){return n.symmetricExceptWith(t)})},e.prototype.unionWith=function(t){this.importEntries(t)},e.prototype._clearInternal=function(){var t=this._set;return t?t.clear():0},e.prototype._onDispose=function(){t.prototype._onDispose.call(this),this._set=null},e.prototype.contains=function(t){return!(!this.getCount()||!this._getNode(t))},e.prototype.getEnumerator=function(){var t=this._set;return t&&this.getCount()?n.LinkedNodeList.valueEnumeratorFrom(t):i.empty},e.prototype.forEach=function(e,n){void 0===n&&(n=!1),n?t.prototype.forEach.call(this,e,n):this._set.forEach(function(t,n){return e(t.value,n)})},e.prototype._removeNode=function(t){return t?0!=this.remove(t.value):!1},e.prototype.removeFirst=function(){var t=this._set;return this._removeNode(t&&t.first)},e.prototype.removeLast=function(){var t=this._set;return this._removeNode(t&&t.last)},e}(u.CollectionBase);e.SetBase=p,Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=p}); //# sourceMappingURL=SetBase.js.map diff --git a/dist/amd/System/Collections/SetBase.js.map b/dist/amd/System/Collections/SetBase.js.map index f3a9c955..167f51d1 100644 --- a/dist/amd/System/Collections/SetBase.js.map +++ b/dist/amd/System/Collections/SetBase.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/SetBase.js","System/Collections/SetBase.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","LinkedNodeList_1","ArgumentNullException_1","Enumerator_1","dispose_1","Compare_1","CollectionBase_1","OTHER","SetBase","_super","source","call","areEqual","_importEntries","_getSet","s","_set","getCount","unsafeCount","exceptWith","other","_","forEach","v","_removeInternal","_incrementModified","_signalModification","intersectWith","n","contains","value","using","newUsing","o","isProperSubsetOf","_this","isProperSupersetOf","count","result","isSupersetOf","add","isSubsetOf","overlaps","setEquals","symmetricExceptWith","_addInternal","unionWith","importEntries","_clearInternal","clear","_onDispose","item","_getNode","getEnumerator","valueEnumeratorFrom","empty","action","useCopy","node","i","_removeNode","remove","removeFirst","first","removeLast","last","defineProperty"],"mappings":"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","file":"System/Collections/SetBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"./LinkedNodeList\", \"../Exceptions/ArgumentNullException\", \"./Enumeration/Enumerator\", \"../Disposable/dispose\", \"../Compare\", \"./CollectionBase\"], function (require, exports, LinkedNodeList_1, ArgumentNullException_1, Enumerator_1, dispose_1, Compare_1, CollectionBase_1) {\n \"use strict\";\n var OTHER = 'other';\n var SetBase = (function (_super) {\n __extends(SetBase, _super);\n function SetBase(source) {\n _super.call(this, null, Compare_1.areEqual);\n this._importEntries(source);\n }\n SetBase.prototype._getSet = function () {\n var s = this._set;\n if (!s)\n this._set = s = new LinkedNodeList_1.default();\n return s;\n };\n SetBase.prototype.getCount = function () {\n return this._set ? this._set.unsafeCount : 0;\n };\n SetBase.prototype.exceptWith = function (other) {\n var _ = this;\n if (!other)\n throw new ArgumentNullException_1.default(OTHER);\n Enumerator_1.forEach(other, function (v) {\n if (_._removeInternal(v))\n _._incrementModified();\n });\n _._signalModification();\n };\n SetBase.prototype.intersectWith = function (other) {\n if (!other)\n throw new ArgumentNullException_1.default(OTHER);\n var _ = this;\n if (other instanceof SetBase) {\n var s = _._set;\n if (s)\n s.forEach(function (n) {\n if (!other.contains(n.value) && _._removeInternal(n.value))\n _._incrementModified();\n });\n _._signalModification();\n }\n else {\n dispose_1.using(_.newUsing(other), function (o) { return _.intersectWith(o); });\n }\n };\n SetBase.prototype.isProperSubsetOf = function (other) {\n var _this = this;\n if (!other)\n throw new ArgumentNullException_1.default(OTHER);\n return other instanceof SetBase\n ? other.isProperSupersetOf(this)\n : dispose_1.using(this.newUsing(other), function (o) { return o.isProperSupersetOf(_this); });\n };\n SetBase.prototype.isProperSupersetOf = function (other) {\n var _this = this;\n if (!other)\n throw new ArgumentNullException_1.default(OTHER);\n var result = true, count;\n if (other instanceof SetBase) {\n result = this.isSupersetOf(other);\n count = other.getCount();\n }\n else {\n dispose_1.using(this.newUsing(), function (o) {\n Enumerator_1.forEach(other, function (v) {\n o.add(v);\n return result = _this.contains(v);\n });\n count = o.getCount();\n });\n }\n return result && this.getCount() > count;\n };\n SetBase.prototype.isSubsetOf = function (other) {\n var _this = this;\n if (!other)\n throw new ArgumentNullException_1.default(OTHER);\n return other instanceof SetBase\n ? other.isSupersetOf(this)\n : dispose_1.using(this.newUsing(other), function (o) { return o.isSupersetOf(_this); });\n };\n SetBase.prototype.isSupersetOf = function (other) {\n var _this = this;\n if (!other)\n throw new ArgumentNullException_1.default(OTHER);\n var result = true;\n Enumerator_1.forEach(other, function (v) {\n return result = _this.contains(v);\n });\n return result;\n };\n SetBase.prototype.overlaps = function (other) {\n var _this = this;\n if (!other)\n throw new ArgumentNullException_1.default(OTHER);\n var result = false;\n Enumerator_1.forEach(other, function (v) { return !(result = _this.contains(v)); });\n return result;\n };\n SetBase.prototype.setEquals = function (other) {\n if (!other)\n throw new ArgumentNullException_1.default(OTHER);\n return this.getCount() == (other instanceof SetBase\n ? other.getCount()\n : dispose_1.using(this.newUsing(other), function (o) { return o.getCount(); }))\n && this.isSubsetOf(other);\n };\n SetBase.prototype.symmetricExceptWith = function (other) {\n if (!other)\n throw new ArgumentNullException_1.default(OTHER);\n var _ = this;\n if (other instanceof SetBase) {\n Enumerator_1.forEach(other, function (v) {\n if (_.contains(v)) {\n if (_._removeInternal(v))\n _._incrementModified();\n }\n else {\n if (_._addInternal(v))\n _._incrementModified();\n }\n });\n _._signalModification();\n }\n else {\n dispose_1.using(this.newUsing(other), function (o) { return _.symmetricExceptWith(o); });\n }\n };\n SetBase.prototype.unionWith = function (other) {\n this.importEntries(other);\n };\n SetBase.prototype._clearInternal = function () {\n var s = this._set;\n return s ? s.clear() : 0;\n };\n SetBase.prototype._onDispose = function () {\n _super.prototype._onDispose.call(this);\n this._set = null;\n };\n SetBase.prototype.contains = function (item) {\n return !(!this.getCount() || !this._getNode(item));\n };\n SetBase.prototype.getEnumerator = function () {\n var s = this._set;\n return s && this.getCount()\n ? LinkedNodeList_1.default.valueEnumeratorFrom(s)\n : Enumerator_1.empty;\n };\n SetBase.prototype.forEach = function (action, useCopy) {\n if (useCopy === void 0) { useCopy = false; }\n if (useCopy)\n _super.prototype.forEach.call(this, action, useCopy);\n else\n this._set.forEach(function (node, i) { return action(node.value, i); });\n };\n SetBase.prototype._removeNode = function (node) {\n if (!node)\n return false;\n return this.remove(node.value) != 0;\n };\n SetBase.prototype.removeFirst = function () {\n var s = this._set;\n return this._removeNode(s && s.first);\n };\n SetBase.prototype.removeLast = function () {\n var s = this._set;\n return this._removeNode(s && s.last);\n };\n return SetBase;\n }(CollectionBase_1.default));\n function wipe(map, depth) {\n if (depth === void 0) { depth = 1; }\n if (map && depth) {\n for (var _i = 0, _a = Object.keys(map); _i < _a.length; _i++) {\n var key = _a[_i];\n var v = map[key];\n delete map[key];\n wipe(v, depth - 1);\n }\n }\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = SetBase;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\nimport LinkedNodeList from \"./LinkedNodeList\";\r\nimport ArgumentNullException from \"../Exceptions/ArgumentNullException\";\r\nimport {forEach, empty as emptyEnumerator} from \"./Enumeration/Enumerator\";\r\nimport {using} from \"../Disposable/dispose\";\r\nimport {areEqual} from \"../Compare\";\r\nimport CollectionBase from \"./CollectionBase\";\r\n\r\nconst OTHER = 'other';\r\n\r\nabstract class SetBase\r\nextends CollectionBase implements ISet, IDisposable\r\n{\r\n\r\n\tconstructor(source?:IEnumerableOrArray)\r\n\t{\r\n\t\tsuper(null, areEqual);\r\n\t\tthis._importEntries(source);\r\n\t}\r\n\r\n\tprotected abstract newUsing(source?:IEnumerableOrArray):SetBase;\r\n\r\n\tprotected _set:LinkedNodeList>;\r\n\r\n\tprotected _getSet():LinkedNodeList>\r\n\t{\r\n\t\tvar s = this._set;\r\n\t\tif(!s) this._set = s = new LinkedNodeList>();\r\n\t\treturn s;\r\n\t}\r\n\r\n\tprotected getCount():number\r\n\t{\r\n\t\treturn this._set ? this._set.unsafeCount : 0;\r\n\t}\r\n\r\n\texceptWith(other:IEnumerableOrArray):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\tforEach(other, v=>\r\n\t\t{\r\n\t\t\tif(_._removeInternal(v))\r\n\t\t\t\t_._incrementModified();\r\n\t\t});\r\n\r\n\t\t_._signalModification();\r\n\t}\r\n\r\n\tintersectWith(other:IEnumerableOrArray):void\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\tvar _ = this;\r\n\t\tif(other instanceof SetBase)\r\n\t\t{\r\n\t\t\tlet s = _._set;\r\n\t\t\tif(s) s.forEach(n=>\r\n\t\t\t{\r\n\t\t\t\tif(!other.contains(n.value) && _._removeInternal(n.value))\r\n\t\t\t\t\t_._incrementModified();\r\n\t\t\t});\r\n\r\n\t\t\t_._signalModification();\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tusing(_.newUsing(other), o=>_.intersectWith(o));\r\n\t\t}\r\n\t}\r\n\r\n\tisProperSubsetOf(other:IEnumerableOrArray):boolean\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\treturn other instanceof SetBase\r\n\t\t\t? other.isProperSupersetOf(this)\r\n\t\t\t: using(this.newUsing(other), o=> o.isProperSupersetOf(this));\r\n\t}\r\n\r\n\tisProperSupersetOf(other:IEnumerableOrArray):boolean\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\tvar result = true, count:number;\r\n\t\tif(other instanceof SetBase)\r\n\t\t{\r\n\t\t\tresult = this.isSupersetOf(other);\r\n\t\t\tcount = other.getCount();\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tusing(this.newUsing(), o=>\r\n\t\t\t{\r\n\t\t\t\tforEach(other, v=>\r\n\t\t\t\t{\r\n\t\t\t\t\to.add(v); // We have to add to another set in order to filter out duplicates.\r\n\t\t\t\t\treturn result = this.contains(v);\r\n\t\t\t\t});\r\n\t\t\t\tcount = o.getCount();\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn result && this.getCount()>count;\r\n\t}\r\n\r\n\tisSubsetOf(other:IEnumerableOrArray):boolean\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\treturn other instanceof SetBase\r\n\t\t\t? other.isSupersetOf(this)\r\n\t\t\t: using(this.newUsing(other), o=> o.isSupersetOf(this));\r\n\t}\r\n\r\n\tisSupersetOf(other:IEnumerableOrArray):boolean\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\tvar result = true;\r\n\t\tforEach(other, v=>\r\n\t\t{\r\n\t\t\treturn result = this.contains(v);\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\r\n\toverlaps(other:IEnumerableOrArray):boolean\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\tvar result = false;\r\n\t\tforEach(other, v => !(result = this.contains(v)));\r\n\t\treturn result;\r\n\t}\r\n\r\n\tsetEquals(other:IEnumerableOrArray):boolean\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\treturn this.getCount()==(\r\n\t\t\t\tother instanceof SetBase\r\n\t\t\t\t\t? other.getCount()\r\n\t\t\t\t\t: using(this.newUsing(other), o=> o.getCount()))\r\n\t\t\t&& this.isSubsetOf(other);\r\n\t}\r\n\r\n\tsymmetricExceptWith(other:IEnumerableOrArray):void\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\tvar _ = this;\r\n\t\tif(other instanceof SetBase)\r\n\t\t{\r\n\t\t\tforEach(other, v=>\r\n\t\t\t{\r\n\t\t\t\tif(_.contains(v))\r\n\t\t\t\t{\r\n\t\t\t\t\tif(_._removeInternal(v))\r\n\t\t\t\t\t\t_._incrementModified();\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tif(_._addInternal(v))\r\n\t\t\t\t\t\t_._incrementModified();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t_._signalModification();\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tusing(this.newUsing(other), o=>_.symmetricExceptWith(o));\r\n\t\t}\r\n\t}\r\n\r\n\tunionWith(other:IEnumerableOrArray):void\r\n\t{\r\n\t\tthis.importEntries(other);\r\n\t}\r\n\r\n\r\n\tprotected _clearInternal():number\r\n\t{\r\n\t\tvar s = this._set;\r\n\t\treturn s ? s.clear() : 0;\r\n\t}\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis._set = null;\r\n\t}\r\n\r\n\tprotected abstract _getNode(item:T):ILinkedNodeWithValue;\r\n\r\n\tcontains(item:T):boolean\r\n\t{\r\n\t\treturn !(!this.getCount() || !this._getNode(item));\r\n\t}\r\n\r\n\tgetEnumerator():IEnumerator\r\n\t{\r\n\t\tvar s = this._set;\r\n\t\treturn s && this.getCount()\r\n\t\t\t? LinkedNodeList.valueEnumeratorFrom(s)\r\n\t\t\t: emptyEnumerator;\r\n\t}\r\n\r\n\tforEach(\r\n\t\taction:Predicate | Action,\r\n\t\tuseCopy:boolean = false):void\r\n\t{\r\n\t\tif(useCopy) super.forEach(action, useCopy);\r\n\t\telse this._set.forEach((node, i)=>action(node.value, i));\r\n\t}\r\n\r\n\tprotected _removeNode(node:ILinkedNodeWithValue):boolean\r\n\t{\r\n\t\tif(!node) return false;\r\n\t\treturn this.remove(node.value)!=0;\r\n\t}\r\n\r\n\tremoveFirst():boolean\r\n\t{\r\n\t\tvar s = this._set;\r\n\t\treturn this._removeNode(s && s.first);\r\n\t}\r\n\r\n\tremoveLast():boolean\r\n\t{\r\n\t\tvar s = this._set;\r\n\t\treturn this._removeNode(s && s.last);\r\n\t}\r\n\r\n\r\n}\r\n\r\nfunction wipe(map:IMap, depth:number = 1):void\r\n{\r\n\tif(map && depth)\r\n\t{\r\n\t\tfor(var key of Object.keys(map))\r\n\t\t{\r\n\t\t\tvar v = map[key];\r\n\t\t\tdelete map[key];\r\n\t\t\twipe(v, depth - 1);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default SetBase;"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/SetBase.js","System/Collections/SetBase.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","LinkedNodeList_1","ArgumentNullException_1","Enumerator_1","dispose_1","Compare_1","CollectionBase_1","OTHER","SetBase","_super","source","call","areEqual","_importEntries","_getSet","s","_set","LinkedNodeList","getCount","unsafeCount","exceptWith","other","_","ArgumentNullException","forEach","v","_removeInternal","_incrementModified","_signalModification","intersectWith","n","contains","value","using","newUsing","o","isProperSubsetOf","_this","isProperSupersetOf","count","result","isSupersetOf","add","isSubsetOf","overlaps","setEquals","symmetricExceptWith","_addInternal","unionWith","importEntries","_clearInternal","clear","_onDispose","item","_getNode","getEnumerator","valueEnumeratorFrom","empty","action","useCopy","node","i","_removeNode","remove","removeFirst","first","removeLast","last","CollectionBase","defineProperty"],"mappings":"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","file":"System/Collections/SetBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"./LinkedNodeList\", \"../Exceptions/ArgumentNullException\", \"./Enumeration/Enumerator\", \"../Disposable/dispose\", \"../Compare\", \"./CollectionBase\"], function (require, exports, LinkedNodeList_1, ArgumentNullException_1, Enumerator_1, dispose_1, Compare_1, CollectionBase_1) {\n \"use strict\";\n var OTHER = 'other';\n var SetBase = (function (_super) {\n __extends(SetBase, _super);\n function SetBase(source) {\n _super.call(this, null, Compare_1.areEqual);\n this._importEntries(source);\n }\n SetBase.prototype._getSet = function () {\n var s = this._set;\n if (!s)\n this._set = s = new LinkedNodeList_1.LinkedNodeList();\n return s;\n };\n SetBase.prototype.getCount = function () {\n return this._set ? this._set.unsafeCount : 0;\n };\n SetBase.prototype.exceptWith = function (other) {\n var _ = this;\n if (!other)\n throw new ArgumentNullException_1.ArgumentNullException(OTHER);\n Enumerator_1.forEach(other, function (v) {\n if (_._removeInternal(v))\n _._incrementModified();\n });\n _._signalModification();\n };\n SetBase.prototype.intersectWith = function (other) {\n if (!other)\n throw new ArgumentNullException_1.ArgumentNullException(OTHER);\n var _ = this;\n if (other instanceof SetBase) {\n var s = _._set;\n if (s)\n s.forEach(function (n) {\n if (!other.contains(n.value) && _._removeInternal(n.value))\n _._incrementModified();\n });\n _._signalModification();\n }\n else {\n dispose_1.using(_.newUsing(other), function (o) { return _.intersectWith(o); });\n }\n };\n SetBase.prototype.isProperSubsetOf = function (other) {\n var _this = this;\n if (!other)\n throw new ArgumentNullException_1.ArgumentNullException(OTHER);\n return other instanceof SetBase\n ? other.isProperSupersetOf(this)\n : dispose_1.using(this.newUsing(other), function (o) { return o.isProperSupersetOf(_this); });\n };\n SetBase.prototype.isProperSupersetOf = function (other) {\n var _this = this;\n if (!other)\n throw new ArgumentNullException_1.ArgumentNullException(OTHER);\n var result = true, count;\n if (other instanceof SetBase) {\n result = this.isSupersetOf(other);\n count = other.getCount();\n }\n else {\n dispose_1.using(this.newUsing(), function (o) {\n Enumerator_1.forEach(other, function (v) {\n o.add(v);\n return result = _this.contains(v);\n });\n count = o.getCount();\n });\n }\n return result && this.getCount() > count;\n };\n SetBase.prototype.isSubsetOf = function (other) {\n var _this = this;\n if (!other)\n throw new ArgumentNullException_1.ArgumentNullException(OTHER);\n return other instanceof SetBase\n ? other.isSupersetOf(this)\n : dispose_1.using(this.newUsing(other), function (o) { return o.isSupersetOf(_this); });\n };\n SetBase.prototype.isSupersetOf = function (other) {\n var _this = this;\n if (!other)\n throw new ArgumentNullException_1.ArgumentNullException(OTHER);\n var result = true;\n Enumerator_1.forEach(other, function (v) {\n return result = _this.contains(v);\n });\n return result;\n };\n SetBase.prototype.overlaps = function (other) {\n var _this = this;\n if (!other)\n throw new ArgumentNullException_1.ArgumentNullException(OTHER);\n var result = false;\n Enumerator_1.forEach(other, function (v) { return !(result = _this.contains(v)); });\n return result;\n };\n SetBase.prototype.setEquals = function (other) {\n if (!other)\n throw new ArgumentNullException_1.ArgumentNullException(OTHER);\n return this.getCount() == (other instanceof SetBase\n ? other.getCount()\n : dispose_1.using(this.newUsing(other), function (o) { return o.getCount(); }))\n && this.isSubsetOf(other);\n };\n SetBase.prototype.symmetricExceptWith = function (other) {\n if (!other)\n throw new ArgumentNullException_1.ArgumentNullException(OTHER);\n var _ = this;\n if (other instanceof SetBase) {\n Enumerator_1.forEach(other, function (v) {\n if (_.contains(v)) {\n if (_._removeInternal(v))\n _._incrementModified();\n }\n else {\n if (_._addInternal(v))\n _._incrementModified();\n }\n });\n _._signalModification();\n }\n else {\n dispose_1.using(this.newUsing(other), function (o) { return _.symmetricExceptWith(o); });\n }\n };\n SetBase.prototype.unionWith = function (other) {\n this.importEntries(other);\n };\n SetBase.prototype._clearInternal = function () {\n var s = this._set;\n return s ? s.clear() : 0;\n };\n SetBase.prototype._onDispose = function () {\n _super.prototype._onDispose.call(this);\n this._set = null;\n };\n SetBase.prototype.contains = function (item) {\n return !(!this.getCount() || !this._getNode(item));\n };\n SetBase.prototype.getEnumerator = function () {\n var s = this._set;\n return s && this.getCount()\n ? LinkedNodeList_1.LinkedNodeList.valueEnumeratorFrom(s)\n : Enumerator_1.empty;\n };\n SetBase.prototype.forEach = function (action, useCopy) {\n if (useCopy === void 0) { useCopy = false; }\n if (useCopy)\n _super.prototype.forEach.call(this, action, useCopy);\n else\n this._set.forEach(function (node, i) { return action(node.value, i); });\n };\n SetBase.prototype._removeNode = function (node) {\n if (!node)\n return false;\n return this.remove(node.value) != 0;\n };\n SetBase.prototype.removeFirst = function () {\n var s = this._set;\n return this._removeNode(s && s.first);\n };\n SetBase.prototype.removeLast = function () {\n var s = this._set;\n return this._removeNode(s && s.last);\n };\n return SetBase;\n }(CollectionBase_1.CollectionBase));\n exports.SetBase = SetBase;\n function wipe(map, depth) {\n if (depth === void 0) { depth = 1; }\n if (map && depth) {\n for (var _i = 0, _a = Object.keys(map); _i < _a.length; _i++) {\n var key = _a[_i];\n var v = map[key];\n delete map[key];\n wipe(v, depth - 1);\n }\n }\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = SetBase;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {LinkedNodeList} from \"./LinkedNodeList\";\r\nimport {ArgumentNullException} from \"../Exceptions/ArgumentNullException\";\r\nimport {forEach, empty as emptyEnumerator} from \"./Enumeration/Enumerator\";\r\nimport {using} from \"../Disposable/dispose\";\r\nimport {areEqual} from \"../Compare\";\r\nimport {CollectionBase} from \"./CollectionBase\";\r\nimport {IDisposable} from \"../Disposable/IDisposable\";\r\nimport {ILinkedNodeWithValue} from \"./ILinkedListNode\";\r\nimport {Predicate, Action} from \"../FunctionTypes\";\r\nimport {IMap} from \"./Dictionaries/IDictionary\";\r\nimport {IEnumerator} from \"./Enumeration/IEnumerator\";\r\nimport {IEnumerableOrArray} from \"./IEnumerableOrArray\";\r\nimport {ISet} from \"./ISet\";\r\n\r\nconst OTHER = 'other';\r\n\r\nexport abstract class SetBase\r\nextends CollectionBase implements ISet, IDisposable\r\n{\r\n\r\n\tconstructor(source?:IEnumerableOrArray)\r\n\t{\r\n\t\tsuper(null, areEqual);\r\n\t\tthis._importEntries(source);\r\n\t}\r\n\r\n\tprotected abstract newUsing(source?:IEnumerableOrArray):SetBase;\r\n\r\n\tprotected _set:LinkedNodeList>;\r\n\r\n\tprotected _getSet():LinkedNodeList>\r\n\t{\r\n\t\tvar s = this._set;\r\n\t\tif(!s) this._set = s = new LinkedNodeList>();\r\n\t\treturn s;\r\n\t}\r\n\r\n\tprotected getCount():number\r\n\t{\r\n\t\treturn this._set ? this._set.unsafeCount : 0;\r\n\t}\r\n\r\n\texceptWith(other:IEnumerableOrArray):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\tforEach(other, v=>\r\n\t\t{\r\n\t\t\tif(_._removeInternal(v))\r\n\t\t\t\t_._incrementModified();\r\n\t\t});\r\n\r\n\t\t_._signalModification();\r\n\t}\r\n\r\n\tintersectWith(other:IEnumerableOrArray):void\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\tvar _ = this;\r\n\t\tif(other instanceof SetBase)\r\n\t\t{\r\n\t\t\tlet s = _._set;\r\n\t\t\tif(s) s.forEach(n=>\r\n\t\t\t{\r\n\t\t\t\tif(!other.contains(n.value) && _._removeInternal(n.value))\r\n\t\t\t\t\t_._incrementModified();\r\n\t\t\t});\r\n\r\n\t\t\t_._signalModification();\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tusing(_.newUsing(other), o=>_.intersectWith(o));\r\n\t\t}\r\n\t}\r\n\r\n\tisProperSubsetOf(other:IEnumerableOrArray):boolean\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\treturn other instanceof SetBase\r\n\t\t\t? other.isProperSupersetOf(this)\r\n\t\t\t: using(this.newUsing(other), o=> o.isProperSupersetOf(this));\r\n\t}\r\n\r\n\tisProperSupersetOf(other:IEnumerableOrArray):boolean\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\tvar result = true, count:number;\r\n\t\tif(other instanceof SetBase)\r\n\t\t{\r\n\t\t\tresult = this.isSupersetOf(other);\r\n\t\t\tcount = other.getCount();\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tusing(this.newUsing(), o=>\r\n\t\t\t{\r\n\t\t\t\tforEach(other, v=>\r\n\t\t\t\t{\r\n\t\t\t\t\to.add(v); // We have to add to another set in order to filter out duplicates.\r\n\t\t\t\t\treturn result = this.contains(v);\r\n\t\t\t\t});\r\n\t\t\t\tcount = o.getCount();\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn result && this.getCount()>count;\r\n\t}\r\n\r\n\tisSubsetOf(other:IEnumerableOrArray):boolean\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\treturn other instanceof SetBase\r\n\t\t\t? other.isSupersetOf(this)\r\n\t\t\t: using(this.newUsing(other), o=> o.isSupersetOf(this));\r\n\t}\r\n\r\n\tisSupersetOf(other:IEnumerableOrArray):boolean\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\tvar result = true;\r\n\t\tforEach(other, v=>\r\n\t\t{\r\n\t\t\treturn result = this.contains(v);\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\r\n\toverlaps(other:IEnumerableOrArray):boolean\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\tvar result = false;\r\n\t\tforEach(other, v => !(result = this.contains(v)));\r\n\t\treturn result;\r\n\t}\r\n\r\n\tsetEquals(other:IEnumerableOrArray):boolean\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\treturn this.getCount()==(\r\n\t\t\t\tother instanceof SetBase\r\n\t\t\t\t\t? other.getCount()\r\n\t\t\t\t\t: using(this.newUsing(other), o=> o.getCount()))\r\n\t\t\t&& this.isSubsetOf(other);\r\n\t}\r\n\r\n\tsymmetricExceptWith(other:IEnumerableOrArray):void\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\tvar _ = this;\r\n\t\tif(other instanceof SetBase)\r\n\t\t{\r\n\t\t\tforEach(other, v=>\r\n\t\t\t{\r\n\t\t\t\tif(_.contains(v))\r\n\t\t\t\t{\r\n\t\t\t\t\tif(_._removeInternal(v))\r\n\t\t\t\t\t\t_._incrementModified();\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tif(_._addInternal(v))\r\n\t\t\t\t\t\t_._incrementModified();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t_._signalModification();\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tusing(this.newUsing(other), o=>_.symmetricExceptWith(o));\r\n\t\t}\r\n\t}\r\n\r\n\tunionWith(other:IEnumerableOrArray):void\r\n\t{\r\n\t\tthis.importEntries(other);\r\n\t}\r\n\r\n\r\n\tprotected _clearInternal():number\r\n\t{\r\n\t\tvar s = this._set;\r\n\t\treturn s ? s.clear() : 0;\r\n\t}\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis._set = null;\r\n\t}\r\n\r\n\tprotected abstract _getNode(item:T):ILinkedNodeWithValue;\r\n\r\n\tcontains(item:T):boolean\r\n\t{\r\n\t\treturn !(!this.getCount() || !this._getNode(item));\r\n\t}\r\n\r\n\tgetEnumerator():IEnumerator\r\n\t{\r\n\t\tvar s = this._set;\r\n\t\treturn s && this.getCount()\r\n\t\t\t? LinkedNodeList.valueEnumeratorFrom(s)\r\n\t\t\t: emptyEnumerator;\r\n\t}\r\n\r\n\tforEach(\r\n\t\taction:Predicate | Action,\r\n\t\tuseCopy:boolean = false):void\r\n\t{\r\n\t\tif(useCopy) super.forEach(action, useCopy);\r\n\t\telse this._set.forEach((node, i)=>action(node.value, i));\r\n\t}\r\n\r\n\tprotected _removeNode(node:ILinkedNodeWithValue):boolean\r\n\t{\r\n\t\tif(!node) return false;\r\n\t\treturn this.remove(node.value)!=0;\r\n\t}\r\n\r\n\tremoveFirst():boolean\r\n\t{\r\n\t\tvar s = this._set;\r\n\t\treturn this._removeNode(s && s.first);\r\n\t}\r\n\r\n\tremoveLast():boolean\r\n\t{\r\n\t\tvar s = this._set;\r\n\t\treturn this._removeNode(s && s.last);\r\n\t}\r\n\r\n\r\n}\r\n\r\nfunction wipe(map:IMap, depth:number = 1):void\r\n{\r\n\tif(map && depth)\r\n\t{\r\n\t\tfor(var key of Object.keys(map))\r\n\t\t{\r\n\t\t\tvar v = map[key];\r\n\t\t\tdelete map[key];\r\n\t\t\twipe(v, depth - 1);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default SetBase;"]} \ No newline at end of file diff --git a/dist/amd/System/Collections/Sorting/KeySortedContext.d.ts b/dist/amd/System/Collections/Sorting/KeySortedContext.d.ts index 36822f6a..4de93bc7 100644 --- a/dist/amd/System/Collections/Sorting/KeySortedContext.d.ts +++ b/dist/amd/System/Collections/Sorting/KeySortedContext.d.ts @@ -1,16 +1,15 @@ -/// -/// -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import SortContext from "./SortContext"; -export default class KeySortedContext extends SortContext { +import { SortContext } from "./SortContext"; +import { Comparison, Selector } from "../../FunctionTypes"; +import { Comparable } from "../../IComparable"; +import { IComparer } from "../../IComparer"; +import { Order } from "./Order"; +export declare class KeySortedContext extends SortContext { protected _keySelector: Selector; constructor(next: IComparer, _keySelector: Selector, order?: Order, comparer?: Comparison); compare(a: T, b: T): number; } +export default KeySortedContext; diff --git a/dist/amd/System/Collections/Sorting/KeySortedContext.js b/dist/amd/System/Collections/Sorting/KeySortedContext.js index f233169a..7a6efd19 100644 --- a/dist/amd/System/Collections/Sorting/KeySortedContext.js +++ b/dist/amd/System/Collections/Sorting/KeySortedContext.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)};define(["require","exports","../../Compare","./SortContext","../../Functions"],function(e,t,r,o,n){"use strict";var i=function(e){function t(t,o,n,i){void 0===n&&(n=1),void 0===i&&(i=r.compare),e.call(this,t,i,n),this._keySelector=o}return __extends(t,e),t.prototype.compare=function(t,o){var i=this,c=i._keySelector;if(!c||c==n["default"].Identity)return e.prototype.compare.call(this,t,o);var a=r.compare(c(t),c(o));return 0==a&&i._next?i._next.compare(t,o):i._order*a},t}(o["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=i}); +var __extends=this&&this.__extends||function(t,e){function o(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)};define(["require","exports","../../Compare","./SortContext","../../Functions"],function(t,e,o,r,n){"use strict";var i=function(t){function e(e,r,n,i){void 0===n&&(n=1),void 0===i&&(i=o.compare),t.call(this,e,i,n),this._keySelector=r}return __extends(e,t),e.prototype.compare=function(e,r){var i=this,c=i._keySelector;if(!c||c==n.Functions.Identity)return t.prototype.compare.call(this,e,r);var p=o.compare(c(e),c(r));return 0==p&&i._next?i._next.compare(e,r):i._order*p},e}(r.SortContext);e.KeySortedContext=i,Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=i}); //# sourceMappingURL=KeySortedContext.js.map diff --git a/dist/amd/System/Collections/Sorting/KeySortedContext.js.map b/dist/amd/System/Collections/Sorting/KeySortedContext.js.map index f91911a9..72a5bb5a 100644 --- a/dist/amd/System/Collections/Sorting/KeySortedContext.js.map +++ b/dist/amd/System/Collections/Sorting/KeySortedContext.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Sorting/KeySortedContext.js","System/Collections/Sorting/KeySortedContext.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","Values","SortContext_1","Functions_1","KeySortedContext","_super","next","_keySelector","order","comparer","compare","call","a","_","ks","Identity","_next","_order","defineProperty","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,gBAAiB,gBAAiB,mBAAoB,SAAUC,EAASC,EAASC,EAAQC,EAAeC,GCEvI,YAMA,IAAAC,GAAA,SAAAC,GAGC,QAAAD,GACCE,EACUC,EACVC,EACAC,GADA,SAAAD,IAAAA,EAAA,GACA,SAAAC,IAAAA,EAAyBR,EAAOS,SAEhCL,EAAAM,KAAAvB,KAAMkB,EAAMG,EAAUD,GAJZpB,KAAAmB,aAAAA,EAgBZ,MApB2DpB,WAAAiB,EAAAC,GAW1DD,EAAAT,UAAAe,QAAA,SAAQE,EAAKtB,GAEZ,GAAIuB,GAAIzB,KAAM0B,EAAKD,EAAEN,YACrB,KAAIO,GAAMA,GAAIX,EAAAA,WAAUY,SAAU,MAAOV,GAAAV,UAAMe,QAAOC,KAAAvB,KAACwB,EAAGtB,EAE1D,IAAID,GAAIY,EAAOS,QAAaI,EAAGF,GAASE,EAAGxB,GAC3C,OAAM,IAAHD,GAAQwB,EAAEG,MAAcH,EAAEG,MAAMN,QAAQE,EAAGtB,GACvCuB,EAAEI,OAAO5B,GAElBe,GApB2DF,EAAAA,WAD3DN,QAAAsB,eAAAlB,EAAA,cAAAmB,OAAA,IDcInB,EAAAA,WAAkBI","file":"System/Collections/Sorting/KeySortedContext.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"../../Compare\", \"./SortContext\", \"../../Functions\"], function (require, exports, Values, SortContext_1, Functions_1) {\n 'use strict';\n var KeySortedContext = (function (_super) {\n __extends(KeySortedContext, _super);\n function KeySortedContext(next, _keySelector, order, comparer) {\n if (order === void 0) { order = 1; }\n if (comparer === void 0) { comparer = Values.compare; }\n _super.call(this, next, comparer, order);\n this._keySelector = _keySelector;\n }\n KeySortedContext.prototype.compare = function (a, b) {\n var _ = this, ks = _._keySelector;\n if (!ks || ks == Functions_1.default.Identity)\n return _super.prototype.compare.call(this, a, b);\n var d = Values.compare(ks(a), ks(b));\n if (d == 0 && _._next)\n return _._next.compare(a, b);\n return _._order * d;\n };\n return KeySortedContext;\n }(SortContext_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = KeySortedContext;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport * as Values from \"../../Compare\";\r\nimport SortContext from \"./SortContext\";\r\nimport Functions from \"../../Functions\";\r\n\r\nexport default\r\nclass KeySortedContext extends SortContext\r\n{\r\n\tconstructor(\r\n\t\tnext:IComparer,\r\n\t\tprotected _keySelector:Selector,\r\n\t\torder:Order = Order.Ascending,\r\n\t\tcomparer:Comparison = Values.compare)\r\n\t{\r\n\t\tsuper(next, comparer, order);\r\n\t}\r\n\r\n\tcompare(a:T, b:T):number\r\n\t{\r\n\t\tvar _ = this, ks = _._keySelector;\r\n\t\tif(!ks || ks==Functions.Identity) return super.compare(a, b);\r\n\t\t// We force here since it can be a Primitive or IComparable\r\n\t\tvar d = Values.compare(ks(a), ks(b));\r\n\t\tif(d==0 && _._next) return _._next.compare(a, b);\r\n\t\treturn _._order*d;\r\n\t}\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Sorting/KeySortedContext.js","System/Collections/Sorting/KeySortedContext.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","Values","SortContext_1","Functions_1","KeySortedContext","_super","next","_keySelector","order","comparer","compare","call","a","_","ks","Functions","Identity","_next","_order","SortContext","defineProperty","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,gBAAiB,gBAAiB,mBAAoB,SAAUC,EAASC,EAASC,EAAQC,EAAeC,GACnI,YCGJ,IAAAC,GAAA,SAAAC,GAEC,QAAAD,GACCE,EACUC,EACVC,EACAC,GADA,SAAAD,IAAAA,EAAA,GACA,SAAAC,IAAAA,EAAyBR,EAAOS,SAEhCL,EAAAM,KAAAvB,KAAMkB,EAAMG,EAAUD,GAJZpB,KAAAmB,aAAAA,EAgBZ,MApBkEpB,WAAAiB,EAAAC,GAWjED,EAAAT,UAAAe,QAAA,SAAQE,EAAKtB,GAEZ,GAAIuB,GAAIzB,KAAM0B,EAAKD,EAAEN,YACrB,KAAIO,GAAMA,GAAIX,EAAAY,UAAUC,SAAU,MAAOX,GAAAV,UAAMe,QAAOC,KAAAvB,KAACwB,EAAGtB,EAE1D,IAAID,GAAIY,EAAOS,QAAaI,EAAGF,GAASE,EAAGxB,GAC3C,OAAM,IAAHD,GAAQwB,EAAEI,MAAcJ,EAAEI,MAAMP,QAAQE,EAAGtB,GACvCuB,EAAEK,OAAO7B,GAElBe,GApBkEF,EAAAiB,YAArDnB,GAAAI,iBAAgBA,EAsB7BR,OAAAwB,eAAApB,EAAA,cAAAqB,OAAA,IDHIrB,EAAAA,WCGWI","file":"System/Collections/Sorting/KeySortedContext.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"../../Compare\", \"./SortContext\", \"../../Functions\"], function (require, exports, Values, SortContext_1, Functions_1) {\n \"use strict\";\n var KeySortedContext = (function (_super) {\n __extends(KeySortedContext, _super);\n function KeySortedContext(next, _keySelector, order, comparer) {\n if (order === void 0) { order = 1; }\n if (comparer === void 0) { comparer = Values.compare; }\n _super.call(this, next, comparer, order);\n this._keySelector = _keySelector;\n }\n KeySortedContext.prototype.compare = function (a, b) {\n var _ = this, ks = _._keySelector;\n if (!ks || ks == Functions_1.Functions.Identity)\n return _super.prototype.compare.call(this, a, b);\n var d = Values.compare(ks(a), ks(b));\n if (d == 0 && _._next)\n return _._next.compare(a, b);\n return _._order * d;\n };\n return KeySortedContext;\n }(SortContext_1.SortContext));\n exports.KeySortedContext = KeySortedContext;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = KeySortedContext;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport * as Values from \"../../Compare\";\r\nimport {SortContext} from \"./SortContext\";\r\nimport {Functions} from \"../../Functions\";\r\nimport {Comparison, Selector} from \"../../FunctionTypes\";\r\nimport {Comparable} from \"../../IComparable\";\r\nimport {IComparer} from \"../../IComparer\";\r\nimport {Order} from \"./Order\";\r\n\r\nexport class KeySortedContext extends SortContext\r\n{\r\n\tconstructor(\r\n\t\tnext:IComparer,\r\n\t\tprotected _keySelector:Selector,\r\n\t\torder:Order = Order.Ascending,\r\n\t\tcomparer:Comparison = Values.compare)\r\n\t{\r\n\t\tsuper(next, comparer, order);\r\n\t}\r\n\r\n\tcompare(a:T, b:T):number\r\n\t{\r\n\t\tvar _ = this, ks = _._keySelector;\r\n\t\tif(!ks || ks==Functions.Identity) return super.compare(a, b);\r\n\t\t// We force here since it can be a Primitive or IComparable\r\n\t\tvar d = Values.compare(ks(a), ks(b));\r\n\t\tif(d==0 && _._next) return _._next.compare(a, b);\r\n\t\treturn _._order*d;\r\n\t}\r\n}\r\n\r\nexport default KeySortedContext;"]} \ No newline at end of file diff --git a/dist/amd/System/Collections/Sorting/SortContext.d.ts b/dist/amd/System/Collections/Sorting/SortContext.d.ts index b459e302..63118bbb 100644 --- a/dist/amd/System/Collections/Sorting/SortContext.d.ts +++ b/dist/amd/System/Collections/Sorting/SortContext.d.ts @@ -1,12 +1,11 @@ -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -export default class SortContext implements IComparer { +import { Comparison } from "../../FunctionTypes"; +import { IComparer } from "../../IComparer"; +import { Order } from "./Order"; +export declare class SortContext implements IComparer { protected _next: IComparer; protected _comparer: Comparison; protected _order: Order; @@ -15,3 +14,4 @@ export default class SortContext implements IComparer { generateSortedIndexes(source: T[]): number[]; compare(a: T, b: T): number; } +export default SortContext; diff --git a/dist/amd/System/Collections/Sorting/SortContext.js b/dist/amd/System/Collections/Sorting/SortContext.js index dcb80df4..e238c4ad 100644 --- a/dist/amd/System/Collections/Sorting/SortContext.js +++ b/dist/amd/System/Collections/Sorting/SortContext.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -define(["require","exports","../../Compare"],function(e,r,t){"use strict";var n=function(){function e(e,r,n){void 0===r&&(r=t.compare),void 0===n&&(n=1),this._next=e,this._comparer=r,this._order=n}return Object.defineProperty(e.prototype,"order",{get:function(){return this._order},enumerable:!0,configurable:!0}),e.prototype.generateSortedIndexes=function(e){var r=this;if(null==e)return[];var t=e.map(function(e,r){return r});return t.sort(function(t,n){return r.compare(e[t],e[n])}),t},e.prototype.compare=function(e,r){var t=this,n=t._comparer(e,r);return 0==n&&t._next?t._next.compare(e,r):t._order*n},e}();Object.defineProperty(r,"__esModule",{value:!0}),r["default"]=n}); +define(["require","exports","../../Compare"],function(e,r,t){"use strict";var o=function(){function e(e,r,o){void 0===r&&(r=t.compare),void 0===o&&(o=1),this._next=e,this._comparer=r,this._order=o}return Object.defineProperty(e.prototype,"order",{get:function(){return this._order},enumerable:!0,configurable:!0}),e.prototype.generateSortedIndexes=function(e){var r=this;if(null==e)return[];var t=e.map(function(e,r){return r});return t.sort(function(t,o){return r.compare(e[t],e[o])}),t},e.prototype.compare=function(e,r){var t=this,o=t._comparer(e,r);return 0==o&&t._next?t._next.compare(e,r):t._order*o},e}();r.SortContext=o,Object.defineProperty(r,"__esModule",{value:!0}),r["default"]=o}); //# sourceMappingURL=SortContext.js.map diff --git a/dist/amd/System/Collections/Sorting/SortContext.js.map b/dist/amd/System/Collections/Sorting/SortContext.js.map index dcec6091..e44c26d7 100644 --- a/dist/amd/System/Collections/Sorting/SortContext.js.map +++ b/dist/amd/System/Collections/Sorting/SortContext.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Sorting/SortContext.js","System/Collections/Sorting/SortContext.ts"],"names":["define","require","exports","Values","SortContext","_next","_comparer","_order","compare","this","Object","defineProperty","prototype","get","enumerable","configurable","generateSortedIndexes","source","_this","result","map","s","i","sort","a","b","_","d","value"],"mappings":";;;;AAIAA,QAAQ,UAAW,UAAW,iBAAkB,SAAUC,EAASC,EAASC,GCK5E,YAIA,IAAAC,GAAA,WAWC,QAAAA,GACWC,EACAC,EACAC,GADV,SAAAD,IAAAA,EAAoCH,EAAOK,SAC3C,SAAAD,IAAAA,EAAA,GAFUE,KAAAJ,MAAAA,EACAI,KAAAH,UAAAA,EACAG,KAAAF,OAAAA,EA+BZ,MArCCG,QAAAC,eAAIP,EAAAQ,UAAA,SDNOC,ICMX,WACE,MAAOJ,MAAKF,QDNHO,YAAY,EACZC,cAAc,ICoBzBX,EAAAQ,UAAAI,sBAAA,SAAsBC,GAAtB,GAAAC,GAAAT,IAEC,IAAW,MAARQ,EAAc,QACjB,IAAIE,GAAkBF,EAAOG,IAAI,SAACC,EAAGC,GAAI,MAAAA,IAEzC,OADAH,GAAOI,KAAK,SAACC,EAAGC,GAAM,MAAAP,GAAKV,QAAQS,EAAOO,GAAIP,EAAOQ,MAC9CN,GASRf,EAAAQ,UAAAJ,QAAA,SAAQgB,EAAKC,GAEZ,GAAIC,GAAIjB,KACJkB,EAAID,EAAEpB,UAAUkB,EAAGC,EACvB,OAAM,IAAHE,GAAQD,EAAErB,MAAcqB,EAAErB,MAAMG,QAAQgB,EAAGC,GACvCC,EAAEnB,OAAOoB,GAElBvB,IA7CAM,QAAAC,eAAAT,EAAA,cAAA0B,OAAA,IDwBI1B,EAAAA,WAAkBE","file":"System/Collections/Sorting/SortContext.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\", \"../../Compare\"], function (require, exports, Values) {\n 'use strict';\n var SortContext = (function () {\n function SortContext(_next, _comparer, _order) {\n if (_comparer === void 0) { _comparer = Values.compare; }\n if (_order === void 0) { _order = 1; }\n this._next = _next;\n this._comparer = _comparer;\n this._order = _order;\n }\n Object.defineProperty(SortContext.prototype, \"order\", {\n get: function () { return this._order; },\n enumerable: true,\n configurable: true\n });\n SortContext.prototype.generateSortedIndexes = function (source) {\n var _this = this;\n if (source == null)\n return [];\n var result = source.map(function (s, i) { return i; });\n result.sort(function (a, b) { return _this.compare(source[a], source[b]); });\n return result;\n };\n SortContext.prototype.compare = function (a, b) {\n var _ = this;\n var d = _._comparer(a, b);\n if (d == 0 && _._next)\n return _._next.compare(a, b);\n return _._order * d;\n };\n return SortContext;\n }());\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = SortContext;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport * as Values from \"../../Compare\";\r\n\r\nexport default\r\nclass SortContext implements IComparer\r\n{\r\n\r\n\t/**\r\n\t * Direction of the comparison.\r\n\t * @type {Order}\r\n\t */\r\n\tget order():Order\r\n\t{ return this._order; }\r\n\r\n\tconstructor(\r\n\t\tprotected _next:IComparer,\r\n\t\tprotected _comparer:Comparison = Values.compare,\r\n\t\tprotected _order:Order = Order.Ascending)\r\n\t{\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Generates an array of indexes from the source in order of their expected sort without modifying the source.\r\n\t * @param source\r\n\t * @returns {number[]}\r\n\t */\r\n\tgenerateSortedIndexes(source:T[]):number[]\r\n\t{\r\n\t\tif(source==null) return [];\r\n\t\tvar result:number[] = source.map((s, i)=>i);\r\n\t\tresult.sort((a, b) => this.compare(source[a], source[b]));\r\n\t\treturn result;\r\n\t}\r\n\r\n\t/**\r\n\t * Compares two values based upon SortContext parameters.\r\n\t * @param a\r\n\t * @param b\r\n\t * @returns {any}\r\n\t */\r\n\tcompare(a:T, b:T):number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar d = _._comparer(a, b);\r\n\t\tif(d==0 && _._next) return _._next.compare(a, b);\r\n\t\treturn _._order*d;\r\n\t}\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Sorting/SortContext.js","System/Collections/Sorting/SortContext.ts"],"names":["define","require","exports","Values","SortContext","_next","_comparer","_order","compare","this","Object","defineProperty","prototype","get","enumerable","configurable","generateSortedIndexes","source","_this","result","map","s","i","sort","a","b","_","d","value"],"mappings":";;;;AAIAA,QAAQ,UAAW,UAAW,iBAAkB,SAAUC,EAASC,EAASC,GACxE,YCMJ,IAAAC,GAAA,WAUC,QAAAA,GACWC,EACAC,EACAC,GADV,SAAAD,IAAAA,EAAoCH,EAAOK,SAC3C,SAAAD,IAAAA,EAAA,GAFUE,KAAAJ,MAAAA,EACAI,KAAAH,UAAAA,EACAG,KAAAF,OAAAA,EA+BZ,MArCCG,QAAAC,eAAIP,EAAAQ,UAAA,SDHOC,ICGX,WACE,MAAOJ,MAAKF,QDHHO,YAAY,EACZC,cAAc,ICiBzBX,EAAAQ,UAAAI,sBAAA,SAAsBC,GAAtB,GAAAC,GAAAT,IAEC,IAAW,MAARQ,EAAc,QACjB,IAAIE,GAAkBF,EAAOG,IAAI,SAACC,EAAGC,GAAI,MAAAA,IAEzC,OADAH,GAAOI,KAAK,SAACC,EAAGC,GAAM,MAAAP,GAAKV,QAAQS,EAAOO,GAAIP,EAAOQ,MAC9CN,GASRf,EAAAQ,UAAAJ,QAAA,SAAQgB,EAAKC,GAEZ,GAAIC,GAAIjB,KACJkB,EAAID,EAAEpB,UAAUkB,EAAGC,EACvB,OAAM,IAAHE,GAAQD,EAAErB,MAAcqB,EAAErB,MAAMG,QAAQgB,EAAGC,GACvCC,EAAEnB,OAAOoB,GAElBvB,IA5CaF,GAAAE,YAAWA,EA8CxBM,OAAAC,eAAAT,EAAA,cAAA0B,OAAA,IDnBI1B,EAAAA,WCmBWE","file":"System/Collections/Sorting/SortContext.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\", \"../../Compare\"], function (require, exports, Values) {\n \"use strict\";\n var SortContext = (function () {\n function SortContext(_next, _comparer, _order) {\n if (_comparer === void 0) { _comparer = Values.compare; }\n if (_order === void 0) { _order = 1; }\n this._next = _next;\n this._comparer = _comparer;\n this._order = _order;\n }\n Object.defineProperty(SortContext.prototype, \"order\", {\n get: function () { return this._order; },\n enumerable: true,\n configurable: true\n });\n SortContext.prototype.generateSortedIndexes = function (source) {\n var _this = this;\n if (source == null)\n return [];\n var result = source.map(function (s, i) { return i; });\n result.sort(function (a, b) { return _this.compare(source[a], source[b]); });\n return result;\n };\n SortContext.prototype.compare = function (a, b) {\n var _ = this;\n var d = _._comparer(a, b);\n if (d == 0 && _._next)\n return _._next.compare(a, b);\n return _._order * d;\n };\n return SortContext;\n }());\n exports.SortContext = SortContext;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = SortContext;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport * as Values from \"../../Compare\";\r\nimport {Comparison} from \"../../FunctionTypes\";\r\nimport {IComparer} from \"../../IComparer\";\r\nimport {Order} from \"./Order\";\r\n\r\nexport class SortContext implements IComparer\r\n{\r\n\r\n\t/**\r\n\t * Direction of the comparison.\r\n\t * @type {Order}\r\n\t */\r\n\tget order():Order\r\n\t{ return this._order; }\r\n\r\n\tconstructor(\r\n\t\tprotected _next:IComparer,\r\n\t\tprotected _comparer:Comparison = Values.compare,\r\n\t\tprotected _order:Order = Order.Ascending)\r\n\t{\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Generates an array of indexes from the source in order of their expected sort without modifying the source.\r\n\t * @param source\r\n\t * @returns {number[]}\r\n\t */\r\n\tgenerateSortedIndexes(source:T[]):number[]\r\n\t{\r\n\t\tif(source==null) return [];\r\n\t\tvar result:number[] = source.map((s, i)=>i);\r\n\t\tresult.sort((a, b) => this.compare(source[a], source[b]));\r\n\t\treturn result;\r\n\t}\r\n\r\n\t/**\r\n\t * Compares two values based upon SortContext parameters.\r\n\t * @param a\r\n\t * @param b\r\n\t * @returns {any}\r\n\t */\r\n\tcompare(a:T, b:T):number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar d = _._comparer(a, b);\r\n\t\tif(d==0 && _._next) return _._next.compare(a, b);\r\n\t\treturn _._order*d;\r\n\t}\r\n}\r\n\r\nexport default SortContext;"]} \ No newline at end of file diff --git a/dist/amd/System/Compare.d.ts b/dist/amd/System/Compare.d.ts index 1d12a4b3..c4be772a 100644 --- a/dist/amd/System/Compare.d.ts +++ b/dist/amd/System/Compare.d.ts @@ -1,10 +1,10 @@ -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { Primitive } from "./Primitive"; +import { IComparable } from "./IComparable"; +import { CompareResult } from "./CompareResult"; export declare function areEqual(a: any, b: any, strict?: boolean): boolean; export declare function compare(a: IComparable, b: IComparable): number; export declare function compare(a: T, b: T, strict?: boolean): CompareResult; diff --git a/dist/amd/System/Compare.js b/dist/amd/System/Compare.js index 4edb0667..3e489f4b 100644 --- a/dist/amd/System/Compare.js +++ b/dist/amd/System/Compare.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -define(["require","exports","./Types"],function(e,r,t){"use strict";function u(e,r,t){return void 0===t&&(t=!0),e===r||!t&&e==r||l(e)&&l(r)}function n(e,r,n){return void 0===n&&(n=!0),u(e,r,n)?0:e&&t["default"].hasMember(e,f)?e.compareTo(r):r&&t["default"].hasMember(r,f)?-r.compareTo(e):e>r||n&&(0===e&&0==r||null===e&&r===i)?1:r>e||n&&(0===r&&0==e||null===r&&e===i)?-1:NaN}function a(e,r,n,l){if(void 0===n&&(n=!0),void 0===l&&(l=0),u(e,r,!0))return!0;if(null===e||e===i||null==r||r===i)return n?t["default"].isObject(e)?!Object.keys(e).length:t["default"].isObject(r)?!Object.keys(r).length:!(null!==e&&e!==i||null!=r&&r!==i):!1;if(t["default"].isObject(e)&&t["default"].isObject(r)){var f=Object.keys(e),o=Object.keys(r),c=f.length;if(c!=o.length)return!1;f.sort(),o.sort();for(var s=0;c>s;s++){var d=f[s];if(d!==o[s]||!u(e[d],r[d],!0))return!1}if(l>0)for(var v=0,b=f;vr||i&&(0===e&&0==r||null===e&&r===a)?1:r>e||i&&(0===r&&0==e||null===r&&e===a)?-1:NaN}function u(e,r,i,o){if(void 0===i&&(i=!0),void 0===o&&(o=0),n(e,r,!0))return!0;if(null===e||e===a||null==r||r===a)return i?t.Type.isObject(e)?!Object.keys(e).length:t.Type.isObject(r)?!Object.keys(r).length:!(null!==e&&e!==a||null!=r&&r!==a):!1;if(t.Type.isObject(e)&&t.Type.isObject(r)){var l=Object.keys(e),c=Object.keys(r),s=l.length;if(s!=c.length)return!1;l.sort(),c.sort();for(var f=0;s>f;f++){var p=l[f];if(p!==c[f]||!n(e[p],r[p],!0))return!1}if(o>0)for(var v=0,y=l;v b || strict && (a === 0 && b == 0 || a === null && b === VOID0))\n return 1;\n if (b > a || strict && (b === 0 && a == 0 || b === null && a === VOID0))\n return -1;\n return NaN;\n }\n exports.compare = compare;\n function areEquivalent(a, b, nullEquivalency, extraDepth) {\n if (nullEquivalency === void 0) { nullEquivalency = true; }\n if (extraDepth === void 0) { extraDepth = 0; }\n if (areEqual(a, b, true))\n return true;\n if (a === null || a === VOID0 || b == null || b === VOID0) {\n if (!nullEquivalency)\n return false;\n if (Types_1.default.isObject(a)) {\n return !Object.keys(a).length;\n }\n if (Types_1.default.isObject(b)) {\n return !Object.keys(b).length;\n }\n return (a === null || a === VOID0) && (b == null || b === VOID0);\n }\n if (Types_1.default.isObject(a) && Types_1.default.isObject(b)) {\n var aKeys = Object.keys(a), bKeys = Object.keys(b), len = aKeys.length;\n if (len != bKeys.length)\n return false;\n aKeys.sort();\n bKeys.sort();\n for (var i = 0; i < len; i++) {\n var key = aKeys[i];\n if (key !== bKeys[i] || !areEqual(a[key], b[key], true))\n return false;\n }\n if (extraDepth > 0) {\n for (var _i = 0, aKeys_1 = aKeys; _i < aKeys_1.length; _i++) {\n var key = aKeys_1[_i];\n if (!areEquivalent(a[key], b[key], nullEquivalency, extraDepth - 1))\n return false;\n }\n }\n return true;\n }\n return false;\n }\n exports.areEquivalent = areEquivalent;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\nimport Type from \"./Types\";\r\nimport isTrueNaN = Type.isTrueNaN;\r\n\r\nconst VOID0:any = void 0;\r\n\r\n/**\r\n * Used for special comparison including NaN.\r\n * @param a\r\n * @param b\r\n * @param strict\r\n * @returns {boolean|any}\r\n */\r\nexport function areEqual(a:any, b:any, strict:boolean = true):boolean\r\n{\r\n\treturn a===b\r\n\t\t|| !strict && a==b\r\n\t\t|| isTrueNaN(a) && isTrueNaN(b);\r\n}\r\n\r\nconst COMPARE_TO = \"compareTo\";\r\n\r\n/**\r\n * Compares two comparable objects or primitives.\r\n * @param a\r\n * @param b\r\n */\r\nexport function compare(a:IComparable, b:IComparable):number;\r\nexport function compare(a:T, b:T, strict?:boolean):CompareResult;\r\nexport function compare(a:any, b:any, strict:boolean = true):CompareResult\r\n{\r\n\r\n\tif(areEqual(a, b, strict))\r\n\t\treturn CompareResult.Equal;\r\n\r\n\tif(a && Type.hasMember(a, COMPARE_TO))\r\n\t\treturn a.compareTo(b); // If a has compareTo, use it.\r\n\telse if(b && Type.hasMember(b, COMPARE_TO))\r\n\t\treturn -b.compareTo(a); // a doesn't have compareTo? check if b does and invert.\r\n\r\n\t// Allow for special inequality..\r\n\r\n\tif(a>b || strict && (a===0 && b==0 || a===null && b===VOID0))\r\n\t\treturn CompareResult.Greater;\r\n\r\n\tif(b>a || strict && (b===0 && a==0 || b===null && a===VOID0))\r\n\t\treturn CompareResult.Less;\r\n\r\n\treturn NaN;\r\n}\r\n\r\n/**\r\n * Determines if two primitives are equal or if two objects have the same key/value combinations.\r\n * @param a\r\n * @param b\r\n * @param nullEquivalency If true, null/undefined will be equivalent to an empty object {}.\r\n * @param extraDepth\r\n * @returns {boolean}\r\n */\r\nexport function areEquivalent(a:any, b:any, nullEquivalency:boolean = true, extraDepth:number = 0):boolean\r\n{\r\n\r\n\t// Take a step by step approach to ensure efficiency.\r\n\tif(areEqual(a, b, true)) return true;\r\n\r\n\tif(a===null || a===VOID0 || b==null || b===VOID0)\r\n\t{\r\n\t\tif(!nullEquivalency) return false;\r\n\r\n\t\tif(Type.isObject(a))\r\n\t\t{\r\n\t\t\treturn !Object.keys(a).length;\r\n\t\t}\r\n\r\n\t\tif(Type.isObject(b))\r\n\t\t{\r\n\t\t\treturn !Object.keys(b).length;\r\n\t\t}\r\n\r\n\t\treturn (a===null || a===VOID0) && (b==null || b===VOID0);\r\n\t}\r\n\r\n\tif(Type.isObject(a) && Type.isObject(b))\r\n\t{\r\n\r\n\t\tvar aKeys = Object.keys(a), bKeys = Object.keys(b), len = aKeys.length;\r\n\t\tif(len!=bKeys.length)\r\n\t\t\treturn false;\r\n\r\n\t\taKeys.sort();\r\n\t\tbKeys.sort();\r\n\r\n\t\tfor(let i = 0; i0) {\r\n\r\n\t\t\tfor(let key of aKeys) {\r\n\t\t\t\tif(!areEquivalent(a[key], b[key], nullEquivalency, extraDepth-1)) return false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t}\r\n\r\n\treturn false;\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Compare.js","System/Compare.ts"],"names":["define","require","exports","Types_1","areEqual","a","b","strict","isTrueNaN","compare","Type","hasMember","COMPARE_TO","compareTo","VOID0","NaN","areEquivalent","nullEquivalency","extraDepth","isObject","Object","keys","length","aKeys","bKeys","len","sort","i","key","_i","aKeys_1"],"mappings":";;;;AAIAA,QAAQ,UAAW,UAAW,WAAY,SAAUC,EAASC,EAASC,GAClE,YCgBJ,SAAAC,GAAyBC,EAAOC,EAAOC,GAEtC,MAFsC,UAAAA,IAAAA,GAAA,GAE/BF,IAAIC,IACNC,GAAUF,GAAGC,GACdE,EAAUH,IAAMG,EAAUF,GAY/B,QAAAG,GAAwBJ,EAAOC,EAAOC,GAGrC,MAHqC,UAAAA,IAAAA,GAAA,GAGlCH,EAASC,EAAGC,EAAGC,GACV,EAELF,GAAKF,EAAAO,KAAKC,UAAUN,EAAGO,GAClBP,EAAEQ,UAAUP,GACZA,GAAKH,EAAAO,KAAKC,UAAUL,EAAGM,IACtBN,EAAEO,UAAUR,GAIlBA,EAAEC,GAAKC,IAAe,IAAJF,GAAY,GAAHC,GAAY,OAAJD,GAAYC,IAAIQ,GAC9C,EAELR,EAAED,GAAKE,IAAe,IAAJD,GAAY,GAAHD,GAAY,OAAJC,GAAYD,IAAIS,GAC9C,GAEDC,IAWR,QAAAC,GAA8BX,EAAOC,EAAOW,EAAgCC,GAI3E,GAJ2C,SAAAD,IAAAA,GAAA,GAAgC,SAAAC,IAAAA,EAAA,GAIxEd,EAASC,EAAGC,GAAG,GAAO,OAAO,CAEhC,IAAO,OAAJD,GAAYA,IAAIS,GAAY,MAAHR,GAAWA,IAAIQ,EAE1C,MAAIG,GAEDd,EAAAO,KAAKS,SAASd,IAERe,OAAOC,KAAKhB,GAAGiB,OAGrBnB,EAAAO,KAAKS,SAASb,IAERc,OAAOC,KAAKf,GAAGgB,SAGZ,OAAJjB,GAAYA,IAAIS,GAAc,MAAHR,GAAWA,IAAIQ,IAZtB,CAe7B,IAAGX,EAAAO,KAAKS,SAASd,IAAMF,EAAAO,KAAKS,SAASb,GACrC,CAEC,GAAIiB,GAAQH,OAAOC,KAAKhB,GAAImB,EAAQJ,OAAOC,KAAKf,GAAImB,EAAMF,EAAMD,MAChE,IAAGG,GAAKD,EAAMF,OACb,OAAO,CAERC,GAAMG,OACNF,EAAME,MAEN,KAAI,GAAIC,GAAI,EAAKF,EAAFE,EAAOA,IACtB,CACC,GAAIC,GAAML,EAAMI,EAChB,IAAGC,IAAMJ,EAAMG,KAAOvB,EAASC,EAAEuB,GAAMtB,EAAEsB,IAAM,GAAO,OAAO,EAI9D,GAAGV,EAAW,EAEb,IAAe,GAAAW,GAAA,EAAAC,EAAAP,EAAAM,EAAAC,EAAAR,OAAAO,IAAM,CAAjB,GAAID,GAAGE,EAAAD,EACV,KAAIb,EAAcX,EAAEuB,GAAMtB,EAAEsB,GAAMX,EAAiBC,EAAW,GAAI,OAAO,EAI3E,OAAO,EAGR,OAAO,EA7GR,GAAOV,GAAYL,EAAAO,KAAKF,UAIlBM,EAAY,MASFZ,GAAAE,SAAQA,CAOxB,IAAMQ,GAAa,WASHV,GAAAO,QAAOA,EA8BPP,EAAAc,cAAaA","file":"System/Compare.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\", \"./Types\"], function (require, exports, Types_1) {\n \"use strict\";\n var isTrueNaN = Types_1.Type.isTrueNaN;\n var VOID0 = void 0;\n function areEqual(a, b, strict) {\n if (strict === void 0) { strict = true; }\n return a === b\n || !strict && a == b\n || isTrueNaN(a) && isTrueNaN(b);\n }\n exports.areEqual = areEqual;\n var COMPARE_TO = \"compareTo\";\n function compare(a, b, strict) {\n if (strict === void 0) { strict = true; }\n if (areEqual(a, b, strict))\n return 0;\n if (a && Types_1.Type.hasMember(a, COMPARE_TO))\n return a.compareTo(b);\n else if (b && Types_1.Type.hasMember(b, COMPARE_TO))\n return -b.compareTo(a);\n if (a > b || strict && (a === 0 && b == 0 || a === null && b === VOID0))\n return 1;\n if (b > a || strict && (b === 0 && a == 0 || b === null && a === VOID0))\n return -1;\n return NaN;\n }\n exports.compare = compare;\n function areEquivalent(a, b, nullEquivalency, extraDepth) {\n if (nullEquivalency === void 0) { nullEquivalency = true; }\n if (extraDepth === void 0) { extraDepth = 0; }\n if (areEqual(a, b, true))\n return true;\n if (a === null || a === VOID0 || b == null || b === VOID0) {\n if (!nullEquivalency)\n return false;\n if (Types_1.Type.isObject(a)) {\n return !Object.keys(a).length;\n }\n if (Types_1.Type.isObject(b)) {\n return !Object.keys(b).length;\n }\n return (a === null || a === VOID0) && (b == null || b === VOID0);\n }\n if (Types_1.Type.isObject(a) && Types_1.Type.isObject(b)) {\n var aKeys = Object.keys(a), bKeys = Object.keys(b), len = aKeys.length;\n if (len != bKeys.length)\n return false;\n aKeys.sort();\n bKeys.sort();\n for (var i = 0; i < len; i++) {\n var key = aKeys[i];\n if (key !== bKeys[i] || !areEqual(a[key], b[key], true))\n return false;\n }\n if (extraDepth > 0) {\n for (var _i = 0, aKeys_1 = aKeys; _i < aKeys_1.length; _i++) {\n var key = aKeys_1[_i];\n if (!areEquivalent(a[key], b[key], nullEquivalency, extraDepth - 1))\n return false;\n }\n }\n return true;\n }\n return false;\n }\n exports.areEquivalent = areEquivalent;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {Type} from \"./Types\";\r\nimport {Primitive} from \"./Primitive\";\r\nimport isTrueNaN = Type.isTrueNaN;\r\nimport {IComparable} from \"./IComparable\";\r\nimport {CompareResult} from \"./CompareResult\";\r\n\r\nconst VOID0:any = void 0;\r\n\r\n/**\r\n * Used for special comparison including NaN.\r\n * @param a\r\n * @param b\r\n * @param strict\r\n * @returns {boolean|any}\r\n */\r\nexport function areEqual(a:any, b:any, strict:boolean = true):boolean\r\n{\r\n\treturn a===b\r\n\t\t|| !strict && a==b\r\n\t\t|| isTrueNaN(a) && isTrueNaN(b);\r\n}\r\n\r\nconst COMPARE_TO = \"compareTo\";\r\n\r\n/**\r\n * Compares two comparable objects or primitives.\r\n * @param a\r\n * @param b\r\n */\r\nexport function compare(a:IComparable, b:IComparable):number;\r\nexport function compare(a:T, b:T, strict?:boolean):CompareResult;\r\nexport function compare(a:any, b:any, strict:boolean = true):CompareResult\r\n{\r\n\r\n\tif(areEqual(a, b, strict))\r\n\t\treturn CompareResult.Equal;\r\n\r\n\tif(a && Type.hasMember(a, COMPARE_TO))\r\n\t\treturn a.compareTo(b); // If a has compareTo, use it.\r\n\telse if(b && Type.hasMember(b, COMPARE_TO))\r\n\t\treturn -b.compareTo(a); // a doesn't have compareTo? check if b does and invert.\r\n\r\n\t// Allow for special inequality..\r\n\r\n\tif(a>b || strict && (a===0 && b==0 || a===null && b===VOID0))\r\n\t\treturn CompareResult.Greater;\r\n\r\n\tif(b>a || strict && (b===0 && a==0 || b===null && a===VOID0))\r\n\t\treturn CompareResult.Less;\r\n\r\n\treturn NaN;\r\n}\r\n\r\n/**\r\n * Determines if two primitives are equal or if two objects have the same key/value combinations.\r\n * @param a\r\n * @param b\r\n * @param nullEquivalency If true, null/undefined will be equivalent to an empty object {}.\r\n * @param extraDepth\r\n * @returns {boolean}\r\n */\r\nexport function areEquivalent(a:any, b:any, nullEquivalency:boolean = true, extraDepth:number = 0):boolean\r\n{\r\n\r\n\t// Take a step by step approach to ensure efficiency.\r\n\tif(areEqual(a, b, true)) return true;\r\n\r\n\tif(a===null || a===VOID0 || b==null || b===VOID0)\r\n\t{\r\n\t\tif(!nullEquivalency) return false;\r\n\r\n\t\tif(Type.isObject(a))\r\n\t\t{\r\n\t\t\treturn !Object.keys(a).length;\r\n\t\t}\r\n\r\n\t\tif(Type.isObject(b))\r\n\t\t{\r\n\t\t\treturn !Object.keys(b).length;\r\n\t\t}\r\n\r\n\t\treturn (a===null || a===VOID0) && (b==null || b===VOID0);\r\n\t}\r\n\r\n\tif(Type.isObject(a) && Type.isObject(b))\r\n\t{\r\n\r\n\t\tvar aKeys = Object.keys(a), bKeys = Object.keys(b), len = aKeys.length;\r\n\t\tif(len!=bKeys.length)\r\n\t\t\treturn false;\r\n\r\n\t\taKeys.sort();\r\n\t\tbKeys.sort();\r\n\r\n\t\tfor(let i = 0; i0) {\r\n\r\n\t\t\tfor(let key of aKeys) {\r\n\t\t\t\tif(!areEquivalent(a[key], b[key], nullEquivalency, extraDepth-1)) return false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t}\r\n\r\n\treturn false;\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Diagnostics/Stopwatch.d.ts b/dist/amd/System/Diagnostics/Stopwatch.d.ts index b0bd97a1..e352f2e4 100644 --- a/dist/amd/System/Diagnostics/Stopwatch.d.ts +++ b/dist/amd/System/Diagnostics/Stopwatch.d.ts @@ -1,9 +1,9 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import TimeSpan from "../Time/TimeSpan"; +import { TimeSpan } from "../Time/TimeSpan"; +import { ITimer } from "../Timers/ITimer"; export default class Stopwatch implements ITimer { static getTimestampMilliseconds(): number; private _elapsed; diff --git a/dist/amd/System/Diagnostics/Stopwatch.js b/dist/amd/System/Diagnostics/Stopwatch.js index 5bb46461..5f050ca2 100644 --- a/dist/amd/System/Diagnostics/Stopwatch.js +++ b/dist/amd/System/Diagnostics/Stopwatch.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -define(["require","exports","../Time/TimeSpan"],function(e,t,n){"use strict";function r(){return(new Date).getTime()}var i=function(){function e(){this.reset()}return e.getTimestampMilliseconds=function(){return r()},Object.defineProperty(e.prototype,"isRunning",{get:function(){return this._isRunning},enumerable:!0,configurable:!0}),e.startNew=function(){var t=new e;return t.start(),t},e.measure=function(e){var t=r();return e(),new n["default"](r()-t)},e.prototype.start=function(){var e=this;e._isRunning||(e._startTimeStamp=r(),e._isRunning=!0)},e.prototype.stop=function(){var e=this;e._isRunning&&(e._elapsed+=e.currentLapMilliseconds,e._isRunning=!1)},e.prototype.reset=function(){var e=this;e._elapsed=0,e._isRunning=!1,e._startTimeStamp=NaN},e.prototype.lap=function(){var e=this;if(e._isRunning){var t=r(),i=e._startTimeStamp,u=t-i;return e._startTimeStamp=t,e._elapsed+=u,new n["default"](u)}return n["default"].zero},Object.defineProperty(e.prototype,"currentLapMilliseconds",{get:function(){return this._isRunning?r()-this._startTimeStamp:0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"currentLap",{get:function(){return this._isRunning?new n["default"](this.currentLapMilliseconds):n["default"].zero},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"elapsedMilliseconds",{get:function(){var e=this,t=e._elapsed;return e._isRunning&&(t+=e.currentLapMilliseconds),t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"elapsed",{get:function(){return new n["default"](this.elapsedMilliseconds)},enumerable:!0,configurable:!0}),e}();Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=i}); +define(["require","exports","../Time/TimeSpan"],function(e,n,t){"use strict";function i(){return(new Date).getTime()}var r=function(){function e(){this.reset()}return e.getTimestampMilliseconds=function(){return i()},Object.defineProperty(e.prototype,"isRunning",{get:function(){return this._isRunning},enumerable:!0,configurable:!0}),e.startNew=function(){var n=new e;return n.start(),n},e.measure=function(e){var n=i();return e(),new t.TimeSpan(i()-n)},e.prototype.start=function(){var e=this;e._isRunning||(e._startTimeStamp=i(),e._isRunning=!0)},e.prototype.stop=function(){var e=this;e._isRunning&&(e._elapsed+=e.currentLapMilliseconds,e._isRunning=!1)},e.prototype.reset=function(){var e=this;e._elapsed=0,e._isRunning=!1,e._startTimeStamp=NaN},e.prototype.lap=function(){var e=this;if(e._isRunning){var n=i(),r=e._startTimeStamp,s=n-r;return e._startTimeStamp=n,e._elapsed+=s,new t.TimeSpan(s)}return t.TimeSpan.zero},Object.defineProperty(e.prototype,"currentLapMilliseconds",{get:function(){return this._isRunning?i()-this._startTimeStamp:0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"currentLap",{get:function(){return this._isRunning?new t.TimeSpan(this.currentLapMilliseconds):t.TimeSpan.zero},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"elapsedMilliseconds",{get:function(){var e=this,n=e._elapsed;return e._isRunning&&(n+=e.currentLapMilliseconds),n},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"elapsed",{get:function(){return new t.TimeSpan(this.elapsedMilliseconds)},enumerable:!0,configurable:!0}),e}();Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r}); //# sourceMappingURL=Stopwatch.js.map diff --git a/dist/amd/System/Diagnostics/Stopwatch.js.map b/dist/amd/System/Diagnostics/Stopwatch.js.map index dc49e3e9..22f40e6e 100644 --- a/dist/amd/System/Diagnostics/Stopwatch.js.map +++ b/dist/amd/System/Diagnostics/Stopwatch.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Diagnostics/Stopwatch.js","System/Diagnostics/Stopwatch.ts"],"names":["define","require","exports","TimeSpan_1","getTimestampMilliseconds","Date","getTime","Stopwatch","this","reset","Object","defineProperty","prototype","get","_isRunning","enumerable","configurable","startNew","s","start","measure","closure","_","_startTimeStamp","stop","_elapsed","currentLapMilliseconds","NaN","lap","t","e","zero","timeElapsed","elapsedMilliseconds","value"],"mappings":";;;;AAIAA,QAAQ,UAAW,UAAW,oBAAqB,SAAUC,EAASC,EAASC,GCG/E,YAIA,SAAAC,KAEC,OAAO,GAAKC,OAAQC,UAGrB,GAAAC,GAAA,WAkBC,QAAAA,KAECC,KAAKC,QA0FP,MA1GQF,GAAAH,yBAAP,WAEC,MAAOA,MAORM,OAAAC,eAAIJ,EAAAK,UAAA,aDZOC,ICYX,WAEC,MAAOL,MAAKM,YDXFC,YAAY,EACZC,cAAc,ICkBlBT,EAAAU,SAAP,WAEC,GAAIC,GAAI,GAAIX,EAEZ,OADAW,GAAEC,QACKD,GAGDX,EAAAa,QAAP,SAAeC,GAEd,GAAIF,GAAQf,GAEZ,OADAiB,KACO,GAAIlB,GAAAA,WAASC,IAA6Be,IAGlDZ,EAAAK,UAAAO,MAAA,WAEC,GAAIG,GAAId,IACJc,GAAER,aACLQ,EAAEC,gBAAkBnB,IACpBkB,EAAER,YAAa,IAIjBP,EAAAK,UAAAY,KAAA,WAEC,GAAIF,GAAId,IACLc,GAAER,aACJQ,EAAEG,UAAYH,EAAEI,uBAChBJ,EAAER,YAAa,IAIjBP,EAAAK,UAAAH,MAAA,WAEC,GAAIa,GAAId,IACRc,GAAEG,SAAW,EACbH,EAAER,YAAa,EACfQ,EAAEC,gBAAkBI,KAKrBpB,EAAAK,UAAAgB,IAAA,WAEC,GAAIN,GAAId,IACR,IAAGc,EAAER,WAAY,CAChB,GAAIe,GAAIzB,IACJc,EAAII,EAAEC,gBACNO,EAAID,EAAIX,CAGZ,OAFAI,GAAEC,gBAAkBM,EACpBP,EAAEG,UAAYK,EACP,GAAI3B,GAAAA,WAAS2B,GAGpB,MAAO3B,GAAAA,WAAS4B,MAGlBrB,OAAAC,eAAIJ,EAAAK,UAAA,0BD7BOC,IC6BX,WAEC,MAAOL,MAAKM,WACRV,IAA6BI,KAAKe,gBACnC,GD5BOR,YAAY,EACZC,cAAc,IC8BzBN,OAAAC,eAAIJ,EAAAK,UAAA,cD3BOC,IC2BX,WAEC,MAAOL,MAAKM,WACT,GAAIX,GAAAA,WAASK,KAAKkB,wBAClBvB,EAAAA,WAAS4B,MD1BFhB,YAAY,EACZC,cAAc,IC4BzBN,OAAAC,eAAIJ,EAAAK,UAAA,uBDzBOC,ICyBX,WAEC,GAAIS,GAAId,KACJwB,EAAcV,EAAEG,QAKpB,OAHGH,GAAER,aACJkB,GAAeV,EAAEI,wBAEXM,GD1BGjB,YAAY,EACZC,cAAc,IC4BzBN,OAAAC,eAAIJ,EAAAK,UAAA,WDzBOC,ICyBX,WAEC,MAAO,IAAIV,GAAAA,WAASK,KAAKyB,sBDxBflB,YAAY,EACZC,cAAc,IC0B1BT,IA9GAG,QAAAC,eAAAT,EAAA,cAAAgC,OAAA,IDyFIhC,EAAAA,WAAkBK","file":"System/Diagnostics/Stopwatch.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\", \"../Time/TimeSpan\"], function (require, exports, TimeSpan_1) {\n 'use strict';\n function getTimestampMilliseconds() {\n return (new Date()).getTime();\n }\n var Stopwatch = (function () {\n function Stopwatch() {\n this.reset();\n }\n Stopwatch.getTimestampMilliseconds = function () {\n return getTimestampMilliseconds();\n };\n Object.defineProperty(Stopwatch.prototype, \"isRunning\", {\n get: function () {\n return this._isRunning;\n },\n enumerable: true,\n configurable: true\n });\n Stopwatch.startNew = function () {\n var s = new Stopwatch();\n s.start();\n return s;\n };\n Stopwatch.measure = function (closure) {\n var start = getTimestampMilliseconds();\n closure();\n return new TimeSpan_1.default(getTimestampMilliseconds() - start);\n };\n Stopwatch.prototype.start = function () {\n var _ = this;\n if (!_._isRunning) {\n _._startTimeStamp = getTimestampMilliseconds();\n _._isRunning = true;\n }\n };\n Stopwatch.prototype.stop = function () {\n var _ = this;\n if (_._isRunning) {\n _._elapsed += _.currentLapMilliseconds;\n _._isRunning = false;\n }\n };\n Stopwatch.prototype.reset = function () {\n var _ = this;\n _._elapsed = 0;\n _._isRunning = false;\n _._startTimeStamp = NaN;\n };\n Stopwatch.prototype.lap = function () {\n var _ = this;\n if (_._isRunning) {\n var t = getTimestampMilliseconds();\n var s = _._startTimeStamp;\n var e = t - s;\n _._startTimeStamp = t;\n _._elapsed += e;\n return new TimeSpan_1.default(e);\n }\n else\n return TimeSpan_1.default.zero;\n };\n Object.defineProperty(Stopwatch.prototype, \"currentLapMilliseconds\", {\n get: function () {\n return this._isRunning\n ? (getTimestampMilliseconds() - this._startTimeStamp)\n : 0;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Stopwatch.prototype, \"currentLap\", {\n get: function () {\n return this._isRunning\n ? new TimeSpan_1.default(this.currentLapMilliseconds)\n : TimeSpan_1.default.zero;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Stopwatch.prototype, \"elapsedMilliseconds\", {\n get: function () {\n var _ = this;\n var timeElapsed = _._elapsed;\n if (_._isRunning)\n timeElapsed += _.currentLapMilliseconds;\n return timeElapsed;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Stopwatch.prototype, \"elapsed\", {\n get: function () {\n return new TimeSpan_1.default(this.elapsedMilliseconds);\n },\n enumerable: true,\n configurable: true\n });\n return Stopwatch;\n }());\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Stopwatch;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport TimeSpan from \"../Time/TimeSpan\";\r\n\r\nfunction getTimestampMilliseconds():number\r\n{\r\n\treturn (new Date()).getTime();\r\n}\r\n\r\nexport default\r\nclass Stopwatch implements ITimer\r\n{\r\n\r\n\tstatic getTimestampMilliseconds():number\r\n\t{\r\n\t\treturn getTimestampMilliseconds();\r\n\t}\r\n\r\n\tprivate _elapsed:number;\r\n\tprivate _startTimeStamp:number;\r\n\r\n\tprivate _isRunning:boolean;\r\n\tget isRunning():boolean\r\n\t{\r\n\t\treturn this._isRunning;\r\n\t}\r\n\r\n\tconstructor()\r\n\t{\r\n\t\tthis.reset();\r\n\t}\r\n\r\n\tstatic startNew():Stopwatch\r\n\t{\r\n\t\tvar s = new Stopwatch();\r\n\t\ts.start();\r\n\t\treturn s;\r\n\t}\r\n\r\n\tstatic measure(closure:()=>void):TimeSpan\r\n\t{\r\n\t\tvar start = getTimestampMilliseconds();\r\n\t\tclosure();\r\n\t\treturn new TimeSpan(getTimestampMilliseconds() - start);\r\n\t}\r\n\t\r\n\tstart():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(!_._isRunning) {\r\n\t\t\t_._startTimeStamp = getTimestampMilliseconds();\r\n\t\t\t_._isRunning = true;\r\n\t\t}\r\n\t}\r\n\r\n\tstop():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(_._isRunning) {\r\n\t\t\t_._elapsed += _.currentLapMilliseconds;\r\n\t\t\t_._isRunning = false;\r\n\t\t}\r\n\t}\r\n\r\n\treset():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_._elapsed = 0;\r\n\t\t_._isRunning = false;\r\n\t\t_._startTimeStamp = NaN;\r\n\t}\r\n\r\n\t// Effectively calls a stop start and continues timing...\r\n\t// Can also be called to effectively start a lap before calling it again to get the elapsed lap time.\r\n\tlap():TimeSpan\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(_._isRunning) {\r\n\t\t\tvar t = getTimestampMilliseconds();\r\n\t\t\tvar s = _._startTimeStamp;\r\n\t\t\tvar e = t - s;\r\n\t\t\t_._startTimeStamp = t;\r\n\t\t\t_._elapsed += e;\r\n\t\t\treturn new TimeSpan(e);\r\n\t\t}\r\n\t\telse\r\n\t\t\treturn TimeSpan.zero;\r\n\t}\r\n\r\n\tget currentLapMilliseconds():number\r\n\t{\r\n\t\treturn this._isRunning\r\n\t\t\t? (getTimestampMilliseconds() - this._startTimeStamp)\r\n\t\t\t: 0;\r\n\t}\r\n\r\n\tget currentLap():TimeSpan\r\n\t{\r\n\t\treturn this._isRunning\r\n\t\t\t? new TimeSpan(this.currentLapMilliseconds)\r\n\t\t\t: TimeSpan.zero;\r\n\t}\r\n\r\n\tget elapsedMilliseconds():number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar timeElapsed = _._elapsed;\r\n\r\n\t\tif(_._isRunning)\r\n\t\t\ttimeElapsed += _.currentLapMilliseconds;\r\n\r\n\t\treturn timeElapsed;\r\n\t}\r\n\r\n\tget elapsed():TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(this.elapsedMilliseconds);\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Diagnostics/Stopwatch.js","System/Diagnostics/Stopwatch.ts"],"names":["define","require","exports","TimeSpan_1","getTimestampMilliseconds","Date","getTime","Stopwatch","this","reset","Object","defineProperty","prototype","get","_isRunning","enumerable","configurable","startNew","s","start","measure","closure","TimeSpan","_","_startTimeStamp","stop","_elapsed","currentLapMilliseconds","NaN","lap","t","e","zero","timeElapsed","elapsedMilliseconds","value"],"mappings":";;;;AAIAA,QAAQ,UAAW,UAAW,oBAAqB,SAAUC,EAASC,EAASC,GAC3E,YCIJ,SAAAC,KAEC,OAAO,GAAKC,OAAQC,UAGrB,GAAAC,GAAA,WAkBC,QAAAA,KAECC,KAAKC,QA6FP,MA7GQF,GAAAH,yBAAP,WAEC,MAAOA,MAORM,OAAAC,eAAIJ,EAAAK,UAAA,aDVOC,ICUX,WAEC,MAAOL,MAAKM,YDTFC,YAAY,EACZC,cAAc,ICgBlBT,EAAAU,SAAP,WAEC,GAAIC,GAAI,GAAIX,EAEZ,OADAW,GAAEC,QACKD,GAGDX,EAAAa,QAAP,SAAeC,GAEd,GAAIF,GAAQf,GAEZ,OADAiB,KACO,GAAIlB,GAAAmB,SAASlB,IAA6Be,IAGlDZ,EAAAK,UAAAO,MAAA,WAEC,GAAII,GAAIf,IACJe,GAAET,aAELS,EAAEC,gBAAkBpB,IACpBmB,EAAET,YAAa,IAIjBP,EAAAK,UAAAa,KAAA,WAEC,GAAIF,GAAIf,IACLe,GAAET,aAEJS,EAAEG,UAAYH,EAAEI,uBAChBJ,EAAET,YAAa,IAIjBP,EAAAK,UAAAH,MAAA,WAEC,GAAIc,GAAIf,IACRe,GAAEG,SAAW,EACbH,EAAET,YAAa,EACfS,EAAEC,gBAAkBI,KAKrBrB,EAAAK,UAAAiB,IAAA,WAEC,GAAIN,GAAIf,IACR,IAAGe,EAAET,WACL,CACC,GAAIgB,GAAI1B,IACJc,EAAIK,EAAEC,gBACNO,EAAID,EAAIZ,CAGZ,OAFAK,GAAEC,gBAAkBM,EACpBP,EAAEG,UAAYK,EACP,GAAI5B,GAAAmB,SAASS,GAGpB,MAAO5B,GAAAmB,SAASU,MAGlBtB,OAAAC,eAAIJ,EAAAK,UAAA,0BD9BOC,IC8BX,WAEC,MAAOL,MAAKM,WACRV,IAA6BI,KAAKgB,gBACnC,GD7BOT,YAAY,EACZC,cAAc,IC+BzBN,OAAAC,eAAIJ,EAAAK,UAAA,cD5BOC,IC4BX,WAEC,MAAOL,MAAKM,WACT,GAAIX,GAAAmB,SAASd,KAAKmB,wBAClBxB,EAAAmB,SAASU,MD3BFjB,YAAY,EACZC,cAAc,IC6BzBN,OAAAC,eAAIJ,EAAAK,UAAA,uBD1BOC,IC0BX,WAEC,GAAIU,GAAIf,KACJyB,EAAcV,EAAEG,QAKpB,OAHGH,GAAET,aACJmB,GAAeV,EAAEI,wBAEXM,GD3BGlB,YAAY,EACZC,cAAc,IC6BzBN,OAAAC,eAAIJ,EAAAK,UAAA,WD1BOC,IC0BX,WAEC,MAAO,IAAIV,GAAAmB,SAASd,KAAK0B,sBDzBfnB,YAAY,EACZC,cAAc,IC2B1BT,IAjHAG,QAAAC,eAAAT,EAAA,cAAAiC,OAAA,ID2FIjC,EAAAA,WAAkBK","file":"System/Diagnostics/Stopwatch.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\", \"../Time/TimeSpan\"], function (require, exports, TimeSpan_1) {\n \"use strict\";\n function getTimestampMilliseconds() {\n return (new Date()).getTime();\n }\n var Stopwatch = (function () {\n function Stopwatch() {\n this.reset();\n }\n Stopwatch.getTimestampMilliseconds = function () {\n return getTimestampMilliseconds();\n };\n Object.defineProperty(Stopwatch.prototype, \"isRunning\", {\n get: function () {\n return this._isRunning;\n },\n enumerable: true,\n configurable: true\n });\n Stopwatch.startNew = function () {\n var s = new Stopwatch();\n s.start();\n return s;\n };\n Stopwatch.measure = function (closure) {\n var start = getTimestampMilliseconds();\n closure();\n return new TimeSpan_1.TimeSpan(getTimestampMilliseconds() - start);\n };\n Stopwatch.prototype.start = function () {\n var _ = this;\n if (!_._isRunning) {\n _._startTimeStamp = getTimestampMilliseconds();\n _._isRunning = true;\n }\n };\n Stopwatch.prototype.stop = function () {\n var _ = this;\n if (_._isRunning) {\n _._elapsed += _.currentLapMilliseconds;\n _._isRunning = false;\n }\n };\n Stopwatch.prototype.reset = function () {\n var _ = this;\n _._elapsed = 0;\n _._isRunning = false;\n _._startTimeStamp = NaN;\n };\n Stopwatch.prototype.lap = function () {\n var _ = this;\n if (_._isRunning) {\n var t = getTimestampMilliseconds();\n var s = _._startTimeStamp;\n var e = t - s;\n _._startTimeStamp = t;\n _._elapsed += e;\n return new TimeSpan_1.TimeSpan(e);\n }\n else\n return TimeSpan_1.TimeSpan.zero;\n };\n Object.defineProperty(Stopwatch.prototype, \"currentLapMilliseconds\", {\n get: function () {\n return this._isRunning\n ? (getTimestampMilliseconds() - this._startTimeStamp)\n : 0;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Stopwatch.prototype, \"currentLap\", {\n get: function () {\n return this._isRunning\n ? new TimeSpan_1.TimeSpan(this.currentLapMilliseconds)\n : TimeSpan_1.TimeSpan.zero;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Stopwatch.prototype, \"elapsedMilliseconds\", {\n get: function () {\n var _ = this;\n var timeElapsed = _._elapsed;\n if (_._isRunning)\n timeElapsed += _.currentLapMilliseconds;\n return timeElapsed;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Stopwatch.prototype, \"elapsed\", {\n get: function () {\n return new TimeSpan_1.TimeSpan(this.elapsedMilliseconds);\n },\n enumerable: true,\n configurable: true\n });\n return Stopwatch;\n }());\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Stopwatch;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {TimeSpan} from \"../Time/TimeSpan\";\r\nimport {ITimer} from \"../Timers/ITimer\";\r\n\r\nfunction getTimestampMilliseconds():number\r\n{\r\n\treturn (new Date()).getTime();\r\n}\r\n\r\nexport default\r\nclass Stopwatch implements ITimer\r\n{\r\n\r\n\tstatic getTimestampMilliseconds():number\r\n\t{\r\n\t\treturn getTimestampMilliseconds();\r\n\t}\r\n\r\n\tprivate _elapsed:number;\r\n\tprivate _startTimeStamp:number;\r\n\r\n\tprivate _isRunning:boolean;\r\n\tget isRunning():boolean\r\n\t{\r\n\t\treturn this._isRunning;\r\n\t}\r\n\r\n\tconstructor()\r\n\t{\r\n\t\tthis.reset();\r\n\t}\r\n\r\n\tstatic startNew():Stopwatch\r\n\t{\r\n\t\tvar s = new Stopwatch();\r\n\t\ts.start();\r\n\t\treturn s;\r\n\t}\r\n\r\n\tstatic measure(closure:()=>void):TimeSpan\r\n\t{\r\n\t\tvar start = getTimestampMilliseconds();\r\n\t\tclosure();\r\n\t\treturn new TimeSpan(getTimestampMilliseconds() - start);\r\n\t}\r\n\r\n\tstart():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(!_._isRunning)\r\n\t\t{\r\n\t\t\t_._startTimeStamp = getTimestampMilliseconds();\r\n\t\t\t_._isRunning = true;\r\n\t\t}\r\n\t}\r\n\r\n\tstop():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(_._isRunning)\r\n\t\t{\r\n\t\t\t_._elapsed += _.currentLapMilliseconds;\r\n\t\t\t_._isRunning = false;\r\n\t\t}\r\n\t}\r\n\r\n\treset():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_._elapsed = 0;\r\n\t\t_._isRunning = false;\r\n\t\t_._startTimeStamp = NaN;\r\n\t}\r\n\r\n\t// Effectively calls a stop start and continues timing...\r\n\t// Can also be called to effectively start a lap before calling it again to get the elapsed lap time.\r\n\tlap():TimeSpan\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(_._isRunning)\r\n\t\t{\r\n\t\t\tvar t = getTimestampMilliseconds();\r\n\t\t\tvar s = _._startTimeStamp;\r\n\t\t\tvar e = t - s;\r\n\t\t\t_._startTimeStamp = t;\r\n\t\t\t_._elapsed += e;\r\n\t\t\treturn new TimeSpan(e);\r\n\t\t}\r\n\t\telse\r\n\t\t\treturn TimeSpan.zero;\r\n\t}\r\n\r\n\tget currentLapMilliseconds():number\r\n\t{\r\n\t\treturn this._isRunning\r\n\t\t\t? (getTimestampMilliseconds() - this._startTimeStamp)\r\n\t\t\t: 0;\r\n\t}\r\n\r\n\tget currentLap():TimeSpan\r\n\t{\r\n\t\treturn this._isRunning\r\n\t\t\t? new TimeSpan(this.currentLapMilliseconds)\r\n\t\t\t: TimeSpan.zero;\r\n\t}\r\n\r\n\tget elapsedMilliseconds():number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar timeElapsed = _._elapsed;\r\n\r\n\t\tif(_._isRunning)\r\n\t\t\ttimeElapsed += _.currentLapMilliseconds;\r\n\r\n\t\treturn timeElapsed;\r\n\t}\r\n\r\n\tget elapsed():TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(this.elapsedMilliseconds);\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Disposable/DisposableBase.d.ts b/dist/amd/System/Disposable/DisposableBase.d.ts index 1acd883f..509f3cf0 100644 --- a/dist/amd/System/Disposable/DisposableBase.d.ts +++ b/dist/amd/System/Disposable/DisposableBase.d.ts @@ -1,9 +1,9 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -declare abstract class DisposableBase implements IDisposableAware { +import { IDisposableAware } from "./IDisposableAware"; +export declare abstract class DisposableBase implements IDisposableAware { private _finalizer; constructor(_finalizer?: () => void); private _wasDisposed; diff --git a/dist/amd/System/Disposable/DisposableBase.js b/dist/amd/System/Disposable/DisposableBase.js index bbafdd01..c185ddb8 100644 --- a/dist/amd/System/Disposable/DisposableBase.js +++ b/dist/amd/System/Disposable/DisposableBase.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -define(["require","exports","./ObjectDisposedException"],function(e,i,s){"use strict";var t=function(){function e(e){this._finalizer=e,this._wasDisposed=!1}return Object.defineProperty(e.prototype,"wasDisposed",{get:function(){return this._wasDisposed},enumerable:!0,configurable:!0}),e.prototype.throwIfDisposed=function(e,i){if(void 0===i&&(i=this._disposableObjectName),this._wasDisposed)throw new s["default"](i,e);return!0},e.prototype.dispose=function(){var e=this;if(!e._wasDisposed){e._wasDisposed=!0;try{e._onDispose()}finally{e._finalizer&&e._finalizer()}}},e.prototype._onDispose=function(){},e}();Object.defineProperty(i,"__esModule",{value:!0}),i["default"]=t}); +define(["require","exports","./ObjectDisposedException"],function(e,i,s){"use strict";var o=function(){function e(e){this._finalizer=e,this._wasDisposed=!1}return Object.defineProperty(e.prototype,"wasDisposed",{get:function(){return this._wasDisposed},enumerable:!0,configurable:!0}),e.prototype.throwIfDisposed=function(e,i){if(void 0===i&&(i=this._disposableObjectName),this._wasDisposed)throw new s.ObjectDisposedException(i,e);return!0},e.prototype.dispose=function(){var e=this;if(!e._wasDisposed){e._wasDisposed=!0;try{e._onDispose()}finally{e._finalizer&&e._finalizer()}}},e.prototype._onDispose=function(){},e}();i.DisposableBase=o,Object.defineProperty(i,"__esModule",{value:!0}),i["default"]=o}); //# sourceMappingURL=DisposableBase.js.map diff --git a/dist/amd/System/Disposable/DisposableBase.js.map b/dist/amd/System/Disposable/DisposableBase.js.map index d157e3fd..50af15ae 100644 --- a/dist/amd/System/Disposable/DisposableBase.js.map +++ b/dist/amd/System/Disposable/DisposableBase.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Disposable/DisposableBase.js","System/Disposable/DisposableBase.ts"],"names":["define","require","exports","ObjectDisposedException_1","DisposableBase","_finalizer","this","_wasDisposed","Object","defineProperty","prototype","get","enumerable","configurable","throwIfDisposed","message","objectName","_disposableObjectName","dispose","_","_onDispose","value"],"mappings":";;;;AAIAA,QAAQ,UAAW,UAAW,6BAA8B,SAAUC,EAASC,EAASC,GCExF,YAIA,IAAAC,GAAA,WAGC,QAAAA,GAAoBC,GAAAC,KAAAD,WAAAA,EAIZC,KAAAC,cAAuB,EA0ChC,MAzCCC,QAAAC,eAAIL,EAAAM,UAAA,eDNOC,ICMX,WAEC,MAAOL,MAAKC,cDLFK,YAAY,EACZC,cAAc,ICUfT,EAAAM,UAAAI,gBAAV,SACCC,EACAC,GAEA,GAFA,SAAAA,IAAAA,EAAoBV,KAAKW,uBAEtBX,KAAKC,aACP,KAAM,IAAIJ,GAAAA,WAAwBa,EAAYD,EAC/C,QAAO,GAIRX,EAAAM,UAAAQ,QAAA,WAEC,GAAIC,GAAIb,IACR,KAAIa,EAAEZ,aACN,CAGCY,EAAEZ,cAAe,CACjB,KAECY,EAAEC,aDfU,QCmBTD,EAAEd,YACJc,EAAEd,gBAMID,EAAAM,UAAAU,WAAV,aAEDhB,IAEAI,QAAAC,eAAAP,EAAA,cAAAmB,OAAA,IDpBInB,EAAAA,WCoBWE","file":"System/Disposable/DisposableBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\", './ObjectDisposedException'], function (require, exports, ObjectDisposedException_1) {\n 'use strict';\n var DisposableBase = (function () {\n function DisposableBase(_finalizer) {\n this._finalizer = _finalizer;\n this._wasDisposed = false;\n }\n Object.defineProperty(DisposableBase.prototype, \"wasDisposed\", {\n get: function () {\n return this._wasDisposed;\n },\n enumerable: true,\n configurable: true\n });\n DisposableBase.prototype.throwIfDisposed = function (message, objectName) {\n if (objectName === void 0) { objectName = this._disposableObjectName; }\n if (this._wasDisposed)\n throw new ObjectDisposedException_1.default(objectName, message);\n return true;\n };\n DisposableBase.prototype.dispose = function () {\n var _ = this;\n if (!_._wasDisposed) {\n _._wasDisposed = true;\n try {\n _._onDispose();\n }\n finally {\n if (_._finalizer)\n _._finalizer();\n }\n }\n };\n DisposableBase.prototype._onDispose = function () { };\n return DisposableBase;\n }());\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = DisposableBase;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport ObjectDisposedException from './ObjectDisposedException';\r\n\r\nabstract class DisposableBase implements IDisposableAware\r\n{\r\n\r\n\tconstructor(private _finalizer?:() => void)\r\n\t{\r\n\t}\r\n\r\n\tprivate _wasDisposed:boolean = false;\r\n\tget wasDisposed():boolean\r\n\t{\r\n\t\treturn this._wasDisposed;\r\n\t}\r\n\r\n\t// Allow for simple override of name.\r\n\tprotected _disposableObjectName:string;\r\n\r\n\tprotected throwIfDisposed(\r\n\t\tmessage?:string,\r\n\t\tobjectName:string = this._disposableObjectName):boolean\r\n\t{\r\n\t\tif(this._wasDisposed)\r\n\t\t\tthrow new ObjectDisposedException(objectName, message);\r\n\t\treturn true;\r\n\t}\r\n\r\n\r\n\tdispose():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(!_._wasDisposed)\r\n\t\t{\r\n\t\t\t// Preemptively set wasDisposed in order to prevent repeated disposing.\r\n\t\t\t// NOTE: in true multi-threaded scenarios, this needs to be synchronized.\r\n\t\t\t_._wasDisposed = true;\r\n\t\t\ttry\r\n\t\t\t{\r\n\t\t\t\t_._onDispose(); // Protected override.\r\n\t\t\t}\r\n\t\t\tfinally\r\n\t\t\t{\r\n\t\t\t\tif(_._finalizer) // Private finalizer...\r\n\t\t\t\t\t_._finalizer();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Placeholder for overrides.\r\n\tprotected _onDispose():void { }\r\n\r\n}\r\n\r\nexport default DisposableBase;"]} \ No newline at end of file +{"version":3,"sources":["System/Disposable/DisposableBase.js","System/Disposable/DisposableBase.ts"],"names":["define","require","exports","ObjectDisposedException_1","DisposableBase","_finalizer","this","_wasDisposed","Object","defineProperty","prototype","get","enumerable","configurable","throwIfDisposed","message","objectName","_disposableObjectName","ObjectDisposedException","dispose","_","_onDispose","value"],"mappings":";;;;AAIAA,QAAQ,UAAW,UAAW,6BAA8B,SAAUC,EAASC,EAASC,GACpF,YCGJ,IAAAC,GAAA,WAGC,QAAAA,GAAoBC,GAAAC,KAAAD,WAAAA,EAIZC,KAAAC,cAAuB,EA0ChC,MAzCCC,QAAAC,eAAIL,EAAAM,UAAA,eDJOC,ICIX,WAEC,MAAOL,MAAKC,cDHFK,YAAY,EACZC,cAAc,ICQfT,EAAAM,UAAAI,gBAAV,SACCC,EACAC,GAEA,GAFA,SAAAA,IAAAA,EAAoBV,KAAKW,uBAEtBX,KAAKC,aACP,KAAM,IAAIJ,GAAAe,wBAAwBF,EAAYD,EAC/C,QAAO,GAIRX,EAAAM,UAAAS,QAAA,WAEC,GAAIC,GAAId,IACR,KAAIc,EAAEb,aACN,CAGCa,EAAEb,cAAe,CACjB,KAECa,EAAEC,aDbU,QCiBTD,EAAEf,YACJe,EAAEf,gBAMID,EAAAM,UAAAW,WAAV,aAEDjB,IAjDsBF,GAAAE,eAAcA,EAmDpCI,OAAAC,eAAAP,EAAA,cAAAoB,OAAA,IDjBIpB,EAAAA,WCiBWE","file":"System/Disposable/DisposableBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\", \"./ObjectDisposedException\"], function (require, exports, ObjectDisposedException_1) {\n \"use strict\";\n var DisposableBase = (function () {\n function DisposableBase(_finalizer) {\n this._finalizer = _finalizer;\n this._wasDisposed = false;\n }\n Object.defineProperty(DisposableBase.prototype, \"wasDisposed\", {\n get: function () {\n return this._wasDisposed;\n },\n enumerable: true,\n configurable: true\n });\n DisposableBase.prototype.throwIfDisposed = function (message, objectName) {\n if (objectName === void 0) { objectName = this._disposableObjectName; }\n if (this._wasDisposed)\n throw new ObjectDisposedException_1.ObjectDisposedException(objectName, message);\n return true;\n };\n DisposableBase.prototype.dispose = function () {\n var _ = this;\n if (!_._wasDisposed) {\n _._wasDisposed = true;\n try {\n _._onDispose();\n }\n finally {\n if (_._finalizer)\n _._finalizer();\n }\n }\n };\n DisposableBase.prototype._onDispose = function () { };\n return DisposableBase;\n }());\n exports.DisposableBase = DisposableBase;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = DisposableBase;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {ObjectDisposedException} from \"./ObjectDisposedException\";\r\nimport {IDisposableAware} from \"./IDisposableAware\";\r\n\r\nexport abstract class DisposableBase implements IDisposableAware\r\n{\r\n\r\n\tconstructor(private _finalizer?:() => void)\r\n\t{\r\n\t}\r\n\r\n\tprivate _wasDisposed:boolean = false;\r\n\tget wasDisposed():boolean\r\n\t{\r\n\t\treturn this._wasDisposed;\r\n\t}\r\n\r\n\t// Allow for simple override of name.\r\n\tprotected _disposableObjectName:string;\r\n\r\n\tprotected throwIfDisposed(\r\n\t\tmessage?:string,\r\n\t\tobjectName:string = this._disposableObjectName):boolean\r\n\t{\r\n\t\tif(this._wasDisposed)\r\n\t\t\tthrow new ObjectDisposedException(objectName, message);\r\n\t\treturn true;\r\n\t}\r\n\r\n\r\n\tdispose():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(!_._wasDisposed)\r\n\t\t{\r\n\t\t\t// Preemptively set wasDisposed in order to prevent repeated disposing.\r\n\t\t\t// NOTE: in true multi-threaded scenarios, this needs to be synchronized.\r\n\t\t\t_._wasDisposed = true;\r\n\t\t\ttry\r\n\t\t\t{\r\n\t\t\t\t_._onDispose(); // Protected override.\r\n\t\t\t}\r\n\t\t\tfinally\r\n\t\t\t{\r\n\t\t\t\tif(_._finalizer) // Private finalizer...\r\n\t\t\t\t\t_._finalizer();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Placeholder for overrides.\r\n\tprotected _onDispose():void { }\r\n\r\n}\r\n\r\nexport default DisposableBase;"]} \ No newline at end of file diff --git a/dist/amd/System/Disposable/ObjectDisposedException.d.ts b/dist/amd/System/Disposable/ObjectDisposedException.d.ts index 66e40831..8af0e485 100644 --- a/dist/amd/System/Disposable/ObjectDisposedException.d.ts +++ b/dist/amd/System/Disposable/ObjectDisposedException.d.ts @@ -1,15 +1,16 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -import Exception from '../Exception'; -import InvalidOperationException from '../Exceptions/InvalidOperationException'; -export default class ObjectDisposedException extends InvalidOperationException { +import { Exception } from "../Exception"; +import { InvalidOperationException } from "../Exceptions/InvalidOperationException"; +import { IDisposableAware } from "./IDisposableAware"; +export declare class ObjectDisposedException extends InvalidOperationException { objectName: string; constructor(objectName: string, message?: string, innerException?: Exception); protected getName(): string; toString(): string; static throwIfDisposed(disposable: IDisposableAware, objectName?: string, message?: string): void; } +export default ObjectDisposedException; diff --git a/dist/amd/System/Disposable/ObjectDisposedException.js b/dist/amd/System/Disposable/ObjectDisposedException.js index 50bca2c6..22c80289 100644 --- a/dist/amd/System/Disposable/ObjectDisposedException.js +++ b/dist/amd/System/Disposable/ObjectDisposedException.js @@ -3,5 +3,5 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -var __extends=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)};define(["require","exports","../Exceptions/InvalidOperationException"],function(t,e,n){"use strict";var o="ObjectDisposedException",i=function(t){function e(e,n,o){void 0===n&&(n=null),void 0===o&&(o=null),t.call(this,n,o,function(t){t.objectName=e})}return __extends(e,t),e.prototype.getName=function(){return o},e.prototype.toString=function(){var t=this,e=t.objectName;return e=e?"{"+e+"} ":"","["+t.name+": "+e+t.message+"]"},e.throwIfDisposed=function(t,n,o){if(t.wasDisposed)throw new e(n,o)},e}(n["default"]);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=i}); +var __extends=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)};define(["require","exports","../Exceptions/InvalidOperationException"],function(t,e,n){"use strict";var o="ObjectDisposedException",i=function(t){function e(e,n,o){void 0===n&&(n=null),void 0===o&&(o=null),t.call(this,n,o,function(t){t.objectName=e})}return __extends(e,t),e.prototype.getName=function(){return o},e.prototype.toString=function(){var t=this,e=t.objectName;return e=e?"{"+e+"} ":"","["+t.name+": "+e+t.message+"]"},e.throwIfDisposed=function(t,n,o){if(t.wasDisposed)throw new e(n,o)},e}(n.InvalidOperationException);e.ObjectDisposedException=i,Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=i}); //# sourceMappingURL=ObjectDisposedException.js.map diff --git a/dist/amd/System/Disposable/ObjectDisposedException.js.map b/dist/amd/System/Disposable/ObjectDisposedException.js.map index 9effd166..94875289 100644 --- a/dist/amd/System/Disposable/ObjectDisposedException.js.map +++ b/dist/amd/System/Disposable/ObjectDisposedException.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Disposable/ObjectDisposedException.js","System/Disposable/ObjectDisposedException.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","InvalidOperationException_1","NAME","ObjectDisposedException","_super","objectName","message","innerException","call","_","getName","toString","oName","name","throwIfDisposed","disposable","wasDisposed","defineProperty","value"],"mappings":";;;;;AAKA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,2CAA4C,SAAUC,EAASC,EAASC,GCHtG,YAMA,IAAMC,GAAc,0BAEpBC,EAAA,SAAAC,GAQC,QAAAD,GACCE,EACAC,EACAC,GADA,SAAAD,IAAAA,EAAA,MACA,SAAAC,IAAAA,EAAA,MAEAH,EAAAI,KAAApB,KAAMkB,EAASC,EAAgB,SAACE,GAC/BA,EAAEJ,WAAaA,IA2BlB,MAvCQlB,WAAAgB,EAAAC,GAiBGD,EAAAR,UAAAe,QAAV,WAEC,MAAOR,IAGRC,EAAAR,UAAAgB,SAAA,WAEC,GAAIF,GAAIrB,KAAMwB,EAAQH,EAAEJ,UAGxB,OAFAO,GAAQA,EAAS,IAAMA,EAAQ,KAAQ,GAEhC,IAAMH,EAAEI,KAAO,KAAOD,EAAQH,EAAEH,QAAU,KAG3CH,EAAAW,gBAAP,SACCC,EACAV,EACAC,GAEA,GAAGS,EAAWC,YACb,KAAM,IAAIb,GAAwBE,EAAYC,IAGjDH,GAvCQF,EAAAA,WAFRL,QAAAqB,eAAAjB,EAAA,cAAAkB,OAAA,IDsBIlB,EAAAA,WAAkBG","file":"System/Disposable/ObjectDisposedException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", '../Exceptions/InvalidOperationException'], function (require, exports, InvalidOperationException_1) {\n 'use strict';\n var NAME = 'ObjectDisposedException';\n var ObjectDisposedException = (function (_super) {\n __extends(ObjectDisposedException, _super);\n function ObjectDisposedException(objectName, message, innerException) {\n if (message === void 0) { message = null; }\n if (innerException === void 0) { innerException = null; }\n _super.call(this, message, innerException, function (_) {\n _.objectName = objectName;\n });\n }\n ObjectDisposedException.prototype.getName = function () {\n return NAME;\n };\n ObjectDisposedException.prototype.toString = function () {\n var _ = this, oName = _.objectName;\n oName = oName ? ('{' + oName + '} ') : '';\n return '[' + _.name + ': ' + oName + _.message + ']';\n };\n ObjectDisposedException.throwIfDisposed = function (disposable, objectName, message) {\n if (disposable.wasDisposed)\n throw new ObjectDisposedException(objectName, message);\n };\n return ObjectDisposedException;\n }(InvalidOperationException_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ObjectDisposedException;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport Exception from '../Exception';\r\nimport InvalidOperationException from '../Exceptions/InvalidOperationException';\r\n\r\n\r\nconst NAME:string = 'ObjectDisposedException';\r\n\r\nexport default\r\nclass ObjectDisposedException\r\nextends InvalidOperationException\r\n{\r\n\r\n\tobjectName:string;\r\n\r\n\t// For simplicity and consistency, lets stick with 1 signature.\r\n\tconstructor(\r\n\t\tobjectName:string,\r\n\t\tmessage:string = null,\r\n\t\tinnerException:Exception = null)\r\n\t{\r\n\t\tsuper(message, innerException, (_)=>{\r\n\t\t\t_.objectName = objectName;\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\ttoString():string\r\n\t{\r\n\t\tvar _ = this, oName = _.objectName;\r\n\t\toName = oName ? ('{' + oName + '} ') : '';\r\n\r\n\t\treturn '[' + _.name + ': ' + oName + _.message + ']';\r\n\t}\r\n\r\n\tstatic throwIfDisposed(\r\n\t\tdisposable:IDisposableAware,\r\n\t\tobjectName?:string,\r\n\t\tmessage?:string):void\r\n\t{\r\n\t\tif(disposable.wasDisposed)\r\n\t\t\tthrow new ObjectDisposedException(objectName, message);\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Disposable/ObjectDisposedException.js","System/Disposable/ObjectDisposedException.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","InvalidOperationException_1","NAME","ObjectDisposedException","_super","objectName","message","innerException","call","_","getName","toString","oName","name","throwIfDisposed","disposable","wasDisposed","InvalidOperationException","defineProperty","value"],"mappings":";;;;;AAKA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,2CAA4C,SAAUC,EAASC,EAASC,GAClG,YCAJ,IAAMC,GAAc,0BAEpBC,EAAA,SAAAC,GAOC,QAAAD,GACCE,EACAC,EACAC,GADA,SAAAD,IAAAA,EAAA,MACA,SAAAC,IAAAA,EAAA,MAEAH,EAAAI,KAAApB,KAAMkB,EAASC,EAAgB,SAACE,GAC/BA,EAAEJ,WAAaA,IA2BlB,MAvCQlB,WAAAgB,EAAAC,GAiBGD,EAAAR,UAAAe,QAAV,WAEC,MAAOR,IAGRC,EAAAR,UAAAgB,SAAA,WAEC,GAAIF,GAAIrB,KAAMwB,EAAQH,EAAEJ,UAGxB,OAFAO,GAAQA,EAAS,IAAMA,EAAQ,KAAQ,GAEhC,IAAMH,EAAEI,KAAO,KAAOD,EAAQH,EAAEH,QAAU,KAG3CH,EAAAW,gBAAP,SACCC,EACAV,EACAC,GAEA,GAAGS,EAAWC,YACb,KAAM,IAAIb,GAAwBE,EAAYC,IAGjDH,GAvCQF,EAAAgB,0BADKjB,GAAAG,wBAAuBA,EA0CpCP,OAAAsB,eAAAlB,EAAA,cAAAmB,OAAA,IDjBInB,EAAAA,WCiBWG","file":"System/Disposable/ObjectDisposedException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"../Exceptions/InvalidOperationException\"], function (require, exports, InvalidOperationException_1) {\n \"use strict\";\n var NAME = 'ObjectDisposedException';\n var ObjectDisposedException = (function (_super) {\n __extends(ObjectDisposedException, _super);\n function ObjectDisposedException(objectName, message, innerException) {\n if (message === void 0) { message = null; }\n if (innerException === void 0) { innerException = null; }\n _super.call(this, message, innerException, function (_) {\n _.objectName = objectName;\n });\n }\n ObjectDisposedException.prototype.getName = function () {\n return NAME;\n };\n ObjectDisposedException.prototype.toString = function () {\n var _ = this, oName = _.objectName;\n oName = oName ? ('{' + oName + '} ') : '';\n return '[' + _.name + ': ' + oName + _.message + ']';\n };\n ObjectDisposedException.throwIfDisposed = function (disposable, objectName, message) {\n if (disposable.wasDisposed)\n throw new ObjectDisposedException(objectName, message);\n };\n return ObjectDisposedException;\n }(InvalidOperationException_1.InvalidOperationException));\n exports.ObjectDisposedException = ObjectDisposedException;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ObjectDisposedException;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\nimport {Exception} from \"../Exception\";\r\nimport {InvalidOperationException} from \"../Exceptions/InvalidOperationException\";\r\nimport {IDisposableAware} from \"./IDisposableAware\";\r\n\r\n\r\nconst NAME:string = 'ObjectDisposedException';\r\n\r\nexport class ObjectDisposedException\r\nextends InvalidOperationException\r\n{\r\n\r\n\tobjectName:string;\r\n\r\n\t// For simplicity and consistency, lets stick with 1 signature.\r\n\tconstructor(\r\n\t\tobjectName:string,\r\n\t\tmessage:string = null,\r\n\t\tinnerException:Exception = null)\r\n\t{\r\n\t\tsuper(message, innerException, (_)=>{\r\n\t\t\t_.objectName = objectName;\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\ttoString():string\r\n\t{\r\n\t\tvar _ = this, oName = _.objectName;\r\n\t\toName = oName ? ('{' + oName + '} ') : '';\r\n\r\n\t\treturn '[' + _.name + ': ' + oName + _.message + ']';\r\n\t}\r\n\r\n\tstatic throwIfDisposed(\r\n\t\tdisposable:IDisposableAware,\r\n\t\tobjectName?:string,\r\n\t\tmessage?:string):void\r\n\t{\r\n\t\tif(disposable.wasDisposed)\r\n\t\t\tthrow new ObjectDisposedException(objectName, message);\r\n\t}\r\n\r\n}\r\n\r\nexport default ObjectDisposedException;"]} \ No newline at end of file diff --git a/dist/amd/System/Disposable/ObjectPool.d.ts b/dist/amd/System/Disposable/ObjectPool.d.ts index af854543..1dbbcbf5 100644 --- a/dist/amd/System/Disposable/ObjectPool.d.ts +++ b/dist/amd/System/Disposable/ObjectPool.d.ts @@ -4,8 +4,8 @@ * Based upon ObjectPool from Parallel Extension Extras and other ObjectPool implementations. * Uses .add(T) and .take():T */ -import DisposableBase from "./DisposableBase"; -export default class ObjectPool extends DisposableBase { +import { DisposableBase } from "./DisposableBase"; +export declare class ObjectPool extends DisposableBase { private _maxSize; private _generator; private _pool; @@ -28,3 +28,4 @@ export default class ObjectPool extends DisposableBase { add(o: T): void; take(): T; } +export default ObjectPool; diff --git a/dist/amd/System/Disposable/ObjectPool.js b/dist/amd/System/Disposable/ObjectPool.js index bb691b3e..c2ecf61d 100644 --- a/dist/amd/System/Disposable/ObjectPool.js +++ b/dist/amd/System/Disposable/ObjectPool.js @@ -4,5 +4,5 @@ * Based upon ObjectPool from Parallel Extension Extras and other ObjectPool implementations. * Uses .add(T) and .take():T */ -var __extends=this&&this.__extends||function(e,t){function o(){this.constructor=e}for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)};define(["require","exports","./dispose","./DisposableBase","../Tasks/TaskHandler","../Exceptions/ArgumentOutOfRangeException"],function(e,t,o,r,n,i){"use strict";var l="ObjectPool",a="_maxSize",u=65536,s="Must be at valid number least 1.",p="Must be less than or equal to "+u+".",h=function(e){function t(t,o){if(e.call(this),this._maxSize=t,this._generator=o,this.autoClearTimeout=5e3,isNaN(t)||1>t)throw new i["default"](a,t,s);if(t>u)throw new i["default"](a,t,p);this._localAbsMaxSize=Math.min(2*t,u);var r=this;r._disposableObjectName=l,r._pool=[],r._trimmer=new n["default"](function(){return r._trim()});var h=function(){return r._clear()};r._flusher=new n["default"](h),r._autoFlusher=new n["default"](h)}return __extends(t,e),Object.defineProperty(t.prototype,"maxSize",{get:function(){return this._maxSize},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"count",{get:function(){var e=this._pool;return e?e.length:0},enumerable:!0,configurable:!0}),t.prototype._trim=function(){for(var e=this._pool;e.length>this._maxSize;)o["default"].withoutException(e.pop())},t.prototype.trim=function(e){this.throwIfDisposed(),this._trimmer.execute(e)},t.prototype._clear=function(){var e=this,t=e._pool;e._trimmer.cancel(),e._flusher.cancel(),e._autoFlusher.cancel(),o["default"].these(t,!0),t.length=0},t.prototype.clear=function(e){this.throwIfDisposed(),this._flusher.execute(e)},t.prototype.toArrayAndClear=function(){var e=this;e.throwIfDisposed(),e._trimmer.cancel(),e._flusher.cancel();var t=e._pool;return e._pool=[],t},t.prototype.dump=function(){return this.toArrayAndClear()},t.prototype._onDispose=function(){e.prototype._onDispose.call(this);var t=this;t._generator=null,o["default"](t._trimmer,t._flusher,t._autoFlusher),t._trimmer=null,t._flusher=null,t._autoFlusher=null,t._pool.length=0,t._pool=null},t.prototype.extendAutoClear=function(){var e=this;e.throwIfDisposed();var t=e.autoClearTimeout;isFinite(t)&&!e._autoFlusher.isScheduled&&e._autoFlusher.execute(t)},t.prototype.add=function(e){var t=this;if(t.throwIfDisposed(),t._pool.length>=t._localAbsMaxSize)o["default"](e);else{t._pool.push(e);var r=t._maxSize;u>r&&t._pool.length>r&&t._trimmer.execute(500)}t.extendAutoClear()},t.prototype.take=function(){var e=this;e.throwIfDisposed();var t=e._pool.pop()||e._generator(),o=e._pool.length;return e._pool.length<=e._maxSize&&e._trimmer.cancel(),o&&e.extendAutoClear(),t},t}(r["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=h}); +var __extends=this&&this.__extends||function(e,t){function o(){this.constructor=e}for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)};define(["require","exports","./dispose","./DisposableBase","../Tasks/TaskHandler","../Exceptions/ArgumentOutOfRangeException"],function(e,t,o,r,n,i){"use strict";var s="ObjectPool",a="_maxSize",l=65536,u="Must be at valid number least 1.",p="Must be less than or equal to "+l+".",c=function(e){function t(t,o){if(e.call(this),this._maxSize=t,this._generator=o,this.autoClearTimeout=5e3,isNaN(t)||1>t)throw new i.ArgumentOutOfRangeException(a,t,u);if(t>l)throw new i.ArgumentOutOfRangeException(a,t,p);this._localAbsMaxSize=Math.min(2*t,l);var r=this;r._disposableObjectName=s,r._pool=[],r._trimmer=new n.TaskHandler(function(){return r._trim()});var c=function(){return r._clear()};r._flusher=new n.TaskHandler(c),r._autoFlusher=new n.TaskHandler(c)}return __extends(t,e),Object.defineProperty(t.prototype,"maxSize",{get:function(){return this._maxSize},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"count",{get:function(){var e=this._pool;return e?e.length:0},enumerable:!0,configurable:!0}),t.prototype._trim=function(){for(var e=this._pool;e.length>this._maxSize;)o.dispose.withoutException(e.pop())},t.prototype.trim=function(e){this.throwIfDisposed(),this._trimmer.execute(e)},t.prototype._clear=function(){var e=this,t=e._pool;e._trimmer.cancel(),e._flusher.cancel(),e._autoFlusher.cancel(),o.dispose.these(t,!0),t.length=0},t.prototype.clear=function(e){this.throwIfDisposed(),this._flusher.execute(e)},t.prototype.toArrayAndClear=function(){var e=this;e.throwIfDisposed(),e._trimmer.cancel(),e._flusher.cancel();var t=e._pool;return e._pool=[],t},t.prototype.dump=function(){return this.toArrayAndClear()},t.prototype._onDispose=function(){e.prototype._onDispose.call(this);var t=this;t._generator=null,o.dispose(t._trimmer,t._flusher,t._autoFlusher),t._trimmer=null,t._flusher=null,t._autoFlusher=null,t._pool.length=0,t._pool=null},t.prototype.extendAutoClear=function(){var e=this;e.throwIfDisposed();var t=e.autoClearTimeout;isFinite(t)&&!e._autoFlusher.isScheduled&&e._autoFlusher.execute(t)},t.prototype.add=function(e){var t=this;if(t.throwIfDisposed(),t._pool.length>=t._localAbsMaxSize)o.dispose(e);else{t._pool.push(e);var r=t._maxSize;l>r&&t._pool.length>r&&t._trimmer.execute(500)}t.extendAutoClear()},t.prototype.take=function(){var e=this;e.throwIfDisposed();var t=e._pool.pop()||e._generator(),o=e._pool.length;return e._pool.length<=e._maxSize&&e._trimmer.cancel(),o&&e.extendAutoClear(),t},t}(r.DisposableBase);t.ObjectPool=c,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=c}); //# sourceMappingURL=ObjectPool.js.map diff --git a/dist/amd/System/Disposable/ObjectPool.js.map b/dist/amd/System/Disposable/ObjectPool.js.map index da830f7e..fc5b7399 100644 --- a/dist/amd/System/Disposable/ObjectPool.js.map +++ b/dist/amd/System/Disposable/ObjectPool.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Disposable/ObjectPool.js","System/Disposable/ObjectPool.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","dispose_1","DisposableBase_1","TaskHandler_1","ArgumentOutOfRangeException_1","OBJECT_POOL","_MAX_SIZE","ABSOLUTE_MAX_SIZE","MUST_BE_GT1","MUST_BE_LTM","ObjectPool","_super","_maxSize","_generator","call","autoClearTimeout","isNaN","_localAbsMaxSize","Math","min","_","_disposableObjectName","_pool","_trimmer","_trim","clear","_clear","_flusher","_autoFlusher","defineProperty","get","enumerable","configurable","length","pool","withoutException","pop","trim","defer","throwIfDisposed","execute","cancel","these","toArrayAndClear","dump","_onDispose","extendAutoClear","t","isFinite","isScheduled","add","o","push","m","take","e","len","value"],"mappings":"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","file":"System/Disposable/ObjectPool.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon ObjectPool from Parallel Extension Extras and other ObjectPool implementations.\n * Uses .add(T) and .take():T\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"./dispose\", \"./DisposableBase\", \"../Tasks/TaskHandler\", \"../Exceptions/ArgumentOutOfRangeException\"], function (require, exports, dispose_1, DisposableBase_1, TaskHandler_1, ArgumentOutOfRangeException_1) {\n \"use strict\";\n var OBJECT_POOL = \"ObjectPool\", _MAX_SIZE = \"_maxSize\", ABSOLUTE_MAX_SIZE = 65536, MUST_BE_GT1 = \"Must be at valid number least 1.\", MUST_BE_LTM = \"Must be less than or equal to \" + ABSOLUTE_MAX_SIZE + \".\";\n var ObjectPool = (function (_super) {\n __extends(ObjectPool, _super);\n function ObjectPool(_maxSize, _generator) {\n _super.call(this);\n this._maxSize = _maxSize;\n this._generator = _generator;\n this.autoClearTimeout = 5000;\n if (isNaN(_maxSize) || _maxSize < 1)\n throw new ArgumentOutOfRangeException_1.default(_MAX_SIZE, _maxSize, MUST_BE_GT1);\n if (_maxSize > ABSOLUTE_MAX_SIZE)\n throw new ArgumentOutOfRangeException_1.default(_MAX_SIZE, _maxSize, MUST_BE_LTM);\n this._localAbsMaxSize = Math.min(_maxSize * 2, ABSOLUTE_MAX_SIZE);\n var _ = this;\n _._disposableObjectName = OBJECT_POOL;\n _._pool = [];\n _._trimmer = new TaskHandler_1.default(function () { return _._trim(); });\n var clear = function () { return _._clear(); };\n _._flusher = new TaskHandler_1.default(clear);\n _._autoFlusher = new TaskHandler_1.default(clear);\n }\n Object.defineProperty(ObjectPool.prototype, \"maxSize\", {\n get: function () {\n return this._maxSize;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ObjectPool.prototype, \"count\", {\n get: function () {\n var p = this._pool;\n return p ? p.length : 0;\n },\n enumerable: true,\n configurable: true\n });\n ObjectPool.prototype._trim = function () {\n var pool = this._pool;\n while (pool.length > this._maxSize) {\n dispose_1.default.withoutException(pool.pop());\n }\n };\n ObjectPool.prototype.trim = function (defer) {\n this.throwIfDisposed();\n this._trimmer.execute(defer);\n };\n ObjectPool.prototype._clear = function () {\n var _ = this, p = _._pool;\n _._trimmer.cancel();\n _._flusher.cancel();\n _._autoFlusher.cancel();\n dispose_1.default.these(p, true);\n p.length = 0;\n };\n ObjectPool.prototype.clear = function (defer) {\n this.throwIfDisposed();\n this._flusher.execute(defer);\n };\n ObjectPool.prototype.toArrayAndClear = function () {\n var _ = this;\n _.throwIfDisposed();\n _._trimmer.cancel();\n _._flusher.cancel();\n var p = _._pool;\n _._pool = [];\n return p;\n };\n ObjectPool.prototype.dump = function () {\n return this.toArrayAndClear();\n };\n ObjectPool.prototype._onDispose = function () {\n _super.prototype._onDispose.call(this);\n var _ = this;\n _._generator = null;\n dispose_1.default(_._trimmer, _._flusher, _._autoFlusher);\n _._trimmer = null;\n _._flusher = null;\n _._autoFlusher = null;\n _._pool.length = 0;\n _._pool = null;\n };\n ObjectPool.prototype.extendAutoClear = function () {\n var _ = this;\n _.throwIfDisposed();\n var t = _.autoClearTimeout;\n if (isFinite(t) && !_._autoFlusher.isScheduled)\n _._autoFlusher.execute(t);\n };\n ObjectPool.prototype.add = function (o) {\n var _ = this;\n _.throwIfDisposed();\n if (_._pool.length >= _._localAbsMaxSize) {\n dispose_1.default(o);\n }\n else {\n _._pool.push(o);\n var m = _._maxSize;\n if (m < ABSOLUTE_MAX_SIZE && _._pool.length > m)\n _._trimmer.execute(500);\n }\n _.extendAutoClear();\n };\n ObjectPool.prototype.take = function () {\n var _ = this;\n _.throwIfDisposed();\n var e = _._pool.pop() || _._generator(), len = _._pool.length;\n if (_._pool.length <= _._maxSize)\n _._trimmer.cancel();\n if (len)\n _.extendAutoClear();\n return e;\n };\n return ObjectPool;\n }(DisposableBase_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ObjectPool;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon ObjectPool from Parallel Extension Extras and other ObjectPool implementations.\r\n * Uses .add(T) and .take():T\r\n */\r\n\r\nimport dispose from \"./dispose\";\r\nimport DisposableBase from \"./DisposableBase\";\r\nimport TaskHandler from \"../Tasks/TaskHandler\";\r\nimport ArgumentOutOfRangeException from \"../Exceptions/ArgumentOutOfRangeException\";\r\n\r\nconst\r\n\tOBJECT_POOL = \"ObjectPool\",\r\n\t_MAX_SIZE = \"_maxSize\",\r\n\tABSOLUTE_MAX_SIZE = 65536,\r\n\tMUST_BE_GT1 = \"Must be at valid number least 1.\",\r\n\tMUST_BE_LTM = `Must be less than or equal to ${ABSOLUTE_MAX_SIZE}.`;\r\n\r\nexport default class ObjectPool extends DisposableBase\r\n{\r\n\r\n\tprivate _pool:T[];\r\n\tprivate _trimmer:TaskHandler;\r\n\tprivate _flusher:TaskHandler;\r\n\tprivate _autoFlusher:TaskHandler;\r\n\r\n\t/**\r\n\t * A transient amount of object to exist over _maxSize until trim() is called.\r\n\t * But any added objects over _localAbsMaxSize will be disposed immediately.\r\n\t */\r\n\tprivate _localAbsMaxSize:number;\r\n\r\n\t/**\r\n\t * By default will clear after 5 seconds of non-use.\r\n\t */\r\n\tautoClearTimeout:number = 5000;\r\n\r\n\tconstructor(\r\n\t\tprivate _maxSize:number,\r\n\t\tprivate _generator:()=>T)\r\n\t{\r\n\t\tsuper();\r\n\t\tif(isNaN(_maxSize) || _maxSize<1)\r\n\t\t\tthrow new ArgumentOutOfRangeException(_MAX_SIZE, _maxSize, MUST_BE_GT1);\r\n\t\tif(_maxSize>ABSOLUTE_MAX_SIZE)\r\n\t\t\tthrow new ArgumentOutOfRangeException(_MAX_SIZE, _maxSize, MUST_BE_LTM);\r\n\r\n\t\tthis._localAbsMaxSize = Math.min(_maxSize*2, ABSOLUTE_MAX_SIZE);\r\n\r\n\t\tvar _ = this;\r\n\t\t_._disposableObjectName = OBJECT_POOL;\r\n\t\t_._pool = [];\r\n\t\t_._trimmer = new TaskHandler(()=>_._trim());\r\n\t\tvar clear = ()=>_._clear();\r\n\t\t_._flusher = new TaskHandler(clear);\r\n\t\t_._autoFlusher = new TaskHandler(clear);\r\n\t}\r\n\r\n\t/**\r\n\t * Defines the maximum at which trimming should allow.\r\n\t * @returns {number}\r\n\t */\r\n\tget maxSize():number\r\n\t{\r\n\t\treturn this._maxSize;\r\n\t}\r\n\r\n\t/**\r\n\t * Current number of objects in pool.\r\n\t * @returns {number}\r\n\t */\r\n\tget count():number\r\n\t{\r\n\t\tvar p = this._pool;\r\n\t\treturn p ? p.length : 0;\r\n\t}\r\n\r\n\tprotected _trim():void\r\n\t{\r\n\t\tvar pool = this._pool;\r\n\t\twhile(pool.length>this._maxSize)\r\n\t\t{\r\n\t\t\tdispose.withoutException(pool.pop());\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Will trim ensure the pool is less than the maxSize.\r\n\t * @param defer A delay before trimming. Will be overridden by later calls.\r\n\t */\r\n\ttrim(defer?:number):void\r\n\t{\r\n\t\tthis.throwIfDisposed();\r\n\t\tthis._trimmer.execute(defer);\r\n\t}\r\n\r\n\tprotected _clear():void\r\n\t{\r\n\t\tvar _ = this, p = _._pool;\r\n\t\t_._trimmer.cancel();\r\n\t\t_._flusher.cancel();\r\n\t\t_._autoFlusher.cancel();\r\n\t\tdispose.these(p, true);\r\n\t\tp.length = 0;\r\n\t}\r\n\r\n\t/**\r\n\t * Will clear out the pool.\r\n\t * Cancels any scheduled trims when executed.\r\n\t * @param defer A delay before clearing. Will be overridden by later calls.\r\n\t */\r\n\tclear(defer?:number):void\r\n\t{\r\n\t\tthis.throwIfDisposed();\r\n\t\tthis._flusher.execute(defer);\r\n\t}\r\n\r\n\ttoArrayAndClear():T[]\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\t_._trimmer.cancel();\r\n\t\t_._flusher.cancel();\r\n\t\tvar p = _._pool;\r\n\t\t_._pool = [];\r\n\t\treturn p;\r\n\t}\r\n\r\n\t/**\r\n\t * Shortcut for toArrayAndClear();\r\n\t */\r\n\tdump():T[]\r\n\t{\r\n\t\treturn this.toArrayAndClear();\r\n\t}\r\n\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tvar _ = this;\r\n\t\t_._generator = null;\r\n\t\tdispose(\r\n\t\t\t_._trimmer,\r\n\t\t\t_._flusher,\r\n\t\t\t_._autoFlusher\r\n\t\t);\r\n\t\t_._trimmer = null;\r\n\t\t_._flusher = null;\r\n\t\t_._autoFlusher = null;\r\n\r\n\t\t_._pool.length = 0;\r\n\t\t_._pool = null;\r\n\t}\r\n\r\n\textendAutoClear():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\tvar t = _.autoClearTimeout;\r\n\t\tif(isFinite(t) && !_._autoFlusher.isScheduled)\r\n\t\t\t_._autoFlusher.execute(t);\r\n\t}\r\n\r\n\tadd(o:T):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\tif(_._pool.length>=_._localAbsMaxSize)\r\n\t\t{\r\n\t\t\t// Getting too big, dispose immediately...\r\n\t\t\tdispose(o);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t_._pool.push(o);\r\n\t\t\tvar m = _._maxSize;\r\n\t\t\tif(mm)\r\n\t\t\t\t_._trimmer.execute(500);\r\n\t\t}\r\n\t\t_.extendAutoClear();\r\n\r\n\t}\r\n\r\n\ttake():T\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar e = _._pool.pop() || _._generator(),\r\n\t\t len = _._pool.length;\r\n\r\n\t\tif(_._pool.length<=_._maxSize)\r\n\t\t\t_._trimmer.cancel();\r\n\t\tif(len)\r\n\t\t\t_.extendAutoClear();\r\n\r\n\t\treturn e;\r\n\t}\r\n\r\n\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Disposable/ObjectPool.js","System/Disposable/ObjectPool.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","dispose_1","DisposableBase_1","TaskHandler_1","ArgumentOutOfRangeException_1","OBJECT_POOL","_MAX_SIZE","ABSOLUTE_MAX_SIZE","MUST_BE_GT1","MUST_BE_LTM","ObjectPool","_super","_maxSize","_generator","call","autoClearTimeout","isNaN","ArgumentOutOfRangeException","_localAbsMaxSize","Math","min","_","_disposableObjectName","_pool","_trimmer","TaskHandler","_trim","clear","_clear","_flusher","_autoFlusher","defineProperty","get","enumerable","configurable","length","pool","dispose","withoutException","pop","trim","defer","throwIfDisposed","execute","cancel","these","toArrayAndClear","dump","_onDispose","extendAutoClear","t","isFinite","isScheduled","add","o","push","m","take","e","len","DisposableBase","value"],"mappings":"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","file":"System/Disposable/ObjectPool.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon ObjectPool from Parallel Extension Extras and other ObjectPool implementations.\n * Uses .add(T) and .take():T\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"./dispose\", \"./DisposableBase\", \"../Tasks/TaskHandler\", \"../Exceptions/ArgumentOutOfRangeException\"], function (require, exports, dispose_1, DisposableBase_1, TaskHandler_1, ArgumentOutOfRangeException_1) {\n \"use strict\";\n var OBJECT_POOL = \"ObjectPool\", _MAX_SIZE = \"_maxSize\", ABSOLUTE_MAX_SIZE = 65536, MUST_BE_GT1 = \"Must be at valid number least 1.\", MUST_BE_LTM = \"Must be less than or equal to \" + ABSOLUTE_MAX_SIZE + \".\";\n var ObjectPool = (function (_super) {\n __extends(ObjectPool, _super);\n function ObjectPool(_maxSize, _generator) {\n _super.call(this);\n this._maxSize = _maxSize;\n this._generator = _generator;\n this.autoClearTimeout = 5000;\n if (isNaN(_maxSize) || _maxSize < 1)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(_MAX_SIZE, _maxSize, MUST_BE_GT1);\n if (_maxSize > ABSOLUTE_MAX_SIZE)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(_MAX_SIZE, _maxSize, MUST_BE_LTM);\n this._localAbsMaxSize = Math.min(_maxSize * 2, ABSOLUTE_MAX_SIZE);\n var _ = this;\n _._disposableObjectName = OBJECT_POOL;\n _._pool = [];\n _._trimmer = new TaskHandler_1.TaskHandler(function () { return _._trim(); });\n var clear = function () { return _._clear(); };\n _._flusher = new TaskHandler_1.TaskHandler(clear);\n _._autoFlusher = new TaskHandler_1.TaskHandler(clear);\n }\n Object.defineProperty(ObjectPool.prototype, \"maxSize\", {\n get: function () {\n return this._maxSize;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ObjectPool.prototype, \"count\", {\n get: function () {\n var p = this._pool;\n return p ? p.length : 0;\n },\n enumerable: true,\n configurable: true\n });\n ObjectPool.prototype._trim = function () {\n var pool = this._pool;\n while (pool.length > this._maxSize) {\n dispose_1.dispose.withoutException(pool.pop());\n }\n };\n ObjectPool.prototype.trim = function (defer) {\n this.throwIfDisposed();\n this._trimmer.execute(defer);\n };\n ObjectPool.prototype._clear = function () {\n var _ = this, p = _._pool;\n _._trimmer.cancel();\n _._flusher.cancel();\n _._autoFlusher.cancel();\n dispose_1.dispose.these(p, true);\n p.length = 0;\n };\n ObjectPool.prototype.clear = function (defer) {\n this.throwIfDisposed();\n this._flusher.execute(defer);\n };\n ObjectPool.prototype.toArrayAndClear = function () {\n var _ = this;\n _.throwIfDisposed();\n _._trimmer.cancel();\n _._flusher.cancel();\n var p = _._pool;\n _._pool = [];\n return p;\n };\n ObjectPool.prototype.dump = function () {\n return this.toArrayAndClear();\n };\n ObjectPool.prototype._onDispose = function () {\n _super.prototype._onDispose.call(this);\n var _ = this;\n _._generator = null;\n dispose_1.dispose(_._trimmer, _._flusher, _._autoFlusher);\n _._trimmer = null;\n _._flusher = null;\n _._autoFlusher = null;\n _._pool.length = 0;\n _._pool = null;\n };\n ObjectPool.prototype.extendAutoClear = function () {\n var _ = this;\n _.throwIfDisposed();\n var t = _.autoClearTimeout;\n if (isFinite(t) && !_._autoFlusher.isScheduled)\n _._autoFlusher.execute(t);\n };\n ObjectPool.prototype.add = function (o) {\n var _ = this;\n _.throwIfDisposed();\n if (_._pool.length >= _._localAbsMaxSize) {\n dispose_1.dispose(o);\n }\n else {\n _._pool.push(o);\n var m = _._maxSize;\n if (m < ABSOLUTE_MAX_SIZE && _._pool.length > m)\n _._trimmer.execute(500);\n }\n _.extendAutoClear();\n };\n ObjectPool.prototype.take = function () {\n var _ = this;\n _.throwIfDisposed();\n var e = _._pool.pop() || _._generator(), len = _._pool.length;\n if (_._pool.length <= _._maxSize)\n _._trimmer.cancel();\n if (len)\n _.extendAutoClear();\n return e;\n };\n return ObjectPool;\n }(DisposableBase_1.DisposableBase));\n exports.ObjectPool = ObjectPool;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ObjectPool;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon ObjectPool from Parallel Extension Extras and other ObjectPool implementations.\r\n * Uses .add(T) and .take():T\r\n */\r\n\r\nimport {dispose} from \"./dispose\";\r\nimport {DisposableBase} from \"./DisposableBase\";\r\nimport {TaskHandler} from \"../Tasks/TaskHandler\";\r\nimport {ArgumentOutOfRangeException} from \"../Exceptions/ArgumentOutOfRangeException\";\r\n\r\nconst\r\n\tOBJECT_POOL = \"ObjectPool\",\r\n\t_MAX_SIZE = \"_maxSize\",\r\n\tABSOLUTE_MAX_SIZE = 65536,\r\n\tMUST_BE_GT1 = \"Must be at valid number least 1.\",\r\n\tMUST_BE_LTM = `Must be less than or equal to ${ABSOLUTE_MAX_SIZE}.`;\r\n\r\nexport class ObjectPool extends DisposableBase\r\n{\r\n\r\n\tprivate _pool:T[];\r\n\tprivate _trimmer:TaskHandler;\r\n\tprivate _flusher:TaskHandler;\r\n\tprivate _autoFlusher:TaskHandler;\r\n\r\n\t/**\r\n\t * A transient amount of object to exist over _maxSize until trim() is called.\r\n\t * But any added objects over _localAbsMaxSize will be disposed immediately.\r\n\t */\r\n\tprivate _localAbsMaxSize:number;\r\n\r\n\t/**\r\n\t * By default will clear after 5 seconds of non-use.\r\n\t */\r\n\tautoClearTimeout:number = 5000;\r\n\r\n\tconstructor(\r\n\t\tprivate _maxSize:number,\r\n\t\tprivate _generator:()=>T)\r\n\t{\r\n\t\tsuper();\r\n\t\tif(isNaN(_maxSize) || _maxSize<1)\r\n\t\t\tthrow new ArgumentOutOfRangeException(_MAX_SIZE, _maxSize, MUST_BE_GT1);\r\n\t\tif(_maxSize>ABSOLUTE_MAX_SIZE)\r\n\t\t\tthrow new ArgumentOutOfRangeException(_MAX_SIZE, _maxSize, MUST_BE_LTM);\r\n\r\n\t\tthis._localAbsMaxSize = Math.min(_maxSize*2, ABSOLUTE_MAX_SIZE);\r\n\r\n\t\tvar _ = this;\r\n\t\t_._disposableObjectName = OBJECT_POOL;\r\n\t\t_._pool = [];\r\n\t\t_._trimmer = new TaskHandler(()=>_._trim());\r\n\t\tvar clear = ()=>_._clear();\r\n\t\t_._flusher = new TaskHandler(clear);\r\n\t\t_._autoFlusher = new TaskHandler(clear);\r\n\t}\r\n\r\n\t/**\r\n\t * Defines the maximum at which trimming should allow.\r\n\t * @returns {number}\r\n\t */\r\n\tget maxSize():number\r\n\t{\r\n\t\treturn this._maxSize;\r\n\t}\r\n\r\n\t/**\r\n\t * Current number of objects in pool.\r\n\t * @returns {number}\r\n\t */\r\n\tget count():number\r\n\t{\r\n\t\tvar p = this._pool;\r\n\t\treturn p ? p.length : 0;\r\n\t}\r\n\r\n\tprotected _trim():void\r\n\t{\r\n\t\tvar pool = this._pool;\r\n\t\twhile(pool.length>this._maxSize)\r\n\t\t{\r\n\t\t\tdispose.withoutException(pool.pop());\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Will trim ensure the pool is less than the maxSize.\r\n\t * @param defer A delay before trimming. Will be overridden by later calls.\r\n\t */\r\n\ttrim(defer?:number):void\r\n\t{\r\n\t\tthis.throwIfDisposed();\r\n\t\tthis._trimmer.execute(defer);\r\n\t}\r\n\r\n\tprotected _clear():void\r\n\t{\r\n\t\tvar _ = this, p = _._pool;\r\n\t\t_._trimmer.cancel();\r\n\t\t_._flusher.cancel();\r\n\t\t_._autoFlusher.cancel();\r\n\t\tdispose.these(p, true);\r\n\t\tp.length = 0;\r\n\t}\r\n\r\n\t/**\r\n\t * Will clear out the pool.\r\n\t * Cancels any scheduled trims when executed.\r\n\t * @param defer A delay before clearing. Will be overridden by later calls.\r\n\t */\r\n\tclear(defer?:number):void\r\n\t{\r\n\t\tthis.throwIfDisposed();\r\n\t\tthis._flusher.execute(defer);\r\n\t}\r\n\r\n\ttoArrayAndClear():T[]\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\t_._trimmer.cancel();\r\n\t\t_._flusher.cancel();\r\n\t\tvar p = _._pool;\r\n\t\t_._pool = [];\r\n\t\treturn p;\r\n\t}\r\n\r\n\t/**\r\n\t * Shortcut for toArrayAndClear();\r\n\t */\r\n\tdump():T[]\r\n\t{\r\n\t\treturn this.toArrayAndClear();\r\n\t}\r\n\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tvar _ = this;\r\n\t\t_._generator = null;\r\n\t\tdispose(\r\n\t\t\t_._trimmer,\r\n\t\t\t_._flusher,\r\n\t\t\t_._autoFlusher\r\n\t\t);\r\n\t\t_._trimmer = null;\r\n\t\t_._flusher = null;\r\n\t\t_._autoFlusher = null;\r\n\r\n\t\t_._pool.length = 0;\r\n\t\t_._pool = null;\r\n\t}\r\n\r\n\textendAutoClear():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\tvar t = _.autoClearTimeout;\r\n\t\tif(isFinite(t) && !_._autoFlusher.isScheduled)\r\n\t\t\t_._autoFlusher.execute(t);\r\n\t}\r\n\r\n\tadd(o:T):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\tif(_._pool.length>=_._localAbsMaxSize)\r\n\t\t{\r\n\t\t\t// Getting too big, dispose immediately...\r\n\t\t\tdispose(o);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t_._pool.push(o);\r\n\t\t\tvar m = _._maxSize;\r\n\t\t\tif(mm)\r\n\t\t\t\t_._trimmer.execute(500);\r\n\t\t}\r\n\t\t_.extendAutoClear();\r\n\r\n\t}\r\n\r\n\ttake():T\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar e = _._pool.pop() || _._generator(),\r\n\t\t len = _._pool.length;\r\n\r\n\t\tif(_._pool.length<=_._maxSize)\r\n\t\t\t_._trimmer.cancel();\r\n\t\tif(len)\r\n\t\t\t_.extendAutoClear();\r\n\r\n\t\treturn e;\r\n\t}\r\n\r\n\r\n}\r\n\r\nexport default ObjectPool;\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Disposable/dispose.d.ts b/dist/amd/System/Disposable/dispose.d.ts index ea01844c..e1a6bf42 100644 --- a/dist/amd/System/Disposable/dispose.d.ts +++ b/dist/amd/System/Disposable/dispose.d.ts @@ -1,9 +1,8 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { IDisposable } from "./IDisposable"; export declare function dispose(...disposables: IDisposable[]): void; export declare module dispose { function deferred(...disposables: IDisposable[]): void; diff --git a/dist/amd/System/Disposable/dispose.js b/dist/amd/System/Disposable/dispose.js index 34964700..dc2e9df8 100644 --- a/dist/amd/System/Disposable/dispose.js +++ b/dist/amd/System/Disposable/dispose.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -define(["require","exports","../Types"],function(e,n,t){"use strict";function r(){for(var e=[],n=0;nt;t++){var u=e[t];if(u)if(n){var s=o(u,!0);s&&(r||(r=[]),r.push(s))}else{var l=!1;try{o(u,!1),l=!0}finally{!l&&i>t+1&&f(e,!1,t+1)}if(!l)break}}return r}n.dispose=r;var r;!function(e){function n(){for(var e=[],n=0;n=0||(n=0),setTimeout(f,n,e.slice(),!0))}e.deferred=n}(r=e.these||(e.these={}))}(r=n.dispose||(n.dispose={})),n.using=i,Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r}); +define(["require","exports","../Types"],function(e,n,r){"use strict";function t(){for(var e=[],n=0;nr;r++){var u=e[r];if(u)if(n){var s=o(u,!0);s&&(t||(t=[]),t.push(s))}else{var l=!1;try{o(u,!1),l=!0}finally{!l&&i>r+1&&f(e,!1,r+1)}if(!l)break}}return t}n.dispose=t;var t;!function(e){function n(){for(var e=[],n=0;n=0||(n=0),setTimeout(f,n,e.slice(),!0))}e.deferred=n}(t=e.these||(e.these={}))}(t=n.dispose||(n.dispose={})),n.using=i,Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=t}); //# sourceMappingURL=dispose.js.map diff --git a/dist/amd/System/Disposable/dispose.js.map b/dist/amd/System/Disposable/dispose.js.map index 4895d343..91cb4c3c 100644 --- a/dist/amd/System/Disposable/dispose.js.map +++ b/dist/amd/System/Disposable/dispose.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Disposable/dispose.js","System/Disposable/dispose.ts"],"names":["define","require","exports","Types_1","dispose","disposables","_i","arguments","length","disposeTheseInternal","using","disposable","closure","disposeSingle","trapExceptions","of","member","isFunction","ex","index","exceptions","len","next","push","success","deferred","these","withoutException","slice","delay","setTimeout","Object","defineProperty","value"],"mappings":";;;;AAIAA,QAAQ,UAAW,UAAW,YAAa,SAAUC,EAASC,EAASC,GCGvE,YAYA,SAAAC,KDXQ,ICWgB,GAAAC,MAAAC,EAAA,EAAAA,EAAAC,UAAAC,OAAAF,IAAAD,EAAAC,EAAA,GAAAC,UAAAD,EAGvBG,GAAqBJ,GAAa,GA6DnC,QAAAK,GACCC,EACAC,GAEA,IAEC,MAAOA,GAAQD,GDlCT,QCsCNE,EAAcF,GAAY,IAS5B,QAAAE,GACCF,EACAG,GAEA,GAAGH,GAAcR,EAAAA,WAAKY,GAAGJ,GAAYK,OAAO,WAAWC,WAEtD,GAAGH,EAEF,IAECH,EAAWP,UAEZ,MAAMc,GAEL,MAAOA,OAIRP,GAAWP,SAGb,OAAO,MAMR,QAAAK,GACCJ,EACAS,EACAK,GAAA,SAAAA,IAAAA,EAAA,EAKA,KAHA,GAAIC,GACAC,EAAMhB,EAAYG,OAEVa,EAANF,EAAWA,IACjB,CACC,GAAIG,GAAOjB,EAAYc,EACvB,IAAIG,EACJ,GAAGR,EACH,CACC,GAAII,GAAKL,EAAcS,GAAM,EAC1BJ,KAEEE,IAAYA,MAChBA,EAAWG,KAAKL,QAIlB,CACC,GAAIM,IAAU,CACd,KAECX,EAAcS,GAAM,GACpBE,GAAU,ED3DE,SCgERA,GAAqBH,EAAVF,EAAQ,GAItBV,EAAqBJ,GAAa,EAAOc,EAAQ,GAInD,IAAIK,EAAS,OAIf,MAAOJ,GA1JQlB,EAAAE,QAAOA,CAMvB,IAAcA,IAAd,SAAcA,GAEb,QAAAqB,KDTW,ICSc,GAAApB,MAAAC,EAAA,EAAAA,EAAAC,UAAAC,OAAAF,IAAAD,EAAAC,EAAA,GAAAC,UAAAD,EACxBoB,GAAMD,SAASpB,GAUhB,QAAAsB,KDZW,ICYsB,GAAAtB,MAAAC,EAAA,EAAAA,EAAAC,UAAAC,OAAAF,IAAAD,EAAAC,EAAA,GAAAC,UAAAD,EAGhC,OAAOG,GAAqBJ,GAAa,GAS1C,QAAAqB,GAAsBrB,EAA2BS,GAEhD,MAAOT,IAAeA,EAAYG,OAC/BC,EAAqBJ,EAAYuB,QAASd,GAC1C,KA3BYV,EAAAqB,SAAQA,EAWRrB,EAAAuB,iBAAgBA,EAYhBvB,EAAAsB,MAAKA,CAOrB,IAAcA,IAAd,SAAcA,GACb,QAAAD,GAAyBpB,EAA2BwB,GAAA,SAAAA,IAAAA,EAAA,GAChDxB,GAAeA,EAAYG,SACxBqB,GAAO,IAAIA,EAAQ,GACxBC,WAAWrB,EAAqBoB,EAAMxB,EAAYuB,SAAS,IAH7CF,EAAAD,SAAQA,GADXC,EAAAtB,EAAAsB,QAAAtB,EAAAsB,YAhCDtB,EAAAF,EAAAE,UAAAF,EAAAE,aA0DEF,EAAAQ,MAAKA,EA6FrBqB,OAAAC,eAAA9B,EAAA,cAAA+B,OAAA,IDnEI/B,EAAAA,WCmEWE","file":"System/Disposable/dispose.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\", \"../Types\"], function (require, exports, Types_1) {\n 'use strict';\n function dispose() {\n var disposables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n disposables[_i - 0] = arguments[_i];\n }\n disposeTheseInternal(disposables, false);\n }\n exports.dispose = dispose;\n var dispose;\n (function (dispose) {\n function deferred() {\n var disposables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n disposables[_i - 0] = arguments[_i];\n }\n these.deferred(disposables);\n }\n dispose.deferred = deferred;\n function withoutException() {\n var disposables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n disposables[_i - 0] = arguments[_i];\n }\n return disposeTheseInternal(disposables, true);\n }\n dispose.withoutException = withoutException;\n function these(disposables, trapExceptions) {\n return disposables && disposables.length\n ? disposeTheseInternal(disposables.slice(), trapExceptions)\n : null;\n }\n dispose.these = these;\n var these;\n (function (these) {\n function deferred(disposables, delay) {\n if (delay === void 0) { delay = 0; }\n if (disposables && disposables.length) {\n if (!(delay >= 0))\n delay = 0;\n setTimeout(disposeTheseInternal, delay, disposables.slice(), true);\n }\n }\n these.deferred = deferred;\n })(these = dispose.these || (dispose.these = {}));\n })(dispose = exports.dispose || (exports.dispose = {}));\n function using(disposable, closure) {\n try {\n return closure(disposable);\n }\n finally {\n disposeSingle(disposable, false);\n }\n }\n exports.using = using;\n function disposeSingle(disposable, trapExceptions) {\n if (disposable && Types_1.default.of(disposable).member('dispose').isFunction) {\n if (trapExceptions) {\n try {\n disposable.dispose();\n }\n catch (ex) {\n return ex;\n }\n }\n else\n disposable.dispose();\n }\n return null;\n }\n function disposeTheseInternal(disposables, trapExceptions, index) {\n if (index === void 0) { index = 0; }\n var exceptions;\n var len = disposables.length;\n for (; index < len; index++) {\n var next = disposables[index];\n if (!next)\n continue;\n if (trapExceptions) {\n var ex = disposeSingle(next, true);\n if (ex) {\n if (!exceptions)\n exceptions = [];\n exceptions.push(ex);\n }\n }\n else {\n var success = false;\n try {\n disposeSingle(next, false);\n success = true;\n }\n finally {\n if (!success && index + 1 < len) {\n disposeTheseInternal(disposables, false, index + 1);\n }\n }\n if (!success)\n break;\n }\n }\n return exceptions;\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = dispose;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport Type from \"../Types\";\r\n\r\n/**\r\n * Takes any number of disposables as arguments and attempts to dispose them.\r\n * Any exceptions thrown within a dispose are not trapped.\r\n * Use 'disposeWithoutException' to automatically trap exceptions.\r\n *\r\n * Can accept and will ignore objects that don't have a dispose() method.\r\n * @param disposables\r\n */\r\nexport function dispose(...disposables:IDisposable[]):void\r\n{\r\n\t// The disposables arguments array is effectively localized so it's safe.\r\n\tdisposeTheseInternal(disposables, false);\r\n}\r\n\r\nexport module dispose {\r\n\r\n\texport function deferred(...disposables:IDisposable[]):void {\r\n\t\tthese.deferred(disposables);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Takes any number of disposables and traps any errors that occur when disposing.\r\n\t * Returns an array of the exceptions thrown.\r\n\t * @param disposables\r\n\t * @returns {any[]} Returns an array of exceptions that occurred, if there are any.\r\n\t */\r\n\texport function withoutException(...disposables:IDisposable[]):any[]\r\n\t{\r\n\t\t// The disposables arguments array is effectively localized so it's safe.\r\n\t\treturn disposeTheseInternal(disposables, true);\r\n\t}\r\n\r\n\t/**\r\n\t * Takes an array of disposable objects and ensures they are disposed.\r\n\t * @param disposables\r\n\t * @param trapExceptions If true, prevents exceptions from being thrown when disposing.\r\n\t * @returns {any[]} If 'trapExceptions' is true, returns an array of exceptions that occurred, if there are any.\r\n\t */\r\n\texport function these(disposables:IDisposable[], trapExceptions?:boolean):any[]\r\n\t{\r\n\t\treturn disposables && disposables.length\r\n\t\t\t? disposeTheseInternal(disposables.slice(), trapExceptions)\r\n\t\t\t: null;\r\n\t}\r\n\r\n\texport module these {\r\n\t\texport function deferred(disposables:IDisposable[], delay:number = 0):void {\r\n\t\t\tif(disposables && disposables.length) {\r\n\t\t\t\tif(!(delay>=0)) delay = 0;\r\n\t\t\t\tsetTimeout(disposeTheseInternal,delay,disposables.slice(), true);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Just like in C# this 'using' function will ensure the passed disposable is disposed when the closure has finished.\r\n *\r\n * Usage:\r\n * ```typescript\r\n * using(new DisposableObject(),(myObj)=>{\r\n * // do work with myObj\r\n * });\r\n * // myObj automatically has it's dispose method called.\r\n * ```\r\n *\r\n * @param disposable Object to be disposed.\r\n * @param closure Function call to execute.\r\n * @returns {TReturn} Returns whatever the closure's return value is.\r\n */\r\nexport function using(\r\n\tdisposable:TDisposable,\r\n\tclosure:(disposable:TDisposable) => TReturn):TReturn\r\n{\r\n\ttry\r\n\t{\r\n\t\treturn closure(disposable);\r\n\t}\r\n\tfinally\r\n\t{\r\n\t\tdisposeSingle(disposable, false);\r\n\t}\r\n}\r\n\r\n\r\n/**\r\n * This private function makes disposing more robust for when there's no type checking.\r\n * If trapExceptions is 'true' it catches and returns any exception instead of throwing.\r\n */\r\nfunction disposeSingle(\r\n\tdisposable:IDisposable,\r\n\ttrapExceptions:boolean):any\r\n{\r\n\tif(disposable && Type.of(disposable).member('dispose').isFunction)\r\n\t{\r\n\t\tif(trapExceptions)\r\n\t\t{\r\n\t\t\ttry\r\n\t\t\t{\r\n\t\t\t\tdisposable.dispose();\r\n\t\t\t}\r\n\t\t\tcatch(ex)\r\n\t\t\t{\r\n\t\t\t\treturn ex;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse\r\n\t\t\tdisposable.dispose();\r\n\t}\r\n\r\n\treturn null;\r\n}\r\n\r\n/**\r\n * This dispose method assumes it's working on a local copy and is unsafe for external use.\r\n */\r\nfunction disposeTheseInternal(\r\n\tdisposables:IDisposable[],\r\n\ttrapExceptions:boolean,\r\n\tindex:number = 0):any[]\r\n{\r\n\tvar exceptions:any[];\r\n\tvar len = disposables.length;\r\n\r\n\tfor(; index= 0))\n delay = 0;\n setTimeout(disposeTheseInternal, delay, disposables.slice(), true);\n }\n }\n these.deferred = deferred;\n })(these = dispose.these || (dispose.these = {}));\n })(dispose = exports.dispose || (exports.dispose = {}));\n function using(disposable, closure) {\n try {\n return closure(disposable);\n }\n finally {\n disposeSingle(disposable, false);\n }\n }\n exports.using = using;\n function disposeSingle(disposable, trapExceptions) {\n if (disposable && Types_1.Type.of(disposable).member('dispose').isFunction) {\n if (trapExceptions) {\n try {\n disposable.dispose();\n }\n catch (ex) {\n return ex;\n }\n }\n else\n disposable.dispose();\n }\n return null;\n }\n function disposeTheseInternal(disposables, trapExceptions, index) {\n if (index === void 0) { index = 0; }\n var exceptions;\n var len = disposables.length;\n for (; index < len; index++) {\n var next = disposables[index];\n if (!next)\n continue;\n if (trapExceptions) {\n var ex = disposeSingle(next, true);\n if (ex) {\n if (!exceptions)\n exceptions = [];\n exceptions.push(ex);\n }\n }\n else {\n var success = false;\n try {\n disposeSingle(next, false);\n success = true;\n }\n finally {\n if (!success && index + 1 < len) {\n disposeTheseInternal(disposables, false, index + 1);\n }\n }\n if (!success)\n break;\n }\n }\n return exceptions;\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = dispose;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {Type} from \"../Types\";\r\nimport {IDisposable} from \"./IDisposable\";\r\n\r\n/**\r\n * Takes any number of disposables as arguments and attempts to dispose them.\r\n * Any exceptions thrown within a dispose are not trapped.\r\n * Use 'disposeWithoutException' to automatically trap exceptions.\r\n *\r\n * Can accept and will ignore objects that don't have a dispose() method.\r\n * @param disposables\r\n */\r\nexport function dispose(...disposables:IDisposable[]):void\r\n{\r\n\t// The disposables arguments array is effectively localized so it's safe.\r\n\tdisposeTheseInternal(disposables, false);\r\n}\r\n\r\nexport module dispose {\r\n\r\n\texport function deferred(...disposables:IDisposable[]):void {\r\n\t\tthese.deferred(disposables);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Takes any number of disposables and traps any errors that occur when disposing.\r\n\t * Returns an array of the exceptions thrown.\r\n\t * @param disposables\r\n\t * @returns {any[]} Returns an array of exceptions that occurred, if there are any.\r\n\t */\r\n\texport function withoutException(...disposables:IDisposable[]):any[]\r\n\t{\r\n\t\t// The disposables arguments array is effectively localized so it's safe.\r\n\t\treturn disposeTheseInternal(disposables, true);\r\n\t}\r\n\r\n\t/**\r\n\t * Takes an array of disposable objects and ensures they are disposed.\r\n\t * @param disposables\r\n\t * @param trapExceptions If true, prevents exceptions from being thrown when disposing.\r\n\t * @returns {any[]} If 'trapExceptions' is true, returns an array of exceptions that occurred, if there are any.\r\n\t */\r\n\texport function these(disposables:IDisposable[], trapExceptions?:boolean):any[]\r\n\t{\r\n\t\treturn disposables && disposables.length\r\n\t\t\t? disposeTheseInternal(disposables.slice(), trapExceptions)\r\n\t\t\t: null;\r\n\t}\r\n\r\n\texport module these {\r\n\t\texport function deferred(disposables:IDisposable[], delay:number = 0):void {\r\n\t\t\tif(disposables && disposables.length) {\r\n\t\t\t\tif(!(delay>=0)) delay = 0;\r\n\t\t\t\tsetTimeout(disposeTheseInternal,delay,disposables.slice(), true);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Just like in C# this 'using' function will ensure the passed disposable is disposed when the closure has finished.\r\n *\r\n * Usage:\r\n * ```typescript\r\n * using(new DisposableObject(),(myObj)=>{\r\n * // do work with myObj\r\n * });\r\n * // myObj automatically has it's dispose method called.\r\n * ```\r\n *\r\n * @param disposable Object to be disposed.\r\n * @param closure Function call to execute.\r\n * @returns {TReturn} Returns whatever the closure's return value is.\r\n */\r\nexport function using(\r\n\tdisposable:TDisposable,\r\n\tclosure:(disposable:TDisposable) => TReturn):TReturn\r\n{\r\n\ttry\r\n\t{\r\n\t\treturn closure(disposable);\r\n\t}\r\n\tfinally\r\n\t{\r\n\t\tdisposeSingle(disposable, false);\r\n\t}\r\n}\r\n\r\n\r\n/**\r\n * This private function makes disposing more robust for when there's no type checking.\r\n * If trapExceptions is 'true' it catches and returns any exception instead of throwing.\r\n */\r\nfunction disposeSingle(\r\n\tdisposable:IDisposable,\r\n\ttrapExceptions:boolean):any\r\n{\r\n\tif(disposable && Type.of(disposable).member('dispose').isFunction)\r\n\t{\r\n\t\tif(trapExceptions)\r\n\t\t{\r\n\t\t\ttry\r\n\t\t\t{\r\n\t\t\t\tdisposable.dispose();\r\n\t\t\t}\r\n\t\t\tcatch(ex)\r\n\t\t\t{\r\n\t\t\t\treturn ex;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse\r\n\t\t\tdisposable.dispose();\r\n\t}\r\n\r\n\treturn null;\r\n}\r\n\r\n/**\r\n * This dispose method assumes it's working on a local copy and is unsafe for external use.\r\n */\r\nfunction disposeTheseInternal(\r\n\tdisposables:IDisposable[],\r\n\ttrapExceptions:boolean,\r\n\tindex:number = 0):any[]\r\n{\r\n\tvar exceptions:any[];\r\n\tvar len = disposables.length;\r\n\r\n\tfor(; index -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import DisposableBase from "../Disposable/DisposableBase"; -import EventDispatcherEntry from "./EventDispatcherEntry"; +import { DisposableBase } from "../Disposable/DisposableBase"; +import { IEventListener } from "./IEventListener"; +import { EventDispatcherEntry } from "./EventDispatcherEntry"; +import { IEventDispatcher } from "./IEventDispatcher"; export interface IEventBase { type: string; target: TTarget; diff --git a/dist/amd/System/Events/EventDispatcherBase.js b/dist/amd/System/Events/EventDispatcherBase.js index f9601618..c19ddbd9 100644 --- a/dist/amd/System/Events/EventDispatcherBase.js +++ b/dist/amd/System/Events/EventDispatcherBase.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(t,e){function i(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)};define(["require","exports","../Utility/shallowCopy","../Disposable/DisposableBase","../Collections/Array/Utility","./EventDispatcherEntry","../Disposable/dispose"],function(t,e,i,r,n,s,o){"use strict";function p(){var t=this.params;t.dispatcher.removeEntry(this),t.dispatcher=null}var a="disposing",c="disposed",u=function(t){function e(){t.apply(this,arguments),this._isDisposing=!1}return __extends(e,t),e.prototype.addEventListener=function(t,e,i){void 0===i&&(i=0);var r=this._entries;r||(this._entries=r=[]),r.push(new s["default"](t,e,{priority:i||0,dispatcher:this},p))},e.prototype.removeEntry=function(t){return!!this._entries&&0!=n.remove(this._entries,t)},e.prototype.registerEventListener=function(t,e,i){void 0===i&&(i=0),this.hasEventListener(t,e)||this.addEventListener(t,e,i)},e.prototype.hasEventListener=function(t,e){var i=this._entries;return i&&i.some(function(i){return t==i.type&&(!e||e==i.listener)})},e.prototype.removeEventListener=function(t,e){o["default"].these(this._entries.filter(function(i){return i.matches(t,e)}))},e.prototype.dispatchEvent=function(t,e){var r=this,n=this,s=n._entries;if(!s||!s.length)return!1;var o;"string"==typeof t?(o=Event&&Object.create(Event)||{},e||(e={}),e.cancellable&&(o.cancellable=!0),o.target=n,o.type=t):o=t;var p=o.type,a=s.filter(function(t){return t.type==p});return a.length?(a.sort(function(t,e){return e.params.priority-t.params.priority}),a.forEach(function(t){var e=Object.create(Event);i["default"](o,e),e.target=r,t.dispatch(e)}),!0):!1},Object.defineProperty(e,"DISPOSING",{get:function(){return a},enumerable:!0,configurable:!0}),Object.defineProperty(e,"DISPOSED",{get:function(){return c},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isDisposing",{get:function(){return this._isDisposing},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){var e=this;if(!e.wasDisposed&&!e._isDisposing){e._isDisposing=!0,e.dispatchEvent(a),t.prototype.dispose.call(this),e.dispatchEvent(c);var i=e._entries;i&&(this._entries=null,i.forEach(function(t){return t.dispose()}))}},e}(r["default"]);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=u}); +var __extends=this&&this.__extends||function(e,t){function i(){this.constructor=e}for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)};define(["require","exports","../Collections/Array/Utility","../Utility/shallowCopy","../Disposable/DisposableBase","../Disposable/dispose","./EventDispatcherEntry"],function(e,t,i,r,n,s,o){"use strict";function p(){var e=this.params;e.dispatcher.removeEntry(this),e.dispatcher=null}var a="disposing",c="disposed",u=function(e){function t(){e.apply(this,arguments),this._isDisposing=!1}return __extends(t,e),t.prototype.addEventListener=function(e,t,i){void 0===i&&(i=0);var r=this._entries;r||(this._entries=r=[]),r.push(new o.EventDispatcherEntry(e,t,{priority:i||0,dispatcher:this},p))},t.prototype.removeEntry=function(e){return!!this._entries&&0!=i.remove(this._entries,e)},t.prototype.registerEventListener=function(e,t,i){void 0===i&&(i=0),this.hasEventListener(e,t)||this.addEventListener(e,t,i)},t.prototype.hasEventListener=function(e,t){var i=this._entries;return i&&i.some(function(i){return e==i.type&&(!t||t==i.listener)})},t.prototype.removeEventListener=function(e,t){s.dispose.these(this._entries.filter(function(i){return i.matches(e,t)}))},t.prototype.dispatchEvent=function(e,t){var i=this,n=this,s=n._entries;if(!s||!s.length)return!1;var o;"string"==typeof e?(o=Event&&Object.create(Event)||{},t||(t={}),t.cancellable&&(o.cancellable=!0),o.target=n,o.type=e):o=e;var p=o.type,a=s.filter(function(e){return e.type==p});return a.length?(a.sort(function(e,t){return t.params.priority-e.params.priority}),a.forEach(function(e){var t=Object.create(Event);r.shallowCopy(o,t),t.target=i,e.dispatch(t)}),!0):!1},Object.defineProperty(t,"DISPOSING",{get:function(){return a},enumerable:!0,configurable:!0}),Object.defineProperty(t,"DISPOSED",{get:function(){return c},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isDisposing",{get:function(){return this._isDisposing},enumerable:!0,configurable:!0}),t.prototype.dispose=function(){var t=this;if(!t.wasDisposed&&!t._isDisposing){t._isDisposing=!0,t.dispatchEvent(a),e.prototype.dispose.call(this),t.dispatchEvent(c);var i=t._entries;i&&(this._entries=null,i.forEach(function(e){return e.dispose()}))}},t}(n.DisposableBase);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=u}); //# sourceMappingURL=EventDispatcherBase.js.map diff --git a/dist/amd/System/Events/EventDispatcherBase.js.map b/dist/amd/System/Events/EventDispatcherBase.js.map index f2f60477..3aa0c0fd 100644 --- a/dist/amd/System/Events/EventDispatcherBase.js.map +++ b/dist/amd/System/Events/EventDispatcherBase.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Events/EventDispatcherBase.js","System/Events/EventDispatcherBase.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","shallowCopy_1","DisposableBase_1","AU","EventDispatcherEntry_1","dispose_1","entryFinalizer","params","dispatcher","removeEntry","DISPOSING","DISPOSED","EventDispatcherBase","_super","apply","arguments","_isDisposing","addEventListener","type","listener","priority","e","_entries","push","entry","remove","registerEventListener","hasEventListener","some","value","removeEventListener","these","filter","matches","dispatchEvent","_this","_","l","length","event","Event","cancellable","target","entries","sort","a","forEach","newEvent","dispatch","defineProperty","get","enumerable","configurable","dispose","wasDisposed","call"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,yBAA0B,+BAAgC,+BAAgC,yBAA0B,yBAA0B,SAAUC,EAASC,EAASC,EAAeC,EAAkBC,EAAIC,EAAwBC,GCArQ,YA6BA,SAAAC,KAEC,GAAIb,GAAiBL,KAAKmB,MAC1Bd,GAAEe,WAAWC,YAAYrB,MACzBK,EAAEe,WAAa,KAxBhB,GAAME,GAAmB,YACnBC,EAAmB,WA0BzBC,EAAA,SAAAC,GAAA,QAAAD,KACkCC,EAAAC,MAAA1B,KAAA2B,WA2GzB3B,KAAA4B,cAAuB,EA+BhC,MA1IkC7B,WAAAyB,EAAAC,GAKjCD,EAAAjB,UAAAsB,iBAAA,SACCC,EACAC,EACAC,GAAA,SAAAA,IAAAA,EAAA,EAEA,IAAIC,GAAIjC,KAAKkC,QACTD,KAAGjC,KAAKkC,SAAWD,MAIvBA,EAAEE,KACD,GAAInB,GAAAA,WAAqBc,EAAMC,GAC7BC,SAAUA,GAAY,EACtBZ,WAAYpB,MAEbkB,KAGHM,EAAAjB,UAAAc,YAAA,SAAYe,GAEX,QAASpC,KAAKkC,UAA6C,GAAjCnB,EAAGsB,OAAOrC,KAAKkC,SAAUE,IAIpDZ,EAAAjB,UAAA+B,sBAAA,SACCR,EACAC,EACAC,GAAA,SAAAA,IAAAA,EAAA,GAEIhC,KAAKuC,iBAAiBT,EAAMC,IAC/B/B,KAAK6B,iBAAiBC,EAAMC,EAAUC,IAGxCR,EAAAjB,UAAAgC,iBAAA,SAAiBT,EAAaC,GAE7B,GAAIE,GAAIjC,KAAKkC,QACb,OAAOD,IAAKA,EAAEO,KACZ,SAACC,GACD,MAAAX,IAAMW,EAAMX,QAAUC,GAAYA,GAAUU,EAAMV,aAIrDP,EAAAjB,UAAAmC,oBAAA,SACCZ,EACAC,GAEAd,EAAAA,WAAQ0B,MAAM3C,KAAKkC,SAASU,OAAO,SAAAR,GAAQ,MAAAA,GAAMS,QAAQf,EAAMC,OAKhEP,EAAAjB,UAAAuC,cAAA,SAAcb,EAAOd,GAArB,GAAA4B,GAAA/C,KAGKgD,EAAIhD,KAAMiD,EAAID,EAAEd,QACpB,KAAIe,IAAMA,EAAEC,OACX,OAAO,CAER,IAAIC,EAES,iBAAHlB,IAETkB,EAAQC,OAAS5C,OAAOC,OAAO2C,WAC3BjC,IACHA,MACEA,EAAoB,cAChBgC,EAAOE,aAAc,GAC5BF,EAAMG,OAASN,EACfG,EAAMrB,KAAOG,GAGbkB,EAAQlB,CAET,IAAIH,GAAOqB,EAAMrB,KAGbyB,EAA+CN,EAAEL,OAAO,SAAAX,GAAG,MAAAA,GAAEH,MAAMA,GACvE,OAAIyB,GAAQL,QAGZK,EAAQC,KAAK,SAACC,EAAGvD,GAAK,MAAAA,GAAEiB,OAAOa,SAAWyB,EAAEtC,OAAOa,WAGnDuB,EAAQG,QACP,SAAAtB,GAEC,GAAIuB,GAAWnD,OAAOC,OAAO2C,MAC7BvC,GAAAA,WAAYsC,EAAOQ,GACnBA,EAASL,OAASP,EAClBX,EAAMwB,SAASD,MAIV,IAfC,GAmBTnD,OAAAqD,eAAWrC,EAAA,aDnEAsC,ICmEX,WAAyB,MAAOxC,IDlErByC,YAAY,EACZC,cAAc,ICmEzBxD,OAAAqD,eAAWrC,EAAA,YDhEAsC,ICgEX,WAAwB,MAAOvC,ID/DpBwC,YAAY,EACZC,cAAc,ICkEzBxD,OAAAqD,eAAIrC,EAAAjB,UAAA,eD/DOuD,IC+DX,WAEC,MAAO9D,MAAK4B,cD9DFmC,YAAY,EACZC,cAAc,ICiElBxC,EAAAjB,UAAA0D,QAAP,WAIC,GAAIjB,GAAIhD,IACR,KAAIgD,EAAEkB,cAAgBlB,EAAEpB,aACxB,CACCoB,EAAEpB,cAAe,EACjBoB,EAAEF,cAAcxB,GAEhBG,EAAAlB,UAAM0D,QAAOE,KAAAnE,MAEbgD,EAAEF,cAAcvB,EAEhB,IAAI0B,GAAID,EAAEd,QACPe,KAEFjD,KAAKkC,SAAW,KAChBe,EAAES,QAAQ,SAAAzB,GAAI,MAAAA,GAAEgC,eAMpBzC,GA1IkCV,EAAAA,WADlCN,QAAAqD,eAAAjD,EAAA,cAAA6B,OAAA,IDqEI7B,EAAAA,WAAkBY","file":"System/Events/EventDispatcherBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"../Utility/shallowCopy\", \"../Disposable/DisposableBase\", \"../Collections/Array/Utility\", \"./EventDispatcherEntry\", \"../Disposable/dispose\"], function (require, exports, shallowCopy_1, DisposableBase_1, AU, EventDispatcherEntry_1, dispose_1) {\n 'use strict';\n var DISPOSING = 'disposing', DISPOSED = 'disposed';\n function entryFinalizer() {\n var p = this.params;\n p.dispatcher.removeEntry(this);\n p.dispatcher = null;\n }\n var EventDispatcherBase = (function (_super) {\n __extends(EventDispatcherBase, _super);\n function EventDispatcherBase() {\n _super.apply(this, arguments);\n this._isDisposing = false;\n }\n EventDispatcherBase.prototype.addEventListener = function (type, listener, priority) {\n if (priority === void 0) { priority = 0; }\n var e = this._entries;\n if (!e)\n this._entries = e = [];\n e.push(new EventDispatcherEntry_1.default(type, listener, {\n priority: priority || 0,\n dispatcher: this\n }, entryFinalizer));\n };\n EventDispatcherBase.prototype.removeEntry = function (entry) {\n return !!this._entries && AU.remove(this._entries, entry) != 0;\n };\n EventDispatcherBase.prototype.registerEventListener = function (type, listener, priority) {\n if (priority === void 0) { priority = 0; }\n if (!this.hasEventListener(type, listener))\n this.addEventListener(type, listener, priority);\n };\n EventDispatcherBase.prototype.hasEventListener = function (type, listener) {\n var e = this._entries;\n return e && e.some(function (value) {\n return type == value.type && (!listener || listener == value.listener);\n });\n };\n EventDispatcherBase.prototype.removeEventListener = function (type, listener) {\n dispose_1.default.these(this._entries.filter(function (entry) { return entry.matches(type, listener); }));\n };\n EventDispatcherBase.prototype.dispatchEvent = function (e, params) {\n var _this = this;\n var _ = this, l = _._entries;\n if (!l || !l.length)\n return false;\n var event;\n if (typeof e == \"string\") {\n event = Event && Object.create(Event) || {};\n if (!params)\n params = {};\n if (params['cancellable'])\n event.cancellable = true;\n event.target = _;\n event.type = e;\n }\n else\n event = e;\n var type = event.type;\n var entries = l.filter(function (e) { return e.type == type; });\n if (!entries.length)\n return false;\n entries.sort(function (a, b) { return b.params.priority - a.params.priority; });\n entries.forEach(function (entry) {\n var newEvent = Object.create(Event);\n shallowCopy_1.default(event, newEvent);\n newEvent.target = _this;\n entry.dispatch(newEvent);\n });\n return true;\n };\n Object.defineProperty(EventDispatcherBase, \"DISPOSING\", {\n get: function () { return DISPOSING; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventDispatcherBase, \"DISPOSED\", {\n get: function () { return DISPOSED; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventDispatcherBase.prototype, \"isDisposing\", {\n get: function () {\n return this._isDisposing;\n },\n enumerable: true,\n configurable: true\n });\n EventDispatcherBase.prototype.dispose = function () {\n var _ = this;\n if (!_.wasDisposed && !_._isDisposing) {\n _._isDisposing = true;\n _.dispatchEvent(DISPOSING);\n _super.prototype.dispose.call(this);\n _.dispatchEvent(DISPOSED);\n var l = _._entries;\n if (l) {\n this._entries = null;\n l.forEach(function (e) { return e.dispose(); });\n }\n }\n };\n return EventDispatcherBase;\n }(DisposableBase_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = EventDispatcherBase;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n\r\nimport shallowCopy from \"../Utility/shallowCopy\";\r\nimport DisposableBase from \"../Disposable/DisposableBase\";\r\nimport * as AU from \"../Collections/Array/Utility\";\r\nimport EventDispatcherEntry from \"./EventDispatcherEntry\";\r\nimport dispose from \"../Disposable/dispose\";\r\n\r\nconst DISPOSING:string = 'disposing',\r\n DISPOSED:string = 'disposed';\r\n\r\n// The following interfaces are exported for sub class implementation.\r\n\r\nexport interface IEventBase {\r\n\ttype: string;\r\n\ttarget: TTarget;\r\n}\r\n\r\nexport interface IEvent extends IEventBase {\r\n\r\n}\r\n\r\nexport interface IEntryParams\r\n{\r\n\tpriority:number;\r\n\tdispatcher:EventDispatcherBase;\r\n}\r\n\r\nfunction entryFinalizer()\r\n{\r\n\tvar p:IEntryParams = this.params;\r\n\tp.dispatcher.removeEntry(this);\r\n\tp.dispatcher = null;\r\n}\r\n\r\nexport default\r\nclass EventDispatcherBase extends DisposableBase implements IEventDispatcher\r\n{\r\n\r\n\tprotected _entries:EventDispatcherEntry[];\r\n\r\n\taddEventListener(\r\n\t\ttype:string,\r\n\t\tlistener:IEventListener,\r\n\t\tpriority:number = 0):void\r\n\t{\r\n\t\tvar e = this._entries;\r\n\t\tif(!e) this._entries = e = [];\r\n\r\n\t\t// flash/vibe.js means of adding is indiscriminate and will double add listeners...\r\n\t\t// we can then avoid double adds by including a 'registerEventListener' method.\r\n\t\te.push(\r\n\t\t\tnew EventDispatcherEntry(type, listener, {\r\n\t\t\t\t\tpriority: priority || 0,\r\n\t\t\t\t\tdispatcher: this\r\n\t\t\t\t},\r\n\t\t\t\tentryFinalizer));\r\n\t}\r\n\r\n\tremoveEntry(entry:EventDispatcherEntry):boolean\r\n\t{\r\n\t\treturn !!this._entries && AU.remove(this._entries, entry)!=0;\r\n\t}\r\n\r\n\t// Allow for simple add once mechanism.\r\n\tregisterEventListener(\r\n\t\ttype:string,\r\n\t\tlistener:IEventListener,\r\n\t\tpriority:number = 0):void//, useWeakReference: boolean= false)\r\n\t{\r\n\t\tif(!this.hasEventListener(type, listener))\r\n\t\t\tthis.addEventListener(type, listener, priority);\r\n\t}\r\n\r\n\thasEventListener(type:string, listener?:IEventListener):boolean\r\n\t{\r\n\t\tvar e = this._entries;\r\n\t\treturn e && e.some(\r\n\t\t\t\t(value:EventDispatcherEntry):boolean =>\r\n\t\t\t\ttype==value.type && (!listener || listener==value.listener)\r\n\t\t\t);\r\n\t}\r\n\r\n\tremoveEventListener(\r\n\t\ttype:string,\r\n\t\tlistener:IEventListener):void\r\n\t{\r\n\t\tdispose.these(this._entries.filter(entry=> entry.matches(type, listener)));\r\n\t}\r\n\r\n\tdispatchEvent(type:string, params?:any):boolean;\r\n\tdispatchEvent(event:IEvent):boolean;\r\n\tdispatchEvent(e:any, params?:any):boolean\r\n\t{\r\n\r\n\t\tvar _ = this, l = _._entries;\r\n\t\tif(!l || !l.length)\r\n\t\t\treturn false;\r\n\r\n\t\tvar event:IEventBase;\r\n\r\n\t\tif(typeof e==\"string\")\r\n\t\t{\r\n\t\t\tevent = Event && Object.create(Event) || {};\r\n\t\t\tif(!params)\r\n\t\t\t\tparams = {};\r\n\t\t\tif(params['cancellable'])\r\n\t\t\t\t(event).cancellable = true;\r\n\t\t\tevent.target = _;\r\n\t\t\tevent.type = e;\r\n\t\t}\r\n\t\telse\r\n\t\t\tevent = e;\r\n\r\n\t\tvar type = event.type;\r\n\r\n\t\t// noinspection JSMismatchedCollectionQueryUpdate\r\n\t\tvar entries:EventDispatcherEntry[] = l.filter(e=>e.type==type);//, propagate = true, prevent = false;\r\n\t\tif(!entries.length)\r\n\t\t\treturn false;\r\n\r\n\t\tentries.sort((a, b)=> b.params.priority - a.params.priority);\r\n\r\n\t\t// For now... Just use simple...\r\n\t\tentries.forEach(\r\n\t\t\tentry=>\r\n\t\t\t{\r\n\t\t\t\tvar newEvent = Object.create(Event);\r\n\t\t\t\tshallowCopy(event, newEvent);\r\n\t\t\t\tnewEvent.target = this;\r\n\t\t\t\tentry.dispatch(newEvent);\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\treturn true;\r\n\r\n\t}\r\n\r\n\tstatic get DISPOSING() { return DISPOSING; }\r\n\r\n\tstatic get DISPOSED() { return DISPOSED; }\r\n\r\n\t// When dispatching events, we need a way to prevent recursion when disposing.\r\n\tprivate _isDisposing:boolean = false;\r\n\tget isDisposing():boolean\r\n\t{\r\n\t\treturn this._isDisposing;\r\n\t}\r\n\r\n\t// Override the public method here since EventDispatcher will end up doing things a bit differently from here on.\r\n\tpublic dispose()\r\n\t{\r\n\r\n\t\t// Having a disposing event can allow for child objects to automatically release themselves when their parent is disposed.\r\n\t\tvar _ = this;\r\n\t\tif(!_.wasDisposed && !_._isDisposing)\r\n\t\t{\r\n\t\t\t_._isDisposing = true;\r\n\t\t\t_.dispatchEvent(DISPOSING);\r\n\r\n\t\t\tsuper.dispose();\r\n\r\n\t\t\t_.dispatchEvent(DISPOSED);\r\n\r\n\t\t\tvar l = _._entries;\r\n\t\t\tif(l)\r\n\t\t\t{\r\n\t\t\t\tthis._entries = null;\r\n\t\t\t\tl.forEach(e=> e.dispose());\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n}\r\n\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Events/EventDispatcherBase.js","System/Events/EventDispatcherBase.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","AU","shallowCopy_1","DisposableBase_1","dispose_1","EventDispatcherEntry_1","entryFinalizer","params","dispatcher","removeEntry","DISPOSING","DISPOSED","EventDispatcherBase","_super","apply","arguments","_isDisposing","addEventListener","type","listener","priority","e","_entries","push","EventDispatcherEntry","entry","remove","registerEventListener","hasEventListener","some","value","removeEventListener","dispose","these","filter","matches","dispatchEvent","_this","_","l","length","event","Event","cancellable","target","entries","sort","a","forEach","newEvent","shallowCopy","dispatch","defineProperty","get","enumerable","configurable","wasDisposed","call","DisposableBase"],"mappings":"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","file":"System/Events/EventDispatcherBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"../Collections/Array/Utility\", \"../Utility/shallowCopy\", \"../Disposable/DisposableBase\", \"../Disposable/dispose\", \"./EventDispatcherEntry\"], function (require, exports, AU, shallowCopy_1, DisposableBase_1, dispose_1, EventDispatcherEntry_1) {\n \"use strict\";\n var DISPOSING = 'disposing', DISPOSED = 'disposed';\n function entryFinalizer() {\n var p = this.params;\n p.dispatcher.removeEntry(this);\n p.dispatcher = null;\n }\n var EventDispatcherBase = (function (_super) {\n __extends(EventDispatcherBase, _super);\n function EventDispatcherBase() {\n _super.apply(this, arguments);\n this._isDisposing = false;\n }\n EventDispatcherBase.prototype.addEventListener = function (type, listener, priority) {\n if (priority === void 0) { priority = 0; }\n var e = this._entries;\n if (!e)\n this._entries = e = [];\n e.push(new EventDispatcherEntry_1.EventDispatcherEntry(type, listener, {\n priority: priority || 0,\n dispatcher: this\n }, entryFinalizer));\n };\n EventDispatcherBase.prototype.removeEntry = function (entry) {\n return !!this._entries && AU.remove(this._entries, entry) != 0;\n };\n EventDispatcherBase.prototype.registerEventListener = function (type, listener, priority) {\n if (priority === void 0) { priority = 0; }\n if (!this.hasEventListener(type, listener))\n this.addEventListener(type, listener, priority);\n };\n EventDispatcherBase.prototype.hasEventListener = function (type, listener) {\n var e = this._entries;\n return e && e.some(function (value) {\n return type == value.type && (!listener || listener == value.listener);\n });\n };\n EventDispatcherBase.prototype.removeEventListener = function (type, listener) {\n dispose_1.dispose.these(this._entries.filter(function (entry) { return entry.matches(type, listener); }));\n };\n EventDispatcherBase.prototype.dispatchEvent = function (e, params) {\n var _this = this;\n var _ = this, l = _._entries;\n if (!l || !l.length)\n return false;\n var event;\n if (typeof e == \"string\") {\n event = Event && Object.create(Event) || {};\n if (!params)\n params = {};\n if (params['cancellable'])\n event.cancellable = true;\n event.target = _;\n event.type = e;\n }\n else\n event = e;\n var type = event.type;\n var entries = l.filter(function (e) { return e.type == type; });\n if (!entries.length)\n return false;\n entries.sort(function (a, b) { return b.params.priority - a.params.priority; });\n entries.forEach(function (entry) {\n var newEvent = Object.create(Event);\n shallowCopy_1.shallowCopy(event, newEvent);\n newEvent.target = _this;\n entry.dispatch(newEvent);\n });\n return true;\n };\n Object.defineProperty(EventDispatcherBase, \"DISPOSING\", {\n get: function () { return DISPOSING; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventDispatcherBase, \"DISPOSED\", {\n get: function () { return DISPOSED; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventDispatcherBase.prototype, \"isDisposing\", {\n get: function () {\n return this._isDisposing;\n },\n enumerable: true,\n configurable: true\n });\n EventDispatcherBase.prototype.dispose = function () {\n var _ = this;\n if (!_.wasDisposed && !_._isDisposing) {\n _._isDisposing = true;\n _.dispatchEvent(DISPOSING);\n _super.prototype.dispose.call(this);\n _.dispatchEvent(DISPOSED);\n var l = _._entries;\n if (l) {\n this._entries = null;\n l.forEach(function (e) { return e.dispose(); });\n }\n }\n };\n return EventDispatcherBase;\n }(DisposableBase_1.DisposableBase));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = EventDispatcherBase;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport * as AU from \"../Collections/Array/Utility\";\r\nimport {shallowCopy} from \"../Utility/shallowCopy\";\r\nimport {DisposableBase} from \"../Disposable/DisposableBase\";\r\nimport {dispose} from \"../Disposable/dispose\";\r\nimport {IEventListener} from \"./IEventListener\";\r\nimport {EventDispatcherEntry} from \"./EventDispatcherEntry\";\r\nimport {IEventDispatcher} from \"./IEventDispatcher\";\r\n\r\nconst DISPOSING:string = 'disposing',\r\n DISPOSED:string = 'disposed';\r\n\r\n// The following interfaces are exported for sub class implementation.\r\n\r\nexport interface IEventBase\r\n{\r\n\ttype:string;\r\n\ttarget:TTarget;\r\n}\r\n\r\nexport interface IEvent extends IEventBase\r\n{\r\n\r\n}\r\n\r\nexport interface IEntryParams\r\n{\r\n\tpriority:number;\r\n\tdispatcher:EventDispatcherBase;\r\n}\r\n\r\nfunction entryFinalizer()\r\n{\r\n\tvar p:IEntryParams = this.params;\r\n\tp.dispatcher.removeEntry(this);\r\n\tp.dispatcher = null;\r\n}\r\n\r\nexport default\r\nclass EventDispatcherBase extends DisposableBase implements IEventDispatcher\r\n{\r\n\r\n\tprotected _entries:EventDispatcherEntry[];\r\n\r\n\taddEventListener(\r\n\t\ttype:string,\r\n\t\tlistener:IEventListener,\r\n\t\tpriority:number = 0):void\r\n\t{\r\n\t\tvar e = this._entries;\r\n\t\tif(!e) this._entries = e = [];\r\n\r\n\t\t// flash/vibe.js means of adding is indiscriminate and will double add listeners...\r\n\t\t// we can then avoid double adds by including a 'registerEventListener' method.\r\n\t\te.push(\r\n\t\t\tnew EventDispatcherEntry(type, listener, {\r\n\t\t\t\t\tpriority: priority || 0,\r\n\t\t\t\t\tdispatcher: this\r\n\t\t\t\t},\r\n\t\t\t\tentryFinalizer));\r\n\t}\r\n\r\n\tremoveEntry(entry:EventDispatcherEntry):boolean\r\n\t{\r\n\t\treturn !!this._entries && AU.remove(this._entries, entry)!=0;\r\n\t}\r\n\r\n\t// Allow for simple add once mechanism.\r\n\tregisterEventListener(\r\n\t\ttype:string,\r\n\t\tlistener:IEventListener,\r\n\t\tpriority:number = 0):void//, useWeakReference: boolean= false)\r\n\t{\r\n\t\tif(!this.hasEventListener(type, listener))\r\n\t\t\tthis.addEventListener(type, listener, priority);\r\n\t}\r\n\r\n\thasEventListener(type:string, listener?:IEventListener):boolean\r\n\t{\r\n\t\tvar e = this._entries;\r\n\t\treturn e && e.some(\r\n\t\t\t\t(value:EventDispatcherEntry):boolean =>\r\n\t\t\t\ttype==value.type && (!listener || listener==value.listener)\r\n\t\t\t);\r\n\t}\r\n\r\n\tremoveEventListener(\r\n\t\ttype:string,\r\n\t\tlistener:IEventListener):void\r\n\t{\r\n\t\tdispose.these(this._entries.filter(entry=> entry.matches(type, listener)));\r\n\t}\r\n\r\n\tdispatchEvent(type:string, params?:any):boolean;\r\n\tdispatchEvent(event:IEvent):boolean;\r\n\tdispatchEvent(e:any, params?:any):boolean\r\n\t{\r\n\r\n\t\tvar _ = this, l = _._entries;\r\n\t\tif(!l || !l.length)\r\n\t\t\treturn false;\r\n\r\n\t\tvar event:IEventBase;\r\n\r\n\t\tif(typeof e==\"string\")\r\n\t\t{\r\n\t\t\tevent = Event && Object.create(Event) || {};\r\n\t\t\tif(!params)\r\n\t\t\t\tparams = {};\r\n\t\t\tif(params['cancellable'])\r\n\t\t\t\t(event).cancellable = true;\r\n\t\t\tevent.target = _;\r\n\t\t\tevent.type = e;\r\n\t\t}\r\n\t\telse\r\n\t\t\tevent = e;\r\n\r\n\t\tvar type = event.type;\r\n\r\n\t\t// noinspection JSMismatchedCollectionQueryUpdate\r\n\t\tvar entries:EventDispatcherEntry[] = l.filter(e=>e.type==type);//, propagate = true, prevent = false;\r\n\t\tif(!entries.length)\r\n\t\t\treturn false;\r\n\r\n\t\tentries.sort((a, b)=> b.params.priority - a.params.priority);\r\n\r\n\t\t// For now... Just use simple...\r\n\t\tentries.forEach(\r\n\t\t\tentry=>\r\n\t\t\t{\r\n\t\t\t\tvar newEvent = Object.create(Event);\r\n\t\t\t\tshallowCopy(event, newEvent);\r\n\t\t\t\tnewEvent.target = this;\r\n\t\t\t\tentry.dispatch(newEvent);\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\treturn true;\r\n\r\n\t}\r\n\r\n\tstatic get DISPOSING() { return DISPOSING; }\r\n\r\n\tstatic get DISPOSED() { return DISPOSED; }\r\n\r\n\t// When dispatching events, we need a way to prevent recursion when disposing.\r\n\tprivate _isDisposing:boolean = false;\r\n\tget isDisposing():boolean\r\n\t{\r\n\t\treturn this._isDisposing;\r\n\t}\r\n\r\n\t// Override the public method here since EventDispatcher will end up doing things a bit differently from here on.\r\n\tpublic dispose()\r\n\t{\r\n\r\n\t\t// Having a disposing event can allow for child objects to automatically release themselves when their parent is disposed.\r\n\t\tvar _ = this;\r\n\t\tif(!_.wasDisposed && !_._isDisposing)\r\n\t\t{\r\n\t\t\t_._isDisposing = true;\r\n\t\t\t_.dispatchEvent(DISPOSING);\r\n\r\n\t\t\tsuper.dispose();\r\n\r\n\t\t\t_.dispatchEvent(DISPOSED);\r\n\r\n\t\t\tvar l = _._entries;\r\n\t\t\tif(l)\r\n\t\t\t{\r\n\t\t\t\tthis._entries = null;\r\n\t\t\t\tl.forEach(e=> e.dispose());\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n}\r\n\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Events/EventDispatcherEntry.d.ts b/dist/amd/System/Events/EventDispatcherEntry.d.ts index 73b2f602..b7248a12 100644 --- a/dist/amd/System/Events/EventDispatcherEntry.d.ts +++ b/dist/amd/System/Events/EventDispatcherEntry.d.ts @@ -1,10 +1,11 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import DisposableBase from "../Disposable/DisposableBase"; -export default class EventDispatcherEntry extends DisposableBase implements IEquatable> { +import { DisposableBase } from "../Disposable/DisposableBase"; +import { IEventListener } from "./IEventListener"; +import { IEquatable } from "../IEquatable"; +export declare class EventDispatcherEntry extends DisposableBase implements IEquatable> { type: string; listener: IEventListener; params: TParams; @@ -14,3 +15,4 @@ export default class EventDispatcherEntry extends DisposableBase implem matches(type: string, listener: IEventListener): boolean; equals(other: EventDispatcherEntry): boolean; } +export default EventDispatcherEntry; diff --git a/dist/amd/System/Events/EventDispatcherEntry.js b/dist/amd/System/Events/EventDispatcherEntry.js index a7ef6469..dac1716b 100644 --- a/dist/amd/System/Events/EventDispatcherEntry.js +++ b/dist/amd/System/Events/EventDispatcherEntry.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(e,t){function n(){this.constructor=e}for(var s in t)t.hasOwnProperty(s)&&(e[s]=t[s]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)};define(["require","exports","../Types","../Disposable/DisposableBase","../Exceptions/ArgumentNullException","../Exceptions/ArgumentException","../Compare"],function(e,t,n,s,i,r,o){"use strict";var a=function(e){function t(t,s,o,a){if(void 0===o&&(o=null),e.call(this,a),this.type=t,this.listener=s,this.params=o,!s)throw new i["default"]("listener");if(n["default"].isObject(s)&&!n["default"].hasMemberOfType(s,"handleEvent",n["default"].FUNCTION))throw new r["default"]("listener","is invalid type. Must be a function or an object with 'handleEvent'.");var p=this;p.type=t,p.listener=s,p.params=o,p._disposableObjectName="EventDispatcherEntry"}return __extends(t,e),t.prototype._onDispose=function(){e.prototype._onDispose.call(this),this.listener=null},t.prototype.dispatch=function(e){var t=this;if(t.wasDisposed)return!1;var s=t.listener,i=s&&e.type==t.type;return i&&(n["default"].isFunction(s)?t.listener(e):s.handleEvent(e)),i},t.prototype.matches=function(e,t){var n=this;return n.type==e&&n.listener==t},t.prototype.equals=function(e){var t=this;return t.matches(e.type,e.listener)&&o.areEquivalent(t.params,e.params,!1)},t}(s["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=a}); +var __extends=this&&this.__extends||function(e,t){function n(){this.constructor=e}for(var s in t)t.hasOwnProperty(s)&&(e[s]=t[s]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)};define(["require","exports","../Types","../Disposable/DisposableBase","../Exceptions/ArgumentNullException","../Exceptions/ArgumentException","../Compare"],function(e,t,n,s,i,r,o){"use strict";var p=function(e){function t(t,s,o,p){if(void 0===o&&(o=null),e.call(this,p),this.type=t,this.listener=s,this.params=o,!s)throw new i.ArgumentNullException("listener");if(n.Type.isObject(s)&&!n.Type.hasMemberOfType(s,"handleEvent",n.Type.FUNCTION))throw new r.ArgumentException("listener","is invalid type. Must be a function or an object with 'handleEvent'.");var a=this;a.type=t,a.listener=s,a.params=o,a._disposableObjectName="EventDispatcherEntry"}return __extends(t,e),t.prototype._onDispose=function(){e.prototype._onDispose.call(this),this.listener=null},t.prototype.dispatch=function(e){var t=this;if(t.wasDisposed)return!1;var s=t.listener,i=s&&e.type==t.type;return i&&(n.Type.isFunction(s)?t.listener(e):s.handleEvent(e)),i},t.prototype.matches=function(e,t){var n=this;return n.type==e&&n.listener==t},t.prototype.equals=function(e){var t=this;return t.matches(e.type,e.listener)&&o.areEquivalent(t.params,e.params,!1)},t}(s.DisposableBase);t.EventDispatcherEntry=p,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=p}); //# sourceMappingURL=EventDispatcherEntry.js.map diff --git a/dist/amd/System/Events/EventDispatcherEntry.js.map b/dist/amd/System/Events/EventDispatcherEntry.js.map index 23de3e9e..23ad58ae 100644 --- a/dist/amd/System/Events/EventDispatcherEntry.js.map +++ b/dist/amd/System/Events/EventDispatcherEntry.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Events/EventDispatcherEntry.js","System/Events/EventDispatcherEntry.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","Types_1","DisposableBase_1","ArgumentNullException_1","ArgumentException_1","Compare_1","EventDispatcherEntry","_super","type","listener","params","finalizer","call","isObject","hasMemberOfType","FUNCTION","_","_disposableObjectName","_onDispose","dispatch","e","wasDisposed","l","isFunction","handleEvent","matches","equals","other","areEquivalent","defineProperty","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,WAAY,+BAAgC,sCAAuC,kCAAmC,cAAe,SAAUC,EAASC,EAASC,EAASC,EAAkBC,EAAyBC,EAAqBC,GCHxQ,YAQA,IAAAC,GAAA,SAAAC,GAKC,QAAAD,GACQE,EACAC,EACAC,EACPC,GAIA,GALA,SAAAD,IAAAA,EAAA,MAGAH,EAAAK,KAAAxB,KAAMuB,GALCvB,KAAAoB,KAAAA,EACApB,KAAAqB,SAAAA,EACArB,KAAAsB,OAAAA,GAKHD,EACH,KAAM,IAAIN,GAAAA,WAAsB,WACjC,IAAGF,EAAAA,WAAKY,SAASJ,KAAcR,EAAAA,WAAKa,gBAAgBL,EAAU,cAAeR,EAAAA,WAAKc,UACjF,KAAM,IAAIX,GAAAA,WAAkB,WAAY,wEAEzC,IAAIY,GAAI5B,IACR4B,GAAER,KAAOA,EACTQ,EAAEP,SAAWA,EACbO,EAAEN,OAASA,EACXM,EAAEC,sBAAwB,uBAsD5B,MA1EQ9B,WAAAmB,EAAAC,GAuBGD,EAAAX,UAAAuB,WAAV,WAECX,EAAAZ,UAAMuB,WAAUN,KAAAxB,MAChBA,KAAKqB,SAAW,MAQjBH,EAAAX,UAAAwB,SAAA,SAASC,GAER,GAAIJ,GAAI5B,IACR,IAAG4B,EAAEK,YAAa,OAAO,CAEzB,IAAIC,GAAIN,EAAEP,SAAUpB,EAAIiC,GAAKF,EAAEZ,MAAMQ,EAAER,IAQvC,OAPGnB,KAECY,EAAAA,WAAKsB,WAAWD,GACZN,EAAGP,SAASW,GAEIE,EAAGE,YAAYJ,IAEhC/B,GASRiB,EAAAX,UAAA8B,QAAA,SAAQjB,EAAaC,GAEpB,GAAIO,GAAI5B,IACR,OAAO4B,GAAER,MAAMA,GACXQ,EAAEP,UAAUA,GAQjBH,EAAAX,UAAA+B,OAAA,SAAOC,GAEN,GAAIX,GAAI5B,IACR,OAAO4B,GAAES,QAAQE,EAAMnB,KAAKmB,EAAMlB,WAC9BJ,EAAAuB,cAAcZ,EAAEN,OAAQiB,EAAMjB,QAAQ,IAE5CJ,GA1EQJ,EAAAA,WAFRN,QAAAiC,eAAA7B,EAAA,cAAA8B,OAAA,ID6CI9B,EAAAA,WAAkBM","file":"System/Events/EventDispatcherEntry.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"../Types\", \"../Disposable/DisposableBase\", \"../Exceptions/ArgumentNullException\", \"../Exceptions/ArgumentException\", \"../Compare\"], function (require, exports, Types_1, DisposableBase_1, ArgumentNullException_1, ArgumentException_1, Compare_1) {\n 'use strict';\n var EventDispatcherEntry = (function (_super) {\n __extends(EventDispatcherEntry, _super);\n function EventDispatcherEntry(type, listener, params, finalizer) {\n if (params === void 0) { params = null; }\n _super.call(this, finalizer);\n this.type = type;\n this.listener = listener;\n this.params = params;\n if (!listener)\n throw new ArgumentNullException_1.default('listener');\n if (Types_1.default.isObject(listener) && !Types_1.default.hasMemberOfType(listener, \"handleEvent\", Types_1.default.FUNCTION))\n throw new ArgumentException_1.default('listener', \"is invalid type. Must be a function or an object with 'handleEvent'.\");\n var _ = this;\n _.type = type;\n _.listener = listener;\n _.params = params;\n _._disposableObjectName = \"EventDispatcherEntry\";\n }\n EventDispatcherEntry.prototype._onDispose = function () {\n _super.prototype._onDispose.call(this);\n this.listener = null;\n };\n EventDispatcherEntry.prototype.dispatch = function (e) {\n var _ = this;\n if (_.wasDisposed)\n return false;\n var l = _.listener, d = l && e.type == _.type;\n if (d) {\n if (Types_1.default.isFunction(l))\n _.listener(e);\n else\n l.handleEvent(e);\n }\n return d;\n };\n EventDispatcherEntry.prototype.matches = function (type, listener) {\n var _ = this;\n return _.type == type\n && _.listener == listener;\n };\n EventDispatcherEntry.prototype.equals = function (other) {\n var _ = this;\n return _.matches(other.type, other.listener)\n && Compare_1.areEquivalent(_.params, other.params, false);\n };\n return EventDispatcherEntry;\n }(DisposableBase_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = EventDispatcherEntry;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport Type from \"../Types\";\r\nimport DisposableBase from \"../Disposable/DisposableBase\";\r\nimport ArgumentNullException from \"../Exceptions/ArgumentNullException\";\r\nimport ArgumentException from \"../Exceptions/ArgumentException\";\r\nimport {areEquivalent} from \"../Compare\";\r\n\r\nexport default\r\nclass EventDispatcherEntry\r\nextends DisposableBase implements IEquatable>\r\n{\r\n\r\n\tconstructor(\r\n\t\tpublic type:string,\r\n\t\tpublic listener:IEventListener,\r\n\t\tpublic params:TParams = null,\r\n\t\tfinalizer?:() => void)//, useWeakReference: boolean = false)\r\n\t{\r\n\t\tsuper(finalizer);\r\n\r\n\t\tif(!listener)\r\n\t\t\tthrow new ArgumentNullException('listener');\r\n\t\tif(Type.isObject(listener) && !Type.hasMemberOfType(listener, \"handleEvent\", Type.FUNCTION))\r\n\t\t\tthrow new ArgumentException('listener', \"is invalid type. Must be a function or an object with 'handleEvent'.\");\r\n\r\n\t\tvar _ = this;\r\n\t\t_.type = type;\r\n\t\t_.listener = listener;\r\n\t\t_.params = params;\r\n\t\t_._disposableObjectName = \"EventDispatcherEntry\";\r\n\t}\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis.listener = null;\r\n\t}\r\n\r\n\t/**\r\n\t * Safely dispatches an event if entry is not disposed and type matches.\r\n\t * @param e\r\n\t * @returns {IEventListener|boolean}\r\n\t */\r\n\tdispatch(e:Event):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(_.wasDisposed) return false;\r\n\r\n\t\tvar l = _.listener, d = l && e.type==_.type;\r\n\t\tif(d)\r\n\t\t{\r\n\t\t\tif(Type.isFunction(l))\r\n\t\t\t\t(_).listener(e); // Use 'this' to ensure call reference.\r\n\t\t\telse\r\n\t\t\t\t(l).handleEvent(e);\r\n\t\t}\r\n\t\treturn d;\r\n\t}\r\n\r\n\t/**\r\n\t * Compares type and listener object only.\r\n\t * @param type\r\n\t * @param listener\r\n\t * @returns {boolean}\r\n\t */\r\n\tmatches(type:string, listener:IEventListener):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn _.type==type\r\n\t\t\t&& _.listener==listener;\r\n\t}\r\n\r\n\t/**\r\n\t * Compares type, listener, and priority.\r\n\t * @param other\r\n\t * @returns {boolean}\r\n\t */\r\n\tequals(other:EventDispatcherEntry):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn _.matches(other.type,other.listener)\r\n\t\t\t&& areEquivalent(_.params, other.params, false);\r\n\t}\r\n}"]} \ No newline at end of file +{"version":3,"sources":["System/Events/EventDispatcherEntry.js","System/Events/EventDispatcherEntry.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","Types_1","DisposableBase_1","ArgumentNullException_1","ArgumentException_1","Compare_1","EventDispatcherEntry","_super","type","listener","params","finalizer","call","ArgumentNullException","Type","isObject","hasMemberOfType","FUNCTION","ArgumentException","_","_disposableObjectName","_onDispose","dispatch","e","wasDisposed","l","isFunction","handleEvent","matches","equals","other","areEquivalent","DisposableBase","defineProperty","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,WAAY,+BAAgC,sCAAuC,kCAAmC,cAAe,SAAUC,EAASC,EAASC,EAASC,EAAkBC,EAAyBC,EAAqBC,GACpQ,YCGJ,IAAAC,GAAA,SAAAC,GAIC,QAAAD,GACQE,EACAC,EACAC,EACPC,GAIA,GALA,SAAAD,IAAAA,EAAA,MAGAH,EAAAK,KAAAxB,KAAMuB,GALCvB,KAAAoB,KAAAA,EACApB,KAAAqB,SAAAA,EACArB,KAAAsB,OAAAA,GAKHD,EACH,KAAM,IAAIN,GAAAU,sBAAsB,WACjC,IAAGZ,EAAAa,KAAKC,SAASN,KAAcR,EAAAa,KAAKE,gBAAgBP,EAAU,cAAeR,EAAAa,KAAKG,UACjF,KAAM,IAAIb,GAAAc,kBAAkB,WAAY,wEAEzC,IAAIC,GAAI/B,IACR+B,GAAEX,KAAOA,EACTW,EAAEV,SAAWA,EACbU,EAAET,OAASA,EACXS,EAAEC,sBAAwB,uBAsD5B,MA1EQjC,WAAAmB,EAAAC,GAuBGD,EAAAX,UAAA0B,WAAV,WAECd,EAAAZ,UAAM0B,WAAUT,KAAAxB,MAChBA,KAAKqB,SAAW,MAQjBH,EAAAX,UAAA2B,SAAA,SAASC,GAER,GAAIJ,GAAI/B,IACR,IAAG+B,EAAEK,YAAa,OAAO,CAEzB,IAAIC,GAAIN,EAAEV,SAAUpB,EAAIoC,GAAKF,EAAEf,MAAMW,EAAEX,IAQvC,OAPGnB,KAECY,EAAAa,KAAKY,WAAWD,GACZN,EAAGV,SAASc,GAEIE,EAAGE,YAAYJ,IAEhClC,GASRiB,EAAAX,UAAAiC,QAAA,SAAQpB,EAAaC,GAEpB,GAAIU,GAAI/B,IACR,OAAO+B,GAAEX,MAAMA,GACXW,EAAEV,UAAUA,GAQjBH,EAAAX,UAAAkC,OAAA,SAAOC,GAEN,GAAIX,GAAI/B,IACR,OAAO+B,GAAES,QAAQE,EAAMtB,KAAMsB,EAAMrB,WAC/BJ,EAAA0B,cAAcZ,EAAET,OAAQoB,EAAMpB,QAAQ,IAE5CJ,GA1EQJ,EAAA8B,eADKhC,GAAAM,qBAAoBA,EA6EjCV,OAAAqC,eAAAjC,EAAA,cAAAkC,OAAA,ID9BIlC,EAAAA,WC8BWM","file":"System/Events/EventDispatcherEntry.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"../Types\", \"../Disposable/DisposableBase\", \"../Exceptions/ArgumentNullException\", \"../Exceptions/ArgumentException\", \"../Compare\"], function (require, exports, Types_1, DisposableBase_1, ArgumentNullException_1, ArgumentException_1, Compare_1) {\n \"use strict\";\n var EventDispatcherEntry = (function (_super) {\n __extends(EventDispatcherEntry, _super);\n function EventDispatcherEntry(type, listener, params, finalizer) {\n if (params === void 0) { params = null; }\n _super.call(this, finalizer);\n this.type = type;\n this.listener = listener;\n this.params = params;\n if (!listener)\n throw new ArgumentNullException_1.ArgumentNullException('listener');\n if (Types_1.Type.isObject(listener) && !Types_1.Type.hasMemberOfType(listener, \"handleEvent\", Types_1.Type.FUNCTION))\n throw new ArgumentException_1.ArgumentException('listener', \"is invalid type. Must be a function or an object with 'handleEvent'.\");\n var _ = this;\n _.type = type;\n _.listener = listener;\n _.params = params;\n _._disposableObjectName = \"EventDispatcherEntry\";\n }\n EventDispatcherEntry.prototype._onDispose = function () {\n _super.prototype._onDispose.call(this);\n this.listener = null;\n };\n EventDispatcherEntry.prototype.dispatch = function (e) {\n var _ = this;\n if (_.wasDisposed)\n return false;\n var l = _.listener, d = l && e.type == _.type;\n if (d) {\n if (Types_1.Type.isFunction(l))\n _.listener(e);\n else\n l.handleEvent(e);\n }\n return d;\n };\n EventDispatcherEntry.prototype.matches = function (type, listener) {\n var _ = this;\n return _.type == type\n && _.listener == listener;\n };\n EventDispatcherEntry.prototype.equals = function (other) {\n var _ = this;\n return _.matches(other.type, other.listener)\n && Compare_1.areEquivalent(_.params, other.params, false);\n };\n return EventDispatcherEntry;\n }(DisposableBase_1.DisposableBase));\n exports.EventDispatcherEntry = EventDispatcherEntry;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = EventDispatcherEntry;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {Type} from \"../Types\";\r\nimport {DisposableBase} from \"../Disposable/DisposableBase\";\r\nimport {ArgumentNullException} from \"../Exceptions/ArgumentNullException\";\r\nimport {ArgumentException} from \"../Exceptions/ArgumentException\";\r\nimport {areEquivalent} from \"../Compare\";\r\nimport {IEventListener} from \"./IEventListener\";\r\nimport {IEquatable} from \"../IEquatable\";\r\n\r\nexport class EventDispatcherEntry\r\nextends DisposableBase implements IEquatable>\r\n{\r\n\r\n\tconstructor(\r\n\t\tpublic type:string,\r\n\t\tpublic listener:IEventListener,\r\n\t\tpublic params:TParams = null,\r\n\t\tfinalizer?:() => void)//, useWeakReference: boolean = false)\r\n\t{\r\n\t\tsuper(finalizer);\r\n\r\n\t\tif(!listener)\r\n\t\t\tthrow new ArgumentNullException('listener');\r\n\t\tif(Type.isObject(listener) && !Type.hasMemberOfType(listener, \"handleEvent\", Type.FUNCTION))\r\n\t\t\tthrow new ArgumentException('listener', \"is invalid type. Must be a function or an object with 'handleEvent'.\");\r\n\r\n\t\tvar _ = this;\r\n\t\t_.type = type;\r\n\t\t_.listener = listener;\r\n\t\t_.params = params;\r\n\t\t_._disposableObjectName = \"EventDispatcherEntry\";\r\n\t}\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis.listener = null;\r\n\t}\r\n\r\n\t/**\r\n\t * Safely dispatches an event if entry is not disposed and type matches.\r\n\t * @param e\r\n\t * @returns {IEventListener|boolean}\r\n\t */\r\n\tdispatch(e:Event):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(_.wasDisposed) return false;\r\n\r\n\t\tvar l = _.listener, d = l && e.type==_.type;\r\n\t\tif(d)\r\n\t\t{\r\n\t\t\tif(Type.isFunction(l))\r\n\t\t\t\t(_).listener(e); // Use 'this' to ensure call reference.\r\n\t\t\telse\r\n\t\t\t\t(l).handleEvent(e);\r\n\t\t}\r\n\t\treturn d;\r\n\t}\r\n\r\n\t/**\r\n\t * Compares type and listener object only.\r\n\t * @param type\r\n\t * @param listener\r\n\t * @returns {boolean}\r\n\t */\r\n\tmatches(type:string, listener:IEventListener):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn _.type==type\r\n\t\t\t&& _.listener==listener;\r\n\t}\r\n\r\n\t/**\r\n\t * Compares type, listener, and priority.\r\n\t * @param other\r\n\t * @returns {boolean}\r\n\t */\r\n\tequals(other:EventDispatcherEntry):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn _.matches(other.type, other.listener)\r\n\t\t\t&& areEquivalent(_.params, other.params, false);\r\n\t}\r\n}\r\n\r\nexport default EventDispatcherEntry;"]} \ No newline at end of file diff --git a/dist/amd/System/Events/EventSimple.d.ts b/dist/amd/System/Events/EventSimple.d.ts index f4fd3db2..58e86841 100644 --- a/dist/amd/System/Events/EventSimple.d.ts +++ b/dist/amd/System/Events/EventSimple.d.ts @@ -3,6 +3,7 @@ * Based on Netjs mscorlib.ts * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { IDisposable } from "../Disposable/IDisposable"; export default class EventSimple implements IDisposable { private _listeners; add(listener: T): void; diff --git a/dist/amd/System/Events/EventSimple.js.map b/dist/amd/System/Events/EventSimple.js.map index 4a4cb431..d3426aee 100644 --- a/dist/amd/System/Events/EventSimple.js.map +++ b/dist/amd/System/Events/EventSimple.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Events/EventSimple.js","System/Events/EventSimple.ts"],"names":["define","require","exports","EventSimple","this","_listeners","prototype","add","listener","push","remove","index","indexOf","splice","dispatch","params","_i","arguments","length","listeners","_a","listeners_1","f","call","toMulticastFunction","listeners_2","dispose","Object","defineProperty","value"],"mappings":";;;;;AAKAA,QAAQ,UAAW,WAAY,SAAUC,EAASC,GAC9C,YCIJ,IAAAC,GAAA,WAAA,QAAAA,KAESC,KAAAC,cAuCT,MArCCF,GAAAG,UAAAC,IAAA,SAAIC,GAEHJ,KAAKC,WAAWI,KAAKD,IAGtBL,EAAAG,UAAAI,OAAA,SAAOF,GAEN,GAAIG,GAAQP,KAAKC,WAAWO,QAAQJ,EAC3B,GAANG,GACHP,KAAKC,WAAWQ,OAAOF,EAAO,IAG/BR,EAAAG,UAAAQ,SAAA,WDJW,ICIF,GAAAC,MAAAC,EAAA,EAAAA,EAAAC,UAAAC,OAAAF,IAAAD,EAAAC,EAAA,GAAAC,UAAAD,EAGR,KAAa,GADTG,GAAYf,KAAKC,WACRe,EAAA,EAAAC,EAAAF,EAAAC,EAAAC,EAAAH,OAAAE,IAAU,CAAnB,GAAIE,GAACD,EAAAD,EAERE,GAAEC,KAAKR,KAITZ,EAAAG,UAAAkB,oBAAA,WAEC,GAAIL,GAAYf,KAAKC,UACrB,OAAO,YAEN,IAAa,GAAAW,GAAA,EAAAS,EAAAN,EAAAH,EAAAS,EAAAP,OAAAF,IAAU,CAAnB,GAAIM,GAACG,EAAAT,EAERM,GAAEC,KAAKN,cAKVd,EAAAG,UAAAoB,QAAA,WAECtB,KAAKC,WAAWa,OAAS,GAE3Bf,IAzCAwB,QAAAC,eAAA1B,EAAA,cAAA2B,OAAA,IDoCI3B,EAAAA,WAAkBC","file":"System/Events/EventSimple.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based on Netjs mscorlib.ts\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var EventSimple = (function () {\n function EventSimple() {\n this._listeners = [];\n }\n EventSimple.prototype.add = function (listener) {\n this._listeners.push(listener);\n };\n EventSimple.prototype.remove = function (listener) {\n var index = this._listeners.indexOf(listener);\n if (index < 0)\n return;\n this._listeners.splice(index, 1);\n };\n EventSimple.prototype.dispatch = function () {\n var params = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n params[_i - 0] = arguments[_i];\n }\n var listeners = this._listeners;\n for (var _a = 0, listeners_1 = listeners; _a < listeners_1.length; _a++) {\n var f = listeners_1[_a];\n f.call(params);\n }\n };\n EventSimple.prototype.toMulticastFunction = function () {\n var listeners = this._listeners;\n return function () {\n for (var _i = 0, listeners_2 = listeners; _i < listeners_2.length; _i++) {\n var f = listeners_2[_i];\n f.call(arguments);\n }\n };\n };\n EventSimple.prototype.dispose = function () {\n this._listeners.length = 0;\n };\n return EventSimple;\n }());\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = EventSimple;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based on Netjs mscorlib.ts\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n/**\r\n * A simple event dispatcher provided as an alternative to built-in event.\r\n * If just dispatching a payload to a uniform set of functions, it may be better to just use the utilities in System/Collections/Array/Dispatch.\r\n */\r\nexport default class EventSimple implements IDisposable\r\n{\r\n\tprivate _listeners:T[] = [];\r\n\r\n\tadd(listener:T):void\r\n\t{\r\n\t\tthis._listeners.push(listener);\r\n\t}\r\n\r\n\tremove(listener:T):void\r\n\t{\r\n\t\tvar index = this._listeners.indexOf(listener);\r\n\t\tif(index<0) return;\r\n\t\tthis._listeners.splice(index, 1);\r\n\t}\r\n\r\n\tdispatch(...params:any[]):void\r\n\t{\r\n\t\tvar listeners = this._listeners;\r\n\t\tfor(var f of listeners)\r\n\t\t{\r\n\t\t\tf.call(params);\r\n\t\t}\r\n\t}\r\n\r\n\ttoMulticastFunction():Function\r\n\t{\r\n\t\tvar listeners = this._listeners;\r\n\t\treturn function()\r\n\t\t{\r\n\t\t\tfor(var f of listeners)\r\n\t\t\t{\r\n\t\t\t\tf.call(arguments);\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tdispose():void\r\n\t{\r\n\t\tthis._listeners.length = 0;\r\n\t}\r\n}"]} \ No newline at end of file +{"version":3,"sources":["System/Events/EventSimple.js","System/Events/EventSimple.ts"],"names":["define","require","exports","EventSimple","this","_listeners","prototype","add","listener","push","remove","index","indexOf","splice","dispatch","params","_i","arguments","length","listeners","_a","listeners_1","f","call","toMulticastFunction","listeners_2","dispose","Object","defineProperty","value"],"mappings":";;;;;AAKAA,QAAQ,UAAW,WAAY,SAAUC,EAASC,GAC9C,YCOJ,IAAAC,GAAA,WAAA,QAAAA,KAESC,KAAAC,cAuCT,MArCCF,GAAAG,UAAAC,IAAA,SAAIC,GAEHJ,KAAKC,WAAWI,KAAKD,IAGtBL,EAAAG,UAAAI,OAAA,SAAOF,GAEN,GAAIG,GAAQP,KAAKC,WAAWO,QAAQJ,EAC3B,GAANG,GACHP,KAAKC,WAAWQ,OAAOF,EAAO,IAG/BR,EAAAG,UAAAQ,SAAA,WDPW,ICOF,GAAAC,MAAAC,EAAA,EAAAA,EAAAC,UAAAC,OAAAF,IAAAD,EAAAC,EAAA,GAAAC,UAAAD,EAGR,KAAa,GADTG,GAAYf,KAAKC,WACRe,EAAA,EAAAC,EAAAF,EAAAC,EAAAC,EAAAH,OAAAE,IAAU,CAAnB,GAAIE,GAACD,EAAAD,EAERE,GAAEC,KAAKR,KAITZ,EAAAG,UAAAkB,oBAAA,WAEC,GAAIL,GAAYf,KAAKC,UACrB,OAAO,YAEN,IAAa,GAAAW,GAAA,EAAAS,EAAAN,EAAAH,EAAAS,EAAAP,OAAAF,IAAU,CAAnB,GAAIM,GAACG,EAAAT,EAERM,GAAEC,KAAKN,cAKVd,EAAAG,UAAAoB,QAAA,WAECtB,KAAKC,WAAWa,OAAS,GAE3Bf,IAzCAwB,QAAAC,eAAA1B,EAAA,cAAA2B,OAAA,IDiCI3B,EAAAA,WAAkBC","file":"System/Events/EventSimple.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based on Netjs mscorlib.ts\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var EventSimple = (function () {\n function EventSimple() {\n this._listeners = [];\n }\n EventSimple.prototype.add = function (listener) {\n this._listeners.push(listener);\n };\n EventSimple.prototype.remove = function (listener) {\n var index = this._listeners.indexOf(listener);\n if (index < 0)\n return;\n this._listeners.splice(index, 1);\n };\n EventSimple.prototype.dispatch = function () {\n var params = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n params[_i - 0] = arguments[_i];\n }\n var listeners = this._listeners;\n for (var _a = 0, listeners_1 = listeners; _a < listeners_1.length; _a++) {\n var f = listeners_1[_a];\n f.call(params);\n }\n };\n EventSimple.prototype.toMulticastFunction = function () {\n var listeners = this._listeners;\n return function () {\n for (var _i = 0, listeners_2 = listeners; _i < listeners_2.length; _i++) {\n var f = listeners_2[_i];\n f.call(arguments);\n }\n };\n };\n EventSimple.prototype.dispose = function () {\n this._listeners.length = 0;\n };\n return EventSimple;\n }());\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = EventSimple;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based on Netjs mscorlib.ts\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {IDisposable} from \"../Disposable/IDisposable\";\r\n\r\n/**\r\n * A simple event dispatcher provided as an alternative to built-in event.\r\n * If just dispatching a payload to a uniform set of functions, it may be better to just use the utilities in System/Collections/Array/Dispatch.\r\n */\r\nexport default class EventSimple implements IDisposable\r\n{\r\n\tprivate _listeners:T[] = [];\r\n\r\n\tadd(listener:T):void\r\n\t{\r\n\t\tthis._listeners.push(listener);\r\n\t}\r\n\r\n\tremove(listener:T):void\r\n\t{\r\n\t\tvar index = this._listeners.indexOf(listener);\r\n\t\tif(index<0) return;\r\n\t\tthis._listeners.splice(index, 1);\r\n\t}\r\n\r\n\tdispatch(...params:any[]):void\r\n\t{\r\n\t\tvar listeners = this._listeners;\r\n\t\tfor(var f of listeners)\r\n\t\t{\r\n\t\t\tf.call(params);\r\n\t\t}\r\n\t}\r\n\r\n\ttoMulticastFunction():Function\r\n\t{\r\n\t\tvar listeners = this._listeners;\r\n\t\treturn function()\r\n\t\t{\r\n\t\t\tfor(var f of listeners)\r\n\t\t\t{\r\n\t\t\t\tf.call(arguments);\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tdispose():void\r\n\t{\r\n\t\tthis._listeners.length = 0;\r\n\t}\r\n}"]} \ No newline at end of file diff --git a/dist/amd/System/Exception.d.ts b/dist/amd/System/Exception.d.ts index dce52d48..418b2f8f 100644 --- a/dist/amd/System/Exception.d.ts +++ b/dist/amd/System/Exception.d.ts @@ -1,11 +1,11 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -export default class Exception implements Error, IDisposable { +import { IDisposable } from "./Disposable/IDisposable"; +import { IMap } from "./Collections/Dictionaries/IDictionary"; +export declare class Exception implements Error, IDisposable { message: string; name: string; constructor(message?: string, innerException?: Error, beforeSealing?: (ex: any) => void); @@ -16,3 +16,4 @@ export default class Exception implements Error, IDisposable { protected toStringWithoutBrackets(): string; dispose(): void; } +export default Exception; diff --git a/dist/amd/System/Exception.js b/dist/amd/System/Exception.js index 1d9096c1..0933d787 100644 --- a/dist/amd/System/Exception.js +++ b/dist/amd/System/Exception.js @@ -3,5 +3,5 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -define(["require","exports"],function(t,e){"use strict";var r="Exception",n=function(){function t(t,e,r){void 0===t&&(t=null),void 0===e&&(e=null),this.message=t;var n=this;n.name=n.getName(),n.data={},e&&(n.data.innerException=e),r&&r(n);try{var o=(new Error).stack;o=o&&o.replace(/^Error\n/,"").replace(/(.|\n)+\s+at new.+/,"")||"",this.stack=n.toStringWithoutBrackets()+o}catch(i){}Object.freeze(n)}return t.prototype.getName=function(){return r},t.prototype.toString=function(){return"["+this.toStringWithoutBrackets()+"]"},t.prototype.toStringWithoutBrackets=function(){var t=this,e=t.message;return t.name+(e?": "+e:"")},t.prototype.dispose=function(){var t=this.data;for(var e in t)t.hasOwnProperty(e)&&delete t[e]},t}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=n}); +define(["require","exports"],function(t,e){"use strict";var r="Exception",n=function(){function t(t,e,r){void 0===t&&(t=null),void 0===e&&(e=null),this.message=t;var n=this;n.name=n.getName(),n.data={},e&&(n.data.innerException=e),r&&r(n);try{var o=(new Error).stack;o=o&&o.replace(/^Error\n/,"").replace(/(.|\n)+\s+at new.+/,"")||"",this.stack=n.toStringWithoutBrackets()+o}catch(i){}Object.freeze(n)}return t.prototype.getName=function(){return r},t.prototype.toString=function(){return"["+this.toStringWithoutBrackets()+"]"},t.prototype.toStringWithoutBrackets=function(){var t=this,e=t.message;return t.name+(e?": "+e:"")},t.prototype.dispose=function(){var t=this.data;for(var e in t)t.hasOwnProperty(e)&&delete t[e]},t}();e.Exception=n,Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=n}); //# sourceMappingURL=Exception.js.map diff --git a/dist/amd/System/Exception.js.map b/dist/amd/System/Exception.js.map index 8b5e7c4f..b15893fa 100644 --- a/dist/amd/System/Exception.js.map +++ b/dist/amd/System/Exception.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Exception.js","System/Exception.ts"],"names":["define","require","exports","NAME","Exception","message","innerException","beforeSealing","this","_","name","getName","data","stack","Error","replace","toStringWithoutBrackets","ex","Object","freeze","prototype","toString","m","dispose","k","hasOwnProperty","defineProperty","value"],"mappings":";;;;;AAKAA,QAAQ,UAAW,WAAY,SAAUC,EAASC,GCGlD,YAEA,IAAMC,GAAc,YAKpBC,EAAA,WAeC,QAAAA,GACQC,EACPC,EACAC,GAFA,SAAAF,IAAAA,EAAA,MACA,SAAAC,IAAAA,EAAA,MADOE,KAAAH,QAAAA,CAIP,IAAII,GAAID,IAERC,GAAEC,KAAOD,EAAEE,UACXF,EAAEG,QACCN,IACFG,EAAEG,KAAqB,eAAIN,GAOzBC,GAAeA,EAAcE,EAGhC,KACC,GAAII,IAAe,GAAUC,QAASD,KACtCA,GAAQA,GAASA,EAAME,QAAQ,WAAW,IAAIA,QAAQ,qBAAqB,KAAO,GAClFP,KAAKK,MAAQJ,EAAEO,0BAA4BH,EAC1C,MAAMI,IAERC,OAAOC,OAAOV,GAuChB,MA5BWL,GAAAgB,UAAAT,QAAV,WACE,MAAOR,IAKTC,EAAAgB,UAAAC,SAAA,WAEC,MAAO,IAAIb,KAAKQ,0BAAyB,KAGhCZ,EAAAgB,UAAAJ,wBAAV,WACC,GAAIP,GAAID,KAAMc,EAAIb,EAAEJ,OACpB,OAAOI,GAAEC,MAAQY,EAAK,KAAOA,EAAK,KAMnClB,EAAAgB,UAAAG,QAAA,WAEC,GAAIX,GAAOJ,KAAKI,IAChB,KAAI,GAAIY,KAAKZ,GAETA,EAAKa,eAAeD,UACfZ,GAAKY,IAGhBpB,IAhFAc,QAAAQ,eAAAxB,EAAA,cAAAyB,OAAA,ID+BIzB,EAAAA,WAAkBE","file":"System/Exception.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\ndefine([\"require\", \"exports\"], function (require, exports) {\n 'use strict';\n var NAME = 'Exception';\n var Exception = (function () {\n function Exception(message, innerException, beforeSealing) {\n if (message === void 0) { message = null; }\n if (innerException === void 0) { innerException = null; }\n this.message = message;\n var _ = this;\n _.name = _.getName();\n _.data = {};\n if (innerException)\n _.data['innerException'] = innerException;\n if (beforeSealing)\n beforeSealing(_);\n try {\n var stack = (new Error()).stack;\n stack = stack && stack.replace(/^Error\\n/, '').replace(/(.|\\n)+\\s+at new.+/, '') || '';\n this.stack = _.toStringWithoutBrackets() + stack;\n }\n catch (ex) { }\n Object.freeze(_);\n }\n Exception.prototype.getName = function () { return NAME; };\n Exception.prototype.toString = function () {\n return \"[\" + this.toStringWithoutBrackets() + \"]\";\n };\n Exception.prototype.toStringWithoutBrackets = function () {\n var _ = this, m = _.message;\n return _.name + (m ? (': ' + m) : '');\n };\n Exception.prototype.dispose = function () {\n var data = this.data;\n for (var k in data) {\n if (data.hasOwnProperty(k))\n delete data[k];\n }\n };\n return Exception;\n }());\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Exception;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nconst NAME:string = 'Exception';\r\n\r\n/**\r\n * Represents errors that occur during application execution.\r\n */\r\nexport default\r\nclass Exception implements Error, IDisposable\r\n{\r\n\t/**\r\n\t * A string representation of the error type.\r\n\t * The default is 'Error'.\r\n\t */\r\n\tname:string;\r\n\r\n\t/**\r\n\t * Initializes a new instance of the Exception class with a specified error message and optionally a reference to the inner exception that is the cause of this exception.\r\n\t * @param message\r\n\t * @param innerException\r\n\t * @param beforeSealing This delegate is used to allow actions to occur just before this constructor finishes. Since some compilers do not allow the use of 'this' before super.\r\n\t */\r\n\tconstructor(\r\n\t\tpublic message:string = null,\r\n\t\tinnerException:Error = null,\r\n\t\tbeforeSealing?:(ex:any)=>void)\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\t_.name = _.getName();\r\n\t\t_.data = {};\r\n\t\tif(innerException)\r\n\t\t\t_.data['innerException'] = innerException;\r\n\r\n\t\t/* Originally intended to use 'get' accessors for properties,\r\n\t\t * But debuggers don't display these readily yet.\r\n\t\t * Object.freeze has to be used carefully, but will prevent overriding values.\r\n\t\t */\r\n\r\n\t\tif(beforeSealing) beforeSealing(_);\r\n\r\n\t\t// Node has a .stack, let's use it...\r\n\t\ttry {\r\n\t\t\tvar stack:string = (new Error()).stack;\r\n\t\t\tstack = stack && stack.replace(/^Error\\n/,'').replace(/(.|\\n)+\\s+at new.+/,'') || '';\r\n\t\t\tthis.stack = _.toStringWithoutBrackets() + stack;\r\n\t\t} catch(ex) {}\r\n\r\n\t\tObject.freeze(_);\r\n\t}\r\n\r\n\tstack:string;\r\n\r\n\tdata:IMap;\r\n\r\n\t/**\r\n\t * A string representation of the error type.\r\n\t * The default is 'Error'.\r\n\t */\r\n\tprotected getName():string\r\n\t{ return NAME; }\r\n\r\n\t/**\r\n\t * The string representation of the Exception instance.\r\n\t */\r\n\ttoString():string\r\n\t{\r\n\t\treturn `[${this.toStringWithoutBrackets()}]`;\r\n\t}\r\n\r\n\tprotected toStringWithoutBrackets():string {\r\n\t\tvar _ = this, m = _.message;\r\n\t\treturn _.name + (m ? (': ' + m) : '');\r\n\t}\r\n\r\n\t/**\r\n\t * Clears the data object.\r\n\t */\r\n\tdispose():void\r\n\t{\r\n\t\tvar data = this.data;\r\n\t\tfor(let k in data)\r\n\t\t{\r\n\t\t\tif(data.hasOwnProperty(k))\r\n\t\t\t\tdelete data[k];\r\n\t\t}\r\n\t}\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Exception.js","System/Exception.ts"],"names":["define","require","exports","NAME","Exception","message","innerException","beforeSealing","this","_","name","getName","data","stack","Error","replace","toStringWithoutBrackets","ex","Object","freeze","prototype","toString","m","dispose","k","hasOwnProperty","defineProperty","value"],"mappings":";;;;;AAKAA,QAAQ,UAAW,WAAY,SAAUC,EAASC,GAC9C,YCEJ,IAAMC,GAAc,YAKpBC,EAAA,WAcC,QAAAA,GACQC,EACPC,EACAC,GAFA,SAAAF,IAAAA,EAAA,MACA,SAAAC,IAAAA,EAAA,MADOE,KAAAH,QAAAA,CAIP,IAAII,GAAID,IAERC,GAAEC,KAAOD,EAAEE,UACXF,EAAEG,QACCN,IACFG,EAAEG,KAAqB,eAAIN,GAOzBC,GAAeA,EAAcE,EAGhC,KACC,GAAII,IAAe,GAAUC,QAASD,KACtCA,GAAQA,GAASA,EAAME,QAAQ,WAAW,IAAIA,QAAQ,qBAAqB,KAAO,GAClFP,KAAKK,MAAQJ,EAAEO,0BAA4BH,EAC1C,MAAMI,IAERC,OAAOC,OAAOV,GAuChB,MA5BWL,GAAAgB,UAAAT,QAAV,WACE,MAAOR,IAKTC,EAAAgB,UAAAC,SAAA,WAEC,MAAO,IAAIb,KAAKQ,0BAAyB,KAGhCZ,EAAAgB,UAAAJ,wBAAV,WACC,GAAIP,GAAID,KAAMc,EAAIb,EAAEJ,OACpB,OAAOI,GAAEC,MAAQY,EAAK,KAAOA,EAAK,KAMnClB,EAAAgB,UAAAG,QAAA,WAEC,GAAIX,GAAOJ,KAAKI,IAChB,KAAI,GAAIY,KAAKZ,GAETA,EAAKa,eAAeD,UACfZ,GAAKY,IAGhBpB,IA/EaF,GAAAE,UAASA,EAiFtBc,OAAAQ,eAAAxB,EAAA,cAAAyB,OAAA,ID/CIzB,EAAAA,WC+CWE","file":"System/Exception.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\ndefine([\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var NAME = 'Exception';\n var Exception = (function () {\n function Exception(message, innerException, beforeSealing) {\n if (message === void 0) { message = null; }\n if (innerException === void 0) { innerException = null; }\n this.message = message;\n var _ = this;\n _.name = _.getName();\n _.data = {};\n if (innerException)\n _.data['innerException'] = innerException;\n if (beforeSealing)\n beforeSealing(_);\n try {\n var stack = (new Error()).stack;\n stack = stack && stack.replace(/^Error\\n/, '').replace(/(.|\\n)+\\s+at new.+/, '') || '';\n this.stack = _.toStringWithoutBrackets() + stack;\n }\n catch (ex) { }\n Object.freeze(_);\n }\n Exception.prototype.getName = function () { return NAME; };\n Exception.prototype.toString = function () {\n return \"[\" + this.toStringWithoutBrackets() + \"]\";\n };\n Exception.prototype.toStringWithoutBrackets = function () {\n var _ = this, m = _.message;\n return _.name + (m ? (': ' + m) : '');\n };\n Exception.prototype.dispose = function () {\n var data = this.data;\n for (var k in data) {\n if (data.hasOwnProperty(k))\n delete data[k];\n }\n };\n return Exception;\n }());\n exports.Exception = Exception;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Exception;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\nimport {IDisposable} from \"./Disposable/IDisposable\";\r\nimport {IMap} from \"./Collections/Dictionaries/IDictionary\";\r\nconst NAME:string = 'Exception';\r\n\r\n/**\r\n * Represents errors that occur during application execution.\r\n */\r\nexport class Exception implements Error, IDisposable\r\n{\r\n\t/**\r\n\t * A string representation of the error type.\r\n\t * The default is 'Error'.\r\n\t */\r\n\tname:string;\r\n\r\n\t/**\r\n\t * Initializes a new instance of the Exception class with a specified error message and optionally a reference to the inner exception that is the cause of this exception.\r\n\t * @param message\r\n\t * @param innerException\r\n\t * @param beforeSealing This delegate is used to allow actions to occur just before this constructor finishes. Since some compilers do not allow the use of 'this' before super.\r\n\t */\r\n\tconstructor(\r\n\t\tpublic message:string = null,\r\n\t\tinnerException:Error = null,\r\n\t\tbeforeSealing?:(ex:any)=>void)\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\t_.name = _.getName();\r\n\t\t_.data = {};\r\n\t\tif(innerException)\r\n\t\t\t_.data['innerException'] = innerException;\r\n\r\n\t\t/* Originally intended to use 'get' accessors for properties,\r\n\t\t * But debuggers don't display these readily yet.\r\n\t\t * Object.freeze has to be used carefully, but will prevent overriding values.\r\n\t\t */\r\n\r\n\t\tif(beforeSealing) beforeSealing(_);\r\n\r\n\t\t// Node has a .stack, let's use it...\r\n\t\ttry {\r\n\t\t\tvar stack:string = (new Error()).stack;\r\n\t\t\tstack = stack && stack.replace(/^Error\\n/,'').replace(/(.|\\n)+\\s+at new.+/,'') || '';\r\n\t\t\tthis.stack = _.toStringWithoutBrackets() + stack;\r\n\t\t} catch(ex) {}\r\n\r\n\t\tObject.freeze(_);\r\n\t}\r\n\r\n\tstack:string;\r\n\r\n\tdata:IMap;\r\n\r\n\t/**\r\n\t * A string representation of the error type.\r\n\t * The default is 'Error'.\r\n\t */\r\n\tprotected getName():string\r\n\t{ return NAME; }\r\n\r\n\t/**\r\n\t * The string representation of the Exception instance.\r\n\t */\r\n\ttoString():string\r\n\t{\r\n\t\treturn `[${this.toStringWithoutBrackets()}]`;\r\n\t}\r\n\r\n\tprotected toStringWithoutBrackets():string {\r\n\t\tvar _ = this, m = _.message;\r\n\t\treturn _.name + (m ? (': ' + m) : '');\r\n\t}\r\n\r\n\t/**\r\n\t * Clears the data object.\r\n\t */\r\n\tdispose():void\r\n\t{\r\n\t\tvar data = this.data;\r\n\t\tfor(let k in data)\r\n\t\t{\r\n\t\t\tif(data.hasOwnProperty(k))\r\n\t\t\t\tdelete data[k];\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default Exception;\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Exceptions/ArgumentException.d.ts b/dist/amd/System/Exceptions/ArgumentException.d.ts index eac4232c..59bd91e1 100644 --- a/dist/amd/System/Exceptions/ArgumentException.d.ts +++ b/dist/amd/System/Exceptions/ArgumentException.d.ts @@ -3,9 +3,10 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -import SystemException from "./SystemException"; -export default class ArgumentException extends SystemException { +import { SystemException } from "./SystemException"; +export declare class ArgumentException extends SystemException { paramName: string; constructor(paramName: string, message?: string, innerException?: Error, beforeSealing?: (ex: any) => void); protected getName(): string; } +export default ArgumentException; diff --git a/dist/amd/System/Exceptions/ArgumentException.js b/dist/amd/System/Exceptions/ArgumentException.js index c885c490..133d60a7 100644 --- a/dist/amd/System/Exceptions/ArgumentException.js +++ b/dist/amd/System/Exceptions/ArgumentException.js @@ -3,5 +3,5 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -var __extends=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)};define(["require","exports","./SystemException","../Text/Utility"],function(t,e,n,r){"use strict";var o="ArgumentException",i=function(t){function e(e,n,o,i){void 0===n&&(n=null),void 0===o&&(o=null);var u=e?"{"+e+"} ":"";t.call(this,r.trim(u+(n||"")),o,function(t){t.paramName=e,i&&i(t)})}return __extends(e,t),e.prototype.getName=function(){return o},e}(n["default"]);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=i}); +var __extends=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)};define(["require","exports","./SystemException","../Text/Utility"],function(t,e,n,o){"use strict";var r="ArgumentException",i=function(t){function e(e,n,r,i){void 0===n&&(n=null),void 0===r&&(r=null);var u=e?"{"+e+"} ":"";t.call(this,o.trim(u+(n||"")),r,function(t){t.paramName=e,i&&i(t)})}return __extends(e,t),e.prototype.getName=function(){return r},e}(n.SystemException);e.ArgumentException=i,Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=i}); //# sourceMappingURL=ArgumentException.js.map diff --git a/dist/amd/System/Exceptions/ArgumentException.js.map b/dist/amd/System/Exceptions/ArgumentException.js.map index 16a35c75..69a1b338 100644 --- a/dist/amd/System/Exceptions/ArgumentException.js.map +++ b/dist/amd/System/Exceptions/ArgumentException.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Exceptions/ArgumentException.js","System/Exceptions/ArgumentException.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","SystemException_1","Utility_1","NAME","ArgumentException","_super","paramName","message","innerException","beforeSealing","pn","call","trim","_","getName","defineProperty","value"],"mappings":";;;;;AAKA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,oBAAqB,mBAAoB,SAAUC,EAASC,EAASC,EAAmBC,GCJtH,YAMA,IAAMC,GAAc,oBAEpBC,EAAA,SAAAC,GAOC,QAAAD,GACCE,EACAC,EACAC,EACAC,GAFA,SAAAF,IAAAA,EAAA,MACA,SAAAC,IAAAA,EAAA,KAGA,IAAIE,GAAKJ,EAAa,IAAMA,EAAY,KAAQ,EAChDD,GAAAM,KAAAvB,KAAMc,EAAAU,KAAKF,GAAMH,GAAS,KAAMC,EAAgB,SAACK,GAChDA,EAAEP,UAAYA,EACXG,GAAeA,EAAcI,KAUnC,MAzBgC1B,WAAAiB,EAAAC,GAoBrBD,EAAAT,UAAAmB,QAAV,WAEC,MAAOX,IAGTC,GAzBgCH,EAAAA,WADhCL,QAAAmB,eAAAf,EAAA,cAAAgB,OAAA,IDiBIhB,EAAAA,WAAkBI","file":"System/Exceptions/ArgumentException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"./SystemException\", \"../Text/Utility\"], function (require, exports, SystemException_1, Utility_1) {\n 'use strict';\n var NAME = 'ArgumentException';\n var ArgumentException = (function (_super) {\n __extends(ArgumentException, _super);\n function ArgumentException(paramName, message, innerException, beforeSealing) {\n if (message === void 0) { message = null; }\n if (innerException === void 0) { innerException = null; }\n var pn = paramName ? ('{' + paramName + '} ') : '';\n _super.call(this, Utility_1.trim(pn + (message || '')), innerException, function (_) {\n _.paramName = paramName;\n if (beforeSealing)\n beforeSealing(_);\n });\n }\n ArgumentException.prototype.getName = function () {\n return NAME;\n };\n return ArgumentException;\n }(SystemException_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ArgumentException;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport SystemException from \"./SystemException\";\r\nimport {trim} from \"../Text/Utility\";\r\n\r\n\r\nconst NAME:string = 'ArgumentException';\r\n\r\nexport default\r\nclass ArgumentException extends SystemException\r\n{\r\n\r\n\tparamName:string;\r\n\r\n\t// For simplicity and consistency, lets stick with 1 signature.\r\n\tconstructor(\r\n\t\tparamName:string,\r\n\t\tmessage:string = null,\r\n\t\tinnerException:Error = null,\r\n\t\tbeforeSealing?:(ex:any)=>void)\r\n\t{\r\n\t\tvar pn = paramName ? ('{' + paramName + '} ') : '';\r\n\t\tsuper(trim(pn + (message||'')), innerException, (_)=>{\r\n\t\t\t_.paramName = paramName;\r\n\t\t\tif(beforeSealing) beforeSealing(_);\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Exceptions/ArgumentException.js","System/Exceptions/ArgumentException.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","SystemException_1","Utility_1","NAME","ArgumentException","_super","paramName","message","innerException","beforeSealing","pn","call","trim","_","getName","SystemException","defineProperty","value"],"mappings":";;;;;AAKA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,oBAAqB,mBAAoB,SAAUC,EAASC,EAASC,EAAmBC,GAClH,YCAJ,IAAMC,GAAc,oBAEpBC,EAAA,SAAAC,GAMC,QAAAD,GACCE,EACAC,EACAC,EACAC,GAFA,SAAAF,IAAAA,EAAA,MACA,SAAAC,IAAAA,EAAA,KAGA,IAAIE,GAAKJ,EAAa,IAAMA,EAAY,KAAQ,EAChDD,GAAAM,KAAAvB,KAAMc,EAAAU,KAAKF,GAAMH,GAAS,KAAMC,EAAgB,SAACK,GAChDA,EAAEP,UAAYA,EACXG,GAAeA,EAAcI,KAUnC,MAzBuC1B,WAAAiB,EAAAC,GAoB5BD,EAAAT,UAAAmB,QAAV,WAEC,MAAOX,IAGTC,GAzBuCH,EAAAc,gBAA1Bf,GAAAI,kBAAiBA,EA2B9BR,OAAAoB,eAAAhB,EAAA,cAAAiB,OAAA,IDRIjB,EAAAA,WCQWI","file":"System/Exceptions/ArgumentException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"./SystemException\", \"../Text/Utility\"], function (require, exports, SystemException_1, Utility_1) {\n \"use strict\";\n var NAME = 'ArgumentException';\n var ArgumentException = (function (_super) {\n __extends(ArgumentException, _super);\n function ArgumentException(paramName, message, innerException, beforeSealing) {\n if (message === void 0) { message = null; }\n if (innerException === void 0) { innerException = null; }\n var pn = paramName ? ('{' + paramName + '} ') : '';\n _super.call(this, Utility_1.trim(pn + (message || '')), innerException, function (_) {\n _.paramName = paramName;\n if (beforeSealing)\n beforeSealing(_);\n });\n }\n ArgumentException.prototype.getName = function () {\n return NAME;\n };\n return ArgumentException;\n }(SystemException_1.SystemException));\n exports.ArgumentException = ArgumentException;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ArgumentException;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\n\r\nimport {SystemException} from \"./SystemException\";\r\nimport {trim} from \"../Text/Utility\";\r\n\r\n\r\nconst NAME:string = 'ArgumentException';\r\n\r\nexport class ArgumentException extends SystemException\r\n{\r\n\r\n\tparamName:string;\r\n\r\n\t// For simplicity and consistency, lets stick with 1 signature.\r\n\tconstructor(\r\n\t\tparamName:string,\r\n\t\tmessage:string = null,\r\n\t\tinnerException:Error = null,\r\n\t\tbeforeSealing?:(ex:any)=>void)\r\n\t{\r\n\t\tvar pn = paramName ? ('{' + paramName + '} ') : '';\r\n\t\tsuper(trim(pn + (message||'')), innerException, (_)=>{\r\n\t\t\t_.paramName = paramName;\r\n\t\t\tif(beforeSealing) beforeSealing(_);\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n\r\n}\r\n\r\nexport default ArgumentException;"]} \ No newline at end of file diff --git a/dist/amd/System/Exceptions/ArgumentNullException.d.ts b/dist/amd/System/Exceptions/ArgumentNullException.d.ts index 5cc13038..5d73f022 100644 --- a/dist/amd/System/Exceptions/ArgumentNullException.d.ts +++ b/dist/amd/System/Exceptions/ArgumentNullException.d.ts @@ -3,8 +3,9 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -import ArgumentException from './ArgumentException'; -export default class ArgumentNullException extends ArgumentException { +import { ArgumentException } from "./ArgumentException"; +export declare class ArgumentNullException extends ArgumentException { constructor(paramName: string, message?: string, innerException?: Error); protected getName(): string; } +export default ArgumentNullException; diff --git a/dist/amd/System/Exceptions/ArgumentNullException.js b/dist/amd/System/Exceptions/ArgumentNullException.js index f0fc319a..f9fa725f 100644 --- a/dist/amd/System/Exceptions/ArgumentNullException.js +++ b/dist/amd/System/Exceptions/ArgumentNullException.js @@ -3,5 +3,5 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -var __extends=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)};define(["require","exports","./ArgumentException"],function(t,e,n){"use strict";var o="ArgumentNullException",r=function(t){function e(e,n,o){void 0===n&&(n=""),void 0===o&&(o=null),t.call(this,e,n,o)}return __extends(e,t),e.prototype.getName=function(){return o},e}(n["default"]);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r}); +var __extends=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)};define(["require","exports","./ArgumentException"],function(t,e,n){"use strict";var o="ArgumentNullException",r=function(t){function e(e,n,o){void 0===n&&(n=""),void 0===o&&(o=null),t.call(this,e,n,o)}return __extends(e,t),e.prototype.getName=function(){return o},e}(n.ArgumentException);e.ArgumentNullException=r,Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r}); //# sourceMappingURL=ArgumentNullException.js.map diff --git a/dist/amd/System/Exceptions/ArgumentNullException.js.map b/dist/amd/System/Exceptions/ArgumentNullException.js.map index 32ce994a..e8f5859e 100644 --- a/dist/amd/System/Exceptions/ArgumentNullException.js.map +++ b/dist/amd/System/Exceptions/ArgumentNullException.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Exceptions/ArgumentNullException.js","System/Exceptions/ArgumentNullException.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","ArgumentException_1","NAME","ArgumentNullException","_super","paramName","message","innerException","call","getName","defineProperty","value"],"mappings":";;;;;AAKA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,uBAAwB,SAAUC,EAASC,EAASC,GCJlF,YAKA,IAAMC,GAAc,wBAEpBC,EAAA,SAAAC,GAGC,QAAAD,GACCE,EACAC,EACAC,GADA,SAAAD,IAAAA,EAAA,IACA,SAAAC,IAAAA,EAAA,MAEAH,EAAAI,KAAApB,KAAMiB,EAAWC,EAASC,GAQ5B,MAfoCpB,WAAAgB,EAAAC,GAUzBD,EAAAR,UAAAc,QAAV,WAEC,MAAOP,IAGTC,GAfoCF,EAAAA,WADpCL,QAAAc,eAAAV,EAAA,cAAAW,OAAA,IDaIX,EAAAA,WAAkBG","file":"System/Exceptions/ArgumentNullException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", './ArgumentException'], function (require, exports, ArgumentException_1) {\n 'use strict';\n var NAME = 'ArgumentNullException';\n var ArgumentNullException = (function (_super) {\n __extends(ArgumentNullException, _super);\n function ArgumentNullException(paramName, message, innerException) {\n if (message === void 0) { message = ''; }\n if (innerException === void 0) { innerException = null; }\n _super.call(this, paramName, message, innerException);\n }\n ArgumentNullException.prototype.getName = function () {\n return NAME;\n };\n return ArgumentNullException;\n }(ArgumentException_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ArgumentNullException;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport ArgumentException from './ArgumentException';\r\n\r\n\r\nconst NAME:string = 'ArgumentNullException';\r\n\r\nexport default\r\nclass ArgumentNullException extends ArgumentException\r\n{\r\n\tconstructor(\r\n\t\tparamName:string,\r\n\t\tmessage:string = '',\r\n\t\tinnerException:Error = null)\r\n\t{\r\n\t\tsuper(paramName, message, innerException);\r\n\t}\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Exceptions/ArgumentNullException.js","System/Exceptions/ArgumentNullException.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","ArgumentException_1","NAME","ArgumentNullException","_super","paramName","message","innerException","call","getName","ArgumentException","defineProperty","value"],"mappings":";;;;;AAKA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,uBAAwB,SAAUC,EAASC,EAASC,GAC9E,YCHJ,IAAMC,GAAc,wBAEpBC,EAAA,SAAAC,GAEC,QAAAD,GACCE,EACAC,EACAC,GADA,SAAAD,IAAAA,EAAA,IACA,SAAAC,IAAAA,EAAA,MAEAH,EAAAI,KAAApB,KAAMiB,EAAWC,EAASC,GAQ5B,MAf2CpB,WAAAgB,EAAAC,GAUhCD,EAAAR,UAAAc,QAAV,WAEC,MAAOP,IAGTC,GAf2CF,EAAAS,kBAA9BV,GAAAG,sBAAqBA,EAiBlCP,OAAAe,eAAAX,EAAA,cAAAY,OAAA,IDAIZ,EAAAA,WCAWG","file":"System/Exceptions/ArgumentNullException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"./ArgumentException\"], function (require, exports, ArgumentException_1) {\n \"use strict\";\n var NAME = 'ArgumentNullException';\n var ArgumentNullException = (function (_super) {\n __extends(ArgumentNullException, _super);\n function ArgumentNullException(paramName, message, innerException) {\n if (message === void 0) { message = ''; }\n if (innerException === void 0) { innerException = null; }\n _super.call(this, paramName, message, innerException);\n }\n ArgumentNullException.prototype.getName = function () {\n return NAME;\n };\n return ArgumentNullException;\n }(ArgumentException_1.ArgumentException));\n exports.ArgumentNullException = ArgumentNullException;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ArgumentNullException;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\nimport {ArgumentException} from \"./ArgumentException\";\r\n\r\nconst NAME:string = 'ArgumentNullException';\r\n\r\nexport class ArgumentNullException extends ArgumentException\r\n{\r\n\tconstructor(\r\n\t\tparamName:string,\r\n\t\tmessage:string = '',\r\n\t\tinnerException:Error = null)\r\n\t{\r\n\t\tsuper(paramName, message, innerException);\r\n\t}\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n\r\n}\r\n\r\nexport default ArgumentNullException;"]} \ No newline at end of file diff --git a/dist/amd/System/Exceptions/ArgumentOutOfRangeException.d.ts b/dist/amd/System/Exceptions/ArgumentOutOfRangeException.d.ts index 4fd62443..83d0e92b 100644 --- a/dist/amd/System/Exceptions/ArgumentOutOfRangeException.d.ts +++ b/dist/amd/System/Exceptions/ArgumentOutOfRangeException.d.ts @@ -3,10 +3,11 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -import Exception from "../Exception"; -import ArgumentException from "./ArgumentException"; -export default class ArgumentOutOfRangeException extends ArgumentException { +import { Exception } from "../Exception"; +import { ArgumentException } from "./ArgumentException"; +export declare class ArgumentOutOfRangeException extends ArgumentException { actualValue: string | number | boolean; constructor(paramName: string, actualValue: string | number | boolean, message?: string, innerException?: Exception); protected getName(): string; } +export default ArgumentOutOfRangeException; diff --git a/dist/amd/System/Exceptions/ArgumentOutOfRangeException.js b/dist/amd/System/Exceptions/ArgumentOutOfRangeException.js index 4161cb43..ea44af3a 100644 --- a/dist/amd/System/Exceptions/ArgumentOutOfRangeException.js +++ b/dist/amd/System/Exceptions/ArgumentOutOfRangeException.js @@ -3,5 +3,5 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -var __extends=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)};define(["require","exports","./ArgumentException"],function(t,e,n){"use strict";var o="ArgumentOutOfRangeException",r=function(t){function e(e,n,o,r){void 0===o&&(o=" "),void 0===r&&(r=null),t.call(this,e,+("("+n+") ")+o,r,function(t){t.actualValue=n})}return __extends(e,t),e.prototype.getName=function(){return o},e}(n["default"]);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r}); +var __extends=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)};define(["require","exports","./ArgumentException"],function(t,e,n){"use strict";var o="ArgumentOutOfRangeException",r=function(t){function e(e,n,o,r){void 0===o&&(o=" "),void 0===r&&(r=null),t.call(this,e,+("("+n+") ")+o,r,function(t){t.actualValue=n})}return __extends(e,t),e.prototype.getName=function(){return o},e}(n.ArgumentException);e.ArgumentOutOfRangeException=r,Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r}); //# sourceMappingURL=ArgumentOutOfRangeException.js.map diff --git a/dist/amd/System/Exceptions/ArgumentOutOfRangeException.js.map b/dist/amd/System/Exceptions/ArgumentOutOfRangeException.js.map index ba2cc5c4..4c6ee1e9 100644 --- a/dist/amd/System/Exceptions/ArgumentOutOfRangeException.js.map +++ b/dist/amd/System/Exceptions/ArgumentOutOfRangeException.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Exceptions/ArgumentOutOfRangeException.js","System/Exceptions/ArgumentOutOfRangeException.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","ArgumentException_1","NAME","ArgumentOutOfRangeException","_super","paramName","actualValue","message","innerException","call","_","getName","defineProperty","value"],"mappings":";;;;;AAKA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,uBAAwB,SAAUC,EAASC,EAASC,GAC9E,YCAJ,IAAMC,GAAc,8BAEpBC,EAAA,SAAAC,GAKC,QAAAD,GACCE,EACAC,EACAC,EACAC,GADA,SAAAD,IAAAA,EAAA,KACA,SAAAC,IAAAA,EAAA,MAEAJ,EAAAK,KAAArB,KAAMiB,IAAa,IAAIC,EAAW,MAAOC,EAAUC,EAAgB,SAACE,GACnEA,EAAEJ,YAAcA,IAUnB,MArB0CnB,WAAAgB,EAAAC,GAgB/BD,EAAAR,UAAAgB,QAAV,WAEC,MAAOT,IAGTC,GArB0CF,EAAAA,WAD1CL,QAAAgB,eAAAZ,EAAA,cAAAa,OAAA,IDgBIb,EAAAA,WAAkBG","file":"System/Exceptions/ArgumentOutOfRangeException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"./ArgumentException\"], function (require, exports, ArgumentException_1) {\n \"use strict\";\n 'use strict';\n var NAME = 'ArgumentOutOfRangeException';\n var ArgumentOutOfRangeException = (function (_super) {\n __extends(ArgumentOutOfRangeException, _super);\n function ArgumentOutOfRangeException(paramName, actualValue, message, innerException) {\n if (message === void 0) { message = ' '; }\n if (innerException === void 0) { innerException = null; }\n _super.call(this, paramName, +(\"(\" + actualValue + \") \") + message, innerException, function (_) {\n _.actualValue = actualValue;\n });\n }\n ArgumentOutOfRangeException.prototype.getName = function () {\n return NAME;\n };\n return ArgumentOutOfRangeException;\n }(ArgumentException_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ArgumentOutOfRangeException;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\nimport Exception from \"../Exception\";\r\nimport ArgumentException from \"./ArgumentException\";\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n\r\nconst NAME:string = 'ArgumentOutOfRangeException';\r\n\r\nexport default\r\nclass ArgumentOutOfRangeException extends ArgumentException\r\n{\r\n\tactualValue:string|number|boolean;\r\n\r\n\tconstructor(\r\n\t\tparamName:string,\r\n\t\tactualValue:string|number|boolean,\r\n\t\tmessage:string = ' ',\r\n\t\tinnerException:Exception = null)\r\n\t{\r\n\t\tsuper(paramName, + `(${actualValue}) ` + message , innerException, (_)=>{\r\n\t\t\t_.actualValue = actualValue;\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Exceptions/ArgumentOutOfRangeException.js","System/Exceptions/ArgumentOutOfRangeException.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","ArgumentException_1","NAME","ArgumentOutOfRangeException","_super","paramName","actualValue","message","innerException","call","_","getName","ArgumentException","defineProperty","value"],"mappings":";;;;;AAKA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,uBAAwB,SAAUC,EAASC,EAASC,GAC9E,YCDJ,IAAMC,GAAc,8BAEpBC,EAAA,SAAAC,GAIC,QAAAD,GACCE,EACAC,EACAC,EACAC,GADA,SAAAD,IAAAA,EAAA,KACA,SAAAC,IAAAA,EAAA,MAEAJ,EAAAK,KAAArB,KAAMiB,IAAa,IAAIC,EAAW,MAAOC,EAAUC,EAAgB,SAACE,GACnEA,EAAEJ,YAAcA,IAUnB,MArBiDnB,WAAAgB,EAAAC,GAgBtCD,EAAAR,UAAAgB,QAAV,WAEC,MAAOT,IAGTC,GArBiDF,EAAAW,kBAApCZ,GAAAG,4BAA2BA,EAuBxCP,OAAAiB,eAAAb,EAAA,cAAAc,OAAA,IDNId,EAAAA,WCMWG","file":"System/Exceptions/ArgumentOutOfRangeException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"./ArgumentException\"], function (require, exports, ArgumentException_1) {\n \"use strict\";\n var NAME = 'ArgumentOutOfRangeException';\n var ArgumentOutOfRangeException = (function (_super) {\n __extends(ArgumentOutOfRangeException, _super);\n function ArgumentOutOfRangeException(paramName, actualValue, message, innerException) {\n if (message === void 0) { message = ' '; }\n if (innerException === void 0) { innerException = null; }\n _super.call(this, paramName, +(\"(\" + actualValue + \") \") + message, innerException, function (_) {\n _.actualValue = actualValue;\n });\n }\n ArgumentOutOfRangeException.prototype.getName = function () {\n return NAME;\n };\n return ArgumentOutOfRangeException;\n }(ArgumentException_1.ArgumentException));\n exports.ArgumentOutOfRangeException = ArgumentOutOfRangeException;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ArgumentOutOfRangeException;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\n\r\nimport {Exception} from \"../Exception\";\r\nimport {ArgumentException} from \"./ArgumentException\";\r\n\r\nconst NAME:string = 'ArgumentOutOfRangeException';\r\n\r\nexport class ArgumentOutOfRangeException extends ArgumentException\r\n{\r\n\tactualValue:string|number|boolean;\r\n\r\n\tconstructor(\r\n\t\tparamName:string,\r\n\t\tactualValue:string|number|boolean,\r\n\t\tmessage:string = ' ',\r\n\t\tinnerException:Exception = null)\r\n\t{\r\n\t\tsuper(paramName, + `(${actualValue}) ` + message , innerException, (_)=>{\r\n\t\t\t_.actualValue = actualValue;\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n\r\n}\r\n\r\nexport default ArgumentOutOfRangeException;"]} \ No newline at end of file diff --git a/dist/amd/System/Exceptions/InvalidOperationException.d.ts b/dist/amd/System/Exceptions/InvalidOperationException.d.ts index 4f422d04..a39ff871 100644 --- a/dist/amd/System/Exceptions/InvalidOperationException.d.ts +++ b/dist/amd/System/Exceptions/InvalidOperationException.d.ts @@ -3,7 +3,8 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -import SystemException from './SystemException'; -export default class InvalidOperationException extends SystemException { +import { SystemException } from "./SystemException"; +export declare class InvalidOperationException extends SystemException { protected getName(): string; } +export default InvalidOperationException; diff --git a/dist/amd/System/Exceptions/InvalidOperationException.js b/dist/amd/System/Exceptions/InvalidOperationException.js index 736202b5..1ae7bd07 100644 --- a/dist/amd/System/Exceptions/InvalidOperationException.js +++ b/dist/amd/System/Exceptions/InvalidOperationException.js @@ -3,5 +3,5 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -var __extends=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)};define(["require","exports","./SystemException"],function(t,e,n){"use strict";var o="InvalidOperationException",r=function(t){function e(){t.apply(this,arguments)}return __extends(e,t),e.prototype.getName=function(){return o},e}(n["default"]);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r}); +var __extends=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)};define(["require","exports","./SystemException"],function(t,e,n){"use strict";var o="InvalidOperationException",r=function(t){function e(){t.apply(this,arguments)}return __extends(e,t),e.prototype.getName=function(){return o},e}(n.SystemException);e.InvalidOperationException=r,Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r}); //# sourceMappingURL=InvalidOperationException.js.map diff --git a/dist/amd/System/Exceptions/InvalidOperationException.js.map b/dist/amd/System/Exceptions/InvalidOperationException.js.map index b028868b..4c641684 100644 --- a/dist/amd/System/Exceptions/InvalidOperationException.js.map +++ b/dist/amd/System/Exceptions/InvalidOperationException.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Exceptions/InvalidOperationException.js","System/Exceptions/InvalidOperationException.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","SystemException_1","NAME","InvalidOperationException","_super","apply","arguments","getName","defineProperty","value"],"mappings":";;;;;AAKA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,qBAAsB,SAAUC,EAASC,EAASC,GCJhF,YAKA,IAAMC,GAAc,4BAEpBC,EAAA,SAAAC,GAAA,QAAAD,KACwCC,EAAAC,MAAAjB,KAAAkB,WAOxC,MAPwCnB,WAAAgB,EAAAC,GAE7BD,EAAAR,UAAAY,QAAV,WAEC,MAAOL,IAGTC,GAPwCF,EAAAA,WADxCL,QAAAY,eAAAR,EAAA,cAAAS,OAAA,IDWIT,EAAAA,WAAkBG","file":"System/Exceptions/InvalidOperationException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", './SystemException'], function (require, exports, SystemException_1) {\n 'use strict';\n var NAME = 'InvalidOperationException';\n var InvalidOperationException = (function (_super) {\n __extends(InvalidOperationException, _super);\n function InvalidOperationException() {\n _super.apply(this, arguments);\n }\n InvalidOperationException.prototype.getName = function () {\n return NAME;\n };\n return InvalidOperationException;\n }(SystemException_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = InvalidOperationException;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport SystemException from './SystemException';\r\n\r\n\r\nconst NAME:string = 'InvalidOperationException';\r\n\r\nexport default\r\nclass InvalidOperationException extends SystemException {\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Exceptions/InvalidOperationException.js","System/Exceptions/InvalidOperationException.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","SystemException_1","NAME","InvalidOperationException","_super","apply","arguments","getName","SystemException","defineProperty","value"],"mappings":";;;;;AAKA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,qBAAsB,SAAUC,EAASC,EAASC,GAC5E,YCHJ,IAAMC,GAAc,4BAEpBC,EAAA,SAAAC,GAAA,QAAAD,KAA+CC,EAAAC,MAAAjB,KAAAkB,WAQ/C,MAR+CnB,WAAAgB,EAAAC,GAGpCD,EAAAR,UAAAY,QAAV,WAEC,MAAOL,IAGTC,GAR+CF,EAAAO,gBAAlCR,GAAAG,0BAAyBA,EAUtCP,OAAAa,eAAAT,EAAA,cAAAU,OAAA,IDKIV,EAAAA,WCLWG","file":"System/Exceptions/InvalidOperationException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"./SystemException\"], function (require, exports, SystemException_1) {\n \"use strict\";\n var NAME = 'InvalidOperationException';\n var InvalidOperationException = (function (_super) {\n __extends(InvalidOperationException, _super);\n function InvalidOperationException() {\n _super.apply(this, arguments);\n }\n InvalidOperationException.prototype.getName = function () {\n return NAME;\n };\n return InvalidOperationException;\n }(SystemException_1.SystemException));\n exports.InvalidOperationException = InvalidOperationException;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = InvalidOperationException;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\nimport {SystemException} from \"./SystemException\";\r\n\r\nconst NAME:string = 'InvalidOperationException';\r\n\r\nexport class InvalidOperationException extends SystemException\r\n{\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n\r\n}\r\n\r\nexport default InvalidOperationException;\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Exceptions/NotImplementedException.d.ts b/dist/amd/System/Exceptions/NotImplementedException.d.ts index 0225eeb8..a52e3a18 100644 --- a/dist/amd/System/Exceptions/NotImplementedException.d.ts +++ b/dist/amd/System/Exceptions/NotImplementedException.d.ts @@ -3,7 +3,8 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -import SystemException from './SystemException'; -export default class NotImplementedException extends SystemException { +import { SystemException } from "./SystemException"; +export declare class NotImplementedException extends SystemException { protected getName(): string; } +export default NotImplementedException; diff --git a/dist/amd/System/Exceptions/NotImplementedException.js b/dist/amd/System/Exceptions/NotImplementedException.js index 79ef8e6a..4ef9c5b7 100644 --- a/dist/amd/System/Exceptions/NotImplementedException.js +++ b/dist/amd/System/Exceptions/NotImplementedException.js @@ -3,5 +3,5 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -var __extends=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)};define(["require","exports","./SystemException"],function(t,e,n){"use strict";var o="NotImplementedException",r=function(t){function e(){t.apply(this,arguments)}return __extends(e,t),e.prototype.getName=function(){return o},e}(n["default"]);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r}); +var __extends=this&&this.__extends||function(e,t){function n(){this.constructor=e}for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)};define(["require","exports","./SystemException"],function(e,t,n){"use strict";var o="NotImplementedException",r=function(e){function t(){e.apply(this,arguments)}return __extends(t,e),t.prototype.getName=function(){return o},t}(n.SystemException);t.NotImplementedException=r,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=r}); //# sourceMappingURL=NotImplementedException.js.map diff --git a/dist/amd/System/Exceptions/NotImplementedException.js.map b/dist/amd/System/Exceptions/NotImplementedException.js.map index a84595ed..01f846e9 100644 --- a/dist/amd/System/Exceptions/NotImplementedException.js.map +++ b/dist/amd/System/Exceptions/NotImplementedException.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Exceptions/NotImplementedException.js","System/Exceptions/NotImplementedException.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","SystemException_1","NAME","NotImplementedException","_super","apply","arguments","getName","defineProperty","value"],"mappings":";;;;;AAKA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,qBAAsB,SAAUC,EAASC,EAASC,GCJhF,YAKA,IAAMC,GAAc,0BAEpBC,EAAA,SAAAC,GAAA,QAAAD,KACsCC,EAAAC,MAAAjB,KAAAkB,WAOtC,MAPsCnB,WAAAgB,EAAAC,GAE3BD,EAAAR,UAAAY,QAAV,WAEC,MAAOL,IAGTC,GAPsCF,EAAAA,WADtCL,QAAAY,eAAAR,EAAA,cAAAS,OAAA,IDWIT,EAAAA,WAAkBG","file":"System/Exceptions/NotImplementedException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", './SystemException'], function (require, exports, SystemException_1) {\n 'use strict';\n var NAME = 'NotImplementedException';\n var NotImplementedException = (function (_super) {\n __extends(NotImplementedException, _super);\n function NotImplementedException() {\n _super.apply(this, arguments);\n }\n NotImplementedException.prototype.getName = function () {\n return NAME;\n };\n return NotImplementedException;\n }(SystemException_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = NotImplementedException;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport SystemException from './SystemException';\r\n\r\n\r\nconst NAME:string = 'NotImplementedException';\r\n\r\nexport default\r\nclass NotImplementedException extends SystemException {\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Exceptions/NotImplementedException.js","System/Exceptions/NotImplementedException.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","SystemException_1","NAME","NotImplementedException","_super","apply","arguments","getName","SystemException","defineProperty","value"],"mappings":";;;;;AAKA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,qBAAsB,SAAUC,EAASC,EAASC,GAC5E,YCHJ,IAAMC,GAAc,0BAEpBC,EAAA,SAAAC,GAAA,QAAAD,KAA6CC,EAAAC,MAAAjB,KAAAkB,WAQ7C,MAR6CnB,WAAAgB,EAAAC,GAGlCD,EAAAR,UAAAY,QAAV,WAEC,MAAOL,IAGTC,GAR6CF,EAAAO,gBAAhCR,GAAAG,wBAAuBA,EAUpCP,OAAAa,eAAAT,EAAA,cAAAU,OAAA,IDKIV,EAAAA,WCLWG","file":"System/Exceptions/NotImplementedException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"./SystemException\"], function (require, exports, SystemException_1) {\n \"use strict\";\n var NAME = 'NotImplementedException';\n var NotImplementedException = (function (_super) {\n __extends(NotImplementedException, _super);\n function NotImplementedException() {\n _super.apply(this, arguments);\n }\n NotImplementedException.prototype.getName = function () {\n return NAME;\n };\n return NotImplementedException;\n }(SystemException_1.SystemException));\n exports.NotImplementedException = NotImplementedException;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = NotImplementedException;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\nimport {SystemException} from \"./SystemException\";\r\n\r\nconst NAME:string = 'NotImplementedException';\r\n\r\nexport class NotImplementedException extends SystemException\r\n{\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n\r\n}\r\n\r\nexport default NotImplementedException"]} \ No newline at end of file diff --git a/dist/amd/System/Exceptions/NullReferenceException.d.ts b/dist/amd/System/Exceptions/NullReferenceException.d.ts index 780b64a6..42c3373b 100644 --- a/dist/amd/System/Exceptions/NullReferenceException.d.ts +++ b/dist/amd/System/Exceptions/NullReferenceException.d.ts @@ -3,7 +3,7 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -import SystemException from './SystemException'; +import { SystemException } from "./SystemException"; export default class NullReferenceException extends SystemException { protected getName(): string; } diff --git a/dist/amd/System/Exceptions/NullReferenceException.js b/dist/amd/System/Exceptions/NullReferenceException.js index d2cccbb5..d9c75aec 100644 --- a/dist/amd/System/Exceptions/NullReferenceException.js +++ b/dist/amd/System/Exceptions/NullReferenceException.js @@ -3,5 +3,5 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -var __extends=this&&this.__extends||function(e,t){function n(){this.constructor=e}for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)};define(["require","exports","./SystemException"],function(e,t,n){"use strict";var r="NullReferenceException",o=function(e){function t(){e.apply(this,arguments)}return __extends(t,e),t.prototype.getName=function(){return r},t}(n["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=o}); +var __extends=this&&this.__extends||function(e,t){function n(){this.constructor=e}for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)};define(["require","exports","./SystemException"],function(e,t,n){"use strict";var o="NullReferenceException",r=function(e){function t(){e.apply(this,arguments)}return __extends(t,e),t.prototype.getName=function(){return o},t}(n.SystemException);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=r}); //# sourceMappingURL=NullReferenceException.js.map diff --git a/dist/amd/System/Exceptions/NullReferenceException.js.map b/dist/amd/System/Exceptions/NullReferenceException.js.map index ad78a945..ebfa4548 100644 --- a/dist/amd/System/Exceptions/NullReferenceException.js.map +++ b/dist/amd/System/Exceptions/NullReferenceException.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Exceptions/NullReferenceException.js","System/Exceptions/NullReferenceException.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","SystemException_1","NAME","NullReferenceException","_super","apply","arguments","getName","defineProperty","value"],"mappings":";;;;;AAKA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,qBAAsB,SAAUC,EAASC,EAASC,GCJhF,YAKA,IAAMC,GAAc,yBAEpBC,EAAA,SAAAC,GAAA,QAAAD,KACqCC,EAAAC,MAAAjB,KAAAkB,WAOrC,MAPqCnB,WAAAgB,EAAAC,GAE1BD,EAAAR,UAAAY,QAAV,WAEC,MAAOL,IAGTC,GAPqCF,EAAAA,WADrCL,QAAAY,eAAAR,EAAA,cAAAS,OAAA,IDWIT,EAAAA,WAAkBG","file":"System/Exceptions/NullReferenceException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", './SystemException'], function (require, exports, SystemException_1) {\n 'use strict';\n var NAME = 'NullReferenceException';\n var NullReferenceException = (function (_super) {\n __extends(NullReferenceException, _super);\n function NullReferenceException() {\n _super.apply(this, arguments);\n }\n NullReferenceException.prototype.getName = function () {\n return NAME;\n };\n return NullReferenceException;\n }(SystemException_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = NullReferenceException;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport SystemException from './SystemException';\r\n\r\n\r\nconst NAME:string = 'NullReferenceException';\r\n\r\nexport default\r\nclass NullReferenceException extends SystemException {\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Exceptions/NullReferenceException.js","System/Exceptions/NullReferenceException.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","SystemException_1","NAME","NullReferenceException","_super","apply","arguments","getName","SystemException","defineProperty","value"],"mappings":";;;;;AAKA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,qBAAsB,SAAUC,EAASC,EAASC,GAC5E,YCFJ,IAAMC,GAAc,yBAEpBC,EAAA,SAAAC,GAAA,QAAAD,KACqCC,EAAAC,MAAAjB,KAAAkB,WAOrC,MAPqCnB,WAAAgB,EAAAC,GAE1BD,EAAAR,UAAAY,QAAV,WAEC,MAAOL,IAGTC,GAPqCF,EAAAO,gBADrCZ,QAAAa,eAAAT,EAAA,cAAAU,OAAA,IDaIV,EAAAA,WAAkBG","file":"System/Exceptions/NullReferenceException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"./SystemException\"], function (require, exports, SystemException_1) {\n \"use strict\";\n var NAME = 'NullReferenceException';\n var NullReferenceException = (function (_super) {\n __extends(NullReferenceException, _super);\n function NullReferenceException() {\n _super.apply(this, arguments);\n }\n NullReferenceException.prototype.getName = function () {\n return NAME;\n };\n return NullReferenceException;\n }(SystemException_1.SystemException));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = NullReferenceException;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\n\r\nimport {SystemException} from \"./SystemException\";\r\n\r\nconst NAME:string = 'NullReferenceException';\r\n\r\nexport default\r\nclass NullReferenceException extends SystemException {\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Exceptions/SystemException.d.ts b/dist/amd/System/Exceptions/SystemException.d.ts index 239bfbef..12f92b06 100644 --- a/dist/amd/System/Exceptions/SystemException.d.ts +++ b/dist/amd/System/Exceptions/SystemException.d.ts @@ -3,7 +3,8 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/system.systemexception%28v=vs.110%29.aspx */ -import Exception from '../Exception'; -export default class SystemException extends Exception { +import { Exception } from "../Exception"; +export declare class SystemException extends Exception { protected getName(): string; } +export default SystemException; diff --git a/dist/amd/System/Exceptions/SystemException.js b/dist/amd/System/Exceptions/SystemException.js index 577cab97..97447477 100644 --- a/dist/amd/System/Exceptions/SystemException.js +++ b/dist/amd/System/Exceptions/SystemException.js @@ -3,5 +3,5 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/system.systemexception%28v=vs.110%29.aspx */ -var __extends=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)};define(["require","exports","../Exception"],function(t,e,n){"use strict";var o="SystemException",r=function(t){function e(){t.apply(this,arguments)}return __extends(e,t),e.prototype.getName=function(){return o},e}(n["default"]);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r}); +var __extends=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)};define(["require","exports","../Exception"],function(t,e,n){"use strict";var o="SystemException",r=function(t){function e(){t.apply(this,arguments)}return __extends(e,t),e.prototype.getName=function(){return o},e}(n.Exception);e.SystemException=r,Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r}); //# sourceMappingURL=SystemException.js.map diff --git a/dist/amd/System/Exceptions/SystemException.js.map b/dist/amd/System/Exceptions/SystemException.js.map index 5ae1ac51..8b30fb10 100644 --- a/dist/amd/System/Exceptions/SystemException.js.map +++ b/dist/amd/System/Exceptions/SystemException.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Exceptions/SystemException.js","System/Exceptions/SystemException.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","Exception_1","NAME","SystemException","_super","apply","arguments","getName","defineProperty","value"],"mappings":";;;;;AAKA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,gBAAiB,SAAUC,EAASC,EAASC,GCJ3E,YAKA,IAAMC,GAAc,kBAEpBC,EAAA,SAAAC,GAAA,QAAAD,KAC8BC,EAAAC,MAAAjB,KAAAkB,WAgB9B,MAhB8BnB,WAAAgB,EAAAC,GAYnBD,EAAAR,UAAAY,QAAV,WAEC,MAAOL,IAETC,GAhB8BF,EAAAA,WAD9BL,QAAAY,eAAAR,EAAA,cAAAS,OAAA,IDWIT,EAAAA,WAAkBG","file":"System/Exceptions/SystemException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/system.systemexception%28v=vs.110%29.aspx\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", '../Exception'], function (require, exports, Exception_1) {\n 'use strict';\n var NAME = 'SystemException';\n var SystemException = (function (_super) {\n __extends(SystemException, _super);\n function SystemException() {\n _super.apply(this, arguments);\n }\n SystemException.prototype.getName = function () {\n return NAME;\n };\n return SystemException;\n }(Exception_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = SystemException;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/system.systemexception%28v=vs.110%29.aspx\r\n */\r\n\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport Exception from '../Exception';\r\n\r\n\r\nconst NAME:string = 'SystemException';\r\n\r\nexport default\r\nclass SystemException extends Exception\r\n{\r\n/*\r\n\tconstructor(\r\n\t\tmessage:string = null,\r\n\t\tinnerException:Error = null,\r\n\t\tbeforeSealing?:(ex:any)=>void)\r\n\t{\r\n\t\tsuper(message, innerException, beforeSealing);\r\n\t}\r\n*/\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Exceptions/SystemException.js","System/Exceptions/SystemException.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","Exception_1","NAME","SystemException","_super","apply","arguments","getName","Exception","defineProperty","value"],"mappings":";;;;;AAKA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,gBAAiB,SAAUC,EAASC,EAASC,GACvE,YCHJ,IAAMC,GAAc,kBAEpBC,EAAA,SAAAC,GAAA,QAAAD,KAAqCC,EAAAC,MAAAjB,KAAAkB,WAgBrC,MAhBqCnB,WAAAgB,EAAAC,GAY1BD,EAAAR,UAAAY,QAAV,WAEC,MAAOL,IAETC,GAhBqCF,EAAAO,UAAxBR,GAAAG,gBAAeA,EAkB5BP,OAAAa,eAAAT,EAAA,cAAAU,OAAA,IDHIV,EAAAA,WCGWG","file":"System/Exceptions/SystemException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/system.systemexception%28v=vs.110%29.aspx\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"../Exception\"], function (require, exports, Exception_1) {\n \"use strict\";\n var NAME = 'SystemException';\n var SystemException = (function (_super) {\n __extends(SystemException, _super);\n function SystemException() {\n _super.apply(this, arguments);\n }\n SystemException.prototype.getName = function () {\n return NAME;\n };\n return SystemException;\n }(Exception_1.Exception));\n exports.SystemException = SystemException;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = SystemException;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/system.systemexception%28v=vs.110%29.aspx\r\n */\r\n\r\nimport {Exception} from \"../Exception\";\r\n\r\nconst NAME:string = 'SystemException';\r\n\r\nexport class SystemException extends Exception\r\n{\r\n\t/*\r\n\t\tconstructor(\r\n\t\t\tmessage:string = null,\r\n\t\t\tinnerException:Error = null,\r\n\t\t\tbeforeSealing?:(ex:any)=>void)\r\n\t\t{\r\n\t\t\tsuper(message, innerException, beforeSealing);\r\n\t\t}\r\n\t*/\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n}\r\n\r\nexport default SystemException;"]} \ No newline at end of file diff --git a/dist/amd/System/Functions.d.ts b/dist/amd/System/Functions.d.ts index 0262bc62..ecd9b0e2 100644 --- a/dist/amd/System/Functions.d.ts +++ b/dist/amd/System/Functions.d.ts @@ -2,13 +2,13 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -declare class Functions { +export declare class Functions { Identity(x: T): T; True(): boolean; False(): boolean; Blank(): void; } -declare module Functions { +export declare module Functions { var Identity: (x: T) => T; var True: () => boolean; var False: () => boolean; diff --git a/dist/amd/System/Functions.js b/dist/amd/System/Functions.js index ad72abd4..a21af5f6 100644 --- a/dist/amd/System/Functions.js +++ b/dist/amd/System/Functions.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -define(["require","exports"],function(e,t){"use strict";var n,n=function(){function e(){}return e.prototype.Identity=function(e){return e},e.prototype.True=function(){return!0},e.prototype.False=function(){return!1},e.prototype.Blank=function(){},e}(),r=new n;!function(e){e.Identity=r.Identity,e.True=r.True,e.False=r.False,e.Blank=r.Blank}(n||(n={})),Object.freeze(n),Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=n}); +define(["require","exports"],function(e,t){"use strict";var n=function(){function e(){}return e.prototype.Identity=function(e){return e},e.prototype.True=function(){return!0},e.prototype.False=function(){return!1},e.prototype.Blank=function(){},e}();t.Functions=n;var n,r=new n;!function(e){e.Identity=r.Identity,e.True=r.True,e.False=r.False,e.Blank=r.Blank}(n=t.Functions||(t.Functions={})),Object.freeze(n),Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=n}); //# sourceMappingURL=Functions.js.map diff --git a/dist/amd/System/Functions.js.map b/dist/amd/System/Functions.js.map index 353bb915..53a524ae 100644 --- a/dist/amd/System/Functions.js.map +++ b/dist/amd/System/Functions.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Functions.js","System/Functions.ts"],"names":["define","require","exports","Functions","prototype","Identity","x","True","False","Blank","rootFunctions","Object","freeze","defineProperty","value"],"mappings":";;;;AAIAA,QAAQ,UAAW,WAAY,SAAUC,EAASC,GCClD,YAKA,IAmCOC,GAnCPA,EAAA,WAAA,QAAAA,MA6BA,MAtBCA,GAAAC,UAAAC,SAAA,SAAYC,GACV,MAAOA,IAMTH,EAAAC,UAAAG,KAAA,WACE,OAAO,GAMTJ,EAAAC,UAAAI,MAAA,WACE,OAAO,GAKTL,EAAAC,UAAAK,MAAA,aAEDN,KAEMO,EAA0B,GAAIP,IAIpC,SAAOA,GAMKA,EAAAE,SACRK,EAAcL,SAMNF,EAAAI,KACRG,EAAcH,KAMNJ,EAAAK,MACRE,EAAcF,MAKNL,EAAAM,MACRC,EAAcD,OA3BXN,IAAAA,OA+BPQ,OAAOC,OAAOT,GAEdQ,OAAAE,eAAAX,EAAA,cAAAY,OAAA,IDrDIZ,EAAAA,WCqDWC","file":"System/Functions.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\"], function (require, exports) {\n 'use strict';\n var Functions = (function () {\n function Functions() {\n }\n Functions.prototype.Identity = function (x) { return x; };\n Functions.prototype.True = function () { return true; };\n Functions.prototype.False = function () { return false; };\n Functions.prototype.Blank = function () { };\n return Functions;\n }());\n var rootFunctions = new Functions();\n var Functions;\n (function (Functions) {\n Functions.Identity = rootFunctions.Identity;\n Functions.True = rootFunctions.True;\n Functions.False = rootFunctions.False;\n Functions.Blank = rootFunctions.Blank;\n })(Functions || (Functions = {}));\n Object.freeze(Functions);\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Functions;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n/**\r\n * Can be used statically or extended for varying different reusable function signatures.\r\n */\r\nclass Functions\r\n{\r\n\r\n\t/**\r\n\t * A typed method for use with simple selection of the parameter.\r\n\t * @returns {T}\r\n\t */\r\n\tIdentity(x:T):T\r\n\t{ return x; }\r\n\r\n\t/**\r\n\t * Returns true.\r\n\t * @returns {boolean}\r\n\t */\r\n\tTrue():boolean\r\n\t{ return true; }\r\n\r\n\t/**\r\n\t * Returns false.\r\n\t * @returns {boolean}\r\n\t */\r\n\tFalse():boolean\r\n\t{ return false; }\r\n\r\n\t/**\r\n\t * Does nothing.\r\n\t */\r\n\tBlank():void\r\n\t{ }\r\n}\r\n\r\nconst rootFunctions:Functions = new Functions();\r\n\r\n// Expose static versions.\r\n\r\nmodule Functions\r\n{\r\n\t/**\r\n\t * A typed method for use with simple selection of the parameter.\r\n\t * @returns {boolean}\r\n\t */\r\n\texport var Identity:(x:T) => T\r\n\t\t= rootFunctions.Identity;\r\n\r\n\t/**\r\n\t * Returns false.\r\n\t * @returns {boolean}\r\n\t */\r\n\texport var True:() => boolean\r\n\t\t= rootFunctions.True;\r\n\r\n\t/**\r\n\t * Returns false.\r\n\t * @returns {boolean}\r\n\t */\r\n\texport var False:() => boolean\r\n\t\t= rootFunctions.False;\r\n\r\n\t/**\r\n\t * Does nothing.\r\n\t */\r\n\texport var Blank:() => void\r\n\t\t= rootFunctions.Blank;\r\n}\r\n\r\n// Make this read only. Should still allow for sub-classing since extra methods are added to prototype.\r\nObject.freeze(Functions);\r\n\r\nexport default Functions;\r\n\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Functions.js","System/Functions.ts"],"names":["define","require","exports","Functions","prototype","Identity","x","True","False","Blank","rootFunctions","Object","freeze","defineProperty","value"],"mappings":";;;;AAIAA,QAAQ,UAAW,WAAY,SAAUC,EAASC,GAC9C,YCGJ,IAAAC,GAAA,WAAA,QAAAA,MA6BA,MAtBCA,GAAAC,UAAAC,SAAA,SAAYC,GACV,MAAOA,IAMTH,EAAAC,UAAAG,KAAA,WACE,OAAO,GAMTJ,EAAAC,UAAAI,MAAA,WACE,OAAO,GAKTL,EAAAC,UAAAK,MAAA,aAEDN,IA7BaD,GAAAC,UAASA,CA+BtB,IAIcA,GAJRO,EAA0B,GAAIP,IAIpC,SAAcA,GAMFA,EAAAE,SACRK,EAAcL,SAMNF,EAAAI,KACRG,EAAcH,KAMNJ,EAAAK,MACRE,EAAcF,MAKNL,EAAAM,MACRC,EAAcD,OA3BJN,EAAAD,EAAAC,YAAAD,EAAAC,eA+BdQ,OAAOC,OAAOT,GAEdQ,OAAAE,eAAAX,EAAA,cAAAY,OAAA,IDlDIZ,EAAAA,WCkDWC","file":"System/Functions.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var Functions = (function () {\n function Functions() {\n }\n Functions.prototype.Identity = function (x) { return x; };\n Functions.prototype.True = function () { return true; };\n Functions.prototype.False = function () { return false; };\n Functions.prototype.Blank = function () { };\n return Functions;\n }());\n exports.Functions = Functions;\n var rootFunctions = new Functions();\n var Functions;\n (function (Functions) {\n Functions.Identity = rootFunctions.Identity;\n Functions.True = rootFunctions.True;\n Functions.False = rootFunctions.False;\n Functions.Blank = rootFunctions.Blank;\n })(Functions = exports.Functions || (exports.Functions = {}));\n Object.freeze(Functions);\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Functions;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n/**\r\n * Can be used statically or extended for varying different reusable function signatures.\r\n */\r\nexport class Functions\r\n{\r\n\r\n\t/**\r\n\t * A typed method for use with simple selection of the parameter.\r\n\t * @returns {T}\r\n\t */\r\n\tIdentity(x:T):T\r\n\t{ return x; }\r\n\r\n\t/**\r\n\t * Returns true.\r\n\t * @returns {boolean}\r\n\t */\r\n\tTrue():boolean\r\n\t{ return true; }\r\n\r\n\t/**\r\n\t * Returns false.\r\n\t * @returns {boolean}\r\n\t */\r\n\tFalse():boolean\r\n\t{ return false; }\r\n\r\n\t/**\r\n\t * Does nothing.\r\n\t */\r\n\tBlank():void\r\n\t{ }\r\n}\r\n\r\nconst rootFunctions:Functions = new Functions();\r\n\r\n// Expose static versions.\r\n\r\nexport module Functions\r\n{\r\n\t/**\r\n\t * A typed method for use with simple selection of the parameter.\r\n\t * @returns {boolean}\r\n\t */\r\n\texport var Identity:(x:T) => T\r\n\t\t= rootFunctions.Identity;\r\n\r\n\t/**\r\n\t * Returns false.\r\n\t * @returns {boolean}\r\n\t */\r\n\texport var True:() => boolean\r\n\t\t= rootFunctions.True;\r\n\r\n\t/**\r\n\t * Returns false.\r\n\t * @returns {boolean}\r\n\t */\r\n\texport var False:() => boolean\r\n\t\t= rootFunctions.False;\r\n\r\n\t/**\r\n\t * Does nothing.\r\n\t */\r\n\texport var Blank:() => void\r\n\t\t= rootFunctions.Blank;\r\n}\r\n\r\n// Make this read only. Should still allow for sub-classing since extra methods are added to prototype.\r\nObject.freeze(Functions);\r\n\r\nexport default Functions;\r\n\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Integer.d.ts b/dist/amd/System/Integer.d.ts index 04881834..a6de2daf 100644 --- a/dist/amd/System/Integer.d.ts +++ b/dist/amd/System/Integer.d.ts @@ -3,6 +3,7 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { IArray } from "./Collections/Array/IArray"; export declare function Integer(n: number): number; export declare module Integer { const MAX_32_BIT: number; diff --git a/dist/amd/System/Integer.js b/dist/amd/System/Integer.js index cdf0e655..1b2f36c0 100644 --- a/dist/amd/System/Integer.js +++ b/dist/amd/System/Integer.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -define(["require","exports","./Exceptions/ArgumentException","./Exceptions/ArgumentOutOfRangeException"],function(e,n,t,r){"use strict";function u(e){return Math.floor(e)}n.Integer=u;var u;!function(e){function n(e){return Math.random()*e|0}function u(e){return f(e,"maxExclusive"),n(e)}function o(e){var n=0|e;return-1===e||-1!==n?n:null}function a(e){return typeof e===l&&isFinite(e)&&e===Math.floor(e)}function i(e){return e===(0|e)}function f(e,n){var r=a(e);if(!r)throw new t["default"](n||"n","Must be a integer.");return r}function c(e,n){var t=f(e,n)&&e>=0;if(!t)throw new r["default"](n||"n",e,"Must be a valid integer greater than or equal to zero.");return t}function s(e,n){var t=f(e,n)&&e>0;if(!t)throw new r["default"](n||"n",e,"Must be greater than zero.");return t}e.MAX_32_BIT=2147483647,e.random=u;var u;!function(e){function t(e,t){return f(e,"max"),0===e?0:(t&&(e+=e/Math.abs(e)),n(e))}function r(e,n,r){f(e,"min"),f(n,"max");var u=n-e;return 0===u?e:(r&&(u+=u/Math.abs(u)),e+t(u))}function u(e){return e&&e.length?e[n(e.length)]:void 0}e.next=t,e.nextInRange=r,e.select=u;var u;!function(n){function t(n){return e.select(n)}n.one=t}(u=e.select||(e.select={}))}(u=e.random||(e.random={})),e.as32Bit=o;var l="number";e.is=a,e.is32Bit=i,e.assert=f,e.assertZeroOrGreater=c,e.assertPositive=s}(u=n.Integer||(n.Integer={})),Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=u}); +define(["require","exports","./Exceptions/ArgumentException","./Exceptions/ArgumentOutOfRangeException"],function(n,e,t,r){"use strict";function u(n){return Math.floor(n)}e.Integer=u;var u;!function(n){function e(n){return Math.random()*n|0}function u(n){return c(n,"maxExclusive"),e(n)}function o(n){var e=0|n;return-1===n||-1!==e?e:null}function i(n){return typeof n===g&&isFinite(n)&&n===Math.floor(n)}function a(n){return n===(0|n)}function c(n,e){var r=i(n);if(!r)throw new t.ArgumentException(e||"n","Must be a integer.");return r}function f(n,e){var t=c(n,e)&&n>=0;if(!t)throw new r.ArgumentOutOfRangeException(e||"n",n,"Must be a valid integer greater than or equal to zero.");return t}function s(n,e){var t=c(n,e)&&n>0;if(!t)throw new r.ArgumentOutOfRangeException(e||"n",n,"Must be greater than zero.");return t}n.MAX_32_BIT=2147483647,n.random=u;var u;!function(n){function t(n,t){return c(n,"max"),0===n?0:(t&&(n+=n/Math.abs(n)),e(n))}function r(n,e,r){c(n,"min"),c(e,"max");var u=e-n;return 0===u?n:(r&&(u+=u/Math.abs(u)),n+t(u))}function u(n){return n&&n.length?n[e(n.length)]:void 0}n.next=t,n.nextInRange=r,n.select=u;var u;!function(e){function t(e){return n.select(e)}e.one=t}(u=n.select||(n.select={}))}(u=n.random||(n.random={})),n.as32Bit=o;var g="number";n.is=i,n.is32Bit=a,n.assert=c,n.assertZeroOrGreater=f,n.assertPositive=s}(u=e.Integer||(e.Integer={})),Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=u}); //# sourceMappingURL=Integer.js.map diff --git a/dist/amd/System/Integer.js.map b/dist/amd/System/Integer.js.map index 28718dcb..298f32b0 100644 --- a/dist/amd/System/Integer.js.map +++ b/dist/amd/System/Integer.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Integer.js","System/Integer.ts"],"names":["define","require","exports","ArgumentException_1","ArgumentOutOfRangeException_1","Integer","n","Math","floor","r","maxExclusive","random","assert","as32Bit","result","is","NUMBER","isFinite","is32Bit","argumentName","i","assertZeroOrGreater","assertPositive","MAX_32_BIT","next","boundary","inclusive","abs","nextInRange","min","max","range","select","source","length","one","Object","defineProperty","value"],"mappings":";;;;AAIAA,QAAQ,UAAW,UAAW,iCAAkC,4CAA6C,SAAUC,EAASC,EAASC,EAAqBC,GAC1J,YCIJ,SAAAC,GAAwBC,GAEvB,MAAOC,MAAKC,MAAMF,GAFHJ,EAAAG,QAAOA,CAKvB,IAAcA,IAAd,SAAcA,GAIb,QAAAI,GAAWC,GAEV,MAAQH,MAAKI,SAASD,EAAgB,EAWvC,QAAAC,GAAuBD,GAGtB,MADAE,GAAOF,EAAc,gBACdD,EAAEC,GA6CV,QAAAG,GAAwBP,GAEvB,GAAIQ,GAAa,EAAJR,CACb,OAAY,KAAJA,GAAmB,KAATQ,EAAeA,EAAS,KAK3C,QAAAC,GAAmBT,GAElB,aAAcA,KAAIU,GAAUC,SAASX,IAAMA,IAAIC,KAAKC,MAAMF,GAG3D,QAAAY,GAAwBZ,GAEvB,MAAOA,MAAS,EAAJA,GAIb,QAAAM,GAAuBN,EAAUa,GAEhC,GAAIC,GAAIL,EAAGT,EACX,KAAIc,EACH,KAAM,IAAIjB,GAAAA,WAAkBgB,GAAgB,IAAK,qBAClD,OAAOC,GAGR,QAAAC,GAAoCf,EAAUa,GAE7C,GAAIC,GAAIR,EAAON,EAAGa,IAAiBb,GAAG,CACtC,KAAIc,EACH,KAAM,IAAIhB,GAAAA,WAA4Be,GAAgB,IAAKb,EAAG,yDAC/D,OAAOc,GAGR,QAAAE,GAA+BhB,EAAUa,GAExC,GAAIC,GAAIR,EAAON,EAAGa,IAAiBb,EAAE,CACrC,KAAIc,EACH,KAAM,IAAIhB,GAAAA,WAA4Be,GAAgB,IAAKb,EAAG,6BAC/D,OAAOc,GAvGKf,EAAAkB,WAAoB,WAejBlB,EAAAM,OAAMA,CAMtB,IAAcA,IAAd,SAAcA,GAEb,QAAAa,GACCC,EACAC,GAGA,MADAd,GAAOa,EAAU,OACH,IAAXA,EAAqB,GACrBC,IAAWD,GAAYA,EAASlB,KAAKoB,IAAIF,IACrChB,EAAEgB,IAGV,QAAAG,GACCC,EACAC,EACAJ,GAEAd,EAAOiB,EAAK,OACZjB,EAAOkB,EAAK,MACZ,IAAIC,GAAQD,EAAMD,CAClB,OAAW,KAARE,EAAkBF,GAClBH,IAAWK,GAASA,EAAMxB,KAAKoB,IAAII,IAC/BF,EAAML,EAAKO,IAGnB,QAAAC,GAA0BC,GAEzB,MAAOA,IAAUA,EAAOC,OACrBD,EAAOxB,EAAEwB,EAAOC,SAChB,OA3BYvB,EAAAa,KAAIA,EAUJb,EAAAiB,YAAWA,EAaXjB,EAAAqB,OAAMA,CAOtB,IAAcA,IAAd,SAAcA,GAEb,QAAAG,GAAuBF,GAEtB,MAAOtB,GAAOqB,OAAOC,GAFND,EAAAG,IAAGA,GAFNH,EAAArB,EAAAqB,SAAArB,EAAAqB,aAhCDrB,EAAAN,EAAAM,SAAAN,EAAAM,YA0CEN,EAAAQ,QAAOA,CAMvB,IAAMG,GAAgB,QAENX,GAAAU,GAAEA,EAKFV,EAAAa,QAAOA,EAMPb,EAAAO,OAAMA,EAQNP,EAAAgB,oBAAmBA,EAQnBhB,EAAAiB,eAAcA,GApGjBjB,EAAAH,EAAAG,UAAAH,EAAAG,aA8Gd+B,OAAAC,eAAAnC,EAAA,cAAAoC,OAAA,ID9BIpC,EAAAA,WC8BWG","file":"System/Integer.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\", \"./Exceptions/ArgumentException\", \"./Exceptions/ArgumentOutOfRangeException\"], function (require, exports, ArgumentException_1, ArgumentOutOfRangeException_1) {\n \"use strict\";\n function Integer(n) {\n return Math.floor(n);\n }\n exports.Integer = Integer;\n var Integer;\n (function (Integer) {\n Integer.MAX_32_BIT = 2147483647;\n function r(maxExclusive) {\n return (Math.random() * maxExclusive) | 0;\n }\n function random(maxExclusive) {\n assert(maxExclusive, 'maxExclusive');\n return r(maxExclusive);\n }\n Integer.random = random;\n var random;\n (function (random) {\n function next(boundary, inclusive) {\n assert(boundary, 'max');\n if (boundary === 0)\n return 0;\n if (inclusive)\n boundary += boundary / Math.abs(boundary);\n return r(boundary);\n }\n random.next = next;\n function nextInRange(min, max, inclusive) {\n assert(min, 'min');\n assert(max, 'max');\n var range = max - min;\n if (range === 0)\n return min;\n if (inclusive)\n range += range / Math.abs(range);\n return min + next(range);\n }\n random.nextInRange = nextInRange;\n function select(source) {\n return source && source.length\n ? source[r(source.length)]\n : void (0);\n }\n random.select = select;\n var select;\n (function (select) {\n function one(source) {\n return random.select(source);\n }\n select.one = one;\n })(select = random.select || (random.select = {}));\n })(random = Integer.random || (Integer.random = {}));\n function as32Bit(n) {\n var result = n | 0;\n return (n === -1 || result !== -1) ? result : null;\n }\n Integer.as32Bit = as32Bit;\n var NUMBER = \"number\";\n function is(n) {\n return typeof n === NUMBER && isFinite(n) && n === Math.floor(n);\n }\n Integer.is = is;\n function is32Bit(n) {\n return n === (n | 0);\n }\n Integer.is32Bit = is32Bit;\n function assert(n, argumentName) {\n var i = is(n);\n if (!i)\n throw new ArgumentException_1.default(argumentName || 'n', \"Must be a integer.\");\n return i;\n }\n Integer.assert = assert;\n function assertZeroOrGreater(n, argumentName) {\n var i = assert(n, argumentName) && n >= 0;\n if (!i)\n throw new ArgumentOutOfRangeException_1.default(argumentName || 'n', n, \"Must be a valid integer greater than or equal to zero.\");\n return i;\n }\n Integer.assertZeroOrGreater = assertZeroOrGreater;\n function assertPositive(n, argumentName) {\n var i = assert(n, argumentName) && n > 0;\n if (!i)\n throw new ArgumentOutOfRangeException_1.default(argumentName || 'n', n, \"Must be greater than zero.\");\n return i;\n }\n Integer.assertPositive = assertPositive;\n })(Integer = exports.Integer || (exports.Integer = {}));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Integer;\n});\n","///\r\n/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport ArgumentException from \"./Exceptions/ArgumentException\";\r\nimport ArgumentOutOfRangeException from \"./Exceptions/ArgumentOutOfRangeException\";\r\n\r\nexport function Integer(n:number):number\r\n{\r\n\treturn Math.floor(n);\r\n}\r\n\r\nexport module Integer\r\n{\r\n\texport const MAX_32_BIT:number = 2147483647;\r\n\r\n\tfunction r(maxExclusive:number):number\r\n\t{\r\n\t\treturn (Math.random()*maxExclusive) | 0;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Returns a random integer from minInclusive to the maxExclusive.\r\n\t * Negative numbers are allowed.\r\n\t *\r\n\t * @param maxExclusive\r\n\t * @returns {number}\r\n\t */\r\n\texport function random(maxExclusive:number):number\r\n\t{\r\n\t\tassert(maxExclusive, 'maxExclusive');\r\n\t\treturn r(maxExclusive);\r\n\t}\r\n\r\n\texport module random\r\n\t{\r\n\t\texport function next(\r\n\t\t\tboundary:number,\r\n\t\t\tinclusive?:boolean):number\r\n\t\t{\r\n\t\t\tassert(boundary, 'max');\r\n\t\t\tif(boundary===0) return 0;\r\n\t\t\tif(inclusive) boundary += boundary/Math.abs(boundary);\r\n\t\t\treturn r(boundary);\r\n\t\t}\r\n\r\n\t\texport function nextInRange(\r\n\t\t\tmin:number,\r\n\t\t\tmax:number,\r\n\t\t\tinclusive?:boolean):number\r\n\t\t{\r\n\t\t\tassert(min, 'min');\r\n\t\t\tassert(max, 'max');\r\n\t\t\tvar range = max - min;\r\n\t\t\tif(range===0) return min;\r\n\t\t\tif(inclusive) range += range/Math.abs(range);\r\n\t\t\treturn min + next(range);\r\n\t\t}\r\n\r\n\t\texport function select(source:IArray):T\r\n\t\t{\r\n\t\t\treturn source && source.length\r\n\t\t\t\t? source[r(source.length)]\r\n\t\t\t\t: void(0);\r\n\t\t}\r\n\r\n\t\texport module select\r\n\t\t{\r\n\t\t\texport function one(source:IArray):T\r\n\t\t\t{\r\n\t\t\t\treturn random.select(source);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\texport function as32Bit(n:number):number\r\n\t{\r\n\t\tvar result = n | 0;\r\n\t\treturn (n===-1 || result!==-1) ? result : null;\r\n\t}\r\n\r\n\tconst NUMBER:string = \"number\";\r\n\r\n\texport function is(n:number):boolean\r\n\t{\r\n\t\treturn typeof n===NUMBER && isFinite(n) && n===Math.floor(n);\r\n\t}\r\n\r\n\texport function is32Bit(n:number):boolean\r\n\t{\r\n\t\treturn n===(n | 0);\r\n\t}\r\n\r\n\r\n\texport function assert(n:number, argumentName?:string):boolean\r\n\t{\r\n\t\tvar i = is(n);\r\n\t\tif(!i)\r\n\t\t\tthrow new ArgumentException(argumentName || 'n', \"Must be a integer.\");\r\n\t\treturn i;\r\n\t}\r\n\r\n\texport function assertZeroOrGreater(n:number, argumentName?:string):boolean\r\n\t{\r\n\t\tvar i = assert(n, argumentName) && n>=0;\r\n\t\tif(!i)\r\n\t\t\tthrow new ArgumentOutOfRangeException(argumentName || 'n', n, \"Must be a valid integer greater than or equal to zero.\");\r\n\t\treturn i;\r\n\t}\r\n\r\n\texport function assertPositive(n:number, argumentName?:string):boolean\r\n\t{\r\n\t\tvar i = assert(n, argumentName) && n>0;\r\n\t\tif(!i)\r\n\t\t\tthrow new ArgumentOutOfRangeException(argumentName || 'n', n, \"Must be greater than zero.\");\r\n\t\treturn i;\r\n\t}\r\n\r\n}\r\n\r\nexport default Integer;\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Integer.js","System/Integer.ts"],"names":["define","require","exports","ArgumentException_1","ArgumentOutOfRangeException_1","Integer","n","Math","floor","r","maxExclusive","random","assert","as32Bit","result","is","NUMBER","isFinite","is32Bit","argumentName","i","ArgumentException","assertZeroOrGreater","ArgumentOutOfRangeException","assertPositive","MAX_32_BIT","next","boundary","inclusive","abs","nextInRange","min","max","range","select","source","length","one","Object","defineProperty","value"],"mappings":";;;;AAIAA,QAAQ,UAAW,UAAW,iCAAkC,4CAA6C,SAAUC,EAASC,EAASC,EAAqBC,GAC1J,YCKJ,SAAAC,GAAwBC,GAEvB,MAAOC,MAAKC,MAAMF,GAFHJ,EAAAG,QAAOA,CAKvB,IAAcA,IAAd,SAAcA,GAIb,QAAAI,GAAWC,GAEV,MAAQH,MAAKI,SAASD,EAAgB,EAWvC,QAAAC,GAAuBD,GAGtB,MADAE,GAAOF,EAAc,gBACdD,EAAEC,GA6CV,QAAAG,GAAwBP,GAEvB,GAAIQ,GAAa,EAAJR,CACb,OAAY,KAAJA,GAAmB,KAATQ,EAAeA,EAAS,KAK3C,QAAAC,GAAmBT,GAElB,aAAcA,KAAIU,GAAUC,SAASX,IAAMA,IAAIC,KAAKC,MAAMF,GAG3D,QAAAY,GAAwBZ,GAEvB,MAAOA,MAAS,EAAJA,GAIb,QAAAM,GAAuBN,EAAUa,GAEhC,GAAIC,GAAIL,EAAGT,EACX,KAAIc,EACH,KAAM,IAAIjB,GAAAkB,kBAAkBF,GAAgB,IAAK,qBAClD,OAAOC,GAGR,QAAAE,GAAoChB,EAAUa,GAE7C,GAAIC,GAAIR,EAAON,EAAGa,IAAiBb,GAAG,CACtC,KAAIc,EACH,KAAM,IAAIhB,GAAAmB,4BAA4BJ,GAAgB,IAAKb,EAAG,yDAC/D,OAAOc,GAGR,QAAAI,GAA+BlB,EAAUa,GAExC,GAAIC,GAAIR,EAAON,EAAGa,IAAiBb,EAAE,CACrC,KAAIc,EACH,KAAM,IAAIhB,GAAAmB,4BAA4BJ,GAAgB,IAAKb,EAAG,6BAC/D,OAAOc,GAvGKf,EAAAoB,WAAoB,WAejBpB,EAAAM,OAAMA,CAMtB,IAAcA,IAAd,SAAcA,GAEb,QAAAe,GACCC,EACAC,GAGA,MADAhB,GAAOe,EAAU,OACH,IAAXA,EAAqB,GACrBC,IAAWD,GAAYA,EAASpB,KAAKsB,IAAIF,IACrClB,EAAEkB,IAGV,QAAAG,GACCC,EACAC,EACAJ,GAEAhB,EAAOmB,EAAK,OACZnB,EAAOoB,EAAK,MACZ,IAAIC,GAAQD,EAAMD,CAClB,OAAW,KAARE,EAAkBF,GAClBH,IAAWK,GAASA,EAAM1B,KAAKsB,IAAII,IAC/BF,EAAML,EAAKO,IAGnB,QAAAC,GAA0BC,GAEzB,MAAOA,IAAUA,EAAOC,OACrBD,EAAO1B,EAAE0B,EAAOC,SAChB,OA3BYzB,EAAAe,KAAIA,EAUJf,EAAAmB,YAAWA,EAaXnB,EAAAuB,OAAMA,CAOtB,IAAcA,IAAd,SAAcA,GAEb,QAAAG,GAAuBF,GAEtB,MAAOxB,GAAOuB,OAAOC,GAFND,EAAAG,IAAGA,GAFNH,EAAAvB,EAAAuB,SAAAvB,EAAAuB,aAhCDvB,EAAAN,EAAAM,SAAAN,EAAAM,YA0CEN,EAAAQ,QAAOA,CAMvB,IAAMG,GAAgB,QAENX,GAAAU,GAAEA,EAKFV,EAAAa,QAAOA,EAMPb,EAAAO,OAAMA,EAQNP,EAAAiB,oBAAmBA,EAQnBjB,EAAAmB,eAAcA,GApGjBnB,EAAAH,EAAAG,UAAAH,EAAAG,aA8GdiC,OAAAC,eAAArC,EAAA,cAAAsC,OAAA,ID/BItC,EAAAA,WC+BWG","file":"System/Integer.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\", \"./Exceptions/ArgumentException\", \"./Exceptions/ArgumentOutOfRangeException\"], function (require, exports, ArgumentException_1, ArgumentOutOfRangeException_1) {\n \"use strict\";\n function Integer(n) {\n return Math.floor(n);\n }\n exports.Integer = Integer;\n var Integer;\n (function (Integer) {\n Integer.MAX_32_BIT = 2147483647;\n function r(maxExclusive) {\n return (Math.random() * maxExclusive) | 0;\n }\n function random(maxExclusive) {\n assert(maxExclusive, 'maxExclusive');\n return r(maxExclusive);\n }\n Integer.random = random;\n var random;\n (function (random) {\n function next(boundary, inclusive) {\n assert(boundary, 'max');\n if (boundary === 0)\n return 0;\n if (inclusive)\n boundary += boundary / Math.abs(boundary);\n return r(boundary);\n }\n random.next = next;\n function nextInRange(min, max, inclusive) {\n assert(min, 'min');\n assert(max, 'max');\n var range = max - min;\n if (range === 0)\n return min;\n if (inclusive)\n range += range / Math.abs(range);\n return min + next(range);\n }\n random.nextInRange = nextInRange;\n function select(source) {\n return source && source.length\n ? source[r(source.length)]\n : void (0);\n }\n random.select = select;\n var select;\n (function (select) {\n function one(source) {\n return random.select(source);\n }\n select.one = one;\n })(select = random.select || (random.select = {}));\n })(random = Integer.random || (Integer.random = {}));\n function as32Bit(n) {\n var result = n | 0;\n return (n === -1 || result !== -1) ? result : null;\n }\n Integer.as32Bit = as32Bit;\n var NUMBER = \"number\";\n function is(n) {\n return typeof n === NUMBER && isFinite(n) && n === Math.floor(n);\n }\n Integer.is = is;\n function is32Bit(n) {\n return n === (n | 0);\n }\n Integer.is32Bit = is32Bit;\n function assert(n, argumentName) {\n var i = is(n);\n if (!i)\n throw new ArgumentException_1.ArgumentException(argumentName || 'n', \"Must be a integer.\");\n return i;\n }\n Integer.assert = assert;\n function assertZeroOrGreater(n, argumentName) {\n var i = assert(n, argumentName) && n >= 0;\n if (!i)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(argumentName || 'n', n, \"Must be a valid integer greater than or equal to zero.\");\n return i;\n }\n Integer.assertZeroOrGreater = assertZeroOrGreater;\n function assertPositive(n, argumentName) {\n var i = assert(n, argumentName) && n > 0;\n if (!i)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(argumentName || 'n', n, \"Must be greater than zero.\");\n return i;\n }\n Integer.assertPositive = assertPositive;\n })(Integer = exports.Integer || (exports.Integer = {}));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Integer;\n});\n","///\r\n/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {ArgumentException} from \"./Exceptions/ArgumentException\";\r\nimport {ArgumentOutOfRangeException} from \"./Exceptions/ArgumentOutOfRangeException\";\r\nimport {IArray} from \"./Collections/Array/IArray\";\r\n\r\nexport function Integer(n:number):number\r\n{\r\n\treturn Math.floor(n);\r\n}\r\n\r\nexport module Integer\r\n{\r\n\texport const MAX_32_BIT:number = 2147483647;\r\n\r\n\tfunction r(maxExclusive:number):number\r\n\t{\r\n\t\treturn (Math.random()*maxExclusive) | 0;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Returns a random integer from minInclusive to the maxExclusive.\r\n\t * Negative numbers are allowed.\r\n\t *\r\n\t * @param maxExclusive\r\n\t * @returns {number}\r\n\t */\r\n\texport function random(maxExclusive:number):number\r\n\t{\r\n\t\tassert(maxExclusive, 'maxExclusive');\r\n\t\treturn r(maxExclusive);\r\n\t}\r\n\r\n\texport module random\r\n\t{\r\n\t\texport function next(\r\n\t\t\tboundary:number,\r\n\t\t\tinclusive?:boolean):number\r\n\t\t{\r\n\t\t\tassert(boundary, 'max');\r\n\t\t\tif(boundary===0) return 0;\r\n\t\t\tif(inclusive) boundary += boundary/Math.abs(boundary);\r\n\t\t\treturn r(boundary);\r\n\t\t}\r\n\r\n\t\texport function nextInRange(\r\n\t\t\tmin:number,\r\n\t\t\tmax:number,\r\n\t\t\tinclusive?:boolean):number\r\n\t\t{\r\n\t\t\tassert(min, 'min');\r\n\t\t\tassert(max, 'max');\r\n\t\t\tvar range = max - min;\r\n\t\t\tif(range===0) return min;\r\n\t\t\tif(inclusive) range += range/Math.abs(range);\r\n\t\t\treturn min + next(range);\r\n\t\t}\r\n\r\n\t\texport function select(source:IArray):T\r\n\t\t{\r\n\t\t\treturn source && source.length\r\n\t\t\t\t? source[r(source.length)]\r\n\t\t\t\t: void(0);\r\n\t\t}\r\n\r\n\t\texport module select\r\n\t\t{\r\n\t\t\texport function one(source:IArray):T\r\n\t\t\t{\r\n\t\t\t\treturn random.select(source);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\texport function as32Bit(n:number):number\r\n\t{\r\n\t\tvar result = n | 0;\r\n\t\treturn (n===-1 || result!==-1) ? result : null;\r\n\t}\r\n\r\n\tconst NUMBER:string = \"number\";\r\n\r\n\texport function is(n:number):boolean\r\n\t{\r\n\t\treturn typeof n===NUMBER && isFinite(n) && n===Math.floor(n);\r\n\t}\r\n\r\n\texport function is32Bit(n:number):boolean\r\n\t{\r\n\t\treturn n===(n | 0);\r\n\t}\r\n\r\n\r\n\texport function assert(n:number, argumentName?:string):boolean\r\n\t{\r\n\t\tvar i = is(n);\r\n\t\tif(!i)\r\n\t\t\tthrow new ArgumentException(argumentName || 'n', \"Must be a integer.\");\r\n\t\treturn i;\r\n\t}\r\n\r\n\texport function assertZeroOrGreater(n:number, argumentName?:string):boolean\r\n\t{\r\n\t\tvar i = assert(n, argumentName) && n>=0;\r\n\t\tif(!i)\r\n\t\t\tthrow new ArgumentOutOfRangeException(argumentName || 'n', n, \"Must be a valid integer greater than or equal to zero.\");\r\n\t\treturn i;\r\n\t}\r\n\r\n\texport function assertPositive(n:number, argumentName?:string):boolean\r\n\t{\r\n\t\tvar i = assert(n, argumentName) && n>0;\r\n\t\tif(!i)\r\n\t\t\tthrow new ArgumentOutOfRangeException(argumentName || 'n', n, \"Must be greater than zero.\");\r\n\t\treturn i;\r\n\t}\r\n\r\n}\r\n\r\nexport default Integer;\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/KeyValueExtract.d.ts b/dist/amd/System/KeyValueExtract.d.ts index cfe473b9..8a23ab82 100644 --- a/dist/amd/System/KeyValueExtract.d.ts +++ b/dist/amd/System/KeyValueExtract.d.ts @@ -2,8 +2,11 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { KeyValuePair, IKeyValuePair } from "./KeyValuePair"; +import { IArray } from "./Collections/Array/IArray"; export declare function isKeyValuePair(kvp: any): kvp is IKeyValuePair; export declare function assertKey(key: TKey, name?: string): TKey; export declare function assertTuple(tuple: IArray, name?: string): void; export declare function assertNotUndefined(value: T, name: string): T; -export default function extractKeyValue(item: KeyValuePair, to: (key: TKey, value: TValue) => TResult): TResult; +export declare function extractKeyValue(item: KeyValuePair, to: (key: TKey, value: TValue) => TResult): TResult; +export default extractKeyValue; diff --git a/dist/amd/System/KeyValueExtract.js b/dist/amd/System/KeyValueExtract.js index f966981b..6aca198b 100644 --- a/dist/amd/System/KeyValueExtract.js +++ b/dist/amd/System/KeyValueExtract.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -define(["require","exports","./Exceptions/ArgumentException","./Exceptions/ArgumentNullException"],function(e,t,n,r){"use strict";function u(e){return e&&e.hasOwnProperty(d)&&e.hasOwnProperty(c)}function i(e,t){if(void 0===t&&(t=p),a(e,t+s+d),null===e)throw new r["default"](t+s+d);return e}function o(e,t){if(void 0===t&&(t=p),2!=e.length)throw new n["default"](t,"KeyValuePair tuples must be of length 2.");i(e[0],t)}function a(e,t){if(e===f)throw new n["default"](t,v);return e}function l(e,t){var r,l;if(e instanceof Array)o(e),r=e[0],l=a(e[1],y);else{if(!u(e))throw new n["default"](p,h);r=i(e.key),l=a(e.value,w)}return t(r,l)}var f=void 0,s=".",d="key",c="value",p="item",y=p+"[1]",w=p+s+c,h="Invalid type. Must be a KeyValuePair or Tuple of length 2.",v="Cannot equal undefined.";t.isKeyValuePair=u,t.assertKey=i,t.assertTuple=o,t.assertNotUndefined=a,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=l}); +define(["require","exports","./Exceptions/ArgumentException","./Exceptions/ArgumentNullException"],function(e,t,n,r){"use strict";function u(e){return e&&e.hasOwnProperty(c)&&e.hasOwnProperty(p)}function i(e,t){if(void 0===t&&(t=d),a(e,t+f+c),null===e)throw new r.ArgumentNullException(t+f+c);return e}function o(e,t){if(void 0===t&&(t=d),2!=e.length)throw new n.ArgumentException(t,"KeyValuePair tuples must be of length 2.");i(e[0],t)}function a(e,t){if(e===s)throw new n.ArgumentException(t,g);return e}function l(e,t){var r,l;if(e instanceof Array)o(e),r=e[0],l=a(e[1],y);else{if(!u(e))throw new n.ArgumentException(d,x);r=i(e.key),l=a(e.value,w)}return t(r,l)}var s=void 0,f=".",c="key",p="value",d="item",y=d+"[1]",w=d+f+p,x="Invalid type. Must be a KeyValuePair or Tuple of length 2.",g="Cannot equal undefined.";t.isKeyValuePair=u,t.assertKey=i,t.assertTuple=o,t.assertNotUndefined=a,t.extractKeyValue=l,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=l}); //# sourceMappingURL=KeyValueExtract.js.map diff --git a/dist/amd/System/KeyValueExtract.js.map b/dist/amd/System/KeyValueExtract.js.map index 299cb0a9..4bdad5ee 100644 --- a/dist/amd/System/KeyValueExtract.js.map +++ b/dist/amd/System/KeyValueExtract.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/KeyValueExtract.js","System/KeyValueExtract.ts"],"names":["define","require","exports","ArgumentException_1","ArgumentNullException_1","isKeyValuePair","kvp","hasOwnProperty","KEY","VALUE","assertKey","key","name","ITEM","assertNotUndefined","DOT","assertTuple","tuple","length","value","VOID0","CANNOT_BE_UNDEFINED","extractKeyValue","item","to","Array","ITEM_1","INVALID_KVP_MESSAGE","ITEM_VALUE","Object","defineProperty"],"mappings":";;;;AAIAA,QAAQ,UAAW,UAAW,iCAAkC,sCAAuC,SAAUC,EAASC,EAASC,EAAqBC,GACpJ,YCeJ,SAAAC,GAA4CC,GAE3C,MAAOA,IAAOA,EAAIC,eAAeC,IAAQF,EAAIC,eAAeE,GAG7D,QAAAC,GAAgCC,EAAUC,GAGzC,GAHyC,SAAAA,IAAAA,EAAAC,GAEzCC,EAAmBH,EAAKC,EAAOG,EAAMP,GAC5B,OAANG,EACF,KAAM,IAAIP,GAAAA,WAAsBQ,EAAOG,EAAMP,EAE9C,OAAOG,GAIR,QAAAK,GAA4BC,EAAmBL,GAE9C,GAF8C,SAAAA,IAAAA,EAAAC,GAE7B,GAAdI,EAAMC,OACR,KAAM,IAAIf,GAAAA,WAAkBS,EAAM,2CAEnCF,GAAUO,EAAM,GAAIL,GAIrB,QAAAE,GAAsCK,EAASP,GAE9C,GAAGO,IAAQC,EACV,KAAM,IAAIjB,GAAAA,WAAkBS,EAAMS,EAEnC,OAAOF,GAIR,QAAAG,GACCC,EACAC,GAGA,GAAcb,GAAUQ,CACxB,IAAGI,YAAgBE,OAElBT,EAAYO,GACZZ,EAAMY,EAAK,GACXJ,EAAQL,EAAmBS,EAAK,GAAIG,OAEhC,CAAA,IAAGrB,EAA4BkB,GAOnC,KAAM,IAAIpB,GAAAA,WAAkBU,EAAMc,EALlChB,GAAMD,EAAUa,EAAKZ,KACrBQ,EAAQL,EAAmBS,EAAKJ,MAAOS,GAOxC,MAAOJ,GAAGb,EAAKQ,GAnEhB,GACCC,GAA6B,OAC7BL,EAA6B,IAC7BP,EAA6B,MAC7BC,EAA6B,QAC7BI,EAA6B,OAC7Ba,EAA6Bb,EAAO,MAEpCe,EAA6Bf,EAAOE,EAAMN,EAC1CkB,EAA6B,8DAC7BN,EAA6B,yBAEdnB,GAAAG,eAAcA,EAKdH,EAAAQ,UAASA,EAUTR,EAAAc,YAAWA,EASXd,EAAAY,mBAAkBA,EASlCe,OAAAC,eAAA5B,EAAA,cAAAiB,OAAA,IDJIjB,EAAAA,WAAkBoB","file":"System/KeyValueExtract.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\", \"./Exceptions/ArgumentException\", \"./Exceptions/ArgumentNullException\"], function (require, exports, ArgumentException_1, ArgumentNullException_1) {\n \"use strict\";\n var VOID0 = void 0, DOT = '.', KEY = 'key', VALUE = 'value', ITEM = 'item', ITEM_1 = ITEM + '[1]', ITEM_KEY = ITEM + DOT + KEY, ITEM_VALUE = ITEM + DOT + VALUE, INVALID_KVP_MESSAGE = 'Invalid type. Must be a KeyValuePair or Tuple of length 2.', CANNOT_BE_UNDEFINED = 'Cannot equal undefined.';\n function isKeyValuePair(kvp) {\n return kvp && kvp.hasOwnProperty(KEY) && kvp.hasOwnProperty(VALUE);\n }\n exports.isKeyValuePair = isKeyValuePair;\n function assertKey(key, name) {\n if (name === void 0) { name = ITEM; }\n assertNotUndefined(key, name + DOT + KEY);\n if (key === null)\n throw new ArgumentNullException_1.default(name + DOT + KEY);\n return key;\n }\n exports.assertKey = assertKey;\n function assertTuple(tuple, name) {\n if (name === void 0) { name = ITEM; }\n if (tuple.length != 2)\n throw new ArgumentException_1.default(name, 'KeyValuePair tuples must be of length 2.');\n assertKey(tuple[0], name);\n }\n exports.assertTuple = assertTuple;\n function assertNotUndefined(value, name) {\n if (value === VOID0)\n throw new ArgumentException_1.default(name, CANNOT_BE_UNDEFINED);\n return value;\n }\n exports.assertNotUndefined = assertNotUndefined;\n function extractKeyValue(item, to) {\n var _ = this, key, value;\n if (item instanceof Array) {\n assertTuple(item);\n key = item[0];\n value = assertNotUndefined(item[1], ITEM_1);\n }\n else if (isKeyValuePair(item)) {\n key = assertKey(item.key);\n value = assertNotUndefined(item.value, ITEM_VALUE);\n }\n else {\n throw new ArgumentException_1.default(ITEM, INVALID_KVP_MESSAGE);\n }\n return to(key, value);\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = extractKeyValue;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport ArgumentException from \"./Exceptions/ArgumentException\";\r\nimport ArgumentNullException from \"./Exceptions/ArgumentNullException\";\r\n\r\nconst\r\n\tVOID0:any = void 0,\r\n\tDOT:string = '.',\r\n\tKEY:string = 'key',\r\n\tVALUE:string = 'value',\r\n\tITEM:string = 'item',\r\n\tITEM_1:string = ITEM + '[1]',\r\n\tITEM_KEY:string = ITEM + DOT + KEY,\r\n\tITEM_VALUE:string = ITEM + DOT + VALUE,\r\n\tINVALID_KVP_MESSAGE:string = 'Invalid type. Must be a KeyValuePair or Tuple of length 2.',\r\n\tCANNOT_BE_UNDEFINED:string = 'Cannot equal undefined.';\r\n\r\nexport function isKeyValuePair(kvp:any):kvp is IKeyValuePair\r\n{\r\n\treturn kvp && kvp.hasOwnProperty(KEY) && kvp.hasOwnProperty(VALUE);\r\n}\r\n\r\nexport function assertKey(key:TKey, name:string = ITEM):TKey\r\n{\r\n\tassertNotUndefined(key, name + DOT + KEY);\r\n\tif(key===null)\r\n\t\tthrow new ArgumentNullException(name + DOT + KEY);\r\n\r\n\treturn key;\r\n}\r\n\r\n\r\nexport function assertTuple(tuple:IArray, name:string = ITEM):void\r\n{\r\n\tif(tuple.length!=2)\r\n\t\tthrow new ArgumentException(name, 'KeyValuePair tuples must be of length 2.');\r\n\r\n\tassertKey(tuple[0], name);\r\n}\r\n\r\n\r\nexport function assertNotUndefined(value:T, name:string):T\r\n{\r\n\tif(value===VOID0)\r\n\t\tthrow new ArgumentException(name, CANNOT_BE_UNDEFINED);\r\n\r\n\treturn value;\r\n}\r\n\r\n\r\nexport default function extractKeyValue(\r\n\titem:KeyValuePair,\r\n\tto:(key:TKey, value:TValue)=>TResult):TResult\r\n{\r\n\r\n\tvar _ = this, key:TKey, value:TValue;\r\n\tif(item instanceof Array)\r\n\t{\r\n\t\tassertTuple(item);\r\n\t\tkey = item[0];\r\n\t\tvalue = assertNotUndefined(item[1], ITEM_1);\r\n\t}\r\n\telse if(isKeyValuePair(item))\r\n\t{\r\n\t\tkey = assertKey(item.key);\r\n\t\tvalue = assertNotUndefined(item.value, ITEM_VALUE);\r\n\t}\r\n\telse\r\n\t{\r\n\t\tthrow new ArgumentException(ITEM, INVALID_KVP_MESSAGE);\r\n\t}\r\n\r\n\treturn to(key, value);\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/KeyValueExtract.js","System/KeyValueExtract.ts"],"names":["define","require","exports","ArgumentException_1","ArgumentNullException_1","isKeyValuePair","kvp","hasOwnProperty","KEY","VALUE","assertKey","key","name","ITEM","assertNotUndefined","DOT","ArgumentNullException","assertTuple","tuple","length","ArgumentException","value","VOID0","CANNOT_BE_UNDEFINED","extractKeyValue","item","to","Array","ITEM_1","INVALID_KVP_MESSAGE","ITEM_VALUE","Object","defineProperty"],"mappings":";;;;AAIAA,QAAQ,UAAW,UAAW,iCAAkC,sCAAuC,SAAUC,EAASC,EAASC,EAAqBC,GACpJ,YCiBJ,SAAAC,GAA4CC,GAE3C,MAAOA,IAAOA,EAAIC,eAAeC,IAAQF,EAAIC,eAAeE,GAG7D,QAAAC,GAAgCC,EAAUC,GAGzC,GAHyC,SAAAA,IAAAA,EAAAC,GAEzCC,EAAmBH,EAAKC,EAAOG,EAAMP,GAC5B,OAANG,EACF,KAAM,IAAIP,GAAAY,sBAAsBJ,EAAOG,EAAMP,EAE9C,OAAOG,GAIR,QAAAM,GAA4BC,EAAmBN,GAE9C,GAF8C,SAAAA,IAAAA,EAAAC,GAE7B,GAAdK,EAAMC,OACR,KAAM,IAAIhB,GAAAiB,kBAAkBR,EAAM,2CAEnCF,GAAUQ,EAAM,GAAIN,GAIrB,QAAAE,GAAsCO,EAAST,GAE9C,GAAGS,IAAQC,EACV,KAAM,IAAInB,GAAAiB,kBAAkBR,EAAMW,EAEnC,OAAOF,GAIR,QAAAG,GACCC,EACAC,GAGA,GAAcf,GAAUU,CACxB,IAAGI,YAAgBE,OAElBV,EAAYQ,GACZd,EAAMc,EAAK,GACXJ,EAAQP,EAAmBW,EAAK,GAAIG,OAEhC,CAAA,IAAGvB,EAA4BoB,GAOnC,KAAM,IAAItB,GAAAiB,kBAAkBP,EAAMgB,EALlClB,GAAMD,EAAUe,EAAKd,KACrBU,EAAQP,EAAmBW,EAAKJ,MAAOS,GAOxC,MAAOJ,GAAGf,EAAKU,GAnEhB,GACCC,GAA6B,OAC7BP,EAA6B,IAC7BP,EAA6B,MAC7BC,EAA6B,QAC7BI,EAA6B,OAC7Be,EAA6Bf,EAAO,MAEpCiB,EAA6BjB,EAAOE,EAAMN,EAC1CoB,EAA6B,8DAC7BN,EAA6B,yBAEdrB,GAAAG,eAAcA,EAKdH,EAAAQ,UAASA,EAUTR,EAAAe,YAAWA,EASXf,EAAAY,mBAAkBA,EASlBZ,EAAAsB,gBAAeA,EAyB/BO,OAAAC,eAAA9B,EAAA,cAAAmB,OAAA,ID9BInB,EAAAA,WC8BWsB","file":"System/KeyValueExtract.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\", \"./Exceptions/ArgumentException\", \"./Exceptions/ArgumentNullException\"], function (require, exports, ArgumentException_1, ArgumentNullException_1) {\n \"use strict\";\n var VOID0 = void 0, DOT = '.', KEY = 'key', VALUE = 'value', ITEM = 'item', ITEM_1 = ITEM + '[1]', ITEM_KEY = ITEM + DOT + KEY, ITEM_VALUE = ITEM + DOT + VALUE, INVALID_KVP_MESSAGE = 'Invalid type. Must be a KeyValuePair or Tuple of length 2.', CANNOT_BE_UNDEFINED = 'Cannot equal undefined.';\n function isKeyValuePair(kvp) {\n return kvp && kvp.hasOwnProperty(KEY) && kvp.hasOwnProperty(VALUE);\n }\n exports.isKeyValuePair = isKeyValuePair;\n function assertKey(key, name) {\n if (name === void 0) { name = ITEM; }\n assertNotUndefined(key, name + DOT + KEY);\n if (key === null)\n throw new ArgumentNullException_1.ArgumentNullException(name + DOT + KEY);\n return key;\n }\n exports.assertKey = assertKey;\n function assertTuple(tuple, name) {\n if (name === void 0) { name = ITEM; }\n if (tuple.length != 2)\n throw new ArgumentException_1.ArgumentException(name, 'KeyValuePair tuples must be of length 2.');\n assertKey(tuple[0], name);\n }\n exports.assertTuple = assertTuple;\n function assertNotUndefined(value, name) {\n if (value === VOID0)\n throw new ArgumentException_1.ArgumentException(name, CANNOT_BE_UNDEFINED);\n return value;\n }\n exports.assertNotUndefined = assertNotUndefined;\n function extractKeyValue(item, to) {\n var _ = this, key, value;\n if (item instanceof Array) {\n assertTuple(item);\n key = item[0];\n value = assertNotUndefined(item[1], ITEM_1);\n }\n else if (isKeyValuePair(item)) {\n key = assertKey(item.key);\n value = assertNotUndefined(item.value, ITEM_VALUE);\n }\n else {\n throw new ArgumentException_1.ArgumentException(ITEM, INVALID_KVP_MESSAGE);\n }\n return to(key, value);\n }\n exports.extractKeyValue = extractKeyValue;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = extractKeyValue;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {ArgumentException} from \"./Exceptions/ArgumentException\";\r\nimport {ArgumentNullException} from \"./Exceptions/ArgumentNullException\";\r\nimport {KeyValuePair, IKeyValuePair} from \"./KeyValuePair\";\r\nimport {IArray} from \"./Collections/Array/IArray\";\r\n\r\nconst\r\n\tVOID0:any = void 0,\r\n\tDOT:string = '.',\r\n\tKEY:string = 'key',\r\n\tVALUE:string = 'value',\r\n\tITEM:string = 'item',\r\n\tITEM_1:string = ITEM + '[1]',\r\n\tITEM_KEY:string = ITEM + DOT + KEY,\r\n\tITEM_VALUE:string = ITEM + DOT + VALUE,\r\n\tINVALID_KVP_MESSAGE:string = 'Invalid type. Must be a KeyValuePair or Tuple of length 2.',\r\n\tCANNOT_BE_UNDEFINED:string = 'Cannot equal undefined.';\r\n\r\nexport function isKeyValuePair(kvp:any):kvp is IKeyValuePair\r\n{\r\n\treturn kvp && kvp.hasOwnProperty(KEY) && kvp.hasOwnProperty(VALUE);\r\n}\r\n\r\nexport function assertKey(key:TKey, name:string = ITEM):TKey\r\n{\r\n\tassertNotUndefined(key, name + DOT + KEY);\r\n\tif(key===null)\r\n\t\tthrow new ArgumentNullException(name + DOT + KEY);\r\n\r\n\treturn key;\r\n}\r\n\r\n\r\nexport function assertTuple(tuple:IArray, name:string = ITEM):void\r\n{\r\n\tif(tuple.length!=2)\r\n\t\tthrow new ArgumentException(name, 'KeyValuePair tuples must be of length 2.');\r\n\r\n\tassertKey(tuple[0], name);\r\n}\r\n\r\n\r\nexport function assertNotUndefined(value:T, name:string):T\r\n{\r\n\tif(value===VOID0)\r\n\t\tthrow new ArgumentException(name, CANNOT_BE_UNDEFINED);\r\n\r\n\treturn value;\r\n}\r\n\r\n\r\nexport function extractKeyValue(\r\n\titem:KeyValuePair,\r\n\tto:(key:TKey, value:TValue)=>TResult):TResult\r\n{\r\n\r\n\tvar _ = this, key:TKey, value:TValue;\r\n\tif(item instanceof Array)\r\n\t{\r\n\t\tassertTuple(item);\r\n\t\tkey = item[0];\r\n\t\tvalue = assertNotUndefined(item[1], ITEM_1);\r\n\t}\r\n\telse if(isKeyValuePair(item))\r\n\t{\r\n\t\tkey = assertKey(item.key);\r\n\t\tvalue = assertNotUndefined(item.value, ITEM_VALUE);\r\n\t}\r\n\telse\r\n\t{\r\n\t\tthrow new ArgumentException(ITEM, INVALID_KVP_MESSAGE);\r\n\t}\r\n\r\n\treturn to(key, value);\r\n}\r\n\r\nexport default extractKeyValue;"]} \ No newline at end of file diff --git a/dist/amd/System/Lazy.d.ts b/dist/amd/System/Lazy.d.ts index de32b287..c682318e 100644 --- a/dist/amd/System/Lazy.d.ts +++ b/dist/amd/System/Lazy.d.ts @@ -1,11 +1,11 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import DisposableBase from './Disposable/DisposableBase'; -export default class Lazy extends DisposableBase implements ILazy { +import { DisposableBase } from "./Disposable/DisposableBase"; +import { ILazy } from "./ILazy"; +import { Func } from "./FunctionTypes"; +export declare class Lazy extends DisposableBase implements ILazy { private _closure; private _isValueCreated; private _value; @@ -19,3 +19,4 @@ export default class Lazy extends DisposableBase implements ILazy { equals(other: Lazy): boolean; valueEquals(other: Lazy): boolean; } +export default Lazy; diff --git a/dist/amd/System/Lazy.js b/dist/amd/System/Lazy.js index 3fa4d23d..38339cb3 100644 --- a/dist/amd/System/Lazy.js +++ b/dist/amd/System/Lazy.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)};define(["require","exports","./Disposable/DisposableBase"],function(e,t,r){"use strict";var o=function(e){function t(t){e.call(this),this._closure=t,this._disposableObjectName="Lazy"}return __extends(t,e),Object.defineProperty(t.prototype,"isValueCreated",{get:function(){return this._isValueCreated},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"canReset",{get:function(){return!this.wasDisposed&&!!this._closure},enumerable:!0,configurable:!0}),t.prototype.reset=function(e){var t=this;if(e&&t.throwIfDisposed(),t._closure)return t._isValueCreated=!1,t._value=null,!0;if(e)throw new Error("Cannot reset. This Lazy has already de-referenced its closure.");return!1},Object.defineProperty(t.prototype,"value",{get:function(){return this.getValue()},enumerable:!0,configurable:!0}),t.prototype.getValue=function(e){var t=this;t.throwIfDisposed();try{if(!t._isValueCreated&&t._closure){var r=t._closure();return t._value=r,t._isValueCreated=!0,r}}finally{e&&(t._closure=null)}return t._value},t.prototype._onDispose=function(){this._closure=null,this._value=null},t.prototype.equals=function(e){return this==e},t.prototype.valueEquals=function(e){return this.equals(e)||this.value===e.value},t}(r["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=o}); +var __extends=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)};define(["require","exports","./Disposable/DisposableBase"],function(e,t,r){"use strict";var o=function(e){function t(t){e.call(this),this._closure=t,this._disposableObjectName="Lazy"}return __extends(t,e),Object.defineProperty(t.prototype,"isValueCreated",{get:function(){return this._isValueCreated},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"canReset",{get:function(){return!this.wasDisposed&&!!this._closure},enumerable:!0,configurable:!0}),t.prototype.reset=function(e){var t=this;if(e&&t.throwIfDisposed(),t._closure)return t._isValueCreated=!1,t._value=null,!0;if(e)throw new Error("Cannot reset. This Lazy has already de-referenced its closure.");return!1},Object.defineProperty(t.prototype,"value",{get:function(){return this.getValue()},enumerable:!0,configurable:!0}),t.prototype.getValue=function(e){var t=this;t.throwIfDisposed();try{if(!t._isValueCreated&&t._closure){var r=t._closure();return t._value=r,t._isValueCreated=!0,r}}finally{e&&(t._closure=null)}return t._value},t.prototype._onDispose=function(){this._closure=null,this._value=null},t.prototype.equals=function(e){return this==e},t.prototype.valueEquals=function(e){return this.equals(e)||this.value===e.value},t}(r.DisposableBase);t.Lazy=o,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=o}); //# sourceMappingURL=Lazy.js.map diff --git a/dist/amd/System/Lazy.js.map b/dist/amd/System/Lazy.js.map index a640fe17..12474e80 100644 --- a/dist/amd/System/Lazy.js.map +++ b/dist/amd/System/Lazy.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Lazy.js","System/Lazy.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","DisposableBase_1","Lazy","_super","_closure","call","_disposableObjectName","defineProperty","get","_isValueCreated","enumerable","configurable","wasDisposed","reset","throwIfCannotReset","_","throwIfDisposed","_value","Error","getValue","clearClosureReference","v","_onDispose","equals","other","valueEquals","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,+BAAgC,SAAUC,EAASC,EAASC,GCF1F,YAIA,IAAAC,GAAA,SAAAC,GAOC,QAAAD,GAAoBE,GAEnBD,EAAAE,KAAAjB,MAFmBA,KAAAgB,SAAAA,EAGnBhB,KAAKkB,sBAAwB,OA4E/B,MArFsBnB,WAAAe,EAAAC,GAYrBP,OAAAW,eAAIL,EAAAP,UAAA,kBDLOa,ICKX,WAEC,MAAOpB,MAAKqB,iBDJFC,YAAY,EACZC,cAAc,ICOzBf,OAAAW,eAAIL,EAAAP,UAAA,YDJOa,ICIX,WAEC,OAAQpB,KAAKwB,eAAkBxB,KAAa,UDHlCsB,YAAY,EACZC,cAAc,ICMzBT,EAAAP,UAAAkB,MAAA,SAAMC,GACL,GAAIC,GAAI3B,IAKR,IAHG0B,GACFC,EAAEC,kBAECD,EAAEX,SAQL,MAFAW,GAAEN,iBAAkB,EACpBM,EAAEE,OAAS,MACJ,CAPP,IAAGH,EACF,KAAM,IAAII,OAAM,kEACjB,QAAO,GASTtB,OAAAW,eAAIL,EAAAP,UAAA,SDNOa,ICMX,WAEC,MAAOpB,MAAK+B,YDLFT,YAAY,EACZC,cAAc,ICOzBT,EAAAP,UAAAwB,SAAA,SAASC,GAER,GAAIL,GAAI3B,IAER2B,GAAEC,iBAEF,KACC,IAAID,EAAEN,iBAAmBM,EAAEX,SAAU,CACpC,GAAIiB,GAAIN,EAAEX,UAGV,OAFAW,GAAEE,OAASI,EACXN,EAAEN,iBAAkB,EACbY,GDLC,QCSND,IACFL,EAAEX,SAAW,MAGf,MAAOW,GAAEE,QAKAf,EAAAP,UAAA2B,WAAV,WACClC,KAAKgB,SAAW,KAChBhB,KAAK6B,OAAS,MAGff,EAAAP,UAAA4B,OAAA,SAAOC,GAEN,MAAOpC,OAAMoC,GAGdtB,EAAAP,UAAA8B,YAAA,SAAYD,GAEX,MAAOpC,MAAKmC,OAAOC,IAAUpC,KAAKsC,QAAQF,EAAME,OAElDxB,GArFsBD,EAAAA,WADtBL,QAAAW,eAAAP,EAAA,cAAA0B,OAAA,IDyEI1B,EAAAA,WAAkBE","file":"System/Lazy.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", './Disposable/DisposableBase'], function (require, exports, DisposableBase_1) {\n 'use strict';\n var Lazy = (function (_super) {\n __extends(Lazy, _super);\n function Lazy(_closure) {\n _super.call(this);\n this._closure = _closure;\n this._disposableObjectName = 'Lazy';\n }\n Object.defineProperty(Lazy.prototype, \"isValueCreated\", {\n get: function () {\n return this._isValueCreated;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Lazy.prototype, \"canReset\", {\n get: function () {\n return !this.wasDisposed && !!(this._closure);\n },\n enumerable: true,\n configurable: true\n });\n Lazy.prototype.reset = function (throwIfCannotReset) {\n var _ = this;\n if (throwIfCannotReset)\n _.throwIfDisposed();\n if (!_._closure) {\n if (throwIfCannotReset)\n throw new Error(\"Cannot reset. This Lazy has already de-referenced its closure.\");\n return false;\n }\n else {\n _._isValueCreated = false;\n _._value = null;\n return true;\n }\n };\n Object.defineProperty(Lazy.prototype, \"value\", {\n get: function () {\n return this.getValue();\n },\n enumerable: true,\n configurable: true\n });\n Lazy.prototype.getValue = function (clearClosureReference) {\n var _ = this;\n _.throwIfDisposed();\n try {\n if (!_._isValueCreated && _._closure) {\n var v = _._closure();\n _._value = v;\n _._isValueCreated = true;\n return v;\n }\n }\n finally {\n if (clearClosureReference)\n _._closure = null;\n }\n return _._value;\n };\n Lazy.prototype._onDispose = function () {\n this._closure = null;\n this._value = null;\n };\n Lazy.prototype.equals = function (other) {\n return this == other;\n };\n Lazy.prototype.valueEquals = function (other) {\n return this.equals(other) || this.value === other.value;\n };\n return Lazy;\n }(DisposableBase_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Lazy;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport DisposableBase from './Disposable/DisposableBase';\r\n\r\nexport default\r\nclass Lazy extends DisposableBase implements ILazy\r\n{\r\n\r\n\tprivate _isValueCreated:boolean;\r\n\tprivate _value:T;\r\n\r\n\tconstructor(private _closure:Func)\r\n\t{\r\n\t\tsuper();\r\n\t\tthis._disposableObjectName = 'Lazy';\r\n\t}\r\n\r\n\tget isValueCreated():boolean\r\n\t{\r\n\t\treturn this._isValueCreated;\r\n\t}\r\n\r\n\t// Adding a 'resettable' mechanism allows for simply resetting a lazy instead of re-instantiating a new one.\r\n\tget canReset():boolean\r\n\t{\r\n\t\treturn !this.wasDisposed && !!(this._closure);\r\n\t}\r\n\r\n\t// Returns true if successfully reset.\r\n\treset(throwIfCannotReset?:boolean):boolean {\r\n\t\tvar _ = this;\r\n\r\n\t\tif(throwIfCannotReset)\r\n\t\t\t_.throwIfDisposed();\r\n\r\n\t\tif(!_._closure) {\r\n\t\t\tif(throwIfCannotReset)\r\n\t\t\t\tthrow new Error(\"Cannot reset. This Lazy has already de-referenced its closure.\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\telse {\r\n\t\t\t_._isValueCreated = false;\r\n\t\t\t_._value = null;\r\n\t\t\treturn true;\r\n\t\t}\r\n\t}\r\n\r\n\tget value():T\r\n\t{\r\n\t\treturn this.getValue();\r\n\t}\r\n\r\n\tgetValue(clearClosureReference?:boolean):T {\r\n\r\n\t\tvar _ = this;\r\n\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\ttry {\r\n\t\t\tif(!_._isValueCreated && _._closure) {\r\n\t\t\t\tvar v = _._closure();\r\n\t\t\t\t_._value = v;\r\n\t\t\t\t_._isValueCreated = true;\r\n\t\t\t\treturn v;\r\n\t\t\t}\r\n\t\t}\r\n\t\tfinally {\r\n\t\t\tif(clearClosureReference)\r\n\t\t\t\t_._closure = null;\r\n\t\t}\r\n\r\n\t\treturn _._value;\r\n\r\n\t}\r\n\r\n\r\n\tprotected _onDispose():void {\r\n\t\tthis._closure = null;\r\n\t\tthis._value = null;\r\n\t}\r\n\r\n\tequals(other:Lazy):boolean\r\n\t{\r\n\t\treturn this==other;\r\n\t}\r\n\r\n\tvalueEquals(other:Lazy):boolean\r\n\t{\r\n\t\treturn this.equals(other) || this.value===other.value;\r\n\t}\r\n}\r\n\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Lazy.js","System/Lazy.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","DisposableBase_1","Lazy","_super","_closure","call","_disposableObjectName","defineProperty","get","_isValueCreated","enumerable","configurable","wasDisposed","reset","throwIfCannotReset","_","throwIfDisposed","_value","Error","getValue","clearClosureReference","v","_onDispose","equals","other","valueEquals","value","DisposableBase"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,+BAAgC,SAAUC,EAASC,EAASC,GACtF,YCDJ,IAAAC,GAAA,SAAAC,GAMC,QAAAD,GAAoBE,GAEnBD,EAAAE,KAAAjB,MAFmBA,KAAAgB,SAAAA,EAGnBhB,KAAKkB,sBAAwB,OA4E/B,MArF6BnB,WAAAe,EAAAC,GAY5BP,OAAAW,eAAIL,EAAAP,UAAA,kBDFOa,ICEX,WAEC,MAAOpB,MAAKqB,iBDDFC,YAAY,EACZC,cAAc,ICIzBf,OAAAW,eAAIL,EAAAP,UAAA,YDDOa,ICCX,WAEC,OAAQpB,KAAKwB,eAAkBxB,KAAa,UDAlCsB,YAAY,EACZC,cAAc,ICGzBT,EAAAP,UAAAkB,MAAA,SAAMC,GACL,GAAIC,GAAI3B,IAKR,IAHG0B,GACFC,EAAEC,kBAECD,EAAEX,SAQL,MAFAW,GAAEN,iBAAkB,EACpBM,EAAEE,OAAS,MACJ,CAPP,IAAGH,EACF,KAAM,IAAII,OAAM,kEACjB,QAAO,GASTtB,OAAAW,eAAIL,EAAAP,UAAA,SDHOa,ICGX,WAEC,MAAOpB,MAAK+B,YDFFT,YAAY,EACZC,cAAc,ICIzBT,EAAAP,UAAAwB,SAAA,SAASC,GAER,GAAIL,GAAI3B,IAER2B,GAAEC,iBAEF,KACC,IAAID,EAAEN,iBAAmBM,EAAEX,SAAU,CACpC,GAAIiB,GAAIN,EAAEX,UAGV,OAFAW,GAAEE,OAASI,EACXN,EAAEN,iBAAkB,EACbY,GDFC,QCMND,IACFL,EAAEX,SAAW,MAGf,MAAOW,GAAEE,QAKAf,EAAAP,UAAA2B,WAAV,WACClC,KAAKgB,SAAW,KAChBhB,KAAK6B,OAAS,MAGff,EAAAP,UAAA4B,OAAA,SAAOC,GAEN,MAAOpC,OAAMoC,GAGdtB,EAAAP,UAAA8B,YAAA,SAAYD,GAEX,MAAOpC,MAAKmC,OAAOC,IAAUpC,KAAKsC,QAAQF,EAAME,OAElDxB,GArF6BD,EAAA0B,eAAhB3B,GAAAE,KAAIA,EAuFjBN,OAAAW,eAAAP,EAAA,cAAA0B,OAAA,IDXI1B,EAAAA,WCWWE","file":"System/Lazy.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"./Disposable/DisposableBase\"], function (require, exports, DisposableBase_1) {\n \"use strict\";\n var Lazy = (function (_super) {\n __extends(Lazy, _super);\n function Lazy(_closure) {\n _super.call(this);\n this._closure = _closure;\n this._disposableObjectName = 'Lazy';\n }\n Object.defineProperty(Lazy.prototype, \"isValueCreated\", {\n get: function () {\n return this._isValueCreated;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Lazy.prototype, \"canReset\", {\n get: function () {\n return !this.wasDisposed && !!(this._closure);\n },\n enumerable: true,\n configurable: true\n });\n Lazy.prototype.reset = function (throwIfCannotReset) {\n var _ = this;\n if (throwIfCannotReset)\n _.throwIfDisposed();\n if (!_._closure) {\n if (throwIfCannotReset)\n throw new Error(\"Cannot reset. This Lazy has already de-referenced its closure.\");\n return false;\n }\n else {\n _._isValueCreated = false;\n _._value = null;\n return true;\n }\n };\n Object.defineProperty(Lazy.prototype, \"value\", {\n get: function () {\n return this.getValue();\n },\n enumerable: true,\n configurable: true\n });\n Lazy.prototype.getValue = function (clearClosureReference) {\n var _ = this;\n _.throwIfDisposed();\n try {\n if (!_._isValueCreated && _._closure) {\n var v = _._closure();\n _._value = v;\n _._isValueCreated = true;\n return v;\n }\n }\n finally {\n if (clearClosureReference)\n _._closure = null;\n }\n return _._value;\n };\n Lazy.prototype._onDispose = function () {\n this._closure = null;\n this._value = null;\n };\n Lazy.prototype.equals = function (other) {\n return this == other;\n };\n Lazy.prototype.valueEquals = function (other) {\n return this.equals(other) || this.value === other.value;\n };\n return Lazy;\n }(DisposableBase_1.DisposableBase));\n exports.Lazy = Lazy;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Lazy;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {DisposableBase} from \"./Disposable/DisposableBase\";\r\nimport {ILazy} from \"./ILazy\";\r\nimport {Func} from \"./FunctionTypes\";\r\n\r\nexport class Lazy extends DisposableBase implements ILazy\r\n{\r\n\r\n\tprivate _isValueCreated:boolean;\r\n\tprivate _value:T;\r\n\r\n\tconstructor(private _closure:Func)\r\n\t{\r\n\t\tsuper();\r\n\t\tthis._disposableObjectName = 'Lazy';\r\n\t}\r\n\r\n\tget isValueCreated():boolean\r\n\t{\r\n\t\treturn this._isValueCreated;\r\n\t}\r\n\r\n\t// Adding a 'resettable' mechanism allows for simply resetting a lazy instead of re-instantiating a new one.\r\n\tget canReset():boolean\r\n\t{\r\n\t\treturn !this.wasDisposed && !!(this._closure);\r\n\t}\r\n\r\n\t// Returns true if successfully reset.\r\n\treset(throwIfCannotReset?:boolean):boolean {\r\n\t\tvar _ = this;\r\n\r\n\t\tif(throwIfCannotReset)\r\n\t\t\t_.throwIfDisposed();\r\n\r\n\t\tif(!_._closure) {\r\n\t\t\tif(throwIfCannotReset)\r\n\t\t\t\tthrow new Error(\"Cannot reset. This Lazy has already de-referenced its closure.\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\telse {\r\n\t\t\t_._isValueCreated = false;\r\n\t\t\t_._value = null;\r\n\t\t\treturn true;\r\n\t\t}\r\n\t}\r\n\r\n\tget value():T\r\n\t{\r\n\t\treturn this.getValue();\r\n\t}\r\n\r\n\tgetValue(clearClosureReference?:boolean):T {\r\n\r\n\t\tvar _ = this;\r\n\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\ttry {\r\n\t\t\tif(!_._isValueCreated && _._closure) {\r\n\t\t\t\tvar v = _._closure();\r\n\t\t\t\t_._value = v;\r\n\t\t\t\t_._isValueCreated = true;\r\n\t\t\t\treturn v;\r\n\t\t\t}\r\n\t\t}\r\n\t\tfinally {\r\n\t\t\tif(clearClosureReference)\r\n\t\t\t\t_._closure = null;\r\n\t\t}\r\n\r\n\t\treturn _._value;\r\n\r\n\t}\r\n\r\n\r\n\tprotected _onDispose():void {\r\n\t\tthis._closure = null;\r\n\t\tthis._value = null;\r\n\t}\r\n\r\n\tequals(other:Lazy):boolean\r\n\t{\r\n\t\treturn this==other;\r\n\t}\r\n\r\n\tvalueEquals(other:Lazy):boolean\r\n\t{\r\n\t\treturn this.equals(other) || this.value===other.value;\r\n\t}\r\n}\r\n\r\nexport default Lazy;"]} \ No newline at end of file diff --git a/dist/amd/System/Net/Http/HttpMethod.d.ts b/dist/amd/System/Net/Http/HttpMethod.d.ts index d70dbbd8..b9f17ab0 100644 --- a/dist/amd/System/Net/Http/HttpMethod.d.ts +++ b/dist/amd/System/Net/Http/HttpMethod.d.ts @@ -1,7 +1,7 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based on: https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html */ -export declare const OPTIONS: HttpMethodValue, HEAD: HttpMethodValue, GET: HttpMethodValue, PUT: HttpMethodValue, POST: HttpMethodValue, DELETE: HttpMethodValue, TRACE: HttpMethodValue, CONNECT: HttpMethodValue; +import * as HttpMethod from "./HttpMethodValue"; +export declare const OPTIONS: HttpMethod.Options, HEAD: HttpMethod.Head, GET: HttpMethod.Get, PUT: HttpMethod.Put, POST: HttpMethod.Post, DELETE: HttpMethod.Delete, TRACE: HttpMethod.Trace, CONNECT: HttpMethod.Connect; diff --git a/dist/amd/System/Net/Http/HttpMethod.js.map b/dist/amd/System/Net/Http/HttpMethod.js.map index faef35a1..0a264fce 100644 --- a/dist/amd/System/Net/Http/HttpMethod.js.map +++ b/dist/amd/System/Net/Http/HttpMethod.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Net/Http/HttpMethod.js","System/Net/Http/HttpMethod.ts"],"names":["define","require","exports","OPTIONS","HEAD","GET","PUT","POST","DELETE","TRACE","CONNECT"],"mappings":";;;;;AAKAA,QAAQ,UAAW,WAAY,SAAUC,EAASC,GAC9C,YCGHA,GAAAC,QAA0B,UAC1BD,EAAAE,KAA0B,OAC1BF,EAAAG,IAA0B,MAC1BH,EAAAI,IAA0B,MAC1BJ,EAAAK,KAA0B,OAC1BL,EAAAM,OAA0B,SAC1BN,EAAAO,MAA0B,QAC1BP,EAAAQ,QAA0B","file":"System/Net/Http/HttpMethod.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based on: https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html\n */\ndefine([\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n exports.OPTIONS = 'OPTIONS', exports.HEAD = 'HEAD', exports.GET = 'GET', exports.PUT = 'PUT', exports.POST = 'POST', exports.DELETE = 'DELETE', exports.TRACE = 'TRACE', exports.CONNECT = 'CONNECT';\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based on: https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html\r\n */\r\n\r\n///\r\n\r\nexport const\r\n\tOPTIONS:HttpMethodValue = 'OPTIONS',\r\n\tHEAD:HttpMethodValue = 'HEAD',\r\n\tGET:HttpMethodValue = 'GET',\r\n\tPUT:HttpMethodValue = 'PUT',\r\n\tPOST:HttpMethodValue = 'POST',\r\n\tDELETE:HttpMethodValue = 'DELETE',\r\n\tTRACE:HttpMethodValue = 'TRACE',\r\n\tCONNECT:HttpMethodValue = 'CONNECT';\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Net/Http/HttpMethod.js","System/Net/Http/HttpMethod.ts"],"names":["define","require","exports","OPTIONS","HEAD","GET","PUT","POST","DELETE","TRACE","CONNECT"],"mappings":";;;;;AAKAA,QAAQ,UAAW,WAAY,SAAUC,EAASC,GAC9C,YCIHA,GAAAC,QAA6B,UAC7BD,EAAAE,KAA6B,OAC7BF,EAAAG,IAA6B,MAC7BH,EAAAI,IAA6B,MAC7BJ,EAAAK,KAA6B,OAC7BL,EAAAM,OAA6B,SAC7BN,EAAAO,MAA6B,QAC7BP,EAAAQ,QAA6B","file":"System/Net/Http/HttpMethod.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based on: https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html\n */\ndefine([\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n exports.OPTIONS = 'OPTIONS', exports.HEAD = 'HEAD', exports.GET = 'GET', exports.PUT = 'PUT', exports.POST = 'POST', exports.DELETE = 'DELETE', exports.TRACE = 'TRACE', exports.CONNECT = 'CONNECT';\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based on: https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html\r\n */\r\n\r\n\r\nimport * as HttpMethod from \"./HttpMethodValue\";\r\n\r\nexport const\r\n\tOPTIONS:HttpMethod.Options = 'OPTIONS',\r\n\tHEAD:HttpMethod.Head = 'HEAD',\r\n\tGET:HttpMethod.Get = 'GET',\r\n\tPUT:HttpMethod.Put = 'PUT',\r\n\tPOST:HttpMethod.Post = 'POST',\r\n\tDELETE:HttpMethod.Delete = 'DELETE',\r\n\tTRACE:HttpMethod.Trace = 'TRACE',\r\n\tCONNECT:HttpMethod.Connect = 'CONNECT';\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Net/Http/HttpRequestFactory.d.ts b/dist/amd/System/Net/Http/HttpRequestFactory.d.ts index 212c88af..87b2581d 100644 --- a/dist/amd/System/Net/Http/HttpRequestFactory.d.ts +++ b/dist/amd/System/Net/Http/HttpRequestFactory.d.ts @@ -1,19 +1,21 @@ -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import Uri from "../../Uri/Uri"; -import DisposableBase from "../../Disposable/DisposableBase"; +import * as QueryParam from "../../Uri/QueryParam"; +import { DisposableBase } from "../../Disposable/DisposableBase"; +import { HttpMethodValue } from "./HttpMethodValue"; +import { Uri } from "../../Uri/Uri"; +import { IUri } from "../../Uri/IUri"; +import { IHttpRequestAdapter } from "./IHttpRequestAdapter"; +import { IPromise } from "../../Promises/IPromise"; export default class HttpRequestFactory extends DisposableBase { private _http; protected _uriDefaults: Uri; constructor(_http: IHttpRequestAdapter, uriDefaults?: string | IUri); protected _onDispose(): void; uri(uri: string | IUri): HttpRequestFactory; - params(params: QueryParamsConvertible): HttpRequestFactory; + params(params: QueryParam.Convertible): HttpRequestFactory; request(method: HttpMethodValue, data?: any): IPromise; get(): IPromise; put(): IPromise; diff --git a/dist/amd/System/Net/Http/HttpRequestFactory.js b/dist/amd/System/Net/Http/HttpRequestFactory.js index 5f0d03c4..ded7e26d 100644 --- a/dist/amd/System/Net/Http/HttpRequestFactory.js +++ b/dist/amd/System/Net/Http/HttpRequestFactory.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)};define(["require","exports","../../Exceptions/ArgumentNullException","../../Uri/Uri","../../Disposable/DisposableBase","./HttpMethod"],function(t,e,r,o,u,s){"use strict";var i=function(t){function e(e,u){if(t.call(this),this._http=e,this._disposableObjectName="HttpRequestFactory",!e)throw new r["default"]("_http");this._uriDefaults=o["default"].from(u)}return __extends(e,t),e.prototype._onDispose=function(){this._http=null,this._uriDefaults=null},e.prototype.uri=function(t){var r=this;r.throwIfDisposed();var u=o["default"].from(t,r._uriDefaults);return r._uriDefaults.equals(u)?r:new e(r._http,u)},e.prototype.params=function(t){var e=this;return e.throwIfDisposed(),e.uri(e._uriDefaults.updateQuery(t))},e.prototype.request=function(t,e){var r=this;return r.throwIfDisposed(),r._http.request({method:t,uri:r._uriDefaults,data:e})},e.prototype.get=function(){return this.request(s.GET)},e.prototype.put=function(){return this.request(s.PUT)},e.prototype.post=function(t){return this.request(s.POST,t)},e.prototype["delete"]=function(){return this.request(s.DELETE)},e}(u["default"]);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=i}); +var __extends=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)};define(["require","exports","../../Exceptions/ArgumentNullException","../../Disposable/DisposableBase","./HttpMethod","../../Uri/Uri"],function(t,e,r,o,s,u){"use strict";var i=function(t){function e(e,o){if(t.call(this),this._http=e,this._disposableObjectName="HttpRequestFactory",!e)throw new r.ArgumentNullException("_http");this._uriDefaults=u.Uri.from(o)}return __extends(e,t),e.prototype._onDispose=function(){this._http=null,this._uriDefaults=null},e.prototype.uri=function(t){var r=this;r.throwIfDisposed();var o=u.Uri.from(t,r._uriDefaults);return r._uriDefaults.equals(o)?r:new e(r._http,o)},e.prototype.params=function(t){var e=this;return e.throwIfDisposed(),e.uri(e._uriDefaults.updateQuery(t))},e.prototype.request=function(t,e){var r=this;return r.throwIfDisposed(),r._http.request({method:t,uri:r._uriDefaults,data:e})},e.prototype.get=function(){return this.request(s.GET)},e.prototype.put=function(){return this.request(s.PUT)},e.prototype.post=function(t){return this.request(s.POST,t)},e.prototype["delete"]=function(){return this.request(s.DELETE)},e}(o.DisposableBase);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=i}); //# sourceMappingURL=HttpRequestFactory.js.map diff --git a/dist/amd/System/Net/Http/HttpRequestFactory.js.map b/dist/amd/System/Net/Http/HttpRequestFactory.js.map index d0ee0ee3..59ae73a7 100644 --- a/dist/amd/System/Net/Http/HttpRequestFactory.js.map +++ b/dist/amd/System/Net/Http/HttpRequestFactory.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Net/Http/HttpRequestFactory.js","System/Net/Http/HttpRequestFactory.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","ArgumentNullException_1","Uri_1","DisposableBase_1","HttpMethod_1","HttpRequestFactory","_super","_http","uriDefaults","call","_disposableObjectName","_uriDefaults","from","_onDispose","uri","_","throwIfDisposed","u","equals","params","updateQuery","request","method","data","get","GET","put","PUT","post","POST","DELETE","defineProperty","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,yCAA0C,gBAAiB,kCAAmC,gBAAiB,SAAUC,EAASC,EAASC,EAAyBC,EAAOC,EAAkBC,GCD3N,YAUA,IAAAC,GAAA,SAAAC,GAKC,QAAAD,GACSE,EACRC,GAMA,GAJAF,EAAAG,KAAArB,MAHQA,KAAAmB,MAAAA,EAKRnB,KAAKsB,sBAAwB,sBAEzBH,EACH,KAAM,IAAIN,GAAAA,WAAsB,QAEjCb,MAAKuB,aAAeT,EAAAA,WAAIU,KAAKJ,GA4D/B,MA5EgDrB,WAAAkB,EAAAC,GAmBrCD,EAAAV,UAAAkB,WAAV,WAGCzB,KAAKmB,MAAQ,KACbnB,KAAKuB,aAAe,MAGrBN,EAAAV,UAAAmB,IAAA,SAAIA,GAGH,GAAIC,GAAI3B,IACR2B,GAAEC,iBACF,IAAIC,GAAIf,EAAAA,WAAIU,KAAKE,EAAKC,EAAEJ,aACxB,OAAOI,GAAEJ,aAAaO,OAAOD,GAC1BF,EACA,GAAIV,GAAmBU,EAAER,MAAOU,IAGpCZ,EAAAV,UAAAwB,OAAA,SAAOA,GAEN,GAAIJ,GAAI3B,IAER,OADA2B,GAAEC,kBACKD,EAAED,IAAIC,EAAEJ,aAAaS,YAAYD,KAGzCd,EAAAV,UAAA0B,QAAA,SAAiBC,EAAwBC,GAExC,GAAIR,GAAI3B,IAER,OADA2B,GAAEC,kBACKD,EAAER,MAAMc,SACdC,OAAQA,EACRR,IAAKC,EAAEJ,aACPY,KAAMA,KAKRlB,EAAAV,UAAA6B,IAAA,WAEC,MAAOpC,MAAKiC,QAAiBjB,EAAAqB,MAG9BpB,EAAAV,UAAA+B,IAAA,WAEC,MAAOtC,MAAKiC,QAAiBjB,EAAAuB,MAG9BtB,EAAAV,UAAAiC,KAAA,SAAcL,GAEb,MAAOnC,MAAKiC,QAAiBjB,EAAAyB,KAAMN,IAGpClB,EAAAV,UAAA,UAAA,WAEC,MAAOP,MAAKiC,QAAiBjB,EAAA0B,SAG/BzB,GA5EgDF,EAAAA,WAAhDP,QAAAmC,eAAA/B,EAAA,cAAAgC,OAAA,ID4CIhC,EAAAA,WAAkBK","file":"System/Net/Http/HttpRequestFactory.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"../../Exceptions/ArgumentNullException\", \"../../Uri/Uri\", \"../../Disposable/DisposableBase\", \"./HttpMethod\"], function (require, exports, ArgumentNullException_1, Uri_1, DisposableBase_1, HttpMethod_1) {\n 'use strict';\n var HttpRequestFactory = (function (_super) {\n __extends(HttpRequestFactory, _super);\n function HttpRequestFactory(_http, uriDefaults) {\n _super.call(this);\n this._http = _http;\n this._disposableObjectName = 'HttpRequestFactory';\n if (!_http)\n throw new ArgumentNullException_1.default('_http');\n this._uriDefaults = Uri_1.default.from(uriDefaults);\n }\n HttpRequestFactory.prototype._onDispose = function () {\n this._http = null;\n this._uriDefaults = null;\n };\n HttpRequestFactory.prototype.uri = function (uri) {\n var _ = this;\n _.throwIfDisposed();\n var u = Uri_1.default.from(uri, _._uriDefaults);\n return _._uriDefaults.equals(u)\n ? _\n : new HttpRequestFactory(_._http, u);\n };\n HttpRequestFactory.prototype.params = function (params) {\n var _ = this;\n _.throwIfDisposed();\n return _.uri(_._uriDefaults.updateQuery(params));\n };\n HttpRequestFactory.prototype.request = function (method, data) {\n var _ = this;\n _.throwIfDisposed();\n return _._http.request({\n method: method,\n uri: _._uriDefaults,\n data: data\n });\n };\n HttpRequestFactory.prototype.get = function () {\n return this.request(HttpMethod_1.GET);\n };\n HttpRequestFactory.prototype.put = function () {\n return this.request(HttpMethod_1.PUT);\n };\n HttpRequestFactory.prototype.post = function (data) {\n return this.request(HttpMethod_1.POST, data);\n };\n HttpRequestFactory.prototype['delete'] = function () {\n return this.request(HttpMethod_1.DELETE);\n };\n return HttpRequestFactory;\n }(DisposableBase_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = HttpRequestFactory;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport ArgumentNullException from \"../../Exceptions/ArgumentNullException\";\r\nimport Uri from \"../../Uri/Uri\";\r\nimport DisposableBase from \"../../Disposable/DisposableBase\";\r\nimport {GET, PUT, POST, DELETE} from \"./HttpMethod\";\r\n\r\n/**\r\n * This class exposes a factory for making requests to prepared uri and params.\r\n */\r\nexport default class HttpRequestFactory extends DisposableBase\r\n{\r\n\r\n\tprotected _uriDefaults:Uri;\r\n\r\n\tconstructor(\r\n\t\tprivate _http:IHttpRequestAdapter,\r\n\t\turiDefaults?:string|IUri)\r\n\t{\r\n\t\tsuper();\r\n\r\n\t\tthis._disposableObjectName = 'HttpRequestFactory';\r\n\r\n\t\tif(!_http)\r\n\t\t\tthrow new ArgumentNullException('_http');\r\n\r\n\t\tthis._uriDefaults = Uri.from(uriDefaults);\r\n\t}\r\n\r\n\tprotected _onDispose()\r\n\t{\r\n\t\t// super._onDispose(); // Not required for first level inheritance.\r\n\t\tthis._http = null;\r\n\t\tthis._uriDefaults = null;\r\n\t}\r\n\r\n\turi(uri:string|IUri):HttpRequestFactory\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\tvar u = Uri.from(uri, _._uriDefaults);\r\n\t\treturn _._uriDefaults.equals(u)\r\n\t\t\t? _\r\n\t\t\t: new HttpRequestFactory(_._http, u);\r\n\t}\r\n\r\n\tparams(params:QueryParamsConvertible):HttpRequestFactory\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\treturn _.uri(_._uriDefaults.updateQuery(params));\r\n\t}\r\n\r\n\trequest(method:HttpMethodValue, data?:any):IPromise\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\treturn _._http.request({\r\n\t\t\tmethod: method,\r\n\t\t\turi: _._uriDefaults,\r\n\t\t\tdata: data\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tget():IPromise\r\n\t{\r\n\t\treturn this.request(GET);\r\n\t}\r\n\r\n\tput():IPromise\r\n\t{\r\n\t\treturn this.request(PUT);\r\n\t}\r\n\r\n\tpost(data:any):IPromise\r\n\t{\r\n\t\treturn this.request(POST, data);\r\n\t}\r\n\r\n\t'delete'():IPromise\r\n\t{\r\n\t\treturn this.request(DELETE);\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Net/Http/HttpRequestFactory.js","System/Net/Http/HttpRequestFactory.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","ArgumentNullException_1","DisposableBase_1","HttpMethod_1","Uri_1","HttpRequestFactory","_super","_http","uriDefaults","call","_disposableObjectName","ArgumentNullException","_uriDefaults","Uri","from","_onDispose","uri","_","throwIfDisposed","u","equals","params","updateQuery","request","method","data","get","GET","put","PUT","post","POST","DELETE","DisposableBase","defineProperty","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,yCAA0C,kCAAmC,eAAgB,iBAAkB,SAAUC,EAASC,EAASC,EAAyBC,EAAkBC,EAAcC,GAC9N,YCSJ,IAAAC,GAAA,SAAAC,GAKC,QAAAD,GACSE,EACRC,GAMA,GAJAF,EAAAG,KAAArB,MAHQA,KAAAmB,MAAAA,EAKRnB,KAAKsB,sBAAwB,sBAEzBH,EACH,KAAM,IAAIN,GAAAU,sBAAsB,QAEjCvB,MAAKwB,aAAeR,EAAAS,IAAIC,KAAKN,GA4D/B,MA5EgDrB,WAAAkB,EAAAC,GAmBrCD,EAAAV,UAAAoB,WAAV,WAGC3B,KAAKmB,MAAQ,KACbnB,KAAKwB,aAAe,MAGrBP,EAAAV,UAAAqB,IAAA,SAAIA,GAGH,GAAIC,GAAI7B,IACR6B,GAAEC,iBACF,IAAIC,GAAIf,EAAAS,IAAIC,KAAKE,EAAKC,EAAEL,aACxB,OAAOK,GAAEL,aAAaQ,OAAOD,GAC1BF,EACA,GAAIZ,GAAmBY,EAAEV,MAAOY,IAGpCd,EAAAV,UAAA0B,OAAA,SAAOA,GAEN,GAAIJ,GAAI7B,IAER,OADA6B,GAAEC,kBACKD,EAAED,IAAIC,EAAEL,aAAaU,YAAYD,KAGzChB,EAAAV,UAAA4B,QAAA,SAAiBC,EAAwBC,GAExC,GAAIR,GAAI7B,IAER,OADA6B,GAAEC,kBACKD,EAAEV,MAAMgB,SACdC,OAAQA,EACRR,IAAKC,EAAEL,aACPa,KAAMA,KAKRpB,EAAAV,UAAA+B,IAAA,WAEC,MAAOtC,MAAKmC,QAAiBpB,EAAAwB,MAG9BtB,EAAAV,UAAAiC,IAAA,WAEC,MAAOxC,MAAKmC,QAAiBpB,EAAA0B,MAG9BxB,EAAAV,UAAAmC,KAAA,SAAcL,GAEb,MAAOrC,MAAKmC,QAAiBpB,EAAA4B,KAAMN,IAGpCpB,EAAAV,UAAA,UAAA,WAEC,MAAOP,MAAKmC,QAAiBpB,EAAA6B,SAG/B3B,GA5EgDH,EAAA+B,eAAhDrC,QAAAsC,eAAAlC,EAAA,cAAAmC,OAAA,ID2CInC,EAAAA,WAAkBK","file":"System/Net/Http/HttpRequestFactory.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"../../Exceptions/ArgumentNullException\", \"../../Disposable/DisposableBase\", \"./HttpMethod\", \"../../Uri/Uri\"], function (require, exports, ArgumentNullException_1, DisposableBase_1, HttpMethod_1, Uri_1) {\n \"use strict\";\n var HttpRequestFactory = (function (_super) {\n __extends(HttpRequestFactory, _super);\n function HttpRequestFactory(_http, uriDefaults) {\n _super.call(this);\n this._http = _http;\n this._disposableObjectName = 'HttpRequestFactory';\n if (!_http)\n throw new ArgumentNullException_1.ArgumentNullException('_http');\n this._uriDefaults = Uri_1.Uri.from(uriDefaults);\n }\n HttpRequestFactory.prototype._onDispose = function () {\n this._http = null;\n this._uriDefaults = null;\n };\n HttpRequestFactory.prototype.uri = function (uri) {\n var _ = this;\n _.throwIfDisposed();\n var u = Uri_1.Uri.from(uri, _._uriDefaults);\n return _._uriDefaults.equals(u)\n ? _\n : new HttpRequestFactory(_._http, u);\n };\n HttpRequestFactory.prototype.params = function (params) {\n var _ = this;\n _.throwIfDisposed();\n return _.uri(_._uriDefaults.updateQuery(params));\n };\n HttpRequestFactory.prototype.request = function (method, data) {\n var _ = this;\n _.throwIfDisposed();\n return _._http.request({\n method: method,\n uri: _._uriDefaults,\n data: data\n });\n };\n HttpRequestFactory.prototype.get = function () {\n return this.request(HttpMethod_1.GET);\n };\n HttpRequestFactory.prototype.put = function () {\n return this.request(HttpMethod_1.PUT);\n };\n HttpRequestFactory.prototype.post = function (data) {\n return this.request(HttpMethod_1.POST, data);\n };\n HttpRequestFactory.prototype['delete'] = function () {\n return this.request(HttpMethod_1.DELETE);\n };\n return HttpRequestFactory;\n }(DisposableBase_1.DisposableBase));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = HttpRequestFactory;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport * as QueryParam from \"../../Uri/QueryParam\";\r\nimport {ArgumentNullException} from \"../../Exceptions/ArgumentNullException\";\r\nimport {DisposableBase} from \"../../Disposable/DisposableBase\";\r\nimport {HttpMethodValue} from \"./HttpMethodValue\";\r\nimport {GET, PUT, POST, DELETE} from \"./HttpMethod\";\r\nimport {Uri} from \"../../Uri/Uri\";\r\nimport {IUri} from \"../../Uri/IUri\";\r\nimport {IHttpRequestAdapter} from \"./IHttpRequestAdapter\";\r\nimport {IPromise} from \"../../Promises/IPromise\";\r\n\r\n/**\r\n * This class exposes a factory for making requests to prepared uri and params.\r\n */\r\nexport default class HttpRequestFactory extends DisposableBase\r\n{\r\n\r\n\tprotected _uriDefaults:Uri;\r\n\r\n\tconstructor(\r\n\t\tprivate _http:IHttpRequestAdapter,\r\n\t\turiDefaults?:string|IUri)\r\n\t{\r\n\t\tsuper();\r\n\r\n\t\tthis._disposableObjectName = 'HttpRequestFactory';\r\n\r\n\t\tif(!_http)\r\n\t\t\tthrow new ArgumentNullException('_http');\r\n\r\n\t\tthis._uriDefaults = Uri.from(uriDefaults);\r\n\t}\r\n\r\n\tprotected _onDispose()\r\n\t{\r\n\t\t// super._onDispose(); // Not required for first level inheritance.\r\n\t\tthis._http = null;\r\n\t\tthis._uriDefaults = null;\r\n\t}\r\n\r\n\turi(uri:string|IUri):HttpRequestFactory\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\tvar u = Uri.from(uri, _._uriDefaults);\r\n\t\treturn _._uriDefaults.equals(u)\r\n\t\t\t? _\r\n\t\t\t: new HttpRequestFactory(_._http, u);\r\n\t}\r\n\r\n\tparams(params:QueryParam.Convertible):HttpRequestFactory\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\treturn _.uri(_._uriDefaults.updateQuery(params));\r\n\t}\r\n\r\n\trequest(method:HttpMethodValue, data?:any):IPromise\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\treturn _._http.request({\r\n\t\t\tmethod: method,\r\n\t\t\turi: _._uriDefaults,\r\n\t\t\tdata: data\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tget():IPromise\r\n\t{\r\n\t\treturn this.request(GET);\r\n\t}\r\n\r\n\tput():IPromise\r\n\t{\r\n\t\treturn this.request(PUT);\r\n\t}\r\n\r\n\tpost(data:any):IPromise\r\n\t{\r\n\t\treturn this.request(POST, data);\r\n\t}\r\n\r\n\t'delete'():IPromise\r\n\t{\r\n\t\treturn this.request(DELETE);\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Observable/ObservableBase.d.ts b/dist/amd/System/Observable/ObservableBase.d.ts index 050d9f79..e45e3351 100644 --- a/dist/amd/System/Observable/ObservableBase.d.ts +++ b/dist/amd/System/Observable/ObservableBase.d.ts @@ -1,13 +1,13 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Based upon .NET source. * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ -import SubscribableBase from "./SubscribableBase"; -declare abstract class ObservableBase extends SubscribableBase> implements IObservable { +import { SubscribableBase } from "./SubscribableBase"; +import { IObservable } from "./IObservable"; +import { IObserver } from "./IObserver"; +export declare abstract class ObservableBase extends SubscribableBase> implements IObservable { protected _onNext(value: T): void; protected _onError(error: Error): void; protected _onCompleted(): void; diff --git a/dist/amd/System/Observable/ObservableBase.js b/dist/amd/System/Observable/ObservableBase.js index af63b02c..ce355426 100644 --- a/dist/amd/System/Observable/ObservableBase.js +++ b/dist/amd/System/Observable/ObservableBase.js @@ -4,5 +4,5 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ -var __extends=this&&this.__extends||function(e,t){function o(){this.constructor=e}for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)};define(["require","exports","./SubscribableBase"],function(e,t,o){"use strict";function r(e,t){for(var o=null,r=0,n=e;r\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport SubscribableBase from \"./SubscribableBase\";\r\n\r\n// Can be used as a base class, mixin, or simply reference on how to implement the pattern.\r\n\r\nabstract class ObservableBase\r\nextends SubscribableBase>\r\nimplements IObservable\r\n{\r\n\r\n\tprotected _onNext(value:T):void\r\n\t{\r\n\t\tprocessAction(\r\n\t\t\tthis._getSubscribers(),\r\n\t\t\ts => { s.onNext && s.onNext(value); }\r\n\t\t);\r\n\t}\r\n\r\n\tprotected _onError(error:Error):void\r\n\t{\r\n\t\tprocessAction(\r\n\t\t\tthis._getSubscribers(),\r\n\t\t\ts => { s.onError && s.onError(error); }\r\n\t\t);\r\n\t}\r\n\r\n\tprotected _onCompleted():void\r\n\t{\r\n\t\tprocessAction(\r\n\t\t\tthis._unsubscribeAll(true),\r\n\t\t\ts => { s.onCompleted && s.onCompleted(); }\r\n\t\t);\r\n\t}\r\n}\r\n\r\nconst OBSERVER_ERROR_MESSAGE:string = 'One or more observers had errors when attempting to pass information.';\r\n\r\nfunction processAction(\r\n\tobservers:IObserver[],\r\n\thandler:(s:IObserver)=>void)\r\n{\r\n\tvar observersErrors:{observer:IObserver,ex:any}[] = null;\r\n\r\n\tfor(let s of observers)\r\n\t{\r\n\t\ttry\r\n\t\t{\r\n\t\t\thandler(s);\r\n\t\t}\r\n\t\tcatch(ex)\r\n\t\t{\r\n\t\t\tobserversErrors = observersErrors || [];\r\n\t\t\t// Don't let one error prevent others from recieving information.\r\n\t\t\tobserversErrors.push({observer: s, ex: ex});\r\n\t\t}\r\n\t}\r\n\r\n\tobservers.length = 0;\r\n\r\n\tif(observersErrors && observersErrors.length)\r\n\t{\r\n\t\tif(console && console.error)\r\n\t\t\tconsole.error(OBSERVER_ERROR_MESSAGE, observersErrors);\r\n\t\telse throw {\r\n\t\t\tmessage: OBSERVER_ERROR_MESSAGE,\r\n\t\t\terrors: observersErrors\r\n\t\t};\r\n\t}\r\n\r\n}\r\n\r\nexport default ObservableBase;"]} \ No newline at end of file +{"version":3,"sources":["System/Observable/ObservableBase.js","System/Observable/ObservableBase.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","SubscribableBase_1","processAction","observers","handler","observersErrors","_i","observers_1","length","s","ex","push","observer","console","error","message","OBSERVER_ERROR_MESSAGE","errors","ObservableBase","_super","apply","arguments","_onNext","value","_getSubscribers","onNext","_onError","onError","_onCompleted","_unsubscribeAll","onCompleted","SubscribableBase","defineProperty"],"mappings":";;;;;;AAMA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,sBAAuB,SAAUC,EAASC,EAASC,GAC7E,YCiCJ,SAAAC,GACCC,EACAC,GAIA,IAAa,GAFTC,GAAmD,KAE1CC,EAAA,EAAAC,EAAAJ,EAAAG,EAAAC,EAAAC,OAAAF,IAAU,CAAnB,GAAIG,GAACF,EAAAD,EAER,KAECF,EAAQK,GAET,MAAMC,GAELL,EAAkBA,MAElBA,EAAgBM,MAAMC,SAAUH,EAAGC,GAAIA,KAMzC,GAFAP,EAAUK,OAAS,EAEhBH,GAAmBA,EAAgBG,OACtC,CACC,IAAGK,UAAWA,QAAQC,MAEjB,MACJC,QAASC,EACTC,OAAQZ,EAHRQ,SAAQC,MAAME,EAAwBX,IAxDzC,GAAAa,GAAA,SAAAC,GAAA,QAAAD,KACQC,EAAAC,MAAAhC,KAAAiC,WA0BR,MA1BQlC,WAAA+B,EAAAC,GAGGD,EAAAvB,UAAA2B,QAAV,SAAkBC,GAEjBrB,EACCd,KAAKoC,kBACL,SAAAf,GAAOA,EAAEgB,QAAUhB,EAAEgB,OAAOF,MAIpBL,EAAAvB,UAAA+B,SAAV,SAAmBZ,GAElBZ,EACCd,KAAKoC,kBACL,SAAAf,GAAOA,EAAEkB,SAAWlB,EAAEkB,QAAQb,MAItBI,EAAAvB,UAAAiC,aAAV,WAEC1B,EACCd,KAAKyC,iBAAgB,GACrB,SAAApB,GAAOA,EAAEqB,aAAerB,EAAEqB,iBAG7BZ,GA1BQjB,EAAA8B,iBADc/B,GAAAkB,eAAcA,CA6BpC,IAAMF,GAAgC,uEAoCtCpB,QAAAoC,eAAAhC,EAAA,cAAAuB,OAAA,IDxBIvB,EAAAA,WCwBWkB","file":"System/Observable/ObservableBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based upon .NET source.\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"./SubscribableBase\"], function (require, exports, SubscribableBase_1) {\n \"use strict\";\n var ObservableBase = (function (_super) {\n __extends(ObservableBase, _super);\n function ObservableBase() {\n _super.apply(this, arguments);\n }\n ObservableBase.prototype._onNext = function (value) {\n processAction(this._getSubscribers(), function (s) { s.onNext && s.onNext(value); });\n };\n ObservableBase.prototype._onError = function (error) {\n processAction(this._getSubscribers(), function (s) { s.onError && s.onError(error); });\n };\n ObservableBase.prototype._onCompleted = function () {\n processAction(this._unsubscribeAll(true), function (s) { s.onCompleted && s.onCompleted(); });\n };\n return ObservableBase;\n }(SubscribableBase_1.SubscribableBase));\n exports.ObservableBase = ObservableBase;\n var OBSERVER_ERROR_MESSAGE = 'One or more observers had errors when attempting to pass information.';\n function processAction(observers, handler) {\n var observersErrors = null;\n for (var _i = 0, observers_1 = observers; _i < observers_1.length; _i++) {\n var s = observers_1[_i];\n try {\n handler(s);\n }\n catch (ex) {\n observersErrors = observersErrors || [];\n observersErrors.push({ observer: s, ex: ex });\n }\n }\n observers.length = 0;\n if (observersErrors && observersErrors.length) {\n if (console && console.error)\n console.error(OBSERVER_ERROR_MESSAGE, observersErrors);\n else\n throw {\n message: OBSERVER_ERROR_MESSAGE,\n errors: observersErrors\n };\n }\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ObservableBase;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based upon .NET source.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\r\n */\r\n\r\n\r\nimport {SubscribableBase} from \"./SubscribableBase\";\r\nimport {IObservable} from \"./IObservable\";\r\nimport {IObserver} from \"./IObserver\";\r\n\r\n// Can be used as a base class, mixin, or simply reference on how to implement the pattern.\r\n\r\nexport abstract class ObservableBase\r\nextends SubscribableBase> implements IObservable\r\n{\r\n\r\n\tprotected _onNext(value:T):void\r\n\t{\r\n\t\tprocessAction(\r\n\t\t\tthis._getSubscribers(),\r\n\t\t\ts => { s.onNext && s.onNext(value); }\r\n\t\t);\r\n\t}\r\n\r\n\tprotected _onError(error:Error):void\r\n\t{\r\n\t\tprocessAction(\r\n\t\t\tthis._getSubscribers(),\r\n\t\t\ts => { s.onError && s.onError(error); }\r\n\t\t);\r\n\t}\r\n\r\n\tprotected _onCompleted():void\r\n\t{\r\n\t\tprocessAction(\r\n\t\t\tthis._unsubscribeAll(true),\r\n\t\t\ts => { s.onCompleted && s.onCompleted(); }\r\n\t\t);\r\n\t}\r\n}\r\n\r\nconst OBSERVER_ERROR_MESSAGE:string = 'One or more observers had errors when attempting to pass information.';\r\n\r\nfunction processAction(\r\n\tobservers:IObserver[],\r\n\thandler:(s:IObserver)=>void)\r\n{\r\n\tvar observersErrors:{observer:IObserver,ex:any}[] = null;\r\n\r\n\tfor(let s of observers)\r\n\t{\r\n\t\ttry\r\n\t\t{\r\n\t\t\thandler(s);\r\n\t\t}\r\n\t\tcatch(ex)\r\n\t\t{\r\n\t\t\tobserversErrors = observersErrors || [];\r\n\t\t\t// Don't let one error prevent others from recieving information.\r\n\t\t\tobserversErrors.push({observer: s, ex: ex});\r\n\t\t}\r\n\t}\r\n\r\n\tobservers.length = 0;\r\n\r\n\tif(observersErrors && observersErrors.length)\r\n\t{\r\n\t\tif(console && console.error)\r\n\t\t\tconsole.error(OBSERVER_ERROR_MESSAGE, observersErrors);\r\n\t\telse throw {\r\n\t\t\tmessage: OBSERVER_ERROR_MESSAGE,\r\n\t\t\terrors: observersErrors\r\n\t\t};\r\n\t}\r\n\r\n}\r\n\r\nexport default ObservableBase;"]} \ No newline at end of file diff --git a/dist/amd/System/Observable/ObservableNodeBase.d.ts b/dist/amd/System/Observable/ObservableNodeBase.d.ts index 420a0dbc..25d83469 100644 --- a/dist/amd/System/Observable/ObservableNodeBase.d.ts +++ b/dist/amd/System/Observable/ObservableNodeBase.d.ts @@ -1,5 +1,3 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Based upon .NET source. @@ -7,8 +5,10 @@ * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ import ObservableBase from "./ObservableBase"; -export default class ObservableNodeBase extends ObservableBase implements IObserver { +import { IObserver } from "./IObserver"; +export declare class ObservableNodeBase extends ObservableBase implements IObserver { onNext(value: T): void; onError(error: Error): void; onCompleted(): void; } +export default ObservableNodeBase; diff --git a/dist/amd/System/Observable/ObservableNodeBase.js b/dist/amd/System/Observable/ObservableNodeBase.js index 4882421f..d2c0b374 100644 --- a/dist/amd/System/Observable/ObservableNodeBase.js +++ b/dist/amd/System/Observable/ObservableNodeBase.js @@ -4,5 +4,5 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ -var __extends=this&&this.__extends||function(t,e){function o(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)};define(["require","exports","./ObservableBase"],function(t,e,o){"use strict";var n=function(t){function e(){t.apply(this,arguments)}return __extends(e,t),e.prototype.onNext=function(t){this._onNext(t)},e.prototype.onError=function(t){this._onError(t)},e.prototype.onCompleted=function(){this._onCompleted()},e}(o["default"]);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=n}); +var __extends=this&&this.__extends||function(t,e){function o(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)};define(["require","exports","./ObservableBase"],function(t,e,o){"use strict";var n=function(t){function e(){t.apply(this,arguments)}return __extends(e,t),e.prototype.onNext=function(t){this._onNext(t)},e.prototype.onError=function(t){this._onError(t)},e.prototype.onCompleted=function(){this._onCompleted()},e}(o["default"]);e.ObservableNodeBase=n,Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=n}); //# sourceMappingURL=ObservableNodeBase.js.map diff --git a/dist/amd/System/Observable/ObservableNodeBase.js.map b/dist/amd/System/Observable/ObservableNodeBase.js.map index 3a363d6f..a968ef45 100644 --- a/dist/amd/System/Observable/ObservableNodeBase.js.map +++ b/dist/amd/System/Observable/ObservableNodeBase.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Observable/ObservableNodeBase.js","System/Observable/ObservableNodeBase.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","ObservableBase_1","ObservableNodeBase","_super","apply","arguments","onNext","value","_onNext","onError","error","_onError","onCompleted","_onCompleted","defineProperty"],"mappings":";;;;;;AAMA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,oBAAqB,SAAUC,EAASC,EAASC,GCF/E,YAKA,IAAAC,GAAA,SAAAC,GAAA,QAAAD,KAEQC,EAAAC,MAAAhB,KAAAiB,WAkBR,MAlBQlB,WAAAe,EAAAC,GAIPD,EAAAP,UAAAW,OAAA,SAAOC,GAENnB,KAAKoB,QAAQD,IAGdL,EAAAP,UAAAc,QAAA,SAAQC,GAEPtB,KAAKuB,SAASD,IAGfR,EAAAP,UAAAiB,YAAA,WAECxB,KAAKyB,gBAEPX,GAlBQD,EAAAA,WAFRL,QAAAkB,eAAAd,EAAA,cAAAO,OAAA,IDgBIP,EAAAA,WAAkBE","file":"System/Observable/ObservableNodeBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based upon .NET source.\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"./ObservableBase\"], function (require, exports, ObservableBase_1) {\n 'use strict';\n var ObservableNodeBase = (function (_super) {\n __extends(ObservableNodeBase, _super);\n function ObservableNodeBase() {\n _super.apply(this, arguments);\n }\n ObservableNodeBase.prototype.onNext = function (value) {\n this._onNext(value);\n };\n ObservableNodeBase.prototype.onError = function (error) {\n this._onError(error);\n };\n ObservableNodeBase.prototype.onCompleted = function () {\n this._onCompleted();\n };\n return ObservableNodeBase;\n }(ObservableBase_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ObservableNodeBase;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based upon .NET source.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\r\n */\r\n\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport ObservableBase from \"./ObservableBase\";\r\n\r\n// Can be used as a base class, mixin, or simply reference on how to implement the pattern.\r\nexport default\r\nclass ObservableNodeBase\r\nextends ObservableBase\r\nimplements IObserver\r\n{\r\n\r\n\tonNext(value:T):void\r\n\t{\r\n\t\tthis._onNext(value);\r\n\t}\r\n\r\n\tonError(error:Error):void\r\n\t{\r\n\t\tthis._onError(error);\r\n\t}\r\n\r\n\tonCompleted():void\r\n\t{\r\n\t\tthis._onCompleted();\r\n\t}\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Observable/ObservableNodeBase.js","System/Observable/ObservableNodeBase.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","ObservableBase_1","ObservableNodeBase","_super","apply","arguments","onNext","value","_onNext","onError","error","_onError","onCompleted","_onCompleted","defineProperty"],"mappings":";;;;;;AAMA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,oBAAqB,SAAUC,EAASC,EAASC,GAC3E,YCDJ,IAAAC,GAAA,SAAAC,GAAA,QAAAD,KACQC,EAAAC,MAAAhB,KAAAiB,WAkBR,MAlBQlB,WAAAe,EAAAC,GAIPD,EAAAP,UAAAW,OAAA,SAAOC,GAENnB,KAAKoB,QAAQD,IAGdL,EAAAP,UAAAc,QAAA,SAAQC,GAEPtB,KAAKuB,SAASD,IAGfR,EAAAP,UAAAiB,YAAA,WAECxB,KAAKyB,gBAEPX,GAlBQD,EAAAA,WADKD,GAAAE,mBAAkBA,EAqB/BN,OAAAkB,eAAAd,EAAA,cAAAO,OAAA,IDDIP,EAAAA,WCCWE","file":"System/Observable/ObservableNodeBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based upon .NET source.\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"./ObservableBase\"], function (require, exports, ObservableBase_1) {\n \"use strict\";\n var ObservableNodeBase = (function (_super) {\n __extends(ObservableNodeBase, _super);\n function ObservableNodeBase() {\n _super.apply(this, arguments);\n }\n ObservableNodeBase.prototype.onNext = function (value) {\n this._onNext(value);\n };\n ObservableNodeBase.prototype.onError = function (error) {\n this._onError(error);\n };\n ObservableNodeBase.prototype.onCompleted = function () {\n this._onCompleted();\n };\n return ObservableNodeBase;\n }(ObservableBase_1.default));\n exports.ObservableNodeBase = ObservableNodeBase;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ObservableNodeBase;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based upon .NET source.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\r\n */\r\n\r\n// Can be used as a base class, mixin, or simply reference on how to implement the pattern.\r\nimport ObservableBase from \"./ObservableBase\";\r\nimport {IObserver} from \"./IObserver\";\r\n\r\nexport class ObservableNodeBase\r\nextends ObservableBase\r\nimplements IObserver\r\n{\r\n\r\n\tonNext(value:T):void\r\n\t{\r\n\t\tthis._onNext(value);\r\n\t}\r\n\r\n\tonError(error:Error):void\r\n\t{\r\n\t\tthis._onError(error);\r\n\t}\r\n\r\n\tonCompleted():void\r\n\t{\r\n\t\tthis._onCompleted();\r\n\t}\r\n}\r\n\r\nexport default ObservableNodeBase;"]} \ No newline at end of file diff --git a/dist/amd/System/Observable/SubscribableBase.d.ts b/dist/amd/System/Observable/SubscribableBase.d.ts index 5de54bfc..a292656a 100644 --- a/dist/amd/System/Observable/SubscribableBase.d.ts +++ b/dist/amd/System/Observable/SubscribableBase.d.ts @@ -1,12 +1,11 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Based upon .NET source. * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ -export default class SubscribableBase implements IDisposable { +import { IDisposable } from "../Disposable/IDisposable"; +export declare class SubscribableBase implements IDisposable { private __subscriptions; protected _getSubscribers(): TSubscriber[]; constructor(); @@ -17,3 +16,4 @@ export default class SubscribableBase implements IDisposable { unsubscribeAll(): void; dispose(): void; } +export default SubscribableBase; diff --git a/dist/amd/System/Observable/SubscribableBase.js b/dist/amd/System/Observable/SubscribableBase.js index c5accd86..e667d57e 100644 --- a/dist/amd/System/Observable/SubscribableBase.js +++ b/dist/amd/System/Observable/SubscribableBase.js @@ -4,5 +4,5 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ -define(["require","exports","../Collections/LinkedNodeList","../Disposable/dispose","./Subscription"],function(e,t,r,i,n){"use strict";var s=function(){function e(){this.__subscriptions=new r["default"]}return e.prototype._getSubscribers=function(){return this.__subscriptions.map(function(e){return e.value&&e.value.subscriber})},e.prototype._findEntryNode=function(e){return this.__subscriptions.find(function(t){return t.value.subscriber===e})},e.prototype.subscribe=function(e){var t=this,r=t._findEntryNode(e);if(r)return r.value;var i=new n["default"](t,e);return t.__subscriptions.addNode({value:i}),i},e.prototype.unsubscribe=function(e){var t=this,r=t._findEntryNode(e);if(r){var i=r.value;t.__subscriptions.removeNode(r),i.dispose()}},e.prototype._unsubscribeAll=function(e){void 0===e&&(e=!1);var t=this,r=t.__subscriptions,n=r.map(function(e){return e.value}),s=e?n.map(function(e){return e.subscriber}):null;return r.clear(),i["default"].these(n),s},e.prototype.unsubscribeAll=function(){this._unsubscribeAll()},e.prototype.dispose=function(){this._unsubscribeAll()},e}();Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=s}); +define(["require","exports","../Collections/LinkedNodeList","../Disposable/dispose","./Subscription"],function(e,i,s,t,r){"use strict";var n=function(){function e(){this.__subscriptions=new s.LinkedNodeList}return e.prototype._getSubscribers=function(){return this.__subscriptions.map(function(e){return e.value&&e.value.subscriber})},e.prototype._findEntryNode=function(e){return this.__subscriptions.find(function(i){return i.value.subscriber===e})},e.prototype.subscribe=function(e){var i=this,s=i._findEntryNode(e);if(s)return s.value;var t=new r.Subscription(i,e);return i.__subscriptions.addNode({value:t}),t},e.prototype.unsubscribe=function(e){var i=this,s=i._findEntryNode(e);if(s){var t=s.value;i.__subscriptions.removeNode(s),t.dispose()}},e.prototype._unsubscribeAll=function(e){void 0===e&&(e=!1);var i=this,s=i.__subscriptions,r=s.map(function(e){return e.value}),n=e?r.map(function(e){return e.subscriber}):null;return s.clear(),t.dispose.these(r),n},e.prototype.unsubscribeAll=function(){this._unsubscribeAll()},e.prototype.dispose=function(){this._unsubscribeAll()},e}();i.SubscribableBase=n,Object.defineProperty(i,"__esModule",{value:!0}),i["default"]=n}); //# sourceMappingURL=SubscribableBase.js.map diff --git a/dist/amd/System/Observable/SubscribableBase.js.map b/dist/amd/System/Observable/SubscribableBase.js.map index 6cc2dd96..09db366b 100644 --- a/dist/amd/System/Observable/SubscribableBase.js.map +++ b/dist/amd/System/Observable/SubscribableBase.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Observable/SubscribableBase.js","System/Observable/SubscribableBase.ts"],"names":["define","require","exports","LinkedNodeList_1","dispose_1","Subscription_1","SubscribableBase","this","__subscriptions","prototype","_getSubscribers","map","node","value","subscriber","_findEntryNode","find","n","subscribe","_","s","addNode","unsubscribe","removeNode","dispose","_unsubscribeAll","returnSubscribers","_s","u","o","clear","these","unsubscribeAll","Object","defineProperty"],"mappings":";;;;;;AAMAA,QAAQ,UAAW,UAAW,gCAAiC,wBAAyB,kBAAmB,SAAUC,EAASC,EAASC,EAAkBC,EAAWC,GCGpK,YAQA,IAAAC,GAAA,WAeC,QAAAA,KAECC,KAAKC,gBACF,GAAIL,GAAAA,WA2DT,MArEWG,GAAAG,UAAAC,gBAAV,WAEC,MAAOH,MACLC,gBACAG,IAAI,SAAAC,GAAM,MAAAA,GAAKC,OAASD,EAAKC,MAAMC,cAS9BR,EAAAG,UAAAM,eAAR,SACCD,GAEA,MAAOP,MACLC,gBACAQ,KAAK,SAAAC,GAAG,MAAAA,GAAEJ,MAAMC,aAAaA,KAIhCR,EAAAG,UAAAS,UAAA,SAAUJ,GAET,GAAIK,GAAIZ,KACJU,EAAIE,EAAEJ,eAAeD,EACzB,IAAGG,EACF,MAAOA,GAAEJ,KAEV,IAAIO,GAAI,GAAIf,GAAAA,WAAac,EAAGL,EAG5B,OAFAK,GAAEX,gBAAgBa,SAASR,MAAOO,IAE3BA,GAGRd,EAAAG,UAAAa,YAAA,SAAYR,GAEX,GAAIK,GAAIZ,KACJU,EAAIE,EAAEJ,eAAeD,EACzB,IAAGG,EACH,CACC,GAAIG,GAAIH,EAAEJ,KACVM,GAAEX,gBAAgBe,WAAWN,GAC7BG,EAAEI,YAIMlB,EAAAG,UAAAgB,gBAAV,SAA0BC,GAAA,SAAAA,IAAAA,GAAA,EAEzB,IAAIP,GAAIZ,KAAMoB,EAAKR,EAAEX,gBACjBY,EAAIO,EAAGhB,IAAI,SAAAM,GAAG,MAAAA,GAAEJ,QAChBe,EAAIF,EAAoBN,EAAET,IAAI,SAAAkB,GAAG,MAAAA,GAAEf,aAAc,IAKrD,OAJAa,GAAGG,QAEH1B,EAAAA,WAAQ2B,MAAMX,GAEPQ,GAGRtB,EAAAG,UAAAuB,eAAA,WAECzB,KAAKkB,mBAGNnB,EAAAG,UAAAe,QAAA,WAECjB,KAAKkB,mBAGPnB,IA7EA2B,QAAAC,eAAAhC,EAAA,cAAAW,OAAA,ID0CIX,EAAAA,WAAkBI","file":"System/Observable/SubscribableBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based upon .NET source.\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\n */\ndefine([\"require\", \"exports\", \"../Collections/LinkedNodeList\", \"../Disposable/dispose\", \"./Subscription\"], function (require, exports, LinkedNodeList_1, dispose_1, Subscription_1) {\n 'use strict';\n var SubscribableBase = (function () {\n function SubscribableBase() {\n this.__subscriptions\n = new LinkedNodeList_1.default();\n }\n SubscribableBase.prototype._getSubscribers = function () {\n return this\n .__subscriptions\n .map(function (node) { return node.value && node.value.subscriber; });\n };\n SubscribableBase.prototype._findEntryNode = function (subscriber) {\n return this\n .__subscriptions\n .find(function (n) { return n.value.subscriber === subscriber; });\n };\n SubscribableBase.prototype.subscribe = function (subscriber) {\n var _ = this;\n var n = _._findEntryNode(subscriber);\n if (n)\n return n.value;\n var s = new Subscription_1.default(_, subscriber);\n _.__subscriptions.addNode({ value: s });\n return s;\n };\n SubscribableBase.prototype.unsubscribe = function (subscriber) {\n var _ = this;\n var n = _._findEntryNode(subscriber);\n if (n) {\n var s = n.value;\n _.__subscriptions.removeNode(n);\n s.dispose();\n }\n };\n SubscribableBase.prototype._unsubscribeAll = function (returnSubscribers) {\n if (returnSubscribers === void 0) { returnSubscribers = false; }\n var _ = this, _s = _.__subscriptions;\n var s = _s.map(function (n) { return n.value; });\n var u = returnSubscribers ? s.map(function (o) { return o.subscriber; }) : null;\n _s.clear();\n dispose_1.default.these(s);\n return u;\n };\n SubscribableBase.prototype.unsubscribeAll = function () {\n this._unsubscribeAll();\n };\n SubscribableBase.prototype.dispose = function () {\n this._unsubscribeAll();\n };\n return SubscribableBase;\n }());\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = SubscribableBase;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based upon .NET source.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\r\n */\r\n\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport LinkedNodeList from \"../Collections/LinkedNodeList\";\r\nimport dispose from \"../Disposable/dispose\";\r\nimport Subscription from \"./Subscription\";\r\n\r\n// This class is very much akin to a registry or 'Set' but uses an intermediary (Subscription) for releasing the registration.\r\n\r\nexport default\r\nclass SubscribableBase\r\nimplements IDisposable\r\n{\r\n\r\n\t// Use a linked list since it's much easier to remove a subscriber from anywhere in the list.\r\n\tprivate __subscriptions:LinkedNodeList>>;\r\n\r\n\tprotected _getSubscribers():TSubscriber[]\r\n\t{\r\n\t\treturn this\r\n\t\t\t.__subscriptions\r\n\t\t\t.map(node=>node.value && node.value.subscriber);\r\n\t}\r\n\r\n\tconstructor()\r\n\t{\r\n\t\tthis.__subscriptions\r\n\t\t\t= new LinkedNodeList>>();\r\n\t}\r\n\r\n\tprivate _findEntryNode(\r\n\t\tsubscriber:TSubscriber):ILinkedNodeWithValue>\r\n\t{\r\n\t\treturn this\r\n\t\t\t.__subscriptions\r\n\t\t\t.find(n=>n.value.subscriber===subscriber);\r\n\t}\r\n\r\n\t// It is possible that the same observer could call subscribe more than once and therefore we need to retain a single instance of the subscriber.\r\n\tsubscribe(subscriber:TSubscriber):IDisposable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar n = _._findEntryNode(subscriber);\r\n\t\tif(n) // Ensure only one instance of the existing subscription exists.\r\n\t\t\treturn n.value;\r\n\r\n\t\tvar s = new Subscription(_, subscriber);\r\n\t\t_.__subscriptions.addNode({value: s});\r\n\r\n\t\treturn s;\r\n\t}\r\n\r\n\tunsubscribe(subscriber:TSubscriber):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar n = _._findEntryNode(subscriber);\r\n\t\tif(n)\r\n\t\t{\r\n\t\t\tvar s = n.value;\r\n\t\t\t_.__subscriptions.removeNode(n);\r\n\t\t\ts.dispose(); // Prevent further usage of a dead subscription.\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _unsubscribeAll(returnSubscribers:boolean = false):TSubscriber[]\r\n\t{\r\n\t\tvar _ = this, _s = _.__subscriptions;\r\n\t\tvar s = _s.map(n=>n.value);\r\n\t\tvar u = returnSubscribers ? s.map(o=>o.subscriber) : null;\r\n\t\t_s.clear(); // Reset...\r\n\r\n\t\tdispose.these(s);\r\n\r\n\t\treturn u;\r\n\t}\r\n\r\n\tunsubscribeAll():void\r\n\t{\r\n\t\tthis._unsubscribeAll();\r\n\t}\r\n\r\n\tdispose()\r\n\t{\r\n\t\tthis._unsubscribeAll();\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Observable/SubscribableBase.js","System/Observable/SubscribableBase.ts"],"names":["define","require","exports","LinkedNodeList_1","dispose_1","Subscription_1","SubscribableBase","this","__subscriptions","LinkedNodeList","prototype","_getSubscribers","map","node","value","subscriber","_findEntryNode","find","n","subscribe","_","s","Subscription","addNode","unsubscribe","removeNode","dispose","_unsubscribeAll","returnSubscribers","_s","u","o","clear","these","unsubscribeAll","Object","defineProperty"],"mappings":";;;;;;AAMAA,QAAQ,UAAW,UAAW,gCAAiC,wBAAyB,kBAAmB,SAAUC,EAASC,EAASC,EAAkBC,EAAWC,GAChK,YCQJ,IAAAC,GAAA,WAcC,QAAAA,KAECC,KAAKC,gBACF,GAAIL,GAAAM,eA2DT,MArEWH,GAAAI,UAAAC,gBAAV,WAEC,MAAOJ,MACLC,gBACAI,IAAI,SAAAC,GAAM,MAAAA,GAAKC,OAASD,EAAKC,MAAMC,cAS9BT,EAAAI,UAAAM,eAAR,SACCD,GAEA,MAAOR,MACLC,gBACAS,KAAK,SAAAC,GAAG,MAAAA,GAAEJ,MAAMC,aAAaA,KAIhCT,EAAAI,UAAAS,UAAA,SAAUJ,GAET,GAAIK,GAAIb,KACJW,EAAIE,EAAEJ,eAAeD,EACzB,IAAGG,EACF,MAAOA,GAAEJ,KAEV,IAAIO,GAAI,GAAIhB,GAAAiB,aAAaF,EAAGL,EAG5B,OAFAK,GAAEZ,gBAAgBe,SAAST,MAAOO,IAE3BA,GAGRf,EAAAI,UAAAc,YAAA,SAAYT,GAEX,GAAIK,GAAIb,KACJW,EAAIE,EAAEJ,eAAeD,EACzB,IAAGG,EACH,CACC,GAAIG,GAAIH,EAAEJ,KACVM,GAAEZ,gBAAgBiB,WAAWP,GAC7BG,EAAEK,YAIMpB,EAAAI,UAAAiB,gBAAV,SAA0BC,GAAA,SAAAA,IAAAA,GAAA,EAEzB,IAAIR,GAAIb,KAAMsB,EAAKT,EAAEZ,gBACjBa,EAAIQ,EAAGjB,IAAI,SAAAM,GAAG,MAAAA,GAAEJ,QAChBgB,EAAIF,EAAoBP,EAAET,IAAI,SAAAmB,GAAG,MAAAA,GAAEhB,aAAc,IAKrD,OAJAc,GAAGG,QAEH5B,EAAAsB,QAAQO,MAAMZ,GAEPS,GAGRxB,EAAAI,UAAAwB,eAAA,WAEC3B,KAAKoB,mBAGNrB,EAAAI,UAAAgB,QAAA,WAECnB,KAAKoB,mBAGPrB,IA5EaJ,GAAAI,iBAAgBA,EA8E7B6B,OAAAC,eAAAlC,EAAA,cAAAY,OAAA,IDjCIZ,EAAAA,WCiCWI","file":"System/Observable/SubscribableBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based upon .NET source.\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\n */\ndefine([\"require\", \"exports\", \"../Collections/LinkedNodeList\", \"../Disposable/dispose\", \"./Subscription\"], function (require, exports, LinkedNodeList_1, dispose_1, Subscription_1) {\n \"use strict\";\n var SubscribableBase = (function () {\n function SubscribableBase() {\n this.__subscriptions\n = new LinkedNodeList_1.LinkedNodeList();\n }\n SubscribableBase.prototype._getSubscribers = function () {\n return this\n .__subscriptions\n .map(function (node) { return node.value && node.value.subscriber; });\n };\n SubscribableBase.prototype._findEntryNode = function (subscriber) {\n return this\n .__subscriptions\n .find(function (n) { return n.value.subscriber === subscriber; });\n };\n SubscribableBase.prototype.subscribe = function (subscriber) {\n var _ = this;\n var n = _._findEntryNode(subscriber);\n if (n)\n return n.value;\n var s = new Subscription_1.Subscription(_, subscriber);\n _.__subscriptions.addNode({ value: s });\n return s;\n };\n SubscribableBase.prototype.unsubscribe = function (subscriber) {\n var _ = this;\n var n = _._findEntryNode(subscriber);\n if (n) {\n var s = n.value;\n _.__subscriptions.removeNode(n);\n s.dispose();\n }\n };\n SubscribableBase.prototype._unsubscribeAll = function (returnSubscribers) {\n if (returnSubscribers === void 0) { returnSubscribers = false; }\n var _ = this, _s = _.__subscriptions;\n var s = _s.map(function (n) { return n.value; });\n var u = returnSubscribers ? s.map(function (o) { return o.subscriber; }) : null;\n _s.clear();\n dispose_1.dispose.these(s);\n return u;\n };\n SubscribableBase.prototype.unsubscribeAll = function () {\n this._unsubscribeAll();\n };\n SubscribableBase.prototype.dispose = function () {\n this._unsubscribeAll();\n };\n return SubscribableBase;\n }());\n exports.SubscribableBase = SubscribableBase;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = SubscribableBase;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based upon .NET source.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\r\n */\r\n\r\n\r\nimport {LinkedNodeList} from \"../Collections/LinkedNodeList\";\r\nimport {dispose} from \"../Disposable/dispose\";\r\nimport {Subscription} from \"./Subscription\";\r\nimport {ILinkedNodeWithValue} from \"../Collections/ILinkedListNode\";\r\nimport {IDisposable} from \"../Disposable/IDisposable\";\r\n\r\n// This class is very much akin to a registry or 'Set' but uses an intermediary (Subscription) for releasing the registration.\r\nexport class SubscribableBase\r\nimplements IDisposable\r\n{\r\n\r\n\t// Use a linked list since it's much easier to remove a subscriber from anywhere in the list.\r\n\tprivate __subscriptions:LinkedNodeList>>;\r\n\r\n\tprotected _getSubscribers():TSubscriber[]\r\n\t{\r\n\t\treturn this\r\n\t\t\t.__subscriptions\r\n\t\t\t.map(node=>node.value && node.value.subscriber);\r\n\t}\r\n\r\n\tconstructor()\r\n\t{\r\n\t\tthis.__subscriptions\r\n\t\t\t= new LinkedNodeList>>();\r\n\t}\r\n\r\n\tprivate _findEntryNode(\r\n\t\tsubscriber:TSubscriber):ILinkedNodeWithValue>\r\n\t{\r\n\t\treturn this\r\n\t\t\t.__subscriptions\r\n\t\t\t.find(n=>n.value.subscriber===subscriber);\r\n\t}\r\n\r\n\t// It is possible that the same observer could call subscribe more than once and therefore we need to retain a single instance of the subscriber.\r\n\tsubscribe(subscriber:TSubscriber):IDisposable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar n = _._findEntryNode(subscriber);\r\n\t\tif(n) // Ensure only one instance of the existing subscription exists.\r\n\t\t\treturn n.value;\r\n\r\n\t\tvar s = new Subscription(_, subscriber);\r\n\t\t_.__subscriptions.addNode({value: s});\r\n\r\n\t\treturn s;\r\n\t}\r\n\r\n\tunsubscribe(subscriber:TSubscriber):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar n = _._findEntryNode(subscriber);\r\n\t\tif(n)\r\n\t\t{\r\n\t\t\tvar s = n.value;\r\n\t\t\t_.__subscriptions.removeNode(n);\r\n\t\t\ts.dispose(); // Prevent further usage of a dead subscription.\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _unsubscribeAll(returnSubscribers:boolean = false):TSubscriber[]\r\n\t{\r\n\t\tvar _ = this, _s = _.__subscriptions;\r\n\t\tvar s = _s.map(n=>n.value);\r\n\t\tvar u = returnSubscribers ? s.map(o=>o.subscriber) : null;\r\n\t\t_s.clear(); // Reset...\r\n\r\n\t\tdispose.these(s);\r\n\r\n\t\treturn u;\r\n\t}\r\n\r\n\tunsubscribeAll():void\r\n\t{\r\n\t\tthis._unsubscribeAll();\r\n\t}\r\n\r\n\tdispose()\r\n\t{\r\n\t\tthis._unsubscribeAll();\r\n\t}\r\n\r\n}\r\n\r\nexport default SubscribableBase;\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Observable/Subscription.d.ts b/dist/amd/System/Observable/Subscription.d.ts index ad70893a..d39df22c 100644 --- a/dist/amd/System/Observable/Subscription.d.ts +++ b/dist/amd/System/Observable/Subscription.d.ts @@ -1,13 +1,12 @@ -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Based upon .NET source. * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ -export default class Subscription implements IDisposableAware { +import { IDisposableAware } from "../Disposable/IDisposableAware"; +import { ISubscribable } from "./ISubscribable"; +export declare class Subscription implements IDisposableAware { private _subscribable; private _subscriber; constructor(_subscribable: ISubscribable, _subscriber: T); @@ -15,3 +14,4 @@ export default class Subscription implements IDisposableAware { wasDisposed: boolean; dispose(): void; } +export default Subscription; diff --git a/dist/amd/System/Observable/Subscription.js b/dist/amd/System/Observable/Subscription.js index 48742608..e572ef2a 100644 --- a/dist/amd/System/Observable/Subscription.js +++ b/dist/amd/System/Observable/Subscription.js @@ -4,5 +4,5 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ -define(["require","exports"],function(e,r){"use strict";var s=function(){function e(e,r){if(this._subscribable=e,this._subscriber=r,!e||!r)throw"Subscribable and subscriber cannot be null."}return Object.defineProperty(e.prototype,"subscriber",{get:function(){return this._subscriber},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"wasDisposed",{get:function(){return!this._subscribable||!this._subscriber},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){var e=this.subscriber,r=this._subscribable;this._subscriber=null,this._subscribable=null,e&&r&&r.unsubscribe(e)},e}();Object.defineProperty(r,"__esModule",{value:!0}),r["default"]=s}); +define(["require","exports"],function(e,r){"use strict";var s=function(){function e(e,r){if(this._subscribable=e,this._subscriber=r,!e||!r)throw"Subscribable and subscriber cannot be null."}return Object.defineProperty(e.prototype,"subscriber",{get:function(){return this._subscriber},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"wasDisposed",{get:function(){return!this._subscribable||!this._subscriber},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){var e=this.subscriber,r=this._subscribable;this._subscriber=null,this._subscribable=null,e&&r&&r.unsubscribe(e)},e}();r.Subscription=s,Object.defineProperty(r,"__esModule",{value:!0}),r["default"]=s}); //# sourceMappingURL=Subscription.js.map diff --git a/dist/amd/System/Observable/Subscription.js.map b/dist/amd/System/Observable/Subscription.js.map index 88f916b0..4231e416 100644 --- a/dist/amd/System/Observable/Subscription.js.map +++ b/dist/amd/System/Observable/Subscription.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Observable/Subscription.js","System/Observable/Subscription.ts"],"names":["define","require","exports","Subscription","_subscribable","_subscriber","this","Object","defineProperty","prototype","get","enumerable","configurable","dispose","subscriber","subscribable","unsubscribe","value"],"mappings":";;;;;;AAMAA,QAAQ,UAAW,WAAY,SAAUC,EAASC,GCIlD,YAKA,IAAAC,GAAA,WAGC,QAAAA,GACSC,EACAC,GAER,GAHQC,KAAAF,cAAAA,EACAE,KAAAD,YAAAA,GAEHD,IAAkBC,EACtB,KAAM,8CA0CT,MAvCCE,QAAAC,eAAIL,EAAAM,UAAA,cDVOC,ICUX,WACC,MAAOJ,MAAKD,aDRFM,YAAY,EACZC,cAAc,ICyBzBL,OAAAC,eAAIL,EAAAM,UAAA,eDtBOC,ICsBX,WAEC,OAAQJ,KAAKF,gBAAkBE,KAAKD,aDrB1BM,YAAY,EACZC,cAAc,ICuBzBT,EAAAM,UAAAI,QAAA,WAEC,GAAIC,GAAaR,KAAKQ,WAClBC,EAAeT,KAAKF,aAGxBE,MAAKD,YAAc,KACnBC,KAAKF,cAAgB,KAGjBU,GAAcC,GAEjBA,EAAaC,YAAYF,IAG5BX,IAlDAI,QAAAC,eAAAN,EAAA,cAAAe,OAAA,ID0BIf,EAAAA,WAAkBC","file":"System/Observable/Subscription.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based upon .NET source.\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\n */\ndefine([\"require\", \"exports\"], function (require, exports) {\n 'use strict';\n var Subscription = (function () {\n function Subscription(_subscribable, _subscriber) {\n this._subscribable = _subscribable;\n this._subscriber = _subscriber;\n if (!_subscribable || !_subscriber)\n throw 'Subscribable and subscriber cannot be null.';\n }\n Object.defineProperty(Subscription.prototype, \"subscriber\", {\n get: function () {\n return this._subscriber;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Subscription.prototype, \"wasDisposed\", {\n get: function () {\n return !this._subscribable || !this._subscriber;\n },\n enumerable: true,\n configurable: true\n });\n Subscription.prototype.dispose = function () {\n var subscriber = this.subscriber;\n var subscribable = this._subscribable;\n this._subscriber = null;\n this._subscribable = null;\n if (subscriber && subscribable) {\n subscribable.unsubscribe(subscriber);\n }\n };\n return Subscription;\n }());\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Subscription;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based upon .NET source.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\r\n */\r\n\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n/**\r\n * A registration that an IObservable returns that can be disposed in order to cancel sending data to the observer.\r\n */\r\nexport default\r\nclass Subscription implements IDisposableAware\r\n{\r\n\tconstructor(\r\n\t\tprivate _subscribable: ISubscribable,\r\n\t\tprivate _subscriber: T)\r\n\t{\r\n\t\tif (!_subscribable || !_subscriber)\r\n\t\t\tthrow 'Subscribable and subscriber cannot be null.';\r\n\t}\r\n\r\n\tget subscriber():T {\r\n\t\treturn this._subscriber;\r\n\t}\r\n\r\n\t/*\r\n\t In the case where we could possibly have the following happen:\r\n\r\n\t var u = observable.subscribe(observer);\r\n\r\n\t ...\r\n\r\n\t u.dispose(); // Should only be allowed to unsubscribe once and then it's useless.\r\n\r\n\t // Resubscribing creates a new instance.\r\n\t var x = observable.subscribe(observer);\r\n\r\n\t u.dispose(); // Calling this again should do nothing and 'x' should still work.\r\n\t */\r\n\r\n\tget wasDisposed(): boolean\r\n\t{\r\n\t\treturn !this._subscribable || !this._subscriber;\r\n\t}\r\n\r\n\tdispose(): void\r\n\t{\r\n\t\tvar subscriber = this.subscriber;\r\n\t\tvar subscribable = this._subscribable;\r\n\r\n\t\t// Release the references. Will prevent potential unwanted recursion.\r\n\t\tthis._subscriber = null;\r\n\t\tthis._subscribable = null;\r\n\r\n\r\n\t\tif (subscriber && subscribable)\r\n\t\t{\r\n\t\t\tsubscribable.unsubscribe(subscriber);\r\n\t\t}\r\n\t}\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Observable/Subscription.js","System/Observable/Subscription.ts"],"names":["define","require","exports","Subscription","_subscribable","_subscriber","this","Object","defineProperty","prototype","get","enumerable","configurable","dispose","subscriber","subscribable","unsubscribe","value"],"mappings":";;;;;;AAMAA,QAAQ,UAAW,WAAY,SAAUC,EAASC,GAC9C,YCOJ,IAAAC,GAAA,WAEC,QAAAA,GACSC,EACAC,GAER,GAHQC,KAAAF,cAAAA,EACAE,KAAAD,YAAAA,GAEHD,IAAkBC,EACtB,KAAM,8CA0CT,MAvCCE,QAAAC,eAAIL,EAAAM,UAAA,cDROC,ICQX,WACC,MAAOJ,MAAKD,aDNFM,YAAY,EACZC,cAAc,ICuBzBL,OAAAC,eAAIL,EAAAM,UAAA,eDpBOC,ICoBX,WAEC,OAAQJ,KAAKF,gBAAkBE,KAAKD,aDnB1BM,YAAY,EACZC,cAAc,ICqBzBT,EAAAM,UAAAI,QAAA,WAEC,GAAIC,GAAaR,KAAKQ,WAClBC,EAAeT,KAAKF,aAGxBE,MAAKD,YAAc,KACnBC,KAAKF,cAAgB,KAGjBU,GAAcC,GAEjBA,EAAaC,YAAYF,IAG5BX,IAjDaD,GAAAC,aAAYA,EAmDzBI,OAAAC,eAAAN,EAAA,cAAAe,OAAA,IDvBIf,EAAAA,WCuBWC","file":"System/Observable/Subscription.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based upon .NET source.\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\n */\ndefine([\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var Subscription = (function () {\n function Subscription(_subscribable, _subscriber) {\n this._subscribable = _subscribable;\n this._subscriber = _subscriber;\n if (!_subscribable || !_subscriber)\n throw 'Subscribable and subscriber cannot be null.';\n }\n Object.defineProperty(Subscription.prototype, \"subscriber\", {\n get: function () {\n return this._subscriber;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Subscription.prototype, \"wasDisposed\", {\n get: function () {\n return !this._subscribable || !this._subscriber;\n },\n enumerable: true,\n configurable: true\n });\n Subscription.prototype.dispose = function () {\n var subscriber = this.subscriber;\n var subscribable = this._subscribable;\n this._subscriber = null;\n this._subscribable = null;\n if (subscriber && subscribable) {\n subscribable.unsubscribe(subscriber);\n }\n };\n return Subscription;\n }());\n exports.Subscription = Subscription;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Subscription;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based upon .NET source.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\r\n */\r\n\r\n\r\nimport {IDisposableAware} from \"../Disposable/IDisposableAware\";\r\nimport {ISubscribable} from \"./ISubscribable\"; // For compatibility with (let, const, function, class);\r\n\r\n/**\r\n * A registration that an IObservable returns that can be disposed in order to cancel sending data to the observer.\r\n */\r\nexport class Subscription implements IDisposableAware\r\n{\r\n\tconstructor(\r\n\t\tprivate _subscribable: ISubscribable,\r\n\t\tprivate _subscriber: T)\r\n\t{\r\n\t\tif (!_subscribable || !_subscriber)\r\n\t\t\tthrow 'Subscribable and subscriber cannot be null.';\r\n\t}\r\n\r\n\tget subscriber():T {\r\n\t\treturn this._subscriber;\r\n\t}\r\n\r\n\t/*\r\n\t In the case where we could possibly have the following happen:\r\n\r\n\t var u = observable.subscribe(observer);\r\n\r\n\t ...\r\n\r\n\t u.dispose(); // Should only be allowed to unsubscribe once and then it's useless.\r\n\r\n\t // Resubscribing creates a new instance.\r\n\t var x = observable.subscribe(observer);\r\n\r\n\t u.dispose(); // Calling this again should do nothing and 'x' should still work.\r\n\t */\r\n\r\n\tget wasDisposed(): boolean\r\n\t{\r\n\t\treturn !this._subscribable || !this._subscriber;\r\n\t}\r\n\r\n\tdispose(): void\r\n\t{\r\n\t\tvar subscriber = this.subscriber;\r\n\t\tvar subscribable = this._subscribable;\r\n\r\n\t\t// Release the references. Will prevent potential unwanted recursion.\r\n\t\tthis._subscriber = null;\r\n\t\tthis._subscribable = null;\r\n\r\n\r\n\t\tif (subscriber && subscribable)\r\n\t\t{\r\n\t\t\tsubscribable.unsubscribe(subscriber);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default Subscription;\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Serialization/Utility.d.ts b/dist/amd/System/Serialization/Utility.d.ts index f53d368c..c1308794 100644 --- a/dist/amd/System/Serialization/Utility.d.ts +++ b/dist/amd/System/Serialization/Utility.d.ts @@ -1,9 +1,9 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { ISerializable } from "./ISerializable"; +import { Primitive } from "../Primitive"; export declare function toString(value: Primitive | ISerializable, defaultForUnknown?: string): string; export declare function isSerializable(instance: any): instance is ISerializable; export declare function toPrimitive(value: string, caseInsensitive?: boolean, unknownHandler?: (v: string) => string): Primitive; diff --git a/dist/amd/System/Serialization/Utility.js b/dist/amd/System/Serialization/Utility.js index b580561b..7c868fbd 100644 --- a/dist/amd/System/Serialization/Utility.js +++ b/dist/amd/System/Serialization/Utility.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -define(["require","exports","../Types","../Exceptions/InvalidOperationException"],function(e,t,r,a){"use strict";function i(e,t){var i=e;switch(typeof i){case r["default"].UNDEFINED:case r["default"].STRING:return i;case r["default"].BOOLEAN:return i?l:f;case r["default"].NUMBER:return s+i;default:if(null===i)return i;if(n(i))return i.serialize();if(arguments.length>1)return t;var u=new a["default"]("Attempting to serialize unidentifiable type.");throw u.data.value=i,u}}function n(e){return r["default"].hasMemberOfType(e,"serialize",r["default"].FUNCTION)}function u(e,t,a){if(e)switch(t&&(e=e.toLowerCase()),e){case"null":return null;case r["default"].UNDEFINED:return;case l:return!0;case f:return!1;default:var i=e.replace(/^\s+|,|\s+$/g,s);if(i)if(/^\d+$/g.test(i)){var n=parseInt(i);if(!isNaN(n))return n}else{var u=parseFloat(e);if(!isNaN(u))return u}a&&(e=a(e))}return e}var s="",l="true",f="false";t.toString=i,t.isSerializable=n,t.toPrimitive=u}); +define(["require","exports","../Types","../Exceptions/InvalidOperationException"],function(e,r,t,i){"use strict";function n(e,r){var n=e;switch(typeof n){case t.Type.UNDEFINED:case t.Type.STRING:return n;case t.Type.BOOLEAN:return n?l:p;case t.Type.NUMBER:return u+n;default:if(null===n)return n;if(a(n))return n.serialize();if(arguments.length>1)return r;var s=new i.InvalidOperationException("Attempting to serialize unidentifiable type.");throw s.data.value=n,s}}function a(e){return t.Type.hasMemberOfType(e,"serialize",t.Type.FUNCTION)}function s(e,r,i){if(e)switch(r&&(e=e.toLowerCase()),e){case"null":return null;case t.Type.UNDEFINED:return;case l:return!0;case p:return!1;default:var n=e.replace(/^\s+|,|\s+$/g,u);if(n)if(/^\d+$/g.test(n)){var a=parseInt(n);if(!isNaN(a))return a}else{var s=parseFloat(e);if(!isNaN(s))return s}i&&(e=i(e))}return e}var u="",l="true",p="false";r.toString=n,r.isSerializable=a,r.toPrimitive=s}); //# sourceMappingURL=Utility.js.map diff --git a/dist/amd/System/Serialization/Utility.js.map b/dist/amd/System/Serialization/Utility.js.map index e402a7ef..aa525a40 100644 --- a/dist/amd/System/Serialization/Utility.js.map +++ b/dist/amd/System/Serialization/Utility.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Serialization/Utility.js","System/Serialization/Utility.ts"],"names":["define","require","exports","Types_1","InvalidOperationException_1","toString","value","defaultForUnknown","v","UNDEFINED","STRING","BOOLEAN","TRUE","FALSE","NUMBER","EMPTY","isSerializable","serialize","arguments","length","ex","data","instance","hasMemberOfType","FUNCTION","toPrimitive","caseInsensitive","unknownHandler","toLowerCase","cleaned","replace","test","int","parseInt","isNaN","number","parseFloat"],"mappings":";;;;AAIAA,QAAQ,UAAW,UAAW,WAAY,2CAA4C,SAAUC,EAASC,EAASC,EAASC,GACvH,YCSJ,SAAAC,GACCC,EACAC,GAGA,GAAIC,GAASF,CACb,cAAcE,IAEb,IAAKL,GAAAA,WAAKM,UACV,IAAKN,GAAAA,WAAKO,OACT,MAAOF,EACR,KAAKL,GAAAA,WAAKQ,QACT,MAAOH,GAAII,EAAOC,CACnB,KAAKV,GAAAA,WAAKW,OACT,MAAOC,GAAQP,CAChB,SAEC,GAAO,OAAJA,EACF,MAAOA,EAER,IAAGQ,EAAeR,GACjB,MAAOA,GAAES,WACL,IAAGC,UAAUC,OAAO,EACxB,MAAOZ,EAER,IAAIa,GAAK,GAAIhB,GAAAA,WAA0B,+CAEvC,MADAgB,GAAGC,KAAY,MAAIb,EACbY,GAMT,QAAAJ,GAA+BM,GAC9B,MAAOnB,GAAAA,WAAKoB,gBAA+BD,EAAS,YAAYnB,EAAAA,WAAKqB,UAGtE,QAAAC,GACCnB,EACAoB,EACAC,GAIA,GAAGrB,EAIF,OAFGoB,IAAiBpB,EAAQA,EAAMsB,eAE3BtB,GAEN,IAAK,OACJ,MAAO,KACR,KAAKH,GAAAA,WAAKM,UACT,MACD,KAAKG,GACJ,OAAO,CACR,KAAKC,GACJ,OAAO,CACR,SAEC,GAAIgB,GAAUvB,EAAMwB,QAAQ,eAAef,EAC3C,IAAGc,EAEF,GAAG,SAASE,KAAKF,GAAU,CAC1B,GAAIG,GAAMC,SAASJ,EACnB,KAAIK,MAAMF,GAAM,MAAOA,OACjB,CACN,GAAIG,GAASC,WAAW9B,EACxB,KAAI4B,MAAMC,GAAS,MAAOA,GAQzBR,IAAgBrB,EAAQqB,EAAerB,IAO7C,MAAOA,GArFR,GAAMS,GAAQ,GAAIH,EAAO,OAAQC,EAAQ,OAEzBX,GAAAG,SAAQA,EAiCRH,EAAAc,eAAcA,EAIdd,EAAAuB,YAAWA","file":"System/Serialization/Utility.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\", '../Types', '../Exceptions/InvalidOperationException'], function (require, exports, Types_1, InvalidOperationException_1) {\n \"use strict\";\n var EMPTY = '', TRUE = 'true', FALSE = 'false';\n function toString(value, defaultForUnknown) {\n var v = value;\n switch (typeof v) {\n case Types_1.default.UNDEFINED:\n case Types_1.default.STRING:\n return v;\n case Types_1.default.BOOLEAN:\n return v ? TRUE : FALSE;\n case Types_1.default.NUMBER:\n return EMPTY + v;\n default:\n if (v === null)\n return v;\n if (isSerializable(v))\n return v.serialize();\n else if (arguments.length > 1)\n return defaultForUnknown;\n var ex = new InvalidOperationException_1.default('Attempting to serialize unidentifiable type.');\n ex.data['value'] = v;\n throw ex;\n }\n }\n exports.toString = toString;\n function isSerializable(instance) {\n return Types_1.default.hasMemberOfType(instance, 'serialize', Types_1.default.FUNCTION);\n }\n exports.isSerializable = isSerializable;\n function toPrimitive(value, caseInsensitive, unknownHandler) {\n if (value) {\n if (caseInsensitive)\n value = value.toLowerCase();\n switch (value) {\n case 'null':\n return null;\n case Types_1.default.UNDEFINED:\n return undefined;\n case TRUE:\n return true;\n case FALSE:\n return false;\n default:\n var cleaned = value.replace(/^\\s+|,|\\s+$/g, EMPTY);\n if (cleaned) {\n if (/^\\d+$/g.test(cleaned)) {\n var int = parseInt(cleaned);\n if (!isNaN(int))\n return int;\n }\n else {\n var number = parseFloat(value);\n if (!isNaN(number))\n return number;\n }\n }\n if (unknownHandler)\n value = unknownHandler(value);\n break;\n }\n }\n return value;\n }\n exports.toPrimitive = toPrimitive;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n\r\nimport Type from '../Types';\r\nimport InvalidOperationException from '../Exceptions/InvalidOperationException';\r\n\r\n\r\nconst EMPTY = '', TRUE = 'true', FALSE = 'false';\r\n\r\nexport function toString(\r\n\tvalue:Primitive|ISerializable,\r\n\tdefaultForUnknown?:string):string\r\n{\r\n\r\n\tvar v = value;\r\n\tswitch(typeof v)\r\n\t{\r\n\t\tcase Type.UNDEFINED:\r\n\t\tcase Type.STRING:\r\n\t\t\treturn v;\r\n\t\tcase Type.BOOLEAN:\r\n\t\t\treturn v ? TRUE : FALSE;\r\n\t\tcase Type.NUMBER:\r\n\t\t\treturn EMPTY + v;\r\n\t\tdefault:\r\n\r\n\t\t\tif(v===null)\r\n\t\t\t\treturn v;\r\n\r\n\t\t\tif(isSerializable(v))\r\n\t\t\t\treturn v.serialize();\r\n\t\t\telse if(arguments.length>1)\r\n\t\t\t\treturn defaultForUnknown;\r\n\r\n\t\t\tvar ex = new InvalidOperationException('Attempting to serialize unidentifiable type.');\r\n\t\t\tex.data['value'] = v;\r\n\t\t\tthrow ex;\r\n\r\n\t}\r\n\r\n}\r\n\r\nexport function isSerializable(instance:any):instance is ISerializable {\r\n\treturn Type.hasMemberOfType(instance,'serialize',Type.FUNCTION);\r\n}\r\n\r\nexport function toPrimitive(\r\n\tvalue:string,\r\n\tcaseInsensitive?:boolean,\r\n\tunknownHandler?:(v:string)=>string):Primitive\r\n{\r\n\r\n\r\n\tif(value)\r\n\t{\r\n\t\tif(caseInsensitive) value = value.toLowerCase();\r\n\r\n\t\tswitch(value)\r\n\t\t{\r\n\t\t\tcase 'null':\r\n\t\t\t\treturn null;\r\n\t\t\tcase Type.UNDEFINED:\r\n\t\t\t\treturn undefined;\r\n\t\t\tcase TRUE:\r\n\t\t\t\treturn true;\r\n\t\t\tcase FALSE:\r\n\t\t\t\treturn false;\r\n\t\t\tdefault:\r\n\r\n\t\t\t\tvar cleaned = value.replace(/^\\s+|,|\\s+$/g,EMPTY);\r\n\t\t\t\tif(cleaned) {\r\n\r\n\t\t\t\t\tif(/^\\d+$/g.test(cleaned)) {\r\n\t\t\t\t\t\tvar int = parseInt(cleaned);\r\n\t\t\t\t\t\tif(!isNaN(int)) return int;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tvar number = parseFloat(value);\r\n\t\t\t\t\t\tif(!isNaN(number)) return number;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// TODO: Handle Dates... Possibly JSON?\r\n\r\n\t\t\t\t// Instead of throwing we allow for handling...\r\n\t\t\t\tif(unknownHandler) value = unknownHandler(value);\r\n\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\r\n\t}\r\n\r\n\treturn value;\r\n\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Serialization/Utility.js","System/Serialization/Utility.ts"],"names":["define","require","exports","Types_1","InvalidOperationException_1","toString","value","defaultForUnknown","v","Type","UNDEFINED","STRING","BOOLEAN","TRUE","FALSE","NUMBER","EMPTY","isSerializable","serialize","arguments","length","ex","InvalidOperationException","data","instance","hasMemberOfType","FUNCTION","toPrimitive","caseInsensitive","unknownHandler","toLowerCase","cleaned","replace","test","int","parseInt","isNaN","number","parseFloat"],"mappings":";;;;AAIAA,QAAQ,UAAW,UAAW,WAAY,2CAA4C,SAAUC,EAASC,EAASC,EAASC,GACvH,YCQJ,SAAAC,GACCC,EACAC,GAGA,GAAIC,GAASF,CACb,cAAcE,IAEb,IAAKL,GAAAM,KAAKC,UACV,IAAKP,GAAAM,KAAKE,OACT,MAAOH,EACR,KAAKL,GAAAM,KAAKG,QACT,MAAOJ,GAAIK,EAAOC,CACnB,KAAKX,GAAAM,KAAKM,OACT,MAAOC,GAAQR,CAChB,SAEC,GAAO,OAAJA,EACF,MAAOA,EAER,IAAGS,EAAeT,GACjB,MAAOA,GAAEU,WACL,IAAGC,UAAUC,OAAO,EACxB,MAAOb,EAER,IAAIc,GAAK,GAAIjB,GAAAkB,0BAA0B,+CAEvC,MADAD,GAAGE,KAAY,MAAIf,EACba,GAMT,QAAAJ,GAA+BO,GAC9B,MAAOrB,GAAAM,KAAKgB,gBAA+BD,EAAS,YAAYrB,EAAAM,KAAKiB,UAGtE,QAAAC,GACCrB,EACAsB,EACAC,GAIA,GAAGvB,EAIF,OAFGsB,IAAiBtB,EAAQA,EAAMwB,eAE3BxB,GAEN,IAAK,OACJ,MAAO,KACR,KAAKH,GAAAM,KAAKC,UACT,MACD,KAAKG,GACJ,OAAO,CACR,KAAKC,GACJ,OAAO,CACR,SAEC,GAAIiB,GAAUzB,EAAM0B,QAAQ,eAAehB,EAC3C,IAAGe,EAEF,GAAG,SAASE,KAAKF,GAAU,CAC1B,GAAIG,GAAMC,SAASJ,EACnB,KAAIK,MAAMF,GAAM,MAAOA,OACjB,CACN,GAAIG,GAASC,WAAWhC,EACxB,KAAI8B,MAAMC,GAAS,MAAOA,GAQzBR,IAAgBvB,EAAQuB,EAAevB,IAO7C,MAAOA,GArFR,GAAMU,GAAQ,GAAIH,EAAO,OAAQC,EAAQ,OAEzBZ,GAAAG,SAAQA,EAiCRH,EAAAe,eAAcA,EAIdf,EAAAyB,YAAWA","file":"System/Serialization/Utility.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\", \"../Types\", \"../Exceptions/InvalidOperationException\"], function (require, exports, Types_1, InvalidOperationException_1) {\n \"use strict\";\n var EMPTY = '', TRUE = 'true', FALSE = 'false';\n function toString(value, defaultForUnknown) {\n var v = value;\n switch (typeof v) {\n case Types_1.Type.UNDEFINED:\n case Types_1.Type.STRING:\n return v;\n case Types_1.Type.BOOLEAN:\n return v ? TRUE : FALSE;\n case Types_1.Type.NUMBER:\n return EMPTY + v;\n default:\n if (v === null)\n return v;\n if (isSerializable(v))\n return v.serialize();\n else if (arguments.length > 1)\n return defaultForUnknown;\n var ex = new InvalidOperationException_1.InvalidOperationException('Attempting to serialize unidentifiable type.');\n ex.data['value'] = v;\n throw ex;\n }\n }\n exports.toString = toString;\n function isSerializable(instance) {\n return Types_1.Type.hasMemberOfType(instance, 'serialize', Types_1.Type.FUNCTION);\n }\n exports.isSerializable = isSerializable;\n function toPrimitive(value, caseInsensitive, unknownHandler) {\n if (value) {\n if (caseInsensitive)\n value = value.toLowerCase();\n switch (value) {\n case 'null':\n return null;\n case Types_1.Type.UNDEFINED:\n return undefined;\n case TRUE:\n return true;\n case FALSE:\n return false;\n default:\n var cleaned = value.replace(/^\\s+|,|\\s+$/g, EMPTY);\n if (cleaned) {\n if (/^\\d+$/g.test(cleaned)) {\n var int = parseInt(cleaned);\n if (!isNaN(int))\n return int;\n }\n else {\n var number = parseFloat(value);\n if (!isNaN(number))\n return number;\n }\n }\n if (unknownHandler)\n value = unknownHandler(value);\n break;\n }\n }\n return value;\n }\n exports.toPrimitive = toPrimitive;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {Type} from \"../Types\";\r\nimport {InvalidOperationException} from \"../Exceptions/InvalidOperationException\";\r\nimport {ISerializable} from \"./ISerializable\";\r\nimport {Primitive} from \"../Primitive\";\r\n\r\n\r\nconst EMPTY = '', TRUE = 'true', FALSE = 'false';\r\n\r\nexport function toString(\r\n\tvalue:Primitive|ISerializable,\r\n\tdefaultForUnknown?:string):string\r\n{\r\n\r\n\tvar v = value;\r\n\tswitch(typeof v)\r\n\t{\r\n\t\tcase Type.UNDEFINED:\r\n\t\tcase Type.STRING:\r\n\t\t\treturn v;\r\n\t\tcase Type.BOOLEAN:\r\n\t\t\treturn v ? TRUE : FALSE;\r\n\t\tcase Type.NUMBER:\r\n\t\t\treturn EMPTY + v;\r\n\t\tdefault:\r\n\r\n\t\t\tif(v===null)\r\n\t\t\t\treturn v;\r\n\r\n\t\t\tif(isSerializable(v))\r\n\t\t\t\treturn v.serialize();\r\n\t\t\telse if(arguments.length>1)\r\n\t\t\t\treturn defaultForUnknown;\r\n\r\n\t\t\tvar ex = new InvalidOperationException('Attempting to serialize unidentifiable type.');\r\n\t\t\tex.data['value'] = v;\r\n\t\t\tthrow ex;\r\n\r\n\t}\r\n\r\n}\r\n\r\nexport function isSerializable(instance:any):instance is ISerializable {\r\n\treturn Type.hasMemberOfType(instance,'serialize',Type.FUNCTION);\r\n}\r\n\r\nexport function toPrimitive(\r\n\tvalue:string,\r\n\tcaseInsensitive?:boolean,\r\n\tunknownHandler?:(v:string)=>string):Primitive\r\n{\r\n\r\n\r\n\tif(value)\r\n\t{\r\n\t\tif(caseInsensitive) value = value.toLowerCase();\r\n\r\n\t\tswitch(value)\r\n\t\t{\r\n\t\t\tcase 'null':\r\n\t\t\t\treturn null;\r\n\t\t\tcase Type.UNDEFINED:\r\n\t\t\t\treturn undefined;\r\n\t\t\tcase TRUE:\r\n\t\t\t\treturn true;\r\n\t\t\tcase FALSE:\r\n\t\t\t\treturn false;\r\n\t\t\tdefault:\r\n\r\n\t\t\t\tvar cleaned = value.replace(/^\\s+|,|\\s+$/g,EMPTY);\r\n\t\t\t\tif(cleaned) {\r\n\r\n\t\t\t\t\tif(/^\\d+$/g.test(cleaned)) {\r\n\t\t\t\t\t\tvar int = parseInt(cleaned);\r\n\t\t\t\t\t\tif(!isNaN(int)) return int;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tvar number = parseFloat(value);\r\n\t\t\t\t\t\tif(!isNaN(number)) return number;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// TODO: Handle Dates... Possibly JSON?\r\n\r\n\t\t\t\t// Instead of throwing we allow for handling...\r\n\t\t\t\tif(unknownHandler) value = unknownHandler(value);\r\n\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\r\n\t}\r\n\r\n\treturn value;\r\n\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Tasks/TaskHandler.d.ts b/dist/amd/System/Tasks/TaskHandler.d.ts index 750d1dd3..c2a1037f 100644 --- a/dist/amd/System/Tasks/TaskHandler.d.ts +++ b/dist/amd/System/Tasks/TaskHandler.d.ts @@ -3,10 +3,12 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import TaskHandlerBase from "./TaskHandlerBase"; -export default class TaskHandler extends TaskHandlerBase { +import { TaskHandlerBase } from "./TaskHandlerBase"; +import { Closure } from "../FunctionTypes"; +export declare class TaskHandler extends TaskHandlerBase { private _action; constructor(_action: Closure); protected _onExecute(): void; protected _onDispose(): void; } +export default TaskHandler; diff --git a/dist/amd/System/Tasks/TaskHandler.js b/dist/amd/System/Tasks/TaskHandler.js index 8c6e1ade..7a4d174c 100644 --- a/dist/amd/System/Tasks/TaskHandler.js +++ b/dist/amd/System/Tasks/TaskHandler.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)};define(["require","exports","./TaskHandlerBase","../Exceptions/ArgumentNullException"],function(t,e,n,o){"use strict";var i=function(t){function e(e){if(t.call(this),this._action=e,!e)throw new o["default"]("action")}return __extends(e,t),e.prototype._onExecute=function(){this._action()},e.prototype._onDispose=function(){t.prototype._onDispose.call(this),this._action=null},e}(n["default"]);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=i}); +var __extends=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)};define(["require","exports","./TaskHandlerBase","../Exceptions/ArgumentNullException"],function(t,e,n,o){"use strict";var i=function(t){function e(e){if(t.call(this),this._action=e,!e)throw new o.ArgumentNullException("action")}return __extends(e,t),e.prototype._onExecute=function(){this._action()},e.prototype._onDispose=function(){t.prototype._onDispose.call(this),this._action=null},e}(n.TaskHandlerBase);e.TaskHandler=i,Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=i}); //# sourceMappingURL=TaskHandler.js.map diff --git a/dist/amd/System/Tasks/TaskHandler.js.map b/dist/amd/System/Tasks/TaskHandler.js.map index a5757590..275cf36b 100644 --- a/dist/amd/System/Tasks/TaskHandler.js.map +++ b/dist/amd/System/Tasks/TaskHandler.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Tasks/TaskHandler.js","System/Tasks/TaskHandler.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","TaskHandlerBase_1","ArgumentNullException_1","TaskHandler","_super","_action","call","_onExecute","_onDispose","defineProperty","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,oBAAqB,uCAAwC,SAAUC,EAASC,EAASC,EAAmBC,GACtI,YCFJ,IAAAC,GAAA,SAAAC,GAEC,QAAAD,GAAoBE,GAEnB,GADAD,EAAAE,KAAAlB,MADmBA,KAAAiB,QAAAA,GAEfA,EAAS,KAAM,IAAIH,GAAAA,WAAsB,UAa/C,MAjByCf,WAAAgB,EAAAC,GAO9BD,EAAAR,UAAAY,WAAV,WAECnB,KAAKiB,WAGIF,EAAAR,UAAAa,WAAV,WAECJ,EAAAT,UAAMa,WAAUF,KAAAlB,MAChBA,KAAKiB,QAAU,MAEjBF,GAjByCF,EAAAA,WAAzCL,QAAAa,eAAAT,EAAA,cAAAU,OAAA,IDqBIV,EAAAA,WAAkBG","file":"System/Tasks/TaskHandler.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"./TaskHandlerBase\", \"../Exceptions/ArgumentNullException\"], function (require, exports, TaskHandlerBase_1, ArgumentNullException_1) {\n \"use strict\";\n var TaskHandler = (function (_super) {\n __extends(TaskHandler, _super);\n function TaskHandler(_action) {\n _super.call(this);\n this._action = _action;\n if (!_action)\n throw new ArgumentNullException_1.default('action');\n }\n TaskHandler.prototype._onExecute = function () {\n this._action();\n };\n TaskHandler.prototype._onDispose = function () {\n _super.prototype._onDispose.call(this);\n this._action = null;\n };\n return TaskHandler;\n }(TaskHandlerBase_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = TaskHandler;\n});\n","///\r\n/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport TaskHandlerBase from \"./TaskHandlerBase\";\r\nimport ArgumentNullException from \"../Exceptions/ArgumentNullException\";\r\nexport default class TaskHandler extends TaskHandlerBase {\r\n\t\r\n\tconstructor(private _action:Closure) {\r\n\t\tsuper();\r\n\t\tif(!_action) throw new ArgumentNullException('action');\r\n\t}\r\n\t\r\n\tprotected _onExecute():void\r\n\t{\r\n\t\tthis._action();\r\n\t}\r\n\t\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis._action = null;\r\n\t}\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Tasks/TaskHandler.js","System/Tasks/TaskHandler.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","TaskHandlerBase_1","ArgumentNullException_1","TaskHandler","_super","_action","call","ArgumentNullException","_onExecute","_onDispose","TaskHandlerBase","defineProperty","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,oBAAqB,uCAAwC,SAAUC,EAASC,EAASC,EAAmBC,GACtI,YCAJ,IAAAC,GAAA,SAAAC,GAEC,QAAAD,GAAoBE,GAEnB,GADAD,EAAAE,KAAAlB,MADmBA,KAAAiB,QAAAA,GAEfA,EAAS,KAAM,IAAIH,GAAAK,sBAAsB,UAa/C,MAjBiCpB,WAAAgB,EAAAC,GAOtBD,EAAAR,UAAAa,WAAV,WAECpB,KAAKiB,WAGIF,EAAAR,UAAAc,WAAV,WAECL,EAAAT,UAAMc,WAAUH,KAAAlB,MAChBA,KAAKiB,QAAU,MAEjBF,GAjBiCF,EAAAS,gBAApBV,GAAAG,YAAWA,EAmBxBP,OAAAe,eAAAX,EAAA,cAAAY,OAAA,IDCIZ,EAAAA,WCDWG","file":"System/Tasks/TaskHandler.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"./TaskHandlerBase\", \"../Exceptions/ArgumentNullException\"], function (require, exports, TaskHandlerBase_1, ArgumentNullException_1) {\n \"use strict\";\n var TaskHandler = (function (_super) {\n __extends(TaskHandler, _super);\n function TaskHandler(_action) {\n _super.call(this);\n this._action = _action;\n if (!_action)\n throw new ArgumentNullException_1.ArgumentNullException('action');\n }\n TaskHandler.prototype._onExecute = function () {\n this._action();\n };\n TaskHandler.prototype._onDispose = function () {\n _super.prototype._onDispose.call(this);\n this._action = null;\n };\n return TaskHandler;\n }(TaskHandlerBase_1.TaskHandlerBase));\n exports.TaskHandler = TaskHandler;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = TaskHandler;\n});\n","///\r\n/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {TaskHandlerBase} from \"./TaskHandlerBase\";\r\nimport {ArgumentNullException} from \"../Exceptions/ArgumentNullException\";\r\nimport {Closure} from \"../FunctionTypes\";\r\n\r\nexport class TaskHandler extends TaskHandlerBase {\r\n\t\r\n\tconstructor(private _action:Closure) {\r\n\t\tsuper();\r\n\t\tif(!_action) throw new ArgumentNullException('action');\r\n\t}\r\n\t\r\n\tprotected _onExecute():void\r\n\t{\r\n\t\tthis._action();\r\n\t}\r\n\t\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis._action = null;\r\n\t}\r\n}\r\n\r\nexport default TaskHandler;"]} \ No newline at end of file diff --git a/dist/amd/System/Tasks/TaskHandlerBase.d.ts b/dist/amd/System/Tasks/TaskHandlerBase.d.ts index c3945286..abb00e37 100644 --- a/dist/amd/System/Tasks/TaskHandlerBase.d.ts +++ b/dist/amd/System/Tasks/TaskHandlerBase.d.ts @@ -1,10 +1,10 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import DisposableBase from "../Disposable/DisposableBase"; -declare abstract class TaskHandlerBase extends DisposableBase implements ICancellable { +import { DisposableBase } from "../Disposable/DisposableBase"; +import { ICancellable } from "./ICancellable"; +export declare abstract class TaskHandlerBase extends DisposableBase implements ICancellable { constructor(); protected _id: any; isScheduled: boolean; diff --git a/dist/amd/System/Tasks/TaskHandlerBase.js b/dist/amd/System/Tasks/TaskHandlerBase.js index 9ab7e42f..c3cb1dcf 100644 --- a/dist/amd/System/Tasks/TaskHandlerBase.js +++ b/dist/amd/System/Tasks/TaskHandlerBase.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(e,t){function n(){this.constructor=e}for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)};define(["require","exports","../Disposable/DisposableBase"],function(e,t,n){"use strict";var i=function(e){function t(){e.call(this),this._id=null}return __extends(t,e),Object.defineProperty(t.prototype,"isScheduled",{get:function(){return!!this._id},enumerable:!0,configurable:!0}),t.prototype.execute=function(e){this.cancel(),isNaN(e)||0>e?this._onExecute():isFinite(e)&&(this._id=setTimeout(t._handler,e,this))},t._handler=function(e){e.cancel(),e._onExecute()},t.prototype._onDispose=function(){this.cancel()},t.prototype.cancel=function(){var e=this._id;return e?(clearTimeout(e),this._id=null,!0):!1},t}(n["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=i}); +var __extends=this&&this.__extends||function(e,t){function n(){this.constructor=e}for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)};define(["require","exports","../Disposable/DisposableBase"],function(e,t,n){"use strict";var i=function(e){function t(){e.call(this),this._id=null}return __extends(t,e),Object.defineProperty(t.prototype,"isScheduled",{get:function(){return!!this._id},enumerable:!0,configurable:!0}),t.prototype.execute=function(e){this.cancel(),isNaN(e)||0>e?this._onExecute():isFinite(e)&&(this._id=setTimeout(t._handler,e,this))},t._handler=function(e){e.cancel(),e._onExecute()},t.prototype._onDispose=function(){this.cancel()},t.prototype.cancel=function(){var e=this._id;return e?(clearTimeout(e),this._id=null,!0):!1},t}(n.DisposableBase);t.TaskHandlerBase=i,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=i}); //# sourceMappingURL=TaskHandlerBase.js.map diff --git a/dist/amd/System/Tasks/TaskHandlerBase.js.map b/dist/amd/System/Tasks/TaskHandlerBase.js.map index 889d2daf..d2e2aa55 100644 --- a/dist/amd/System/Tasks/TaskHandlerBase.js.map +++ b/dist/amd/System/Tasks/TaskHandlerBase.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Tasks/TaskHandlerBase.js","System/Tasks/TaskHandlerBase.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","DisposableBase_1","TaskHandlerBase","_super","call","_id","defineProperty","get","enumerable","configurable","execute","defer","cancel","isNaN","_onExecute","isFinite","setTimeout","_handler","_onDispose","id","clearTimeout","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,gCAAiC,SAAUC,EAASC,EAASC,GACvF,YCCJ,IAAAC,GAAA,SAAAC,GAGC,QAAAD,KAECC,EAAAC,KAAAhB,MACAA,KAAKiB,IAAM,KAsDb,MA3DQlB,WAAAe,EAAAC,GAUPP,OAAAU,eAAIJ,EAAAP,UAAA,eDJOY,ICIX,WACC,QAASnB,KAAKiB,KDFJG,YAAY,EACZC,cAAc,ICSzBP,EAAAP,UAAAe,QAAA,SAAQC,GAEPvB,KAAKwB,SACFC,MAAMF,IAAgB,EAANA,EAElBvB,KAAK0B,aAEEC,SAASJ,KAEhBvB,KAAKiB,IAAMW,WAAWd,EAAgBe,SAAUN,EAAOvB,QAK1Cc,EAAAe,SAAf,SAAwB5B,GAEvBA,EAAEuB,SACFvB,EAAEyB,cAKOZ,EAAAP,UAAAuB,WAAV,WAEC9B,KAAKwB,UAGNV,EAAAP,UAAAiB,OAAA,WAEC,GAAIO,GAAK/B,KAAKiB,GACd,OAAGc,IAEFC,aAAaD,GACb/B,KAAKiB,IAAM,MACJ,IAED,GAITH,GA3DQD,EAAAA,WA6DRL,QAAAU,eAAAN,EAAA,cAAAqB,OAAA,IDrBIrB,EAAAA,WCqBWE","file":"System/Tasks/TaskHandlerBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"../Disposable/DisposableBase\"], function (require, exports, DisposableBase_1) {\n \"use strict\";\n var TaskHandlerBase = (function (_super) {\n __extends(TaskHandlerBase, _super);\n function TaskHandlerBase() {\n _super.call(this);\n this._id = null;\n }\n Object.defineProperty(TaskHandlerBase.prototype, \"isScheduled\", {\n get: function () {\n return !!this._id;\n },\n enumerable: true,\n configurable: true\n });\n TaskHandlerBase.prototype.execute = function (defer) {\n this.cancel();\n if (isNaN(defer) || defer < 0) {\n this._onExecute();\n }\n else if (isFinite(defer)) {\n this._id = setTimeout(TaskHandlerBase._handler, defer, this);\n }\n };\n TaskHandlerBase._handler = function (d) {\n d.cancel();\n d._onExecute();\n };\n TaskHandlerBase.prototype._onDispose = function () {\n this.cancel();\n };\n TaskHandlerBase.prototype.cancel = function () {\n var id = this._id;\n if (id) {\n clearTimeout(id);\n this._id = null;\n return true;\n }\n return false;\n };\n return TaskHandlerBase;\n }(DisposableBase_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = TaskHandlerBase;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\nimport DisposableBase from \"../Disposable/DisposableBase\";\r\n\r\n/**\r\n * A simple class for handling potentially repeated executions either deferred or immediate.\r\n */\r\nabstract class TaskHandlerBase\r\nextends DisposableBase implements ICancellable\r\n{\r\n\tconstructor()\r\n\t{\r\n\t\tsuper();\r\n\t\tthis._id = null;\r\n\t}\r\n\r\n\tprotected _id:any;\r\n\r\n\tget isScheduled():boolean {\r\n\t\treturn !!this._id;\r\n\t}\r\n\r\n\t/**\r\n\t * Schedules/Reschedules triggering the task.\r\n\t * If defer is omitted it is called synchronously.\r\n\t * @param defer Optional time to wait until triggering.\r\n\t */\r\n\texecute(defer?:number):void\r\n\t{\r\n\t\tthis.cancel();\r\n\t\tif(isNaN(defer) || defer<0)\r\n\t\t{\r\n\t\t\tthis._onExecute();\r\n\t\t}\r\n\t\telse if(isFinite(defer))\r\n\t\t{\r\n\t\t\tthis._id = setTimeout(TaskHandlerBase._handler, defer, this);\r\n\t\t}\r\n\t}\r\n\r\n\t// Use a static function here to avoid recreating a new function every time.\r\n\tprivate static _handler(d:TaskHandlerBase):void\r\n\t{\r\n\t\td.cancel();\r\n\t\td._onExecute();\r\n\t}\r\n\r\n\tprotected abstract _onExecute():void;\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tthis.cancel();\r\n\t}\r\n\r\n\tcancel():boolean\r\n\t{\r\n\t\tvar id = this._id;\r\n\t\tif(id)\r\n\t\t{\r\n\t\t\tclearTimeout(id);\r\n\t\t\tthis._id = null;\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\r\n}\r\n\r\nexport default TaskHandlerBase;"]} \ No newline at end of file +{"version":3,"sources":["System/Tasks/TaskHandlerBase.js","System/Tasks/TaskHandlerBase.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","DisposableBase_1","TaskHandlerBase","_super","call","_id","defineProperty","get","enumerable","configurable","execute","defer","cancel","isNaN","_onExecute","isFinite","setTimeout","_handler","_onDispose","id","clearTimeout","DisposableBase","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,gCAAiC,SAAUC,EAASC,EAASC,GACvF,YCCJ,IAAAC,GAAA,SAAAC,GAGC,QAAAD,KAECC,EAAAC,KAAAhB,MACAA,KAAKiB,IAAM,KAsDb,MA3DQlB,WAAAe,EAAAC,GAUPP,OAAAU,eAAIJ,EAAAP,UAAA,eDJOY,ICIX,WACC,QAASnB,KAAKiB,KDFJG,YAAY,EACZC,cAAc,ICSzBP,EAAAP,UAAAe,QAAA,SAAQC,GAEPvB,KAAKwB,SACFC,MAAMF,IAAgB,EAANA,EAElBvB,KAAK0B,aAEEC,SAASJ,KAEhBvB,KAAKiB,IAAMW,WAAWd,EAAgBe,SAAUN,EAAOvB,QAK1Cc,EAAAe,SAAf,SAAwB5B,GAEvBA,EAAEuB,SACFvB,EAAEyB,cAKOZ,EAAAP,UAAAuB,WAAV,WAEC9B,KAAKwB,UAGNV,EAAAP,UAAAiB,OAAA,WAEC,GAAIO,GAAK/B,KAAKiB,GACd,OAAGc,IAEFC,aAAaD,GACb/B,KAAKiB,IAAM,MACJ,IAED,GAITH,GA3DQD,EAAAoB,eADcrB,GAAAE,gBAAeA,EA8DrCN,OAAAU,eAAAN,EAAA,cAAAsB,OAAA,IDpBItB,EAAAA,WCoBWE","file":"System/Tasks/TaskHandlerBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"../Disposable/DisposableBase\"], function (require, exports, DisposableBase_1) {\n \"use strict\";\n var TaskHandlerBase = (function (_super) {\n __extends(TaskHandlerBase, _super);\n function TaskHandlerBase() {\n _super.call(this);\n this._id = null;\n }\n Object.defineProperty(TaskHandlerBase.prototype, \"isScheduled\", {\n get: function () {\n return !!this._id;\n },\n enumerable: true,\n configurable: true\n });\n TaskHandlerBase.prototype.execute = function (defer) {\n this.cancel();\n if (isNaN(defer) || defer < 0) {\n this._onExecute();\n }\n else if (isFinite(defer)) {\n this._id = setTimeout(TaskHandlerBase._handler, defer, this);\n }\n };\n TaskHandlerBase._handler = function (d) {\n d.cancel();\n d._onExecute();\n };\n TaskHandlerBase.prototype._onDispose = function () {\n this.cancel();\n };\n TaskHandlerBase.prototype.cancel = function () {\n var id = this._id;\n if (id) {\n clearTimeout(id);\n this._id = null;\n return true;\n }\n return false;\n };\n return TaskHandlerBase;\n }(DisposableBase_1.DisposableBase));\n exports.TaskHandlerBase = TaskHandlerBase;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = TaskHandlerBase;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {DisposableBase} from \"../Disposable/DisposableBase\";\r\nimport {ICancellable} from \"./ICancellable\";\r\n\r\n/**\r\n * A simple class for handling potentially repeated executions either deferred or immediate.\r\n */\r\nexport abstract class TaskHandlerBase\r\nextends DisposableBase implements ICancellable\r\n{\r\n\tconstructor()\r\n\t{\r\n\t\tsuper();\r\n\t\tthis._id = null;\r\n\t}\r\n\r\n\tprotected _id:any;\r\n\r\n\tget isScheduled():boolean {\r\n\t\treturn !!this._id;\r\n\t}\r\n\r\n\t/**\r\n\t * Schedules/Reschedules triggering the task.\r\n\t * If defer is omitted it is called synchronously.\r\n\t * @param defer Optional time to wait until triggering.\r\n\t */\r\n\texecute(defer?:number):void\r\n\t{\r\n\t\tthis.cancel();\r\n\t\tif(isNaN(defer) || defer<0)\r\n\t\t{\r\n\t\t\tthis._onExecute();\r\n\t\t}\r\n\t\telse if(isFinite(defer))\r\n\t\t{\r\n\t\t\tthis._id = setTimeout(TaskHandlerBase._handler, defer, this);\r\n\t\t}\r\n\t}\r\n\r\n\t// Use a static function here to avoid recreating a new function every time.\r\n\tprivate static _handler(d:TaskHandlerBase):void\r\n\t{\r\n\t\td.cancel();\r\n\t\td._onExecute();\r\n\t}\r\n\r\n\tprotected abstract _onExecute():void;\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tthis.cancel();\r\n\t}\r\n\r\n\tcancel():boolean\r\n\t{\r\n\t\tvar id = this._id;\r\n\t\tif(id)\r\n\t\t{\r\n\t\t\tclearTimeout(id);\r\n\t\t\tthis._id = null;\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\r\n}\r\n\r\nexport default TaskHandlerBase;"]} \ No newline at end of file diff --git a/dist/amd/System/Tasks/defer.d.ts b/dist/amd/System/Tasks/defer.d.ts index 2b37b77f..7552d46b 100644 --- a/dist/amd/System/Tasks/defer.d.ts +++ b/dist/amd/System/Tasks/defer.d.ts @@ -1,7 +1,8 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { ICancellable } from "./ICancellable"; +import { Closure } from "../FunctionTypes"; export default function defer(task: Closure, delay?: number): ICancellable; export declare function interval(task: Function, interval: number, count?: number): ICancellable; diff --git a/dist/amd/System/Tasks/defer.js.map b/dist/amd/System/Tasks/defer.js.map index 754a7938..daa0edae 100644 --- a/dist/amd/System/Tasks/defer.js.map +++ b/dist/amd/System/Tasks/defer.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Tasks/defer.js","System/Tasks/defer.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","defer","task","delay","Defer","interval","count","Infinity","DeferInterval","DeferBase","dispose","cancel","_super","call","_id","setTimeout","handler","id","clearTimeout","_remaining","setInterval","clearInterval","defineProperty","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,WAAY,SAAUC,EAASC,GAC9C,YCiFJ,SAAAC,GACCC,EACAC,GAEA,MAAO,IAAIC,GAAMF,EAAMC,GAGxB,QAAAE,GACCH,EACAG,EACAC,GAEA,MAFA,UAAAA,IAAAA,EAAAC,EAAAA,GAEO,GAAIC,GAAcN,EAAMG,EAAUC,GAhG1C,GAAAG,GAAA,WAAA,QAAAA,MAWA,MAJCA,GAAAd,UAAAe,QAAA,WAECtB,KAAKuB,UAEPF,KAEAL,EAAA,SAAAQ,GAIC,QAAAR,GAAYF,EAAcC,GAEzBS,EAAAC,KAAAzB,MACKe,GAAO,IAAIA,EAAQ,GACxBf,KAAK0B,IAAMC,WAAWX,EAAMY,QAASb,EAAOD,EAAMd,MAsBpD,MA9BoBD,WAAAiB,EAAAQ,GAWnBR,EAAAT,UAAAgB,OAAA,WAEC,GAAIM,GAAK7B,KAAK0B,GACd,OAAGG,IAEFC,aAAaD,GACb7B,KAAK0B,IAAM,MACJ,IAED,GAIOV,EAAAY,QAAf,SAAuBd,EAAeb,GAErCA,EAAEsB,SACFT,KAGFE,GA9BoBK,GAgCpBD,EAAA,SAAAI,GAIC,QAAAJ,GACCN,EACAG,EACQc,GAGR,GAHA,SAAAA,IAAAA,EAAAZ,EAAAA,GAEAK,EAAAC,KAAAzB,MAFQA,KAAA+B,WAAAA,EAGM,OAAXd,GAA+B,SAAZA,EACrB,KAAM,oCACP,IAAY,EAATA,EACF,KAAM,gCAEPjB,MAAK0B,IAAMM,YAAYZ,EAAcQ,QAASX,EAAUH,EAAMd,MAqBhE,MApC4BD,WAAAqB,EAAAI,GAkB3BJ,EAAAb,UAAAgB,OAAA,WAEC,GAAIM,GAAK7B,KAAK0B,GACd,OAAGG,IAEFI,cAAcJ,GACd7B,KAAK0B,IAAM,MACJ,IAED,GAGON,EAAAQ,QAAf,SAAuBd,EAAeb,KAE9BA,EAAE8B,YAAa9B,EAAEsB,SACxBT,KAGFM,GApC4BC,EAuC5Bb,QAAA0B,eAAAtB,EAAA,cAAAuB,OAAA,IDjBIvB,EAAAA,WAAkBC,ECwBND,EAAAK,SAAQA","file":"System/Tasks/defer.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var DeferBase = (function () {\n function DeferBase() {\n }\n DeferBase.prototype.dispose = function () {\n this.cancel();\n };\n return DeferBase;\n }());\n var Defer = (function (_super) {\n __extends(Defer, _super);\n function Defer(task, delay) {\n _super.call(this);\n if (!(delay >= 0))\n delay = 0;\n this._id = setTimeout(Defer.handler, delay, task, this);\n }\n Defer.prototype.cancel = function () {\n var id = this._id;\n if (id) {\n clearTimeout(id);\n this._id = null;\n return true;\n }\n return false;\n };\n Defer.handler = function (task, d) {\n d.cancel();\n task();\n };\n return Defer;\n }(DeferBase));\n var DeferInterval = (function (_super) {\n __extends(DeferInterval, _super);\n function DeferInterval(task, interval, _remaining) {\n if (_remaining === void 0) { _remaining = Infinity; }\n _super.call(this);\n this._remaining = _remaining;\n if (interval === null || interval === void (0))\n throw \"'interval' must be a valid number.\";\n if (interval < 0)\n throw \"'interval' cannot be negative.\";\n this._id = setInterval(DeferInterval.handler, interval, task, this);\n }\n DeferInterval.prototype.cancel = function () {\n var id = this._id;\n if (id) {\n clearInterval(id);\n this._id = null;\n return true;\n }\n return false;\n };\n DeferInterval.handler = function (task, d) {\n if (!(--d._remaining))\n d.cancel();\n task();\n };\n return DeferInterval;\n }(DeferBase));\n function defer(task, delay) {\n return new Defer(task, delay);\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = defer;\n function interval(task, interval, count) {\n if (count === void 0) { count = Infinity; }\n return new DeferInterval(task, interval, count);\n }\n exports.interval = interval;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n\r\nabstract class DeferBase implements ICancellable\r\n{\r\n\t// It may be a Timer in node, should not be restricted to number.\r\n\tprotected _id:any;\r\n\r\n\tabstract cancel():boolean;\r\n\r\n\tdispose():void\r\n\t{\r\n\t\tthis.cancel();\r\n\t}\r\n}\r\n\r\nclass Defer extends DeferBase\r\n{\r\n\r\n\r\n\tconstructor(task:Closure, delay?:number)\r\n\t{\r\n\t\tsuper();\r\n\t\tif(!(delay>=0)) delay = 0;\r\n\t\tthis._id = setTimeout(Defer.handler, delay, task, this);\r\n\t}\r\n\r\n\tcancel():boolean\r\n\t{\r\n\t\tvar id = this._id;\r\n\t\tif(id)\r\n\t\t{\r\n\t\t\tclearTimeout(id);\r\n\t\t\tthis._id = null;\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t// Use a static function here to avoid recreating a new function every time.\r\n\tprivate static handler(task:Function, d:Defer):void\r\n\t{\r\n\t\td.cancel();\r\n\t\ttask();\r\n\t}\r\n\r\n}\r\n\r\nclass DeferInterval extends DeferBase\r\n{\r\n\r\n\r\n\tconstructor(\r\n\t\ttask:Function,\r\n\t\tinterval:number,\r\n\t\tprivate _remaining:number = Infinity)\r\n\t{\r\n\t\tsuper();\r\n\t\tif(interval===null || interval=== void(0))\r\n\t\t\tthrow \"'interval' must be a valid number.\";\r\n\t\tif(interval<0)\r\n\t\t\tthrow \"'interval' cannot be negative.\";\r\n\r\n\t\tthis._id = setInterval(DeferInterval.handler, interval, task, this);\r\n\t}\r\n\r\n\tcancel():boolean\r\n\t{\r\n\t\tvar id = this._id;\r\n\t\tif(id)\r\n\t\t{\r\n\t\t\tclearInterval(id);\r\n\t\t\tthis._id = null;\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tprivate static handler(task:Function, d:DeferInterval):void\r\n\t{\r\n\t\tif(!(--d._remaining)) d.cancel();\r\n\t\ttask();\r\n\t}\r\n\r\n}\r\n\r\n\r\nexport default function defer(\r\n\ttask:Closure,\r\n\tdelay?:number):ICancellable\r\n{\r\n\treturn new Defer(task, delay);\r\n}\r\n\r\nexport function interval(\r\n\ttask:Function,\r\n\tinterval:number,\r\n\tcount:number = Infinity):ICancellable\r\n{\r\n\treturn new DeferInterval(task, interval, count);\r\n}"]} \ No newline at end of file +{"version":3,"sources":["System/Tasks/defer.js","System/Tasks/defer.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","defer","task","delay","Defer","interval","count","Infinity","DeferInterval","DeferBase","dispose","cancel","_super","call","_id","setTimeout","handler","id","clearTimeout","_remaining","setInterval","clearInterval","defineProperty","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,WAAY,SAAUC,EAASC,GAC9C,YCkFJ,SAAAC,GACCC,EACAC,GAEA,MAAO,IAAIC,GAAMF,EAAMC,GAGxB,QAAAE,GACCH,EACAG,EACAC,GAEA,MAFA,UAAAA,IAAAA,EAAAC,EAAAA,GAEO,GAAIC,GAAcN,EAAMG,EAAUC,GAhG1C,GAAAG,GAAA,WAAA,QAAAA,MAWA,MAJCA,GAAAd,UAAAe,QAAA,WAECtB,KAAKuB,UAEPF,KAEAL,EAAA,SAAAQ,GAIC,QAAAR,GAAYF,EAAcC,GAEzBS,EAAAC,KAAAzB,MACKe,GAAO,IAAIA,EAAQ,GACxBf,KAAK0B,IAAMC,WAAWX,EAAMY,QAASb,EAAOD,EAAMd,MAsBpD,MA9BoBD,WAAAiB,EAAAQ,GAWnBR,EAAAT,UAAAgB,OAAA,WAEC,GAAIM,GAAK7B,KAAK0B,GACd,OAAGG,IAEFC,aAAaD,GACb7B,KAAK0B,IAAM,MACJ,IAED,GAIOV,EAAAY,QAAf,SAAuBd,EAAeb,GAErCA,EAAEsB,SACFT,KAGFE,GA9BoBK,GAgCpBD,EAAA,SAAAI,GAIC,QAAAJ,GACCN,EACAG,EACQc,GAGR,GAHA,SAAAA,IAAAA,EAAAZ,EAAAA,GAEAK,EAAAC,KAAAzB,MAFQA,KAAA+B,WAAAA,EAGM,OAAXd,GAA+B,SAAZA,EACrB,KAAM,oCACP,IAAY,EAATA,EACF,KAAM,gCAEPjB,MAAK0B,IAAMM,YAAYZ,EAAcQ,QAASX,EAAUH,EAAMd,MAqBhE,MApC4BD,WAAAqB,EAAAI,GAkB3BJ,EAAAb,UAAAgB,OAAA,WAEC,GAAIM,GAAK7B,KAAK0B,GACd,OAAGG,IAEFI,cAAcJ,GACd7B,KAAK0B,IAAM,MACJ,IAED,GAGON,EAAAQ,QAAf,SAAuBd,EAAeb,KAE9BA,EAAE8B,YAAa9B,EAAEsB,SACxBT,KAGFM,GApC4BC,EAuC5Bb,QAAA0B,eAAAtB,EAAA,cAAAuB,OAAA,IDlBIvB,EAAAA,WAAkBC,ECyBND,EAAAK,SAAQA","file":"System/Tasks/defer.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var DeferBase = (function () {\n function DeferBase() {\n }\n DeferBase.prototype.dispose = function () {\n this.cancel();\n };\n return DeferBase;\n }());\n var Defer = (function (_super) {\n __extends(Defer, _super);\n function Defer(task, delay) {\n _super.call(this);\n if (!(delay >= 0))\n delay = 0;\n this._id = setTimeout(Defer.handler, delay, task, this);\n }\n Defer.prototype.cancel = function () {\n var id = this._id;\n if (id) {\n clearTimeout(id);\n this._id = null;\n return true;\n }\n return false;\n };\n Defer.handler = function (task, d) {\n d.cancel();\n task();\n };\n return Defer;\n }(DeferBase));\n var DeferInterval = (function (_super) {\n __extends(DeferInterval, _super);\n function DeferInterval(task, interval, _remaining) {\n if (_remaining === void 0) { _remaining = Infinity; }\n _super.call(this);\n this._remaining = _remaining;\n if (interval === null || interval === void (0))\n throw \"'interval' must be a valid number.\";\n if (interval < 0)\n throw \"'interval' cannot be negative.\";\n this._id = setInterval(DeferInterval.handler, interval, task, this);\n }\n DeferInterval.prototype.cancel = function () {\n var id = this._id;\n if (id) {\n clearInterval(id);\n this._id = null;\n return true;\n }\n return false;\n };\n DeferInterval.handler = function (task, d) {\n if (!(--d._remaining))\n d.cancel();\n task();\n };\n return DeferInterval;\n }(DeferBase));\n function defer(task, delay) {\n return new Defer(task, delay);\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = defer;\n function interval(task, interval, count) {\n if (count === void 0) { count = Infinity; }\n return new DeferInterval(task, interval, count);\n }\n exports.interval = interval;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {ICancellable} from \"./ICancellable\";\r\nimport {Closure} from \"../FunctionTypes\";\r\nabstract class DeferBase implements ICancellable\r\n{\r\n\t// It may be a Timer in node, should not be restricted to number.\r\n\tprotected _id:any;\r\n\r\n\tabstract cancel():boolean;\r\n\r\n\tdispose():void\r\n\t{\r\n\t\tthis.cancel();\r\n\t}\r\n}\r\n\r\nclass Defer extends DeferBase\r\n{\r\n\r\n\r\n\tconstructor(task:Closure, delay?:number)\r\n\t{\r\n\t\tsuper();\r\n\t\tif(!(delay>=0)) delay = 0;\r\n\t\tthis._id = setTimeout(Defer.handler, delay, task, this);\r\n\t}\r\n\r\n\tcancel():boolean\r\n\t{\r\n\t\tvar id = this._id;\r\n\t\tif(id)\r\n\t\t{\r\n\t\t\tclearTimeout(id);\r\n\t\t\tthis._id = null;\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t// Use a static function here to avoid recreating a new function every time.\r\n\tprivate static handler(task:Function, d:Defer):void\r\n\t{\r\n\t\td.cancel();\r\n\t\ttask();\r\n\t}\r\n\r\n}\r\n\r\nclass DeferInterval extends DeferBase\r\n{\r\n\r\n\r\n\tconstructor(\r\n\t\ttask:Function,\r\n\t\tinterval:number,\r\n\t\tprivate _remaining:number = Infinity)\r\n\t{\r\n\t\tsuper();\r\n\t\tif(interval===null || interval=== void(0))\r\n\t\t\tthrow \"'interval' must be a valid number.\";\r\n\t\tif(interval<0)\r\n\t\t\tthrow \"'interval' cannot be negative.\";\r\n\r\n\t\tthis._id = setInterval(DeferInterval.handler, interval, task, this);\r\n\t}\r\n\r\n\tcancel():boolean\r\n\t{\r\n\t\tvar id = this._id;\r\n\t\tif(id)\r\n\t\t{\r\n\t\t\tclearInterval(id);\r\n\t\t\tthis._id = null;\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tprivate static handler(task:Function, d:DeferInterval):void\r\n\t{\r\n\t\tif(!(--d._remaining)) d.cancel();\r\n\t\ttask();\r\n\t}\r\n\r\n}\r\n\r\n\r\nexport default function defer(\r\n\ttask:Closure,\r\n\tdelay?:number):ICancellable\r\n{\r\n\treturn new Defer(task, delay);\r\n}\r\n\r\nexport function interval(\r\n\ttask:Function,\r\n\tinterval:number,\r\n\tcount:number = Infinity):ICancellable\r\n{\r\n\treturn new DeferInterval(task, interval, count);\r\n}"]} \ No newline at end of file diff --git a/dist/amd/System/Tasks/deferImmediate.d.ts b/dist/amd/System/Tasks/deferImmediate.d.ts index 9c479d18..7181db61 100644 --- a/dist/amd/System/Tasks/deferImmediate.d.ts +++ b/dist/amd/System/Tasks/deferImmediate.d.ts @@ -1,8 +1,9 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based on code from: https://github.com/kriskowal/q */ +import { Closure } from "../FunctionTypes"; +import { ICancellable } from "./ICancellable"; export default function deferImmediate(task: Closure): ICancellable; export declare function runAfterDeferred(task: Closure): void; diff --git a/dist/amd/System/Tasks/deferImmediate.js b/dist/amd/System/Tasks/deferImmediate.js index 5dda3392..8a5e697f 100644 --- a/dist/amd/System/Tasks/deferImmediate.js +++ b/dist/amd/System/Tasks/deferImmediate.js @@ -3,5 +3,5 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based on code from: https://github.com/kriskowal/q */ -define(["require","exports","../Types","../Collections/LinkedNodeList","../Collections/Queue"],function(e,t,n,o,i){"use strict";function s(){for(var e;e=m.first;){var t=e.task,n=e.domain;m.removeNode(e),n&&n.enter(),r(t,n)}for(var o;o=p.dequeue();)r(o);l=!1}function r(e,t){try{e()}catch(n){if(d)throw t&&t.exit(),setTimeout(s,0),t&&t.enter(),n;setTimeout(function(){throw n},0)}t&&t.exit()}function u(){l||(l=!0,a())}function c(e){var t=this,n={task:e,domain:d&&process.domain};return m.addNode(n),u(),{cancel:function(){return!!m.removeNode(n)},dispose:function(){t.cancel()}}}function f(e){p.enqueue(e),u()}var a,d=!1,l=!1,m=new o["default"],p=new i["default"];if(Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=c,t.runAfterDeferred=f,n["default"].isObject(process)&&"[object process]"===process.toString()&&process.nextTick)d=!0,a=function(){process.nextTick(s)};else if("function"==typeof setImmediate)a="undefined"!=typeof window?setImmediate.bind(window,s):function(){setImmediate(s)};else if("undefined"!=typeof MessageChannel){var v=new MessageChannel;v.port1.onmessage=function(){a=w,v.port1.onmessage=s,s()};var w=function(){v.port2.postMessage(0)};a=function(){setTimeout(s,0),w()}}else a=function(){setTimeout(s,0)}}); +define(["require","exports","../Types","../Collections/LinkedNodeList","../Collections/Queue"],function(e,n,t,o,i){"use strict";function s(){for(var e;e=m.first;){var n=e.task,t=e.domain;m.removeNode(e),t&&t.enter(),r(n,t)}for(var o;o=l.dequeue();)r(o);p=!1}function r(e,n){try{e()}catch(t){if(a)throw n&&n.exit(),setTimeout(s,0),n&&n.enter(),t;setTimeout(function(){throw t},0)}n&&n.exit()}function u(){p||(p=!0,d())}function c(e){var n=this,t={task:e,domain:a&&process.domain};return m.addNode(t),u(),{cancel:function(){return!!m.removeNode(t)},dispose:function(){n.cancel()}}}function f(e){l.enqueue(e),u()}var d,a=!1,p=!1,m=new o.LinkedNodeList,l=new i.Queue;if(Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=c,n.runAfterDeferred=f,t.Type.isObject(process)&&"[object process]"===process.toString()&&process.nextTick)a=!0,d=function(){process.nextTick(s)};else if("function"==typeof setImmediate)d="undefined"!=typeof window?setImmediate.bind(window,s):function(){setImmediate(s)};else if("undefined"!=typeof MessageChannel){var v=new MessageChannel;v.port1.onmessage=function(){d=w,v.port1.onmessage=s,s()};var w=function(){v.port2.postMessage(0)};d=function(){setTimeout(s,0),w()}}else d=function(){setTimeout(s,0)}}); //# sourceMappingURL=deferImmediate.js.map diff --git a/dist/amd/System/Tasks/deferImmediate.js.map b/dist/amd/System/Tasks/deferImmediate.js.map index 2bcb801e..16755733 100644 --- a/dist/amd/System/Tasks/deferImmediate.js.map +++ b/dist/amd/System/Tasks/deferImmediate.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Tasks/deferImmediate.js","System/Tasks/deferImmediate.ts"],"names":["define","require","exports","Types_1","LinkedNodeList_1","Queue_1","flush","entry","immediateQueue","first","task_1","task","domain","removeNode","enter","runSingle","laterQueue","dequeue","flushing","e","isNodeJS","exit","setTimeout","requestFlush","requestTick","deferImmediate","_this","this","process","addNode","cancel","dispose","runAfterDeferred","enqueue","Object","defineProperty","value","isObject","toString","nextTick","setImmediate","window","bind","MessageChannel","channel","port1","onmessage","requestPortTick","port2","postMessage"],"mappings":";;;;;AAKAA,QAAQ,UAAW,UAAW,WAAY,gCAAiC,wBAAyB,SAAUC,EAASC,EAASC,EAASC,EAAkBC,GACvJ,YCmCJ,SAAAC,KAIC,IADA,GAAIC,GACEA,EAAQC,EAAeC,OAC7B,CACM,GAAAC,GAAAH,EAAAI,KAAMC,EAAAL,EAAAK,MACXJ,GAAeK,WAAWN,GACvBK,GAAQA,EAAOE,QAClBC,EAAUL,EAAME,GAIjB,IADA,GAAID,GACEA,EAAOK,EAAWC,WAEvBF,EAAUJ,EAGXO,IAAW,EAUZ,QAAAH,GAAmBJ,EAAcC,GAEhC,IAECD,IAGD,MAAMQ,GAEL,GAAGC,EAkBF,KAVGR,IAEFA,EAAOS,OAERC,WAAWhB,EAAO,GACfM,GAEFA,EAAOE,QAGFK,CAONG,YAAW,WAEV,KAAMH,IACJ,GAIFP,GAEFA,EAAOS,OAIT,QAAAE,KAEKL,IAEHA,GAAW,EACXM,KAIF,QAAAC,GAAuCd,GAAvC,GAAAe,GAAAC,KAEKpB,GACHI,KAAMA,EACNC,OAAQQ,GAAkBQ,QAAiB,OAO5C,OAJApB,GAAeqB,QAAQtB,GAEvBgB,KAGCO,OAAO,WAAI,QAAEtB,EAAeK,WAAWN,IACvCwB,QAAQ,WAAML,EAAKI,WAQrB,QAAAE,GAAiCrB,GAEhCK,EAAWiB,QAAQtB,GACnBY,IApHD,GAAIC,GACAJ,GAAmB,EACnBF,GAAmB,EA6BnBV,EAAiB,GAAIJ,GAAAA,WAGrBY,EAA4B,GAAIX,GAAAA,UAsFpC,IA5BA6B,OAAAC,eAAAjC,EAAA,cAAAkC,OAAA,IDpDIlC,EAAAA,WAAkBuB,ECyENvB,EAAA8B,iBAAgBA,EAO7B7B,EAAAA,WAAKkC,SAAST,UACQ,qBAArBA,QAAQU,YACRV,QAAQW,SAYXnB,GAAW,EAEXI,EAAc,WAEbI,QAAQW,SAASjC,QAId,IAAyB,kBAAfkC,cAKbhB,EAFkB,mBAATiB,QAEKD,aAAaE,KAAKD,OAAQnC,GAI1B,WAEbkC,aAAalC,QAKX,IAA2B,mBAAjBqC,gBACf,CAGC,GAAIC,GAAU,GAAID,eAGlBC,GAAQC,MAAMC,UAAY,WAEzBtB,EAAcuB,EACdH,EAAQC,MAAMC,UAAYxC,EAC1BA,IAED,IAAIyC,GAAkB,WAIrBH,EAAQI,MAAMC,YAAY,GAE3BzB,GAAc,WAEbF,WAAWhB,EAAO,GAClByC,SAODvB,GAAc,WAEbF,WAAWhB,EAAO","file":"System/Tasks/deferImmediate.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based on code from: https://github.com/kriskowal/q\n */\ndefine([\"require\", \"exports\", \"../Types\", \"../Collections/LinkedNodeList\", \"../Collections/Queue\"], function (require, exports, Types_1, LinkedNodeList_1, Queue_1) {\n \"use strict\";\n \"use strict\";\n var requestTick;\n var isNodeJS = false;\n var flushing = false;\n function flush() {\n var entry;\n while (entry = immediateQueue.first) {\n var task_1 = entry.task, domain = entry.domain;\n immediateQueue.removeNode(entry);\n if (domain)\n domain.enter();\n runSingle(task_1, domain);\n }\n var task;\n while (task = laterQueue.dequeue()) {\n runSingle(task);\n }\n flushing = false;\n }\n var immediateQueue = new LinkedNodeList_1.default();\n var laterQueue = new Queue_1.default();\n function runSingle(task, domain) {\n try {\n task();\n }\n catch (e) {\n if (isNodeJS) {\n if (domain) {\n domain.exit();\n }\n setTimeout(flush, 0);\n if (domain) {\n domain.enter();\n }\n throw e;\n }\n else {\n setTimeout(function () {\n throw e;\n }, 0);\n }\n }\n if (domain) {\n domain.exit();\n }\n }\n function requestFlush() {\n if (!flushing) {\n flushing = true;\n requestTick();\n }\n }\n function deferImmediate(task) {\n var _this = this;\n var entry = {\n task: task,\n domain: isNodeJS && process['domain']\n };\n immediateQueue.addNode(entry);\n requestFlush();\n return {\n cancel: function () { return !!immediateQueue.removeNode(entry); },\n dispose: function () { _this.cancel(); }\n };\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = deferImmediate;\n function runAfterDeferred(task) {\n laterQueue.enqueue(task);\n requestFlush();\n }\n exports.runAfterDeferred = runAfterDeferred;\n if (Types_1.default.isObject(process)\n && process.toString() === \"[object process]\"\n && process.nextTick) {\n isNodeJS = true;\n requestTick = function () {\n process.nextTick(flush);\n };\n }\n else if (typeof setImmediate === \"function\") {\n if (typeof window !== \"undefined\") {\n requestTick = setImmediate.bind(window, flush);\n }\n else {\n requestTick = function () {\n setImmediate(flush);\n };\n }\n }\n else if (typeof MessageChannel !== \"undefined\") {\n var channel = new MessageChannel();\n channel.port1.onmessage = function () {\n requestTick = requestPortTick;\n channel.port1.onmessage = flush;\n flush();\n };\n var requestPortTick = function () {\n channel.port2.postMessage(0);\n };\n requestTick = function () {\n setTimeout(flush, 0);\n requestPortTick();\n };\n }\n else {\n requestTick = function () {\n setTimeout(flush, 0);\n };\n }\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based on code from: https://github.com/kriskowal/q\r\n */\r\n\r\n///\r\nimport Type from \"../Types\";\r\nimport LinkedNodeList from \"../Collections/LinkedNodeList\";\r\nimport Queue from \"../Collections/Queue\";\r\n\r\ndeclare module process\r\n{\r\n\texport function nextTick(callback:Closure):void;\r\n\r\n\texport function toString():string;\r\n}\r\n\r\ninterface IDomain\r\n{\r\n\tenter():void;\r\n\texit():void;\r\n}\r\n\r\ninterface ITaskQueueEntry extends ILinkedNode\r\n{\r\n\ttask:Closure;\r\n\tdomain?:IDomain;\r\n}\r\n\r\n\r\n\"use strict\";\r\n\r\nvar requestTick:()=>void;\r\nvar isNodeJS:boolean = false;\r\nvar flushing:boolean = false;\r\n\r\n// Use the fastest possible means to execute a task in a future turn\r\n// of the event loop.\r\n\r\n\r\nfunction flush():void\r\n{\r\n\t/* jshint loopfunc: true */\r\n\tvar entry:ITaskQueueEntry;\r\n\twhile(entry = immediateQueue.first)\r\n\t{\r\n\t\tlet {task, domain} = entry;\r\n\t\timmediateQueue.removeNode(entry);\r\n\t\tif(domain) domain.enter();\r\n\t\trunSingle(task, domain);\r\n\t}\r\n\r\n\tlet task:Closure;\r\n\twhile(task = laterQueue.dequeue())\r\n\t{\r\n\t\trunSingle(task);\r\n\t}\r\n\r\n\tflushing = false;\r\n}\r\n\r\n\r\n// linked list of tasks. Using a real linked list to allow for removal.\r\nvar immediateQueue = new LinkedNodeList();\r\n\r\n// queue for late tasks, used by unhandled rejection tracking\r\nvar laterQueue:Queue = new Queue();\r\n\r\nfunction runSingle(task:Closure, domain?:IDomain):void\r\n{\r\n\ttry\r\n\t{\r\n\t\ttask();\r\n\r\n\t}\r\n\tcatch(e)\r\n\t{\r\n\t\tif(isNodeJS)\r\n\t\t{\r\n\t\t\t// In node, uncaught exceptions are considered fatal errors.\r\n\t\t\t// Re-throw them synchronously to interrupt flushing!\r\n\r\n\t\t\t// Ensure continuation if the uncaught exception is suppressed\r\n\t\t\t// listening \"uncaughtException\" events (as domains does).\r\n\t\t\t// Continue in next event to avoid tick recursion.\r\n\t\t\tif(domain)\r\n\t\t\t{\r\n\t\t\t\tdomain.exit();\r\n\t\t\t}\r\n\t\t\tsetTimeout(flush, 0);\r\n\t\t\tif(domain)\r\n\t\t\t{\r\n\t\t\t\tdomain.enter();\r\n\t\t\t}\r\n\r\n\t\t\tthrow e;\r\n\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t// In browsers, uncaught exceptions are not fatal.\r\n\t\t\t// Re-throw them asynchronously to avoid slow-downs.\r\n\t\t\tsetTimeout(()=>\r\n\t\t\t{\r\n\t\t\t\tthrow e;\r\n\t\t\t}, 0);\r\n\t\t}\r\n\t}\r\n\r\n\tif(domain)\r\n\t{\r\n\t\tdomain.exit();\r\n\t}\r\n}\r\n\r\nfunction requestFlush():void\r\n{\r\n\tif(!flushing)\r\n\t{\r\n\t\tflushing = true;\r\n\t\trequestTick();\r\n\t}\r\n}\r\n\r\nexport default function deferImmediate(task:Closure):ICancellable\r\n{\r\n\tvar entry:ITaskQueueEntry = {\r\n\t\ttask: task,\r\n\t\tdomain: isNodeJS && (process)['domain']\r\n\t};\r\n\r\n\timmediateQueue.addNode(entry);\r\n\r\n\trequestFlush();\r\n\r\n\treturn {\r\n\t\tcancel:()=>!!immediateQueue.removeNode(entry),\r\n\t\tdispose:()=>{ this.cancel(); }\r\n\t}\r\n}\r\n\r\n\r\n// runs a task after all other tasks have been run\r\n// this is useful for unhandled rejection tracking that needs to happen\r\n// after all `then`d tasks have been run.\r\nexport function runAfterDeferred(task:Closure):void\r\n{\r\n\tlaterQueue.enqueue(task);\r\n\trequestFlush();\r\n}\r\n\r\n\r\nif(Type.isObject(process)\r\n\t&& process.toString()===\"[object process]\"\r\n\t&& process.nextTick)\r\n{\r\n\t/*\r\n\tEnsure is in a real Node environment, with a `process.nextTick`.\r\n\tTo see through fake Node environments:\r\n\t* Mocha test runner - exposes a `process` global without a `nextTick`\r\n\t* Browserify - exposes a `process.nexTick` function that uses\r\n\t `setTimeout`. In this case `setImmediate` is preferred because\r\n\t it is faster. Browserify's `process.toString()` yields\r\n\t \"[object Object]\", while in a real Node environment\r\n\t `process.nextTick()` yields \"[object process]\".\r\n\t*/\r\n\tisNodeJS = true;\r\n\r\n\trequestTick = ()=>\r\n\t{\r\n\t\tprocess.nextTick(flush);\r\n\t};\r\n\r\n}\r\nelse if(typeof setImmediate===\"function\")\r\n{\r\n\t// In IE10, Node.js 0.9+, or https://github.com/NobleJS/setImmediate\r\n\tif(typeof window!==\"undefined\")\r\n\t{\r\n\t\trequestTick = setImmediate.bind(window, flush);\r\n\t}\r\n\telse\r\n\t{\r\n\t\trequestTick = ()=>\r\n\t\t{\r\n\t\t\tsetImmediate(flush);\r\n\t\t};\r\n\t}\r\n\r\n}\r\nelse if(typeof MessageChannel!==\"undefined\")\r\n{\r\n\t// modern browsers\r\n\t// http://www.nonblocking.io/2011/06/windownexttick.html\r\n\tvar channel = new MessageChannel();\r\n\t// At least Safari Version 6.0.5 (8536.30.1) intermittently cannot create\r\n\t// working message ports the first time a page loads.\r\n\tchannel.port1.onmessage = function()\r\n\t{\r\n\t\trequestTick = requestPortTick;\r\n\t\tchannel.port1.onmessage = flush;\r\n\t\tflush();\r\n\t};\r\n\tvar requestPortTick = ()=>\r\n\t{\r\n\t\t// Opera requires us to provide a message payload, regardless of\r\n\t\t// whether we use it.\r\n\t\tchannel.port2.postMessage(0);\r\n\t};\r\n\trequestTick = ()=>\r\n\t{\r\n\t\tsetTimeout(flush, 0);\r\n\t\trequestPortTick();\r\n\t};\r\n\r\n}\r\nelse\r\n{\r\n\t// old browsers\r\n\trequestTick = ()=>\r\n\t{\r\n\t\tsetTimeout(flush, 0);\r\n\t};\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Tasks/deferImmediate.js","System/Tasks/deferImmediate.ts"],"names":["define","require","exports","Types_1","LinkedNodeList_1","Queue_1","flush","entry","immediateQueue","first","task_1","task","domain","removeNode","enter","runSingle","laterQueue","dequeue","flushing","e","isNodeJS","exit","setTimeout","requestFlush","requestTick","deferImmediate","_this","this","process","addNode","cancel","dispose","runAfterDeferred","enqueue","LinkedNodeList","Queue","Object","defineProperty","value","Type","isObject","toString","nextTick","setImmediate","window","bind","MessageChannel","channel","port1","onmessage","requestPortTick","port2","postMessage"],"mappings":";;;;;AAKAA,QAAQ,UAAW,UAAW,WAAY,gCAAiC,wBAAyB,SAAUC,EAASC,EAASC,EAASC,EAAkBC,GACvJ,YCoCJ,SAAAC,KAIC,IADA,GAAIC,GACEA,EAAQC,EAAeC,OAC7B,CACM,GAAAC,GAAAH,EAAAI,KAAMC,EAAAL,EAAAK,MACXJ,GAAeK,WAAWN,GACvBK,GAAQA,EAAOE,QAClBC,EAAUL,EAAME,GAIjB,IADA,GAAID,GACEA,EAAOK,EAAWC,WAEvBF,EAAUJ,EAGXO,IAAW,EAUZ,QAAAH,GAAmBJ,EAAcC,GAEhC,IAECD,IAGD,MAAMQ,GAEL,GAAGC,EAkBF,KAVGR,IAEFA,EAAOS,OAERC,WAAWhB,EAAO,GACfM,GAEFA,EAAOE,QAGFK,CAONG,YAAW,WAEV,KAAMH,IACJ,GAIFP,GAEFA,EAAOS,OAIT,QAAAE,KAEKL,IAEHA,GAAW,EACXM,KAIF,QAAAC,GAAuCd,GAAvC,GAAAe,GAAAC,KAEKpB,GACHI,KAAMA,EACNC,OAAQQ,GAAkBQ,QAAiB,OAO5C,OAJApB,GAAeqB,QAAQtB,GAEvBgB,KAGCO,OAAQ,WAAI,QAAEtB,EAAeK,WAAWN,IACxCwB,QAAS,WAAOL,EAAKI,WAQvB,QAAAE,GAAiCrB,GAEhCK,EAAWiB,QAAQtB,GACnBY,IApHD,GAAIC,GACAJ,GAAmB,EACnBF,GAAmB,EA6BnBV,EAAiB,GAAIJ,GAAA8B,eAGrBlB,EAA4B,GAAIX,GAAA8B,KAsFpC,IA5BAC,OAAAC,eAAAnC,EAAA,cAAAoC,OAAA,IDtDIpC,EAAAA,WAAkBuB,EC2ENvB,EAAA8B,iBAAgBA,EAO7B7B,EAAAoC,KAAKC,SAASZ,UACQ,qBAArBA,QAAQa,YACRb,QAAQc,SAYXtB,GAAW,EAEXI,EAAc,WAEbI,QAAQc,SAASpC,QAId,IAAyB,kBAAfqC,cAKbnB,EAFkB,mBAAToB,QAEKD,aAAaE,KAAKD,OAAQtC,GAI1B,WAEbqC,aAAarC,QAKX,IAA2B,mBAAjBwC,gBACf,CAGC,GAAIC,GAAU,GAAID,eAGlBC,GAAQC,MAAMC,UAAY,WAEzBzB,EAAc0B,EACdH,EAAQC,MAAMC,UAAY3C,EAC1BA,IAED,IAAI4C,GAAkB,WAIrBH,EAAQI,MAAMC,YAAY,GAE3B5B,GAAc,WAEbF,WAAWhB,EAAO,GAClB4C,SAOD1B,GAAc,WAEbF,WAAWhB,EAAO","file":"System/Tasks/deferImmediate.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based on code from: https://github.com/kriskowal/q\n */\ndefine([\"require\", \"exports\", \"../Types\", \"../Collections/LinkedNodeList\", \"../Collections/Queue\"], function (require, exports, Types_1, LinkedNodeList_1, Queue_1) {\n \"use strict\";\n var requestTick;\n var isNodeJS = false;\n var flushing = false;\n function flush() {\n var entry;\n while (entry = immediateQueue.first) {\n var task_1 = entry.task, domain = entry.domain;\n immediateQueue.removeNode(entry);\n if (domain)\n domain.enter();\n runSingle(task_1, domain);\n }\n var task;\n while (task = laterQueue.dequeue()) {\n runSingle(task);\n }\n flushing = false;\n }\n var immediateQueue = new LinkedNodeList_1.LinkedNodeList();\n var laterQueue = new Queue_1.Queue();\n function runSingle(task, domain) {\n try {\n task();\n }\n catch (e) {\n if (isNodeJS) {\n if (domain) {\n domain.exit();\n }\n setTimeout(flush, 0);\n if (domain) {\n domain.enter();\n }\n throw e;\n }\n else {\n setTimeout(function () {\n throw e;\n }, 0);\n }\n }\n if (domain) {\n domain.exit();\n }\n }\n function requestFlush() {\n if (!flushing) {\n flushing = true;\n requestTick();\n }\n }\n function deferImmediate(task) {\n var _this = this;\n var entry = {\n task: task,\n domain: isNodeJS && process['domain']\n };\n immediateQueue.addNode(entry);\n requestFlush();\n return {\n cancel: function () { return !!immediateQueue.removeNode(entry); },\n dispose: function () { _this.cancel(); }\n };\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = deferImmediate;\n function runAfterDeferred(task) {\n laterQueue.enqueue(task);\n requestFlush();\n }\n exports.runAfterDeferred = runAfterDeferred;\n if (Types_1.Type.isObject(process)\n && process.toString() === \"[object process]\"\n && process.nextTick) {\n isNodeJS = true;\n requestTick = function () {\n process.nextTick(flush);\n };\n }\n else if (typeof setImmediate === \"function\") {\n if (typeof window !== \"undefined\") {\n requestTick = setImmediate.bind(window, flush);\n }\n else {\n requestTick = function () {\n setImmediate(flush);\n };\n }\n }\n else if (typeof MessageChannel !== \"undefined\") {\n var channel = new MessageChannel();\n channel.port1.onmessage = function () {\n requestTick = requestPortTick;\n channel.port1.onmessage = flush;\n flush();\n };\n var requestPortTick = function () {\n channel.port2.postMessage(0);\n };\n requestTick = function () {\n setTimeout(flush, 0);\n requestPortTick();\n };\n }\n else {\n requestTick = function () {\n setTimeout(flush, 0);\n };\n }\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based on code from: https://github.com/kriskowal/q\r\n */\r\n\r\n\r\nimport {Type} from \"../Types\";\r\nimport {LinkedNodeList} from \"../Collections/LinkedNodeList\";\r\nimport {Queue} from \"../Collections/Queue\";\r\nimport {Closure} from \"../FunctionTypes\";\r\nimport {ILinkedNode} from \"../Collections/ILinkedListNode\";\r\nimport {ICancellable} from \"./ICancellable\";\r\n\r\ndeclare module process\r\n{\r\n\texport function nextTick(callback:Closure):void;\r\n\r\n\texport function toString():string;\r\n}\r\n\r\ninterface IDomain\r\n{\r\n\tenter():void;\r\n\texit():void;\r\n}\r\n\r\ninterface ITaskQueueEntry extends ILinkedNode\r\n{\r\n\ttask:Closure;\r\n\tdomain?:IDomain;\r\n}\r\n\r\n\r\nvar requestTick:()=>void;\r\nvar isNodeJS:boolean = false;\r\nvar flushing:boolean = false;\r\n\r\n// Use the fastest possible means to execute a task in a future turn\r\n// of the event loop.\r\n\r\n\r\nfunction flush():void\r\n{\r\n\t/* jshint loopfunc: true */\r\n\tvar entry:ITaskQueueEntry;\r\n\twhile(entry = immediateQueue.first)\r\n\t{\r\n\t\tlet {task, domain} = entry;\r\n\t\timmediateQueue.removeNode(entry);\r\n\t\tif(domain) domain.enter();\r\n\t\trunSingle(task, domain);\r\n\t}\r\n\r\n\tlet task:Closure;\r\n\twhile(task = laterQueue.dequeue())\r\n\t{\r\n\t\trunSingle(task);\r\n\t}\r\n\r\n\tflushing = false;\r\n}\r\n\r\n\r\n// linked list of tasks. Using a real linked list to allow for removal.\r\nvar immediateQueue = new LinkedNodeList();\r\n\r\n// queue for late tasks, used by unhandled rejection tracking\r\nvar laterQueue:Queue = new Queue();\r\n\r\nfunction runSingle(task:Closure, domain?:IDomain):void\r\n{\r\n\ttry\r\n\t{\r\n\t\ttask();\r\n\r\n\t}\r\n\tcatch(e)\r\n\t{\r\n\t\tif(isNodeJS)\r\n\t\t{\r\n\t\t\t// In node, uncaught exceptions are considered fatal errors.\r\n\t\t\t// Re-throw them synchronously to interrupt flushing!\r\n\r\n\t\t\t// Ensure continuation if the uncaught exception is suppressed\r\n\t\t\t// listening \"uncaughtException\" events (as domains does).\r\n\t\t\t// Continue in next event to avoid tick recursion.\r\n\t\t\tif(domain)\r\n\t\t\t{\r\n\t\t\t\tdomain.exit();\r\n\t\t\t}\r\n\t\t\tsetTimeout(flush, 0);\r\n\t\t\tif(domain)\r\n\t\t\t{\r\n\t\t\t\tdomain.enter();\r\n\t\t\t}\r\n\r\n\t\t\tthrow e;\r\n\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t// In browsers, uncaught exceptions are not fatal.\r\n\t\t\t// Re-throw them asynchronously to avoid slow-downs.\r\n\t\t\tsetTimeout(()=>\r\n\t\t\t{\r\n\t\t\t\tthrow e;\r\n\t\t\t}, 0);\r\n\t\t}\r\n\t}\r\n\r\n\tif(domain)\r\n\t{\r\n\t\tdomain.exit();\r\n\t}\r\n}\r\n\r\nfunction requestFlush():void\r\n{\r\n\tif(!flushing)\r\n\t{\r\n\t\tflushing = true;\r\n\t\trequestTick();\r\n\t}\r\n}\r\n\r\nexport default function deferImmediate(task:Closure):ICancellable\r\n{\r\n\tvar entry:ITaskQueueEntry = {\r\n\t\ttask: task,\r\n\t\tdomain: isNodeJS && (process)['domain']\r\n\t};\r\n\r\n\timmediateQueue.addNode(entry);\r\n\r\n\trequestFlush();\r\n\r\n\treturn {\r\n\t\tcancel: ()=>!!immediateQueue.removeNode(entry),\r\n\t\tdispose: ()=> { this.cancel(); }\r\n\t}\r\n}\r\n\r\n\r\n// runs a task after all other tasks have been run\r\n// this is useful for unhandled rejection tracking that needs to happen\r\n// after all `then`d tasks have been run.\r\nexport function runAfterDeferred(task:Closure):void\r\n{\r\n\tlaterQueue.enqueue(task);\r\n\trequestFlush();\r\n}\r\n\r\n\r\nif(Type.isObject(process)\r\n\t&& process.toString()===\"[object process]\"\r\n\t&& process.nextTick)\r\n{\r\n\t/*\r\n\tEnsure is in a real Node environment, with a `process.nextTick`.\r\n\tTo see through fake Node environments:\r\n\t* Mocha test runner - exposes a `process` global without a `nextTick`\r\n\t* Browserify - exposes a `process.nexTick` function that uses\r\n\t `setTimeout`. In this case `setImmediate` is preferred because\r\n\t it is faster. Browserify's `process.toString()` yields\r\n\t \"[object Object]\", while in a real Node environment\r\n\t `process.nextTick()` yields \"[object process]\".\r\n\t*/\r\n\tisNodeJS = true;\r\n\r\n\trequestTick = ()=>\r\n\t{\r\n\t\tprocess.nextTick(flush);\r\n\t};\r\n\r\n}\r\nelse if(typeof setImmediate===\"function\")\r\n{\r\n\t// In IE10, Node.js 0.9+, or https://github.com/NobleJS/setImmediate\r\n\tif(typeof window!==\"undefined\")\r\n\t{\r\n\t\trequestTick = setImmediate.bind(window, flush);\r\n\t}\r\n\telse\r\n\t{\r\n\t\trequestTick = ()=>\r\n\t\t{\r\n\t\t\tsetImmediate(flush);\r\n\t\t};\r\n\t}\r\n\r\n}\r\nelse if(typeof MessageChannel!==\"undefined\")\r\n{\r\n\t// modern browsers\r\n\t// http://www.nonblocking.io/2011/06/windownexttick.html\r\n\tvar channel = new MessageChannel();\r\n\t// At least Safari Version 6.0.5 (8536.30.1) intermittently cannot create\r\n\t// working message ports the first time a page loads.\r\n\tchannel.port1.onmessage = function()\r\n\t{\r\n\t\trequestTick = requestPortTick;\r\n\t\tchannel.port1.onmessage = flush;\r\n\t\tflush();\r\n\t};\r\n\tvar requestPortTick = ()=>\r\n\t{\r\n\t\t// Opera requires us to provide a message payload, regardless of\r\n\t\t// whether we use it.\r\n\t\tchannel.port2.postMessage(0);\r\n\t};\r\n\trequestTick = ()=>\r\n\t{\r\n\t\tsetTimeout(flush, 0);\r\n\t\trequestPortTick();\r\n\t};\r\n\r\n}\r\nelse\r\n{\r\n\t// old browsers\r\n\trequestTick = ()=>\r\n\t{\r\n\t\tsetTimeout(flush, 0);\r\n\t};\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Text/RegexMatchEnumerator.d.ts b/dist/amd/System/Text/RegexMatchEnumerator.d.ts index 90c0d0d9..70eb1c89 100644 --- a/dist/amd/System/Text/RegexMatchEnumerator.d.ts +++ b/dist/amd/System/Text/RegexMatchEnumerator.d.ts @@ -1,9 +1,9 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ import { Regex, Match } from "./RegularExpressions"; +import { IEnumerator } from "../Collections/Enumeration/IEnumerator"; export declare class RegexMatchEnumerator { private _pattern; constructor(pattern: string | RegExp | Regex); diff --git a/dist/amd/System/Text/RegexMatchEnumerator.js b/dist/amd/System/Text/RegexMatchEnumerator.js index cfed6411..26a99938 100644 --- a/dist/amd/System/Text/RegexMatchEnumerator.js +++ b/dist/amd/System/Text/RegexMatchEnumerator.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -define(["require","exports","./RegularExpressions","../Collections/Enumeration/Enumerator","../Collections/Enumeration/EnumeratorBase"],function(e,t,n,r,u){"use strict";var a=function(){function e(e){e instanceof n.Regex?this._pattern=e:this._pattern=new n.Regex(e)}return e.prototype.matches=function(e){var t,n=this;return new u["default"](function(){t=0},function(r){var u=n._pattern.match(e,t);return u.success?(t=u.index+u.length,r.yieldReturn(u)):r.yieldBreak()})},e.matches=function(t,n){return t&&n?new e(n).matches(t):r.empty},e}();t.RegexMatchEnumerator=a,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=a.matches}); +define(["require","exports","./RegularExpressions","../Collections/Enumeration/Enumerator","../Collections/Enumeration/EnumeratorBase"],function(e,t,n,r,a){"use strict";var u=function(){function e(e){e instanceof n.Regex?this._pattern=e:this._pattern=new n.Regex(e)}return e.prototype.matches=function(e){var t,n=this;return new a.EnumeratorBase(function(){t=0},function(r){var a=n._pattern.match(e,t);return a.success?(t=a.index+a.length,r.yieldReturn(a)):r.yieldBreak()})},e.matches=function(t,n){return t&&n?new e(n).matches(t):r.empty},e}();t.RegexMatchEnumerator=u,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=u.matches}); //# sourceMappingURL=RegexMatchEnumerator.js.map diff --git a/dist/amd/System/Text/RegexMatchEnumerator.js.map b/dist/amd/System/Text/RegexMatchEnumerator.js.map index fe8b4432..040a92f4 100644 --- a/dist/amd/System/Text/RegexMatchEnumerator.js.map +++ b/dist/amd/System/Text/RegexMatchEnumerator.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Text/RegexMatchEnumerator.js","System/Text/RegexMatchEnumerator.ts"],"names":["define","require","exports","RegularExpressions_1","Enumerator_1","EnumeratorBase_1","RegexMatchEnumerator","pattern","Regex","this","_pattern","prototype","matches","input","p","_this","yielder","match","success","index","length","yieldReturn","yieldBreak","empty","Object","defineProperty","value"],"mappings":";;;;AAIAA,QAAQ,UAAW,UAAW,uBAAwB,wCAAyC,6CAA8C,SAAUC,EAASC,EAASC,EAAsBC,EAAcC,GACzM,YCIJ,IAAAC,GAAA,WAIC,QAAAA,GAAYC,GAERA,YAAmBJ,GAAAK,MAErBC,KAAKC,SAAWH,EAIhBE,KAAKC,SAAW,GAAIP,GAAAK,MAAMD,GAgC7B,MA5BCD,GAAAK,UAAAC,QAAA,SAAQC,GAAR,GAEKC,GAFLC,EAAAN,IAGC,OAAO,IAAIJ,GAAAA,WACV,WAECS,EAAI,GAEL,SAAAE,GAEC,GAAIC,GAAcF,EAAKL,SAASO,MAAMJ,EAAOC,EAC7C,OAAGG,GAAMC,SAERJ,EAAIG,EAAME,MAAQF,EAAMG,OACjBJ,EAAQK,YAAYJ,IAGrBD,EAAQM,gBAIXhB,EAAAM,QAAP,SAAeC,EAAcN,GAE5B,MAAOM,IAASN,EACb,GAAKD,GAAqBC,GAAUK,QAAQC,GAC5CT,EAAAmB,OAGLjB,IA5CaJ,GAAAI,qBAAoBA,EA8CjCkB,OAAAC,eAAAvB,EAAA,cAAAwB,OAAA,IDjBIxB,EAAAA,WCiBWI,EAAqBM","file":"System/Text/RegexMatchEnumerator.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\", \"./RegularExpressions\", \"../Collections/Enumeration/Enumerator\", \"../Collections/Enumeration/EnumeratorBase\"], function (require, exports, RegularExpressions_1, Enumerator_1, EnumeratorBase_1) {\n \"use strict\";\n var RegexMatchEnumerator = (function () {\n function RegexMatchEnumerator(pattern) {\n if (pattern instanceof RegularExpressions_1.Regex) {\n this._pattern = pattern;\n }\n else {\n this._pattern = new RegularExpressions_1.Regex(pattern);\n }\n }\n RegexMatchEnumerator.prototype.matches = function (input) {\n var _this = this;\n var p;\n return new EnumeratorBase_1.default(function () {\n p = 0;\n }, function (yielder) {\n var match = _this._pattern.match(input, p);\n if (match.success) {\n p = match.index + match.length;\n return yielder.yieldReturn(match);\n }\n return yielder.yieldBreak();\n });\n };\n RegexMatchEnumerator.matches = function (input, pattern) {\n return input && pattern\n ? (new RegexMatchEnumerator(pattern)).matches(input)\n : Enumerator_1.empty;\n };\n return RegexMatchEnumerator;\n }());\n exports.RegexMatchEnumerator = RegexMatchEnumerator;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = RegexMatchEnumerator.matches;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\nimport {Regex, Match} from \"./RegularExpressions\";\r\nimport {empty} from \"../Collections/Enumeration/Enumerator\";\r\nimport EnumeratorBase from \"../Collections/Enumeration/EnumeratorBase\";\r\nexport class RegexMatchEnumerator\r\n{\r\n\tprivate _pattern:Regex;\r\n\r\n\tconstructor(pattern:string|RegExp|Regex)\r\n\t{\r\n\t\tif(pattern instanceof Regex)\r\n\t\t{\r\n\t\t\tthis._pattern = pattern;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthis._pattern = new Regex(pattern);\r\n\t\t}\r\n\t}\r\n\r\n\tmatches(input:string):IEnumerator\r\n\t{\r\n\t\tvar p:number; // pointer\r\n\t\treturn new EnumeratorBase(\r\n\t\t\t()=>\r\n\t\t\t{\r\n\t\t\t\tp = 0;\r\n\t\t\t},\r\n\t\t\tyielder=>\r\n\t\t\t{\r\n\t\t\t\tlet match:Match = this._pattern.match(input, p);\r\n\t\t\t\tif(match.success)\r\n\t\t\t\t{\r\n\t\t\t\t\tp = match.index + match.length;\r\n\t\t\t\t\treturn yielder.yieldReturn(match);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t});\r\n\t}\r\n\r\n\tstatic matches(input:string, pattern:string|RegExp|Regex):IEnumerator\r\n\t{\r\n\t\treturn input && pattern\r\n\t\t\t? (new RegexMatchEnumerator(pattern)).matches(input)\r\n\t\t\t: empty;\r\n\t}\r\n\r\n}\r\n\r\nexport default RegexMatchEnumerator.matches;"]} \ No newline at end of file +{"version":3,"sources":["System/Text/RegexMatchEnumerator.js","System/Text/RegexMatchEnumerator.ts"],"names":["define","require","exports","RegularExpressions_1","Enumerator_1","EnumeratorBase_1","RegexMatchEnumerator","pattern","Regex","this","_pattern","prototype","matches","input","p","_this","EnumeratorBase","yielder","match","success","index","length","yieldReturn","yieldBreak","empty","Object","defineProperty","value"],"mappings":";;;;AAIAA,QAAQ,UAAW,UAAW,uBAAwB,wCAAyC,6CAA8C,SAAUC,EAASC,EAASC,EAAsBC,EAAcC,GACzM,YCKJ,IAAAC,GAAA,WAIC,QAAAA,GAAYC,GAERA,YAAmBJ,GAAAK,MAErBC,KAAKC,SAAWH,EAIhBE,KAAKC,SAAW,GAAIP,GAAAK,MAAMD,GAgC7B,MA5BCD,GAAAK,UAAAC,QAAA,SAAQC,GAAR,GAEKC,GAFLC,EAAAN,IAGC,OAAO,IAAIJ,GAAAW,eACV,WAECF,EAAI,GAEL,SAAAG,GAEC,GAAIC,GAAcH,EAAKL,SAASQ,MAAML,EAAOC,EAC7C,OAAGI,GAAMC,SAERL,EAAII,EAAME,MAAQF,EAAMG,OACjBJ,EAAQK,YAAYJ,IAGrBD,EAAQM,gBAIXjB,EAAAM,QAAP,SAAeC,EAAcN,GAE5B,MAAOM,IAASN,EACb,GAAKD,GAAqBC,GAAUK,QAAQC,GAC5CT,EAAAoB,OAGLlB,IA5CaJ,GAAAI,qBAAoBA,EA8CjCmB,OAAAC,eAAAxB,EAAA,cAAAyB,OAAA,IDlBIzB,EAAAA,WCkBWI,EAAqBM","file":"System/Text/RegexMatchEnumerator.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\", \"./RegularExpressions\", \"../Collections/Enumeration/Enumerator\", \"../Collections/Enumeration/EnumeratorBase\"], function (require, exports, RegularExpressions_1, Enumerator_1, EnumeratorBase_1) {\n \"use strict\";\n var RegexMatchEnumerator = (function () {\n function RegexMatchEnumerator(pattern) {\n if (pattern instanceof RegularExpressions_1.Regex) {\n this._pattern = pattern;\n }\n else {\n this._pattern = new RegularExpressions_1.Regex(pattern);\n }\n }\n RegexMatchEnumerator.prototype.matches = function (input) {\n var _this = this;\n var p;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n p = 0;\n }, function (yielder) {\n var match = _this._pattern.match(input, p);\n if (match.success) {\n p = match.index + match.length;\n return yielder.yieldReturn(match);\n }\n return yielder.yieldBreak();\n });\n };\n RegexMatchEnumerator.matches = function (input, pattern) {\n return input && pattern\n ? (new RegexMatchEnumerator(pattern)).matches(input)\n : Enumerator_1.empty;\n };\n return RegexMatchEnumerator;\n }());\n exports.RegexMatchEnumerator = RegexMatchEnumerator;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = RegexMatchEnumerator.matches;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {Regex, Match} from \"./RegularExpressions\";\r\nimport {empty} from \"../Collections/Enumeration/Enumerator\";\r\nimport {EnumeratorBase} from \"../Collections/Enumeration/EnumeratorBase\";\r\nimport {IEnumerator} from \"../Collections/Enumeration/IEnumerator\";\r\n\r\nexport class RegexMatchEnumerator\r\n{\r\n\tprivate _pattern:Regex;\r\n\r\n\tconstructor(pattern:string|RegExp|Regex)\r\n\t{\r\n\t\tif(pattern instanceof Regex)\r\n\t\t{\r\n\t\t\tthis._pattern = pattern;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthis._pattern = new Regex(pattern);\r\n\t\t}\r\n\t}\r\n\r\n\tmatches(input:string):IEnumerator\r\n\t{\r\n\t\tvar p:number; // pointer\r\n\t\treturn new EnumeratorBase(\r\n\t\t\t()=>\r\n\t\t\t{\r\n\t\t\t\tp = 0;\r\n\t\t\t},\r\n\t\t\tyielder=>\r\n\t\t\t{\r\n\t\t\t\tlet match:Match = this._pattern.match(input, p);\r\n\t\t\t\tif(match.success)\r\n\t\t\t\t{\r\n\t\t\t\t\tp = match.index + match.length;\r\n\t\t\t\t\treturn yielder.yieldReturn(match);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t});\r\n\t}\r\n\r\n\tstatic matches(input:string, pattern:string|RegExp|Regex):IEnumerator\r\n\t{\r\n\t\treturn input && pattern\r\n\t\t\t? (new RegexMatchEnumerator(pattern)).matches(input)\r\n\t\t\t: empty;\r\n\t}\r\n\r\n}\r\n\r\nexport default RegexMatchEnumerator.matches;"]} \ No newline at end of file diff --git a/dist/amd/System/Text/RegularExpressions.d.ts b/dist/amd/System/Text/RegularExpressions.d.ts index af3b1fbd..e3638f84 100644 --- a/dist/amd/System/Text/RegularExpressions.d.ts +++ b/dist/amd/System/Text/RegularExpressions.d.ts @@ -1,9 +1,11 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Named groups based on: http://trentrichardson.com/2011/08/02/javascript-regexp-match-named-captures/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { IMap } from "../Collections/Dictionaries/IDictionary"; +import { Primitive } from "../Primitive"; +import { Selector } from "../FunctionTypes"; export declare module RegexOptions { const IGNORE_CASE: string; const I: string; diff --git a/dist/amd/System/Text/RegularExpressions.js.map b/dist/amd/System/Text/RegularExpressions.js.map index 481d4dfd..61afef84 100644 --- a/dist/amd/System/Text/RegularExpressions.js.map +++ b/dist/amd/System/Text/RegularExpressions.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Text/RegularExpressions.js","System/Text/RegularExpressions.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","RegexOptions","EMPTY","_I","_G","_M","_U","_W","_Y","IGNORE_CASE","I","GLOBAL","G","MULTI_LINE","M","UNICODE","U","STICKY","Y","IGNORE_PATTERN_WHITESPACE","W","Regex","pattern","options","extra","_i","arguments","length","Error","patternString","flags","Array","isArray","concat","join","toLowerCase","RegExp","ignoreCase","indexOf","multiline","source","ignoreWhiteSpace","replace","keys","k","match","i","len","_keys","_re","freeze","input","startIndex","r","_","exec","substring","Match","Empty","first","index","loc","groups","groupMap","text","g","EmptyGroup","Group","push","m","matches","end","success","count","Infinity","result","isEvaluator","length_1","isMatch","test","e","Capture","value","defineProperty","get","v","enumerable","configurable","_super","call","namedGroups","slice","EmptyMatch"],"mappings":"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","file":"System/Text/RegularExpressions.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Named groups based on: http://trentrichardson.com/2011/08/02/javascript-regexp-match-named-captures/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var EMPTY = \"\";\n var UNDEFINED = \"undefined\";\n var _I = 'i', _G = 'g', _M = 'm', _U = 'u', _W = 'w', _Y = 'y';\n var RegexOptions;\n (function (RegexOptions) {\n RegexOptions.IGNORE_CASE = _I;\n RegexOptions.I = _I;\n RegexOptions.GLOBAL = _G;\n RegexOptions.G = _G;\n RegexOptions.MULTI_LINE = _M;\n RegexOptions.M = _M;\n RegexOptions.UNICODE = _U;\n RegexOptions.U = _U;\n RegexOptions.STICKY = _Y;\n RegexOptions.Y = _Y;\n RegexOptions.IGNORE_PATTERN_WHITESPACE = _W;\n RegexOptions.W = _W;\n })(RegexOptions = exports.RegexOptions || (exports.RegexOptions = {}));\n var Regex = (function () {\n function Regex(pattern, options) {\n var extra = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n extra[_i - 2] = arguments[_i];\n }\n if (!pattern)\n throw new Error(\"'pattern' cannot be null or empty.\");\n var patternString, flags = (options && (Array.isArray(options) ? options : [options]).concat(extra) || extra)\n .join(EMPTY).toLowerCase();\n if (pattern instanceof RegExp) {\n var p = pattern;\n if (p.ignoreCase && flags.indexOf(_I) === -1)\n flags += _I;\n if (p.multiline && flags.indexOf(_M) === -1)\n flags += _M;\n patternString = p.source;\n }\n else {\n patternString = pattern;\n }\n var ignoreWhiteSpace = flags.indexOf(_W) != -1;\n flags = flags.replace(/[gw]/g, EMPTY);\n var keys = [];\n {\n var k = patternString.match(/(?!\\(\\?<)(\\w+)(?=>)/g);\n if (k) {\n for (var i = 0, len = k.length; i < len; i++) {\n keys[i + 1] = k[i];\n }\n patternString = patternString.replace(/\\?<\\w+>/g, EMPTY);\n this._keys = keys;\n }\n if (ignoreWhiteSpace)\n patternString = patternString.replace(/\\s+/g, \"\\\\s*\");\n this._re = new RegExp(patternString, flags);\n }\n Object.freeze(this);\n }\n Regex.prototype.match = function (input, startIndex) {\n if (startIndex === void 0) { startIndex = 0; }\n var _ = this;\n var r;\n if (!input\n || startIndex >= input.length\n || !(r = this._re.exec(input.substring(startIndex))))\n return Match.Empty;\n if (!(startIndex > 0))\n startIndex = 0;\n var first = startIndex + r.index, loc = first, groups = [], groupMap = {};\n for (var i = 0, len = r.length; i < len; ++i) {\n var text = r[i];\n var g = EmptyGroup;\n if (text !== null || text !== void 0) {\n g = new Group(text, loc);\n g.freeze();\n }\n if (i && _._keys && i < _._keys.length)\n groupMap[_._keys[i]] = g;\n groups.push(g);\n if (i !== 0)\n loc += text.length;\n }\n var m = new Match(r[0], first, groups, groupMap);\n m.freeze();\n return m;\n };\n Regex.prototype.matches = function (input) {\n var matches = [], m, p = 0, end = input && input.length || 0;\n while (p < end && (m = this.match(input, p)) && m.success) {\n matches.push(m);\n p = m.index + m.length;\n }\n return Object.freeze(matches);\n };\n Regex.prototype.replace = function (input, r, count) {\n if (count === void 0) { count = Infinity; }\n if (!input || r === null || r === void 0 || !(count > 0))\n return input;\n var result = [];\n var p = 0, end = input.length, isEvaluator = typeof r == \"function\";\n var m, i = 0;\n while (i < count && p < end && (m = this.match(input, p)) && m.success) {\n var index = m.index, length_1 = m.length;\n if (p !== index)\n result.push(input.substring(p, index));\n result.push(isEvaluator ? r(m, i++) : r);\n p = index + length_1;\n }\n if (p < end)\n result.push(input.substring(p));\n return result.join(EMPTY);\n };\n Regex.prototype.isMatch = function (input) {\n return this._re.test(input);\n };\n Regex.isMatch = function (input, pattern, options) {\n var r = new Regex(pattern, options);\n return r.isMatch(input);\n };\n Regex.replace = function (input, pattern, e, options) {\n var r = new Regex(pattern, options);\n return r.replace(input, e);\n };\n return Regex;\n }());\n exports.Regex = Regex;\n var Capture = (function () {\n function Capture(value, index) {\n if (value === void 0) { value = EMPTY; }\n if (index === void 0) { index = -1; }\n this.value = value;\n this.index = index;\n }\n Object.defineProperty(Capture.prototype, \"length\", {\n get: function () {\n var v = this.value;\n return v && v.length || 0;\n },\n enumerable: true,\n configurable: true\n });\n Capture.prototype.freeze = function () {\n Object.freeze(this);\n };\n return Capture;\n }());\n exports.Capture = Capture;\n var Group = (function (_super) {\n __extends(Group, _super);\n function Group(value, index) {\n if (value === void 0) { value = EMPTY; }\n if (index === void 0) { index = -1; }\n _super.call(this, value, index);\n }\n Object.defineProperty(Group.prototype, \"success\", {\n get: function () {\n return this.index != -1;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Group, \"Empty\", {\n get: function () {\n return EmptyGroup;\n },\n enumerable: true,\n configurable: true\n });\n return Group;\n }(Capture));\n exports.Group = Group;\n var EmptyGroup = new Group();\n EmptyGroup.freeze();\n var Match = (function (_super) {\n __extends(Match, _super);\n function Match(value, index, groups, namedGroups) {\n if (value === void 0) { value = EMPTY; }\n if (index === void 0) { index = -1; }\n if (groups === void 0) { groups = []; }\n if (namedGroups === void 0) { namedGroups = {}; }\n _super.call(this, value, index);\n this.groups = groups;\n this.namedGroups = namedGroups;\n }\n Match.prototype.freeze = function () {\n if (!this.groups)\n throw new Error(\"'groups' cannot be null.\");\n if (!this.namedGroups)\n throw new Error(\"'groupMap' cannot be null.\");\n Object.freeze(this.groups.slice());\n Object.freeze(this.namedGroups);\n _super.prototype.freeze.call(this);\n };\n Object.defineProperty(Match, \"Empty\", {\n get: function () {\n return EmptyMatch;\n },\n enumerable: true,\n configurable: true\n });\n return Match;\n }(Group));\n exports.Match = Match;\n var EmptyMatch = new Match();\n EmptyMatch.freeze();\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Regex;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Named groups based on: http://trentrichardson.com/2011/08/02/javascript-regexp-match-named-captures/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n\r\n// NOTE: Avoid dependencies so this class can be used cleanly.\r\n\r\nconst EMPTY:string = \"\";\r\nconst UNDEFINED:string = \"undefined\";\r\nconst _I = 'i', _G = 'g', _M = 'm', _U = 'u', _W = 'w', _Y = 'y';\r\n\r\n\r\n/**\r\n * https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regexoptions%28v=vs.110%29.aspx\r\n */\r\nexport module RegexOptions\r\n{\r\n\t/**\r\n\t * Specifies case-insensitive matching. For more information, see the \"Case-Insensitive Matching \" section in the Regular Expression Options topic.\r\n\t */\r\n\texport const IGNORE_CASE:string = _I;\r\n\texport const I:string = _I;\r\n\r\n\t/**\r\n\t * Specifies global matching instead of single.\r\n\t */\r\n\texport const GLOBAL:string = _G;\r\n\texport const G:string = _G;\r\n\r\n\t/**\r\n\t * treat beginning and end characters (^ and $) as working over multiple lines (i.e., match the beginning or end of each line (delimited by \\n or \\r), not only the very beginning or end of the whole input string)\r\n\t */\r\n\texport const MULTI_LINE:string = _M;\r\n\texport const M:string = _M;\r\n\r\n\t/**\r\n\t * treat pattern as a sequence of unicode code points\r\n\t */\r\n\texport const UNICODE:string = _U;\r\n\texport const U:string = _U;\r\n\r\n\t/**\r\n\t * matches only from the index indicated by the lastIndex property of this regular expression in the target string (and does not attempt to match from any later indexes).\r\n\t */\r\n\texport const STICKY:string = _Y;\r\n\texport const Y:string = _Y;\r\n\r\n\t/**\r\n\t * Modifies the pattern to ignore standard whitespace characters.\r\n\t */\r\n\texport const IGNORE_PATTERN_WHITESPACE:string = _W;\r\n\texport const W:string = _W;\r\n\r\n\texport type Global = 'g';\r\n\texport type IgnoreCase = 'i';\r\n\texport type MultiLine = 'm';\r\n\texport type Unicode = 'u';\r\n\texport type Sticky = 'y';\r\n\texport type IgnorePatternWhitespace = \"w\";\r\n\r\n\texport type Literal = Global | IgnoreCase | MultiLine | Unicode | Sticky | IgnorePatternWhitespace;\r\n}\r\n\r\nexport interface MatchEvaluator extends Selector\r\n{\r\n}\r\n\r\nexport class Regex\r\n{\r\n\tprivate _re:RegExp;\r\n\tprivate _keys:string[];\r\n\r\n\tconstructor(\r\n\t\tpattern:string|RegExp,\r\n\t\toptions?:RegexOptions.Literal|RegexOptions.Literal[],\r\n\t\t...extra:RegexOptions.Literal[])\r\n\t{\r\n\t\tif(!pattern) throw new Error(\"'pattern' cannot be null or empty.\");\r\n\r\n\t\tvar patternString:string,\r\n\t\t flags:string\r\n\t\t\t = (options && (Array.isArray(options) ? options : [options]).concat(extra) || extra)\r\n\t\t\t .join(EMPTY).toLowerCase();\r\n\r\n\t\tif(pattern instanceof RegExp)\r\n\t\t{\r\n\t\t\tlet p = pattern;\r\n\t\t\tif(p.ignoreCase && flags.indexOf(_I)=== -1)\r\n\t\t\t\tflags += _I;\r\n\t\t\tif(p.multiline && flags.indexOf(_M)=== -1)\r\n\t\t\t\tflags += _M;\r\n\t\t\tpatternString = p.source;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tpatternString = pattern;\r\n\t\t}\r\n\t\tvar ignoreWhiteSpace = flags.indexOf(_W)!= -1;\r\n\r\n\t\t// For the majority of expected behavior, we need to eliminate global and whitespace ignore.\r\n\t\tflags = flags.replace(/[gw]/g, EMPTY);\r\n\r\n\t\t// find the keys inside the pattern, and place in mapping array {0:'key1', 1:'key2', ...}\r\n\t\tvar keys:string[] = [];\r\n\t\t{\r\n\t\t\tlet k = patternString.match(/(?!\\(\\?<)(\\w+)(?=>)/g);\r\n\t\t\tif(k)\r\n\t\t\t{\r\n\t\t\t\tfor(let i = 0, len = k.length; i/g, EMPTY);\r\n\t\t\t\tthis._keys = keys;\r\n\t\t\t}\r\n\r\n\t\t\tif(ignoreWhiteSpace)\r\n\t\t\t\tpatternString = patternString.replace(/\\s+/g, \"\\\\s*\");\r\n\r\n\t\t\tthis._re = new RegExp(patternString, flags);\r\n\r\n\t\t}\r\n\r\n\t\tObject.freeze(this);\r\n\t}\r\n\r\n\tmatch(input:string, startIndex:number = 0):Match\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar r:RegExpExecArray;\r\n\t\tif(!input\r\n\t\t\t|| startIndex>=input.length\r\n\t\t\t|| !(r = this._re.exec(input.substring(startIndex))))\r\n\t\t\treturn Match.Empty;\r\n\r\n\t\tif(!(startIndex>0)) startIndex = 0;\r\n\r\n\t\tvar first = startIndex + r.index,\r\n\t\t loc = first,\r\n\t\t groups:Group[] = [],\r\n\t\t groupMap:IMap = {};\r\n\r\n\t\tfor(let i = 0, len = r.length; i0)) return input;\r\n\t\tvar result:string[] = [];\r\n\t\tvar p = 0, end = input.length, isEvaluator = typeof r==\"function\";\r\n\r\n\t\tvar m:Match, i:number = 0;\r\n\t\twhile(i = {})\r\n\t{\r\n\t\tsuper(value, index);\r\n\t}\r\n\r\n\tfreeze():void\r\n\t{\r\n\t\tif(!this.groups) throw new Error(\"'groups' cannot be null.\");\r\n\t\tif(!this.namedGroups) throw new Error(\"'groupMap' cannot be null.\");\r\n\t\tObject.freeze(this.groups.slice());\r\n\t\tObject.freeze(this.namedGroups);\r\n\t\tsuper.freeze();\r\n\t}\r\n\r\n\tstatic get Empty():Match\r\n\t{\r\n\t\treturn EmptyMatch;\r\n\t}\r\n}\r\nconst EmptyMatch = new Match();\r\nEmptyMatch.freeze();\r\n\r\n\r\nexport default Regex;"]} \ No newline at end of file +{"version":3,"sources":["System/Text/RegularExpressions.js","System/Text/RegularExpressions.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","RegexOptions","EMPTY","_I","_G","_M","_U","_W","_Y","IGNORE_CASE","I","GLOBAL","G","MULTI_LINE","M","UNICODE","U","STICKY","Y","IGNORE_PATTERN_WHITESPACE","W","Regex","pattern","options","extra","_i","arguments","length","Error","patternString","flags","Array","isArray","concat","join","toLowerCase","RegExp","ignoreCase","indexOf","multiline","source","ignoreWhiteSpace","replace","keys","k","match","i","len","_keys","_re","freeze","input","startIndex","r","_","exec","substring","Match","Empty","first","index","loc","groups","groupMap","text","g","EmptyGroup","Group","push","m","matches","end","success","count","Infinity","result","isEvaluator","length_1","isMatch","test","e","Capture","value","defineProperty","get","v","enumerable","configurable","_super","call","namedGroups","slice","EmptyMatch"],"mappings":";;;;;AAKA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,WAAY,SAAUC,EAASC,GAC9C,YCAJ,IAQcC,GARRC,EAAe,GAEfC,EAAK,IAAKC,EAAK,IAAKC,EAAK,IAAKC,EAAK,IAAKC,EAAK,IAAKC,EAAK,KAM7D,SAAcP,GAKAA,EAAAQ,YAAqBN,EACrBF,EAAAS,EAAWP,EAKXF,EAAAU,OAAgBP,EAChBH,EAAAW,EAAWR,EAKXH,EAAAY,WAAoBR,EACpBJ,EAAAa,EAAWT,EAKXJ,EAAAc,QAAiBT,EACjBL,EAAAe,EAAWV,EAKXL,EAAAgB,OAAgBT,EAChBP,EAAAiB,EAAWV,EAKXP,EAAAkB,0BAAmCZ,EACnCN,EAAAmB,EAAWb,GApCXN,EAAAD,EAAAC,eAAAD,EAAAC,iBAoDd,IAAAoB,GAAA,WAKC,QAAAA,GACCC,EACAC,GD7CU,IC8CV,GAAAC,MAAAC,EAAA,EAAAA,EAAAC,UAAAC,OAAAF,IAAAD,EAAAC,EAAA,GAAAC,UAAAD,EAEA,KAAIH,EAAS,KAAM,IAAIM,OAAM,qCAE7B,IAAIC,GACAC,GACIP,IAAYQ,MAAMC,QAAQT,GAAWA,GAAWA,IAAUU,OAAOT,IAAUA,GAC7EU,KAAKhC,GAAOiC,aAElB,IAAGb,YAAmBc,QACtB,CACC,GAAI3C,GAAY6B,CACb7B,GAAE4C,YAAmC,KAArBP,EAAMQ,QAAQnC,KAChC2B,GAAS3B,GACPV,EAAE8C,WAAkC,KAArBT,EAAMQ,QAAQjC,KAC/ByB,GAASzB,GACVwB,EAAgBpC,EAAE+C,WAIlBX,GAAgBP,CAEjB,IAAImB,GAAuC,IAApBX,EAAMQ,QAAQ/B,EAGrCuB,GAAQA,EAAMY,QAAQ,QAASxC,EAG/B,IAAIyC,MAECC,EAAIf,EAAcgB,MAAM,uBAC5B,IAAGD,EACH,CACC,IAAI,GAAIE,GAAI,EAAGC,EAAMH,EAAEjB,OAAUoB,EAAFD,EAAOA,IAErCH,EAAKG,EAAI,GAAKF,EAAEE,EAIjBjB,GAAgBA,EAAca,QAAQ,WAAYxC,GAClDd,KAAK4D,MAAQL,EAGXF,IACFZ,EAAgBA,EAAca,QAAQ,OAAQ,SAE/CtD,KAAK6D,IAAM,GAAIb,QAAOP,EAAeC,GAItClC,OAAOsD,OAAO9D,MAqHhB,MAlHCiC,GAAA1B,UAAAkD,MAAA,SAAMM,EAAcC,GAAA,SAAAA,IAAAA,EAAA,EAEnB,IACIC,GADAC,EAAIlE,IAER,KAAI+D,GACAC,GAAYD,EAAMxB,UAChB0B,EAAIjE,KAAK6D,IAAIM,KAAKJ,EAAMK,UAAUJ,KACvC,MAAOK,GAAMC,KAETN,GAAW,IAAIA,EAAa,EAOjC,KAAI,GALAO,GAAuBP,EAAaC,EAAEO,MACtCC,EAAuBF,EACvBG,KACAC,KAEIjB,EAAI,EAAGC,EAAMM,EAAE1B,OAAUoB,EAAFD,IAASA,EACxC,CACC,GAAIkB,GAAOX,EAAEP,GACTmB,EAAIC,CACE,QAAPF,GAAsB,SAAPA,IAEjBC,EAAI,GAAIE,GAAMH,EAAMH,GACpBI,EAAEf,UAEAJ,GAAKQ,EAAEN,OAASF,EAAEQ,EAAEN,MAAMrB,SAAQoC,EAAST,EAAEN,MAAMF,IAAMmB,GAC5DH,EAAOM,KAAKH,GACL,IAAJnB,IAAOe,GAAOG,EAAKrC,QAGvB,GAAI0C,GAAI,GAAIZ,GAAMJ,EAAE,GAAIM,EAAOG,EAAQC,EAEvC,OADAM,GAAEnB,SACKmB,GAGRhD,EAAA1B,UAAA2E,QAAA,SAAQnB,GAGP,IADA,GAA0BkB,GAAtBC,KAA+B7E,EAAI,EAAG8E,EAAMpB,GAASA,EAAMxB,QAAU,EACjE4C,EAAF9E,IAAU4E,EAAIjF,KAAKyD,MAAMM,EAAO1D,KAAO4E,EAAEG,SAE9CF,EAAQF,KAAKC,GACb5E,EAAI4E,EAAET,MAAQS,EAAE1C,MAEjB,OAAO/B,QAAOsD,OAAOoB,IAatBjD,EAAA1B,UAAA+C,QAAA,SACCS,EACAE,EACAoB,GAEA,GAFA,SAAAA,IAAAA,EAAAC,EAAAA,KAEIvB,GAAa,OAAJE,GAAiB,SAALA,GAAiBoB,EAAM,GAAI,MAAOtB,EAK3D,KAJA,GAGIkB,GAHAM,KACAlF,EAAI,EAAG8E,EAAMpB,EAAMxB,OAAQiD,EAAwB,kBAAHvB,GAEvCP,EAAW,EAChB2B,EAAF3B,GAAayB,EAAF9E,IAAU4E,EAAIjF,KAAKyD,MAAMM,EAAO1D,KAAO4E,EAAEG,SAC1D,CACM,GAAAZ,GAAAS,EAAAT,MAAOiB,EAAAR,EAAA1C,MACTlC,KAAImE,GAAOe,EAAOP,KAAKjB,EAAMK,UAAU/D,EAAGmE,IAC7Ce,EAAOP,KAAKQ,EAAcvB,EAAEgB,EAAGvB,KAAOO,GACtC5D,EAAImE,EAAQiB,EAKb,MAFKN,GAAF9E,GAAOkF,EAAOP,KAAKjB,EAAMK,UAAU/D,IAE/BkF,EAAOzC,KAAKhC,IAGpBmB,EAAA1B,UAAAmF,QAAA,SAAQ3B,GAEP,MAAO/D,MAAK6D,IAAI8B,KAAK5B,IAGf9B,EAAAyD,QAAP,SACC3B,EACA7B,EACAC,GAEA,GAAI8B,GAAI,GAAIhC,GAAMC,EAASC,EAC3B,OAAO8B,GAAEyB,QAAQ3B,IAeX9B,EAAAqB,QAAP,SACCS,EACA7B,EACA0D,EACAzD,GAEA,GAAI8B,GAAI,GAAIhC,GAAMC,EAASC,EAC3B,OAAO8B,GAAEX,QAAQS,EAAO6B,IAE1B3D,IA/KarB,GAAAqB,MAAKA,CAiLlB,IAAA4D,GAAA,WASC,QAAAA,GACQC,EACAtB,GADP,SAAAsB,IAAAA,EAAAhF,GACA,SAAA0D,IAAAA,EAAA,IADOxE,KAAA8F,MAAAA,EACA9F,KAAAwE,MAAAA,EAQT,MAhBChE,QAAAuF,eAAIF,EAAAtF,UAAA,UD1GOyF,IC0GX,WAEC,GAAIC,GAAIjG,KAAK8F,KACb,OAAOG,IAAKA,EAAE1D,QAAU,GDzGd2D,YAAY,EACZC,cAAc,ICiHzBN,EAAAtF,UAAAuD,OAAA,WAECtD,OAAOsD,OAAO9D,OAEhB6F,IAnBajF,GAAAiF,QAAOA,CAqBpB,IAAAd,GAAA,SAAAqB,GAOC,QAAArB,GACCe,EACAtB,GADA,SAAAsB,IAAAA,EAAAhF,GACA,SAAA0D,IAAAA,EAAA,IAEA4B,EAAAC,KAAArG,KAAM8F,EAAOtB,GAQf,MAnB2BzE,WAAAgF,EAAAqB,GAE1B5F,OAAAuF,eAAIhB,EAAAxE,UAAA,WDzGOyF,ICyGX,WAEC,MAAoB,IAAbhG,KAAKwE,ODxGF0B,YAAY,EACZC,cAAc,ICiHzB3F,OAAAuF,eAAWhB,EAAA,SD9GAiB,IC8GX,WAEC,MAAOlB,ID7GGoB,YAAY,EACZC,cAAc,IC+G1BpB,GAnB2Bc,EAAdjF,GAAAmE,MAAKA,CAoBlB,IAAMD,GAAa,GAAIC,EACvBD,GAAWhB,QAEX,IAAAO,GAAA,SAAA+B,GAGC,QAAA/B,GACCyB,EACAtB,EACOE,EACA4B,GAHP,SAAAR,IAAAA,EAAAhF,GACA,SAAA0D,IAAAA,EAAA,IACA,SAAAE,IAAAA,MACA,SAAA4B,IAAAA,MAEAF,EAAAC,KAAArG,KAAM8F,EAAOtB,GAHNxE,KAAA0E,OAAAA,EACA1E,KAAAsG,YAAAA,EAkBT,MAzB2BvG,WAAAsE,EAAA+B,GAY1B/B,EAAA9D,UAAAuD,OAAA,WAEC,IAAI9D,KAAK0E,OAAQ,KAAM,IAAIlC,OAAM,2BACjC,KAAIxC,KAAKsG,YAAa,KAAM,IAAI9D,OAAM,6BACtChC,QAAOsD,OAAO9D,KAAK0E,OAAO6B,SAC1B/F,OAAOsD,OAAO9D,KAAKsG,aACnBF,EAAA7F,UAAMuD,OAAMuC,KAAArG,OAGbQ,OAAAuF,eAAW1B,EAAA,SD5GA2B,IC4GX,WAEC,MAAOQ,ID3GGN,YAAY,EACZC,cAAc,IC4G1B9B,GAzB2BU,EAAdnE,GAAAyD,MAAKA,CA0BlB,IAAMmC,GAAa,GAAInC,EACvBmC,GAAW1C,SAGXtD,OAAAuF,eAAAnF,EAAA,cAAAkF,OAAA,IDzGIlF,EAAAA,WCyGWqB","file":"System/Text/RegularExpressions.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Named groups based on: http://trentrichardson.com/2011/08/02/javascript-regexp-match-named-captures/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var EMPTY = \"\";\n var UNDEFINED = \"undefined\";\n var _I = 'i', _G = 'g', _M = 'm', _U = 'u', _W = 'w', _Y = 'y';\n var RegexOptions;\n (function (RegexOptions) {\n RegexOptions.IGNORE_CASE = _I;\n RegexOptions.I = _I;\n RegexOptions.GLOBAL = _G;\n RegexOptions.G = _G;\n RegexOptions.MULTI_LINE = _M;\n RegexOptions.M = _M;\n RegexOptions.UNICODE = _U;\n RegexOptions.U = _U;\n RegexOptions.STICKY = _Y;\n RegexOptions.Y = _Y;\n RegexOptions.IGNORE_PATTERN_WHITESPACE = _W;\n RegexOptions.W = _W;\n })(RegexOptions = exports.RegexOptions || (exports.RegexOptions = {}));\n var Regex = (function () {\n function Regex(pattern, options) {\n var extra = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n extra[_i - 2] = arguments[_i];\n }\n if (!pattern)\n throw new Error(\"'pattern' cannot be null or empty.\");\n var patternString, flags = (options && (Array.isArray(options) ? options : [options]).concat(extra) || extra)\n .join(EMPTY).toLowerCase();\n if (pattern instanceof RegExp) {\n var p = pattern;\n if (p.ignoreCase && flags.indexOf(_I) === -1)\n flags += _I;\n if (p.multiline && flags.indexOf(_M) === -1)\n flags += _M;\n patternString = p.source;\n }\n else {\n patternString = pattern;\n }\n var ignoreWhiteSpace = flags.indexOf(_W) != -1;\n flags = flags.replace(/[gw]/g, EMPTY);\n var keys = [];\n {\n var k = patternString.match(/(?!\\(\\?<)(\\w+)(?=>)/g);\n if (k) {\n for (var i = 0, len = k.length; i < len; i++) {\n keys[i + 1] = k[i];\n }\n patternString = patternString.replace(/\\?<\\w+>/g, EMPTY);\n this._keys = keys;\n }\n if (ignoreWhiteSpace)\n patternString = patternString.replace(/\\s+/g, \"\\\\s*\");\n this._re = new RegExp(patternString, flags);\n }\n Object.freeze(this);\n }\n Regex.prototype.match = function (input, startIndex) {\n if (startIndex === void 0) { startIndex = 0; }\n var _ = this;\n var r;\n if (!input\n || startIndex >= input.length\n || !(r = this._re.exec(input.substring(startIndex))))\n return Match.Empty;\n if (!(startIndex > 0))\n startIndex = 0;\n var first = startIndex + r.index, loc = first, groups = [], groupMap = {};\n for (var i = 0, len = r.length; i < len; ++i) {\n var text = r[i];\n var g = EmptyGroup;\n if (text !== null || text !== void 0) {\n g = new Group(text, loc);\n g.freeze();\n }\n if (i && _._keys && i < _._keys.length)\n groupMap[_._keys[i]] = g;\n groups.push(g);\n if (i !== 0)\n loc += text.length;\n }\n var m = new Match(r[0], first, groups, groupMap);\n m.freeze();\n return m;\n };\n Regex.prototype.matches = function (input) {\n var matches = [], m, p = 0, end = input && input.length || 0;\n while (p < end && (m = this.match(input, p)) && m.success) {\n matches.push(m);\n p = m.index + m.length;\n }\n return Object.freeze(matches);\n };\n Regex.prototype.replace = function (input, r, count) {\n if (count === void 0) { count = Infinity; }\n if (!input || r === null || r === void 0 || !(count > 0))\n return input;\n var result = [];\n var p = 0, end = input.length, isEvaluator = typeof r == \"function\";\n var m, i = 0;\n while (i < count && p < end && (m = this.match(input, p)) && m.success) {\n var index = m.index, length_1 = m.length;\n if (p !== index)\n result.push(input.substring(p, index));\n result.push(isEvaluator ? r(m, i++) : r);\n p = index + length_1;\n }\n if (p < end)\n result.push(input.substring(p));\n return result.join(EMPTY);\n };\n Regex.prototype.isMatch = function (input) {\n return this._re.test(input);\n };\n Regex.isMatch = function (input, pattern, options) {\n var r = new Regex(pattern, options);\n return r.isMatch(input);\n };\n Regex.replace = function (input, pattern, e, options) {\n var r = new Regex(pattern, options);\n return r.replace(input, e);\n };\n return Regex;\n }());\n exports.Regex = Regex;\n var Capture = (function () {\n function Capture(value, index) {\n if (value === void 0) { value = EMPTY; }\n if (index === void 0) { index = -1; }\n this.value = value;\n this.index = index;\n }\n Object.defineProperty(Capture.prototype, \"length\", {\n get: function () {\n var v = this.value;\n return v && v.length || 0;\n },\n enumerable: true,\n configurable: true\n });\n Capture.prototype.freeze = function () {\n Object.freeze(this);\n };\n return Capture;\n }());\n exports.Capture = Capture;\n var Group = (function (_super) {\n __extends(Group, _super);\n function Group(value, index) {\n if (value === void 0) { value = EMPTY; }\n if (index === void 0) { index = -1; }\n _super.call(this, value, index);\n }\n Object.defineProperty(Group.prototype, \"success\", {\n get: function () {\n return this.index != -1;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Group, \"Empty\", {\n get: function () {\n return EmptyGroup;\n },\n enumerable: true,\n configurable: true\n });\n return Group;\n }(Capture));\n exports.Group = Group;\n var EmptyGroup = new Group();\n EmptyGroup.freeze();\n var Match = (function (_super) {\n __extends(Match, _super);\n function Match(value, index, groups, namedGroups) {\n if (value === void 0) { value = EMPTY; }\n if (index === void 0) { index = -1; }\n if (groups === void 0) { groups = []; }\n if (namedGroups === void 0) { namedGroups = {}; }\n _super.call(this, value, index);\n this.groups = groups;\n this.namedGroups = namedGroups;\n }\n Match.prototype.freeze = function () {\n if (!this.groups)\n throw new Error(\"'groups' cannot be null.\");\n if (!this.namedGroups)\n throw new Error(\"'groupMap' cannot be null.\");\n Object.freeze(this.groups.slice());\n Object.freeze(this.namedGroups);\n _super.prototype.freeze.call(this);\n };\n Object.defineProperty(Match, \"Empty\", {\n get: function () {\n return EmptyMatch;\n },\n enumerable: true,\n configurable: true\n });\n return Match;\n }(Group));\n exports.Match = Match;\n var EmptyMatch = new Match();\n EmptyMatch.freeze();\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Regex;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Named groups based on: http://trentrichardson.com/2011/08/02/javascript-regexp-match-named-captures/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n// NOTE: Avoid real (types/interfaces only = ok) dependencies so this class can be used cleanly.\r\nimport {IMap} from \"../Collections/Dictionaries/IDictionary\";\r\nimport {Primitive} from \"../Primitive\";\r\nimport {Selector} from \"../FunctionTypes\";\r\n\r\nconst EMPTY:string = \"\";\r\nconst UNDEFINED:string = \"undefined\";\r\nconst _I = 'i', _G = 'g', _M = 'm', _U = 'u', _W = 'w', _Y = 'y';\r\n\r\n\r\n/**\r\n * https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regexoptions%28v=vs.110%29.aspx\r\n */\r\nexport module RegexOptions\r\n{\r\n\t/**\r\n\t * Specifies case-insensitive matching. For more information, see the \"Case-Insensitive Matching \" section in the Regular Expression Options topic.\r\n\t */\r\n\texport const IGNORE_CASE:string = _I;\r\n\texport const I:string = _I;\r\n\r\n\t/**\r\n\t * Specifies global matching instead of single.\r\n\t */\r\n\texport const GLOBAL:string = _G;\r\n\texport const G:string = _G;\r\n\r\n\t/**\r\n\t * treat beginning and end characters (^ and $) as working over multiple lines (i.e., match the beginning or end of each line (delimited by \\n or \\r), not only the very beginning or end of the whole input string)\r\n\t */\r\n\texport const MULTI_LINE:string = _M;\r\n\texport const M:string = _M;\r\n\r\n\t/**\r\n\t * treat pattern as a sequence of unicode code points\r\n\t */\r\n\texport const UNICODE:string = _U;\r\n\texport const U:string = _U;\r\n\r\n\t/**\r\n\t * matches only from the index indicated by the lastIndex property of this regular expression in the target string (and does not attempt to match from any later indexes).\r\n\t */\r\n\texport const STICKY:string = _Y;\r\n\texport const Y:string = _Y;\r\n\r\n\t/**\r\n\t * Modifies the pattern to ignore standard whitespace characters.\r\n\t */\r\n\texport const IGNORE_PATTERN_WHITESPACE:string = _W;\r\n\texport const W:string = _W;\r\n\r\n\texport type Global = 'g';\r\n\texport type IgnoreCase = 'i';\r\n\texport type MultiLine = 'm';\r\n\texport type Unicode = 'u';\r\n\texport type Sticky = 'y';\r\n\texport type IgnorePatternWhitespace = \"w\";\r\n\r\n\texport type Literal = Global | IgnoreCase | MultiLine | Unicode | Sticky | IgnorePatternWhitespace;\r\n}\r\n\r\nexport interface MatchEvaluator extends Selector\r\n{\r\n}\r\n\r\nexport class Regex\r\n{\r\n\tprivate _re:RegExp;\r\n\tprivate _keys:string[];\r\n\r\n\tconstructor(\r\n\t\tpattern:string|RegExp,\r\n\t\toptions?:RegexOptions.Literal|RegexOptions.Literal[],\r\n\t\t...extra:RegexOptions.Literal[])\r\n\t{\r\n\t\tif(!pattern) throw new Error(\"'pattern' cannot be null or empty.\");\r\n\r\n\t\tvar patternString:string,\r\n\t\t flags:string\r\n\t\t\t = (options && (Array.isArray(options) ? options : [options]).concat(extra) || extra)\r\n\t\t\t .join(EMPTY).toLowerCase();\r\n\r\n\t\tif(pattern instanceof RegExp)\r\n\t\t{\r\n\t\t\tlet p = pattern;\r\n\t\t\tif(p.ignoreCase && flags.indexOf(_I)=== -1)\r\n\t\t\t\tflags += _I;\r\n\t\t\tif(p.multiline && flags.indexOf(_M)=== -1)\r\n\t\t\t\tflags += _M;\r\n\t\t\tpatternString = p.source;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tpatternString = pattern;\r\n\t\t}\r\n\t\tvar ignoreWhiteSpace = flags.indexOf(_W)!= -1;\r\n\r\n\t\t// For the majority of expected behavior, we need to eliminate global and whitespace ignore.\r\n\t\tflags = flags.replace(/[gw]/g, EMPTY);\r\n\r\n\t\t// find the keys inside the pattern, and place in mapping array {0:'key1', 1:'key2', ...}\r\n\t\tvar keys:string[] = [];\r\n\t\t{\r\n\t\t\tlet k = patternString.match(/(?!\\(\\?<)(\\w+)(?=>)/g);\r\n\t\t\tif(k)\r\n\t\t\t{\r\n\t\t\t\tfor(let i = 0, len = k.length; i/g, EMPTY);\r\n\t\t\t\tthis._keys = keys;\r\n\t\t\t}\r\n\r\n\t\t\tif(ignoreWhiteSpace)\r\n\t\t\t\tpatternString = patternString.replace(/\\s+/g, \"\\\\s*\");\r\n\r\n\t\t\tthis._re = new RegExp(patternString, flags);\r\n\r\n\t\t}\r\n\r\n\t\tObject.freeze(this);\r\n\t}\r\n\r\n\tmatch(input:string, startIndex:number = 0):Match\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar r:RegExpExecArray;\r\n\t\tif(!input\r\n\t\t\t|| startIndex>=input.length\r\n\t\t\t|| !(r = this._re.exec(input.substring(startIndex))))\r\n\t\t\treturn Match.Empty;\r\n\r\n\t\tif(!(startIndex>0)) startIndex = 0;\r\n\r\n\t\tvar first = startIndex + r.index,\r\n\t\t loc = first,\r\n\t\t groups:Group[] = [],\r\n\t\t groupMap:IMap = {};\r\n\r\n\t\tfor(let i = 0, len = r.length; i0)) return input;\r\n\t\tvar result:string[] = [];\r\n\t\tvar p = 0, end = input.length, isEvaluator = typeof r==\"function\";\r\n\r\n\t\tvar m:Match, i:number = 0;\r\n\t\twhile(i = {})\r\n\t{\r\n\t\tsuper(value, index);\r\n\t}\r\n\r\n\tfreeze():void\r\n\t{\r\n\t\tif(!this.groups) throw new Error(\"'groups' cannot be null.\");\r\n\t\tif(!this.namedGroups) throw new Error(\"'groupMap' cannot be null.\");\r\n\t\tObject.freeze(this.groups.slice());\r\n\t\tObject.freeze(this.namedGroups);\r\n\t\tsuper.freeze();\r\n\t}\r\n\r\n\tstatic get Empty():Match\r\n\t{\r\n\t\treturn EmptyMatch;\r\n\t}\r\n}\r\nconst EmptyMatch = new Match();\r\nEmptyMatch.freeze();\r\n\r\n\r\nexport default Regex;"]} \ No newline at end of file diff --git a/dist/amd/System/Text/StringBuilder.d.ts b/dist/amd/System/Text/StringBuilder.d.ts index 72f52b4c..a5ee019f 100644 --- a/dist/amd/System/Text/StringBuilder.d.ts +++ b/dist/amd/System/Text/StringBuilder.d.ts @@ -1,10 +1,10 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * .NET Reference: http://referencesource.microsoft.com/#mscorlib/system/text/StringBuilder.cs * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -export default class StringBuilder implements IDisposable { +import { IDisposable } from "../Disposable/IDisposable"; +export declare class StringBuilder implements IDisposable { private _partArray; private _latest; constructor(...initial: any[]); @@ -19,3 +19,4 @@ export default class StringBuilder implements IDisposable { clear(): void; dispose(): void; } +export default StringBuilder; diff --git a/dist/amd/System/Text/StringBuilder.js b/dist/amd/System/Text/StringBuilder.js index bf4fb280..b29533da 100644 --- a/dist/amd/System/Text/StringBuilder.js +++ b/dist/amd/System/Text/StringBuilder.js @@ -3,5 +3,5 @@ * .NET Reference: http://referencesource.microsoft.com/#mscorlib/system/text/StringBuilder.cs * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -define(["require","exports","../Types"],function(t,e,r){"use strict";var n=void 0,p=function(){function t(){for(var t=[],e=0;e\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport Type from '../Types';\r\nimport LinkedList from '../Collections/LinkedList';\r\n\r\nconst VOID0:any = void 0;\r\n\r\n/*****************************\r\n * IMPORTANT NOTES ABOUT PERFORMANCE:\r\n * http://jsperf.com/string-concatenation-looped\r\n * http://jsperf.com/adding-strings-to-an-array\r\n * http://jsperf.com/string-concatenation-versus-array-operations-with-join\r\n *\r\n * It is clearly inefficient to use a StringBuilder or LinkedList to build a string when you have a small set of string portions.\r\n * StringBuilder will really show it's benefit likely somewhere above 1000 items.\r\n *****************************/\r\n\r\n\r\nexport default\r\nclass StringBuilder implements IDisposable\r\n\t// Adding IDisposable allows for use with System.using();\r\n\t// ... and since this may end up being a large array container, might be a good idea to allow for flexible cleanup.\r\n{\r\n\t//noinspection JSMismatchedCollectionQueryUpdate\r\n\tprivate _partArray:any[];\r\n\tprivate _latest:string; // AKA persistentString\r\n\r\n\tconstructor(...initial:any[])\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_._latest = null;\r\n\t\t_._partArray = [];\r\n\t\t_.appendThese(initial);\r\n\t}\r\n\r\n\tprivate appendSingle(item:any):void\r\n\t{\r\n\t\tif(item!==null && item!==VOID0) {\r\n\t\t\tvar _ = this;\r\n\t\t\t_._latest = null;\r\n\t\t\tswitch(typeof item) {\r\n\t\t\t\tcase Type.OBJECT:\r\n\t\t\t\tcase Type.FUNCTION:\r\n\t\t\t\t\titem = item.toString();\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\t_._partArray.push(item); // Other primitive types can keep their format since a number or boolean is a smaller footprint than a string.\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tappendThese(items:any[]):StringBuilder\r\n\t{\r\n\t\tvar _ = this;\r\n\t\titems.forEach(s=> _.appendSingle(s));\r\n\t\treturn _;\r\n\t}\r\n\r\n\tappend(...items:any[]):StringBuilder\r\n\t{\r\n\t\tthis.appendThese(items);\r\n\t\treturn this;\r\n\t}\r\n\r\n\tappendLine(...items:any[]):StringBuilder\r\n\t{\r\n\t\tthis.appendLines(items);\r\n\t\treturn this;\r\n\t}\r\n\r\n\tappendLines(items:any[]):StringBuilder\r\n\t{\r\n\t\tvar _ = this;\r\n\t\titems.forEach(\r\n\t\t\t\ti=>\r\n\t\t\t{\r\n\t\t\t\tif(i!==null && i!==VOID0) {\r\n\t\t\t\t\t_.appendSingle(i);\r\n\t\t\t\t\t_._partArray.push(\"\\r\\n\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\t\treturn _;\r\n\t}\r\n\r\n\t/** /// These methods can only efficiently be added if not using a single array.\r\n\t insert(index: number, value: string, count: number = 1): StringBuilder\r\n\t {\r\n\r\n\t}\r\n\r\n\t remove(startIndex:number, length:number): StringBuilder\r\n\t {\r\n\r\n\t}\r\n\t /**/\r\n\r\n\tget isEmpty()\r\n\t{\r\n\t\treturn this._partArray.length===0;\r\n\t}\r\n\r\n\ttoString()\r\n\t{\r\n\t\tvar latest = this._latest;\r\n\t\tif(!latest===null)\r\n\t\t\tthis._latest = latest = this._partArray.join();\r\n\r\n\t\treturn latest;\r\n\t}\r\n\r\n\tjoin(delimiter:string):string\r\n\t{\r\n\t\treturn this._partArray.join(delimiter);\r\n\t}\r\n\r\n\tclear():void\r\n\t{\r\n\t\tthis._partArray.length = 0;\r\n\t\tthis._latest = null;\r\n\t}\r\n\r\n\tdispose():void\r\n\t{\r\n\t\tthis.clear();\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Text/StringBuilder.js","System/Text/StringBuilder.ts"],"names":["define","require","exports","Types_1","VOID0","StringBuilder","initial","_i","arguments","length","_","this","_latest","_partArray","appendThese","prototype","appendSingle","item","Type","OBJECT","FUNCTION","toString","push","items","forEach","s","append","appendLine","appendLines","i","Object","defineProperty","get","enumerable","configurable","latest","join","delimiter","clear","dispose","value"],"mappings":";;;;;AAKAA,QAAQ,UAAW,UAAW,YAAa,SAAUC,EAASC,EAASC,GACnE,YCGJ,IAAMC,GAAY,OAalBC,EAAA,WAQC,QAAAA,KDnBW,ICmBC,GAAAC,MAAAC,EAAA,EAAAA,EAAAC,UAAAC,OAAAF,IAAAD,EAAAC,EAAA,GAAAC,UAAAD,EAEX,IAAIG,GAAIC,IACRD,GAAEE,QAAU,KACZF,EAAEG,cACFH,EAAEI,YAAYR,GAkGhB,MA/FSD,GAAAU,UAAAC,aAAR,SAAqBC,GAEpB,GAAU,OAAPA,GAAeA,IAAOb,EACzB,CACC,GAAIM,GAAIC,IAER,QADAD,EAAEE,QAAU,WACEK,IAEb,IAAKd,GAAAe,KAAKC,OACV,IAAKhB,GAAAe,KAAKE,SACTH,EAAOA,EAAKI,WAGdX,EAAEG,WAAWS,KAAKL,KAKpBZ,EAAAU,UAAAD,YAAA,SAAYS,GAEX,GAAIb,GAAIC,IAER,OADAY,GAAMC,QAAQ,SAAAC,GAAI,MAAAf,GAAEM,aAAaS,KAC1Bf,GAGRL,EAAAU,UAAAW,OAAA,WDxBW,ICwBJ,GAAAH,MAAAhB,EAAA,EAAAA,EAAAC,UAAAC,OAAAF,IAAAgB,EAAAhB,EAAA,GAAAC,UAAAD,EAGN,OADAI,MAAKG,YAAYS,GACVZ,MAGRN,EAAAU,UAAAY,WAAA,WDtBW,ICsBA,GAAAJ,MAAAhB,EAAA,EAAAA,EAAAC,UAAAC,OAAAF,IAAAgB,EAAAhB,EAAA,GAAAC,UAAAD,EAGV,OADAI,MAAKiB,YAAYL,GACVZ,MAGRN,EAAAU,UAAAa,YAAA,SAAYL,GAEX,GAAIb,GAAIC,IAWR,OAVAY,GAAMC,QACL,SAAAK,GAEQ,OAAJA,GAAYA,IAAIzB,IAElBM,EAAEM,aAAaa,GACfnB,EAAEG,WAAWS,KAAK,WAIdZ,GAeRoB,OAAAC,eAAI1B,EAAAU,UAAA,WDvCOiB,ICuCX,WAEC,MAAgC,KAAzBrB,KAAKE,WAAWJ,QDtCbwB,YAAY,EACZC,cAAc,ICwCzB7B,EAAAU,UAAAM,SAAA,WAEC,GAAIc,GAASxB,KAAKC,OAIlB,OAHa,SAATuB,IACHxB,KAAKC,QAAUuB,EAASxB,KAAKE,WAAWuB,QAElCD,GAGR9B,EAAAU,UAAAqB,KAAA,SAAKC,GAEJ,MAAO1B,MAAKE,WAAWuB,KAAKC,IAG7BhC,EAAAU,UAAAuB,MAAA,WAEC3B,KAAKE,WAAWJ,OAAS,EACzBE,KAAKC,QAAU,MAGhBP,EAAAU,UAAAwB,QAAA,WAEC5B,KAAK2B,SAGPjC,IA/GaH,GAAAG,cAAaA,EAiH1ByB,OAAAC,eAAA7B,EAAA,cAAAsC,OAAA,ID7CItC,EAAAA,WC6CWG","file":"System/Text/StringBuilder.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * .NET Reference: http://referencesource.microsoft.com/#mscorlib/system/text/StringBuilder.cs\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\", \"../Types\"], function (require, exports, Types_1) {\n \"use strict\";\n var VOID0 = void 0;\n var StringBuilder = (function () {\n function StringBuilder() {\n var initial = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n initial[_i - 0] = arguments[_i];\n }\n var _ = this;\n _._latest = null;\n _._partArray = [];\n _.appendThese(initial);\n }\n StringBuilder.prototype.appendSingle = function (item) {\n if (item !== null && item !== VOID0) {\n var _ = this;\n _._latest = null;\n switch (typeof item) {\n case Types_1.Type.OBJECT:\n case Types_1.Type.FUNCTION:\n item = item.toString();\n break;\n }\n _._partArray.push(item);\n }\n };\n StringBuilder.prototype.appendThese = function (items) {\n var _ = this;\n items.forEach(function (s) { return _.appendSingle(s); });\n return _;\n };\n StringBuilder.prototype.append = function () {\n var items = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n items[_i - 0] = arguments[_i];\n }\n this.appendThese(items);\n return this;\n };\n StringBuilder.prototype.appendLine = function () {\n var items = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n items[_i - 0] = arguments[_i];\n }\n this.appendLines(items);\n return this;\n };\n StringBuilder.prototype.appendLines = function (items) {\n var _ = this;\n items.forEach(function (i) {\n if (i !== null && i !== VOID0) {\n _.appendSingle(i);\n _._partArray.push(\"\\r\\n\");\n }\n });\n return _;\n };\n Object.defineProperty(StringBuilder.prototype, \"isEmpty\", {\n get: function () {\n return this._partArray.length === 0;\n },\n enumerable: true,\n configurable: true\n });\n StringBuilder.prototype.toString = function () {\n var latest = this._latest;\n if (!latest === null)\n this._latest = latest = this._partArray.join();\n return latest;\n };\n StringBuilder.prototype.join = function (delimiter) {\n return this._partArray.join(delimiter);\n };\n StringBuilder.prototype.clear = function () {\n this._partArray.length = 0;\n this._latest = null;\n };\n StringBuilder.prototype.dispose = function () {\n this.clear();\n };\n return StringBuilder;\n }());\n exports.StringBuilder = StringBuilder;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = StringBuilder;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * .NET Reference: http://referencesource.microsoft.com/#mscorlib/system/text/StringBuilder.cs\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {Type} from \"../Types\";\r\nimport {IDisposable} from \"../Disposable/IDisposable\";\r\n\r\nconst VOID0:any = void 0;\r\n\r\n/*****************************\r\n * IMPORTANT NOTES ABOUT PERFORMANCE:\r\n * http://jsperf.com/string-concatenation-looped\r\n * http://jsperf.com/adding-strings-to-an-array\r\n * http://jsperf.com/string-concatenation-versus-array-operations-with-join\r\n *\r\n * It is clearly inefficient to use a StringBuilder or LinkedList to build a string when you have a small set of string portions.\r\n * StringBuilder will really show it's benefit likely somewhere above 1000 items.\r\n *****************************/\r\n\r\n\r\nexport class StringBuilder implements IDisposable\r\n\t// Adding IDisposable allows for use with System.using();\r\n\t// ... and since this may end up being a large array container, might be a good idea to allow for flexible cleanup.\r\n{\r\n\t//noinspection JSMismatchedCollectionQueryUpdate\r\n\tprivate _partArray:any[];\r\n\tprivate _latest:string; // AKA persistentString\r\n\r\n\tconstructor(...initial:any[])\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_._latest = null;\r\n\t\t_._partArray = [];\r\n\t\t_.appendThese(initial);\r\n\t}\r\n\r\n\tprivate appendSingle(item:any):void\r\n\t{\r\n\t\tif(item!==null && item!==VOID0)\r\n\t\t{\r\n\t\t\tvar _ = this;\r\n\t\t\t_._latest = null;\r\n\t\t\tswitch(typeof item)\r\n\t\t\t{\r\n\t\t\t\tcase Type.OBJECT:\r\n\t\t\t\tcase Type.FUNCTION:\r\n\t\t\t\t\titem = item.toString();\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\t_._partArray.push(item); // Other primitive types can keep their format since a number or boolean is a smaller footprint than a string.\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tappendThese(items:any[]):StringBuilder\r\n\t{\r\n\t\tvar _ = this;\r\n\t\titems.forEach(s=> _.appendSingle(s));\r\n\t\treturn _;\r\n\t}\r\n\r\n\tappend(...items:any[]):StringBuilder\r\n\t{\r\n\t\tthis.appendThese(items);\r\n\t\treturn this;\r\n\t}\r\n\r\n\tappendLine(...items:any[]):StringBuilder\r\n\t{\r\n\t\tthis.appendLines(items);\r\n\t\treturn this;\r\n\t}\r\n\r\n\tappendLines(items:any[]):StringBuilder\r\n\t{\r\n\t\tvar _ = this;\r\n\t\titems.forEach(\r\n\t\t\ti=>\r\n\t\t\t{\r\n\t\t\t\tif(i!==null && i!==VOID0)\r\n\t\t\t\t{\r\n\t\t\t\t\t_.appendSingle(i);\r\n\t\t\t\t\t_._partArray.push(\"\\r\\n\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\t\treturn _;\r\n\t}\r\n\r\n\t/** /// These methods can only efficiently be added if not using a single array.\r\n\t insert(index: number, value: string, count: number = 1): StringBuilder\r\n\t {\r\n\r\n\t}\r\n\r\n\t remove(startIndex:number, length:number): StringBuilder\r\n\t {\r\n\r\n\t}\r\n\t /**/\r\n\r\n\tget isEmpty()\r\n\t{\r\n\t\treturn this._partArray.length===0;\r\n\t}\r\n\r\n\ttoString()\r\n\t{\r\n\t\tvar latest = this._latest;\r\n\t\tif(!latest===null)\r\n\t\t\tthis._latest = latest = this._partArray.join();\r\n\r\n\t\treturn latest;\r\n\t}\r\n\r\n\tjoin(delimiter:string):string\r\n\t{\r\n\t\treturn this._partArray.join(delimiter);\r\n\t}\r\n\r\n\tclear():void\r\n\t{\r\n\t\tthis._partArray.length = 0;\r\n\t\tthis._latest = null;\r\n\t}\r\n\r\n\tdispose():void\r\n\t{\r\n\t\tthis.clear();\r\n\t}\r\n\r\n}\r\n\r\nexport default StringBuilder;"]} \ No newline at end of file diff --git a/dist/amd/System/Text/Utility.js b/dist/amd/System/Text/Utility.js index fc07be0c..5036f39e 100644 --- a/dist/amd/System/Text/Utility.js +++ b/dist/amd/System/Text/Utility.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -define(["require","exports","../Types"],function(r,e,t){"use strict";function n(r){var e=0;if(0==r.length)return e;for(var t=0,n=r.length;n>t;t++){var a=r.charCodeAt(t);e=(e<<5)-e+a,e|=0}return e}function a(r,t){var n=e.EMPTY;if(!isNaN(t))for(var a=0;t>a;a++)n+=r;return n}function i(r,t){if(void 0===t&&(t=1),Array.isArray(r)){for(var n=e.EMPTY,i=0,u=r;in;n++){var a=r.charCodeAt(n);e=(e<<5)-e+a,e|=0}return e}function a(r,n){var t=e.EMPTY;if(!isNaN(n))for(var a=0;n>a;a++)t+=r;return t}function i(r,n){if(void 0===n&&(n=1),Array.isArray(r)){for(var t=e.EMPTY,i=0,o=r;ichars);\r\n\t\treturn source.replace(new RegExp('^[' + escaped + ']+|[' + escaped + ']+$', 'g' + (ignoreCase\r\n\t\t\t\t? 'i'\r\n\t\t\t\t: '')), EMPTY);\r\n\t}\r\n\r\n\treturn source.replace(/^\\s+|\\s+$/g, EMPTY);\r\n}\r\n\r\n/**\r\n * Takes any arg\r\n * @param source\r\n * @param args\r\n * @returns {string}\r\n */\r\nexport function format(source:string, ...args:any[])\r\n{\r\n\treturn supplant(source, args);\r\n}\r\n\r\n//\r\n\r\n/**\r\n * This takes a string and replaces '{string}' with the respected parameter.\r\n * Also allows for passing an array in order to use '{n}' notation.\r\n * Not limited to an array's indexes. For example, {length} is allowed.\r\n * Based upon Crockford's supplant function.\r\n * @param source\r\n * @param params\r\n * @returns {string}\r\n */\r\nexport function supplant(source:string, params:{[key:string]:any}|any[]):string\r\n{\r\n\tvar oIsArray = Array.isArray(params);\r\n\treturn source.replace(/\\{([^{}]*)\\}/g,\r\n\t\t(a:string, b:string):any=>\r\n\t\t{\r\n\t\t\tvar n:any = b;\r\n\t\t\tif(oIsArray)\r\n\t\t\t{\r\n\t\t\t\tlet i = parseInt(b);\r\n\t\t\t\tif(!isNaN(i)) n = i;\r\n\t\t\t}\r\n\r\n\t\t\tvar r = (params)[n];\r\n\t\t\tswitch(typeof r)\r\n\t\t\t{\r\n\t\t\t\tcase Type.STRING:\r\n\t\t\t\tcase Type.NUMBER:\r\n\t\t\t\tcase Type.BOOLEAN:\r\n\t\t\t\t\treturn r;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\treturn (r && Type.hasMemberOfType(r, \"toString\", Type.FUNCTION))\r\n\t\t\t\t\t\t? r.toString()\r\n\t\t\t\t\t\t: a;\r\n\t\t\t}\r\n\t\t}\r\n\t);\r\n}\r\n\r\n\r\nfunction canMatch(source:string, match:string):boolean {\r\n\tif(!Type.isString(source) || !match) return false;\r\n\tif(source===match) return true;\r\n\tif(match.lengthchars);\r\n\t\treturn source.replace(new RegExp('^[' + escaped + ']+|[' + escaped + ']+$', 'g' + (ignoreCase\r\n\t\t\t\t? 'i'\r\n\t\t\t\t: '')), EMPTY);\r\n\t}\r\n\r\n\treturn source.replace(/^\\s+|\\s+$/g, EMPTY);\r\n}\r\n\r\n/**\r\n * Takes any arg\r\n * @param source\r\n * @param args\r\n * @returns {string}\r\n */\r\nexport function format(source:string, ...args:any[])\r\n{\r\n\treturn supplant(source, args);\r\n}\r\n\r\n//\r\n\r\n/**\r\n * This takes a string and replaces '{string}' with the respected parameter.\r\n * Also allows for passing an array in order to use '{n}' notation.\r\n * Not limited to an array's indexes. For example, {length} is allowed.\r\n * Based upon Crockford's supplant function.\r\n * @param source\r\n * @param params\r\n * @returns {string}\r\n */\r\nexport function supplant(source:string, params:{[key:string]:any}|any[]):string\r\n{\r\n\tvar oIsArray = Array.isArray(params);\r\n\treturn source.replace(/\\{([^{}]*)\\}/g,\r\n\t\t(a:string, b:string):any=>\r\n\t\t{\r\n\t\t\tvar n:any = b;\r\n\t\t\tif(oIsArray)\r\n\t\t\t{\r\n\t\t\t\tlet i = parseInt(b);\r\n\t\t\t\tif(!isNaN(i)) n = i;\r\n\t\t\t}\r\n\r\n\t\t\tvar r = (params)[n];\r\n\t\t\tswitch(typeof r)\r\n\t\t\t{\r\n\t\t\t\tcase Type.STRING:\r\n\t\t\t\tcase Type.NUMBER:\r\n\t\t\t\tcase Type.BOOLEAN:\r\n\t\t\t\t\treturn r;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\treturn (r && Type.hasMemberOfType(r, \"toString\", Type.FUNCTION))\r\n\t\t\t\t\t\t? r.toString()\r\n\t\t\t\t\t\t: a;\r\n\t\t\t}\r\n\t\t}\r\n\t);\r\n}\r\n\r\n\r\nfunction canMatch(source:string, match:string):boolean {\r\n\tif(!Type.isString(source) || !match) return false;\r\n\tif(source===match) return true;\r\n\tif(match.length -/// -/// -/// -/// -/// -/// -/// -import TimeQuantity from './TimeQuantity'; -export default class ClockTime extends TimeQuantity implements IClockTime { +/*! + * @author electricessence / https://github.com/electricessence/ + * Originally based upon .NET source but with many additions and improvements. + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +import { TimeQuantity } from "./TimeQuantity"; +import { IClockTime } from "./ITimeStamp"; +export declare class ClockTime extends TimeQuantity implements IClockTime { days: number; hour: number; minute: number; @@ -20,3 +18,4 @@ export default class ClockTime extends TimeQuantity implements IClockTime { static millisecondsFromTime(hours: number, minutes: number, seconds?: number, milliseconds?: number): number; toString(): string; } +export default ClockTime; diff --git a/dist/amd/System/Time/ClockTime.js b/dist/amd/System/Time/ClockTime.js index 679a1b57..24b9fed7 100644 --- a/dist/amd/System/Time/ClockTime.js +++ b/dist/amd/System/Time/ClockTime.js @@ -1,2 +1,7 @@ -var __extends=this&&this.__extends||function(e,t){function n(){this.constructor=e}for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)};define(["require","exports","./TimeQuantity"],function(e,t,n){"use strict";function o(e,t){return 1!==Math.abs(e)&&(t+="s"),t}var r=function(e){function t(){for(var n=[],o=0;o1?t.millisecondsFromTime(n[0]||0,n[1]||0,n.length>2&&n[2]||0,n.length>3&&n[3]||0):n.length>0&&n[0]||0);var r=this,i=Math.abs(r.getTotalMilliseconds()),s=Math.floor(i);r.tick=1e4*(i-s),r.days=s/864e5|0,s-=864e5*r.days,r.hour=s/36e5|0,s-=36e5*r.hour,r.minute=s/6e4|0,s-=6e4*r.minute,r.second=s/1e3|0,s-=1e3*r.second,r.millisecond=s,Object.freeze(r)}return __extends(t,e),t.from=function(e,n,o,r){return void 0===o&&(o=0),void 0===r&&(r=0),new t(e,n,o,r)},t.millisecondsFromTime=function(e,t,n,o){void 0===n&&(n=0),void 0===o&&(o=0);var r=e;return r*=60,r+=t,r*=60,r+=n,r*=1e3,r+=o},t.prototype.toString=function(){var e=this,t=[];return e.days&&t.push(o(e.days,"day")),e.hour&&t.push(o(e.hour,"hour")),e.minute&&t.push(o(e.minute,"minute")),e.second&&t.push(o(e.second,"second")),t.length>1&&t.splice(t.length-1,0,"and"),t.join(", ").replace(", and, "," and ")},t}(n["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=r}); +/*! + * @author electricessence / https://github.com/electricessence/ + * Originally based upon .NET source but with many additions and improvements. + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +var __extends=this&&this.__extends||function(e,t){function n(){this.constructor=e}for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)};define(["require","exports","./TimeQuantity"],function(e,t,n){"use strict";function o(e,t){return 1!==Math.abs(e)&&(t+="s"),t}var i=function(e){function t(){for(var n=[],o=0;o1?t.millisecondsFromTime(n[0]||0,n[1]||0,n.length>2&&n[2]||0,n.length>3&&n[3]||0):n.length>0&&n[0]||0);var i=this,r=Math.abs(i.getTotalMilliseconds()),s=Math.floor(r);i.tick=1e4*(r-s),i.days=s/864e5|0,s-=864e5*i.days,i.hour=s/36e5|0,s-=36e5*i.hour,i.minute=s/6e4|0,s-=6e4*i.minute,i.second=s/1e3|0,s-=1e3*i.second,i.millisecond=s,Object.freeze(i)}return __extends(t,e),t.from=function(e,n,o,i){return void 0===o&&(o=0),void 0===i&&(i=0),new t(e,n,o,i)},t.millisecondsFromTime=function(e,t,n,o){void 0===n&&(n=0),void 0===o&&(o=0);var i=e;return i*=60,i+=t,i*=60,i+=n,i*=1e3,i+=o},t.prototype.toString=function(){var e=this,t=[];return e.days&&t.push(o(e.days,"day")),e.hour&&t.push(o(e.hour,"hour")),e.minute&&t.push(o(e.minute,"minute")),e.second&&t.push(o(e.second,"second")),t.length>1&&t.splice(t.length-1,0,"and"),t.join(", ").replace(", and, "," and ")},t}(n.TimeQuantity);t.ClockTime=i,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=i}); //# sourceMappingURL=ClockTime.js.map diff --git a/dist/amd/System/Time/ClockTime.js.map b/dist/amd/System/Time/ClockTime.js.map index b09c45fa..5f20d275 100644 --- a/dist/amd/System/Time/ClockTime.js.map +++ b/dist/amd/System/Time/ClockTime.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Time/ClockTime.js","System/Time/ClockTime.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","TimeQuantity_1","pluralize","value","label","Math","abs","ClockTime","_super","args","_i","arguments","length","call","millisecondsFromTime","_","ms","getTotalMilliseconds","msi","floor","tick","days","hour","minute","second","millisecond","freeze","from","hours","minutes","seconds","milliseconds","toString","a","push","splice","join","replace","defineProperty"],"mappings":"AAAA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,kBAAmB,SAAUC,EAASC,EAASC,GCQ7E,YA2GA,SAAAC,GAAmBC,EAAcC,GAKhC,MAHqB,KAAlBC,KAAKC,IAAIH,KACXC,GAAS,KAEHA,EA1GR,GAAAG,GAAA,SAAAC,GAaC,QAAAD,KDrBW,ICqBC,GAAAE,MAAAC,EAAA,EAAAA,EAAAC,UAAAC,OAAAF,IAAAD,EAAAC,EAAA,GAAAC,UAAAD,EAEXF,GAAAK,KAAAzB,KACCqB,EAAKG,OAAO,EACTL,EAAUO,qBACZL,EAAK,IAAM,EACXA,EAAK,IAAM,EACXA,EAAKG,OAAO,GAAKH,EAAK,IAAM,EAC5BA,EAAKG,OAAO,GAAKH,EAAK,IAAM,GAEzBA,EAAKG,OAAO,GAAKH,EAAK,IAAM,EAGjC,IAAIM,GAAI3B,KACJ4B,EAAKX,KAAKC,IAAIS,EAAEE,wBAChBC,EAAMb,KAAKc,MAAMH,EAErBD,GAAEK,KAAkB,KAAVJ,EAAKE,GAEfH,EAAEM,KAAQH,EAAI,MAAgC,EAC9CA,GAAgB,MAATH,EAAEM,KAETN,EAAEO,KAAQJ,EAAI,KAAiC,EAC/CA,GAAgB,KAATH,EAAEO,KAETP,EAAEQ,OAAUL,EAAI,IAAmC,EACnDA,GAAkB,IAAXH,EAAEQ,OAETR,EAAES,OAAUN,EAAI,IAAmC,EACnDA,GAAkB,IAAXH,EAAES,OAETT,EAAEU,YAAcP,EAEhBtB,OAAO8B,OAAOX,GAmDhB,MAhGwB5B,WAAAoB,EAAAC,GAkDhBD,EAAAoB,KAAP,SAAYC,EAAcC,EAAgBC,EAAoBC,GAE7D,MAFyC,UAAAD,IAAAA,EAAA,GAAoB,SAAAC,IAAAA,EAAA,GAEtD,GAAIxB,GAAUqB,EAAOC,EAASC,EAASC,IAGxCxB,EAAAO,qBAAP,SACCc,EACAC,EACAC,EACAC,GADA,SAAAD,IAAAA,EAAA,GACA,SAAAC,IAAAA,EAAA,EAEA,IAAI5B,GAAQyB,CAOZ,OANAzB,IAAS,GACTA,GAAS0B,EACT1B,GAAS,GACTA,GAAS2B,EACT3B,GAAS,IACTA,GAAS4B,GAIVxB,EAAAZ,UAAAqC,SAAA,WAKC,GAAIjB,GAAI3B,KAAM6C,IAiBd,OAfGlB,GAAEM,MACJY,EAAEC,KAAKhC,EAAUa,EAAEM,KAAM,QAEvBN,EAAEO,MACJW,EAAEC,KAAKhC,EAAUa,EAAEO,KAAM,SAEvBP,EAAEQ,QACJU,EAAEC,KAAKhC,EAAUa,EAAEQ,OAAQ,WAEzBR,EAAES,QACJS,EAAEC,KAAKhC,EAAUa,EAAES,OAAQ,WAEzBS,EAAErB,OAAO,GACXqB,EAAEE,OAAOF,EAAErB,OAAS,EAAG,EAAG,OAEpBqB,EAAEG,KAAK,MAAMC,QAAQ,UAAW,UAGzC9B,GAhGwBN,EAAAA,WADxBL,QAAA0C,eAAAtC,EAAA,cAAAG,OAAA,ID+CIH,EAAAA,WAAkBO","file":"System/Time/ClockTime.js","sourcesContent":["var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", './TimeQuantity'], function (require, exports, TimeQuantity_1) {\n 'use strict';\n var ClockTime = (function (_super) {\n __extends(ClockTime, _super);\n function ClockTime() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i - 0] = arguments[_i];\n }\n _super.call(this, args.length > 1\n ? ClockTime.millisecondsFromTime(args[0] || 0, args[1] || 0, args.length > 2 && args[2] || 0, args.length > 3 && args[3] || 0)\n : (args.length > 0 && args[0] || 0));\n var _ = this;\n var ms = Math.abs(_.getTotalMilliseconds());\n var msi = Math.floor(ms);\n _.tick = (ms - msi) * 10000;\n _.days = (msi / 86400000) | 0;\n msi -= _.days * 86400000;\n _.hour = (msi / 3600000) | 0;\n msi -= _.hour * 3600000;\n _.minute = (msi / 60000) | 0;\n msi -= _.minute * 60000;\n _.second = (msi / 1000) | 0;\n msi -= _.second * 1000;\n _.millisecond = msi;\n Object.freeze(_);\n }\n ClockTime.from = function (hours, minutes, seconds, milliseconds) {\n if (seconds === void 0) { seconds = 0; }\n if (milliseconds === void 0) { milliseconds = 0; }\n return new ClockTime(hours, minutes, seconds, milliseconds);\n };\n ClockTime.millisecondsFromTime = function (hours, minutes, seconds, milliseconds) {\n if (seconds === void 0) { seconds = 0; }\n if (milliseconds === void 0) { milliseconds = 0; }\n var value = hours;\n value *= 60;\n value += minutes;\n value *= 60;\n value += seconds;\n value *= 1000;\n value += milliseconds;\n return value;\n };\n ClockTime.prototype.toString = function () {\n var _ = this, a = [];\n if (_.days)\n a.push(pluralize(_.days, \"day\"));\n if (_.hour)\n a.push(pluralize(_.hour, \"hour\"));\n if (_.minute)\n a.push(pluralize(_.minute, \"minute\"));\n if (_.second)\n a.push(pluralize(_.second, \"second\"));\n if (a.length > 1)\n a.splice(a.length - 1, 0, \"and\");\n return a.join(\", \").replace(\", and, \", \" and \");\n };\n return ClockTime;\n }(TimeQuantity_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ClockTime;\n function pluralize(value, label) {\n if (Math.abs(value) !== 1)\n label += \"s\";\n return label;\n }\n});\n","///\r\n///\r\n///\r\n///\r\n///\r\n///\r\n///\r\n///\r\n/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Originally based upon .NET source but with many additions and improvements.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport {areEqual,compare} from '../Compare';\r\nimport TimeQuantity from './TimeQuantity';\r\n\r\n\r\nexport default\r\nclass ClockTime extends TimeQuantity implements IClockTime\r\n{\r\n\r\n\tdays:number;\r\n\thour:number;\r\n\tminute:number;\r\n\tsecond:number;\r\n\tmillisecond:number;\r\n\ttick:number;\r\n\r\n\tconstructor(milliseconds:number);\r\n\tconstructor(hours:number, minutes:number, seconds?:number, milliseconds?:number);\r\n\tconstructor(...args:number[])\r\n\t{\r\n\t\tsuper(\r\n\t\t\targs.length>1\r\n\t\t\t\t? ClockTime.millisecondsFromTime(\r\n\t\t\t\targs[0] || 0,\r\n\t\t\t\targs[1] || 0,\r\n\t\t\t\targs.length>2 && args[2] || 0,\r\n\t\t\t\targs.length>3 && args[3] || 0\r\n\t\t\t)\r\n\t\t\t\t: (args.length>0 && args[0] || 0)\r\n\t\t);\r\n\r\n\t\tvar _ = this;\r\n\t\tvar ms = Math.abs(_.getTotalMilliseconds());\r\n\t\tvar msi = Math.floor(ms);\r\n\r\n\t\t_.tick = (ms - msi)*HowMany.Ticks.Per.Millisecond;\r\n\r\n\t\t_.days = (msi/HowMany.Milliseconds.Per.Day) | 0;\r\n\t\tmsi -= _.days * HowMany.Milliseconds.Per.Day;\r\n\r\n\t\t_.hour = (msi/HowMany.Milliseconds.Per.Hour) | 0;\r\n\t\tmsi -= _.hour * HowMany.Milliseconds.Per.Hour;\r\n\r\n\t\t_.minute = (msi/HowMany.Milliseconds.Per.Minute) | 0;\r\n\t\tmsi -= _.minute * HowMany.Milliseconds.Per.Minute;\r\n\r\n\t\t_.second = (msi/HowMany.Milliseconds.Per.Second) | 0;\r\n\t\tmsi -= _.second * HowMany.Milliseconds.Per.Second;\r\n\r\n\t\t_.millisecond = msi;\r\n\r\n\t\tObject.freeze(_);\r\n\t}\r\n\r\n\r\n\t// Static version for relative consistency. Constructor does allow this format.\r\n\tstatic from(hours:number, minutes:number, seconds:number = 0, milliseconds:number = 0):ClockTime\r\n\t{\r\n\t\treturn new ClockTime(hours, minutes, seconds, milliseconds);\r\n\t}\r\n\r\n\tstatic millisecondsFromTime(\r\n\t\thours:number,\r\n\t\tminutes:number,\r\n\t\tseconds:number = 0,\r\n\t\tmilliseconds:number = 0):number\r\n\t{\r\n\t\tvar value = hours;\r\n\t\tvalue *= HowMany.Minutes.Per.Hour;\r\n\t\tvalue += minutes;\r\n\t\tvalue *= HowMany.Seconds.Per.Minute;\r\n\t\tvalue += seconds;\r\n\t\tvalue *= HowMany.Milliseconds.Per.Second;\r\n\t\tvalue += milliseconds;\r\n\t\treturn value;\r\n\t}\r\n\r\n\ttoString(/*format?:string, formatProvider?:IFormatProvider*/):string\r\n\t{\r\n\t\t/* INSERT CUSTOM FORMATTING CODE HERE */\r\n\r\n\r\n\t\tvar _ = this, a:string[] = [];\r\n\r\n\t\tif(_.days)\r\n\t\t\ta.push(pluralize(_.days, \"day\"));\r\n\r\n\t\tif(_.hour)\r\n\t\t\ta.push(pluralize(_.hour, \"hour\"));\r\n\r\n\t\tif(_.minute)\r\n\t\t\ta.push(pluralize(_.minute, \"minute\"));\r\n\r\n\t\tif(_.second)\r\n\t\t\ta.push(pluralize(_.second, \"second\"));\r\n\r\n\t\tif(a.length>1)\r\n\t\t\ta.splice(a.length - 1, 0, \"and\");\r\n\r\n\t\treturn a.join(\", \").replace(\", and, \", \" and \");\r\n\t}\r\n\r\n}\r\n\r\n\r\n// Temporary until the full TimeSpanFormat is available.\r\nfunction pluralize(value:number, label:string):string\r\n{\r\n\tif(Math.abs(value)!==1)\r\n\t\tlabel += \"s\";\r\n\r\n\treturn label;\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Time/ClockTime.js","System/Time/ClockTime.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","TimeQuantity_1","pluralize","value","label","Math","abs","ClockTime","_super","args","_i","arguments","length","call","millisecondsFromTime","_","ms","getTotalMilliseconds","msi","floor","tick","days","hour","minute","second","millisecond","freeze","from","hours","minutes","seconds","milliseconds","toString","a","push","splice","join","replace","TimeQuantity","defineProperty"],"mappings":";;;;;AAKA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,kBAAmB,SAAUC,EAASC,EAASC,GACzE,YCoGJ,SAAAC,GAAmBC,EAAcC,GAKhC,MAHqB,KAAlBC,KAAKC,IAAIH,KACXC,GAAS,KAEHA,EAzGR,GAAAG,GAAA,SAAAC,GAYC,QAAAD,KDPW,ICOC,GAAAE,MAAAC,EAAA,EAAAA,EAAAC,UAAAC,OAAAF,IAAAD,EAAAC,EAAA,GAAAC,UAAAD,EAEXF,GAAAK,KAAAzB,KACCqB,EAAKG,OAAO,EACTL,EAAUO,qBACZL,EAAK,IAAM,EACXA,EAAK,IAAM,EACXA,EAAKG,OAAO,GAAKH,EAAK,IAAM,EAC5BA,EAAKG,OAAO,GAAKH,EAAK,IAAM,GAEzBA,EAAKG,OAAO,GAAKH,EAAK,IAAM,EAGjC,IAAIM,GAAI3B,KACJ4B,EAAKX,KAAKC,IAAIS,EAAEE,wBAChBC,EAAMb,KAAKc,MAAMH,EAErBD,GAAEK,KAAkB,KAAVJ,EAAKE,GAEfH,EAAEM,KAAQH,EAAI,MAAwB,EACtCA,GAAc,MAAPH,EAAEM,KAETN,EAAEO,KAAQJ,EAAI,KAAyB,EACvCA,GAAc,KAAPH,EAAEO,KAETP,EAAEQ,OAAUL,EAAI,IAA2B,EAC3CA,GAAgB,IAATH,EAAEQ,OAETR,EAAES,OAAUN,EAAI,IAA2B,EAC3CA,GAAgB,IAATH,EAAES,OAETT,EAAEU,YAAcP,EAEhBtB,OAAO8B,OAAOX,GAmDhB,MAhG+B5B,WAAAoB,EAAAC,GAkDvBD,EAAAoB,KAAP,SAAYC,EAAcC,EAAgBC,EAAoBC,GAE7D,MAFyC,UAAAD,IAAAA,EAAA,GAAoB,SAAAC,IAAAA,EAAA,GAEtD,GAAIxB,GAAUqB,EAAOC,EAASC,EAASC,IAGxCxB,EAAAO,qBAAP,SACCc,EACAC,EACAC,EACAC,GADA,SAAAD,IAAAA,EAAA,GACA,SAAAC,IAAAA,EAAA,EAEA,IAAI5B,GAAQyB,CAOZ,OANAzB,IAAS,GACTA,GAAS0B,EACT1B,GAAS,GACTA,GAAS2B,EACT3B,GAAS,IACTA,GAAS4B,GAIVxB,EAAAZ,UAAAqC,SAAA,WAKC,GAAIjB,GAAI3B,KAAM6C,IAiBd,OAfGlB,GAAEM,MACJY,EAAEC,KAAKhC,EAAUa,EAAEM,KAAM,QAEvBN,EAAEO,MACJW,EAAEC,KAAKhC,EAAUa,EAAEO,KAAM,SAEvBP,EAAEQ,QACJU,EAAEC,KAAKhC,EAAUa,EAAEQ,OAAQ,WAEzBR,EAAES,QACJS,EAAEC,KAAKhC,EAAUa,EAAES,OAAQ,WAEzBS,EAAErB,OAAO,GACXqB,EAAEE,OAAOF,EAAErB,OAAS,EAAG,EAAG,OAEpBqB,EAAEG,KAAK,MAAMC,QAAQ,UAAW,UAGzC9B,GAhG+BN,EAAAqC,aAAlBtC,GAAAO,UAASA,EA4GtBX,OAAA2C,eAAAvC,EAAA,cAAAG,OAAA,ID1CIH,EAAAA,WC0CWO","file":"System/Time/ClockTime.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Originally based upon .NET source but with many additions and improvements.\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"./TimeQuantity\"], function (require, exports, TimeQuantity_1) {\n \"use strict\";\n var ClockTime = (function (_super) {\n __extends(ClockTime, _super);\n function ClockTime() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i - 0] = arguments[_i];\n }\n _super.call(this, args.length > 1\n ? ClockTime.millisecondsFromTime(args[0] || 0, args[1] || 0, args.length > 2 && args[2] || 0, args.length > 3 && args[3] || 0)\n : (args.length > 0 && args[0] || 0));\n var _ = this;\n var ms = Math.abs(_.getTotalMilliseconds());\n var msi = Math.floor(ms);\n _.tick = (ms - msi) * 10000;\n _.days = (msi / 86400000) | 0;\n msi -= _.days * 86400000;\n _.hour = (msi / 3600000) | 0;\n msi -= _.hour * 3600000;\n _.minute = (msi / 60000) | 0;\n msi -= _.minute * 60000;\n _.second = (msi / 1000) | 0;\n msi -= _.second * 1000;\n _.millisecond = msi;\n Object.freeze(_);\n }\n ClockTime.from = function (hours, minutes, seconds, milliseconds) {\n if (seconds === void 0) { seconds = 0; }\n if (milliseconds === void 0) { milliseconds = 0; }\n return new ClockTime(hours, minutes, seconds, milliseconds);\n };\n ClockTime.millisecondsFromTime = function (hours, minutes, seconds, milliseconds) {\n if (seconds === void 0) { seconds = 0; }\n if (milliseconds === void 0) { milliseconds = 0; }\n var value = hours;\n value *= 60;\n value += minutes;\n value *= 60;\n value += seconds;\n value *= 1000;\n value += milliseconds;\n return value;\n };\n ClockTime.prototype.toString = function () {\n var _ = this, a = [];\n if (_.days)\n a.push(pluralize(_.days, \"day\"));\n if (_.hour)\n a.push(pluralize(_.hour, \"hour\"));\n if (_.minute)\n a.push(pluralize(_.minute, \"minute\"));\n if (_.second)\n a.push(pluralize(_.second, \"second\"));\n if (a.length > 1)\n a.splice(a.length - 1, 0, \"and\");\n return a.join(\", \").replace(\", and, \", \" and \");\n };\n return ClockTime;\n }(TimeQuantity_1.TimeQuantity));\n exports.ClockTime = ClockTime;\n function pluralize(value, label) {\n if (Math.abs(value) !== 1)\n label += \"s\";\n return label;\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ClockTime;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Originally based upon .NET source but with many additions and improvements.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {TimeQuantity} from \"./TimeQuantity\";\r\nimport {IClockTime} from \"./ITimeStamp\";\r\nimport {Minutes, Seconds, Milliseconds, Ticks} from \"./HowMany\";\r\n\r\n\r\nexport class ClockTime extends TimeQuantity implements IClockTime\r\n{\r\n\r\n\tdays:number;\r\n\thour:number;\r\n\tminute:number;\r\n\tsecond:number;\r\n\tmillisecond:number;\r\n\ttick:number;\r\n\r\n\tconstructor(milliseconds:number);\r\n\tconstructor(hours:number, minutes:number, seconds?:number, milliseconds?:number);\r\n\tconstructor(...args:number[])\r\n\t{\r\n\t\tsuper(\r\n\t\t\targs.length>1\r\n\t\t\t\t? ClockTime.millisecondsFromTime(\r\n\t\t\t\targs[0] || 0,\r\n\t\t\t\targs[1] || 0,\r\n\t\t\t\targs.length>2 && args[2] || 0,\r\n\t\t\t\targs.length>3 && args[3] || 0\r\n\t\t\t)\r\n\t\t\t\t: (args.length>0 && args[0] || 0)\r\n\t\t);\r\n\r\n\t\tvar _ = this;\r\n\t\tvar ms = Math.abs(_.getTotalMilliseconds());\r\n\t\tvar msi = Math.floor(ms);\r\n\r\n\t\t_.tick = (ms - msi)*Ticks.Per.Millisecond;\r\n\r\n\t\t_.days = (msi/Milliseconds.Per.Day) | 0;\r\n\t\tmsi -= _.days*Milliseconds.Per.Day;\r\n\r\n\t\t_.hour = (msi/Milliseconds.Per.Hour) | 0;\r\n\t\tmsi -= _.hour*Milliseconds.Per.Hour;\r\n\r\n\t\t_.minute = (msi/Milliseconds.Per.Minute) | 0;\r\n\t\tmsi -= _.minute*Milliseconds.Per.Minute;\r\n\r\n\t\t_.second = (msi/Milliseconds.Per.Second) | 0;\r\n\t\tmsi -= _.second*Milliseconds.Per.Second;\r\n\r\n\t\t_.millisecond = msi;\r\n\r\n\t\tObject.freeze(_);\r\n\t}\r\n\r\n\r\n\t// Static version for relative consistency. Constructor does allow this format.\r\n\tstatic from(hours:number, minutes:number, seconds:number = 0, milliseconds:number = 0):ClockTime\r\n\t{\r\n\t\treturn new ClockTime(hours, minutes, seconds, milliseconds);\r\n\t}\r\n\r\n\tstatic millisecondsFromTime(\r\n\t\thours:number,\r\n\t\tminutes:number,\r\n\t\tseconds:number = 0,\r\n\t\tmilliseconds:number = 0):number\r\n\t{\r\n\t\tvar value = hours;\r\n\t\tvalue *= Minutes.Per.Hour;\r\n\t\tvalue += minutes;\r\n\t\tvalue *= Seconds.Per.Minute;\r\n\t\tvalue += seconds;\r\n\t\tvalue *= Milliseconds.Per.Second;\r\n\t\tvalue += milliseconds;\r\n\t\treturn value;\r\n\t}\r\n\r\n\ttoString(/*format?:string, formatProvider?:IFormatProvider*/):string\r\n\t{\r\n\t\t/* INSERT CUSTOM FORMATTING CODE HERE */\r\n\r\n\r\n\t\tvar _ = this, a:string[] = [];\r\n\r\n\t\tif(_.days)\r\n\t\t\ta.push(pluralize(_.days, \"day\"));\r\n\r\n\t\tif(_.hour)\r\n\t\t\ta.push(pluralize(_.hour, \"hour\"));\r\n\r\n\t\tif(_.minute)\r\n\t\t\ta.push(pluralize(_.minute, \"minute\"));\r\n\r\n\t\tif(_.second)\r\n\t\t\ta.push(pluralize(_.second, \"second\"));\r\n\r\n\t\tif(a.length>1)\r\n\t\t\ta.splice(a.length - 1, 0, \"and\");\r\n\r\n\t\treturn a.join(\", \").replace(\", and, \", \" and \");\r\n\t}\r\n\r\n}\r\n\r\n\r\n// Temporary until the full TimeSpanFormat is available.\r\nfunction pluralize(value:number, label:string):string\r\n{\r\n\tif(Math.abs(value)!==1)\r\n\t\tlabel += \"s\";\r\n\r\n\treturn label;\r\n}\r\n\r\nexport default ClockTime;"]} \ No newline at end of file diff --git a/dist/amd/System/Time/DateTime.d.ts b/dist/amd/System/Time/DateTime.d.ts index b57db2b9..dd375441 100644 --- a/dist/amd/System/Time/DateTime.d.ts +++ b/dist/amd/System/Time/DateTime.d.ts @@ -1,16 +1,15 @@ -/// -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Based on .NET DateTime's interface. * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import ClockTime from './ClockTime'; -import TimeSpan from './TimeSpan'; -declare class DateTime implements ICalendarDate, IDateTime { +import { ICalendarDate, ITimeStamp } from "./ITimeStamp"; +import { TimeSpan } from "./TimeSpan"; +import { ClockTime } from "./ClockTime"; +import { IDateTime } from "./IDateTime"; +import { Gregorian } from "./Calendars"; +import { ITimeQuantity } from "./ITimeQuantity"; +export declare class DateTime implements ICalendarDate, IDateTime { private _value; toJsDate(): Date; private _setJsDate(value); @@ -47,7 +46,7 @@ declare class DateTime implements ICalendarDate, IDateTime { static isLeapYear(year: number): boolean; static daysInMonth(year: number, month: Gregorian.Month): number; } -declare module DateTime { +export declare module DateTime { const enum Kind { Unspecified = 0, Local = 1, diff --git a/dist/amd/System/Time/DateTime.js b/dist/amd/System/Time/DateTime.js index 922bd8a8..3ed353b3 100644 --- a/dist/amd/System/Time/DateTime.js +++ b/dist/amd/System/Time/DateTime.js @@ -3,5 +3,5 @@ * Based on .NET DateTime's interface. * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -define(["require","exports","./ClockTime","./TimeSpan","./TimeStamp"],function(e,t,n,r,o){"use strict";var i=function(){function e(t,n){void 0===t&&(t=new Date),void 0===n&&(n=1);var r=this;r._kind=n,t instanceof e?r._value=t.toJsDate():t instanceof Date?r._setJsDate(t):r._value=void 0===t?new Date:new Date(t)}return e.prototype.toJsDate=function(){return new Date(this._value.getTime())},e.prototype._setJsDate=function(e){this._time=null,this._value=new Date(e.getTime())},Object.defineProperty(e.prototype,"kind",{get:function(){return this._kind},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"year",{get:function(){return this._value.getFullYear()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"month",{get:function(){return this._value.getMonth()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"day",{get:function(){return this._value.getDate()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dayOfWeek",{get:function(){return this._value.getDay()},enumerable:!0,configurable:!0}),e.prototype.addMilliseconds=function(t){return t=t||0,new e(this._value.getTime()+t,this._kind)},e.prototype.addSeconds=function(e){return e=e||0,this.addMilliseconds(1e3*e)},e.prototype.addMinutes=function(e){return e=e||0,this.addMilliseconds(6e4*e)},e.prototype.addHours=function(e){return e=e||0,this.addMilliseconds(36e5*e)},e.prototype.addDays=function(e){return e=e||0,this.addMilliseconds(864e5*e)},e.prototype.addMonths=function(t){t=t||0;var n=this.toJsDate();return n.setMonth(n.getMonth()+t),new e(n,this._kind)},e.prototype.addYears=function(t){t=t||0;var n=this.toJsDate();return n.setFullYear(n.getFullYear()+t),new e(n,this._kind)},e.prototype.add=function(e){return this.addMilliseconds(e.getTotalMilliseconds())},e.prototype.subtract=function(e){return this.addMilliseconds(-e.getTotalMilliseconds())},e.prototype.timePassedSince=function(t){return e.between(t,this)},Object.defineProperty(e.prototype,"date",{get:function(){var t=this;return new e(new Date(t.year,t.month,t.day),t._kind)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"timeOfDay",{get:function(){var e=this,t=e._time;if(!t){var r=this._value;e._time=t=new n["default"](r.getHours(),r.getMinutes(),r.getSeconds(),r.getMilliseconds())}return t},enumerable:!0,configurable:!0}),e.prototype.toTimeStamp=function(){return o["default"].from(this)},Object.defineProperty(e,"now",{get:function(){return new e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"toUniversalTime",{get:function(){var t=this;if(1!=t._kind)return new e(t,t._kind);var n=t._value;return new e(new Date(n.getUTCFullYear(),n.getUTCMonth(),n.getUTCDate(),n.getUTCHours(),n.getUTCMinutes(),n.getUTCSeconds(),n.getUTCMilliseconds()),2)},enumerable:!0,configurable:!0}),Object.defineProperty(e,"today",{get:function(){return e.now.date},enumerable:!0,configurable:!0}),Object.defineProperty(e,"tomorrow",{get:function(){var t=e.today;return t.addDays(1)},enumerable:!0,configurable:!0}),e.between=function(t,n){var o=t instanceof e?t._value:t,i=n instanceof e?n._value:n;return new r["default"](o.getTime()-i.getTime())},e.isLeapYear=function(e){return e%4==0&&e%100!=0||e%400==0},e.daysInMonth=function(e,t){return new Date(e,t+1,0).getDate()},e}();Object.freeze(i),Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=i}); +define(["require","exports","./TimeSpan","./ClockTime","./TimeStamp"],function(e,t,n,r,i){"use strict";var o=function(){function e(t,n){void 0===t&&(t=new Date),void 0===n&&(n=1);var r=this;r._kind=n,t instanceof e?r._value=t.toJsDate():t instanceof Date?r._setJsDate(t):r._value=void 0===t?new Date:new Date(t)}return e.prototype.toJsDate=function(){return new Date(this._value.getTime())},e.prototype._setJsDate=function(e){this._time=null,this._value=new Date(e.getTime())},Object.defineProperty(e.prototype,"kind",{get:function(){return this._kind},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"year",{get:function(){return this._value.getFullYear()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"month",{get:function(){return this._value.getMonth()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"day",{get:function(){return this._value.getDate()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dayOfWeek",{get:function(){return this._value.getDay()},enumerable:!0,configurable:!0}),e.prototype.addMilliseconds=function(t){return t=t||0,new e(this._value.getTime()+t,this._kind)},e.prototype.addSeconds=function(e){return e=e||0,this.addMilliseconds(1e3*e)},e.prototype.addMinutes=function(e){return e=e||0,this.addMilliseconds(6e4*e)},e.prototype.addHours=function(e){return e=e||0,this.addMilliseconds(36e5*e)},e.prototype.addDays=function(e){return e=e||0,this.addMilliseconds(864e5*e)},e.prototype.addMonths=function(t){t=t||0;var n=this.toJsDate();return n.setMonth(n.getMonth()+t),new e(n,this._kind)},e.prototype.addYears=function(t){t=t||0;var n=this.toJsDate();return n.setFullYear(n.getFullYear()+t),new e(n,this._kind)},e.prototype.add=function(e){return this.addMilliseconds(e.getTotalMilliseconds())},e.prototype.subtract=function(e){return this.addMilliseconds(-e.getTotalMilliseconds())},e.prototype.timePassedSince=function(t){return e.between(t,this)},Object.defineProperty(e.prototype,"date",{get:function(){var t=this;return new e(new Date(t.year,t.month,t.day),t._kind)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"timeOfDay",{get:function(){var e=this,t=e._time;if(!t){var n=this._value;e._time=t=new r.ClockTime(n.getHours(),n.getMinutes(),n.getSeconds(),n.getMilliseconds())}return t},enumerable:!0,configurable:!0}),e.prototype.toTimeStamp=function(){return i.TimeStamp.from(this)},Object.defineProperty(e,"now",{get:function(){return new e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"toUniversalTime",{get:function(){var t=this;if(1!=t._kind)return new e(t,t._kind);var n=t._value;return new e(new Date(n.getUTCFullYear(),n.getUTCMonth(),n.getUTCDate(),n.getUTCHours(),n.getUTCMinutes(),n.getUTCSeconds(),n.getUTCMilliseconds()),2)},enumerable:!0,configurable:!0}),Object.defineProperty(e,"today",{get:function(){return e.now.date},enumerable:!0,configurable:!0}),Object.defineProperty(e,"tomorrow",{get:function(){var t=e.today;return t.addDays(1)},enumerable:!0,configurable:!0}),e.between=function(t,r){var i=t instanceof e?t._value:t,o=r instanceof e?r._value:r;return new n.TimeSpan(i.getTime()-o.getTime())},e.isLeapYear=function(e){return e%4==0&&e%100!=0||e%400==0},e.daysInMonth=function(e,t){return new Date(e,t+1,0).getDate()},e}();t.DateTime=o,Object.freeze(o),Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=o}); //# sourceMappingURL=DateTime.js.map diff --git a/dist/amd/System/Time/DateTime.js.map b/dist/amd/System/Time/DateTime.js.map index 4136558a..e3dd4241 100644 --- a/dist/amd/System/Time/DateTime.js.map +++ b/dist/amd/System/Time/DateTime.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Time/DateTime.js","System/Time/DateTime.ts"],"names":["define","require","exports","ClockTime_1","TimeSpan_1","TimeStamp_1","DateTime","value","kind","Date","_","this","_kind","_value","toJsDate","_setJsDate","prototype","getTime","_time","Object","defineProperty","get","enumerable","configurable","getFullYear","getMonth","getDate","getDay","addMilliseconds","ms","addSeconds","seconds","addMinutes","minutes","addHours","hours","addDays","days","addMonths","months","d","setMonth","addYears","years","setFullYear","add","time","getTotalMilliseconds","subtract","timePassedSince","previous","between","year","month","day","t","getHours","getMinutes","getSeconds","getMilliseconds","toTimeStamp","from","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","now","date","today","first","last","f","l","isLeapYear","daysInMonth","freeze"],"mappings":"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","file":"System/Time/DateTime.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based on .NET DateTime's interface.\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\", './ClockTime', './TimeSpan', './TimeStamp'], function (require, exports, ClockTime_1, TimeSpan_1, TimeStamp_1) {\n 'use strict';\n var DateTime = (function () {\n function DateTime(value, kind) {\n if (value === void 0) { value = new Date(); }\n if (kind === void 0) { kind = 1; }\n var _ = this;\n _._kind = kind;\n if (value instanceof DateTime)\n _._value = value.toJsDate();\n else if (value instanceof Date)\n _._setJsDate(value);\n else\n _._value = value === void (0)\n ? new Date()\n : new Date(value);\n }\n DateTime.prototype.toJsDate = function () {\n return new Date(this._value.getTime());\n };\n DateTime.prototype._setJsDate = function (value) {\n this._time = null;\n this._value = new Date(value.getTime());\n };\n Object.defineProperty(DateTime.prototype, \"kind\", {\n get: function () {\n return this._kind;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTime.prototype, \"year\", {\n get: function () {\n return this._value.getFullYear();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTime.prototype, \"month\", {\n get: function () {\n return this._value.getMonth();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTime.prototype, \"day\", {\n get: function () {\n return this._value.getDate();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTime.prototype, \"dayOfWeek\", {\n get: function () {\n return this._value.getDay();\n },\n enumerable: true,\n configurable: true\n });\n DateTime.prototype.addMilliseconds = function (ms) {\n ms = ms || 0;\n return new DateTime(this._value.getTime() + ms, this._kind);\n };\n DateTime.prototype.addSeconds = function (seconds) {\n seconds = seconds || 0;\n return this.addMilliseconds(seconds * 1000);\n };\n DateTime.prototype.addMinutes = function (minutes) {\n minutes = minutes || 0;\n return this.addMilliseconds(minutes * 60000);\n };\n DateTime.prototype.addHours = function (hours) {\n hours = hours || 0;\n return this.addMilliseconds(hours * 3600000);\n };\n DateTime.prototype.addDays = function (days) {\n days = days || 0;\n return this.addMilliseconds(days * 86400000);\n };\n DateTime.prototype.addMonths = function (months) {\n months = months || 0;\n var d = this.toJsDate();\n d.setMonth(d.getMonth() + months);\n return new DateTime(d, this._kind);\n };\n DateTime.prototype.addYears = function (years) {\n years = years || 0;\n var d = this.toJsDate();\n d.setFullYear(d.getFullYear() + years);\n return new DateTime(d, this._kind);\n };\n DateTime.prototype.add = function (time) {\n return this.addMilliseconds(time.getTotalMilliseconds());\n };\n DateTime.prototype.subtract = function (time) {\n return this.addMilliseconds(-time.getTotalMilliseconds());\n };\n DateTime.prototype.timePassedSince = function (previous) {\n return DateTime.between(previous, this);\n };\n Object.defineProperty(DateTime.prototype, \"date\", {\n get: function () {\n var _ = this;\n return new DateTime(new Date(_.year, _.month, _.day), _._kind);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTime.prototype, \"timeOfDay\", {\n get: function () {\n var _ = this, t = _._time;\n if (!t) {\n var d = this._value;\n _._time = t = new ClockTime_1.default(d.getHours(), d.getMinutes(), d.getSeconds(), d.getMilliseconds());\n }\n return t;\n },\n enumerable: true,\n configurable: true\n });\n DateTime.prototype.toTimeStamp = function () {\n return TimeStamp_1.default.from(this);\n };\n Object.defineProperty(DateTime, \"now\", {\n get: function () {\n return new DateTime();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTime.prototype, \"toUniversalTime\", {\n get: function () {\n var _ = this;\n if (_._kind != 1)\n return new DateTime(_, _._kind);\n var d = _._value;\n return new DateTime(new Date(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate(), d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds(), d.getUTCMilliseconds()), 2);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTime, \"today\", {\n get: function () {\n return DateTime.now.date;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTime, \"tomorrow\", {\n get: function () {\n var today = DateTime.today;\n return today.addDays(1);\n },\n enumerable: true,\n configurable: true\n });\n DateTime.between = function (first, last) {\n var f = first instanceof DateTime ? first._value : first, l = last instanceof DateTime ? last._value : last;\n return new TimeSpan_1.default(f.getTime() - l.getTime());\n };\n DateTime.isLeapYear = function (year) {\n return ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);\n };\n DateTime.daysInMonth = function (year, month) {\n return (new Date(year, month + 1, 0)).getDate();\n };\n return DateTime;\n }());\n Object.freeze(DateTime);\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = DateTime;\n});\n","///\r\n///\r\n///\r\n///\r\n///\r\n/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based on .NET DateTime's interface.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport Type from '../Types';\r\nimport ClockTime from './ClockTime';\r\nimport TimeSpan from './TimeSpan';\r\nimport TimeStamp from './TimeStamp';\r\n\r\n\r\nclass DateTime implements ICalendarDate, IDateTime\r\n{\r\n\tprivate _value:Date;\r\n\r\n\ttoJsDate():Date\r\n\t{\r\n\t\treturn new Date(this._value.getTime()); // return a clone.\r\n\t}\r\n\r\n\tprivate _setJsDate(value:Date)\r\n\t{\r\n\t\tthis._time = null;\r\n\t\tthis._value = new Date(value.getTime());\r\n\t}\r\n\r\n\tconstructor();\r\n\tconstructor(dateString:string, kind?:DateTime.Kind);\r\n\tconstructor(milliseconds:number, kind?:DateTime.Kind);\r\n\tconstructor(source:Date, kind?:DateTime.Kind);\r\n\tconstructor(source:DateTime, kind?:DateTime.Kind);\r\n\tconstructor(value:any = new Date(), kind:DateTime.Kind = DateTime.Kind.Local)\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_._kind = kind;\r\n\t\tif(value instanceof DateTime)\r\n\t\t\t_._value = value.toJsDate();\r\n\t\telse if(value instanceof Date)\r\n\t\t\t_._setJsDate(value);\r\n\t\telse\r\n\t\t\t_._value = value===void(0)\r\n\t\t\t\t? new Date()\r\n\t\t\t\t: new Date(value);\r\n\t}\r\n\r\n\tprivate _kind:DateTime.Kind;\r\n\tget kind():DateTime.Kind\r\n\t{\r\n\t\treturn this._kind;\r\n\t}\r\n\r\n\tget year():number\r\n\t{\r\n\t\treturn this._value.getFullYear();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the Gregorian Month (zero indexed).\r\n\t * @returns {number}\r\n\t */\r\n\tget month():Gregorian.Month\r\n\t{\r\n\t\treturn this._value.getMonth();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the day of the month. An integer between 1 and 31.\r\n\t * @returns {number}\r\n\t */\r\n\tget day():number\r\n\t{\r\n\t\treturn this._value.getDate();\r\n\t}\r\n\r\n\tget dayOfWeek():Gregorian.DayOfWeek\r\n\t{\r\n\t\treturn this._value.getDay();\r\n\t}\r\n\r\n\r\n\taddMilliseconds(ms:number):DateTime\r\n\t{\r\n\t\tms = ms || 0;\r\n\t\treturn new DateTime(this._value.getTime() + ms, this._kind);\r\n\t}\r\n\r\n\taddSeconds(seconds:number):DateTime\r\n\t{\r\n\t\tseconds = seconds || 0;\r\n\t\treturn this.addMilliseconds(seconds*HowMany.Milliseconds.Per.Second);\r\n\t}\r\n\r\n\taddMinutes(minutes:number):DateTime\r\n\t{\r\n\t\tminutes = minutes || 0;\r\n\t\treturn this.addMilliseconds(minutes*HowMany.Milliseconds.Per.Minute);\r\n\t}\r\n\r\n\taddHours(hours:number):DateTime\r\n\t{\r\n\t\thours = hours || 0;\r\n\t\treturn this.addMilliseconds(hours*HowMany.Milliseconds.Per.Hour);\r\n\t}\r\n\r\n\taddDays(days:number):DateTime\r\n\t{\r\n\t\tdays = days || 0;\r\n\t\treturn this.addMilliseconds(days*HowMany.Milliseconds.Per.Day);\r\n\t}\r\n\r\n\taddMonths(months:number):DateTime\r\n\t{\r\n\t\tmonths = months || 0;\r\n\t\tvar d = this.toJsDate();\r\n\t\td.setMonth(d.getMonth()+months);\r\n\t\treturn new DateTime(d, this._kind);\r\n\t}\r\n\r\n\taddYears(years:number):DateTime\r\n\t{\r\n\t\tyears = years || 0;\r\n\t\tvar d = this.toJsDate();\r\n\t\td.setFullYear(d.getFullYear()+years);\r\n\t\treturn new DateTime(d, this._kind);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Receives an ITimeQuantity value and adds based on the total milliseconds.\r\n\t * @param {ITimeQuantity} time\r\n\t * @returns {DateTime}\r\n\t */\r\n\tadd(time:ITimeQuantity):DateTime\r\n\t{\r\n\t\treturn this.addMilliseconds(time.getTotalMilliseconds());\r\n\t}\r\n\r\n\t/**\r\n\t * Receives an ITimeQuantity value and subtracts based on the total milliseconds.\r\n\t * @param {ITimeQuantity} time\r\n\t * @returns {DateTime}\r\n\t */\r\n\tsubtract(time:ITimeQuantity):DateTime\r\n\t{\r\n\t\treturn this.addMilliseconds(-time.getTotalMilliseconds());\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a TimeSpan representing the amount of time between two dates.\r\n\t * @param previous\r\n\t * @returns {TimeSpan}\r\n\t */\r\n\ttimePassedSince(previous:Date|DateTime):TimeSpan\r\n\t{\r\n\t\treturn DateTime.between(previous, this);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a DateTime object for 00:00 of this date.\r\n\t */\r\n\tget date():DateTime\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn new DateTime(\r\n\t\t\tnew Date(\r\n\t\t\t\t_.year,\r\n\t\t\t\t_.month,\r\n\t\t\t\t_.day\r\n\t\t\t)\r\n\t\t\t, _._kind\r\n\t\t);\r\n\t}\r\n\r\n\tprivate _time:ClockTime;\r\n\r\n\t/**\r\n\t * Returns the time of day represented by a ClockTime object.\r\n\t * @returns {ClockTime}\r\n\t */\r\n\tget timeOfDay():ClockTime\r\n\t{\r\n\t\tvar _ = this, t = _._time;\r\n\t\tif(!t)\r\n\t\t{\r\n\t\t\tvar d = this._value;\r\n\t\t\t_._time = t = new ClockTime(\r\n\t\t\t\td.getHours(),\r\n\t\t\t\td.getMinutes(),\r\n\t\t\t\td.getSeconds(),\r\n\t\t\t\td.getMilliseconds());\r\n\t\t}\r\n\t\treturn t;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a readonly object which contains all the date and time components.\r\n\t */\r\n\ttoTimeStamp():ITimeStamp {\r\n\t\treturn TimeStamp.from(this);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the now local time.\r\n\t * @returns {DateTime}\r\n\t */\r\n\tstatic get now():DateTime\r\n\t{\r\n\t\treturn new DateTime();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a UTC version of this date if its kind is local.\r\n\t * @returns {DateTime}\r\n\t */\r\n\tget toUniversalTime():DateTime\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(_._kind!=DateTime.Kind.Local)\r\n\t\t\treturn new DateTime(_, _._kind);\r\n\r\n\t\tvar d = _._value;\r\n\t\treturn new DateTime(\r\n\t\t\tnew Date(\r\n\t\t\t\td.getUTCFullYear(),\r\n\t\t\t\td.getUTCMonth(),\r\n\t\t\t\td.getUTCDate(),\r\n\t\t\t\td.getUTCHours(),\r\n\t\t\t\td.getUTCMinutes(),\r\n\t\t\t\td.getUTCSeconds(),\r\n\t\t\t\td.getUTCMilliseconds()\r\n\t\t\t),\r\n\t\t\tDateTime.Kind.Utc\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * The date component for now.\r\n\t * @returns {DateTime}\r\n\t */\r\n\tstatic get today():DateTime\r\n\t{\r\n\t\treturn DateTime.now.date;\r\n\t}\r\n\r\n\t/**\r\n\t * Midnight tomorrow.\r\n\t * @returns {DateTime}\r\n\t */\r\n\tstatic get tomorrow():DateTime\r\n\t{\r\n\t\tvar today:DateTime = DateTime.today;\r\n\t\treturn today.addDays(1);\r\n\t}\r\n\r\n\t/**\r\n\t * Measures the difference between two dates as a TimeSpan.\r\n\t * @param first\r\n\t * @param last\r\n\t */\r\n\tstatic between(first:Date|DateTime, last:Date|DateTime):TimeSpan\r\n\t{\r\n\t\tvar f:Date = first instanceof DateTime ? first._value : first,\r\n\t\t l:Date = last instanceof DateTime ? last._value : last;\r\n\r\n\t\treturn new TimeSpan(f.getTime() - l.getTime());\r\n\t}\r\n\r\n\t/**\r\n\t * Calculates if the given year is a leap year using the formula:\r\n\t * ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)\r\n\t * @param year\r\n\t * @returns {boolean}\r\n\t */\r\n\tstatic isLeapYear(year:number):boolean {\r\n\t\treturn ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the number of days for the specific year and month.\r\n\t * @param year\r\n\t * @param month\r\n\t * @returns {any}\r\n\t */\r\n\tstatic daysInMonth(year:number, month:Gregorian.Month):number {\r\n\t\t// Basically, add 1 month, subtract a day... What's the date?\r\n\t\treturn (new Date(year,month+1,0)).getDate();\r\n\t}\r\n\r\n\r\n}\r\n\r\n// Extend DateTime's usefulness.\r\nmodule DateTime\r\n{\r\n\texport const enum Kind {\r\n\t\tUnspecified,\r\n\t\tLocal,\r\n\t\tUtc,\r\n\t}\r\n}\r\n\r\nObject.freeze(DateTime);\r\n\r\nexport default DateTime;\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Time/DateTime.js","System/Time/DateTime.ts"],"names":["define","require","exports","TimeSpan_1","ClockTime_1","TimeStamp_1","DateTime","value","kind","Date","_","this","_kind","_value","toJsDate","_setJsDate","prototype","getTime","_time","Object","defineProperty","get","enumerable","configurable","getFullYear","getMonth","getDate","getDay","addMilliseconds","ms","addSeconds","seconds","addMinutes","minutes","addHours","hours","addDays","days","addMonths","months","d","setMonth","addYears","years","setFullYear","add","time","getTotalMilliseconds","subtract","timePassedSince","previous","between","year","month","day","t","ClockTime","getHours","getMinutes","getSeconds","getMilliseconds","toTimeStamp","TimeStamp","from","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","now","date","today","first","last","f","l","TimeSpan","isLeapYear","daysInMonth","freeze"],"mappings":";;;;;AAKAA,QAAQ,UAAW,UAAW,aAAc,cAAe,eAAgB,SAAUC,EAASC,EAASC,EAAYC,EAAaC,GAC5H,YCUJ,IAAAC,GAAA,WAoBC,QAAAA,GAAYC,EAAwBC,GAAxB,SAAAD,IAAAA,EAAA,GAAgBE,OAAQ,SAAAD,IAAAA,EAAA,EAEnC,IAAIE,GAAIC,IACRD,GAAEE,MAAQJ,EACPD,YAAiBD,GACnBI,EAAEG,OAASN,EAAMO,WACVP,YAAiBE,MACxBC,EAAEK,WAAWR,GAEbG,EAAEG,OAAkB,SAATN,EACR,GAAIE,MACJ,GAAIA,MAAKF,GA0Pf,MArRCD,GAAAU,UAAAF,SAAA,WAEC,MAAO,IAAIL,MAAKE,KAAKE,OAAOI,YAGrBX,EAAAU,UAAAD,WAAR,SAAmBR,GAElBI,KAAKO,MAAQ,KACbP,KAAKE,OAAS,GAAIJ,MAAKF,EAAMU,YAuB9BE,OAAAC,eAAId,EAAAU,UAAA,QDrBOK,ICqBX,WAEC,MAAOV,MAAKC,ODpBFU,YAAY,EACZC,cAAc,ICsBzBJ,OAAAC,eAAId,EAAAU,UAAA,QDnBOK,ICmBX,WAEC,MAAOV,MAAKE,OAAOW,eDlBTF,YAAY,EACZC,cAAc,ICwBzBJ,OAAAC,eAAId,EAAAU,UAAA,SDrBOK,ICqBX,WAEC,MAAOV,MAAKE,OAAOY,YDpBTH,YAAY,EACZC,cAAc,IC0BzBJ,OAAAC,eAAId,EAAAU,UAAA,ODvBOK,ICuBX,WAEC,MAAOV,MAAKE,OAAOa,WDtBTJ,YAAY,EACZC,cAAc,ICwBzBJ,OAAAC,eAAId,EAAAU,UAAA,aDrBOK,ICqBX,WAEC,MAAOV,MAAKE,OAAOc,UDpBTL,YAAY,EACZC,cAAc,ICuBzBjB,EAAAU,UAAAY,gBAAA,SAAgBC,GAGf,MADAA,GAAKA,GAAM,EACJ,GAAIvB,GAASK,KAAKE,OAAOI,UAAYY,EAAIlB,KAAKC,QAGtDN,EAAAU,UAAAc,WAAA,SAAWC,GAGV,MADAA,GAAUA,GAAW,EACdpB,KAAKiB,gBAAwB,IAARG,IAG7BzB,EAAAU,UAAAgB,WAAA,SAAWC,GAGV,MADAA,GAAUA,GAAW,EACdtB,KAAKiB,gBAAwB,IAARK,IAG7B3B,EAAAU,UAAAkB,SAAA,SAASC,GAGR,MADAA,GAAQA,GAAS,EACVxB,KAAKiB,gBAAsB,KAANO,IAG7B7B,EAAAU,UAAAoB,QAAA,SAAQC,GAGP,MADAA,GAAOA,GAAQ,EACR1B,KAAKiB,gBAAqB,MAALS,IAG7B/B,EAAAU,UAAAsB,UAAA,SAAUC,GAETA,EAASA,GAAU,CACnB,IAAIC,GAAI7B,KAAKG,UAEb,OADA0B,GAAEC,SAASD,EAAEf,WAAac,GACnB,GAAIjC,GAASkC,EAAG7B,KAAKC,QAG7BN,EAAAU,UAAA0B,SAAA,SAASC,GAERA,EAAQA,GAAS,CACjB,IAAIH,GAAI7B,KAAKG,UAEb,OADA0B,GAAEI,YAAYJ,EAAEhB,cAAgBmB,GACzB,GAAIrC,GAASkC,EAAG7B,KAAKC,QAS7BN,EAAAU,UAAA6B,IAAA,SAAIC,GAEH,MAAOnC,MAAKiB,gBAAgBkB,EAAKC,yBAQlCzC,EAAAU,UAAAgC,SAAA,SAASF,GAER,MAAOnC,MAAKiB,iBAAiBkB,EAAKC,yBAQnCzC,EAAAU,UAAAiC,gBAAA,SAAgBC,GAEf,MAAO5C,GAAS6C,QAAQD,EAAUvC,OAMnCQ,OAAAC,eAAId,EAAAU,UAAA,QD3DOK,IC2DX,WAEC,GAAIX,GAAIC,IACR,OAAO,IAAIL,GACV,GAAIG,MACHC,EAAE0C,KACF1C,EAAE2C,MACF3C,EAAE4C,KAED5C,EAAEE,QDhEKU,YAAY,EACZC,cAAc,ICyEzBJ,OAAAC,eAAId,EAAAU,UAAA,aDtEOK,ICsEX,WAEC,GAAIX,GAAIC,KAAM4C,EAAI7C,EAAEQ,KACpB,KAAIqC,EACJ,CACC,GAAIf,GAAI7B,KAAKE,MACbH,GAAEQ,MAAQqC,EAAI,GAAInD,GAAAoD,UACjBhB,EAAEiB,WACFjB,EAAEkB,aACFlB,EAAEmB,aACFnB,EAAEoB,mBAEJ,MAAOL,ID1EGjC,YAAY,EACZC,cAAc,IC+EzBjB,EAAAU,UAAA6C,YAAA,WAEC,MAAOxD,GAAAyD,UAAUC,KAAKpD,OAOvBQ,OAAAC,eAAWd,EAAA,ODlFAe,ICkFX,WAEC,MAAO,IAAIf,IDjFDgB,YAAY,EACZC,cAAc,ICuFzBJ,OAAAC,eAAId,EAAAU,UAAA,mBDpFOK,ICoFX,WAEC,GAAIX,GAAIC,IACR,IAAY,GAATD,EAAEE,MACJ,MAAO,IAAIN,GAASI,EAAGA,EAAEE,MAE1B,IAAI4B,GAAI9B,EAAEG,MACV,OAAO,IAAIP,GACV,GAAIG,MACH+B,EAAEwB,iBACFxB,EAAEyB,cACFzB,EAAE0B,aACF1B,EAAE2B,cACF3B,EAAE4B,gBACF5B,EAAE6B,gBACF7B,EAAE8B,sBAEH,ID9FShD,YAAY,EACZC,cAAc,ICqGzBJ,OAAAC,eAAWd,EAAA,SDlGAe,ICkGX,WAEC,MAAOf,GAASiE,IAAIC,MDjGVlD,YAAY,EACZC,cAAc,ICuGzBJ,OAAAC,eAAWd,EAAA,YDpGAe,ICoGX,WAEC,GAAIoD,GAAiBnE,EAASmE,KAC9B,OAAOA,GAAMrC,QAAQ,IDnGXd,YAAY,EACZC,cAAc,IC0GlBjB,EAAA6C,QAAP,SAAeuB,EAAqBC,GAEnC,GAAIC,GAASF,YAAiBpE,GAAWoE,EAAM7D,OAAe6D,EAC1DG,EAASF,YAAgBrE,GAAWqE,EAAK9D,OAAe8D,CAE5D,OAAO,IAAIxE,GAAA2E,SAASF,EAAE3D,UAAY4D,EAAE5D,YAS9BX,EAAAyE,WAAP,SAAkB3B,GAEjB,MAASA,GAAK,GAAG,GAAOA,EAAK,KAAK,GAAQA,EAAK,KAAK,GAS9C9C,EAAA0E,YAAP,SAAmB5B,EAAaC,GAG/B,MAAO,IAAK5C,MAAK2C,EAAMC,EAAQ,EAAG,GAAI3B,WAIxCpB,IAzRaJ,GAAAI,SAAQA,EAqSrBa,OAAO8D,OAAO3E,GAEda,OAAAC,eAAAlB,EAAA,cAAAK,OAAA,IDvIIL,EAAAA,WCuIWI","file":"System/Time/DateTime.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based on .NET DateTime's interface.\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\", \"./TimeSpan\", \"./ClockTime\", \"./TimeStamp\"], function (require, exports, TimeSpan_1, ClockTime_1, TimeStamp_1) {\n \"use strict\";\n var DateTime = (function () {\n function DateTime(value, kind) {\n if (value === void 0) { value = new Date(); }\n if (kind === void 0) { kind = 1; }\n var _ = this;\n _._kind = kind;\n if (value instanceof DateTime)\n _._value = value.toJsDate();\n else if (value instanceof Date)\n _._setJsDate(value);\n else\n _._value = value === void (0)\n ? new Date()\n : new Date(value);\n }\n DateTime.prototype.toJsDate = function () {\n return new Date(this._value.getTime());\n };\n DateTime.prototype._setJsDate = function (value) {\n this._time = null;\n this._value = new Date(value.getTime());\n };\n Object.defineProperty(DateTime.prototype, \"kind\", {\n get: function () {\n return this._kind;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTime.prototype, \"year\", {\n get: function () {\n return this._value.getFullYear();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTime.prototype, \"month\", {\n get: function () {\n return this._value.getMonth();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTime.prototype, \"day\", {\n get: function () {\n return this._value.getDate();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTime.prototype, \"dayOfWeek\", {\n get: function () {\n return this._value.getDay();\n },\n enumerable: true,\n configurable: true\n });\n DateTime.prototype.addMilliseconds = function (ms) {\n ms = ms || 0;\n return new DateTime(this._value.getTime() + ms, this._kind);\n };\n DateTime.prototype.addSeconds = function (seconds) {\n seconds = seconds || 0;\n return this.addMilliseconds(seconds * 1000);\n };\n DateTime.prototype.addMinutes = function (minutes) {\n minutes = minutes || 0;\n return this.addMilliseconds(minutes * 60000);\n };\n DateTime.prototype.addHours = function (hours) {\n hours = hours || 0;\n return this.addMilliseconds(hours * 3600000);\n };\n DateTime.prototype.addDays = function (days) {\n days = days || 0;\n return this.addMilliseconds(days * 86400000);\n };\n DateTime.prototype.addMonths = function (months) {\n months = months || 0;\n var d = this.toJsDate();\n d.setMonth(d.getMonth() + months);\n return new DateTime(d, this._kind);\n };\n DateTime.prototype.addYears = function (years) {\n years = years || 0;\n var d = this.toJsDate();\n d.setFullYear(d.getFullYear() + years);\n return new DateTime(d, this._kind);\n };\n DateTime.prototype.add = function (time) {\n return this.addMilliseconds(time.getTotalMilliseconds());\n };\n DateTime.prototype.subtract = function (time) {\n return this.addMilliseconds(-time.getTotalMilliseconds());\n };\n DateTime.prototype.timePassedSince = function (previous) {\n return DateTime.between(previous, this);\n };\n Object.defineProperty(DateTime.prototype, \"date\", {\n get: function () {\n var _ = this;\n return new DateTime(new Date(_.year, _.month, _.day), _._kind);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTime.prototype, \"timeOfDay\", {\n get: function () {\n var _ = this, t = _._time;\n if (!t) {\n var d = this._value;\n _._time = t = new ClockTime_1.ClockTime(d.getHours(), d.getMinutes(), d.getSeconds(), d.getMilliseconds());\n }\n return t;\n },\n enumerable: true,\n configurable: true\n });\n DateTime.prototype.toTimeStamp = function () {\n return TimeStamp_1.TimeStamp.from(this);\n };\n Object.defineProperty(DateTime, \"now\", {\n get: function () {\n return new DateTime();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTime.prototype, \"toUniversalTime\", {\n get: function () {\n var _ = this;\n if (_._kind != 1)\n return new DateTime(_, _._kind);\n var d = _._value;\n return new DateTime(new Date(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate(), d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds(), d.getUTCMilliseconds()), 2);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTime, \"today\", {\n get: function () {\n return DateTime.now.date;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTime, \"tomorrow\", {\n get: function () {\n var today = DateTime.today;\n return today.addDays(1);\n },\n enumerable: true,\n configurable: true\n });\n DateTime.between = function (first, last) {\n var f = first instanceof DateTime ? first._value : first, l = last instanceof DateTime ? last._value : last;\n return new TimeSpan_1.TimeSpan(f.getTime() - l.getTime());\n };\n DateTime.isLeapYear = function (year) {\n return ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);\n };\n DateTime.daysInMonth = function (year, month) {\n return (new Date(year, month + 1, 0)).getDate();\n };\n return DateTime;\n }());\n exports.DateTime = DateTime;\n Object.freeze(DateTime);\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = DateTime;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based on .NET DateTime's interface.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {ICalendarDate, ITimeStamp} from \"./ITimeStamp\";\r\nimport {TimeSpan} from \"./TimeSpan\";\r\nimport {ClockTime} from \"./ClockTime\";\r\nimport {Milliseconds} from \"./HowMany\";\r\nimport {TimeStamp} from \"./TimeStamp\";\r\nimport {IDateTime} from \"./IDateTime\";\r\nimport {Gregorian} from \"./Calendars\";\r\nimport {ITimeQuantity} from \"./ITimeQuantity\";\r\n\r\nexport class DateTime implements ICalendarDate, IDateTime\r\n{\r\n\tprivate _value:Date;\r\n\r\n\ttoJsDate():Date\r\n\t{\r\n\t\treturn new Date(this._value.getTime()); // return a clone.\r\n\t}\r\n\r\n\tprivate _setJsDate(value:Date)\r\n\t{\r\n\t\tthis._time = null;\r\n\t\tthis._value = new Date(value.getTime());\r\n\t}\r\n\r\n\tconstructor();\r\n\tconstructor(dateString:string, kind?:DateTime.Kind);\r\n\tconstructor(milliseconds:number, kind?:DateTime.Kind);\r\n\tconstructor(source:Date, kind?:DateTime.Kind);\r\n\tconstructor(source:DateTime, kind?:DateTime.Kind);\r\n\tconstructor(value:any = new Date(), kind:DateTime.Kind = DateTime.Kind.Local)\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_._kind = kind;\r\n\t\tif(value instanceof DateTime)\r\n\t\t\t_._value = value.toJsDate();\r\n\t\telse if(value instanceof Date)\r\n\t\t\t_._setJsDate(value);\r\n\t\telse\r\n\t\t\t_._value = value=== void(0)\r\n\t\t\t\t? new Date()\r\n\t\t\t\t: new Date(value);\r\n\t}\r\n\r\n\tprivate _kind:DateTime.Kind;\r\n\tget kind():DateTime.Kind\r\n\t{\r\n\t\treturn this._kind;\r\n\t}\r\n\r\n\tget year():number\r\n\t{\r\n\t\treturn this._value.getFullYear();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the Gregorian Month (zero indexed).\r\n\t * @returns {number}\r\n\t */\r\n\tget month():Gregorian.Month\r\n\t{\r\n\t\treturn this._value.getMonth();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the day of the month. An integer between 1 and 31.\r\n\t * @returns {number}\r\n\t */\r\n\tget day():number\r\n\t{\r\n\t\treturn this._value.getDate();\r\n\t}\r\n\r\n\tget dayOfWeek():Gregorian.DayOfWeek\r\n\t{\r\n\t\treturn this._value.getDay();\r\n\t}\r\n\r\n\r\n\taddMilliseconds(ms:number):DateTime\r\n\t{\r\n\t\tms = ms || 0;\r\n\t\treturn new DateTime(this._value.getTime() + ms, this._kind);\r\n\t}\r\n\r\n\taddSeconds(seconds:number):DateTime\r\n\t{\r\n\t\tseconds = seconds || 0;\r\n\t\treturn this.addMilliseconds(seconds*Milliseconds.Per.Second);\r\n\t}\r\n\r\n\taddMinutes(minutes:number):DateTime\r\n\t{\r\n\t\tminutes = minutes || 0;\r\n\t\treturn this.addMilliseconds(minutes*Milliseconds.Per.Minute);\r\n\t}\r\n\r\n\taddHours(hours:number):DateTime\r\n\t{\r\n\t\thours = hours || 0;\r\n\t\treturn this.addMilliseconds(hours*Milliseconds.Per.Hour);\r\n\t}\r\n\r\n\taddDays(days:number):DateTime\r\n\t{\r\n\t\tdays = days || 0;\r\n\t\treturn this.addMilliseconds(days*Milliseconds.Per.Day);\r\n\t}\r\n\r\n\taddMonths(months:number):DateTime\r\n\t{\r\n\t\tmonths = months || 0;\r\n\t\tvar d = this.toJsDate();\r\n\t\td.setMonth(d.getMonth() + months);\r\n\t\treturn new DateTime(d, this._kind);\r\n\t}\r\n\r\n\taddYears(years:number):DateTime\r\n\t{\r\n\t\tyears = years || 0;\r\n\t\tvar d = this.toJsDate();\r\n\t\td.setFullYear(d.getFullYear() + years);\r\n\t\treturn new DateTime(d, this._kind);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Receives an ITimeQuantity value and adds based on the total milliseconds.\r\n\t * @param {ITimeQuantity} time\r\n\t * @returns {DateTime}\r\n\t */\r\n\tadd(time:ITimeQuantity):DateTime\r\n\t{\r\n\t\treturn this.addMilliseconds(time.getTotalMilliseconds());\r\n\t}\r\n\r\n\t/**\r\n\t * Receives an ITimeQuantity value and subtracts based on the total milliseconds.\r\n\t * @param {ITimeQuantity} time\r\n\t * @returns {DateTime}\r\n\t */\r\n\tsubtract(time:ITimeQuantity):DateTime\r\n\t{\r\n\t\treturn this.addMilliseconds(-time.getTotalMilliseconds());\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a TimeSpan representing the amount of time between two dates.\r\n\t * @param previous\r\n\t * @returns {TimeSpan}\r\n\t */\r\n\ttimePassedSince(previous:Date|DateTime):TimeSpan\r\n\t{\r\n\t\treturn DateTime.between(previous, this);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a DateTime object for 00:00 of this date.\r\n\t */\r\n\tget date():DateTime\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn new DateTime(\r\n\t\t\tnew Date(\r\n\t\t\t\t_.year,\r\n\t\t\t\t_.month,\r\n\t\t\t\t_.day\r\n\t\t\t)\r\n\t\t\t, _._kind\r\n\t\t);\r\n\t}\r\n\r\n\tprivate _time:ClockTime;\r\n\r\n\t/**\r\n\t * Returns the time of day represented by a ClockTime object.\r\n\t * @returns {ClockTime}\r\n\t */\r\n\tget timeOfDay():ClockTime\r\n\t{\r\n\t\tvar _ = this, t = _._time;\r\n\t\tif(!t)\r\n\t\t{\r\n\t\t\tvar d = this._value;\r\n\t\t\t_._time = t = new ClockTime(\r\n\t\t\t\td.getHours(),\r\n\t\t\t\td.getMinutes(),\r\n\t\t\t\td.getSeconds(),\r\n\t\t\t\td.getMilliseconds());\r\n\t\t}\r\n\t\treturn t;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a readonly object which contains all the date and time components.\r\n\t */\r\n\ttoTimeStamp():ITimeStamp\r\n\t{\r\n\t\treturn TimeStamp.from(this);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the now local time.\r\n\t * @returns {DateTime}\r\n\t */\r\n\tstatic get now():DateTime\r\n\t{\r\n\t\treturn new DateTime();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a UTC version of this date if its kind is local.\r\n\t * @returns {DateTime}\r\n\t */\r\n\tget toUniversalTime():DateTime\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(_._kind!=DateTime.Kind.Local)\r\n\t\t\treturn new DateTime(_, _._kind);\r\n\r\n\t\tvar d = _._value;\r\n\t\treturn new DateTime(\r\n\t\t\tnew Date(\r\n\t\t\t\td.getUTCFullYear(),\r\n\t\t\t\td.getUTCMonth(),\r\n\t\t\t\td.getUTCDate(),\r\n\t\t\t\td.getUTCHours(),\r\n\t\t\t\td.getUTCMinutes(),\r\n\t\t\t\td.getUTCSeconds(),\r\n\t\t\t\td.getUTCMilliseconds()\r\n\t\t\t),\r\n\t\t\tDateTime.Kind.Utc\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * The date component for now.\r\n\t * @returns {DateTime}\r\n\t */\r\n\tstatic get today():DateTime\r\n\t{\r\n\t\treturn DateTime.now.date;\r\n\t}\r\n\r\n\t/**\r\n\t * Midnight tomorrow.\r\n\t * @returns {DateTime}\r\n\t */\r\n\tstatic get tomorrow():DateTime\r\n\t{\r\n\t\tvar today:DateTime = DateTime.today;\r\n\t\treturn today.addDays(1);\r\n\t}\r\n\r\n\t/**\r\n\t * Measures the difference between two dates as a TimeSpan.\r\n\t * @param first\r\n\t * @param last\r\n\t */\r\n\tstatic between(first:Date|DateTime, last:Date|DateTime):TimeSpan\r\n\t{\r\n\t\tvar f:Date = first instanceof DateTime ? first._value : first,\r\n\t\t l:Date = last instanceof DateTime ? last._value : last;\r\n\r\n\t\treturn new TimeSpan(f.getTime() - l.getTime());\r\n\t}\r\n\r\n\t/**\r\n\t * Calculates if the given year is a leap year using the formula:\r\n\t * ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)\r\n\t * @param year\r\n\t * @returns {boolean}\r\n\t */\r\n\tstatic isLeapYear(year:number):boolean\r\n\t{\r\n\t\treturn ((year%4==0) && (year%100!=0)) || (year%400==0);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the number of days for the specific year and month.\r\n\t * @param year\r\n\t * @param month\r\n\t * @returns {any}\r\n\t */\r\n\tstatic daysInMonth(year:number, month:Gregorian.Month):number\r\n\t{\r\n\t\t// Basically, add 1 month, subtract a day... What's the date?\r\n\t\treturn (new Date(year, month + 1, 0)).getDate();\r\n\t}\r\n\r\n\r\n}\r\n\r\n// Extend DateTime's usefulness.\r\nexport module DateTime\r\n{\r\n\texport const enum Kind {\r\n\t\tUnspecified,\r\n\t\tLocal,\r\n\t\tUtc,\r\n\t}\r\n}\r\n\r\nObject.freeze(DateTime);\r\n\r\nexport default DateTime;\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Time/HowMany.d.ts b/dist/amd/System/Time/HowMany.d.ts deleted file mode 100644 index 314a22e2..00000000 --- a/dist/amd/System/Time/HowMany.d.ts +++ /dev/null @@ -1,41 +0,0 @@ -/*! - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -declare module HowMany { - module Hours { - const enum Per { - Day = 24, - } - } - module Minutes { - const enum Per { - Hour = 60, - Day = 1440, - } - } - module Seconds { - const enum Per { - Minute = 60, - Hour = 3600, - Day = 86400, - } - } - module Milliseconds { - const enum Per { - Second = 1000, - Minute = 60000, - Hour = 3600000, - Day = 86400000, - } - } - module Ticks { - const enum Per { - Millisecond = 10000, - Second = 10000000, - Minute = 600000000, - Hour = 36000000000, - Day = 864000000000, - } - } -} diff --git a/dist/amd/System/Time/HowMany.js b/dist/amd/System/Time/HowMany.js deleted file mode 100644 index 874cebb9..00000000 --- a/dist/amd/System/Time/HowMany.js +++ /dev/null @@ -1,6 +0,0 @@ -/*! - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ - -//# sourceMappingURL=HowMany.js.map diff --git a/dist/amd/System/Time/HowMany.js.map b/dist/amd/System/Time/HowMany.js.map deleted file mode 100644 index c1b93c97..00000000 --- a/dist/amd/System/Time/HowMany.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":[],"names":[],"mappings":"","file":"System/Time/HowMany.js","sourcesContent":[]} \ No newline at end of file diff --git a/dist/amd/System/Time/TimeQuantity.d.ts b/dist/amd/System/Time/TimeQuantity.d.ts index 5252924a..c6d68ba4 100644 --- a/dist/amd/System/Time/TimeQuantity.d.ts +++ b/dist/amd/System/Time/TimeQuantity.d.ts @@ -1,13 +1,13 @@ -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import TimeUnit from './TimeUnit'; -export default class TimeQuantity implements IEquatable, IComparable, ITimeQuantity { +import { TimeUnit } from "./TimeUnit"; +import { IEquatable } from "../IEquatable"; +import { IComparable } from "../IComparable"; +import { ITimeQuantity } from "./ITimeQuantity"; +import { ITimeMeasurement } from "./ITimeMeasurement"; +export declare class TimeQuantity implements IEquatable, IComparable, ITimeQuantity { protected _quantity: number; constructor(_quantity?: number); getTotalMilliseconds(): number; @@ -18,3 +18,4 @@ export default class TimeQuantity implements IEquatable, ICompara total: ITimeMeasurement; getTotal(units: TimeUnit): number; } +export default TimeQuantity; diff --git a/dist/amd/System/Time/TimeQuantity.js b/dist/amd/System/Time/TimeQuantity.js index e9f108dd..8056446d 100644 --- a/dist/amd/System/Time/TimeQuantity.js +++ b/dist/amd/System/Time/TimeQuantity.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -define(["require","exports","../Compare","./TimeUnit"],function(t,e,o,i){"use strict";var n=function(){function t(t){void 0===t&&(t=0),this._quantity=t}return t.prototype.getTotalMilliseconds=function(){return this._quantity},Object.defineProperty(t.prototype,"direction",{get:function(){return o.compare(this.getTotalMilliseconds(),0)},enumerable:!0,configurable:!0}),t.prototype.equals=function(t){return o.areEqual(this.getTotalMilliseconds(),t&&t.total&&t.total.milliseconds)},t.prototype.compareTo=function(t){return o.compare(this.getTotalMilliseconds(),t&&t.total&&t.total.milliseconds)},Object.defineProperty(t.prototype,"total",{get:function(){var t=this._total;if(!t){var e=this.getTotalMilliseconds();this._total=t=Object.freeze({ticks:1e4*e,milliseconds:e,seconds:e/1e3,minutes:e/6e4,hours:e/36e5,days:e/864e5})}return t},enumerable:!0,configurable:!0}),t.prototype.getTotal=function(t){return i["default"].fromMilliseconds(this.getTotalMilliseconds(),t)},t}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=n}); +define(["require","exports","../Compare","./TimeUnit"],function(t,e,o,i){"use strict";var n=function(){function t(t){void 0===t&&(t=0),this._quantity=t}return t.prototype.getTotalMilliseconds=function(){return this._quantity},Object.defineProperty(t.prototype,"direction",{get:function(){return o.compare(this.getTotalMilliseconds(),0)},enumerable:!0,configurable:!0}),t.prototype.equals=function(t){return o.areEqual(this.getTotalMilliseconds(),t&&t.total&&t.total.milliseconds)},t.prototype.compareTo=function(t){return o.compare(this.getTotalMilliseconds(),t&&t.total&&t.total.milliseconds)},Object.defineProperty(t.prototype,"total",{get:function(){var t=this._total;if(!t){var e=this.getTotalMilliseconds();this._total=t=Object.freeze({ticks:1e4*e,milliseconds:e,seconds:e/1e3,minutes:e/6e4,hours:e/36e5,days:e/864e5})}return t},enumerable:!0,configurable:!0}),t.prototype.getTotal=function(t){return i.TimeUnit.fromMilliseconds(this.getTotalMilliseconds(),t)},t}();e.TimeQuantity=n,Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=n}); //# sourceMappingURL=TimeQuantity.js.map diff --git a/dist/amd/System/Time/TimeQuantity.js.map b/dist/amd/System/Time/TimeQuantity.js.map index 59082a7a..77876090 100644 --- a/dist/amd/System/Time/TimeQuantity.js.map +++ b/dist/amd/System/Time/TimeQuantity.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Time/TimeQuantity.js","System/Time/TimeQuantity.ts"],"names":["define","require","exports","Compare_1","TimeUnit_1","TimeQuantity","_quantity","this","prototype","getTotalMilliseconds","Object","defineProperty","get","compare","enumerable","configurable","equals","other","areEqual","total","milliseconds","compareTo","t","_total","ms","freeze","ticks","seconds","minutes","hours","days","getTotal","units","fromMilliseconds","value"],"mappings":";;;;AAIAA,QAAQ,UAAW,UAAW,aAAc,cAAe,SAAUC,EAASC,EAASC,EAAWC,GCKlG,YAQA,IAAAC,GAAA,WAIC,QAAAA,GAAsBC,GAAV,SAAAA,IAAAA,EAAA,GAAUC,KAAAD,UAAAA,EA2EvB,MAtECD,GAAAG,UAAAC,qBAAA,WAEC,MAAOF,MAAKD,WAObI,OAAAC,eAAIN,EAAAG,UAAA,aDpBOI,ICoBX,WAEC,MAAOT,GAAAU,QAAQN,KAAKE,uBAAwB,IDnBlCK,YAAY,EACZC,cAAc,IC0BzBV,EAAAG,UAAAQ,OAAA,SAAOC,GAEN,MAAOd,GAAAe,SAASX,KAAKE,uBAAwBQ,GAASA,EAAME,OAASF,EAAME,MAAMC,eAQlFf,EAAAG,UAAAa,UAAA,SAAUJ,GAET,MAAOd,GAAAU,QAAQN,KAAKE,uBAAwBQ,GAASA,EAAME,OAASF,EAAME,MAAMC,eAWjFV,OAAAC,eAAIN,EAAAG,UAAA,SDxCOI,ICwCX,WAEC,GAAIU,GAAIf,KAAKgB,MACb,KAAID,EACJ,CACC,GAAIE,GAAKjB,KAAKE,sBAEdF,MAAKgB,OAASD,EAAsBZ,OAAOe,QAC1CC,MAAU,IAAHF,EACPJ,aAAcI,EACdG,QAASH,EAAG,IACZI,QAASJ,EAAG,IACZK,MAAOL,EAAG,KACVM,KAAMN,EAAG,QAGX,MAAOF,IDzCGR,YAAY,EACZC,cAAc,ICgDzBV,EAAAG,UAAAuB,SAAA,SAASC,GAER,MAAO5B,GAAAA,WAAS6B,iBAAiB1B,KAAKE,uBAAwBuB,IAEhE3B,IA/EAK,QAAAC,eAAAT,EAAA,cAAAgC,OAAA,IDmCIhC,EAAAA,WAAkBG","file":"System/Time/TimeQuantity.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\", '../Compare', './TimeUnit'], function (require, exports, Compare_1, TimeUnit_1) {\n 'use strict';\n var TimeQuantity = (function () {\n function TimeQuantity(_quantity) {\n if (_quantity === void 0) { _quantity = 0; }\n this._quantity = _quantity;\n }\n TimeQuantity.prototype.getTotalMilliseconds = function () {\n return this._quantity;\n };\n Object.defineProperty(TimeQuantity.prototype, \"direction\", {\n get: function () {\n return Compare_1.compare(this.getTotalMilliseconds(), 0);\n },\n enumerable: true,\n configurable: true\n });\n TimeQuantity.prototype.equals = function (other) {\n return Compare_1.areEqual(this.getTotalMilliseconds(), other && other.total && other.total.milliseconds);\n };\n TimeQuantity.prototype.compareTo = function (other) {\n return Compare_1.compare(this.getTotalMilliseconds(), other && other.total && other.total.milliseconds);\n };\n Object.defineProperty(TimeQuantity.prototype, \"total\", {\n get: function () {\n var t = this._total;\n if (!t) {\n var ms = this.getTotalMilliseconds();\n this._total = t = Object.freeze({\n ticks: ms * 10000,\n milliseconds: ms,\n seconds: ms / 1000,\n minutes: ms / 60000,\n hours: ms / 3600000,\n days: ms / 86400000,\n });\n }\n return t;\n },\n enumerable: true,\n configurable: true\n });\n TimeQuantity.prototype.getTotal = function (units) {\n return TimeUnit_1.default.fromMilliseconds(this.getTotalMilliseconds(), units);\n };\n return TimeQuantity;\n }());\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = TimeQuantity;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport {areEqual,compare} from '../Compare';\r\nimport TimeUnit from './TimeUnit';\r\n\r\n/**\r\n * This class provides a simple means for storing and calculating time quantities.\r\n */\r\nexport default\r\nclass TimeQuantity implements IEquatable, IComparable, ITimeQuantity\r\n{\r\n\r\n\tconstructor(protected _quantity:number = 0)\r\n\t{\r\n\t}\r\n\r\n\t// Provides an overridable mechanism for extending this class.\r\n\tgetTotalMilliseconds():number\r\n\t{\r\n\t\treturn this._quantity;\r\n\t}\r\n\r\n\t/**\r\n\t * +1, 0, or -1 depending on the time direction.\r\n\t * @returns {number}\r\n\t */\r\n\tget direction():number\r\n\t{\r\n\t\treturn compare(this.getTotalMilliseconds(), 0);\r\n\t}\r\n\r\n\t/**\r\n\t * Compares this instance against any other time quantity instance and return true if the amount of time is the same.\r\n\t * @param other\r\n\t * @returns {boolean}\r\n\t */\r\n\tequals(other:ITimeQuantity):boolean\r\n\t{\r\n\t\treturn areEqual(this.getTotalMilliseconds(), other && other.total && other.total.milliseconds);\r\n\t}\r\n\r\n\t/**\r\n\t * Compares this instance against any other time quantity instance.\r\n\t * @param other\r\n\t * @returns {CompareResult}\r\n\t */\r\n\tcompareTo(other:ITimeQuantity):number\r\n\t{\r\n\t\treturn compare(this.getTotalMilliseconds(), other && other.total && other.total.milliseconds);\r\n\t}\r\n\r\n\r\n\t// Clear this value if sub-class values change.\r\n\tprotected _total:ITimeMeasurement;\r\n\r\n\t/**\r\n\t * Returns an object with all units exposed as totals.\r\n\t * @returns {ITimeMeasurement}\r\n\t */\r\n\tget total():ITimeMeasurement\r\n\t{\r\n\t\tvar t = this._total;\r\n\t\tif(!t)\r\n\t\t{\r\n\t\t\tvar ms = this.getTotalMilliseconds();\r\n\r\n\t\t\tthis._total = t = Object.freeze({\r\n\t\t\t\tticks: ms*HowMany.Ticks.Per.Millisecond,\r\n\t\t\t\tmilliseconds: ms,\r\n\t\t\t\tseconds: ms/HowMany.Milliseconds.Per.Second,\r\n\t\t\t\tminutes: ms/HowMany.Milliseconds.Per.Minute,\r\n\t\t\t\thours: ms/HowMany.Milliseconds.Per.Hour,\r\n\t\t\t\tdays: ms/HowMany.Milliseconds.Per.Day,\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn t;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the total amount of time measured in the requested TimeUnit.\r\n\t * @param units\r\n\t * @returns {number}\r\n\t */\r\n\tgetTotal(units:TimeUnit):number\r\n\t{\r\n\t\treturn TimeUnit.fromMilliseconds(this.getTotalMilliseconds(), units);\r\n\t}\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Time/TimeQuantity.js","System/Time/TimeQuantity.ts"],"names":["define","require","exports","Compare_1","TimeUnit_1","TimeQuantity","_quantity","this","prototype","getTotalMilliseconds","Object","defineProperty","get","compare","enumerable","configurable","equals","other","areEqual","total","milliseconds","compareTo","t","_total","ms","freeze","ticks","seconds","minutes","hours","days","getTotal","units","TimeUnit","fromMilliseconds","value"],"mappings":";;;;AAIAA,QAAQ,UAAW,UAAW,aAAc,cAAe,SAAUC,EAASC,EAASC,EAAWC,GAC9F,YCYJ,IAAAC,GAAA,WAGC,QAAAA,GAAsBC,GAAV,SAAAA,IAAAA,EAAA,GAAUC,KAAAD,UAAAA,EA2EvB,MAtECD,GAAAG,UAAAC,qBAAA,WAEC,MAAOF,MAAKD,WAObI,OAAAC,eAAIN,EAAAG,UAAA,aDnBOI,ICmBX,WAEC,MAAOT,GAAAU,QAAQN,KAAKE,uBAAwB,IDlBlCK,YAAY,EACZC,cAAc,ICyBzBV,EAAAG,UAAAQ,OAAA,SAAOC,GAEN,MAAOd,GAAAe,SAASX,KAAKE,uBAAwBQ,GAASA,EAAME,OAASF,EAAME,MAAMC,eAQlFf,EAAAG,UAAAa,UAAA,SAAUJ,GAET,MAAOd,GAAAU,QAAQN,KAAKE,uBAAwBQ,GAASA,EAAME,OAASF,EAAME,MAAMC,eAWjFV,OAAAC,eAAIN,EAAAG,UAAA,SDvCOI,ICuCX,WAEC,GAAIU,GAAIf,KAAKgB,MACb,KAAID,EACJ,CACC,GAAIE,GAAKjB,KAAKE,sBAEdF,MAAKgB,OAASD,EAAsBZ,OAAOe,QAC1CC,MAAU,IAAHF,EACPJ,aAAcI,EACdG,QAASH,EAAG,IACZI,QAASJ,EAAG,IACZK,MAAOL,EAAG,KACVM,KAAMN,EAAG,QAGX,MAAOF,IDxCGR,YAAY,EACZC,cAAc,IC+CzBV,EAAAG,UAAAuB,SAAA,SAASC,GAER,MAAO5B,GAAA6B,SAASC,iBAAiB3B,KAAKE,uBAAwBuB,IAEhE3B,IA9EaH,GAAAG,aAAYA,EAgFzBK,OAAAC,eAAAT,EAAA,cAAAiC,OAAA,ID5CIjC,EAAAA,WC4CWG","file":"System/Time/TimeQuantity.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\", \"../Compare\", \"./TimeUnit\"], function (require, exports, Compare_1, TimeUnit_1) {\n \"use strict\";\n var TimeQuantity = (function () {\n function TimeQuantity(_quantity) {\n if (_quantity === void 0) { _quantity = 0; }\n this._quantity = _quantity;\n }\n TimeQuantity.prototype.getTotalMilliseconds = function () {\n return this._quantity;\n };\n Object.defineProperty(TimeQuantity.prototype, \"direction\", {\n get: function () {\n return Compare_1.compare(this.getTotalMilliseconds(), 0);\n },\n enumerable: true,\n configurable: true\n });\n TimeQuantity.prototype.equals = function (other) {\n return Compare_1.areEqual(this.getTotalMilliseconds(), other && other.total && other.total.milliseconds);\n };\n TimeQuantity.prototype.compareTo = function (other) {\n return Compare_1.compare(this.getTotalMilliseconds(), other && other.total && other.total.milliseconds);\n };\n Object.defineProperty(TimeQuantity.prototype, \"total\", {\n get: function () {\n var t = this._total;\n if (!t) {\n var ms = this.getTotalMilliseconds();\n this._total = t = Object.freeze({\n ticks: ms * 10000,\n milliseconds: ms,\n seconds: ms / 1000,\n minutes: ms / 60000,\n hours: ms / 3600000,\n days: ms / 86400000,\n });\n }\n return t;\n },\n enumerable: true,\n configurable: true\n });\n TimeQuantity.prototype.getTotal = function (units) {\n return TimeUnit_1.TimeUnit.fromMilliseconds(this.getTotalMilliseconds(), units);\n };\n return TimeQuantity;\n }());\n exports.TimeQuantity = TimeQuantity;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = TimeQuantity;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {areEqual, compare} from \"../Compare\";\r\nimport {TimeUnit} from \"./TimeUnit\";\r\nimport {Milliseconds, Ticks} from \"./HowMany\";\r\nimport {IEquatable} from \"../IEquatable\";\r\nimport {IComparable} from \"../IComparable\";\r\nimport {ITimeQuantity} from \"./ITimeQuantity\";\r\nimport {ITimeMeasurement} from \"./ITimeMeasurement\";\r\n\r\n/**\r\n * This class provides a simple means for storing and calculating time quantities.\r\n */\r\nexport class TimeQuantity implements IEquatable, IComparable, ITimeQuantity\r\n{\r\n\r\n\tconstructor(protected _quantity:number = 0)\r\n\t{\r\n\t}\r\n\r\n\t// Provides an overridable mechanism for extending this class.\r\n\tgetTotalMilliseconds():number\r\n\t{\r\n\t\treturn this._quantity;\r\n\t}\r\n\r\n\t/**\r\n\t * +1, 0, or -1 depending on the time direction.\r\n\t * @returns {number}\r\n\t */\r\n\tget direction():number\r\n\t{\r\n\t\treturn compare(this.getTotalMilliseconds(), 0);\r\n\t}\r\n\r\n\t/**\r\n\t * Compares this instance against any other time quantity instance and return true if the amount of time is the same.\r\n\t * @param other\r\n\t * @returns {boolean}\r\n\t */\r\n\tequals(other:ITimeQuantity):boolean\r\n\t{\r\n\t\treturn areEqual(this.getTotalMilliseconds(), other && other.total && other.total.milliseconds);\r\n\t}\r\n\r\n\t/**\r\n\t * Compares this instance against any other time quantity instance.\r\n\t * @param other\r\n\t * @returns {CompareResult}\r\n\t */\r\n\tcompareTo(other:ITimeQuantity):number\r\n\t{\r\n\t\treturn compare(this.getTotalMilliseconds(), other && other.total && other.total.milliseconds);\r\n\t}\r\n\r\n\r\n\t// Clear this value if sub-class values change.\r\n\tprotected _total:ITimeMeasurement;\r\n\r\n\t/**\r\n\t * Returns an object with all units exposed as totals.\r\n\t * @returns {ITimeMeasurement}\r\n\t */\r\n\tget total():ITimeMeasurement\r\n\t{\r\n\t\tvar t = this._total;\r\n\t\tif(!t)\r\n\t\t{\r\n\t\t\tvar ms = this.getTotalMilliseconds();\r\n\r\n\t\t\tthis._total = t = Object.freeze({\r\n\t\t\t\tticks: ms*Ticks.Per.Millisecond,\r\n\t\t\t\tmilliseconds: ms,\r\n\t\t\t\tseconds: ms/Milliseconds.Per.Second,\r\n\t\t\t\tminutes: ms/Milliseconds.Per.Minute,\r\n\t\t\t\thours: ms/Milliseconds.Per.Hour,\r\n\t\t\t\tdays: ms/Milliseconds.Per.Day,\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn t;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the total amount of time measured in the requested TimeUnit.\r\n\t * @param units\r\n\t * @returns {number}\r\n\t */\r\n\tgetTotal(units:TimeUnit):number\r\n\t{\r\n\t\treturn TimeUnit.fromMilliseconds(this.getTotalMilliseconds(), units);\r\n\t}\r\n}\r\n\r\nexport default TimeQuantity;"]} \ No newline at end of file diff --git a/dist/amd/System/Time/TimeSpan.d.ts b/dist/amd/System/Time/TimeSpan.d.ts index 2c56acd3..03f0dba3 100644 --- a/dist/amd/System/Time/TimeSpan.d.ts +++ b/dist/amd/System/Time/TimeSpan.d.ts @@ -1,16 +1,14 @@ -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Originally based upon .NET source but with many additions and improvements. * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import TimeUnit from './TimeUnit'; -import ClockTime from './ClockTime'; -import TimeQuantity from './TimeQuantity'; -export default class TimeSpan extends TimeQuantity implements ITimeMeasurement { +import { TimeUnit } from "./TimeUnit"; +import { ClockTime } from "./ClockTime"; +import { TimeQuantity } from "./TimeQuantity"; +import { ITimeMeasurement } from "./ITimeMeasurement"; +import { ITimeQuantity } from "./ITimeQuantity"; +export declare class TimeSpan extends TimeQuantity implements ITimeMeasurement { ticks: number; milliseconds: number; seconds: number; @@ -32,3 +30,4 @@ export default class TimeSpan extends TimeQuantity implements ITimeMeasurement { static fromTicks(value: number): TimeSpan; static zero: TimeSpan; } +export default TimeSpan; diff --git a/dist/amd/System/Time/TimeSpan.js b/dist/amd/System/Time/TimeSpan.js index 91a812d2..c722e9a2 100644 --- a/dist/amd/System/Time/TimeSpan.js +++ b/dist/amd/System/Time/TimeSpan.js @@ -3,5 +3,5 @@ * Originally based upon .NET source but with many additions and improvements. * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(e,t){function n(){this.constructor=e}for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)};define(["require","exports","../Types","./TimeUnit","./ClockTime","./TimeQuantity"],function(e,t,n,i,o,r){"use strict";var u=function(e){function t(t,n){void 0===n&&(n=i["default"].Milliseconds);var o=i["default"].toMilliseconds(t,n);e.call(this,o);var r=this;r.ticks=1e4*o,r.milliseconds=o,r.seconds=o/1e3,r.minutes=o/6e4,r.hours=o/36e5,r.days=o/864e5}return __extends(t,e),Object.defineProperty(t.prototype,"total",{get:function(){return this},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"time",{get:function(){var e=this,t=e._time;return t||(e._time=t=new o["default"](e.getTotalMilliseconds())),t},enumerable:!0,configurable:!0}),t.prototype.add=function(e){if(n["default"].isNumber(e))throw new Error("Use .addUnit(value:number,units:TimeUnit) to add a numerical value amount. Default units are milliseconds.\n.add only supports quantifiable time values (ITimeTotal).");return new t(this.getTotalMilliseconds()+e.total.milliseconds)},t.prototype.addUnit=function(e,n){return void 0===n&&(n=i["default"].Milliseconds),new t(this.getTotalMilliseconds()+i["default"].toMilliseconds(e,n))},t.from=function(e,n){return new t(e,n)},t.fromDays=function(e){return new t(e,i["default"].Days)},t.fromHours=function(e){return new t(e,i["default"].Hours)},t.fromMinutes=function(e){return new t(e,i["default"].Minutes)},t.fromSeconds=function(e){return new t(e,i["default"].Seconds)},t.fromMilliseconds=function(e){return new t(e,i["default"].Milliseconds)},t.fromTicks=function(e){return new t(e,i["default"].Ticks)},Object.defineProperty(t,"zero",{get:function(){return s||(s=new t(0))},enumerable:!0,configurable:!0}),t}(r["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=u;var s}); +var __extends=this&&this.__extends||function(e,t){function n(){this.constructor=e}for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)};define(["require","exports","../Types","./TimeUnit","./ClockTime","./TimeQuantity"],function(e,t,n,i,o,r){"use strict";var s=function(e){function t(t,n){void 0===n&&(n=i.TimeUnit.Milliseconds);var o=i.TimeUnit.toMilliseconds(t,n);e.call(this,o);var r=this;r.ticks=1e4*o,r.milliseconds=o,r.seconds=o/1e3,r.minutes=o/6e4,r.hours=o/36e5,r.days=o/864e5}return __extends(t,e),Object.defineProperty(t.prototype,"total",{get:function(){return this},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"time",{get:function(){var e=this,t=e._time;return t||(e._time=t=new o.ClockTime(e.getTotalMilliseconds())),t},enumerable:!0,configurable:!0}),t.prototype.add=function(e){if(n.Type.isNumber(e))throw new Error("Use .addUnit(value:number,units:TimeUnit) to add a numerical value amount. Default units are milliseconds.\n.add only supports quantifiable time values (ITimeTotal).");return new t(this.getTotalMilliseconds()+e.total.milliseconds)},t.prototype.addUnit=function(e,n){return void 0===n&&(n=i.TimeUnit.Milliseconds),new t(this.getTotalMilliseconds()+i.TimeUnit.toMilliseconds(e,n))},t.from=function(e,n){return new t(e,n)},t.fromDays=function(e){return new t(e,i.TimeUnit.Days)},t.fromHours=function(e){return new t(e,i.TimeUnit.Hours)},t.fromMinutes=function(e){return new t(e,i.TimeUnit.Minutes)},t.fromSeconds=function(e){return new t(e,i.TimeUnit.Seconds)},t.fromMilliseconds=function(e){return new t(e,i.TimeUnit.Milliseconds)},t.fromTicks=function(e){return new t(e,i.TimeUnit.Ticks)},Object.defineProperty(t,"zero",{get:function(){return u||(u=new t(0))},enumerable:!0,configurable:!0}),t}(r.TimeQuantity);t.TimeSpan=s;var u;Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=s}); //# sourceMappingURL=TimeSpan.js.map diff --git a/dist/amd/System/Time/TimeSpan.js.map b/dist/amd/System/Time/TimeSpan.js.map index 4d5c4df7..b6ca9862 100644 --- a/dist/amd/System/Time/TimeSpan.js.map +++ b/dist/amd/System/Time/TimeSpan.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Time/TimeSpan.js","System/Time/TimeSpan.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","Types_1","TimeUnit_1","ClockTime_1","TimeQuantity_1","TimeSpan","_super","value","units","Milliseconds","ms","toMilliseconds","call","_","ticks","milliseconds","seconds","minutes","hours","days","defineProperty","get","enumerable","configurable","t","_time","getTotalMilliseconds","add","other","isNumber","Error","total","addUnit","from","fromDays","Days","fromHours","Hours","fromMinutes","Minutes","fromSeconds","Seconds","fromMilliseconds","fromTicks","Ticks","timeSpanZero"],"mappings":";;;;;AAKA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,WAAY,aAAc,cAAe,kBAAmB,SAAUC,EAASC,EAASC,EAASC,EAAYC,EAAaC,GCAxJ,YAWA,IAAAC,GAAA,SAAAC,GAYC,QAAAD,GAAYE,EAAcC,GAAA,SAAAA,IAAAA,EAAiBN,EAAAA,WAASO,aAEnD,IAAIC,GAAKR,EAAAA,WAASS,eAAeJ,EAAOC,EACxCF,GAAAM,KAAAxB,KAAMsB,EAEN,IAAIG,GAAIzB,IACRyB,GAAEC,MAAW,IAAHJ,EACVG,EAAEE,aAAeL,EACjBG,EAAEG,QAAUN,EAAG,IACfG,EAAEI,QAAUP,EAAG,IACfG,EAAEK,MAAQR,EAAG,KACbG,EAAEM,KAAOT,EAAG,MA8Ed,MApGuBvB,WAAAkB,EAAAC,GA6BtBV,OAAAwB,eAAIf,EAAAV,UAAA,SDxBO0B,ICwBX,WAEC,MAAOjC,ODvBGkC,YAAY,EACZC,cAAc,IC2BzB3B,OAAAwB,eAAIf,EAAAV,UAAA,QDxBO0B,ICwBX,WAEC,GAAIR,GAAIzB,KAAMoC,EAAIX,EAAEY,KAEpB,OADID,KAAGX,EAAEY,MAAQD,EAAI,GAAIrB,GAAAA,WAAUU,EAAEa,yBAC9BF,GDtBGF,YAAY,EACZC,cAAc,ICwBzBlB,EAAAV,UAAAgC,IAAA,SAAIC,GAEH,GAAG3B,EAAAA,WAAK4B,SAASD,GAChB,KAAM,IAAIE,OACT,yKAIF,OAAO,IAAIzB,GAASjB,KAAKsC,uBAAyBE,EAAMG,MAAMhB,eAG/DV,EAAAV,UAAAqC,QAAA,SAAQzB,EAAcC,GAErB,MAFqB,UAAAA,IAAAA,EAAiBN,EAAAA,WAASO,cAExC,GAAIJ,GAASjB,KAAKsC,uBAAyBxB,EAAAA,WAASS,eAAeJ,EAAOC,KAI3EH,EAAA4B,KAAP,SAAY1B,EAAcC,GAEzB,MAAO,IAAIH,GAASE,EAAOC,IAGrBH,EAAA6B,SAAP,SAAgB3B,GAEf,MAAO,IAAIF,GAASE,EAAOL,EAAAA,WAASiC,OAG9B9B,EAAA+B,UAAP,SAAiB7B,GAEhB,MAAO,IAAIF,GAASE,EAAOL,EAAAA,WAASmC,QAG9BhC,EAAAiC,YAAP,SAAmB/B,GAElB,MAAO,IAAIF,GAASE,EAAOL,EAAAA,WAASqC,UAG9BlC,EAAAmC,YAAP,SAAmBjC,GAElB,MAAO,IAAIF,GAASE,EAAOL,EAAAA,WAASuC,UAG9BpC,EAAAqC,iBAAP,SAAwBnC,GAEvB,MAAO,IAAIF,GAASE,EAAOL,EAAAA,WAASO,eAG9BJ,EAAAsC,UAAP,SAAiBpC,GAEhB,MAAO,IAAIF,GAASE,EAAOL,EAAAA,WAAS0C,QAIrChD,OAAAwB,eAAWf,EAAA,QD3CAgB,IC2CX,WAEC,MAAOwB,KAAiBA,EAAe,GAAIxC,GAAS,KD1C1CiB,YAAY,EACZC,cAAc,IC2C1BlB,GApGuBD,EAAAA,WADvBR,QAAAwB,eAAApB,EAAA,cAAAO,OAAA,ID+DIP,EAAAA,WAAkBK,CCyCtB,IAAIwC","file":"System/Time/TimeSpan.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Originally based upon .NET source but with many additions and improvements.\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", '../Types', './TimeUnit', './ClockTime', './TimeQuantity'], function (require, exports, Types_1, TimeUnit_1, ClockTime_1, TimeQuantity_1) {\n 'use strict';\n var TimeSpan = (function (_super) {\n __extends(TimeSpan, _super);\n function TimeSpan(value, units) {\n if (units === void 0) { units = TimeUnit_1.default.Milliseconds; }\n var ms = TimeUnit_1.default.toMilliseconds(value, units);\n _super.call(this, ms);\n var _ = this;\n _.ticks = ms * 10000;\n _.milliseconds = ms;\n _.seconds = ms / 1000;\n _.minutes = ms / 60000;\n _.hours = ms / 3600000;\n _.days = ms / 86400000;\n }\n Object.defineProperty(TimeSpan.prototype, \"total\", {\n get: function () {\n return this;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TimeSpan.prototype, \"time\", {\n get: function () {\n var _ = this, t = _._time;\n if (!t)\n _._time = t = new ClockTime_1.default(_.getTotalMilliseconds());\n return t;\n },\n enumerable: true,\n configurable: true\n });\n TimeSpan.prototype.add = function (other) {\n if (Types_1.default.isNumber(other))\n throw new Error(\"Use .addUnit(value:number,units:TimeUnit) to add a numerical value amount. Default units are milliseconds.\\n\" +\n \".add only supports quantifiable time values (ITimeTotal).\");\n return new TimeSpan(this.getTotalMilliseconds() + other.total.milliseconds);\n };\n TimeSpan.prototype.addUnit = function (value, units) {\n if (units === void 0) { units = TimeUnit_1.default.Milliseconds; }\n return new TimeSpan(this.getTotalMilliseconds() + TimeUnit_1.default.toMilliseconds(value, units));\n };\n TimeSpan.from = function (value, units) {\n return new TimeSpan(value, units);\n };\n TimeSpan.fromDays = function (value) {\n return new TimeSpan(value, TimeUnit_1.default.Days);\n };\n TimeSpan.fromHours = function (value) {\n return new TimeSpan(value, TimeUnit_1.default.Hours);\n };\n TimeSpan.fromMinutes = function (value) {\n return new TimeSpan(value, TimeUnit_1.default.Minutes);\n };\n TimeSpan.fromSeconds = function (value) {\n return new TimeSpan(value, TimeUnit_1.default.Seconds);\n };\n TimeSpan.fromMilliseconds = function (value) {\n return new TimeSpan(value, TimeUnit_1.default.Milliseconds);\n };\n TimeSpan.fromTicks = function (value) {\n return new TimeSpan(value, TimeUnit_1.default.Ticks);\n };\n Object.defineProperty(TimeSpan, \"zero\", {\n get: function () {\n return timeSpanZero || (timeSpanZero = new TimeSpan(0));\n },\n enumerable: true,\n configurable: true\n });\n return TimeSpan;\n }(TimeQuantity_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = TimeSpan;\n var timeSpanZero;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Originally based upon .NET source but with many additions and improvements.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport {areEqual,compare} from '../Compare';\r\nimport Type from '../Types';\r\nimport TimeUnit from './TimeUnit';\r\nimport ClockTime from './ClockTime';\r\nimport TimeQuantity from './TimeQuantity';\r\n\r\n/**\r\n * TimeSpan expands on TimeQuantity to provide an class that is similar to .NET's TimeSpan including many useful static methods.\r\n */\r\nexport default\r\nclass TimeSpan extends TimeQuantity implements ITimeMeasurement\r\n{\r\n\r\n\tticks: number;\r\n\tmilliseconds: number;\r\n\tseconds: number;\r\n\tminutes: number;\r\n\thours: number;\r\n\tdays: number;\r\n\r\n\t// In .NET the default type is Ticks, but for JavaScript, we will use Milliseconds.\r\n\tconstructor(value:number, units:TimeUnit = TimeUnit.Milliseconds)\r\n\t{\r\n\t\tvar ms = TimeUnit.toMilliseconds(value, units);\r\n\t\tsuper(ms);\r\n\r\n\t\tvar _ = this;\r\n\t\t_.ticks = ms*HowMany.Ticks.Per.Millisecond;\r\n\t\t_.milliseconds = ms;\r\n\t\t_.seconds = ms/HowMany.Milliseconds.Per.Second;\r\n\t\t_.minutes = ms/HowMany.Milliseconds.Per.Minute;\r\n\t\t_.hours = ms/HowMany.Milliseconds.Per.Hour;\r\n\t\t_.days = ms/HowMany.Milliseconds.Per.Day;\r\n\t}\r\n\r\n\t/**\r\n\t * Provides an standard interface for acquiring the total time.\r\n\t * @returns {TimeSpan}\r\n\t */\r\n\tget total():TimeSpan\r\n\t{\r\n\t\treturn this;\r\n\t}\r\n\r\n\tprivate _time:ClockTime;\r\n\t// Instead of the confusing getTotal versus unit name, expose a 'ClockTime' value which reports the individual components.\r\n\tget time():ClockTime\r\n\t{\r\n\t\tvar _ = this, t = _._time;\r\n\t\tif(!t) _._time = t = new ClockTime(_.getTotalMilliseconds());\r\n\t\treturn t;\r\n\t}\r\n\r\n\tadd(other:ITimeQuantity):TimeSpan\r\n\t{\r\n\t\tif(Type.isNumber(other))\r\n\t\t\tthrow new Error(\r\n\t\t\t\t\"Use .addUnit(value:number,units:TimeUnit) to add a numerical value amount. Default units are milliseconds.\\n\" +\r\n\t\t\t\t\".add only supports quantifiable time values (ITimeTotal).\"\r\n\t\t\t);\r\n\r\n\t\treturn new TimeSpan(this.getTotalMilliseconds() + other.total.milliseconds);\r\n\t}\r\n\r\n\taddUnit(value:number, units:TimeUnit = TimeUnit.Milliseconds):TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(this.getTotalMilliseconds() + TimeUnit.toMilliseconds(value, units));\r\n\t}\r\n\r\n\r\n\tstatic from(value:number, units:TimeUnit)\r\n\t{\r\n\t\treturn new TimeSpan(value, units);\r\n\t}\r\n\r\n\tstatic fromDays(value:number):TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(value, TimeUnit.Days);\r\n\t}\r\n\r\n\tstatic fromHours(value:number):TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(value, TimeUnit.Hours);\r\n\t}\r\n\r\n\tstatic fromMinutes(value:number):TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(value, TimeUnit.Minutes);\r\n\t}\r\n\r\n\tstatic fromSeconds(value:number):TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(value, TimeUnit.Seconds);\r\n\t}\r\n\r\n\tstatic fromMilliseconds(value:number):TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(value, TimeUnit.Milliseconds);\r\n\t}\r\n\r\n\tstatic fromTicks(value:number):TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(value, TimeUnit.Ticks);\r\n\t}\r\n\r\n\r\n\tstatic get zero():TimeSpan\r\n\t{\r\n\t\treturn timeSpanZero || (timeSpanZero = new TimeSpan(0));\r\n\t}\r\n}\r\n\r\n\r\nvar timeSpanZero:TimeSpan;\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Time/TimeSpan.js","System/Time/TimeSpan.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","Types_1","TimeUnit_1","ClockTime_1","TimeQuantity_1","TimeSpan","_super","value","units","TimeUnit","Milliseconds","ms","toMilliseconds","call","_","ticks","milliseconds","seconds","minutes","hours","days","defineProperty","get","enumerable","configurable","t","_time","ClockTime","getTotalMilliseconds","add","other","Type","isNumber","Error","total","addUnit","from","fromDays","Days","fromHours","Hours","fromMinutes","Minutes","fromSeconds","Seconds","fromMilliseconds","fromTicks","Ticks","timeSpanZero","TimeQuantity"],"mappings":";;;;;AAKA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,WAAY,aAAc,cAAe,kBAAmB,SAAUC,EAASC,EAASC,EAASC,EAAYC,EAAaC,GACpJ,YCOJ,IAAAC,GAAA,SAAAC,GAWC,QAAAD,GAAYE,EAAcC,GAAA,SAAAA,IAAAA,EAAiBN,EAAAO,SAASC,aAEnD,IAAIC,GAAKT,EAAAO,SAASG,eAAeL,EAAOC,EACxCF,GAAAO,KAAAzB,KAAMuB,EAEN,IAAIG,GAAI1B,IACR0B,GAAEC,MAAW,IAAHJ,EACVG,EAAEE,aAAeL,EACjBG,EAAEG,QAAUN,EAAG,IACfG,EAAEI,QAAUP,EAAG,IACfG,EAAEK,MAAQR,EAAG,KACbG,EAAEM,KAAOT,EAAG,MA8Ed,MApG8BxB,WAAAkB,EAAAC,GA6B7BV,OAAAyB,eAAIhB,EAAAV,UAAA,SDpBO2B,ICoBX,WAEC,MAAOlC,ODnBGmC,YAAY,EACZC,cAAc,ICuBzB5B,OAAAyB,eAAIhB,EAAAV,UAAA,QDpBO2B,ICoBX,WAEC,GAAIR,GAAI1B,KAAMqC,EAAIX,EAAEY,KAEpB,OADID,KAAGX,EAAEY,MAAQD,EAAI,GAAItB,GAAAwB,UAAUb,EAAEc,yBAC9BH,GDlBGF,YAAY,EACZC,cAAc,ICoBzBnB,EAAAV,UAAAkC,IAAA,SAAIC,GAEH,GAAG7B,EAAA8B,KAAKC,SAASF,GAChB,KAAM,IAAIG,OACT,yKAIF,OAAO,IAAI5B,GAASjB,KAAKwC,uBAAyBE,EAAMI,MAAMlB,eAG/DX,EAAAV,UAAAwC,QAAA,SAAQ5B,EAAcC,GAErB,MAFqB,UAAAA,IAAAA,EAAiBN,EAAAO,SAASC,cAExC,GAAIL,GAASjB,KAAKwC,uBAAyB1B,EAAAO,SAASG,eAAeL,EAAOC,KAI3EH,EAAA+B,KAAP,SAAY7B,EAAcC,GAEzB,MAAO,IAAIH,GAASE,EAAOC,IAGrBH,EAAAgC,SAAP,SAAgB9B,GAEf,MAAO,IAAIF,GAASE,EAAOL,EAAAO,SAAS6B,OAG9BjC,EAAAkC,UAAP,SAAiBhC,GAEhB,MAAO,IAAIF,GAASE,EAAOL,EAAAO,SAAS+B,QAG9BnC,EAAAoC,YAAP,SAAmBlC,GAElB,MAAO,IAAIF,GAASE,EAAOL,EAAAO,SAASiC,UAG9BrC,EAAAsC,YAAP,SAAmBpC,GAElB,MAAO,IAAIF,GAASE,EAAOL,EAAAO,SAASmC,UAG9BvC,EAAAwC,iBAAP,SAAwBtC,GAEvB,MAAO,IAAIF,GAASE,EAAOL,EAAAO,SAASC,eAG9BL,EAAAyC,UAAP,SAAiBvC,GAEhB,MAAO,IAAIF,GAASE,EAAOL,EAAAO,SAASsC,QAIrCnD,OAAAyB,eAAWhB,EAAA,QDvCAiB,ICuCX,WAEC,MAAO0B,KAAiBA,EAAe,GAAI3C,GAAS,KDtC1CkB,YAAY,EACZC,cAAc,ICuC1BnB,GApG8BD,EAAA6C,aAAjBjD,GAAAK,SAAQA,CAuGrB,IAAI2C,EAEJpD,QAAAyB,eAAArB,EAAA,cAAAO,OAAA,IDrCIP,EAAAA,WCqCWK","file":"System/Time/TimeSpan.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Originally based upon .NET source but with many additions and improvements.\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"../Types\", \"./TimeUnit\", \"./ClockTime\", \"./TimeQuantity\"], function (require, exports, Types_1, TimeUnit_1, ClockTime_1, TimeQuantity_1) {\n \"use strict\";\n var TimeSpan = (function (_super) {\n __extends(TimeSpan, _super);\n function TimeSpan(value, units) {\n if (units === void 0) { units = TimeUnit_1.TimeUnit.Milliseconds; }\n var ms = TimeUnit_1.TimeUnit.toMilliseconds(value, units);\n _super.call(this, ms);\n var _ = this;\n _.ticks = ms * 10000;\n _.milliseconds = ms;\n _.seconds = ms / 1000;\n _.minutes = ms / 60000;\n _.hours = ms / 3600000;\n _.days = ms / 86400000;\n }\n Object.defineProperty(TimeSpan.prototype, \"total\", {\n get: function () {\n return this;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TimeSpan.prototype, \"time\", {\n get: function () {\n var _ = this, t = _._time;\n if (!t)\n _._time = t = new ClockTime_1.ClockTime(_.getTotalMilliseconds());\n return t;\n },\n enumerable: true,\n configurable: true\n });\n TimeSpan.prototype.add = function (other) {\n if (Types_1.Type.isNumber(other))\n throw new Error(\"Use .addUnit(value:number,units:TimeUnit) to add a numerical value amount. Default units are milliseconds.\\n\" +\n \".add only supports quantifiable time values (ITimeTotal).\");\n return new TimeSpan(this.getTotalMilliseconds() + other.total.milliseconds);\n };\n TimeSpan.prototype.addUnit = function (value, units) {\n if (units === void 0) { units = TimeUnit_1.TimeUnit.Milliseconds; }\n return new TimeSpan(this.getTotalMilliseconds() + TimeUnit_1.TimeUnit.toMilliseconds(value, units));\n };\n TimeSpan.from = function (value, units) {\n return new TimeSpan(value, units);\n };\n TimeSpan.fromDays = function (value) {\n return new TimeSpan(value, TimeUnit_1.TimeUnit.Days);\n };\n TimeSpan.fromHours = function (value) {\n return new TimeSpan(value, TimeUnit_1.TimeUnit.Hours);\n };\n TimeSpan.fromMinutes = function (value) {\n return new TimeSpan(value, TimeUnit_1.TimeUnit.Minutes);\n };\n TimeSpan.fromSeconds = function (value) {\n return new TimeSpan(value, TimeUnit_1.TimeUnit.Seconds);\n };\n TimeSpan.fromMilliseconds = function (value) {\n return new TimeSpan(value, TimeUnit_1.TimeUnit.Milliseconds);\n };\n TimeSpan.fromTicks = function (value) {\n return new TimeSpan(value, TimeUnit_1.TimeUnit.Ticks);\n };\n Object.defineProperty(TimeSpan, \"zero\", {\n get: function () {\n return timeSpanZero || (timeSpanZero = new TimeSpan(0));\n },\n enumerable: true,\n configurable: true\n });\n return TimeSpan;\n }(TimeQuantity_1.TimeQuantity));\n exports.TimeSpan = TimeSpan;\n var timeSpanZero;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = TimeSpan;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Originally based upon .NET source but with many additions and improvements.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {Type} from \"../Types\";\r\nimport {TimeUnit} from \"./TimeUnit\";\r\nimport {ClockTime} from \"./ClockTime\";\r\nimport {TimeQuantity} from \"./TimeQuantity\";\r\nimport {Milliseconds, Ticks} from \"./HowMany\";\r\nimport {ITimeMeasurement} from \"./ITimeMeasurement\";\r\nimport {ITimeQuantity} from \"./ITimeQuantity\";\r\n\r\n\r\n/**\r\n * TimeSpan expands on TimeQuantity to provide an class that is similar to .NET's TimeSpan including many useful static methods.\r\n */\r\nexport class TimeSpan extends TimeQuantity implements ITimeMeasurement\r\n{\r\n\r\n\tticks:number;\r\n\tmilliseconds:number;\r\n\tseconds:number;\r\n\tminutes:number;\r\n\thours:number;\r\n\tdays:number;\r\n\r\n\t// In .NET the default type is Ticks, but for JavaScript, we will use Milliseconds.\r\n\tconstructor(value:number, units:TimeUnit = TimeUnit.Milliseconds)\r\n\t{\r\n\t\tvar ms = TimeUnit.toMilliseconds(value, units);\r\n\t\tsuper(ms);\r\n\r\n\t\tvar _ = this;\r\n\t\t_.ticks = ms*Ticks.Per.Millisecond;\r\n\t\t_.milliseconds = ms;\r\n\t\t_.seconds = ms/Milliseconds.Per.Second;\r\n\t\t_.minutes = ms/Milliseconds.Per.Minute;\r\n\t\t_.hours = ms/Milliseconds.Per.Hour;\r\n\t\t_.days = ms/Milliseconds.Per.Day;\r\n\t}\r\n\r\n\t/**\r\n\t * Provides an standard interface for acquiring the total time.\r\n\t * @returns {TimeSpan}\r\n\t */\r\n\tget total():TimeSpan\r\n\t{\r\n\t\treturn this;\r\n\t}\r\n\r\n\tprivate _time:ClockTime;\r\n\t// Instead of the confusing getTotal versus unit name, expose a 'ClockTime' value which reports the individual components.\r\n\tget time():ClockTime\r\n\t{\r\n\t\tvar _ = this, t = _._time;\r\n\t\tif(!t) _._time = t = new ClockTime(_.getTotalMilliseconds());\r\n\t\treturn t;\r\n\t}\r\n\r\n\tadd(other:ITimeQuantity):TimeSpan\r\n\t{\r\n\t\tif(Type.isNumber(other))\r\n\t\t\tthrow new Error(\r\n\t\t\t\t\"Use .addUnit(value:number,units:TimeUnit) to add a numerical value amount. Default units are milliseconds.\\n\" +\r\n\t\t\t\t\".add only supports quantifiable time values (ITimeTotal).\"\r\n\t\t\t);\r\n\r\n\t\treturn new TimeSpan(this.getTotalMilliseconds() + other.total.milliseconds);\r\n\t}\r\n\r\n\taddUnit(value:number, units:TimeUnit = TimeUnit.Milliseconds):TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(this.getTotalMilliseconds() + TimeUnit.toMilliseconds(value, units));\r\n\t}\r\n\r\n\r\n\tstatic from(value:number, units:TimeUnit)\r\n\t{\r\n\t\treturn new TimeSpan(value, units);\r\n\t}\r\n\r\n\tstatic fromDays(value:number):TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(value, TimeUnit.Days);\r\n\t}\r\n\r\n\tstatic fromHours(value:number):TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(value, TimeUnit.Hours);\r\n\t}\r\n\r\n\tstatic fromMinutes(value:number):TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(value, TimeUnit.Minutes);\r\n\t}\r\n\r\n\tstatic fromSeconds(value:number):TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(value, TimeUnit.Seconds);\r\n\t}\r\n\r\n\tstatic fromMilliseconds(value:number):TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(value, TimeUnit.Milliseconds);\r\n\t}\r\n\r\n\tstatic fromTicks(value:number):TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(value, TimeUnit.Ticks);\r\n\t}\r\n\r\n\r\n\tstatic get zero():TimeSpan\r\n\t{\r\n\t\treturn timeSpanZero || (timeSpanZero = new TimeSpan(0));\r\n\t}\r\n}\r\n\r\n\r\nvar timeSpanZero:TimeSpan;\r\n\r\nexport default TimeSpan;"]} \ No newline at end of file diff --git a/dist/amd/System/Time/TimeStamp.d.ts b/dist/amd/System/Time/TimeStamp.d.ts index 797a7d1a..5e85f277 100644 --- a/dist/amd/System/Time/TimeStamp.d.ts +++ b/dist/amd/System/Time/TimeStamp.d.ts @@ -1,12 +1,11 @@ -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -export default class TimeStamp implements ITimeStamp, IDateTime { +import { ITimeStamp } from "./ITimeStamp"; +import { IDateTime } from "./IDateTime"; +import { Gregorian } from "./Calendars"; +export declare class TimeStamp implements ITimeStamp, IDateTime { year: number; month: Gregorian.Month; day: number; @@ -19,3 +18,4 @@ export default class TimeStamp implements ITimeStamp, IDateTime { toJsDate(): Date; static from(d: Date | IDateTime): TimeStamp; } +export default TimeStamp; diff --git a/dist/amd/System/Time/TimeStamp.js b/dist/amd/System/Time/TimeStamp.js index 33ffdedb..5620dd34 100644 --- a/dist/amd/System/Time/TimeStamp.js +++ b/dist/amd/System/Time/TimeStamp.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -define(["require","exports","../Types"],function(e,t,i){"use strict";var o=function(){function e(e,t,i,o,n,s,r,a){void 0===i&&(i=1),void 0===o&&(o=0),void 0===n&&(n=0),void 0===s&&(s=0),void 0===r&&(r=0),void 0===a&&(a=0),this.year=e,this.month=t,this.day=i,this.hour=o,this.minute=n,this.second=s,this.millisecond=r,this.tick=a,Object.freeze(this)}return e.prototype.toJsDate=function(){var e=this;return new Date(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond+e.tick/1e4)},e.from=function(t){if(t instanceof Date||!i["default"].hasMember(t,"toJsDate")||(t=t.toJsDate()),t instanceof Date)return new e(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds());throw Error("Invalid date type.")},e}();Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=o}); +define(["require","exports","../Types"],function(e,t,i){"use strict";var o=function(){function e(e,t,i,o,n,s,r,a){void 0===i&&(i=1),void 0===o&&(o=0),void 0===n&&(n=0),void 0===s&&(s=0),void 0===r&&(r=0),void 0===a&&(a=0),this.year=e,this.month=t,this.day=i,this.hour=o,this.minute=n,this.second=s,this.millisecond=r,this.tick=a,Object.freeze(this)}return e.prototype.toJsDate=function(){var e=this;return new Date(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond+e.tick/1e4)},e.from=function(t){if(t instanceof Date||!i.Type.hasMember(t,"toJsDate")||(t=t.toJsDate()),t instanceof Date)return new e(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds());throw Error("Invalid date type.")},e}();t.TimeStamp=o,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=o}); //# sourceMappingURL=TimeStamp.js.map diff --git a/dist/amd/System/Time/TimeStamp.js.map b/dist/amd/System/Time/TimeStamp.js.map index b48e32f0..7f6d0e8d 100644 --- a/dist/amd/System/Time/TimeStamp.js.map +++ b/dist/amd/System/Time/TimeStamp.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Time/TimeStamp.js","System/Time/TimeStamp.ts"],"names":["define","require","exports","Types_1","TimeStamp","year","month","day","hour","minute","second","millisecond","tick","this","Object","freeze","prototype","toJsDate","_","Date","from","d","hasMember","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","Error","defineProperty","value"],"mappings":";;;;AAIAA,QAAQ,UAAW,UAAW,YAAa,SAAUC,EAASC,EAASC,GCKvE,YAOA,IAAAC,GAAA,WAIC,QAAAA,GACQC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GALP,SAAAL,IAAAA,EAAA,GACA,SAAAC,IAAAA,EAAA,GACA,SAAAC,IAAAA,EAAA,GACA,SAAAC,IAAAA,EAAA,GACA,SAAAC,IAAAA,EAAA,GACA,SAAAC,IAAAA,EAAA,GAPOC,KAAAR,KAAAA,EACAQ,KAAAP,MAAAA,EACAO,KAAAN,IAAAA,EACAM,KAAAL,KAAAA,EACAK,KAAAJ,OAAAA,EACAI,KAAAH,OAAAA,EACAG,KAAAF,YAAAA,EACAE,KAAAD,KAAAA,EAKPE,OAAOC,OAAOF,MA8BhB,MA3BCT,GAAAY,UAAAC,SAAA,WAEC,GAAIC,GAAIL,IACR,OAAO,IAAIM,MAAKD,EAAEb,KAAMa,EAAEZ,MAAOY,EAAEX,IAAKW,EAAEV,KAAMU,EAAET,OAAQS,EAAER,OAAQQ,EAAEP,YAAcO,EAAEN,KAAK,MAGrFR,EAAAgB,KAAP,SAAYC,GAIX,GAFMA,YAAaF,QAAShB,EAAAA,WAAKmB,UAAUD,EAAE,cAC5CA,EAAgBA,EAAGJ,YACjBI,YAAaF,MAEf,MAAO,IAAIf,GACViB,EAAEE,cACFF,EAAEG,WACFH,EAAEI,UACFJ,EAAEK,WACFL,EAAEM,aACFN,EAAEO,aACFP,EAAEQ,kBAKH,MAAMC,OAAM,uBAGf1B,IA/CAU,QAAAiB,eAAA7B,EAAA,cAAA8B,OAAA,IDyBI9B,EAAAA,WAAkBE","file":"System/Time/TimeStamp.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\", '../Types'], function (require, exports, Types_1) {\n 'use strict';\n var TimeStamp = (function () {\n function TimeStamp(year, month, day, hour, minute, second, millisecond, tick) {\n if (day === void 0) { day = 1; }\n if (hour === void 0) { hour = 0; }\n if (minute === void 0) { minute = 0; }\n if (second === void 0) { second = 0; }\n if (millisecond === void 0) { millisecond = 0; }\n if (tick === void 0) { tick = 0; }\n this.year = year;\n this.month = month;\n this.day = day;\n this.hour = hour;\n this.minute = minute;\n this.second = second;\n this.millisecond = millisecond;\n this.tick = tick;\n Object.freeze(this);\n }\n TimeStamp.prototype.toJsDate = function () {\n var _ = this;\n return new Date(_.year, _.month, _.day, _.hour, _.minute, _.second, _.millisecond + _.tick / 10000);\n };\n TimeStamp.from = function (d) {\n if (!(d instanceof Date) && Types_1.default.hasMember(d, 'toJsDate'))\n d = d.toJsDate();\n if (d instanceof Date) {\n return new TimeStamp(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes(), d.getSeconds(), d.getMilliseconds());\n }\n else {\n throw Error('Invalid date type.');\n }\n };\n return TimeStamp;\n }());\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = TimeStamp;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport Type from '../Types';\r\n\r\n/**\r\n * An alternative to Date or DateTime. Is a model representing the exact date and time.\r\n */\r\nexport default\r\nclass TimeStamp implements ITimeStamp, IDateTime\r\n{\r\n\r\n\tconstructor(\r\n\t\tpublic year:number,\r\n\t\tpublic month:Gregorian.Month,\r\n\t\tpublic day:number = 1,\r\n\t\tpublic hour:number = 0,\r\n\t\tpublic minute:number = 0,\r\n\t\tpublic second:number = 0,\r\n\t\tpublic millisecond:number = 0,\r\n\t\tpublic tick:number = 0)\r\n\t{\r\n\r\n\t\t// TODO: Add validation or properly carry out of range values...\r\n\r\n\t\tObject.freeze(this);\r\n\t}\r\n\r\n\ttoJsDate():Date\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn new Date(_.year, _.month, _.day, _.hour, _.minute, _.second, _.millisecond + _.tick/HowMany.Ticks.Per.Millisecond);\r\n\t}\r\n\r\n\tstatic from(d:Date|IDateTime):TimeStamp\r\n\t{\r\n\t\tif (!(d instanceof Date) && Type.hasMember(d,'toJsDate'))\r\n\t\t\td = (d).toJsDate();\r\n\t\tif(d instanceof Date)\r\n\t\t{\r\n\t\t\treturn new TimeStamp(\r\n\t\t\t\td.getFullYear(),\r\n\t\t\t\td.getMonth(),\r\n\t\t\t\td.getDate(),\r\n\t\t\t\td.getHours(),\r\n\t\t\t\td.getMinutes(),\r\n\t\t\t\td.getSeconds(),\r\n\t\t\t\td.getMilliseconds()\r\n\t\t\t);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthrow Error('Invalid date type.');\r\n\t\t}\r\n\t}\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Time/TimeStamp.js","System/Time/TimeStamp.ts"],"names":["define","require","exports","Types_1","TimeStamp","year","month","day","hour","minute","second","millisecond","tick","this","Object","freeze","prototype","toJsDate","_","Date","from","d","Type","hasMember","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","Error","defineProperty","value"],"mappings":";;;;AAIAA,QAAQ,UAAW,UAAW,YAAa,SAAUC,EAASC,EAASC,GACnE,YCSJ,IAAAC,GAAA,WAGC,QAAAA,GACQC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GALP,SAAAL,IAAAA,EAAA,GACA,SAAAC,IAAAA,EAAA,GACA,SAAAC,IAAAA,EAAA,GACA,SAAAC,IAAAA,EAAA,GACA,SAAAC,IAAAA,EAAA,GACA,SAAAC,IAAAA,EAAA,GAPOC,KAAAR,KAAAA,EACAQ,KAAAP,MAAAA,EACAO,KAAAN,IAAAA,EACAM,KAAAL,KAAAA,EACAK,KAAAJ,OAAAA,EACAI,KAAAH,OAAAA,EACAG,KAAAF,YAAAA,EACAE,KAAAD,KAAAA,EAKPE,OAAOC,OAAOF,MA8BhB,MA3BCT,GAAAY,UAAAC,SAAA,WAEC,GAAIC,GAAIL,IACR,OAAO,IAAIM,MAAKD,EAAEb,KAAMa,EAAEZ,MAAOY,EAAEX,IAAKW,EAAEV,KAAMU,EAAET,OAAQS,EAAER,OAAQQ,EAAEP,YAAcO,EAAEN,KAAK,MAGrFR,EAAAgB,KAAP,SAAYC,GAIX,GAFKA,YAAaF,QAAShB,EAAAmB,KAAKC,UAAUF,EAAG,cAC5CA,EAAgBA,EAAGJ,YACjBI,YAAaF,MAEf,MAAO,IAAIf,GACViB,EAAEG,cACFH,EAAEI,WACFJ,EAAEK,UACFL,EAAEM,WACFN,EAAEO,aACFP,EAAEQ,aACFR,EAAES,kBAKH,MAAMC,OAAM,uBAGf3B,IA9CaF,GAAAE,UAASA,EAgDtBU,OAAAkB,eAAA9B,EAAA,cAAA+B,OAAA,IDpBI/B,EAAAA,WCoBWE","file":"System/Time/TimeStamp.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\", \"../Types\"], function (require, exports, Types_1) {\n \"use strict\";\n var TimeStamp = (function () {\n function TimeStamp(year, month, day, hour, minute, second, millisecond, tick) {\n if (day === void 0) { day = 1; }\n if (hour === void 0) { hour = 0; }\n if (minute === void 0) { minute = 0; }\n if (second === void 0) { second = 0; }\n if (millisecond === void 0) { millisecond = 0; }\n if (tick === void 0) { tick = 0; }\n this.year = year;\n this.month = month;\n this.day = day;\n this.hour = hour;\n this.minute = minute;\n this.second = second;\n this.millisecond = millisecond;\n this.tick = tick;\n Object.freeze(this);\n }\n TimeStamp.prototype.toJsDate = function () {\n var _ = this;\n return new Date(_.year, _.month, _.day, _.hour, _.minute, _.second, _.millisecond + _.tick / 10000);\n };\n TimeStamp.from = function (d) {\n if (!(d instanceof Date) && Types_1.Type.hasMember(d, 'toJsDate'))\n d = d.toJsDate();\n if (d instanceof Date) {\n return new TimeStamp(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes(), d.getSeconds(), d.getMilliseconds());\n }\n else {\n throw Error('Invalid date type.');\n }\n };\n return TimeStamp;\n }());\n exports.TimeStamp = TimeStamp;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = TimeStamp;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {Type} from \"../Types\";\r\nimport {ITimeStamp} from \"./ITimeStamp\";\r\nimport {Ticks} from \"./HowMany\";\r\nimport {IDateTime} from \"./IDateTime\";\r\nimport {Gregorian} from \"./Calendars\";\r\n\r\n/**\r\n * An alternative to Date or DateTime. Is a model representing the exact date and time.\r\n */\r\nexport class TimeStamp implements ITimeStamp, IDateTime\r\n{\r\n\r\n\tconstructor(\r\n\t\tpublic year:number,\r\n\t\tpublic month:Gregorian.Month,\r\n\t\tpublic day:number = 1,\r\n\t\tpublic hour:number = 0,\r\n\t\tpublic minute:number = 0,\r\n\t\tpublic second:number = 0,\r\n\t\tpublic millisecond:number = 0,\r\n\t\tpublic tick:number = 0)\r\n\t{\r\n\r\n\t\t// TODO: Add validation or properly carry out of range values...\r\n\r\n\t\tObject.freeze(this);\r\n\t}\r\n\r\n\ttoJsDate():Date\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn new Date(_.year, _.month, _.day, _.hour, _.minute, _.second, _.millisecond + _.tick/Ticks.Per.Millisecond);\r\n\t}\r\n\r\n\tstatic from(d:Date|IDateTime):TimeStamp\r\n\t{\r\n\t\tif(!(d instanceof Date) && Type.hasMember(d, 'toJsDate'))\r\n\t\t\td = (d).toJsDate();\r\n\t\tif(d instanceof Date)\r\n\t\t{\r\n\t\t\treturn new TimeStamp(\r\n\t\t\t\td.getFullYear(),\r\n\t\t\t\td.getMonth(),\r\n\t\t\t\td.getDate(),\r\n\t\t\t\td.getHours(),\r\n\t\t\t\td.getMinutes(),\r\n\t\t\t\td.getSeconds(),\r\n\t\t\t\td.getMilliseconds()\r\n\t\t\t);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthrow Error('Invalid date type.');\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default TimeStamp;"]} \ No newline at end of file diff --git a/dist/amd/System/Time/TimeUnit.d.ts b/dist/amd/System/Time/TimeUnit.d.ts index 0ccc5db7..a312eb74 100644 --- a/dist/amd/System/Time/TimeUnit.d.ts +++ b/dist/amd/System/Time/TimeUnit.d.ts @@ -1,11 +1,10 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Originally based upon .NET source but with many additions and improvements. * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -declare enum TimeUnit { +import { ITimeQuantity } from "./ITimeQuantity"; +export declare enum TimeUnit { Ticks = 0, Milliseconds = 1, Seconds = 2, @@ -13,7 +12,7 @@ declare enum TimeUnit { Hours = 4, Days = 5, } -declare module TimeUnit { +export declare module TimeUnit { function toMilliseconds(value: number, units?: TimeUnit): number; function fromMilliseconds(ms: number, units: TimeUnit): number; function from(quantity: ITimeQuantity, unit: TimeUnit): number; diff --git a/dist/amd/System/Time/TimeUnit.js b/dist/amd/System/Time/TimeUnit.js index cc436592..e78d7c76 100644 --- a/dist/amd/System/Time/TimeUnit.js +++ b/dist/amd/System/Time/TimeUnit.js @@ -3,5 +3,5 @@ * Originally based upon .NET source but with many additions and improvements. * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -define(["require","exports"],function(e,s){"use strict";var i;!function(e){e[e.Ticks=0]="Ticks",e[e.Milliseconds=1]="Milliseconds",e[e.Seconds=2]="Seconds",e[e.Minutes=3]="Minutes",e[e.Hours=4]="Hours",e[e.Days=5]="Days"}(i||(i={}));var i;!function(e){function s(s,i){switch(void 0===i&&(i=e.Milliseconds),i){case e.Days:s*=24;case e.Hours:s*=60;case e.Minutes:s*=60;case e.Seconds:s*=1e3;case e.Milliseconds:return s;case e.Ticks:return s/1e4;default:throw new Error("Invalid TimeUnit.")}}function i(s,i){switch(i){case e.Days:return s/864e5;case e.Hours:return s/36e5;case e.Minutes:return s/6e4;case e.Seconds:return s/1e3;case e.Milliseconds:return s;case e.Ticks:return 1e4*s;default:throw new Error("Invalid TimeUnit.")}}function n(e,s){return e&&i(e.getTotalMilliseconds(),s)}function r(s){if(isNaN(s)||s>e.Days||se.Days||i TimeUnit.Days || unit < TimeUnit.Ticks || Math.floor(unit) !== unit)\n throw new Error(\"Invalid TimeUnit.\");\n return true;\n }\n TimeUnit.assertValid = assertValid;\n })(TimeUnit || (TimeUnit = {}));\n Object.freeze(TimeUnit);\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = TimeUnit;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Originally based upon .NET source but with many additions and improvements.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n\r\n\r\nenum TimeUnit\r\n{\r\n\tTicks,\r\n\tMilliseconds,\r\n\tSeconds,\r\n\tMinutes,\r\n\tHours,\r\n\tDays\r\n} // Earth Days\r\n\r\nmodule TimeUnit\r\n{\r\n\r\n\texport function toMilliseconds(\r\n\t\tvalue:number,\r\n\t\tunits:TimeUnit = TimeUnit.Milliseconds):number\r\n\t{\r\n\t\t// noinspection FallThroughInSwitchStatementJS\r\n\t\tswitch(units)\r\n\t\t{\r\n\t\t\tcase TimeUnit.Days:\r\n\t\t\t\tvalue *= HowMany.Hours.Per.Day;\r\n\t\t\tcase TimeUnit.Hours:\r\n\t\t\t\tvalue *= HowMany.Minutes.Per.Hour;\r\n\t\t\tcase TimeUnit.Minutes:\r\n\t\t\t\tvalue *= HowMany.Seconds.Per.Minute;\r\n\t\t\tcase TimeUnit.Seconds:\r\n\t\t\t\tvalue *= HowMany.Milliseconds.Per.Second;\r\n\t\t\tcase TimeUnit.Milliseconds:\r\n\t\t\t\treturn value;\r\n\t\t\tcase TimeUnit.Ticks:\r\n\t\t\t\treturn value/HowMany.Ticks.Per.Millisecond;\r\n\t\t\tdefault:\r\n\t\t\t\tthrow new Error(\"Invalid TimeUnit.\");\r\n\t\t}\r\n\t}\r\n\r\n\texport function fromMilliseconds(\r\n\t\tms:number,\r\n\t\tunits:TimeUnit)\r\n\t{\r\n\t\tswitch(units)\r\n\t\t{\r\n\t\t\tcase TimeUnit.Days:\r\n\t\t\t\treturn ms/HowMany.Milliseconds.Per.Day;\r\n\t\t\tcase TimeUnit.Hours:\r\n\t\t\t\treturn ms/HowMany.Milliseconds.Per.Hour;\r\n\t\t\tcase TimeUnit.Minutes:\r\n\t\t\t\treturn ms/HowMany.Milliseconds.Per.Minute;\r\n\t\t\tcase TimeUnit.Seconds:\r\n\t\t\t\treturn ms/HowMany.Milliseconds.Per.Second;\r\n\t\t\tcase TimeUnit.Milliseconds:\r\n\t\t\t\treturn ms;\r\n\t\t\tcase TimeUnit.Ticks:\r\n\t\t\t\treturn ms*HowMany.Ticks.Per.Millisecond;\r\n\t\t\tdefault:\r\n\t\t\t\tthrow new Error(\"Invalid TimeUnit.\");\r\n\t\t}\r\n\t}\r\n\r\n\texport function from(quantity:ITimeQuantity, unit:TimeUnit):number {\r\n\t\treturn quantity && fromMilliseconds(quantity.getTotalMilliseconds(),unit);\r\n\t}\r\n\r\n\r\n\texport function assertValid(unit:TimeUnit):boolean\r\n\t{\r\n\t\tif(isNaN(unit) || unit>TimeUnit.Days || unit TimeUnit.Days || unit < TimeUnit.Ticks || Math.floor(unit) !== unit)\n throw new Error(\"Invalid TimeUnit.\");\n return true;\n }\n TimeUnit.assertValid = assertValid;\n })(TimeUnit = exports.TimeUnit || (exports.TimeUnit = {}));\n Object.freeze(TimeUnit);\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = TimeUnit;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Originally based upon .NET source but with many additions and improvements.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {Hours, Minutes, Seconds, Milliseconds, Ticks} from \"./HowMany\";\r\nimport {ITimeQuantity} from \"./ITimeQuantity\";\r\n\r\nexport enum TimeUnit\r\n{\r\n\tTicks,\r\n\tMilliseconds,\r\n\tSeconds,\r\n\tMinutes,\r\n\tHours,\r\n\tDays\r\n} // Earth Days\r\n\r\nexport module TimeUnit\r\n{\r\n\r\n\texport function toMilliseconds(\r\n\t\tvalue:number,\r\n\t\tunits:TimeUnit = TimeUnit.Milliseconds):number\r\n\t{\r\n\t\t// noinspection FallThroughInSwitchStatementJS\r\n\t\tswitch(units)\r\n\t\t{\r\n\t\t\tcase TimeUnit.Days:\r\n\t\t\t\tvalue *= Hours.Per.Day;\r\n\t\t\tcase TimeUnit.Hours:\r\n\t\t\t\tvalue *= Minutes.Per.Hour;\r\n\t\t\tcase TimeUnit.Minutes:\r\n\t\t\t\tvalue *= Seconds.Per.Minute;\r\n\t\t\tcase TimeUnit.Seconds:\r\n\t\t\t\tvalue *= Milliseconds.Per.Second;\r\n\t\t\tcase TimeUnit.Milliseconds:\r\n\t\t\t\treturn value;\r\n\t\t\tcase TimeUnit.Ticks:\r\n\t\t\t\treturn value/Ticks.Per.Millisecond;\r\n\t\t\tdefault:\r\n\t\t\t\tthrow new Error(\"Invalid TimeUnit.\");\r\n\t\t}\r\n\t}\r\n\r\n\texport function fromMilliseconds(\r\n\t\tms:number,\r\n\t\tunits:TimeUnit)\r\n\t{\r\n\t\tswitch(units)\r\n\t\t{\r\n\t\t\tcase TimeUnit.Days:\r\n\t\t\t\treturn ms/Milliseconds.Per.Day;\r\n\t\t\tcase TimeUnit.Hours:\r\n\t\t\t\treturn ms/Milliseconds.Per.Hour;\r\n\t\t\tcase TimeUnit.Minutes:\r\n\t\t\t\treturn ms/Milliseconds.Per.Minute;\r\n\t\t\tcase TimeUnit.Seconds:\r\n\t\t\t\treturn ms/Milliseconds.Per.Second;\r\n\t\t\tcase TimeUnit.Milliseconds:\r\n\t\t\t\treturn ms;\r\n\t\t\tcase TimeUnit.Ticks:\r\n\t\t\t\treturn ms*Ticks.Per.Millisecond;\r\n\t\t\tdefault:\r\n\t\t\t\tthrow new Error(\"Invalid TimeUnit.\");\r\n\t\t}\r\n\t}\r\n\r\n\texport function from(quantity:ITimeQuantity, unit:TimeUnit):number\r\n\t{\r\n\t\treturn quantity && fromMilliseconds(quantity.getTotalMilliseconds(), unit);\r\n\t}\r\n\r\n\r\n\texport function assertValid(unit:TimeUnit):boolean\r\n\t{\r\n\t\tif(isNaN(unit) || unit>TimeUnit.Days || unit -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import TimeUnit from './TimeUnit'; -import TimeQuantity from './TimeQuantity'; +import { TimeUnit } from "./TimeUnit"; +import { TimeQuantity } from "./TimeQuantity"; +import { ITimeQuantity } from "./ITimeQuantity"; export default class TimeUnitValue extends TimeQuantity { private _units; constructor(value: number | ITimeQuantity, _units: TimeUnit); diff --git a/dist/amd/System/Time/TimeUnitValue.js b/dist/amd/System/Time/TimeUnitValue.js index 2bda37c4..4e4c26b0 100644 --- a/dist/amd/System/Time/TimeUnitValue.js +++ b/dist/amd/System/Time/TimeUnitValue.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)};define(["require","exports","./TimeUnit","./TimeQuantity"],function(t,e,n,i){"use strict";function o(t,e){return n["default"].fromMilliseconds(t.getTotalMilliseconds(),e)}var r=function(t){function e(e,i){t.call(this,"number"==typeof e?e:o(e,i)),this._units=i,n["default"].assertValid(i)}return __extends(e,t),Object.defineProperty(e.prototype,"value",{get:function(){return this._quantity},set:function(t){this._total=null,this._quantity=t},enumerable:!0,configurable:!0}),e.prototype.getTotalMilliseconds=function(){return n["default"].toMilliseconds(this._quantity,this._units)},Object.defineProperty(e.prototype,"units",{get:function(){return this._units},enumerable:!0,configurable:!0}),e.prototype.to=function(t){return void 0===t&&(t=this.units),e.from(this,t)},e.from=function(t,i){return void 0===i&&(i=n["default"].Milliseconds),new e(t,i)},e}(i["default"]);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r}); +var __extends=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)};define(["require","exports","./TimeUnit","./TimeQuantity"],function(t,e,n,i){"use strict";function o(t,e){return n.TimeUnit.fromMilliseconds(t.getTotalMilliseconds(),e)}var r=function(t){function e(e,i){t.call(this,"number"==typeof e?e:o(e,i)),this._units=i,n.TimeUnit.assertValid(i)}return __extends(e,t),Object.defineProperty(e.prototype,"value",{get:function(){return this._quantity},set:function(t){this._total=null,this._quantity=t},enumerable:!0,configurable:!0}),e.prototype.getTotalMilliseconds=function(){return n.TimeUnit.toMilliseconds(this._quantity,this._units)},Object.defineProperty(e.prototype,"units",{get:function(){return this._units},enumerable:!0,configurable:!0}),e.prototype.to=function(t){return void 0===t&&(t=this.units),e.from(this,t)},e.from=function(t,i){return void 0===i&&(i=n.TimeUnit.Milliseconds),new e(t,i)},e}(i.TimeQuantity);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r}); //# sourceMappingURL=TimeUnitValue.js.map diff --git a/dist/amd/System/Time/TimeUnitValue.js.map b/dist/amd/System/Time/TimeUnitValue.js.map index f9b93b5d..e026307e 100644 --- a/dist/amd/System/Time/TimeUnitValue.js.map +++ b/dist/amd/System/Time/TimeUnitValue.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Time/TimeUnitValue.js","System/Time/TimeUnitValue.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","TimeUnit_1","TimeQuantity_1","getUnitQuantityFrom","q","units","fromMilliseconds","getTotalMilliseconds","TimeUnitValue","_super","value","_units","call","assertValid","defineProperty","get","_quantity","set","v","_total","enumerable","configurable","toMilliseconds","to","from","Milliseconds"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,aAAc,kBAAmB,SAAUC,EAASC,EAASC,EAAYC,GCAvG,YAuDA,SAAAC,GAA6BC,EAAiBC,GAE7C,MAAOJ,GAAAA,WAASK,iBAAiBF,EAAEG,uBAAwBF,GAhD5D,GAAAG,GAAA,SAAAC,GAIC,QAAAD,GAAYE,EAAoCC,GAE/CF,EAAAG,KAAAxB,KAAqB,gBAAT,GACDsB,EACRP,EAAmCO,EAAOC,IAJEvB,KAAAuB,OAAAA,EAK/CV,EAAAA,WAASY,YAAYF,GAmCvB,MA3C4BxB,WAAAqB,EAAAC,GAW3Bb,OAAAkB,eAAIN,EAAAb,UAAA,SDTOoB,ICSX,WAEC,MAAO3B,MAAK4B,WDRFC,ICWX,SAAUC,GAET9B,KAAK+B,OAAS,KACd/B,KAAK4B,UAAYE,GDVPE,YAAY,EACZC,cAAc,ICYzBb,EAAAb,UAAAY,qBAAA,WAEC,MAAON,GAAAA,WAASqB,eAAelC,KAAK4B,UAAW5B,KAAKuB,SAIrDf,OAAAkB,eAAIN,EAAAb,UAAA,SDZOoB,ICYX,WAEC,MAAO3B,MAAKuB,QDXFS,YAAY,EACZC,cAAc,ICazBb,EAAAb,UAAA4B,GAAA,SAAGlB,GAEF,MAFE,UAAAA,IAAAA,EAAiBjB,KAAKiB,OAEjBG,EAAcgB,KAAKpC,KAAKiB,IAGzBG,EAAAgB,KAAP,SAAYd,EAA4BL,GAEvC,MAFuC,UAAAA,IAAAA,EAAiBJ,EAAAA,WAASwB,cAE1D,GAAIjB,GAAcE,EAAOL,IAGlCG,GA3C4BN,EAAAA,WAD5BN,QAAAkB,eAAAd,EAAA,cAAAU,OAAA,IDkCIV,EAAAA,WAAkBQ","file":"System/Time/TimeUnitValue.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", './TimeUnit', './TimeQuantity'], function (require, exports, TimeUnit_1, TimeQuantity_1) {\n 'use strict';\n var TimeUnitValue = (function (_super) {\n __extends(TimeUnitValue, _super);\n function TimeUnitValue(value, _units) {\n _super.call(this, typeof (value) == 'number'\n ? value\n : getUnitQuantityFrom(value, _units));\n this._units = _units;\n TimeUnit_1.default.assertValid(_units);\n }\n Object.defineProperty(TimeUnitValue.prototype, \"value\", {\n get: function () {\n return this._quantity;\n },\n set: function (v) {\n this._total = null;\n this._quantity = v;\n },\n enumerable: true,\n configurable: true\n });\n TimeUnitValue.prototype.getTotalMilliseconds = function () {\n return TimeUnit_1.default.toMilliseconds(this._quantity, this._units);\n };\n Object.defineProperty(TimeUnitValue.prototype, \"units\", {\n get: function () {\n return this._units;\n },\n enumerable: true,\n configurable: true\n });\n TimeUnitValue.prototype.to = function (units) {\n if (units === void 0) { units = this.units; }\n return TimeUnitValue.from(this, units);\n };\n TimeUnitValue.from = function (value, units) {\n if (units === void 0) { units = TimeUnit_1.default.Milliseconds; }\n return new TimeUnitValue(value, units);\n };\n return TimeUnitValue;\n }(TimeQuantity_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = TimeUnitValue;\n function getUnitQuantityFrom(q, units) {\n return TimeUnit_1.default.fromMilliseconds(q.getTotalMilliseconds(), units);\n }\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport {areEqual, compare} from '../Compare';\r\nimport TimeUnit from './TimeUnit';\r\nimport TimeQuantity from './TimeQuantity';\r\n\r\n/**\r\n * TimeUnitValue allows for passing around a reference to a changeable measure of time coerced by its unit type.\r\n */\r\nexport default\r\nclass TimeUnitValue extends TimeQuantity\r\n{\r\n\r\n\tconstructor(value:number|ITimeQuantity, private _units:TimeUnit)\r\n\t{\r\n\t\tsuper(typeof(value)=='number'\r\n\t\t\t? value\r\n\t\t\t: getUnitQuantityFrom(value, _units));\r\n\t\tTimeUnit.assertValid(_units);\r\n\t}\r\n\r\n\tget value():number\r\n\t{\r\n\t\treturn this._quantity;\r\n\t}\r\n\r\n\tset value(v:number)\r\n\t{\r\n\t\tthis._total = null;\r\n\t\tthis._quantity = v;\r\n\t}\r\n\r\n\tgetTotalMilliseconds():number\r\n\t{\r\n\t\treturn TimeUnit.toMilliseconds(this._quantity, this._units);\r\n\t}\r\n\r\n\t// To avoid confusion, the unit type can only be set once at construction.\r\n\tget units():TimeUnit\r\n\t{\r\n\t\treturn this._units;\r\n\t}\r\n\r\n\tto(units:TimeUnit = this.units):TimeUnitValue\r\n\t{\r\n\t\treturn TimeUnitValue.from(this,units);\r\n\t}\r\n\r\n\tstatic from(value:number|ITimeQuantity, units:TimeUnit = TimeUnit.Milliseconds):TimeUnitValue\r\n\t{\r\n\t\treturn new TimeUnitValue(value, units);\r\n\t}\r\n\r\n}\r\n\r\nfunction getUnitQuantityFrom(q:ITimeQuantity, units:TimeUnit)\r\n{\r\n\treturn TimeUnit.fromMilliseconds(q.getTotalMilliseconds(), units);\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Time/TimeUnitValue.js","System/Time/TimeUnitValue.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","TimeUnit_1","TimeQuantity_1","getUnitQuantityFrom","q","units","TimeUnit","fromMilliseconds","getTotalMilliseconds","TimeUnitValue","_super","value","_units","call","assertValid","defineProperty","get","_quantity","set","v","_total","enumerable","configurable","toMilliseconds","to","from","Milliseconds","TimeQuantity"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,aAAc,kBAAmB,SAAUC,EAASC,EAASC,EAAYC,GACnG,YCiDJ,SAAAC,GAA6BC,EAAiBC,GAE7C,MAAOJ,GAAAK,SAASC,iBAAiBH,EAAEI,uBAAwBH,GAhD5D,GAAAI,GAAA,SAAAC,GAIC,QAAAD,GAAYE,EAAoCC,GAE/CF,EAAAG,KAAAzB,KAAqB,gBAAT,GACDuB,EACRR,EAAmCQ,EAAOC,IAJExB,KAAAwB,OAAAA,EAK/CX,EAAAK,SAASQ,YAAYF,GAmCvB,MA3C4BzB,WAAAsB,EAAAC,GAW3Bd,OAAAmB,eAAIN,EAAAd,UAAA,SDJOqB,ICIX,WAEC,MAAO5B,MAAK6B,WDHFC,ICMX,SAAUC,GAET/B,KAAKgC,OAAS,KACdhC,KAAK6B,UAAYE,GDLPE,YAAY,EACZC,cAAc,ICOzBb,EAAAd,UAAAa,qBAAA,WAEC,MAAOP,GAAAK,SAASiB,eAAenC,KAAK6B,UAAW7B,KAAKwB,SAIrDhB,OAAAmB,eAAIN,EAAAd,UAAA,SDPOqB,ICOX,WAEC,MAAO5B,MAAKwB,QDNFS,YAAY,EACZC,cAAc,ICQzBb,EAAAd,UAAA6B,GAAA,SAAGnB,GAEF,MAFE,UAAAA,IAAAA,EAAiBjB,KAAKiB,OAEjBI,EAAcgB,KAAKrC,KAAKiB,IAGzBI,EAAAgB,KAAP,SAAYd,EAA4BN,GAEvC,MAFuC,UAAAA,IAAAA,EAAiBJ,EAAAK,SAASoB,cAE1D,GAAIjB,GAAcE,EAAON,IAGlCI,GA3C4BP,EAAAyB,aAD5B/B,QAAAmB,eAAAf,EAAA,cAAAW,OAAA,IDuCIX,EAAAA,WAAkBS","file":"System/Time/TimeUnitValue.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"./TimeUnit\", \"./TimeQuantity\"], function (require, exports, TimeUnit_1, TimeQuantity_1) {\n \"use strict\";\n var TimeUnitValue = (function (_super) {\n __extends(TimeUnitValue, _super);\n function TimeUnitValue(value, _units) {\n _super.call(this, typeof (value) == 'number'\n ? value\n : getUnitQuantityFrom(value, _units));\n this._units = _units;\n TimeUnit_1.TimeUnit.assertValid(_units);\n }\n Object.defineProperty(TimeUnitValue.prototype, \"value\", {\n get: function () {\n return this._quantity;\n },\n set: function (v) {\n this._total = null;\n this._quantity = v;\n },\n enumerable: true,\n configurable: true\n });\n TimeUnitValue.prototype.getTotalMilliseconds = function () {\n return TimeUnit_1.TimeUnit.toMilliseconds(this._quantity, this._units);\n };\n Object.defineProperty(TimeUnitValue.prototype, \"units\", {\n get: function () {\n return this._units;\n },\n enumerable: true,\n configurable: true\n });\n TimeUnitValue.prototype.to = function (units) {\n if (units === void 0) { units = this.units; }\n return TimeUnitValue.from(this, units);\n };\n TimeUnitValue.from = function (value, units) {\n if (units === void 0) { units = TimeUnit_1.TimeUnit.Milliseconds; }\n return new TimeUnitValue(value, units);\n };\n return TimeUnitValue;\n }(TimeQuantity_1.TimeQuantity));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = TimeUnitValue;\n function getUnitQuantityFrom(q, units) {\n return TimeUnit_1.TimeUnit.fromMilliseconds(q.getTotalMilliseconds(), units);\n }\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {TimeUnit} from \"./TimeUnit\";\r\nimport {TimeQuantity} from \"./TimeQuantity\";\r\nimport {ITimeQuantity} from \"./ITimeQuantity\";\r\n\r\n/**\r\n * TimeUnitValue allows for passing around a reference to a changeable measure of time coerced by its unit type.\r\n */\r\nexport default\r\nclass TimeUnitValue extends TimeQuantity\r\n{\r\n\r\n\tconstructor(value:number|ITimeQuantity, private _units:TimeUnit)\r\n\t{\r\n\t\tsuper(typeof(value)=='number'\r\n\t\t\t? value\r\n\t\t\t: getUnitQuantityFrom(value, _units));\r\n\t\tTimeUnit.assertValid(_units);\r\n\t}\r\n\r\n\tget value():number\r\n\t{\r\n\t\treturn this._quantity;\r\n\t}\r\n\r\n\tset value(v:number)\r\n\t{\r\n\t\tthis._total = null;\r\n\t\tthis._quantity = v;\r\n\t}\r\n\r\n\tgetTotalMilliseconds():number\r\n\t{\r\n\t\treturn TimeUnit.toMilliseconds(this._quantity, this._units);\r\n\t}\r\n\r\n\t// To avoid confusion, the unit type can only be set once at construction.\r\n\tget units():TimeUnit\r\n\t{\r\n\t\treturn this._units;\r\n\t}\r\n\r\n\tto(units:TimeUnit = this.units):TimeUnitValue\r\n\t{\r\n\t\treturn TimeUnitValue.from(this,units);\r\n\t}\r\n\r\n\tstatic from(value:number|ITimeQuantity, units:TimeUnit = TimeUnit.Milliseconds):TimeUnitValue\r\n\t{\r\n\t\treturn new TimeUnitValue(value, units);\r\n\t}\r\n\r\n}\r\n\r\nfunction getUnitQuantityFrom(q:ITimeQuantity, units:TimeUnit)\r\n{\r\n\treturn TimeUnit.fromMilliseconds(q.getTotalMilliseconds(), units);\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Timers/Timer.d.ts b/dist/amd/System/Timers/Timer.d.ts index 00797473..61035b51 100644 --- a/dist/amd/System/Timers/Timer.d.ts +++ b/dist/amd/System/Timers/Timer.d.ts @@ -1,10 +1,10 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import ObservableBase from "./../Observable/ObservableBase"; +import { ICancellable } from "../Tasks/ICancellable"; +import { ObservableBase } from "../Observable/ObservableBase"; +import { ITimer } from "./ITimer"; export default class Timer extends ObservableBase implements ITimer, ICancellable { private _interval; private _maxCount; diff --git a/dist/amd/System/Timers/Timer.js b/dist/amd/System/Timers/Timer.js index 757791ac..5b4e6ede 100644 --- a/dist/amd/System/Timers/Timer.js +++ b/dist/amd/System/Timers/Timer.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)};define(["require","exports","./../Observable/ObservableBase"],function(t,e,n){"use strict";var o=function(t){function e(e,n,o){if(void 0===n&&(n=1/0),void 0===o&&(o=e),t.call(this),this._interval=e,this._maxCount=n,this._initialDelay=o,this._count=0,null===e||void 0===e)throw"'interval' must be a valid number.";if(0>e)throw"'interval' cannot be negative."}return __extends(e,t),e.startNew=function(t,n,o){void 0===n&&(n=1/0),void 0===o&&(o=t);var i=new e(t,n,t);return i.start(),i},Object.defineProperty(e.prototype,"isRunning",{get:function(){return!!this._cancel},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"count",{get:function(){return this._count},enumerable:!0,configurable:!0}),e.prototype.start=function(){var t=this;if(!t._cancel&&t._count=o;e&&(t.cancel(),t.start()),i&&t.stop(),o>n&&t._onNext(n),i&&t._onCompleted()},e}(n["default"]);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=o}); +var __extends=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)};define(["require","exports","../Observable/ObservableBase"],function(t,e,n){"use strict";var o=function(t){function e(e,n,o){if(void 0===n&&(n=1/0),void 0===o&&(o=e),t.call(this),this._interval=e,this._maxCount=n,this._initialDelay=o,this._count=0,null===e||void 0===e)throw"'interval' must be a valid number.";if(0>e)throw"'interval' cannot be negative."}return __extends(e,t),e.startNew=function(t,n,o){void 0===n&&(n=1/0),void 0===o&&(o=t);var i=new e(t,n,t);return i.start(),i},Object.defineProperty(e.prototype,"isRunning",{get:function(){return!!this._cancel},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"count",{get:function(){return this._count},enumerable:!0,configurable:!0}),e.prototype.start=function(){var t=this;if(!t._cancel&&t._count=o;e&&(t.cancel(),t.start()),i&&t.stop(),o>n&&t._onNext(n),i&&t._onCompleted()},e}(n.ObservableBase);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=o}); //# sourceMappingURL=Timer.js.map diff --git a/dist/amd/System/Timers/Timer.js.map b/dist/amd/System/Timers/Timer.js.map index 27bc3050..b66b351b 100644 --- a/dist/amd/System/Timers/Timer.js.map +++ b/dist/amd/System/Timers/Timer.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Timers/Timer.js","System/Timers/Timer.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","ObservableBase_1","Timer","_super","_interval","_maxCount","_initialDelay","Infinity","call","_count","startNew","millisecondInterval","maxCount","initialDelay","t","start","defineProperty","get","_cancel","enumerable","configurable","_","i_1","setInterval","_onTick","clearInterval","i_2","setTimeout","clearTimeout","stop","cancel","reset","dispose","timer","reInitTimer","index","max","isComplete","_onNext","_onCompleted","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,kCAAmC,SAAUC,EAASC,EAASC,GACzF,YCDJ,IAAAC,GAAA,SAAAC,GAMC,QAAAD,GACSE,EACAC,EACAC,GAIR,GALA,SAAAD,IAAAA,EAAAE,EAAAA,GACA,SAAAD,IAAAA,EAAAF,GAEAD,EAAAK,KAAApB,MAJQA,KAAAgB,UAAAA,EACAhB,KAAAiB,UAAAA,EACAjB,KAAAkB,cAAAA,EALDlB,KAAAqB,OAAgB,EASR,OAAZL,GAAiC,SAAbA,EACtB,KAAM,oCACP,IAAa,EAAVA,EACF,KAAM,iCAkHT,MAlImCjB,WAAAe,EAAAC,GAmB3BD,EAAAQ,SAAP,SACCC,EACAC,EACAC,GADA,SAAAD,IAAAA,EAAAL,EAAAA,GACA,SAAAM,IAAAA,EAAAF,EAEA,IAAIG,GAAI,GAAIZ,GAAMS,EAAqBC,EAAUD,EAEjD,OADAG,GAAEC,QACKD,GAGRlB,OAAAoB,eAAId,EAAAP,UAAA,aDJOsB,ICIX,WAEC,QAAS7B,KAAK8B,SDHJC,YAAY,EACZC,cAAc,ICKzBxB,OAAAoB,eAAId,EAAAP,UAAA,SDFOsB,ICEX,WAEC,MAAO7B,MAAKqB,QDDFU,YAAY,EACZC,cAAc,ICGzBlB,EAAAP,UAAAoB,MAAA,WAEC,GAAIM,GAAIjC,IACR,KAAIiC,EAAEH,SAAWG,EAAEZ,OAAOY,EAAEhB,UAG3B,GAAGgB,EAAEZ,QAAUY,EAAEf,eAAee,EAAEjB,UAClC,CACC,GAAIkB,GAAIC,YACPrB,EAAMsB,QACNH,EAAEjB,UACFiB,EAEDA,GAAEH,QAAU,WAEXO,cAAcH,QAIhB,CACC,GAAII,GAAIC,WACPzB,EAAMsB,QACNH,EAAEf,cACFe,GAAG,EAEJA,GAAEH,QAAU,WAEXU,aAAaF,MAOjBxB,EAAAP,UAAAkC,KAAA,WAECzC,KAAK0C,UAGN5B,EAAAP,UAAAoC,MAAA,WAEC3C,KAAKyC,OACLzC,KAAKqB,OAAS,GAGfP,EAAAP,UAAAmC,OAAA,WACC,MAAG1C,MAAK8B,SAEP9B,KAAK8B,UACL9B,KAAK8B,QAAU,MACR,IAED,GAGRhB,EAAAP,UAAAqC,QAAA,WACC5C,KAAK0C,SACL3B,EAAAR,UAAMqC,QAAOxB,KAAApB,OAICc,EAAAsB,QAAf,SACCS,EACAC,GAEA,GAAIC,GAAaF,EAAMxB,SACnB2B,EAAaH,EAAM5B,UACnBgC,EAAaJ,EAAMxB,QAAQ2B,CAE5BF,KAEFD,EAAMH,SACNG,EAAMlB,SAGJsB,GAEFJ,EAAMJ,OAGEO,EAAND,GAEFF,EAAMK,QAAQH,GAGZE,GAEFJ,EAAMM,gBAITrC,GAlImCD,EAAAA,WAAnCL,QAAAoB,eAAAhB,EAAA,cAAAwC,OAAA,ID6FIxC,EAAAA,WAAkBE","file":"System/Timers/Timer.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"./../Observable/ObservableBase\"], function (require, exports, ObservableBase_1) {\n \"use strict\";\n var Timer = (function (_super) {\n __extends(Timer, _super);\n function Timer(_interval, _maxCount, _initialDelay) {\n if (_maxCount === void 0) { _maxCount = Infinity; }\n if (_initialDelay === void 0) { _initialDelay = _interval; }\n _super.call(this);\n this._interval = _interval;\n this._maxCount = _maxCount;\n this._initialDelay = _initialDelay;\n this._count = 0;\n if (_interval === null || _interval === void (0))\n throw \"'interval' must be a valid number.\";\n if (_interval < 0)\n throw \"'interval' cannot be negative.\";\n }\n Timer.startNew = function (millisecondInterval, maxCount, initialDelay) {\n if (maxCount === void 0) { maxCount = Infinity; }\n if (initialDelay === void 0) { initialDelay = millisecondInterval; }\n var t = new Timer(millisecondInterval, maxCount, millisecondInterval);\n t.start();\n return t;\n };\n Object.defineProperty(Timer.prototype, \"isRunning\", {\n get: function () {\n return !!this._cancel;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Timer.prototype, \"count\", {\n get: function () {\n return this._count;\n },\n enumerable: true,\n configurable: true\n });\n Timer.prototype.start = function () {\n var _ = this;\n if (!_._cancel && _._count < _._maxCount) {\n if (_._count || _._initialDelay == _._interval) {\n var i_1 = setInterval(Timer._onTick, _._interval, _);\n _._cancel = function () {\n clearInterval(i_1);\n };\n }\n else {\n var i_2 = setTimeout(Timer._onTick, _._initialDelay, _, true);\n _._cancel = function () {\n clearTimeout(i_2);\n };\n }\n }\n };\n Timer.prototype.stop = function () {\n this.cancel();\n };\n Timer.prototype.reset = function () {\n this.stop();\n this._count = 0;\n };\n Timer.prototype.cancel = function () {\n if (this._cancel) {\n this._cancel();\n this._cancel = null;\n return true;\n }\n return false;\n };\n Timer.prototype.dispose = function () {\n this.cancel();\n _super.prototype.dispose.call(this);\n };\n Timer._onTick = function (timer, reInitTimer) {\n var index = timer._count++, max = timer._maxCount, isComplete = timer._count >= max;\n if (reInitTimer) {\n timer.cancel();\n timer.start();\n }\n if (isComplete) {\n timer.stop();\n }\n if (index < max) {\n timer._onNext(index);\n }\n if (isComplete) {\n timer._onCompleted();\n }\n };\n return Timer;\n }(ObservableBase_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Timer;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\nimport ObservableBase from \"./../Observable/ObservableBase\";\r\n\r\nexport default class Timer extends ObservableBase implements ITimer, ICancellable\r\n{\r\n\r\n\tprivate _cancel:()=>void;\r\n\tprivate _count:number = 0;\r\n\r\n\tconstructor(\r\n\t\tprivate _interval:number,\r\n\t\tprivate _maxCount:number = Infinity,\r\n\t\tprivate _initialDelay = _interval)\r\n\t{\r\n\t\tsuper();\r\n\r\n\t\tif(_interval===null || _interval=== void(0))\r\n\t\t\tthrow \"'interval' must be a valid number.\";\r\n\t\tif(_interval<0)\r\n\t\t\tthrow \"'interval' cannot be negative.\";\r\n\t}\r\n\r\n\tstatic startNew(\r\n\t\tmillisecondInterval:number,\r\n\t\tmaxCount:number = Infinity,\r\n\t\tinitialDelay:number = millisecondInterval):Timer\r\n\t{\r\n\t\tvar t = new Timer(millisecondInterval, maxCount, millisecondInterval);\r\n\t\tt.start();\r\n\t\treturn t;\r\n\t}\r\n\r\n\tget isRunning():boolean\r\n\t{\r\n\t\treturn !!this._cancel;\r\n\t}\r\n\r\n\tget count():number\r\n\t{\r\n\t\treturn this._count;\r\n\t}\r\n\r\n\tstart():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(!_._cancel && _._count<_._maxCount)\r\n\t\t{\r\n\t\t\t// For now, if it's isn't the start...\r\n\t\t\tif(_._count || _._initialDelay==_._interval)\r\n\t\t\t{\r\n\t\t\t\tlet i = setInterval(\r\n\t\t\t\t\tTimer._onTick,\r\n\t\t\t\t\t_._interval,\r\n\t\t\t\t\t_);\r\n\r\n\t\t\t\t_._cancel = ()=>\r\n\t\t\t\t{\r\n\t\t\t\t\tclearInterval(i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tlet i = setTimeout(\r\n\t\t\t\t\tTimer._onTick,\r\n\t\t\t\t\t_._initialDelay,\r\n\t\t\t\t\t_, true);\r\n\r\n\t\t\t\t_._cancel = ()=>\r\n\t\t\t\t{\r\n\t\t\t\t\tclearTimeout(i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tstop():void\r\n\t{\r\n\t\tthis.cancel();\r\n\t}\r\n\r\n\treset():void\r\n\t{\r\n\t\tthis.stop();\r\n\t\tthis._count = 0;\r\n\t}\r\n\r\n\tcancel():boolean {\r\n\t\tif(this._cancel)\r\n\t\t{\r\n\t\t\tthis._cancel();\r\n\t\t\tthis._cancel = null;\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tdispose():void {\r\n\t\tthis.cancel();\r\n\t\tsuper.dispose();\r\n\t}\r\n\r\n\t// We use a private static here so there's no need to create a handler every time.\r\n\tprivate static _onTick(\r\n\t\ttimer:Timer,\r\n\t\treInitTimer?:boolean):void\r\n\t{\r\n\t\tvar index = timer._count++,\r\n\t\t max = timer._maxCount,\r\n\t\t isComplete = timer._count>=max;\r\n\r\n\t\tif(reInitTimer)\r\n\t\t{\r\n\t\t\ttimer.cancel();\r\n\t\t\ttimer.start();\r\n\t\t}\r\n\r\n\t\tif(isComplete)\r\n\t\t{\r\n\t\t\ttimer.stop();\r\n\t\t}\r\n\r\n\t\tif(index= max;\n if (reInitTimer) {\n timer.cancel();\n timer.start();\n }\n if (isComplete) {\n timer.stop();\n }\n if (index < max) {\n timer._onNext(index);\n }\n if (isComplete) {\n timer._onCompleted();\n }\n };\n return Timer;\n }(ObservableBase_1.ObservableBase));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Timer;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {ICancellable} from \"../Tasks/ICancellable\";\r\nimport {ObservableBase} from \"../Observable/ObservableBase\";\r\nimport {ITimer} from \"./ITimer\";\r\n\r\nexport default class Timer extends ObservableBase implements ITimer, ICancellable\r\n{\r\n\r\n\tprivate _cancel:()=>void;\r\n\tprivate _count:number = 0;\r\n\r\n\tconstructor(\r\n\t\tprivate _interval:number,\r\n\t\tprivate _maxCount:number = Infinity,\r\n\t\tprivate _initialDelay = _interval)\r\n\t{\r\n\t\tsuper();\r\n\r\n\t\tif(_interval===null || _interval=== void(0))\r\n\t\t\tthrow \"'interval' must be a valid number.\";\r\n\t\tif(_interval<0)\r\n\t\t\tthrow \"'interval' cannot be negative.\";\r\n\t}\r\n\r\n\tstatic startNew(\r\n\t\tmillisecondInterval:number,\r\n\t\tmaxCount:number = Infinity,\r\n\t\tinitialDelay:number = millisecondInterval):Timer\r\n\t{\r\n\t\tvar t = new Timer(millisecondInterval, maxCount, millisecondInterval);\r\n\t\tt.start();\r\n\t\treturn t;\r\n\t}\r\n\r\n\tget isRunning():boolean\r\n\t{\r\n\t\treturn !!this._cancel;\r\n\t}\r\n\r\n\tget count():number\r\n\t{\r\n\t\treturn this._count;\r\n\t}\r\n\r\n\tstart():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(!_._cancel && _._count<_._maxCount)\r\n\t\t{\r\n\t\t\t// For now, if it's isn't the start...\r\n\t\t\tif(_._count || _._initialDelay==_._interval)\r\n\t\t\t{\r\n\t\t\t\tlet i = setInterval(\r\n\t\t\t\t\tTimer._onTick,\r\n\t\t\t\t\t_._interval,\r\n\t\t\t\t\t_);\r\n\r\n\t\t\t\t_._cancel = ()=>\r\n\t\t\t\t{\r\n\t\t\t\t\tclearInterval(i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tlet i = setTimeout(\r\n\t\t\t\t\tTimer._onTick,\r\n\t\t\t\t\t_._initialDelay,\r\n\t\t\t\t\t_, true);\r\n\r\n\t\t\t\t_._cancel = ()=>\r\n\t\t\t\t{\r\n\t\t\t\t\tclearTimeout(i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tstop():void\r\n\t{\r\n\t\tthis.cancel();\r\n\t}\r\n\r\n\treset():void\r\n\t{\r\n\t\tthis.stop();\r\n\t\tthis._count = 0;\r\n\t}\r\n\r\n\tcancel():boolean\r\n\t{\r\n\t\tif(this._cancel)\r\n\t\t{\r\n\t\t\tthis._cancel();\r\n\t\t\tthis._cancel = null;\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tdispose():void\r\n\t{\r\n\t\tthis.cancel();\r\n\t\tsuper.dispose();\r\n\t}\r\n\r\n\t// We use a private static here so there's no need to create a handler every time.\r\n\tprivate static _onTick(\r\n\t\ttimer:Timer,\r\n\t\treInitTimer?:boolean):void\r\n\t{\r\n\t\tvar index = timer._count++,\r\n\t\t max = timer._maxCount,\r\n\t\t isComplete = timer._count>=max;\r\n\r\n\t\tif(reInitTimer)\r\n\t\t{\r\n\t\t\ttimer.cancel();\r\n\t\t\ttimer.start();\r\n\t\t}\r\n\r\n\t\tif(isComplete)\r\n\t\t{\r\n\t\t\ttimer.stop();\r\n\t\t}\r\n\r\n\t\tif(index -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { Primitive } from "./Primitive"; +import { IArray } from "./Collections/Array/IArray"; export declare class TypeInfo { private target; type: string; diff --git a/dist/amd/System/Types.js.map b/dist/amd/System/Types.js.map index 6090695d..bec96a0e 100644 --- a/dist/amd/System/Types.js.map +++ b/dist/amd/System/Types.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Types.js","System/Types.ts"],"names":["define","require","exports","VOID0","_BOOLEAN","_NUMBER","_STRING","_OBJECT","_UNDEFINED","_FUNCTION","LENGTH","typeInfoRegistry","TypeInfo","target","_","this","isBoolean","isNumber","isString","isTrueNaN","isObject","isFunction","isUndefined","isNull","isPrimitive","type","isNaN","isFinite","isValidNumber","isNullOrUndefined","Object","freeze","prototype","member","name","t","getFor","undefined","info","Type","value","allowNaN","allowNull","numberOrNaN","NaN","of","hasMember","property","hasMemberOfType","instance","isArrayLike","Array","BOOLEAN","NUMBER","STRING","OBJECT","UNDEFINED","FUNCTION","defineProperty"],"mappings":"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","file":"System/Types.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\"], function (require, exports) {\n 'use strict';\n var VOID0 = void (0), _BOOLEAN = typeof true, _NUMBER = typeof 0, _STRING = typeof \"\", _OBJECT = typeof {}, _UNDEFINED = typeof VOID0, _FUNCTION = typeof function () { }, LENGTH = \"length\";\n var typeInfoRegistry = {};\n var TypeInfo = (function () {\n function TypeInfo(target) {\n var _ = this;\n _.isBoolean = false;\n _.isNumber = false;\n _.isString = false;\n _.isTrueNaN = false;\n _.isObject = false;\n _.isFunction = false;\n _.isUndefined = false;\n _.isNull = false;\n _.isPrimitive = false;\n switch (_.type = typeof target) {\n case _BOOLEAN:\n _.isBoolean = true;\n _.isPrimitive = true;\n break;\n case _NUMBER:\n _.isNumber = true;\n _.isTrueNaN = isNaN(target);\n _.isFinite = isFinite(target);\n _.isValidNumber = !_.isTrueNaN;\n _.isPrimitive = true;\n break;\n case _STRING:\n _.isString = true;\n _.isPrimitive = true;\n break;\n case _OBJECT:\n _.target = target;\n if (target === null) {\n _.isNull = true;\n _.isNullOrUndefined = true;\n _.isPrimitive = true;\n }\n else {\n _.isObject = true;\n }\n break;\n case _FUNCTION:\n _.target = target;\n _.isFunction = true;\n break;\n case _UNDEFINED:\n _.isUndefined = true;\n _.isNullOrUndefined = true;\n _.isPrimitive = true;\n break;\n default:\n throw \"Fatal type failure. Unknown type: \" + _.type;\n }\n Object.freeze(_);\n }\n TypeInfo.prototype.member = function (name) {\n var t = this.target;\n return TypeInfo.getFor(t && (name) in (t)\n ? t[name]\n : undefined);\n };\n TypeInfo.getFor = function (target) {\n var type = typeof target;\n switch (type) {\n case _OBJECT:\n case _FUNCTION:\n return new TypeInfo(target);\n }\n var info = typeInfoRegistry[type];\n if (!info)\n typeInfoRegistry[type] = info = new TypeInfo(target);\n return info;\n };\n return TypeInfo;\n }());\n exports.TypeInfo = TypeInfo;\n var Type;\n (function (Type) {\n Type.BOOLEAN = _BOOLEAN;\n Type.NUMBER = _NUMBER;\n Type.STRING = _STRING;\n Type.OBJECT = _OBJECT;\n Type.UNDEFINED = _UNDEFINED;\n Type.FUNCTION = _FUNCTION;\n function isBoolean(value) {\n return typeof value === _BOOLEAN;\n }\n Type.isBoolean = isBoolean;\n function isNumber(value, allowNaN) {\n if (allowNaN === VOID0)\n allowNaN = true;\n return typeof value === _NUMBER && (allowNaN || !isNaN(value));\n }\n Type.isNumber = isNumber;\n function isTrueNaN(value) {\n return typeof value === _NUMBER && isNaN(value);\n }\n Type.isTrueNaN = isTrueNaN;\n function isString(value) {\n return typeof value === _STRING;\n }\n Type.isString = isString;\n function isPrimitive(value) {\n var t = typeof value;\n switch (t) {\n case _BOOLEAN:\n case _STRING:\n case _NUMBER:\n case _UNDEFINED:\n return true;\n case _OBJECT:\n return value === null;\n }\n return false;\n }\n Type.isPrimitive = isPrimitive;\n function isFunction(value) {\n return typeof value === _FUNCTION;\n }\n Type.isFunction = isFunction;\n function isObject(value, allowNull) {\n if (allowNull === void 0) { allowNull = false; }\n return typeof value === _OBJECT && (allowNull || value !== null);\n }\n Type.isObject = isObject;\n function numberOrNaN(value) {\n return isNaN(value) ? NaN : value;\n }\n Type.numberOrNaN = numberOrNaN;\n function of(target) {\n return TypeInfo.getFor(target);\n }\n Type.of = of;\n function hasMember(value, property) {\n return value && !isPrimitive(value) && (property) in (value);\n }\n Type.hasMember = hasMember;\n function hasMemberOfType(instance, property, type) {\n return hasMember(instance, property) && typeof (instance[property]) === type;\n }\n Type.hasMemberOfType = hasMemberOfType;\n function isArrayLike(instance) {\n return instance instanceof Array\n || Type.isString(instance)\n || !Type.isFunction(instance) && hasMember(instance, LENGTH);\n }\n Type.isArrayLike = isArrayLike;\n })(Type = exports.Type || (exports.Type = {}));\n Object.freeze(Type);\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Type;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n\r\nconst\r\n\tVOID0:any = void(0),\r\n\t_BOOLEAN:string = typeof true,\r\n\t_NUMBER:string = typeof 0,\r\n\t_STRING:string = typeof \"\",\r\n\t_OBJECT:string = typeof {},\r\n\t_UNDEFINED:string = typeof VOID0,\r\n\t_FUNCTION:string = typeof function() {},\r\n\tLENGTH:string = \"length\";\r\n\r\n// Only used for primitives.\r\nvar typeInfoRegistry:{[key:string]:TypeInfo} = {};\r\n\r\n/**\r\n * Exposes easy access to type information including inquiring about members.\r\n */\r\nexport class TypeInfo\r\n{\r\n\t// Not retained for primitives. Since they have no members.\r\n\tprivate target:any;\r\n\r\n\ttype:string;\r\n\r\n\tisBoolean:boolean;\r\n\tisNumber:boolean;\r\n\tisFinite:boolean;\r\n\tisValidNumber:boolean;\r\n\tisString:boolean;\r\n\tisTrueNaN:boolean;\r\n\tisObject:boolean;\r\n\tisFunction:boolean;\r\n\tisUndefined:boolean;\r\n\tisNull:boolean;\r\n\tisNullOrUndefined:boolean;\r\n\tisPrimitive:boolean;\r\n\r\n\tconstructor(target:any)\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.isBoolean = false;\r\n\t\t_.isNumber = false;\r\n\t\t_.isString = false;\r\n\t\t_.isTrueNaN = false;\r\n\t\t_.isObject = false;\r\n\t\t_.isFunction = false;\r\n\t\t_.isUndefined = false;\r\n\t\t_.isNull = false;\r\n\t\t_.isPrimitive = false;\r\n\r\n\t\tswitch(_.type = typeof target)\r\n\t\t{\r\n\t\t\tcase _BOOLEAN:\r\n\t\t\t\t_.isBoolean = true;\r\n\t\t\t\t_.isPrimitive = true;\r\n\t\t\t\tbreak;\r\n\t\t\tcase _NUMBER:\r\n\t\t\t\t_.isNumber = true;\r\n\t\t\t\t_.isTrueNaN = isNaN(target);\r\n\t\t\t\t_.isFinite = isFinite(target);\r\n\t\t\t\t_.isValidNumber = !_.isTrueNaN;\r\n\t\t\t\t_.isPrimitive = true;\r\n\t\t\t\tbreak;\r\n\t\t\tcase _STRING:\r\n\t\t\t\t_.isString = true;\r\n\t\t\t\t_.isPrimitive = true;\r\n\t\t\t\tbreak;\r\n\t\t\tcase _OBJECT:\r\n\t\t\t\t_.target = target;\r\n\t\t\t\tif(target===null)\r\n\t\t\t\t{\r\n\t\t\t\t\t_.isNull = true;\r\n\t\t\t\t\t_.isNullOrUndefined = true;\r\n\t\t\t\t\t_.isPrimitive = true;\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\t_.isObject = true;\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase _FUNCTION:\r\n\t\t\t\t_.target = target;\r\n\t\t\t\t_.isFunction = true;\r\n\t\t\t\tbreak;\r\n\t\t\tcase _UNDEFINED:\r\n\t\t\t\t_.isUndefined = true;\r\n\t\t\t\t_.isNullOrUndefined = true;\r\n\t\t\t\t_.isPrimitive = true;\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tthrow \"Fatal type failure. Unknown type: \" + _.type;\r\n\t\t}\r\n\r\n\t\tObject.freeze(_);\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a TypeInfo for any member or non-member,\r\n\t * where non-members are of type undefined.\r\n\t * @param name\r\n\t * @returns {TypeInfo}\r\n\t */\r\n\tmember(name:string):TypeInfo\r\n\t{\r\n\t\tvar t = this.target;\r\n\t\treturn TypeInfo.getFor(\r\n\t\t\tt && (name)in(t)\r\n\t\t\t\t? t[name]\r\n\t\t\t\t: undefined);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a TypeInfo for any target object.\r\n\t * If the target object is of a primitive type, it returns the TypeInfo instance assigned to that type.\r\n\t * @param target\r\n\t * @returns {TypeInfo}\r\n\t */\r\n\tstatic getFor(target:any):TypeInfo\r\n\t{\r\n\t\tvar type:string = typeof target;\r\n\t\tswitch(type)\r\n\t\t{\r\n\t\t\tcase _OBJECT:\r\n\t\t\tcase _FUNCTION:\r\n\t\t\t\treturn new TypeInfo(target);\r\n\t\t}\r\n\t\tvar info = typeInfoRegistry[type];\r\n\t\tif(!info) typeInfoRegistry[type] = info = new TypeInfo(target);\r\n\t\treturn info;\r\n\t}\r\n\r\n}\r\n\r\nexport module Type\r\n{\r\n\t/**\r\n\t * typeof true\r\n\t * @type {string}\r\n\t */\r\n\texport const BOOLEAN:string = _BOOLEAN;\r\n\r\n\t/**\r\n\t * typeof 0\r\n\t * @type {string}\r\n\t */\r\n\texport const NUMBER:string = _NUMBER;\r\n\r\n\t/**\r\n\t * typeof \"\"\r\n\t * @type {string}\r\n\t */\r\n\texport const STRING:string = _STRING;\r\n\r\n\t/**\r\n\t * typeof {}\r\n\t * @type {string}\r\n\t */\r\n\texport const OBJECT:string = _OBJECT;\r\n\r\n\r\n\t/**\r\n\t * typeof undefined\r\n\t * @type {string}\r\n\t */\r\n\texport const UNDEFINED:string = _UNDEFINED;\r\n\r\n\t/**\r\n\t * typeof function\r\n\t * @type {string}\r\n\t */\r\n\texport const FUNCTION:string = _FUNCTION;\r\n\r\n\t/**\r\n\t * Returns true if the value parameter is a boolean.\r\n\t * @param value\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isBoolean(value:any):value is boolean\r\n\t{\r\n\t\treturn typeof value===_BOOLEAN;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns true if the value parameter is a number.\r\n\t * @param value\r\n\t * @param allowNaN Default is true.\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isNumber(value:any, allowNaN?:boolean):value is number\r\n\t{\r\n\t\tif(allowNaN===VOID0) allowNaN = true;\r\n\t\treturn typeof value===_NUMBER && (allowNaN || !isNaN(value));\r\n\t}\r\n\r\n\t/**\r\n\t * Returns true if is a number and is NaN.\r\n\t * @param value\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isTrueNaN(value:any):value is number\r\n\t{\r\n\t\treturn typeof value===_NUMBER && isNaN(value);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns true if the value parameter is a string.\r\n\t * @param value\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isString(value:any):value is string\r\n\t{\r\n\t\treturn typeof value===_STRING;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns true if the value is a boolean, string, number, null, or undefined.\r\n\t * @param value\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isPrimitive(value:any):value is Primitive\r\n\t{\r\n\t\tvar t = typeof value;\r\n\t\tswitch(t)\r\n\t\t{\r\n\t\t\tcase _BOOLEAN:\r\n\t\t\tcase _STRING:\r\n\t\t\tcase _NUMBER:\r\n\t\t\tcase _UNDEFINED:\r\n\t\t\t\treturn true;\r\n\t\t\tcase _OBJECT:\r\n\t\t\t\treturn value===null;\r\n\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns true if the value parameter is a function.\r\n\t * @param value\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isFunction(value:any):value is Function\r\n\t{\r\n\t\treturn typeof value===_FUNCTION;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns true if the value parameter is an object.\r\n\t * @param value\r\n\t * @param allowNull If false (default) null is not considered an object.\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isObject(value:any, allowNull:boolean = false):boolean\r\n\t{\r\n\t\treturn typeof value===_OBJECT && (allowNull || value!==null) ;\r\n\t}\r\n\r\n\t/**\r\n\t * Guarantees a number value or NaN instead.\r\n\t * @param value\r\n\t * @returns {number}\r\n\t */\r\n\texport function numberOrNaN(value:any):number\r\n\t{\r\n\t\treturn isNaN(value) ? NaN : value;\r\n\t}\r\n\r\n\texport function of(target:any):TypeInfo\r\n\t{\r\n\t\treturn TypeInfo.getFor(target);\r\n\t}\r\n\r\n\texport function hasMember(value:any, property:string):boolean\r\n\t{\r\n\t\treturn value && !isPrimitive(value) && (property)in(value);\r\n\t}\r\n\r\n\texport function hasMemberOfType(instance:any, property:string, type:string):instance is T\r\n\t{\r\n\t\treturn hasMember(instance, property) && typeof(instance[property])===type;\r\n\t}\r\n\r\n\texport function isArrayLike(instance:any):instance is IArray\r\n\t{\r\n\t\t/*\r\n\t\t * NOTE:\r\n\t\t *\r\n\t\t * Functions:\r\n\t\t * Enumerating a function although it has a .length property will yield nothing or unexpected results.\r\n\t\t * Effectively, a function is not like an array.\r\n\t\t *\r\n\t\t * Strings:\r\n\t\t * Behave like arrays but don't have the same exact methods.\r\n\t\t */\r\n\t\treturn instance instanceof Array\r\n\t\t\t|| Type.isString(instance)\r\n\t\t\t|| !Type.isFunction(instance) && hasMember(instance, LENGTH);\r\n\t}\r\n}\r\n\r\nObject.freeze(Type);\r\n\r\nexport default Type;\r\n\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Types.js","System/Types.ts"],"names":["define","require","exports","VOID0","_BOOLEAN","_NUMBER","_STRING","_OBJECT","_UNDEFINED","_FUNCTION","LENGTH","typeInfoRegistry","TypeInfo","target","_","this","isBoolean","isNumber","isString","isTrueNaN","isObject","isFunction","isUndefined","isNull","isPrimitive","type","isNaN","isFinite","isValidNumber","isNullOrUndefined","Object","freeze","prototype","member","name","t","getFor","undefined","info","Type","value","allowNaN","allowNull","numberOrNaN","NaN","of","hasMember","property","hasMemberOfType","instance","isArrayLike","Array","BOOLEAN","NUMBER","STRING","OBJECT","UNDEFINED","FUNCTION","defineProperty"],"mappings":"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","file":"System/Types.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var VOID0 = void (0), _BOOLEAN = typeof true, _NUMBER = typeof 0, _STRING = typeof \"\", _OBJECT = typeof {}, _UNDEFINED = typeof VOID0, _FUNCTION = typeof function () { }, LENGTH = \"length\";\n var typeInfoRegistry = {};\n var TypeInfo = (function () {\n function TypeInfo(target) {\n var _ = this;\n _.isBoolean = false;\n _.isNumber = false;\n _.isString = false;\n _.isTrueNaN = false;\n _.isObject = false;\n _.isFunction = false;\n _.isUndefined = false;\n _.isNull = false;\n _.isPrimitive = false;\n switch (_.type = typeof target) {\n case _BOOLEAN:\n _.isBoolean = true;\n _.isPrimitive = true;\n break;\n case _NUMBER:\n _.isNumber = true;\n _.isTrueNaN = isNaN(target);\n _.isFinite = isFinite(target);\n _.isValidNumber = !_.isTrueNaN;\n _.isPrimitive = true;\n break;\n case _STRING:\n _.isString = true;\n _.isPrimitive = true;\n break;\n case _OBJECT:\n _.target = target;\n if (target === null) {\n _.isNull = true;\n _.isNullOrUndefined = true;\n _.isPrimitive = true;\n }\n else {\n _.isObject = true;\n }\n break;\n case _FUNCTION:\n _.target = target;\n _.isFunction = true;\n break;\n case _UNDEFINED:\n _.isUndefined = true;\n _.isNullOrUndefined = true;\n _.isPrimitive = true;\n break;\n default:\n throw \"Fatal type failure. Unknown type: \" + _.type;\n }\n Object.freeze(_);\n }\n TypeInfo.prototype.member = function (name) {\n var t = this.target;\n return TypeInfo.getFor(t && (name) in (t)\n ? t[name]\n : undefined);\n };\n TypeInfo.getFor = function (target) {\n var type = typeof target;\n switch (type) {\n case _OBJECT:\n case _FUNCTION:\n return new TypeInfo(target);\n }\n var info = typeInfoRegistry[type];\n if (!info)\n typeInfoRegistry[type] = info = new TypeInfo(target);\n return info;\n };\n return TypeInfo;\n }());\n exports.TypeInfo = TypeInfo;\n var Type;\n (function (Type) {\n Type.BOOLEAN = _BOOLEAN;\n Type.NUMBER = _NUMBER;\n Type.STRING = _STRING;\n Type.OBJECT = _OBJECT;\n Type.UNDEFINED = _UNDEFINED;\n Type.FUNCTION = _FUNCTION;\n function isBoolean(value) {\n return typeof value === _BOOLEAN;\n }\n Type.isBoolean = isBoolean;\n function isNumber(value, allowNaN) {\n if (allowNaN === VOID0)\n allowNaN = true;\n return typeof value === _NUMBER && (allowNaN || !isNaN(value));\n }\n Type.isNumber = isNumber;\n function isTrueNaN(value) {\n return typeof value === _NUMBER && isNaN(value);\n }\n Type.isTrueNaN = isTrueNaN;\n function isString(value) {\n return typeof value === _STRING;\n }\n Type.isString = isString;\n function isPrimitive(value) {\n var t = typeof value;\n switch (t) {\n case _BOOLEAN:\n case _STRING:\n case _NUMBER:\n case _UNDEFINED:\n return true;\n case _OBJECT:\n return value === null;\n }\n return false;\n }\n Type.isPrimitive = isPrimitive;\n function isFunction(value) {\n return typeof value === _FUNCTION;\n }\n Type.isFunction = isFunction;\n function isObject(value, allowNull) {\n if (allowNull === void 0) { allowNull = false; }\n return typeof value === _OBJECT && (allowNull || value !== null);\n }\n Type.isObject = isObject;\n function numberOrNaN(value) {\n return isNaN(value) ? NaN : value;\n }\n Type.numberOrNaN = numberOrNaN;\n function of(target) {\n return TypeInfo.getFor(target);\n }\n Type.of = of;\n function hasMember(value, property) {\n return value && !isPrimitive(value) && (property) in (value);\n }\n Type.hasMember = hasMember;\n function hasMemberOfType(instance, property, type) {\n return hasMember(instance, property) && typeof (instance[property]) === type;\n }\n Type.hasMemberOfType = hasMemberOfType;\n function isArrayLike(instance) {\n return instance instanceof Array\n || Type.isString(instance)\n || !Type.isFunction(instance) && hasMember(instance, LENGTH);\n }\n Type.isArrayLike = isArrayLike;\n })(Type = exports.Type || (exports.Type = {}));\n Object.freeze(Type);\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Type;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {Primitive} from \"./Primitive\";\r\nimport {IArray} from \"./Collections/Array/IArray\"; // For compatibility with (let, const, function, class);\r\n\r\nconst\r\n\tVOID0:any = void(0),\r\n\t_BOOLEAN:string = typeof true,\r\n\t_NUMBER:string = typeof 0,\r\n\t_STRING:string = typeof \"\",\r\n\t_OBJECT:string = typeof {},\r\n\t_UNDEFINED:string = typeof VOID0,\r\n\t_FUNCTION:string = typeof function() {},\r\n\tLENGTH:string = \"length\";\r\n\r\n// Only used for primitives.\r\nvar typeInfoRegistry:{[key:string]:TypeInfo} = {};\r\n\r\n/**\r\n * Exposes easy access to type information including inquiring about members.\r\n */\r\nexport class TypeInfo\r\n{\r\n\t// Not retained for primitives. Since they have no members.\r\n\tprivate target:any;\r\n\r\n\ttype:string;\r\n\r\n\tisBoolean:boolean;\r\n\tisNumber:boolean;\r\n\tisFinite:boolean;\r\n\tisValidNumber:boolean;\r\n\tisString:boolean;\r\n\tisTrueNaN:boolean;\r\n\tisObject:boolean;\r\n\tisFunction:boolean;\r\n\tisUndefined:boolean;\r\n\tisNull:boolean;\r\n\tisNullOrUndefined:boolean;\r\n\tisPrimitive:boolean;\r\n\r\n\tconstructor(target:any)\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.isBoolean = false;\r\n\t\t_.isNumber = false;\r\n\t\t_.isString = false;\r\n\t\t_.isTrueNaN = false;\r\n\t\t_.isObject = false;\r\n\t\t_.isFunction = false;\r\n\t\t_.isUndefined = false;\r\n\t\t_.isNull = false;\r\n\t\t_.isPrimitive = false;\r\n\r\n\t\tswitch(_.type = typeof target)\r\n\t\t{\r\n\t\t\tcase _BOOLEAN:\r\n\t\t\t\t_.isBoolean = true;\r\n\t\t\t\t_.isPrimitive = true;\r\n\t\t\t\tbreak;\r\n\t\t\tcase _NUMBER:\r\n\t\t\t\t_.isNumber = true;\r\n\t\t\t\t_.isTrueNaN = isNaN(target);\r\n\t\t\t\t_.isFinite = isFinite(target);\r\n\t\t\t\t_.isValidNumber = !_.isTrueNaN;\r\n\t\t\t\t_.isPrimitive = true;\r\n\t\t\t\tbreak;\r\n\t\t\tcase _STRING:\r\n\t\t\t\t_.isString = true;\r\n\t\t\t\t_.isPrimitive = true;\r\n\t\t\t\tbreak;\r\n\t\t\tcase _OBJECT:\r\n\t\t\t\t_.target = target;\r\n\t\t\t\tif(target===null)\r\n\t\t\t\t{\r\n\t\t\t\t\t_.isNull = true;\r\n\t\t\t\t\t_.isNullOrUndefined = true;\r\n\t\t\t\t\t_.isPrimitive = true;\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\t_.isObject = true;\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase _FUNCTION:\r\n\t\t\t\t_.target = target;\r\n\t\t\t\t_.isFunction = true;\r\n\t\t\t\tbreak;\r\n\t\t\tcase _UNDEFINED:\r\n\t\t\t\t_.isUndefined = true;\r\n\t\t\t\t_.isNullOrUndefined = true;\r\n\t\t\t\t_.isPrimitive = true;\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tthrow \"Fatal type failure. Unknown type: \" + _.type;\r\n\t\t}\r\n\r\n\t\tObject.freeze(_);\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a TypeInfo for any member or non-member,\r\n\t * where non-members are of type undefined.\r\n\t * @param name\r\n\t * @returns {TypeInfo}\r\n\t */\r\n\tmember(name:string):TypeInfo\r\n\t{\r\n\t\tvar t = this.target;\r\n\t\treturn TypeInfo.getFor(\r\n\t\t\tt && (name) in (t)\r\n\t\t\t\t? t[name]\r\n\t\t\t\t: undefined);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a TypeInfo for any target object.\r\n\t * If the target object is of a primitive type, it returns the TypeInfo instance assigned to that type.\r\n\t * @param target\r\n\t * @returns {TypeInfo}\r\n\t */\r\n\tstatic getFor(target:any):TypeInfo\r\n\t{\r\n\t\tvar type:string = typeof target;\r\n\t\tswitch(type)\r\n\t\t{\r\n\t\t\tcase _OBJECT:\r\n\t\t\tcase _FUNCTION:\r\n\t\t\t\treturn new TypeInfo(target);\r\n\t\t}\r\n\t\tvar info = typeInfoRegistry[type];\r\n\t\tif(!info) typeInfoRegistry[type] = info = new TypeInfo(target);\r\n\t\treturn info;\r\n\t}\r\n\r\n}\r\n\r\nexport module Type\r\n{\r\n\t/**\r\n\t * typeof true\r\n\t * @type {string}\r\n\t */\r\n\texport const BOOLEAN:string = _BOOLEAN;\r\n\r\n\t/**\r\n\t * typeof 0\r\n\t * @type {string}\r\n\t */\r\n\texport const NUMBER:string = _NUMBER;\r\n\r\n\t/**\r\n\t * typeof \"\"\r\n\t * @type {string}\r\n\t */\r\n\texport const STRING:string = _STRING;\r\n\r\n\t/**\r\n\t * typeof {}\r\n\t * @type {string}\r\n\t */\r\n\texport const OBJECT:string = _OBJECT;\r\n\r\n\r\n\t/**\r\n\t * typeof undefined\r\n\t * @type {string}\r\n\t */\r\n\texport const UNDEFINED:string = _UNDEFINED;\r\n\r\n\t/**\r\n\t * typeof function\r\n\t * @type {string}\r\n\t */\r\n\texport const FUNCTION:string = _FUNCTION;\r\n\r\n\t/**\r\n\t * Returns true if the value parameter is a boolean.\r\n\t * @param value\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isBoolean(value:any):value is boolean\r\n\t{\r\n\t\treturn typeof value===_BOOLEAN;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns true if the value parameter is a number.\r\n\t * @param value\r\n\t * @param allowNaN Default is true.\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isNumber(value:any, allowNaN?:boolean):value is number\r\n\t{\r\n\t\tif(allowNaN===VOID0) allowNaN = true;\r\n\t\treturn typeof value===_NUMBER && (allowNaN || !isNaN(value));\r\n\t}\r\n\r\n\t/**\r\n\t * Returns true if is a number and is NaN.\r\n\t * @param value\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isTrueNaN(value:any):value is number\r\n\t{\r\n\t\treturn typeof value===_NUMBER && isNaN(value);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns true if the value parameter is a string.\r\n\t * @param value\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isString(value:any):value is string\r\n\t{\r\n\t\treturn typeof value===_STRING;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns true if the value is a boolean, string, number, null, or undefined.\r\n\t * @param value\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isPrimitive(value:any):value is Primitive\r\n\t{\r\n\t\tvar t = typeof value;\r\n\t\tswitch(t)\r\n\t\t{\r\n\t\t\tcase _BOOLEAN:\r\n\t\t\tcase _STRING:\r\n\t\t\tcase _NUMBER:\r\n\t\t\tcase _UNDEFINED:\r\n\t\t\t\treturn true;\r\n\t\t\tcase _OBJECT:\r\n\t\t\t\treturn value===null;\r\n\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns true if the value parameter is a function.\r\n\t * @param value\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isFunction(value:any):value is Function\r\n\t{\r\n\t\treturn typeof value===_FUNCTION;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns true if the value parameter is an object.\r\n\t * @param value\r\n\t * @param allowNull If false (default) null is not considered an object.\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isObject(value:any, allowNull:boolean = false):boolean\r\n\t{\r\n\t\treturn typeof value===_OBJECT && (allowNull || value!==null);\r\n\t}\r\n\r\n\t/**\r\n\t * Guarantees a number value or NaN instead.\r\n\t * @param value\r\n\t * @returns {number}\r\n\t */\r\n\texport function numberOrNaN(value:any):number\r\n\t{\r\n\t\treturn isNaN(value) ? NaN : value;\r\n\t}\r\n\r\n\texport function of(target:any):TypeInfo\r\n\t{\r\n\t\treturn TypeInfo.getFor(target);\r\n\t}\r\n\r\n\texport function hasMember(value:any, property:string):boolean\r\n\t{\r\n\t\treturn value && !isPrimitive(value) && (property) in (value);\r\n\t}\r\n\r\n\texport function hasMemberOfType(instance:any, property:string, type:string):instance is T\r\n\t{\r\n\t\treturn hasMember(instance, property) && typeof(instance[property])===type;\r\n\t}\r\n\r\n\texport function isArrayLike(instance:any):instance is IArray\r\n\t{\r\n\t\t/*\r\n\t\t * NOTE:\r\n\t\t *\r\n\t\t * Functions:\r\n\t\t * Enumerating a function although it has a .length property will yield nothing or unexpected results.\r\n\t\t * Effectively, a function is not like an array.\r\n\t\t *\r\n\t\t * Strings:\r\n\t\t * Behave like arrays but don't have the same exact methods.\r\n\t\t */\r\n\t\treturn instance instanceof Array\r\n\t\t\t|| Type.isString(instance)\r\n\t\t\t|| !Type.isFunction(instance) && hasMember(instance, LENGTH);\r\n\t}\r\n}\r\n\r\nObject.freeze(Type);\r\n\r\nexport default Type;\r\n\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Uri/HostNameType.d.ts b/dist/amd/System/Uri/HostNameType.d.ts index b4e74073..57b342ec 100644 --- a/dist/amd/System/Uri/HostNameType.d.ts +++ b/dist/amd/System/Uri/HostNameType.d.ts @@ -3,7 +3,7 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based on: https://msdn.microsoft.com/en-us/library/system.UriHostNameType%28v=vs.110%29.aspx */ -declare enum UriHostNameType { +export declare enum UriHostNameType { Basic = 0, DNS = 1, IPv4 = 2, diff --git a/dist/amd/System/Uri/HostNameType.js b/dist/amd/System/Uri/HostNameType.js index 8d09086b..cf355aea 100644 --- a/dist/amd/System/Uri/HostNameType.js +++ b/dist/amd/System/Uri/HostNameType.js @@ -3,5 +3,5 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based on: https://msdn.microsoft.com/en-us/library/system.UriHostNameType%28v=vs.110%29.aspx */ -define(["require","exports"],function(e,n){"use strict";var t;!function(e){e[e.Basic=0]="Basic",e[e.DNS=1]="DNS",e[e.IPv4=2]="IPv4",e[e.IPv6=3]="IPv6",e[e.Unknown=4]="Unknown"}(t||(t={})),Object.freeze(t),Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=t}); +define(["require","exports"],function(e,n){"use strict";!function(e){e[e.Basic=0]="Basic",e[e.DNS=1]="DNS",e[e.IPv4=2]="IPv4",e[e.IPv6=3]="IPv6",e[e.Unknown=4]="Unknown"}(n.UriHostNameType||(n.UriHostNameType={}));var t=n.UriHostNameType;Object.freeze(t),Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=t}); //# sourceMappingURL=HostNameType.js.map diff --git a/dist/amd/System/Uri/HostNameType.js.map b/dist/amd/System/Uri/HostNameType.js.map index 45e8dec0..6da46691 100644 --- a/dist/amd/System/Uri/HostNameType.js.map +++ b/dist/amd/System/Uri/HostNameType.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Uri/HostNameType.js","System/Uri/HostNameType.ts"],"names":["define","require","exports","UriHostNameType","Object","freeze","defineProperty","value"],"mappings":";;;;;AAKAA,QAAQ,UAAW,WAAY,SAAUC,EAASC,GAC9C,YCCJ,IAAKC,IAAL,SAAKA,GAIJA,EAAAA,EAAA,MAAA,GAAA,QAKAA,EAAAA,EAAA,IAAA,GAAA,MAKAA,EAAAA,EAAA,KAAA,GAAA,OAKAA,EAAAA,EAAA,KAAA,GAAA,OAKAA,EAAAA,EAAA,QAAA,GAAA,WAxBIA,IAAAA,OA2BLC,OAAOC,OAAOF,GAEdC,OAAAE,eAAAJ,EAAA,cAAAK,OAAA,IDnBIL,EAAAA,WCmBWC","file":"System/Uri/HostNameType.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based on: https://msdn.microsoft.com/en-us/library/system.UriHostNameType%28v=vs.110%29.aspx\n */\ndefine([\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var UriHostNameType;\n (function (UriHostNameType) {\n UriHostNameType[UriHostNameType[\"Basic\"] = 0] = \"Basic\";\n UriHostNameType[UriHostNameType[\"DNS\"] = 1] = \"DNS\";\n UriHostNameType[UriHostNameType[\"IPv4\"] = 2] = \"IPv4\";\n UriHostNameType[UriHostNameType[\"IPv6\"] = 3] = \"IPv6\";\n UriHostNameType[UriHostNameType[\"Unknown\"] = 4] = \"Unknown\";\n })(UriHostNameType || (UriHostNameType = {}));\n Object.freeze(UriHostNameType);\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = UriHostNameType;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based on: https://msdn.microsoft.com/en-us/library/system.UriHostNameType%28v=vs.110%29.aspx\r\n */\r\n\r\n\r\nenum UriHostNameType {\r\n\t/**\r\n\t * The host is set, but the type cannot be determined.\r\n\t */\r\n\tBasic,\r\n\r\n\t/**\r\n\t * The host name is a domain name system (DNS) style host name.\r\n\t */\r\n\tDNS,\r\n\r\n\t/**\r\n\t * The host name is an Internet Protocol (IP) version 4 host address.\r\n\t */\r\n\tIPv4,\r\n\r\n\t/**\r\n\t * The host name is an Internet Protocol (IP) version 6 host address.\r\n\t */\r\n\tIPv6,\r\n\r\n\t/**\r\n\t * The type of the host name is not supplied.\r\n\t */\r\n\tUnknown\r\n}\r\n\r\nObject.freeze(UriHostNameType);\r\n\r\nexport default UriHostNameType;\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Uri/HostNameType.js","System/Uri/HostNameType.ts"],"names":["define","require","exports","UriHostNameType","Object","freeze","defineProperty","value"],"mappings":";;;;;AAKAA,QAAQ,UAAW,WAAY,SAAUC,EAASC,GAC9C,cCCJ,SAAYC,GAIXA,EAAAA,EAAA,MAAA,GAAA,QAKAA,EAAAA,EAAA,IAAA,GAAA,MAKAA,EAAAA,EAAA,KAAA,GAAA,OAKAA,EAAAA,EAAA,KAAA,GAAA,OAKAA,EAAAA,EAAA,QAAA,GAAA,WAxBWD,EAAAC,kBAAAD,EAAAC,oBAAZ,IAAYA,GAAAD,EAAAC,eA2BZC,QAAOC,OAAOF,GAEdC,OAAAE,eAAAJ,EAAA,cAAAK,OAAA,IDnBIL,EAAAA,WCmBWC","file":"System/Uri/HostNameType.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based on: https://msdn.microsoft.com/en-us/library/system.UriHostNameType%28v=vs.110%29.aspx\n */\ndefine([\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n (function (UriHostNameType) {\n UriHostNameType[UriHostNameType[\"Basic\"] = 0] = \"Basic\";\n UriHostNameType[UriHostNameType[\"DNS\"] = 1] = \"DNS\";\n UriHostNameType[UriHostNameType[\"IPv4\"] = 2] = \"IPv4\";\n UriHostNameType[UriHostNameType[\"IPv6\"] = 3] = \"IPv6\";\n UriHostNameType[UriHostNameType[\"Unknown\"] = 4] = \"Unknown\";\n })(exports.UriHostNameType || (exports.UriHostNameType = {}));\n var UriHostNameType = exports.UriHostNameType;\n Object.freeze(UriHostNameType);\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = UriHostNameType;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based on: https://msdn.microsoft.com/en-us/library/system.UriHostNameType%28v=vs.110%29.aspx\r\n */\r\n\r\n\r\nexport enum UriHostNameType {\r\n\t/**\r\n\t * The host is set, but the type cannot be determined.\r\n\t */\r\n\tBasic,\r\n\r\n\t/**\r\n\t * The host name is a domain name system (DNS) style host name.\r\n\t */\r\n\tDNS,\r\n\r\n\t/**\r\n\t * The host name is an Internet Protocol (IP) version 4 host address.\r\n\t */\r\n\tIPv4,\r\n\r\n\t/**\r\n\t * The host name is an Internet Protocol (IP) version 6 host address.\r\n\t */\r\n\tIPv6,\r\n\r\n\t/**\r\n\t * The type of the host name is not supplied.\r\n\t */\r\n\tUnknown\r\n}\r\n\r\nObject.freeze(UriHostNameType);\r\n\r\nexport default UriHostNameType;\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Uri/QueryBuilder.d.ts b/dist/amd/System/Uri/QueryBuilder.d.ts index 891db685..42637877 100644 --- a/dist/amd/System/Uri/QueryBuilder.d.ts +++ b/dist/amd/System/Uri/QueryBuilder.d.ts @@ -1,17 +1,16 @@ -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import OrderedStringKeyDictionary from "../Collections/Dictionaries/OrderedStringKeyDictionary"; -export default class QueryBuilder extends OrderedStringKeyDictionary { - constructor(query: QueryParamsConvertible, decodeValues?: boolean); - static init(query: QueryParamsConvertible, decodeValues?: boolean): QueryBuilder; - importQuery(query: QueryParamsConvertible, decodeValues?: boolean): QueryBuilder; +import { OrderedStringKeyDictionary } from "../Collections/Dictionaries/OrderedStringKeyDictionary"; +import * as UriComponent from "./UriComponent"; +import * as QueryParam from "./QueryParam"; +export declare class QueryBuilder extends OrderedStringKeyDictionary { + constructor(query: QueryParam.Convertible, decodeValues?: boolean); + static init(query: QueryParam.Convertible, decodeValues?: boolean): QueryBuilder; + importQuery(query: QueryParam.Convertible, decodeValues?: boolean): QueryBuilder; importFromString(values: string, deserialize?: boolean, decodeValues?: boolean): QueryBuilder; encode(prefixIfNotEmpty?: boolean): string; toString(): string; } +export default QueryBuilder; diff --git a/dist/amd/System/Uri/QueryBuilder.js b/dist/amd/System/Uri/QueryBuilder.js index 9b2be777..3acc19b1 100644 --- a/dist/amd/System/Uri/QueryBuilder.js +++ b/dist/amd/System/Uri/QueryBuilder.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)};define(["require","exports","../Types","./QueryParams","../Collections/Dictionaries/OrderedStringKeyDictionary","../Collections/Enumeration/Enumerator"],function(t,e,r,i,n,o){"use strict";var s=function(t){function e(e,r){void 0===r&&(r=!0),t.call(this),this.importQuery(e,r)}return __extends(e,t),e.init=function(t,r){return void 0===r&&(r=!0),new e(t,r)},e.prototype.importQuery=function(t,e){return void 0===e&&(e=!0),r["default"].isString(t)?this.importFromString(t,e):o.isEnumerableOrArrayLike(t)?this.importEntries(t):this.importMap(t),this},e.prototype.importFromString=function(t,e,r){void 0===e&&(e=!0),void 0===r&&(r=!0);var n=this;return i.parse(t,function(t,e){if(n.containsKey(t)){var r=n.getValue(t);Array.isArray(r)?r.push(e):n.setValue(t,[r,e])}else n.setValue(t,e)},e,r),this},e.prototype.encode=function(t){return i.encode(this,t)},e.prototype.toString=function(){return this.encode()},e}(n["default"]);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=s}); +var __extends=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)};define(["require","exports","../Types","../Collections/Dictionaries/OrderedStringKeyDictionary","../Collections/Enumeration/Enumerator","./QueryParams"],function(t,e,r,i,n,o){"use strict";var s=function(t){function e(e,r){void 0===r&&(r=!0),t.call(this),this.importQuery(e,r)}return __extends(e,t),e.init=function(t,r){return void 0===r&&(r=!0),new e(t,r)},e.prototype.importQuery=function(t,e){return void 0===e&&(e=!0),r.Type.isString(t)?this.importFromString(t,e):n.isEnumerableOrArrayLike(t)?this.importEntries(t):this.importMap(t),this},e.prototype.importFromString=function(t,e,r){void 0===e&&(e=!0),void 0===r&&(r=!0);var i=this;return o.parse(t,function(t,e){if(i.containsKey(t)){var r=i.getValue(t);Array.isArray(r)?r.push(e):i.setValue(t,[r,e])}else i.setValue(t,e)},e,r),this},e.prototype.encode=function(t){return o.encode(this,t)},e.prototype.toString=function(){return this.encode()},e}(i.OrderedStringKeyDictionary);e.QueryBuilder=s,Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=s}); //# sourceMappingURL=QueryBuilder.js.map diff --git a/dist/amd/System/Uri/QueryBuilder.js.map b/dist/amd/System/Uri/QueryBuilder.js.map index 9aa2834b..40132577 100644 --- a/dist/amd/System/Uri/QueryBuilder.js.map +++ b/dist/amd/System/Uri/QueryBuilder.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Uri/QueryBuilder.js","System/Uri/QueryBuilder.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","Types_1","QueryParams","OrderedStringKeyDictionary_1","Enumerator_1","QueryBuilder","_super","query","decodeValues","call","importQuery","init","isString","importFromString","isEnumerableOrArrayLike","importEntries","importMap","values","deserialize","_","parse","key","value","containsKey","prev","getValue","Array","isArray","push","setValue","encode","prefixIfNotEmpty","toString","defineProperty"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,WAAY,gBAAiB,yDAA0D,yCAA0C,SAAUC,EAASC,EAASC,EAASC,EAAaC,EAA8BC,GCA/O,YAaA,IAAAC,GAAA,SAAAC,GAIC,QAAAD,GACCE,EACAC,GAAA,SAAAA,IAAAA,GAAA,GAEAF,EAAAG,KAAArB,MAEAA,KAAKsB,YAAYH,EAAMC,GA8EzB,MAvF2BrB,WAAAkB,EAAAC,GAanBD,EAAAM,KAAP,SACCJ,EACAC,GAEA,MAFA,UAAAA,IAAAA,GAAA,GAEO,GAAIH,GAAaE,EAAOC,IAGhCH,EAAAV,UAAAe,YAAA,SACCH,EACAC,GAeA,MAfA,UAAAA,IAAAA,GAAA,GAEGP,EAAAA,WAAKW,SAASL,GAEhBnB,KAAKyB,iBAAyBN,EAAOC,GAE9BJ,EAAAU,wBAAwBP,GAE/BnB,KAAK2B,cAAcR,GAInBnB,KAAK4B,UAA4BT,GAG3BnB,MAURiB,EAAAV,UAAAkB,iBAAA,SACCI,EACAC,EACAV,GADA,SAAAU,IAAAA,GAAA,GACA,SAAAV,IAAAA,GAAA,EAEA,IAAIW,GAAI/B,IAkBR,OAjBAc,GAAYkB,MAAMH,EACjB,SAACI,EAAKC,GAEL,GAAGH,EAAEI,YAAYF,GACjB,CACC,GAAIG,GAAOL,EAAEM,SAASJ,EACnBK,OAAMC,QAAQH,GAChBA,EAAKI,KAAKN,GAEVH,EAAEU,SAASR,GAAyBG,EAAMF,QAG3CH,GAAEU,SAASR,EAAKC,IAElBJ,EACAV,GAEMpB,MAQRiB,EAAAV,UAAAmC,OAAA,SAAOC,GAEN,MAAO7B,GAAY4B,OAAO1C,KAAM2C,IAGjC1B,EAAAV,UAAAqC,SAAA,WAEC,MAAO5C,MAAK0C,UAEdzB,GAvF2BF,EAAAA,WAD3BP,QAAAqC,eAAAjC,EAAA,cAAAsB,OAAA,IDuCItB,EAAAA,WAAkBK","file":"System/Uri/QueryBuilder.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"../Types\", \"./QueryParams\", \"../Collections/Dictionaries/OrderedStringKeyDictionary\", \"../Collections/Enumeration/Enumerator\"], function (require, exports, Types_1, QueryParams, OrderedStringKeyDictionary_1, Enumerator_1) {\n 'use strict';\n var QueryBuilder = (function (_super) {\n __extends(QueryBuilder, _super);\n function QueryBuilder(query, decodeValues) {\n if (decodeValues === void 0) { decodeValues = true; }\n _super.call(this);\n this.importQuery(query, decodeValues);\n }\n QueryBuilder.init = function (query, decodeValues) {\n if (decodeValues === void 0) { decodeValues = true; }\n return new QueryBuilder(query, decodeValues);\n };\n QueryBuilder.prototype.importQuery = function (query, decodeValues) {\n if (decodeValues === void 0) { decodeValues = true; }\n if (Types_1.default.isString(query)) {\n this.importFromString(query, decodeValues);\n }\n else if (Enumerator_1.isEnumerableOrArrayLike(query)) {\n this.importEntries(query);\n }\n else {\n this.importMap(query);\n }\n return this;\n };\n QueryBuilder.prototype.importFromString = function (values, deserialize, decodeValues) {\n if (deserialize === void 0) { deserialize = true; }\n if (decodeValues === void 0) { decodeValues = true; }\n var _ = this;\n QueryParams.parse(values, function (key, value) {\n if (_.containsKey(key)) {\n var prev = _.getValue(key);\n if (Array.isArray(prev))\n prev.push(value);\n else\n _.setValue(key, [prev, value]);\n }\n else\n _.setValue(key, value);\n }, deserialize, decodeValues);\n return this;\n };\n QueryBuilder.prototype.encode = function (prefixIfNotEmpty) {\n return QueryParams.encode(this, prefixIfNotEmpty);\n };\n QueryBuilder.prototype.toString = function () {\n return this.encode();\n };\n return QueryBuilder;\n }(OrderedStringKeyDictionary_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = QueryBuilder;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport Type from \"../Types\";\r\nimport * as QueryParams from \"./QueryParams\";\r\nimport OrderedStringKeyDictionary from \"../Collections/Dictionaries/OrderedStringKeyDictionary\";\r\nimport {isEnumerableOrArrayLike} from \"../Collections/Enumeration/Enumerator\";\r\n\r\n\r\n/**\r\n * Provides a means for parsing and building a set of parameters.\r\n *\r\n * In other languages, dictionaries are not reliable for retaining the order of stored values. So for certainty and flexibility we use an ordered dictionary as a base class.\r\n */\r\nexport default\r\nclass QueryBuilder extends OrderedStringKeyDictionary\r\n{\r\n\r\n\tconstructor(\r\n\t\tquery:QueryParamsConvertible,\r\n\t\tdecodeValues:boolean = true)\r\n\t{\r\n\t\tsuper();\r\n\r\n\t\tthis.importQuery(query,decodeValues);\r\n\t}\r\n\r\n\r\n\tstatic init(\r\n\t\tquery:QueryParamsConvertible,\r\n\t\tdecodeValues:boolean = true):QueryBuilder\r\n\t{\r\n\t\treturn new QueryBuilder(query, decodeValues);\r\n\t}\r\n\r\n\timportQuery(\r\n\t\tquery:QueryParamsConvertible,\r\n\t\tdecodeValues:boolean = true):QueryBuilder {\r\n\r\n\t\tif(Type.isString(query))\r\n\t\t{\r\n\t\t\tthis.importFromString(query, decodeValues);\r\n\t\t}\r\n\t\telse if(isEnumerableOrArrayLike(query))\r\n\t\t{\r\n\t\t\tthis.importEntries(query);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthis.importMap(query);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t * Property parses the components of an URI into their values or array of values.\r\n\t * @param values\r\n\t * @param deserialize\r\n\t * @param decodeValues\r\n\t * @returns {QueryBuilder}\r\n\t */\r\n\timportFromString(\r\n\t\tvalues:string,\r\n\t\tdeserialize:boolean = true,\r\n\t\tdecodeValues:boolean = true):QueryBuilder\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tQueryParams.parse(values,\r\n\t\t\t(key, value)=>\r\n\t\t\t{\r\n\t\t\t\tif(_.containsKey(key))\r\n\t\t\t\t{\r\n\t\t\t\t\tvar prev = _.getValue(key);\r\n\t\t\t\t\tif(Array.isArray(prev))\r\n\t\t\t\t\t\tprev.push(value);\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\t_.setValue(key, [prev, value]);\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t\t_.setValue(key, value);\r\n\t\t\t},\r\n\t\t\tdeserialize,\r\n\t\t\tdecodeValues);\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\r\n\r\n\t/**\r\n\t * Returns the encoded URI string\r\n\t */\r\n\tencode(prefixIfNotEmpty?:boolean):string\r\n\t{\r\n\t\treturn QueryParams.encode(this, prefixIfNotEmpty);\r\n\t}\r\n\r\n\ttoString():string\r\n\t{\r\n\t\treturn this.encode();\r\n\t}\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Uri/QueryBuilder.js","System/Uri/QueryBuilder.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","Types_1","OrderedStringKeyDictionary_1","Enumerator_1","QueryParams","QueryBuilder","_super","query","decodeValues","call","importQuery","init","Type","isString","importFromString","isEnumerableOrArrayLike","importEntries","importMap","values","deserialize","_","parse","key","value","containsKey","prev","getValue","Array","isArray","push","setValue","encode","prefixIfNotEmpty","toString","OrderedStringKeyDictionary","defineProperty"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,IAEnFO,SAAQ,UAAW,UAAW,WAAY,yDAA0D,wCAAyC,iBAAkB,SAAUC,EAASC,EAASC,EAASC,EAA8BC,EAAcC,GAC5O,YCSJ,IAAAC,GAAA,SAAAC,GAGC,QAAAD,GACCE,EACAC,GAAA,SAAAA,IAAAA,GAAA,GAEAF,EAAAG,KAAArB,MAEAA,KAAKsB,YAAYH,EAAOC,GA8E1B,MAvFkCrB,WAAAkB,EAAAC,GAa1BD,EAAAM,KAAP,SACCJ,EACAC,GAEA,MAFA,UAAAA,IAAAA,GAAA,GAEO,GAAIH,GAAaE,EAAOC,IAGhCH,EAAAV,UAAAe,YAAA,SACCH,EACAC,GAgBA,MAhBA,UAAAA,IAAAA,GAAA,GAGGP,EAAAW,KAAKC,SAASN,GAEhBnB,KAAK0B,iBAAyBP,EAAOC,GAE9BL,EAAAY,wBAAwBR,GAE/BnB,KAAK4B,cAAcT,GAInBnB,KAAK6B,UAA4BV,GAG3BnB,MAURiB,EAAAV,UAAAmB,iBAAA,SACCI,EACAC,EACAX,GADA,SAAAW,IAAAA,GAAA,GACA,SAAAX,IAAAA,GAAA,EAEA,IAAIY,GAAIhC,IAkBR,OAjBAgB,GAAYiB,MAAMH,EACjB,SAACI,EAAKC,GAEL,GAAGH,EAAEI,YAAYF,GACjB,CACC,GAAIG,GAAOL,EAAEM,SAASJ,EACnBK,OAAMC,QAAQH,GAChBA,EAAKI,KAAKN,GAEVH,EAAEU,SAASR,GAA0BG,EAAMF,QAG5CH,GAAEU,SAASR,EAAKC,IAElBJ,EACAX,GAEMpB,MAORiB,EAAAV,UAAAoC,OAAA,SAAOC,GAEN,MAAO5B,GAAY2B,OAAO3C,KAAM4C,IAGjC3B,EAAAV,UAAAsC,SAAA,WAEC,MAAO7C,MAAK2C,UAEd1B,GAvFkCH,EAAAgC,2BAArBlC,GAAAK,aAAYA,EAyFzBT,OAAAuC,eAAAnC,EAAA,cAAAuB,OAAA,ID9CIvB,EAAAA,WC8CWK","file":"System/Uri/QueryBuilder.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", \"../Types\", \"../Collections/Dictionaries/OrderedStringKeyDictionary\", \"../Collections/Enumeration/Enumerator\", \"./QueryParams\"], function (require, exports, Types_1, OrderedStringKeyDictionary_1, Enumerator_1, QueryParams) {\n \"use strict\";\n var QueryBuilder = (function (_super) {\n __extends(QueryBuilder, _super);\n function QueryBuilder(query, decodeValues) {\n if (decodeValues === void 0) { decodeValues = true; }\n _super.call(this);\n this.importQuery(query, decodeValues);\n }\n QueryBuilder.init = function (query, decodeValues) {\n if (decodeValues === void 0) { decodeValues = true; }\n return new QueryBuilder(query, decodeValues);\n };\n QueryBuilder.prototype.importQuery = function (query, decodeValues) {\n if (decodeValues === void 0) { decodeValues = true; }\n if (Types_1.Type.isString(query)) {\n this.importFromString(query, decodeValues);\n }\n else if (Enumerator_1.isEnumerableOrArrayLike(query)) {\n this.importEntries(query);\n }\n else {\n this.importMap(query);\n }\n return this;\n };\n QueryBuilder.prototype.importFromString = function (values, deserialize, decodeValues) {\n if (deserialize === void 0) { deserialize = true; }\n if (decodeValues === void 0) { decodeValues = true; }\n var _ = this;\n QueryParams.parse(values, function (key, value) {\n if (_.containsKey(key)) {\n var prev = _.getValue(key);\n if (Array.isArray(prev))\n prev.push(value);\n else\n _.setValue(key, [prev, value]);\n }\n else\n _.setValue(key, value);\n }, deserialize, decodeValues);\n return this;\n };\n QueryBuilder.prototype.encode = function (prefixIfNotEmpty) {\n return QueryParams.encode(this, prefixIfNotEmpty);\n };\n QueryBuilder.prototype.toString = function () {\n return this.encode();\n };\n return QueryBuilder;\n }(OrderedStringKeyDictionary_1.OrderedStringKeyDictionary));\n exports.QueryBuilder = QueryBuilder;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = QueryBuilder;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {Type} from \"../Types\";\r\nimport {OrderedStringKeyDictionary} from \"../Collections/Dictionaries/OrderedStringKeyDictionary\";\r\nimport {isEnumerableOrArrayLike} from \"../Collections/Enumeration/Enumerator\";\r\nimport * as UriComponent from \"./UriComponent\";\r\nimport * as QueryParam from \"./QueryParam\";\r\nimport * as QueryParams from \"./QueryParams\";\r\n\r\n\r\n/**\r\n * Provides a means for parsing and building a set of parameters.\r\n *\r\n * In other languages, dictionaries are not reliable for retaining the order of stored values. So for certainty and flexibility we use an ordered dictionary as a base class.\r\n */\r\nexport class QueryBuilder extends OrderedStringKeyDictionary\r\n{\r\n\r\n\tconstructor(\r\n\t\tquery:QueryParam.Convertible,\r\n\t\tdecodeValues:boolean = true)\r\n\t{\r\n\t\tsuper();\r\n\r\n\t\tthis.importQuery(query, decodeValues);\r\n\t}\r\n\r\n\r\n\tstatic init(\r\n\t\tquery:QueryParam.Convertible,\r\n\t\tdecodeValues:boolean = true):QueryBuilder\r\n\t{\r\n\t\treturn new QueryBuilder(query, decodeValues);\r\n\t}\r\n\r\n\timportQuery(\r\n\t\tquery:QueryParam.Convertible,\r\n\t\tdecodeValues:boolean = true):QueryBuilder\r\n\t{\r\n\r\n\t\tif(Type.isString(query))\r\n\t\t{\r\n\t\t\tthis.importFromString(query, decodeValues);\r\n\t\t}\r\n\t\telse if(isEnumerableOrArrayLike(query))\r\n\t\t{\r\n\t\t\tthis.importEntries(query);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthis.importMap(query);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t * Property parses the components of an URI into their values or array of values.\r\n\t * @param values\r\n\t * @param deserialize\r\n\t * @param decodeValues\r\n\t * @returns {QueryBuilder}\r\n\t */\r\n\timportFromString(\r\n\t\tvalues:string,\r\n\t\tdeserialize:boolean = true,\r\n\t\tdecodeValues:boolean = true):QueryBuilder\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tQueryParams.parse(values,\r\n\t\t\t(key, value)=>\r\n\t\t\t{\r\n\t\t\t\tif(_.containsKey(key))\r\n\t\t\t\t{\r\n\t\t\t\t\tvar prev = _.getValue(key);\r\n\t\t\t\t\tif(Array.isArray(prev))\r\n\t\t\t\t\t\tprev.push(value);\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\t_.setValue(key, [prev, value]);\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t\t_.setValue(key, value);\r\n\t\t\t},\r\n\t\t\tdeserialize,\r\n\t\t\tdecodeValues);\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Returns the encoded URI string\r\n\t */\r\n\tencode(prefixIfNotEmpty?:boolean):string\r\n\t{\r\n\t\treturn QueryParams.encode(this, prefixIfNotEmpty);\r\n\t}\r\n\r\n\ttoString():string\r\n\t{\r\n\t\treturn this.encode();\r\n\t}\r\n}\r\n\r\nexport default QueryBuilder;\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Uri/QueryParams.d.ts b/dist/amd/System/Uri/QueryParams.d.ts index 6bedb350..f90cd30d 100644 --- a/dist/amd/System/Uri/QueryParams.d.ts +++ b/dist/amd/System/Uri/QueryParams.d.ts @@ -1,17 +1,20 @@ -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -export declare function encode(values: IUriComponentMap | QueryParamEnumerableOrArray, prefixIfNotEmpty?: boolean): string; -export declare function encodeValue(value: UriComponentValue): string; -export declare function isUriComponentFormattable(instance: any): instance is IUriComponentFormattable; +import * as UriComponent from "./UriComponent"; +import * as QueryParam from "./QueryParam"; +import { IMap } from "../Collections/Dictionaries/IDictionary"; +import { Primitive } from "../Primitive"; +import { IStringKeyValuePair } from "../KeyValuePair"; +export declare function encode(values: UriComponent.Map | QueryParam.EnumerableOrArray, prefixIfNotEmpty?: boolean): string; +export declare function encodeValue(value: UriComponent.Value): string; +export declare function isUriComponentFormattable(instance: any): instance is UriComponent.Formattable; export declare function parse(query: string, entryHandler: (key: string, value: Primitive) => void, deserialize?: boolean, decodeValues?: boolean): void; export declare function parseToMap(query: string, deserialize?: boolean, decodeValues?: boolean): IMap; export declare function parseToArray(query: string, deserialize?: boolean, decodeValues?: boolean): IStringKeyValuePair[]; export declare module Separator { + const Query: string; const Entry: string; const KeyValue: string; } diff --git a/dist/amd/System/Uri/QueryParams.js b/dist/amd/System/Uri/QueryParams.js index 22b22c1f..cbdba2b6 100644 --- a/dist/amd/System/Uri/QueryParams.js +++ b/dist/amd/System/Uri/QueryParams.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -define(["require","exports","../Types","../Serialization/Utility","../KeyValueExtract","../Collections/Enumeration/Enumerator"],function(e,n,r,t,o,i){"use strict";function u(e,n){if(!e)return"";var r=[];return i.isEnumerableOrArrayLike(e)?i.forEach(e,function(e){return o["default"](e,function(e,n){return f(r,e,n)})}):Object.keys(e).forEach(function(n){return f(r,n,e[n])}),(r.length&&n?"?":"")+r.join(v)}function a(e,n,r){e.push(n+m+c(r))}function f(e,n,r){i.isEnumerableOrArrayLike(r)?i.forEach(r,function(r){return a(e,n,r)}):a(e,n,r)}function c(e){var n=null;if(s(e)){if(n=e.toUriComponent(),n&&1!=n.indexOf("&"))throw".toUriComponent() did not encode the value."}else n=encodeURIComponent(t.toString(n));return n}function s(e){return r["default"].hasMemberOfType(e,"toUriComponent",r["default"].FUNCTION)}function l(e,n,r,o){if(void 0===r&&(r=!0),void 0===o&&(o=!0),e&&(e=e.replace(/^\s*\?+/,"")))for(var i=e.split(v),u=0,a=i;u\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport Type from \"../Types\";\r\nimport * as Serialization from \"../Serialization/Utility\";\r\nimport extractKeyValue from \"../KeyValueExtract\";\r\nimport {forEach, isEnumerableOrArrayLike} from \"../Collections/Enumeration/Enumerator\";\r\n\r\n/*\r\n * This module is provided as a lighter weight utility for acquiring query params.\r\n * If more detailed operations are necessary, consider importing QueryBuilder.\r\n */\r\n\r\nconst\r\n\tENTRY_SEPARATOR = \"&\",\r\n\tKEY_VALUE_SEPARATOR = \"=\";\r\n\r\n\r\n/**\r\n * Returns the encoded URI string\r\n * @param values\r\n * @param prefixIfNotEmpty\r\n * @returns {string}\r\n */\r\nexport function encode(\r\n\tvalues:IUriComponentMap | QueryParamEnumerableOrArray,\r\n\tprefixIfNotEmpty?:boolean):string\r\n{\r\n\tif(!values) return '';\r\n\tvar entries:string[] = [];\r\n\r\n\tif(isEnumerableOrArrayLike(values))\r\n\t{\r\n\t\tforEach(values, entry=>\r\n\t\t\textractKeyValue(entry,\r\n\t\t\t\t(key, value)=> appendKeyValue(entries, key, value))\r\n\t\t);\r\n\t}\r\n\telse\r\n\t{\r\n\t\tObject.keys(values).forEach(\r\n\t\t\tkey=> appendKeyValue(entries, key, values[key])\r\n\t\t);\r\n\t}\r\n\r\n\treturn (entries.length && prefixIfNotEmpty ? '?' : '')\r\n\t\t+ entries.join(ENTRY_SEPARATOR);\r\n}\r\n\r\nfunction appendKeyValueSingle(\r\n\tentries:string[],\r\n\tkey:string,\r\n\tvalue:UriComponentValue):void\r\n{\r\n\tentries.push(key + KEY_VALUE_SEPARATOR + encodeValue(value));\r\n}\r\n\r\n// According to spec, if there is an array of values with the same key, then each value is replicated with that key.\r\nfunction appendKeyValue(\r\n\tentries:string[],\r\n\tkey:string,\r\n\tvalue:UriComponentValue|IEnumerableOrArray):void\r\n{\r\n\tif(isEnumerableOrArrayLike(value))\r\n\t{\r\n\t\tforEach(value, v=> appendKeyValueSingle(entries, key, v));\r\n\t}\r\n\telse\r\n\t{\r\n\t\tappendKeyValueSingle(entries, key, value)\r\n\t}\r\n}\r\n\r\n/**\r\n * Converts any primitive, serializable or uri-component object to an encoded string.\r\n * @param value\r\n * @returns {string}\r\n */\r\nexport function encodeValue(value:UriComponentValue):string\r\n{\r\n\tvar v:string = null;\r\n\tif(isUriComponentFormattable(value))\r\n\t{\r\n\t\tv = value.toUriComponent();\r\n\t\tif(v && v.indexOf('&')!=1)\r\n\t\t\tthrow '.toUriComponent() did not encode the value.';\r\n\t}\r\n\telse\r\n\t{\r\n\t\tv = encodeURIComponent(Serialization.toString(v));\r\n\t}\r\n\treturn v;\r\n}\r\n\r\n/**\r\n * A shortcut for identifying an IUriComponentFormattable object.\r\n * @param instance\r\n * @returns {boolean}\r\n */\r\nexport function isUriComponentFormattable(instance:any):instance is IUriComponentFormattable\r\n{\r\n\treturn Type.hasMemberOfType(instance, \"toUriComponent\", Type.FUNCTION);\r\n}\r\n\r\n/**\r\n * Parses a string for valid query param entries and pipes them through a handler.\r\n * @param query\r\n * @param entryHandler\r\n * @param deserialize Default is true.\r\n * @param decodeValues Default is true.\r\n */\r\nexport function parse(\r\n\tquery:string,\r\n\tentryHandler:(key:string, value:Primitive)=>void,\r\n\tdeserialize:boolean = true,\r\n\tdecodeValues:boolean = true):void\r\n{\r\n\tif(query && (query = query.replace(/^\\s*\\?+/, '')))\r\n\t{\r\n\t\tvar entries = query.split(ENTRY_SEPARATOR);\r\n\t\tfor(let entry of entries)\r\n\t\t{\r\n\t\t\t/*\r\n\t\t\t * Since it is technically possible to have multiple '=' we need to identify the first one.\r\n\t\t\t * And if there is no '=' then the entry is ignored.\r\n\t\t\t */\r\n\t\t\tvar si = entry.indexOf(KEY_VALUE_SEPARATOR);\r\n\t\t\tif(si!= -1)\r\n\t\t\t{\r\n\t\t\t\tvar key = entry.substring(0, si);\r\n\t\t\t\tvar value = entry.substring(si + 1);\r\n\t\t\t\tif(decodeValues) value = decodeURIComponent(value);\r\n\t\t\t\tif(deserialize) value = Serialization.toPrimitive(value);\r\n\t\t\t\tentryHandler(key, value);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Parses a string for valid query params and returns a key-value map of the entries.\r\n * @param query\r\n * @param deserialize Default is true.\r\n * @param decodeValues Default is true.\r\n * @returns {IMap}\r\n */\r\nexport function parseToMap(\r\n\tquery:string,\r\n\tdeserialize:boolean = true,\r\n\tdecodeValues:boolean = true):IMap\r\n{\r\n\tvar result:IMap = {};\r\n\tparse(query,\r\n\t\t(key, value)=>\r\n\t\t{\r\n\t\t\tif((key) in (result))\r\n\t\t\t{\r\n\t\t\t\tvar prev:any = result[key];\r\n\t\t\t\tif(!(Array.isArray(prev)))\r\n\t\t\t\t\tresult[key] = prev = [prev];\r\n\t\t\t\tprev.push(value);\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t\tresult[key] = value;\r\n\t\t},\r\n\t\tdeserialize,\r\n\t\tdecodeValues);\r\n\treturn result;\r\n}\r\n\r\n/**\r\n * Parses a string for valid query params and returns a key-value pair array of the entries.\r\n * @param query\r\n * @param deserialize Default is true.\r\n * @param decodeValues Default is true.\r\n * @returns {IKeyValuePair[]}\r\n */\r\nexport function parseToArray(\r\n\tquery:string,\r\n\tdeserialize:boolean = true,\r\n\tdecodeValues:boolean = true):IStringKeyValuePair[]\r\n{\r\n\tvar result:IStringKeyValuePair[] = [];\r\n\tparse(query,\r\n\t\t(key, value)=> {result.push({key: key, value: value});},\r\n\t\tdeserialize,\r\n\t\tdecodeValues\r\n\t);\r\n\treturn result;\r\n}\r\n\r\n\r\nexport module Separator\r\n{\r\n\texport const Entry:string = ENTRY_SEPARATOR;\r\n\texport const KeyValue:string = KEY_VALUE_SEPARATOR;\r\n}\r\nObject.freeze(Separator);\r\n\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Uri/QueryParams.js","System/Uri/QueryParams.ts"],"names":["define","require","exports","Serialization","Types_1","KeyValueExtract_1","Enumerator_1","encode","values","prefixIfNotEmpty","EMPTY","entries","isEnumerableOrArrayLike","forEach","entry","extractKeyValue","key","value","appendKeyValue","Object","keys","length","QUERY_SEPARATOR","join","ENTRY_SEPARATOR","appendKeyValueSingle","push","KEY_VALUE_SEPARATOR","encodeValue","v","isUriComponentFormattable","toUriComponent","indexOf","encodeURIComponent","toString","instance","Type","hasMemberOfType","TO_URI_COMPONENT","FUNCTION","parse","query","entryHandler","deserialize","decodeValues","replace","split","_i","entries_1","si","substring","decodeURIComponent","toPrimitive","parseToMap","result","prev","Array","isArray","parseToArray","Separator","Query","Entry","KeyValue","freeze"],"mappings":";;;;AAIAA,QAAQ,UAAW,UAAW,2BAA4B,WAAY,qBAAsB,yCAA0C,SAAUC,EAASC,EAASC,EAAeC,EAASC,EAAmBC,GACzM,YC+BJ,SAAAC,GACCC,EACAC,GAEA,IAAID,EAAQ,MAAOE,EACnB,IAAIC,KAgBJ,OAdGL,GAAAM,wBAAwBJ,GAE1BF,EAAAO,QAAQL,EAAQ,SAAAM,GACf,MAAAT,GAAAU,gBAAgBD,EACf,SAACE,EAAKC,GAAS,MAAAC,GAAeP,EAASK,EAAKC,OAK9CE,OAAOC,KAAKZ,GAAQK,QACnB,SAAAG,GAAM,MAAAE,GAAeP,EAASK,EAAKR,EAAOQ,OAIpCL,EAAQU,QAAUZ,EAAmBa,EAAkBZ,GAC5DC,EAAQY,KAAKC,GAGjB,QAAAC,GACCd,EACAK,EACAC,GAEAN,EAAQe,KAAKV,EAAMW,EAAsBC,EAAYX,IAItD,QAAAC,GACCP,EACAK,EACAC,GAEGX,EAAAM,wBAAwBK,GAE1BX,EAAAO,QAAQI,EAAO,SAAAY,GAAI,MAAAJ,GAAqBd,EAASK,EAAKa,KAItDJ,EAAqBd,EAASK,EAAKC,GASrC,QAAAW,GAA4BX,GAE3B,GAAIY,GAAW,IACf,IAAGC,EAA0Bb,IAG5B,GADAY,EAAIZ,EAAMc,iBACPF,GAAiC,GAA5BA,EAAEG,QAAQR,GACjB,KAAM,kDAIPK,GAAII,mBAAmB9B,EAAc+B,SAASL,GAE/C,OAAOA,GAQR,QAAAC,GAA0CK,GAEzC,MAAO/B,GAAAgC,KAAKC,gBAA0CF,EAAUG,EAAkBlC,EAAAgC,KAAKG,UAUxF,QAAAC,GACCC,EACAC,EACAC,EACAC,GAEA,GAHA,SAAAD,IAAAA,GAAA,GACA,SAAAC,IAAAA,GAAA,GAEGH,IAAUA,EAAQA,EAAMI,QAAQ,UAAW,KAG7C,IAAiB,GADblC,GAAU8B,EAAMK,MAAMtB,GACTuB,EAAA,EAAAC,EAAArC,EAAAoC,EAAAC,EAAA3B,OAAA0B,IAAQ,CAArB,GAAIjC,GAAKkC,EAAAD,GAMRE,EAAKnC,EAAMkB,QAAQL,EACvB,IAAQ,IAALsB,EACH,CACC,GAAIjC,GAAMF,EAAMoC,UAAU,EAAGD,GACzBhC,EAAaH,EAAMoC,UAAUD,EAAK,EACnCL,KAAc3B,EAAQkC,mBAAmBlC,IACzC0B,IAAa1B,EAAQd,EAAciD,YAAYnC,IAClDyB,EAAa1B,EAAKC,KAatB,QAAAoC,GACCZ,EACAE,EACAC,GADA,SAAAD,IAAAA,GAAA,GACA,SAAAC,IAAAA,GAAA,EAEA,IAAIU,KAgBJ,OAfAd,GAAMC,EACL,SAACzB,EAAKC,GAEL,GAAG,IAAS,GACZ,CACC,GAAIsC,GAAWD,EAAOtC,EACjBwC,OAAMC,QAAQF,KAClBD,EAAOtC,GAAOuC,GAAQA,IACvBA,EAAK7B,KAAKT,OAGVqC,GAAOtC,GAAOC,GAEhB0B,EACAC,GACMU,EAUR,QAAAI,GACCjB,EACAE,EACAC,GADA,SAAAD,IAAAA,GAAA,GACA,SAAAC,IAAAA,GAAA,EAEA,IAAIU,KAMJ,OALAd,GAAMC,EACL,SAACzB,EAAKC,GAAUqC,EAAO5B,MAAMV,IAAKA,EAAKC,MAAOA,KAC9C0B,EACAC,GAEMU,EAlLR,GACC5C,GAAsB,GACtBY,EAAsB,IACtBE,EAAsB,IACtBG,EAAsB,IACtBW,EAAsB,gBASPpC,GAAAK,OAAMA,EAsDNL,EAAA0B,YAAWA,EAqBX1B,EAAA4B,0BAAyBA,EAYzB5B,EAAAsC,MAAKA,EAmCLtC,EAAAmD,WAAUA,EA+BVnD,EAAAwD,aAAYA,CAe5B,IAAcC,IAAd,SAAcA,GAEAA,EAAAC,MAAetC,EACfqC,EAAAE,MAAerC,EACfmC,EAAAG,SAAkBnC,GAJlBgC,EAAAzD,EAAAyD,YAAAzD,EAAAyD,eAMdxC,OAAO4C,OAAOJ","file":"System/Uri/QueryParams.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\", \"../Serialization/Utility\", \"../Types\", \"../KeyValueExtract\", \"../Collections/Enumeration/Enumerator\"], function (require, exports, Serialization, Types_1, KeyValueExtract_1, Enumerator_1) {\n \"use strict\";\n var EMPTY = \"\", QUERY_SEPARATOR = \"?\", ENTRY_SEPARATOR = \"&\", KEY_VALUE_SEPARATOR = \"=\", TO_URI_COMPONENT = \"toUriComponent\";\n function encode(values, prefixIfNotEmpty) {\n if (!values)\n return EMPTY;\n var entries = [];\n if (Enumerator_1.isEnumerableOrArrayLike(values)) {\n Enumerator_1.forEach(values, function (entry) {\n return KeyValueExtract_1.extractKeyValue(entry, function (key, value) { return appendKeyValue(entries, key, value); });\n });\n }\n else {\n Object.keys(values).forEach(function (key) { return appendKeyValue(entries, key, values[key]); });\n }\n return (entries.length && prefixIfNotEmpty ? QUERY_SEPARATOR : EMPTY)\n + entries.join(ENTRY_SEPARATOR);\n }\n exports.encode = encode;\n function appendKeyValueSingle(entries, key, value) {\n entries.push(key + KEY_VALUE_SEPARATOR + encodeValue(value));\n }\n function appendKeyValue(entries, key, value) {\n if (Enumerator_1.isEnumerableOrArrayLike(value)) {\n Enumerator_1.forEach(value, function (v) { return appendKeyValueSingle(entries, key, v); });\n }\n else {\n appendKeyValueSingle(entries, key, value);\n }\n }\n function encodeValue(value) {\n var v = null;\n if (isUriComponentFormattable(value)) {\n v = value.toUriComponent();\n if (v && v.indexOf(ENTRY_SEPARATOR) != 1)\n throw '.toUriComponent() did not encode the value.';\n }\n else {\n v = encodeURIComponent(Serialization.toString(v));\n }\n return v;\n }\n exports.encodeValue = encodeValue;\n function isUriComponentFormattable(instance) {\n return Types_1.Type.hasMemberOfType(instance, TO_URI_COMPONENT, Types_1.Type.FUNCTION);\n }\n exports.isUriComponentFormattable = isUriComponentFormattable;\n function parse(query, entryHandler, deserialize, decodeValues) {\n if (deserialize === void 0) { deserialize = true; }\n if (decodeValues === void 0) { decodeValues = true; }\n if (query && (query = query.replace(/^\\s*\\?+/, ''))) {\n var entries = query.split(ENTRY_SEPARATOR);\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n var si = entry.indexOf(KEY_VALUE_SEPARATOR);\n if (si != -1) {\n var key = entry.substring(0, si);\n var value = entry.substring(si + 1);\n if (decodeValues)\n value = decodeURIComponent(value);\n if (deserialize)\n value = Serialization.toPrimitive(value);\n entryHandler(key, value);\n }\n }\n }\n }\n exports.parse = parse;\n function parseToMap(query, deserialize, decodeValues) {\n if (deserialize === void 0) { deserialize = true; }\n if (decodeValues === void 0) { decodeValues = true; }\n var result = {};\n parse(query, function (key, value) {\n if ((key) in (result)) {\n var prev = result[key];\n if (!(Array.isArray(prev)))\n result[key] = prev = [prev];\n prev.push(value);\n }\n else\n result[key] = value;\n }, deserialize, decodeValues);\n return result;\n }\n exports.parseToMap = parseToMap;\n function parseToArray(query, deserialize, decodeValues) {\n if (deserialize === void 0) { deserialize = true; }\n if (decodeValues === void 0) { decodeValues = true; }\n var result = [];\n parse(query, function (key, value) { result.push({ key: key, value: value }); }, deserialize, decodeValues);\n return result;\n }\n exports.parseToArray = parseToArray;\n var Separator;\n (function (Separator) {\n Separator.Query = QUERY_SEPARATOR;\n Separator.Entry = ENTRY_SEPARATOR;\n Separator.KeyValue = KEY_VALUE_SEPARATOR;\n })(Separator = exports.Separator || (exports.Separator = {}));\n Object.freeze(Separator);\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport * as Serialization from \"../Serialization/Utility\";\r\nimport * as UriComponent from \"./UriComponent\";\r\nimport * as QueryParam from \"./QueryParam\";\r\nimport {Type} from \"../Types\";\r\nimport {extractKeyValue} from \"../KeyValueExtract\";\r\nimport {forEach, isEnumerableOrArrayLike} from \"../Collections/Enumeration/Enumerator\";\r\nimport {IMap} from \"../Collections/Dictionaries/IDictionary\";\r\nimport {Primitive} from \"../Primitive\";\r\nimport {IStringKeyValuePair} from \"../KeyValuePair\";\r\nimport {IEnumerableOrArray} from \"../Collections/IEnumerableOrArray\";\r\n\r\n/*\r\n * This module is provided as a lighter weight utility for acquiring query params.\r\n * If more detailed operations are necessary, consider importing QueryBuilder.\r\n */\r\n\r\nconst\r\n\tEMPTY = \"\",\r\n\tQUERY_SEPARATOR = \"?\",\r\n\tENTRY_SEPARATOR = \"&\",\r\n\tKEY_VALUE_SEPARATOR = \"=\",\r\n\tTO_URI_COMPONENT = \"toUriComponent\";\r\n\r\n\r\n/**\r\n * Returns the encoded URI string\r\n * @param values\r\n * @param prefixIfNotEmpty\r\n * @returns {string}\r\n */\r\nexport function encode(\r\n\tvalues:UriComponent.Map | QueryParam.EnumerableOrArray,\r\n\tprefixIfNotEmpty?:boolean):string\r\n{\r\n\tif(!values) return EMPTY;\r\n\tvar entries:string[] = [];\r\n\r\n\tif(isEnumerableOrArrayLike(values))\r\n\t{\r\n\t\tforEach(values, entry=>\r\n\t\t\textractKeyValue(entry,\r\n\t\t\t\t(key, value)=> appendKeyValue(entries, key, value))\r\n\t\t);\r\n\t}\r\n\telse\r\n\t{\r\n\t\tObject.keys(values).forEach(\r\n\t\t\tkey=> appendKeyValue(entries, key, values[key])\r\n\t\t);\r\n\t}\r\n\r\n\treturn (entries.length && prefixIfNotEmpty ? QUERY_SEPARATOR : EMPTY)\r\n\t\t+ entries.join(ENTRY_SEPARATOR);\r\n}\r\n\r\nfunction appendKeyValueSingle(\r\n\tentries:string[],\r\n\tkey:string,\r\n\tvalue:UriComponent.Value):void\r\n{\r\n\tentries.push(key + KEY_VALUE_SEPARATOR + encodeValue(value));\r\n}\r\n\r\n// According to spec, if there is an array of values with the same key, then each value is replicated with that key.\r\nfunction appendKeyValue(\r\n\tentries:string[],\r\n\tkey:string,\r\n\tvalue:UriComponent.Value|IEnumerableOrArray):void\r\n{\r\n\tif(isEnumerableOrArrayLike(value))\r\n\t{\r\n\t\tforEach(value, v=> appendKeyValueSingle(entries, key, v));\r\n\t}\r\n\telse\r\n\t{\r\n\t\tappendKeyValueSingle(entries, key, value)\r\n\t}\r\n}\r\n\r\n/**\r\n * Converts any primitive, serializable or uri-component object to an encoded string.\r\n * @param value\r\n * @returns {string}\r\n */\r\nexport function encodeValue(value:UriComponent.Value):string\r\n{\r\n\tvar v:string = null;\r\n\tif(isUriComponentFormattable(value))\r\n\t{\r\n\t\tv = value.toUriComponent();\r\n\t\tif(v && v.indexOf(ENTRY_SEPARATOR)!=1)\r\n\t\t\tthrow '.toUriComponent() did not encode the value.';\r\n\t}\r\n\telse\r\n\t{\r\n\t\tv = encodeURIComponent(Serialization.toString(v));\r\n\t}\r\n\treturn v;\r\n}\r\n\r\n/**\r\n * A shortcut for identifying an UriComponent.Formattable object.\r\n * @param instance\r\n * @returns {boolean}\r\n */\r\nexport function isUriComponentFormattable(instance:any):instance is UriComponent.Formattable\r\n{\r\n\treturn Type.hasMemberOfType(instance, TO_URI_COMPONENT, Type.FUNCTION);\r\n}\r\n\r\n/**\r\n * Parses a string for valid query param entries and pipes them through a handler.\r\n * @param query\r\n * @param entryHandler\r\n * @param deserialize Default is true.\r\n * @param decodeValues Default is true.\r\n */\r\nexport function parse(\r\n\tquery:string,\r\n\tentryHandler:(key:string, value:Primitive)=>void,\r\n\tdeserialize:boolean = true,\r\n\tdecodeValues:boolean = true):void\r\n{\r\n\tif(query && (query = query.replace(/^\\s*\\?+/, '')))\r\n\t{\r\n\t\tvar entries = query.split(ENTRY_SEPARATOR);\r\n\t\tfor(let entry of entries)\r\n\t\t{\r\n\t\t\t/*\r\n\t\t\t * Since it is technically possible to have multiple '=' we need to identify the first one.\r\n\t\t\t * And if there is no '=' then the entry is ignored.\r\n\t\t\t */\r\n\t\t\tvar si = entry.indexOf(KEY_VALUE_SEPARATOR);\r\n\t\t\tif(si!= -1)\r\n\t\t\t{\r\n\t\t\t\tvar key = entry.substring(0, si);\r\n\t\t\t\tvar value = entry.substring(si + 1);\r\n\t\t\t\tif(decodeValues) value = decodeURIComponent(value);\r\n\t\t\t\tif(deserialize) value = Serialization.toPrimitive(value);\r\n\t\t\t\tentryHandler(key, value);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Parses a string for valid query params and returns a key-value map of the entries.\r\n * @param query\r\n * @param deserialize Default is true.\r\n * @param decodeValues Default is true.\r\n * @returns {IMap}\r\n */\r\nexport function parseToMap(\r\n\tquery:string,\r\n\tdeserialize:boolean = true,\r\n\tdecodeValues:boolean = true):IMap\r\n{\r\n\tvar result:IMap = {};\r\n\tparse(query,\r\n\t\t(key, value)=>\r\n\t\t{\r\n\t\t\tif((key) in (result))\r\n\t\t\t{\r\n\t\t\t\tvar prev:any = result[key];\r\n\t\t\t\tif(!(Array.isArray(prev)))\r\n\t\t\t\t\tresult[key] = prev = [prev];\r\n\t\t\t\tprev.push(value);\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t\tresult[key] = value;\r\n\t\t},\r\n\t\tdeserialize,\r\n\t\tdecodeValues);\r\n\treturn result;\r\n}\r\n\r\n/**\r\n * Parses a string for valid query params and returns a key-value pair array of the entries.\r\n * @param query\r\n * @param deserialize Default is true.\r\n * @param decodeValues Default is true.\r\n * @returns {IKeyValuePair[]}\r\n */\r\nexport function parseToArray(\r\n\tquery:string,\r\n\tdeserialize:boolean = true,\r\n\tdecodeValues:boolean = true):IStringKeyValuePair[]\r\n{\r\n\tvar result:IStringKeyValuePair[] = [];\r\n\tparse(query,\r\n\t\t(key, value)=> {result.push({key: key, value: value});},\r\n\t\tdeserialize,\r\n\t\tdecodeValues\r\n\t);\r\n\treturn result;\r\n}\r\n\r\n\r\nexport module Separator\r\n{\r\n\texport const Query:string = QUERY_SEPARATOR;\r\n\texport const Entry:string = ENTRY_SEPARATOR;\r\n\texport const KeyValue:string = KEY_VALUE_SEPARATOR;\r\n}\r\nObject.freeze(Separator);\r\n\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Uri/Scheme.d.ts b/dist/amd/System/Uri/Scheme.d.ts index 5e625ec8..406f9ce0 100644 --- a/dist/amd/System/Uri/Scheme.d.ts +++ b/dist/amd/System/Uri/Scheme.d.ts @@ -3,19 +3,20 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based on: https://msdn.microsoft.com/en-us/library/system.uri.scheme%28v=vs.110%29.aspx */ -declare enum Scheme { - file = 0, - ftp = 1, - gopher = 2, - http = 3, - https = 4, - ldap = 5, - mailto = 6, - pipe = 7, - tcp = 8, - news = 9, - nntp = 10, - telnet = 11, - uuid = 12, -} -export default Scheme; +import * as Scheme from "./SchemeValue"; +import { SchemeValue } from "./SchemeValue"; +export declare const File: Scheme.File; +export declare const FTP: Scheme.FTP; +export declare const GOPHER: Scheme.Gopher; +export declare const HTTP: Scheme.HTTP; +export declare const HTTPS: Scheme.HTTPS; +export declare const LDAP: Scheme.LDAP; +export declare const MAILTO: Scheme.MailTo; +export declare const PIPE: Scheme.Pipe; +export declare const TCP: Scheme.TCP; +export declare const NEWS: Scheme.NNTP; +export declare const NNTP: Scheme.NNTP; +export declare const TELNET: Scheme.Telnet; +export declare const UUID: Scheme.UUID; +export declare const All: SchemeValue[]; +export declare function isValid(scheme: string): scheme is SchemeValue; diff --git a/dist/amd/System/Uri/Scheme.js b/dist/amd/System/Uri/Scheme.js index 2485a72b..701b8b52 100644 --- a/dist/amd/System/Uri/Scheme.js +++ b/dist/amd/System/Uri/Scheme.js @@ -3,5 +3,5 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based on: https://msdn.microsoft.com/en-us/library/system.uri.scheme%28v=vs.110%29.aspx */ -define(["require","exports"],function(e,t){"use strict";var p;!function(e){e[e.file=0]="file",e[e.ftp=1]="ftp",e[e.gopher=2]="gopher",e[e.http=3]="http",e[e.https=4]="https",e[e.ldap=5]="ldap",e[e.mailto=6]="mailto",e[e.pipe=7]="pipe",e[e.tcp=8]="tcp",e[e.news=9]="news",e[e.nntp=10]="nntp",e[e.telnet=11]="telnet",e[e.uuid=12]="uuid"}(p||(p={}));var i="net.pipe",n="net.tcp";p[p.pipe]=i,p[p.tcp]=n,p[i]=p.pipe,p[n]=p.tcp,Object.freeze(p),Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=p}); +define(["require","exports"],function(e,T){"use strict";function t(e){return-1!=T.All.indexOf(e)}T.File="file",T.FTP="ftp",T.GOPHER="gopher",T.HTTP="http",T.HTTPS="https",T.LDAP="ldap",T.MAILTO="mailto",T.PIPE="net.pipe",T.TCP="net.tcp",T.NEWS="news",T.NNTP="nntp",T.TELNET="telnet",T.UUID="uuid",T.All=Object.freeze([T.File,T.FTP,T.GOPHER,T.HTTP,T.HTTPS,T.LDAP,T.MAILTO,T.PIPE,T.TCP,T.NEWS,T.NNTP,T.TELNET,T.UUID]),T.isValid=t}); //# sourceMappingURL=Scheme.js.map diff --git a/dist/amd/System/Uri/Scheme.js.map b/dist/amd/System/Uri/Scheme.js.map index 82038dd2..b278e674 100644 --- a/dist/amd/System/Uri/Scheme.js.map +++ b/dist/amd/System/Uri/Scheme.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Uri/Scheme.js","System/Uri/Scheme.ts"],"names":["define","require","exports","Scheme","PIPE","TCP","pipe","tcp","Object","freeze","defineProperty","value"],"mappings":";;;;;AAKAA,QAAQ,UAAW,WAAY,SAAUC,EAASC,GAC9C,YCCJ,IAAKC,IAAL,SAAKA,GAIJA,EAAAA,EAAA,KAAA,GAAA,OAMAA,EAAAA,EAAA,IAAA,GAAA,MAMAA,EAAAA,EAAA,OAAA,GAAA,SAMAA,EAAAA,EAAA,KAAA,GAAA,OAMAA,EAAAA,EAAA,MAAA,GAAA,QAMAA,EAAAA,EAAA,KAAA,GAAA,OAMAA,EAAAA,EAAA,OAAA,GAAA,SAMAA,EAAAA,EAAA,KAAA,GAAA,OAMAA,EAAAA,EAAA,IAAA,GAAA,MAMAA,EAAAA,EAAA,KAAA,GAAA,OAMAA,EAAAA,EAAA,KAAA,IAAA,OAMAA,EAAAA,EAAA,OAAA,IAAA,SAKAA,EAAAA,EAAA,KAAA,IAAA,QA3EIA,IAAAA,MA+EL,IAAMC,GAAO,WACPC,EAAM,SAEZF,GAAOA,EAAOG,MAAQF,EACtBD,EAAOA,EAAOI,KAAOF,EAEfF,EAAQC,GAAQD,EAAOG,KACvBH,EAAQE,GAAOF,EAAOI,IAE5BC,OAAOC,OAAON,GAEdK,OAAAE,eAAAR,EAAA,cAAAS,OAAA,IDlEIT,EAAAA,WCkEWC","file":"System/Uri/Scheme.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based on: https://msdn.microsoft.com/en-us/library/system.uri.scheme%28v=vs.110%29.aspx\n */\ndefine([\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var Scheme;\n (function (Scheme) {\n Scheme[Scheme[\"file\"] = 0] = \"file\";\n Scheme[Scheme[\"ftp\"] = 1] = \"ftp\";\n Scheme[Scheme[\"gopher\"] = 2] = \"gopher\";\n Scheme[Scheme[\"http\"] = 3] = \"http\";\n Scheme[Scheme[\"https\"] = 4] = \"https\";\n Scheme[Scheme[\"ldap\"] = 5] = \"ldap\";\n Scheme[Scheme[\"mailto\"] = 6] = \"mailto\";\n Scheme[Scheme[\"pipe\"] = 7] = \"pipe\";\n Scheme[Scheme[\"tcp\"] = 8] = \"tcp\";\n Scheme[Scheme[\"news\"] = 9] = \"news\";\n Scheme[Scheme[\"nntp\"] = 10] = \"nntp\";\n Scheme[Scheme[\"telnet\"] = 11] = \"telnet\";\n Scheme[Scheme[\"uuid\"] = 12] = \"uuid\";\n })(Scheme || (Scheme = {}));\n var PIPE = 'net.pipe';\n var TCP = 'net.tcp';\n Scheme[Scheme.pipe] = PIPE;\n Scheme[Scheme.tcp] = TCP;\n Scheme[PIPE] = Scheme.pipe;\n Scheme[TCP] = Scheme.tcp;\n Object.freeze(Scheme);\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Scheme;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based on: https://msdn.microsoft.com/en-us/library/system.uri.scheme%28v=vs.110%29.aspx\r\n */\r\n\r\n// TODO: Possibly use string literals instead.\r\nenum Scheme {\r\n\t/**\r\n\t * The resource is a file on the local computer.\r\n\t */\r\n\tfile,\r\n\r\n\r\n\t/**\r\n\t * The resource is accessed through FTP.\r\n\t */\r\n\tftp,\r\n\r\n\r\n\t/**\r\n\t * The resource is accessed through the Gopher protocol.\r\n\t */\r\n\tgopher,\r\n\r\n\r\n\t/**\r\n\t * The resource is accessed through HTTP.\r\n\t */\r\n\thttp,\r\n\r\n\r\n\t/**\r\n\t * The resource is accessed through SSL-encrypted HTTP.\r\n\t */\r\n\thttps,\r\n\r\n\r\n\t/**\r\n\t * The resource is accessed through the LDAP protocol.\r\n\t */\r\n\tldap,\r\n\r\n\r\n\t/**\r\n\t * The resource is an e-mail address and accessed through the SMTP protocol.\r\n\t */\r\n\tmailto,\r\n\r\n\r\n\t/**\r\n\t * The resource is accessed through a named pipe.\r\n\t */\r\n\tpipe,\r\n\r\n\r\n\t/**\r\n\t * The resource is accessed from TCP endpoint.\r\n\t */\r\n\ttcp,\r\n\r\n\r\n\t/**\r\n\t * The resource is accessed through the NNTP protocol.\r\n\t */\r\n\tnews,\r\n\r\n\r\n\t/**\r\n\t * The resource is accessed through the NNTP protocol.\r\n\t */\r\n\tnntp,\r\n\r\n\r\n\t/**\r\n\t * The resource is accessed through the TELNET protocol.\r\n\t */\r\n\ttelnet,\r\n\r\n\t/**\r\n\t * The resource is accessed through a unique UUID endpoint name for communicating with a service.\r\n\t */\r\n\tuuid\r\n}\r\n\r\n// Extend the usefulness of the enum.\r\nconst PIPE = 'net.pipe';\r\nconst TCP = 'net.tcp';\r\n\r\nScheme[Scheme.pipe] = PIPE;\r\nScheme[Scheme.tcp] = TCP;\r\n\r\n(Scheme)[PIPE] = Scheme.pipe;\r\n(Scheme)[TCP] = Scheme.tcp;\r\n\r\nObject.freeze(Scheme);\r\n\r\nexport default Scheme;\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Uri/Scheme.js","System/Uri/Scheme.ts"],"names":["define","require","exports","isValid","scheme","All","indexOf","File","FTP","GOPHER","HTTP","HTTPS","LDAP","MAILTO","PIPE","TCP","NEWS","NNTP","TELNET","UUID","Object","freeze"],"mappings":";;;;;AAKAA,QAAQ,UAAW,WAAY,SAAUC,EAASC,GAC9C,YCwFJ,SAAAC,GAAwBC,GACvB,MAAiC,IAA1BF,EAAAG,IAAIC,QAAaF,GAlFZF,EAAAK,KAAmB,OAMnBL,EAAAM,IAAiB,MAMjBN,EAAAO,OAAuB,SAMvBP,EAAAQ,KAAmB,OAMnBR,EAAAS,MAAqB,QAMrBT,EAAAU,KAAmB,OAMnBV,EAAAW,OAAuB,SAMvBX,EAAAY,KAAmB,WAMnBZ,EAAAa,IAAiB,UAMjBb,EAAAc,KAAmB,OAMnBd,EAAAe,KAAmB,OAMnBf,EAAAgB,OAAuB,SAKvBhB,EAAAiB,KAAmB,OAMnBjB,EAAAG,IAAoBe,OAAOC,QACvCnB,EAAAK,KAAML,EAAAM,IAAKN,EAAAO,OAAQP,EAAAQ,KAAMR,EAAAS,MAAOT,EAAAU,KAAMV,EAAAW,OAAQX,EAAAY,KAAMZ,EAAAa,IAAKb,EAAAc,KAAMd,EAAAe,KAAMf,EAAAgB,OAAQhB,EAAAiB,OAG9DjB,EAAAC,QAAOA","file":"System/Uri/Scheme.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based on: https://msdn.microsoft.com/en-us/library/system.uri.scheme%28v=vs.110%29.aspx\n */\ndefine([\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n exports.File = \"file\";\n exports.FTP = \"ftp\";\n exports.GOPHER = \"gopher\";\n exports.HTTP = \"http\";\n exports.HTTPS = \"https\";\n exports.LDAP = \"ldap\";\n exports.MAILTO = \"mailto\";\n exports.PIPE = \"net.pipe\";\n exports.TCP = \"net.tcp\";\n exports.NEWS = \"news\";\n exports.NNTP = \"nntp\";\n exports.TELNET = \"telnet\";\n exports.UUID = \"uuid\";\n exports.All = Object.freeze([\n exports.File, exports.FTP, exports.GOPHER, exports.HTTP, exports.HTTPS, exports.LDAP, exports.MAILTO, exports.PIPE, exports.TCP, exports.NEWS, exports.NNTP, exports.TELNET, exports.UUID\n ]);\n function isValid(scheme) {\n return exports.All.indexOf(scheme) != -1;\n }\n exports.isValid = isValid;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based on: https://msdn.microsoft.com/en-us/library/system.uri.scheme%28v=vs.110%29.aspx\r\n */\r\n\r\nimport * as Scheme from \"./SchemeValue\";\r\nimport {SchemeValue} from \"./SchemeValue\";\r\n\r\n\r\n/**\r\n * The resource is a file on the local computer.\r\n */\r\nexport const File:Scheme.File = \"file\";\r\n\r\n\r\n/**\r\n * The resource is accessed through FTP.\r\n */\r\nexport const FTP:Scheme.FTP = \"ftp\";\r\n\r\n\r\n/**\r\n * The resource is accessed through the Gopher protocol.\r\n */\r\nexport const GOPHER:Scheme.Gopher = \"gopher\";\r\n\r\n\r\n/**\r\n * The resource is accessed through HTTP.\r\n */\r\nexport const HTTP:Scheme.HTTP = \"http\";\r\n\r\n\r\n/**\r\n * The resource is accessed through SSL-encrypted HTTP.\r\n */\r\nexport const HTTPS:Scheme.HTTPS = \"https\";\r\n\r\n\r\n/**\r\n * The resource is accessed through the LDAP protocol.\r\n */\r\nexport const LDAP:Scheme.LDAP = \"ldap\";\r\n\r\n\r\n/**\r\n * The resource is an e-mail address and accessed through the SMTP protocol.\r\n */\r\nexport const MAILTO:Scheme.MailTo = \"mailto\";\r\n\r\n\r\n/**\r\n * The resource is accessed through a named pipe.\r\n */\r\nexport const PIPE:Scheme.Pipe = \"net.pipe\";\r\n\r\n\r\n/**\r\n * The resource is accessed from TCP endpoint.\r\n */\r\nexport const TCP:Scheme.TCP = \"net.tcp\";\r\n\r\n\r\n/**\r\n * The resource is accessed through the NNTP protocol.\r\n */\r\nexport const NEWS:Scheme.NNTP = \"news\";\r\n\r\n\r\n/**\r\n * The resource is accessed through the NNTP protocol.\r\n */\r\nexport const NNTP:Scheme.NNTP = \"nntp\";\r\n\r\n\r\n/**\r\n * The resource is accessed through the TELNET protocol.\r\n */\r\nexport const TELNET:Scheme.Telnet = \"telnet\";\r\n\r\n/**\r\n * The resource is accessed through a unique UUID endpoint name for communicating with a service.\r\n */\r\nexport const UUID:Scheme.UUID = \"uuid\";\r\n\r\n/**\r\n * An index of possible values to validate against.\r\n * @type {Array}\r\n */\r\nexport const All:SchemeValue[] = Object.freeze([\r\n\tFile, FTP, GOPHER, HTTP, HTTPS, LDAP, MAILTO, PIPE, TCP, NEWS, NNTP, TELNET, UUID\r\n]);\r\n\r\nexport function isValid(scheme:string):scheme is SchemeValue {\r\n\treturn All.indexOf(scheme)!=-1;\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Uri/Uri.d.ts b/dist/amd/System/Uri/Uri.d.ts index b48843c9..07123b10 100644 --- a/dist/amd/System/Uri/Uri.d.ts +++ b/dist/amd/System/Uri/Uri.d.ts @@ -1,14 +1,15 @@ -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based on: https://en.wikipedia.org/wiki/Uniform_Resource_Identifier */ -import UriScheme from "../Uri/Scheme"; -export default class Uri implements IUri, IEquatable { +import * as QueryParam from "./QueryParam"; +import { SchemeValue } from "./SchemeValue"; +import { IUri } from "./IUri"; +import { IMap } from "../Collections/Dictionaries/IDictionary"; +import { Primitive } from "../Primitive"; +import { IEquatable } from "../IEquatable"; +export declare class Uri implements IUri, IEquatable { scheme: SchemeValue; userInfo: string; host: string; @@ -17,14 +18,14 @@ export default class Uri implements IUri, IEquatable { query: string; fragment: string; queryParams: IMap; - constructor(scheme: UriScheme | SchemeValue, userInfo: string, host: string, port: number, path: string, query?: QueryParamsConvertible, fragment?: string); + constructor(scheme: SchemeValue, userInfo: string, host: string, port: number, path: string, query?: QueryParam.Convertible, fragment?: string); equals(other: IUri): boolean; static from(uri: string | IUri, defaults?: IUri): Uri; static parse(url: string, throwIfInvalid?: boolean): IUri; static tryParse(url: string, out: (result: IUri) => void): boolean; static copyOf(map: IUri): IUri; copyTo(map: IUri): IUri; - updateQuery(query: QueryParamsConvertible): Uri; + updateQuery(query: QueryParam.Convertible): Uri; protected getAbsoluteUri(): string; protected getAuthority(): string; protected getPathAndQuery(): string; @@ -47,3 +48,4 @@ export declare enum Fields { query = 5, fragment = 6, } +export default Uri; diff --git a/dist/amd/System/Uri/Uri.js b/dist/amd/System/Uri/Uri.js index 9397353c..8217674a 100644 --- a/dist/amd/System/Uri/Uri.js +++ b/dist/amd/System/Uri/Uri.js @@ -3,5 +3,5 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based on: https://en.wikipedia.org/wiki/Uniform_Resource_Identifier */ -define(["require","exports","../Types","../Uri/QueryParams","../Text/Utility","../Uri/Scheme","../Exceptions/ArgumentException","../Exceptions/ArgumentOutOfRangeException"],function(t,e,r,n,u,i,o,s){"use strict";function a(t,e){var r,n=0;for(e||(e={});r=v[n++];){var u=t[r];u&&(e[r]=u)}return e}function f(t){var e=t;if(r["default"].isString(e)){if(!e)return y;if(e=i["default"][u.trim(e).toLowerCase().replace(/[^a-z0-9+.-]+$/g,q)],isNaN(e))throw new s["default"]("scheme",t,"Invalid scheme.")}if(r["default"].isNumber(e,!1)){if(e=i["default"][e],!e)throw new s["default"]("scheme",t,"Invalid scheme.");return e}return y}function l(t){if(0===t)return t;if(!t)return null;var e;if(r["default"].isNumber(t,!0)){if(e=t,e>=0&&isFinite(e))return e}else if(r["default"].isString(t)&&(e=parseInt(t))&&!isNaN(e))return l(e);throw new o["default"]("port","invalid value")}function h(t){if(!t.host){if(t.userInfo)throw new o["default"]("host","Cannot include user info when there is no host.");if(r["default"].isNumber(t.port,!1))throw new o["default"]("host","Cannot include a port when there is no host.")}var e=t.host||q;return e&&(t.userInfo&&(e=t.userInfo+I+e),isNaN(t.port)||(e+=":"+t.port),e=O+e),e}function c(t){return t&&(0!==t.indexOf(x)?x:q)+t}function p(t){return t&&(0!==t.indexOf(N)?N:q)+t}function d(t){var e=t.path,r=t.query;return q+(e||q)+(c(r)||q)}function g(t){var e=f(t.scheme),r=h(t),n=d(t),u=p(t.fragment),i=q+(e&&e+":"||q)+(r||q),s=q+(n||q)+(u||q);if(i&&s&&e&&!r)throw new o["default"]("authority","Cannot format schemed Uri with missing authority.");return i&&n&&0!==n.indexOf(w)&&(s=w+s),i+s}function m(t,e){if(!t)return new o["default"]("url","Nothing to parse.");var r,n={};if(r=t.indexOf(N),-1!=r&&(n.fragment=t.substring(r+1)||y,t=t.substring(0,r)),r=t.indexOf(x),-1!=r&&(n.query=t.substring(r+1)||y,t=t.substring(0,r)),r=t.indexOf(O),-1!=r){var i=u.trim(t.substring(0,r)),s=/:$/;if(!s.test(i))return new o["default"]("url","Scheme was improperly formatted");i=u.trim(i.replace(s,q));try{n.scheme=f(i)||y}catch(l){return l}t=t.substring(r+2)}if(r=t.indexOf(w),-1!=r&&(n.path=t.substring(r),t=t.substring(0,r)),r=t.indexOf(I),-1!=r&&(n.userInfo=t.substring(0,r)||y,t=t.substring(r+1)),r=t.indexOf(":"),-1!=r){var h=parseInt(u.trim(t.substring(r+1)));if(isNaN(h))return new o["default"]("url","Port was invalid.");n.port=h,t=t.substring(0,r)}return t=u.trim(t),t&&(n.host=t),e(a(n)),null}var y=void 0,b=function(){function t(t,e,u,i,o,s,a){var h=this;h.scheme=f(t)||null,h.userInfo=e||null,h.host=u||null,h.port=l(i),h.authority=h.getAuthority()||null,h.path=o||null,r["default"].isString(s)||(s=n.encode(s)),h.query=c(s)||null,Object.freeze(h.queryParams=h.query?n.parseToMap(h.query):{}),h.pathAndQuery=h.getPathAndQuery()||null,h.fragment=p(a)||null,h.absoluteUri=h.getAbsoluteUri(),h.baseUri=h.absoluteUri.replace(/[?#].*/,""),Object.freeze(h)}return t.prototype.equals=function(e){return this===e||this.absoluteUri==t.toString(e)},t.from=function(e,n){var u=!e||r["default"].isString(e)?t.parse(e):e;return new t(u.scheme||n&&n.scheme,u.userInfo||n&&n.userInfo,u.host||n&&n.host,isNaN(u.port)?n&&n.port:u.port,u.path||n&&n.path,u.query||n&&n.query,u.fragment||n&&n.fragment)},t.parse=function(t,e){void 0===e&&(e=!0);var r=null,n=m(t,function(t){r=t});if(e&&n)throw n;return r},t.tryParse=function(t,e){return!m(t,e)},t.copyOf=function(t){return a(t)},t.prototype.copyTo=function(t){return a(this,t)},t.prototype.updateQuery=function(e){var r=this.toMap();return r.query=e,t.from(r)},t.prototype.getAbsoluteUri=function(){return g(this)},t.prototype.getAuthority=function(){return h(this)},t.prototype.getPathAndQuery=function(){return d(this)},Object.defineProperty(t.prototype,"pathSegments",{get:function(){return this.path.match(/^[\/]|[^\/]*[\/]|[^\/]+$/g)},enumerable:!0,configurable:!0}),t.prototype.toMap=function(){return this.copyTo({})},t.prototype.toString=function(){return this.absoluteUri},t.toString=function(e){return e instanceof t?e.absoluteUri:g(e)},t.getAuthority=function(t){return h(t)},t}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=b,function(t){t[t.scheme=0]="scheme",t[t.userInfo=1]="userInfo",t[t.host=2]="host",t[t.port=3]="port",t[t.path=4]="path",t[t.query=5]="query",t[t.fragment=6]="fragment"}(e.Fields||(e.Fields={}));var v=e.Fields;Object.freeze(v);var w="/",O="//",x="?",N="#",q="",I="@"}); +define(["require","exports","../Types","./QueryParams","./Scheme","../Text/Utility","../Exceptions/ArgumentException","../Exceptions/ArgumentOutOfRangeException"],function(t,e,r,n,i,u,o,s){"use strict";function a(t,e){var r,n=0;for(e||(e={});r=v[n++];){var i=t[r];i&&(e[r]=i)}return e}function f(t){var e=t;if(r.Type.isString(e)){if(!e)return null;if(e=u.trim(e).toLowerCase().replace(/[^a-z0-9+.-]+$/g,q),!e)return null;if(i.isValid(e))return e}else if(null===e||void 0===e)return e;throw new s.ArgumentOutOfRangeException("scheme",t,"Invalid scheme.")}function p(t){if(0===t)return t;if(!t)return null;var e;if(r.Type.isNumber(t,!0)){if(e=t,e>=0&&isFinite(e))return e}else if(r.Type.isString(t)&&(e=parseInt(t))&&!isNaN(e))return p(e);throw new o.ArgumentException("port","invalid value")}function c(t){if(!t.host){if(t.userInfo)throw new o.ArgumentException("host","Cannot include user info when there is no host.");if(r.Type.isNumber(t.port,!1))throw new o.ArgumentException("host","Cannot include a port when there is no host.")}var e=t.host||q;return e&&(t.userInfo&&(e=t.userInfo+E+e),isNaN(t.port)||(e+=":"+t.port),e=w+e),e}function h(t){return t&&(0!==t.indexOf(O)?O:q)+t}function l(t){return t&&(0!==t.indexOf(A)?A:q)+t}function g(t){var e=t.path,r=t.query;return q+(e||q)+(h(r)||q)}function y(t){var e=f(t.scheme),r=c(t),n=g(t),i=l(t.fragment),u=q+(e&&e+":"||q)+(r||q),s=q+(n||q)+(i||q);if(u&&s&&e&&!r)throw new o.ArgumentException("authority","Cannot format schemed Uri with missing authority.");return u&&n&&0!==n.indexOf(x)&&(s=x+s),u+s}function m(t,e){if(!t)return new o.ArgumentException("url","Nothing to parse.");var r,n={};if(r=t.indexOf(A),-1!=r&&(n.fragment=t.substring(r+1)||d,t=t.substring(0,r)),r=t.indexOf(O),-1!=r&&(n.query=t.substring(r+1)||d,t=t.substring(0,r)),r=t.indexOf(w),-1!=r){var i=u.trim(t.substring(0,r)),s=/:$/;if(!s.test(i))return new o.ArgumentException("url","Scheme was improperly formatted");i=u.trim(i.replace(s,q));try{n.scheme=f(i)||d}catch(p){return p}t=t.substring(r+2)}if(r=t.indexOf(x),-1!=r&&(n.path=t.substring(r),t=t.substring(0,r)),r=t.indexOf(E),-1!=r&&(n.userInfo=t.substring(0,r)||d,t=t.substring(r+1)),r=t.indexOf(":"),-1!=r){var c=parseInt(u.trim(t.substring(r+1)));if(isNaN(c))return new o.ArgumentException("url","Port was invalid.");n.port=c,t=t.substring(0,r)}return t=u.trim(t),t&&(n.host=t),e(a(n)),null}var d=void 0,b=function(){function t(t,e,i,u,o,s,a){var c=this;c.scheme=f(t)||null,c.userInfo=e||null,c.host=i||null,c.port=p(u),c.authority=c.getAuthority()||null,c.path=o||null,r.Type.isString(s)||(s=n.encode(s)),c.query=h(s)||null,Object.freeze(c.queryParams=c.query?n.parseToMap(c.query):{}),c.pathAndQuery=c.getPathAndQuery()||null,c.fragment=l(a)||null,c.absoluteUri=c.getAbsoluteUri(),c.baseUri=c.absoluteUri.replace(/[?#].*/,""),Object.freeze(c)}return t.prototype.equals=function(e){return this===e||this.absoluteUri==t.toString(e)},t.from=function(e,n){var i=!e||r.Type.isString(e)?t.parse(e):e;return new t(i.scheme||n&&n.scheme,i.userInfo||n&&n.userInfo,i.host||n&&n.host,isNaN(i.port)?n&&n.port:i.port,i.path||n&&n.path,i.query||n&&n.query,i.fragment||n&&n.fragment)},t.parse=function(t,e){void 0===e&&(e=!0);var r=null,n=m(t,function(t){r=t});if(e&&n)throw n;return r},t.tryParse=function(t,e){return!m(t,e)},t.copyOf=function(t){return a(t)},t.prototype.copyTo=function(t){return a(this,t)},t.prototype.updateQuery=function(e){var r=this.toMap();return r.query=e,t.from(r)},t.prototype.getAbsoluteUri=function(){return y(this)},t.prototype.getAuthority=function(){return c(this)},t.prototype.getPathAndQuery=function(){return g(this)},Object.defineProperty(t.prototype,"pathSegments",{get:function(){return this.path.match(/^[\/]|[^\/]*[\/]|[^\/]+$/g)},enumerable:!0,configurable:!0}),t.prototype.toMap=function(){return this.copyTo({})},t.prototype.toString=function(){return this.absoluteUri},t.toString=function(e){return e instanceof t?e.absoluteUri:y(e)},t.getAuthority=function(t){return c(t)},t}();e.Uri=b,function(t){t[t.scheme=0]="scheme",t[t.userInfo=1]="userInfo",t[t.host=2]="host",t[t.port=3]="port",t[t.path=4]="path",t[t.query=5]="query",t[t.fragment=6]="fragment"}(e.Fields||(e.Fields={}));var v=e.Fields;Object.freeze(v);var x="/",w="//",O=n.Separator.Query,A="#",q="",E="@";Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=b}); //# sourceMappingURL=Uri.js.map diff --git a/dist/amd/System/Uri/Uri.js.map b/dist/amd/System/Uri/Uri.js.map index 9d791722..31054cf9 100644 --- a/dist/amd/System/Uri/Uri.js.map +++ b/dist/amd/System/Uri/Uri.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Uri/Uri.js","System/Uri/Uri.ts"],"names":["define","require","exports","Types_1","QueryParams","Utility_1","Scheme_1","ArgumentException_1","ArgumentOutOfRangeException_1","copyUri","from","to","field","i","Fields","value","getScheme","scheme","s","isString","VOID0","trim","toLowerCase","replace","EMPTY","isNaN","isNumber","getPort","port","p","isFinite","parseInt","getAuthority","uri","host","userInfo","result","AT","SLASH2","formatQuery","query","indexOf","QM","formatFragment","fragment","HASH","getPathAndQuery","path","uriToString","authority","pathAndQuery","part1","part2","SLASH","tryParse","url","out","substring","c","test","ex","Uri","_","this","encode","Object","freeze","queryParams","parseToMap","absoluteUri","getAbsoluteUri","baseUri","prototype","equals","other","toString","defaults","u","parse","throwIfInvalid","copyOf","map","copyTo","updateQuery","toMap","defineProperty","get","match","enumerable","configurable"],"mappings":"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","file":"System/Uri/Uri.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based on: https://en.wikipedia.org/wiki/Uniform_Resource_Identifier\n */\ndefine([\"require\", \"exports\", \"../Types\", \"../Uri/QueryParams\", \"../Text/Utility\", \"../Uri/Scheme\", \"../Exceptions/ArgumentException\", \"../Exceptions/ArgumentOutOfRangeException\"], function (require, exports, Types_1, QueryParams, Utility_1, Scheme_1, ArgumentException_1, ArgumentOutOfRangeException_1) {\n 'use strict';\n var VOID0 = void (0);\n var Uri = (function () {\n function Uri(scheme, userInfo, host, port, path, query, fragment) {\n var _ = this;\n _.scheme = getScheme(scheme) || null;\n _.userInfo = userInfo || null;\n _.host = host || null;\n _.port = getPort(port);\n _.authority = _.getAuthority() || null;\n _.path = path || null;\n if (!Types_1.default.isString(query))\n query = QueryParams.encode(query);\n _.query = formatQuery(query) || null;\n Object.freeze(_.queryParams\n = _.query\n ? QueryParams.parseToMap(_.query)\n : {});\n _.pathAndQuery = _.getPathAndQuery() || null;\n _.fragment = formatFragment(fragment) || null;\n _.absoluteUri = _.getAbsoluteUri();\n _.baseUri = _.absoluteUri.replace(/[?#].*/, '');\n Object.freeze(_);\n }\n Uri.prototype.equals = function (other) {\n return this === other || this.absoluteUri == Uri.toString(other);\n };\n Uri.from = function (uri, defaults) {\n var u = (!uri || Types_1.default.isString(uri))\n ? Uri.parse(uri) : uri;\n return new Uri(u.scheme || defaults && defaults.scheme, u.userInfo || defaults && defaults.userInfo, u.host || defaults && defaults.host, isNaN(u.port) ? defaults && defaults.port : u.port, u.path || defaults && defaults.path, u.query || defaults && defaults.query, u.fragment || defaults && defaults.fragment);\n };\n Uri.parse = function (url, throwIfInvalid) {\n if (throwIfInvalid === void 0) { throwIfInvalid = true; }\n var result = null;\n var ex = tryParse(url, function (out) { result = out; });\n if (throwIfInvalid && ex)\n throw ex;\n return result;\n };\n Uri.tryParse = function (url, out) {\n return !tryParse(url, out);\n };\n Uri.copyOf = function (map) {\n return copyUri(map);\n };\n Uri.prototype.copyTo = function (map) {\n return copyUri(this, map);\n };\n Uri.prototype.updateQuery = function (query) {\n var map = this.toMap();\n map.query = query;\n return Uri.from(map);\n };\n Uri.prototype.getAbsoluteUri = function () {\n return uriToString(this);\n };\n Uri.prototype.getAuthority = function () {\n return getAuthority(this);\n };\n Uri.prototype.getPathAndQuery = function () {\n return getPathAndQuery(this);\n };\n Object.defineProperty(Uri.prototype, \"pathSegments\", {\n get: function () {\n return this.path.match(/^[/]|[^/]*[/]|[^/]+$/g);\n },\n enumerable: true,\n configurable: true\n });\n Uri.prototype.toMap = function () {\n return this.copyTo({});\n };\n Uri.prototype.toString = function () {\n return this.absoluteUri;\n };\n Uri.toString = function (uri) {\n return uri instanceof Uri\n ? uri.absoluteUri\n : uriToString(uri);\n };\n Uri.getAuthority = function (uri) {\n return getAuthority(uri);\n };\n return Uri;\n }());\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Uri;\n (function (Fields) {\n Fields[Fields[\"scheme\"] = 0] = \"scheme\";\n Fields[Fields[\"userInfo\"] = 1] = \"userInfo\";\n Fields[Fields[\"host\"] = 2] = \"host\";\n Fields[Fields[\"port\"] = 3] = \"port\";\n Fields[Fields[\"path\"] = 4] = \"path\";\n Fields[Fields[\"query\"] = 5] = \"query\";\n Fields[Fields[\"fragment\"] = 6] = \"fragment\";\n })(exports.Fields || (exports.Fields = {}));\n var Fields = exports.Fields;\n Object.freeze(Fields);\n function copyUri(from, to) {\n var i = 0, field;\n if (!to)\n to = {};\n while (field = Fields[i++]) {\n var value = from[field];\n if (value)\n to[field] = value;\n }\n return to;\n }\n var SLASH = '/', SLASH2 = '//', QM = '?', HASH = '#', EMPTY = '', AT = '@';\n function getScheme(scheme) {\n var s = scheme;\n if (Types_1.default.isString(s)) {\n if (!s)\n return VOID0;\n s = Scheme_1.default[Utility_1.trim(s).toLowerCase().replace(/[^a-z0-9+.-]+$/g, EMPTY)];\n if (isNaN(s))\n throw new ArgumentOutOfRangeException_1.default('scheme', scheme, 'Invalid scheme.');\n }\n if (Types_1.default.isNumber(s, false)) {\n s = Scheme_1.default[s];\n if (!s)\n throw new ArgumentOutOfRangeException_1.default('scheme', scheme, 'Invalid scheme.');\n return s;\n }\n return VOID0;\n }\n function getPort(port) {\n if (port === 0)\n return port;\n if (!port)\n return null;\n var p;\n if (Types_1.default.isNumber(port, true)) {\n p = port;\n if (p >= 0 && isFinite(p))\n return p;\n }\n else if (Types_1.default.isString(port) && (p = parseInt(port)) && !isNaN(p)) {\n return getPort(p);\n }\n throw new ArgumentException_1.default(\"port\", \"invalid value\");\n }\n function getAuthority(uri) {\n if (!uri.host) {\n if (uri.userInfo)\n throw new ArgumentException_1.default('host', 'Cannot include user info when there is no host.');\n if (Types_1.default.isNumber(uri.port, false))\n throw new ArgumentException_1.default('host', 'Cannot include a port when there is no host.');\n }\n var result = uri.host || EMPTY;\n if (result) {\n if (uri.userInfo)\n result = uri.userInfo + AT + result;\n if (!isNaN(uri.port))\n result += ':' + uri.port;\n result = SLASH2 + result;\n }\n return result;\n }\n function formatQuery(query) {\n return query && ((query.indexOf(QM) !== 0 ? QM : EMPTY) + query);\n }\n function formatFragment(fragment) {\n return fragment && ((fragment.indexOf(HASH) !== 0 ? HASH : EMPTY) + fragment);\n }\n function getPathAndQuery(uri) {\n var path = uri.path, query = uri.query;\n return EMPTY\n + (path || EMPTY)\n + (formatQuery(query) || EMPTY);\n }\n function uriToString(uri) {\n var scheme = getScheme(uri.scheme), authority = getAuthority(uri), pathAndQuery = getPathAndQuery(uri), fragment = formatFragment(uri.fragment);\n var part1 = EMPTY\n + ((scheme && (scheme + ':')) || EMPTY)\n + (authority || EMPTY);\n var part2 = EMPTY\n + (pathAndQuery || EMPTY)\n + (fragment || EMPTY);\n if (part1 && part2 && scheme && !authority)\n throw new ArgumentException_1.default('authority', \"Cannot format schemed Uri with missing authority.\");\n if (part1 && pathAndQuery && pathAndQuery.indexOf(SLASH) !== 0)\n part2 = SLASH + part2;\n return part1 + part2;\n }\n function tryParse(url, out) {\n if (!url)\n return new ArgumentException_1.default('url', 'Nothing to parse.');\n var i, result = {};\n i = url.indexOf(HASH);\n if (i != -1) {\n result.fragment = url.substring(i + 1) || VOID0;\n url = url.substring(0, i);\n }\n i = url.indexOf(QM);\n if (i != -1) {\n result.query = url.substring(i + 1) || VOID0;\n url = url.substring(0, i);\n }\n i = url.indexOf(SLASH2);\n if (i != -1) {\n var scheme = Utility_1.trim(url.substring(0, i)), c = /:$/;\n if (!c.test(scheme))\n return new ArgumentException_1.default('url', 'Scheme was improperly formatted');\n scheme = Utility_1.trim(scheme.replace(c, EMPTY));\n try {\n result.scheme = getScheme(scheme) || VOID0;\n }\n catch (ex) {\n return ex;\n }\n url = url.substring(i + 2);\n }\n i = url.indexOf(SLASH);\n if (i != -1) {\n result.path = url.substring(i);\n url = url.substring(0, i);\n }\n i = url.indexOf(AT);\n if (i != -1) {\n result.userInfo = url.substring(0, i) || VOID0;\n url = url.substring(i + 1);\n }\n i = url.indexOf(':');\n if (i != -1) {\n var port = parseInt(Utility_1.trim(url.substring(i + 1)));\n if (isNaN(port))\n return new ArgumentException_1.default('url', 'Port was invalid.');\n result.port = port;\n url = url.substring(0, i);\n }\n url = Utility_1.trim(url);\n if (url)\n result.host = url;\n out(copyUri(result));\n return null;\n }\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based on: https://en.wikipedia.org/wiki/Uniform_Resource_Identifier\r\n */\r\n\r\n///\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport Type from \"../Types\";\r\nimport * as QueryParams from \"../Uri/QueryParams\";\r\nimport {trim} from \"../Text/Utility\";\r\nimport UriScheme from \"../Uri/Scheme\";\r\nimport Exception from \"../Exception\";\r\nimport ArgumentException from \"../Exceptions/ArgumentException\";\r\nimport ArgumentOutOfRangeException from \"../Exceptions/ArgumentOutOfRangeException\";\r\n\r\nconst VOID0:any = void(0);\r\n\r\n/**\r\n * Provides an read-only model representation of a uniform resource identifier (URI) and easy access to the parts of the URI.\r\n *\r\n * The read-only model (frozen) is easier for debugging than exposing accessors for each property.\r\n * ICloneable<Uri> is not used to prevent unnecessary copying of values that won't change.\r\n */\r\nexport default class Uri implements IUri, IEquatable\r\n{\r\n\r\n\tscheme:SchemeValue;\r\n\tuserInfo:string;\r\n\thost:string;\r\n\tport:number;\r\n\tpath:string;\r\n\tquery:string;\r\n\tfragment:string;\r\n\r\n\tqueryParams:IMap;\r\n\r\n\t/**\r\n\t * @param scheme The user name, password, or other user-specific information associated with the specified URI.\r\n\t * @param userInfo The host component of this instance.\r\n\t * @param host The port number of this URI.\r\n\t * @param port The absolute path of the URI.\r\n\t * @param path The absolute path of the URI.\r\n\t * @param query Any query information included in the specified URI.\r\n\t * @param fragment The escaped URI fragment.\r\n\t */\r\n\tconstructor(\r\n\t\tscheme:UriScheme|SchemeValue,\r\n\t\tuserInfo:string,\r\n\t\thost:string,\r\n\t\tport:number,\r\n\t\tpath:string,\r\n\t\tquery?:QueryParamsConvertible,\r\n\t\tfragment?:string)\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.scheme = getScheme(scheme) || null;\r\n\t\t_.userInfo = userInfo || null;\r\n\t\t_.host = host || null;\r\n\r\n\t\t_.port = getPort(port);\r\n\r\n\t\t_.authority = _.getAuthority() || null;\r\n\r\n\t\t_.path = path || null;\r\n\r\n\r\n\t\tif(!Type.isString(query))\r\n\t\t\tquery = QueryParams.encode([]>query);\r\n\r\n\t\t_.query = formatQuery(query) || null;\r\n\t\tObject.freeze(_.queryParams\r\n\t\t\t= _.query\r\n\t\t\t? QueryParams.parseToMap(_.query)\r\n\t\t\t: {});\r\n\r\n\t\t_.pathAndQuery = _.getPathAndQuery() || null;\r\n\r\n\t\t_.fragment = formatFragment(fragment) || null;\r\n\r\n\t\t// This should validate the uri...\r\n\t\t_.absoluteUri = _.getAbsoluteUri();\r\n\r\n\t\t_.baseUri = _.absoluteUri.replace(/[?#].*/, '');\r\n\r\n\t\t// Intended to be read-only. Call .toMap() to get a writable copy.\r\n\t\tObject.freeze(_);\r\n\t}\r\n\r\n\t/**\r\n\t * Compares the values of another IUri via toString comparison.\r\n\t * @param other\r\n\t * @returns {boolean}\r\n\t */\r\n\tequals(other:IUri):boolean\r\n\t{\r\n\t\treturn this===other || this.absoluteUri==Uri.toString(other);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Parses or clones values from existing Uri values.\r\n\t * @param uri\r\n\t * @param defaults\r\n\t * @returns {Uri}\r\n\t */\r\n\tstatic from(uri:string|IUri, defaults?:IUri):Uri\r\n\t{\r\n\t\tvar u = (!uri || Type.isString(uri))\r\n\t\t\t? Uri.parse(uri) : uri;\r\n\r\n\t\treturn new Uri(\r\n\t\t\tu.scheme || defaults && defaults.scheme,\r\n\t\t\tu.userInfo || defaults && defaults.userInfo,\r\n\t\t\tu.host || defaults && defaults.host,\r\n\t\t\tisNaN(u.port) ? defaults && defaults.port : u.port,\r\n\t\t\tu.path || defaults && defaults.path,\r\n\t\t\tu.query || defaults && defaults.query,\r\n\t\t\tu.fragment || defaults && defaults.fragment\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * Parses a URL into it's components.\r\n\t * @param url The url to parse.\r\n\t * @param throwIfInvalid Defaults to true.\r\n\t * @returns {IUri} Returns a map of the values or *null* if invalid and *throwIfInvalid* is false.\r\n\t */\r\n\tstatic parse(url:string, throwIfInvalid:boolean = true):IUri\r\n\t{\r\n\t\tvar result:IUri = null;\r\n\t\tvar ex = tryParse(url, (out)=> {result = out;});\r\n\t\tif(throwIfInvalid && ex) throw ex;\r\n\t\treturn result;\r\n\t}\r\n\r\n\t/**\r\n\t * Parses a URL into it's components.\r\n\t * @param url The url to parse.\r\n\t * @param out A delegate to capture the value.\r\n\t * @returns {boolean} True if valid. False if invalid.\r\n\t */\r\n\tstatic tryParse(url:string, out:(result:IUri)=>void):boolean\r\n\t{\r\n\t\treturn !tryParse(url, out); // return type is Exception.\r\n\t}\r\n\r\n\tstatic copyOf(map:IUri):IUri\r\n\t{\r\n\t\treturn copyUri(map);\r\n\t}\r\n\r\n\tcopyTo(map:IUri):IUri\r\n\t{\r\n\t\treturn copyUri(this, map);\r\n\t}\r\n\r\n\tupdateQuery(query:QueryParamsConvertible):Uri\r\n\t{\r\n\t\tvar map = this.toMap();\r\n\t\tmap.query = query;\r\n\t\treturn Uri.from(map);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Is provided for sub classes to override this value.\r\n\t */\r\n\tprotected getAbsoluteUri():string\r\n\t{\r\n\t\treturn uriToString(this);\r\n\t}\r\n\r\n\t/**\r\n\t * Is provided for sub classes to override this value.\r\n\t */\r\n\tprotected getAuthority():string\r\n\t{\r\n\t\treturn getAuthority(this);\r\n\t}\r\n\r\n\t/**\r\n\t * Is provided for sub classes to override this value.\r\n\t */\r\n\tprotected getPathAndQuery():string\r\n\t{\r\n\t\treturn getPathAndQuery(this);\r\n\t}\r\n\r\n\t/**\r\n\t * The absolute URI.\r\n\t */\r\n\tabsoluteUri:string;\r\n\r\n\t/**\r\n\t * Gets the Domain Name System (DNS) host name or IP address and the port number for a server.\r\n\t */\r\n\tauthority:string;\r\n\r\n\t/**\r\n\t * Gets the path and Query properties separated by a question mark (?).\r\n\t */\r\n\tpathAndQuery:string;\r\n\r\n\t/**\r\n\t * Gets the full path without the query or fragment.\r\n\t */\r\n\tbaseUri:string;\r\n\r\n\t/**\r\n\t * The segments that represent a path.
\r\n\t * https://msdn.microsoft.com/en-us/library/system.uri.segments%28v=vs.110%29.aspx\r\n\t *\r\n\t *
Example:
\r\n\t * If the path value equals: ```/tree/node/index.html```
\r\n\t * The result will be: ```['/','tree/','node/','index.html']```\r\n\t * @returns {string[]}\r\n\t */\r\n\tget pathSegments():string[]\r\n\t{\r\n\t\treturn this.path.match(/^[/]|[^/]*[/]|[^/]+$/g);\r\n\t}\r\n\r\n\t/**\r\n\t * Creates a writable copy.\r\n\t * @returns {IUri}\r\n\t */\r\n\ttoMap():IUri\r\n\t{\r\n\t\treturn this.copyTo({});\r\n\t}\r\n\r\n\t/**\r\n\t * @returns {string} The full absolute uri.\r\n\t */\r\n\ttoString():string\r\n\t{\r\n\t\treturn this.absoluteUri;\r\n\t}\r\n\r\n\t/**\r\n\t * Properly converts an existing URI to a string.\r\n\t * @param uri\r\n\t * @returns {string}\r\n\t */\r\n\tstatic toString(uri:IUri):string\r\n\t{\r\n\t\treturn uri instanceof Uri\r\n\t\t\t? (uri).absoluteUri\r\n\t\t\t: uriToString(uri);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the authority segment of an URI.\r\n\t * @param uri\r\n\t * @returns {string}\r\n\t */\r\n\tstatic getAuthority(uri:IUri):string\r\n\t{\r\n\t\treturn getAuthority(uri);\r\n\t}\r\n\r\n\r\n}\r\n\r\nexport enum Fields {\r\n\tscheme,\r\n\tuserInfo,\r\n\thost,\r\n\tport,\r\n\tpath,\r\n\tquery,\r\n\tfragment\r\n}\r\nObject.freeze(Fields);\r\n\r\nfunction copyUri(from:IUri, to?:IUri)\r\n{\r\n\tvar i = 0, field:string;\r\n\tif(!to) to = {};\r\n\twhile(field = Fields[i++])\r\n\t{\r\n\t\tvar value = (from)[field];\r\n\t\tif(value) (to)[field] = value;\r\n\t}\r\n\treturn to;\r\n}\r\n\r\nconst SLASH = '/', SLASH2 = '//', QM = '?', HASH = '#', EMPTY = '', AT = '@';\r\n\r\nfunction getScheme(scheme:UriScheme|string):SchemeValue\r\n{\r\n\tvar s:any = scheme;\r\n\tif(Type.isString(s))\r\n\t{\r\n\t\tif(!s) return VOID0;\r\n\r\n\t\ts = UriScheme[trim(s).toLowerCase().replace(/[^a-z0-9+.-]+$/g, EMPTY)];\r\n\r\n\t\tif(isNaN(s))\r\n\t\t\tthrow new ArgumentOutOfRangeException('scheme', scheme, 'Invalid scheme.');\r\n\t}\r\n\r\n\tif(Type.isNumber(s, false))\r\n\t{\r\n\t\ts = UriScheme[s];\r\n\t\tif(!s)\r\n\t\t\tthrow new ArgumentOutOfRangeException('scheme', scheme, 'Invalid scheme.');\r\n\r\n\t\treturn s;\r\n\t}\r\n\r\n\treturn VOID0;\r\n}\r\n\r\nfunction getPort(port:number|string):number\r\n{\r\n\tif(port===0) return port;\r\n\tif(!port) return null;\r\n\tvar p:number;\r\n\r\n\tif(Type.isNumber(port, true))\r\n\t{\r\n\t\tp = port;\r\n\t\tif(p>=0 && isFinite(p))\r\n\t\t\treturn p;\r\n\t}\r\n\telse if(Type.isString(port) && (p = parseInt(port)) && !isNaN(p))\r\n\t{\r\n\t\treturn getPort(p);\r\n\t}\r\n\r\n\tthrow new ArgumentException(\"port\", \"invalid value\");\r\n}\r\n\r\nfunction getAuthority(uri:IUri):string\r\n{\r\n\r\n\tif(!uri.host)\r\n\t{\r\n\t\tif(uri.userInfo)\r\n\t\t\tthrow new ArgumentException('host', 'Cannot include user info when there is no host.');\r\n\r\n\t\tif(Type.isNumber(uri.port, false))\r\n\t\t\tthrow new ArgumentException('host', 'Cannot include a port when there is no host.');\r\n\t}\r\n\r\n\t/*\r\n\t * [//[user:password@]host[:port]]\r\n\t */\r\n\r\n\tvar result = uri.host || EMPTY;\r\n\r\n\tif(result)\r\n\t{\r\n\t\tif(uri.userInfo) result = uri.userInfo + AT + result;\r\n\t\tif(!isNaN(uri.port)) result += ':' + uri.port;\r\n\t\tresult = SLASH2 + result;\r\n\t}\r\n\r\n\treturn result;\r\n}\r\n\r\nfunction formatQuery(query:string):string\r\n{\r\n\treturn query && ((query.indexOf(QM)!==0 ? QM : EMPTY) + query);\r\n}\r\n\r\nfunction formatFragment(fragment:string):string\r\n{\r\n\treturn fragment && ((fragment.indexOf(HASH)!==0 ? HASH : EMPTY) + fragment);\r\n}\r\n\r\nfunction getPathAndQuery(uri:IUri):string\r\n{\r\n\r\n\tvar path = uri.path,\r\n\t query = uri.query;\r\n\r\n\treturn EMPTY\r\n\t\t+ (path || EMPTY)\r\n\t\t+ (formatQuery(query) || EMPTY);\r\n\r\n}\r\n\r\nfunction uriToString(uri:IUri):string\r\n{\r\n\t// scheme:[//[user:password@]domain[:port]][/]path[?query][#fragment]\r\n\t// {scheme}{authority}{path}{query}{fragment}\r\n\r\n\tvar scheme = getScheme(uri.scheme),\r\n\t authority = getAuthority(uri),\r\n\t pathAndQuery = getPathAndQuery(uri),\r\n\t fragment = formatFragment(uri.fragment);\r\n\r\n\tvar part1 = EMPTY\r\n\t\t+ ((scheme && (scheme + ':')) || EMPTY)\r\n\t\t+ (authority || EMPTY);\r\n\r\n\tvar part2 = EMPTY\r\n\t\t+ (pathAndQuery || EMPTY)\r\n\t\t+ (fragment || EMPTY);\r\n\r\n\tif(part1 && part2 && scheme && !authority)\r\n\t\tthrow new ArgumentException('authority', \"Cannot format schemed Uri with missing authority.\");\r\n\r\n\tif(part1 && pathAndQuery && pathAndQuery.indexOf(SLASH)!==0)\r\n\t\tpart2 = SLASH + part2;\r\n\r\n\treturn part1 + part2;\r\n\r\n}\r\n\r\n\r\nfunction tryParse(url:string, out:(result:IUri)=>void):Exception\r\n{\r\n\tif(!url)\r\n\t\treturn new ArgumentException('url', 'Nothing to parse.');\r\n\r\n\r\n\t// Could use a regex here, but well follow some rules instead.\r\n\t// The intention is to 'gather' the pieces. This isn't validation (yet).\r\n\r\n\t// scheme:[//[user:password@]domain[:port]][/]path[?query][#fragment]\r\n\tvar i:number, result:IUri = {};\r\n\r\n\t// Anything after the first # is the fragment.\r\n\ti = url.indexOf(HASH);\r\n\tif(i!= -1)\r\n\t{\r\n\t\tresult.fragment = url.substring(i + 1) || VOID0;\r\n\t\turl = url.substring(0, i);\r\n\t}\r\n\r\n\t// Anything after the first ? is the query.\r\n\ti = url.indexOf(QM);\r\n\tif(i!= -1)\r\n\t{\r\n\t\tresult.query = url.substring(i + 1) || VOID0;\r\n\t\turl = url.substring(0, i);\r\n\t}\r\n\r\n\t// Guarantees a separation.\r\n\ti = url.indexOf(SLASH2);\r\n\tif(i!= -1)\r\n\t{\r\n\t\tvar scheme = trim(url.substring(0, i)), c = /:$/;\r\n\t\tif(!c.test(scheme))\r\n\t\t\treturn new ArgumentException('url', 'Scheme was improperly formatted');\r\n\r\n\t\tscheme = trim(scheme.replace(c, EMPTY));\r\n\t\ttry\r\n\t\t{\r\n\t\t\tresult.scheme = getScheme(scheme) || VOID0;\r\n\t\t}\r\n\t\tcatch(ex)\r\n\t\t{\r\n\t\t\treturn ex;\r\n\t\t}\r\n\r\n\t\turl = url.substring(i + 2);\r\n\t}\r\n\r\n\t// Find any path information.\r\n\ti = url.indexOf(SLASH);\r\n\tif(i!= -1)\r\n\t{\r\n\t\tresult.path = url.substring(i);\r\n\t\turl = url.substring(0, i);\r\n\t}\r\n\r\n\t// Separate user info.\r\n\ti = url.indexOf(AT);\r\n\tif(i!= -1)\r\n\t{\r\n\t\tresult.userInfo = url.substring(0, i) || VOID0;\r\n\t\turl = url.substring(i + 1);\r\n\t}\r\n\r\n\t// Remaining is host and port.\r\n\ti = url.indexOf(':');\r\n\tif(i!= -1)\r\n\t{\r\n\t\tvar port = parseInt(trim(url.substring(i + 1)));\r\n\t\tif(isNaN(port))\r\n\t\t\treturn new ArgumentException('url', 'Port was invalid.');\r\n\r\n\t\tresult.port = port;\r\n\t\turl = url.substring(0, i);\r\n\t}\r\n\r\n\turl = trim(url);\r\n\tif(url)\r\n\t\tresult.host = url;\r\n\r\n\tout(copyUri(result));\r\n\r\n\t// null is good! (here)\r\n\treturn null;\r\n\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Uri/Uri.js","System/Uri/Uri.ts"],"names":["define","require","exports","Types_1","QueryParams","Scheme","Utility_1","ArgumentException_1","ArgumentOutOfRangeException_1","copyUri","from","to","field","i","Fields","value","getScheme","scheme","s","Type","isString","trim","toLowerCase","replace","EMPTY","isValid","undefined","ArgumentOutOfRangeException","getPort","port","p","isNumber","isFinite","parseInt","isNaN","ArgumentException","getAuthority","uri","host","userInfo","result","AT","SLASH2","formatQuery","query","indexOf","QM","formatFragment","fragment","HASH","getPathAndQuery","path","uriToString","authority","pathAndQuery","part1","part2","SLASH","tryParse","url","out","substring","VOID0","c","test","ex","Uri","_","this","encode","Object","freeze","queryParams","parseToMap","absoluteUri","getAbsoluteUri","baseUri","prototype","equals","other","toString","defaults","u","parse","throwIfInvalid","copyOf","map","copyTo","updateQuery","toMap","defineProperty","get","match","enumerable","configurable","Separator","Query"],"mappings":"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","file":"System/Uri/Uri.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based on: https://en.wikipedia.org/wiki/Uniform_Resource_Identifier\n */\ndefine([\"require\", \"exports\", \"../Types\", \"./QueryParams\", \"./Scheme\", \"../Text/Utility\", \"../Exceptions/ArgumentException\", \"../Exceptions/ArgumentOutOfRangeException\"], function (require, exports, Types_1, QueryParams, Scheme, Utility_1, ArgumentException_1, ArgumentOutOfRangeException_1) {\n \"use strict\";\n var VOID0 = void (0);\n var Uri = (function () {\n function Uri(scheme, userInfo, host, port, path, query, fragment) {\n var _ = this;\n _.scheme = getScheme(scheme) || null;\n _.userInfo = userInfo || null;\n _.host = host || null;\n _.port = getPort(port);\n _.authority = _.getAuthority() || null;\n _.path = path || null;\n if (!Types_1.Type.isString(query))\n query = QueryParams.encode(query);\n _.query = formatQuery(query) || null;\n Object.freeze(_.queryParams\n = _.query\n ? QueryParams.parseToMap(_.query)\n : {});\n _.pathAndQuery = _.getPathAndQuery() || null;\n _.fragment = formatFragment(fragment) || null;\n _.absoluteUri = _.getAbsoluteUri();\n _.baseUri = _.absoluteUri.replace(/[?#].*/, '');\n Object.freeze(_);\n }\n Uri.prototype.equals = function (other) {\n return this === other || this.absoluteUri == Uri.toString(other);\n };\n Uri.from = function (uri, defaults) {\n var u = (!uri || Types_1.Type.isString(uri))\n ? Uri.parse(uri) : uri;\n return new Uri(u.scheme || defaults && defaults.scheme, u.userInfo || defaults && defaults.userInfo, u.host || defaults && defaults.host, isNaN(u.port) ? defaults && defaults.port : u.port, u.path || defaults && defaults.path, u.query || defaults && defaults.query, u.fragment || defaults && defaults.fragment);\n };\n Uri.parse = function (url, throwIfInvalid) {\n if (throwIfInvalid === void 0) { throwIfInvalid = true; }\n var result = null;\n var ex = tryParse(url, function (out) { result = out; });\n if (throwIfInvalid && ex)\n throw ex;\n return result;\n };\n Uri.tryParse = function (url, out) {\n return !tryParse(url, out);\n };\n Uri.copyOf = function (map) {\n return copyUri(map);\n };\n Uri.prototype.copyTo = function (map) {\n return copyUri(this, map);\n };\n Uri.prototype.updateQuery = function (query) {\n var map = this.toMap();\n map.query = query;\n return Uri.from(map);\n };\n Uri.prototype.getAbsoluteUri = function () {\n return uriToString(this);\n };\n Uri.prototype.getAuthority = function () {\n return getAuthority(this);\n };\n Uri.prototype.getPathAndQuery = function () {\n return getPathAndQuery(this);\n };\n Object.defineProperty(Uri.prototype, \"pathSegments\", {\n get: function () {\n return this.path.match(/^[/]|[^/]*[/]|[^/]+$/g);\n },\n enumerable: true,\n configurable: true\n });\n Uri.prototype.toMap = function () {\n return this.copyTo({});\n };\n Uri.prototype.toString = function () {\n return this.absoluteUri;\n };\n Uri.toString = function (uri) {\n return uri instanceof Uri\n ? uri.absoluteUri\n : uriToString(uri);\n };\n Uri.getAuthority = function (uri) {\n return getAuthority(uri);\n };\n return Uri;\n }());\n exports.Uri = Uri;\n (function (Fields) {\n Fields[Fields[\"scheme\"] = 0] = \"scheme\";\n Fields[Fields[\"userInfo\"] = 1] = \"userInfo\";\n Fields[Fields[\"host\"] = 2] = \"host\";\n Fields[Fields[\"port\"] = 3] = \"port\";\n Fields[Fields[\"path\"] = 4] = \"path\";\n Fields[Fields[\"query\"] = 5] = \"query\";\n Fields[Fields[\"fragment\"] = 6] = \"fragment\";\n })(exports.Fields || (exports.Fields = {}));\n var Fields = exports.Fields;\n Object.freeze(Fields);\n function copyUri(from, to) {\n var i = 0, field;\n if (!to)\n to = {};\n while (field = Fields[i++]) {\n var value = from[field];\n if (value)\n to[field] = value;\n }\n return to;\n }\n var SLASH = '/', SLASH2 = '//', QM = QueryParams.Separator.Query, HASH = '#', EMPTY = '', AT = '@';\n function getScheme(scheme) {\n var s = scheme;\n if (Types_1.Type.isString(s)) {\n if (!s)\n return null;\n s = Utility_1.trim(s).toLowerCase().replace(/[^a-z0-9+.-]+$/g, EMPTY);\n if (!s)\n return null;\n if (Scheme.isValid(s))\n return s;\n }\n else {\n if (s === null || s === undefined)\n return s;\n }\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('scheme', scheme, 'Invalid scheme.');\n }\n function getPort(port) {\n if (port === 0)\n return port;\n if (!port)\n return null;\n var p;\n if (Types_1.Type.isNumber(port, true)) {\n p = port;\n if (p >= 0 && isFinite(p))\n return p;\n }\n else if (Types_1.Type.isString(port) && (p = parseInt(port)) && !isNaN(p)) {\n return getPort(p);\n }\n throw new ArgumentException_1.ArgumentException(\"port\", \"invalid value\");\n }\n function getAuthority(uri) {\n if (!uri.host) {\n if (uri.userInfo)\n throw new ArgumentException_1.ArgumentException('host', 'Cannot include user info when there is no host.');\n if (Types_1.Type.isNumber(uri.port, false))\n throw new ArgumentException_1.ArgumentException('host', 'Cannot include a port when there is no host.');\n }\n var result = uri.host || EMPTY;\n if (result) {\n if (uri.userInfo)\n result = uri.userInfo + AT + result;\n if (!isNaN(uri.port))\n result += ':' + uri.port;\n result = SLASH2 + result;\n }\n return result;\n }\n function formatQuery(query) {\n return query && ((query.indexOf(QM) !== 0 ? QM : EMPTY) + query);\n }\n function formatFragment(fragment) {\n return fragment && ((fragment.indexOf(HASH) !== 0 ? HASH : EMPTY) + fragment);\n }\n function getPathAndQuery(uri) {\n var path = uri.path, query = uri.query;\n return EMPTY\n + (path || EMPTY)\n + (formatQuery(query) || EMPTY);\n }\n function uriToString(uri) {\n var scheme = getScheme(uri.scheme), authority = getAuthority(uri), pathAndQuery = getPathAndQuery(uri), fragment = formatFragment(uri.fragment);\n var part1 = EMPTY\n + ((scheme && (scheme + ':')) || EMPTY)\n + (authority || EMPTY);\n var part2 = EMPTY\n + (pathAndQuery || EMPTY)\n + (fragment || EMPTY);\n if (part1 && part2 && scheme && !authority)\n throw new ArgumentException_1.ArgumentException('authority', \"Cannot format schemed Uri with missing authority.\");\n if (part1 && pathAndQuery && pathAndQuery.indexOf(SLASH) !== 0)\n part2 = SLASH + part2;\n return part1 + part2;\n }\n function tryParse(url, out) {\n if (!url)\n return new ArgumentException_1.ArgumentException('url', 'Nothing to parse.');\n var i, result = {};\n i = url.indexOf(HASH);\n if (i != -1) {\n result.fragment = url.substring(i + 1) || VOID0;\n url = url.substring(0, i);\n }\n i = url.indexOf(QM);\n if (i != -1) {\n result.query = url.substring(i + 1) || VOID0;\n url = url.substring(0, i);\n }\n i = url.indexOf(SLASH2);\n if (i != -1) {\n var scheme = Utility_1.trim(url.substring(0, i)), c = /:$/;\n if (!c.test(scheme))\n return new ArgumentException_1.ArgumentException('url', 'Scheme was improperly formatted');\n scheme = Utility_1.trim(scheme.replace(c, EMPTY));\n try {\n result.scheme = getScheme(scheme) || VOID0;\n }\n catch (ex) {\n return ex;\n }\n url = url.substring(i + 2);\n }\n i = url.indexOf(SLASH);\n if (i != -1) {\n result.path = url.substring(i);\n url = url.substring(0, i);\n }\n i = url.indexOf(AT);\n if (i != -1) {\n result.userInfo = url.substring(0, i) || VOID0;\n url = url.substring(i + 1);\n }\n i = url.indexOf(':');\n if (i != -1) {\n var port = parseInt(Utility_1.trim(url.substring(i + 1)));\n if (isNaN(port))\n return new ArgumentException_1.ArgumentException('url', 'Port was invalid.');\n result.port = port;\n url = url.substring(0, i);\n }\n url = Utility_1.trim(url);\n if (url)\n result.host = url;\n out(copyUri(result));\n return null;\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Uri;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based on: https://en.wikipedia.org/wiki/Uniform_Resource_Identifier\r\n */\r\n\r\n\r\nimport {Type} from \"../Types\";\r\nimport * as QueryParams from \"./QueryParams\";\r\nimport * as QueryParam from \"./QueryParam\";\r\nimport * as UriComponent from \"./UriComponent\";\r\nimport * as Scheme from \"./Scheme\";\r\nimport {SchemeValue} from \"./SchemeValue\";\r\nimport {trim} from \"../Text/Utility\";\r\nimport {Exception} from \"../Exception\";\r\nimport {ArgumentException} from \"../Exceptions/ArgumentException\";\r\nimport {ArgumentOutOfRangeException} from \"../Exceptions/ArgumentOutOfRangeException\";\r\nimport {IUri} from \"./IUri\";\r\nimport {IMap} from \"../Collections/Dictionaries/IDictionary\";\r\nimport {Primitive} from \"../Primitive\";\r\nimport {StringKeyValuePair} from \"../KeyValuePair\";\r\nimport {IEquatable} from \"../IEquatable\";\r\n\r\nconst VOID0:any = void(0);\r\n\r\n/**\r\n * Provides an read-only model representation of a uniform resource identifier (URI) and easy access to the parts of the URI.\r\n *\r\n * The read-only model (frozen) is easier for debugging than exposing accessors for each property.\r\n * ICloneable<Uri> is not used to prevent unnecessary copying of values that won't change.\r\n */\r\nexport class Uri implements IUri, IEquatable\r\n{\r\n\r\n\tscheme:SchemeValue;\r\n\tuserInfo:string;\r\n\thost:string;\r\n\tport:number;\r\n\tpath:string;\r\n\tquery:string;\r\n\tfragment:string;\r\n\r\n\tqueryParams:IMap;\r\n\r\n\t/**\r\n\t * @param scheme The user name, password, or other user-specific information associated with the specified URI.\r\n\t * @param userInfo The host component of this instance.\r\n\t * @param host The port number of this URI.\r\n\t * @param port The absolute path of the URI.\r\n\t * @param path The absolute path of the URI.\r\n\t * @param query Any query information included in the specified URI.\r\n\t * @param fragment The escaped URI fragment.\r\n\t */\r\n\tconstructor(\r\n\t\tscheme:SchemeValue,\r\n\t\tuserInfo:string,\r\n\t\thost:string,\r\n\t\tport:number,\r\n\t\tpath:string,\r\n\t\tquery?:QueryParam.Convertible,\r\n\t\tfragment?:string)\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.scheme = getScheme(scheme) || null;\r\n\t\t_.userInfo = userInfo || null;\r\n\t\t_.host = host || null;\r\n\r\n\t\t_.port = getPort(port);\r\n\r\n\t\t_.authority = _.getAuthority() || null;\r\n\r\n\t\t_.path = path || null;\r\n\r\n\r\n\t\tif(!Type.isString(query))\r\n\t\t\tquery = QueryParams.encode([]>query);\r\n\r\n\t\t_.query = formatQuery(query) || null;\r\n\t\tObject.freeze(_.queryParams\r\n\t\t\t= _.query\r\n\t\t\t? QueryParams.parseToMap(_.query)\r\n\t\t\t: {});\r\n\r\n\t\t_.pathAndQuery = _.getPathAndQuery() || null;\r\n\r\n\t\t_.fragment = formatFragment(fragment) || null;\r\n\r\n\t\t// This should validate the uri...\r\n\t\t_.absoluteUri = _.getAbsoluteUri();\r\n\r\n\t\t_.baseUri = _.absoluteUri.replace(/[?#].*/, '');\r\n\r\n\t\t// Intended to be read-only. Call .toMap() to get a writable copy.\r\n\t\tObject.freeze(_);\r\n\t}\r\n\r\n\t/**\r\n\t * Compares the values of another IUri via toString comparison.\r\n\t * @param other\r\n\t * @returns {boolean}\r\n\t */\r\n\tequals(other:IUri):boolean\r\n\t{\r\n\t\treturn this===other || this.absoluteUri==Uri.toString(other);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Parses or clones values from existing Uri values.\r\n\t * @param uri\r\n\t * @param defaults\r\n\t * @returns {Uri}\r\n\t */\r\n\tstatic from(uri:string|IUri, defaults?:IUri):Uri\r\n\t{\r\n\t\tvar u = (!uri || Type.isString(uri))\r\n\t\t\t? Uri.parse(uri) : uri;\r\n\r\n\t\treturn new Uri(\r\n\t\t\tu.scheme || defaults && defaults.scheme,\r\n\t\t\tu.userInfo || defaults && defaults.userInfo,\r\n\t\t\tu.host || defaults && defaults.host,\r\n\t\t\tisNaN(u.port) ? defaults && defaults.port : u.port,\r\n\t\t\tu.path || defaults && defaults.path,\r\n\t\t\tu.query || defaults && defaults.query,\r\n\t\t\tu.fragment || defaults && defaults.fragment\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * Parses a URL into it's components.\r\n\t * @param url The url to parse.\r\n\t * @param throwIfInvalid Defaults to true.\r\n\t * @returns {IUri} Returns a map of the values or *null* if invalid and *throwIfInvalid* is false.\r\n\t */\r\n\tstatic parse(url:string, throwIfInvalid:boolean = true):IUri\r\n\t{\r\n\t\tvar result:IUri = null;\r\n\t\tvar ex = tryParse(url, (out)=> {result = out;});\r\n\t\tif(throwIfInvalid && ex) throw ex;\r\n\t\treturn result;\r\n\t}\r\n\r\n\t/**\r\n\t * Parses a URL into it's components.\r\n\t * @param url The url to parse.\r\n\t * @param out A delegate to capture the value.\r\n\t * @returns {boolean} True if valid. False if invalid.\r\n\t */\r\n\tstatic tryParse(url:string, out:(result:IUri)=>void):boolean\r\n\t{\r\n\t\treturn !tryParse(url, out); // return type is Exception.\r\n\t}\r\n\r\n\tstatic copyOf(map:IUri):IUri\r\n\t{\r\n\t\treturn copyUri(map);\r\n\t}\r\n\r\n\tcopyTo(map:IUri):IUri\r\n\t{\r\n\t\treturn copyUri(this, map);\r\n\t}\r\n\r\n\tupdateQuery(query:QueryParam.Convertible):Uri\r\n\t{\r\n\t\tvar map = this.toMap();\r\n\t\tmap.query = query;\r\n\t\treturn Uri.from(map);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Is provided for sub classes to override this value.\r\n\t */\r\n\tprotected getAbsoluteUri():string\r\n\t{\r\n\t\treturn uriToString(this);\r\n\t}\r\n\r\n\t/**\r\n\t * Is provided for sub classes to override this value.\r\n\t */\r\n\tprotected getAuthority():string\r\n\t{\r\n\t\treturn getAuthority(this);\r\n\t}\r\n\r\n\t/**\r\n\t * Is provided for sub classes to override this value.\r\n\t */\r\n\tprotected getPathAndQuery():string\r\n\t{\r\n\t\treturn getPathAndQuery(this);\r\n\t}\r\n\r\n\t/**\r\n\t * The absolute URI.\r\n\t */\r\n\tabsoluteUri:string;\r\n\r\n\t/**\r\n\t * Gets the Domain Name System (DNS) host name or IP address and the port number for a server.\r\n\t */\r\n\tauthority:string;\r\n\r\n\t/**\r\n\t * Gets the path and Query properties separated by a question mark (?).\r\n\t */\r\n\tpathAndQuery:string;\r\n\r\n\t/**\r\n\t * Gets the full path without the query or fragment.\r\n\t */\r\n\tbaseUri:string;\r\n\r\n\t/**\r\n\t * The segments that represent a path.
\r\n\t * https://msdn.microsoft.com/en-us/library/system.uri.segments%28v=vs.110%29.aspx\r\n\t *\r\n\t *
Example:
\r\n\t * If the path value equals: ```/tree/node/index.html```
\r\n\t * The result will be: ```['/','tree/','node/','index.html']```\r\n\t * @returns {string[]}\r\n\t */\r\n\tget pathSegments():string[]\r\n\t{\r\n\t\treturn this.path.match(/^[/]|[^/]*[/]|[^/]+$/g);\r\n\t}\r\n\r\n\t/**\r\n\t * Creates a writable copy.\r\n\t * @returns {IUri}\r\n\t */\r\n\ttoMap():IUri\r\n\t{\r\n\t\treturn this.copyTo({});\r\n\t}\r\n\r\n\t/**\r\n\t * @returns {string} The full absolute uri.\r\n\t */\r\n\ttoString():string\r\n\t{\r\n\t\treturn this.absoluteUri;\r\n\t}\r\n\r\n\t/**\r\n\t * Properly converts an existing URI to a string.\r\n\t * @param uri\r\n\t * @returns {string}\r\n\t */\r\n\tstatic toString(uri:IUri):string\r\n\t{\r\n\t\treturn uri instanceof Uri\r\n\t\t\t? (uri).absoluteUri\r\n\t\t\t: uriToString(uri);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the authority segment of an URI.\r\n\t * @param uri\r\n\t * @returns {string}\r\n\t */\r\n\tstatic getAuthority(uri:IUri):string\r\n\t{\r\n\t\treturn getAuthority(uri);\r\n\t}\r\n\r\n\r\n}\r\n\r\nexport enum Fields {\r\n\tscheme,\r\n\tuserInfo,\r\n\thost,\r\n\tport,\r\n\tpath,\r\n\tquery,\r\n\tfragment\r\n}\r\nObject.freeze(Fields);\r\n\r\nfunction copyUri(from:IUri, to?:IUri)\r\n{\r\n\tvar i = 0, field:string;\r\n\tif(!to) to = {};\r\n\twhile(field = Fields[i++])\r\n\t{\r\n\t\tvar value = (from)[field];\r\n\t\tif(value) (to)[field] = value;\r\n\t}\r\n\treturn to;\r\n}\r\n\r\nconst SLASH = '/', SLASH2 = '//', QM = QueryParams.Separator.Query, HASH = '#', EMPTY = '', AT = '@';\r\n\r\nfunction getScheme(scheme:string):SchemeValue\r\n{\r\n\tvar s:any = scheme;\r\n\tif(Type.isString(s))\r\n\t{\r\n\t\tif(!s) return null;\r\n\t\ts = trim(s).toLowerCase().replace(/[^a-z0-9+.-]+$/g, EMPTY);\r\n\t\tif(!s) return null;\r\n\t\tif(Scheme.isValid(s)) return s;\r\n\t} else {\r\n\t\tif(s===null || s===undefined) return s;\r\n\t}\r\n\tthrow new ArgumentOutOfRangeException('scheme', scheme, 'Invalid scheme.');\r\n}\r\n\r\nfunction getPort(port:number|string):number\r\n{\r\n\tif(port===0) return port;\r\n\tif(!port) return null;\r\n\tvar p:number;\r\n\r\n\tif(Type.isNumber(port, true))\r\n\t{\r\n\t\tp = port;\r\n\t\tif(p>=0 && isFinite(p))\r\n\t\t\treturn p;\r\n\t}\r\n\telse if(Type.isString(port) && (p = parseInt(port)) && !isNaN(p))\r\n\t{\r\n\t\treturn getPort(p);\r\n\t}\r\n\r\n\tthrow new ArgumentException(\"port\", \"invalid value\");\r\n}\r\n\r\nfunction getAuthority(uri:IUri):string\r\n{\r\n\r\n\tif(!uri.host)\r\n\t{\r\n\t\tif(uri.userInfo)\r\n\t\t\tthrow new ArgumentException('host', 'Cannot include user info when there is no host.');\r\n\r\n\t\tif(Type.isNumber(uri.port, false))\r\n\t\t\tthrow new ArgumentException('host', 'Cannot include a port when there is no host.');\r\n\t}\r\n\r\n\t/*\r\n\t * [//[user:password@]host[:port]]\r\n\t */\r\n\r\n\tvar result = uri.host || EMPTY;\r\n\r\n\tif(result)\r\n\t{\r\n\t\tif(uri.userInfo) result = uri.userInfo + AT + result;\r\n\t\tif(!isNaN(uri.port)) result += ':' + uri.port;\r\n\t\tresult = SLASH2 + result;\r\n\t}\r\n\r\n\treturn result;\r\n}\r\n\r\nfunction formatQuery(query:string):string\r\n{\r\n\treturn query && ((query.indexOf(QM)!==0 ? QM : EMPTY) + query);\r\n}\r\n\r\nfunction formatFragment(fragment:string):string\r\n{\r\n\treturn fragment && ((fragment.indexOf(HASH)!==0 ? HASH : EMPTY) + fragment);\r\n}\r\n\r\nfunction getPathAndQuery(uri:IUri):string\r\n{\r\n\r\n\tvar path = uri.path,\r\n\t query = uri.query;\r\n\r\n\treturn EMPTY\r\n\t\t+ (path || EMPTY)\r\n\t\t+ (formatQuery(query) || EMPTY);\r\n\r\n}\r\n\r\nfunction uriToString(uri:IUri):string\r\n{\r\n\t// scheme:[//[user:password@]domain[:port]][/]path[?query][#fragment]\r\n\t// {scheme}{authority}{path}{query}{fragment}\r\n\r\n\tvar scheme = getScheme(uri.scheme),\r\n\t authority = getAuthority(uri),\r\n\t pathAndQuery = getPathAndQuery(uri),\r\n\t fragment = formatFragment(uri.fragment);\r\n\r\n\tvar part1 = EMPTY\r\n\t\t+ ((scheme && (scheme + ':')) || EMPTY)\r\n\t\t+ (authority || EMPTY);\r\n\r\n\tvar part2 = EMPTY\r\n\t\t+ (pathAndQuery || EMPTY)\r\n\t\t+ (fragment || EMPTY);\r\n\r\n\tif(part1 && part2 && scheme && !authority)\r\n\t\tthrow new ArgumentException('authority', \"Cannot format schemed Uri with missing authority.\");\r\n\r\n\tif(part1 && pathAndQuery && pathAndQuery.indexOf(SLASH)!==0)\r\n\t\tpart2 = SLASH + part2;\r\n\r\n\treturn part1 + part2;\r\n\r\n}\r\n\r\n\r\nfunction tryParse(url:string, out:(result:IUri)=>void):Exception\r\n{\r\n\tif(!url)\r\n\t\treturn new ArgumentException('url', 'Nothing to parse.');\r\n\r\n\r\n\t// Could use a regex here, but well follow some rules instead.\r\n\t// The intention is to 'gather' the pieces. This isn't validation (yet).\r\n\r\n\t// scheme:[//[user:password@]domain[:port]][/]path[?query][#fragment]\r\n\tvar i:number, result:IUri = {};\r\n\r\n\t// Anything after the first # is the fragment.\r\n\ti = url.indexOf(HASH);\r\n\tif(i!= -1)\r\n\t{\r\n\t\tresult.fragment = url.substring(i + 1) || VOID0;\r\n\t\turl = url.substring(0, i);\r\n\t}\r\n\r\n\t// Anything after the first ? is the query.\r\n\ti = url.indexOf(QM);\r\n\tif(i!= -1)\r\n\t{\r\n\t\tresult.query = url.substring(i + 1) || VOID0;\r\n\t\turl = url.substring(0, i);\r\n\t}\r\n\r\n\t// Guarantees a separation.\r\n\ti = url.indexOf(SLASH2);\r\n\tif(i!= -1)\r\n\t{\r\n\t\tvar scheme = trim(url.substring(0, i)), c = /:$/;\r\n\t\tif(!c.test(scheme))\r\n\t\t\treturn new ArgumentException('url', 'Scheme was improperly formatted');\r\n\r\n\t\tscheme = trim(scheme.replace(c, EMPTY));\r\n\t\ttry\r\n\t\t{\r\n\t\t\tresult.scheme = getScheme(scheme) || VOID0;\r\n\t\t}\r\n\t\tcatch(ex)\r\n\t\t{\r\n\t\t\treturn ex;\r\n\t\t}\r\n\r\n\t\turl = url.substring(i + 2);\r\n\t}\r\n\r\n\t// Find any path information.\r\n\ti = url.indexOf(SLASH);\r\n\tif(i!= -1)\r\n\t{\r\n\t\tresult.path = url.substring(i);\r\n\t\turl = url.substring(0, i);\r\n\t}\r\n\r\n\t// Separate user info.\r\n\ti = url.indexOf(AT);\r\n\tif(i!= -1)\r\n\t{\r\n\t\tresult.userInfo = url.substring(0, i) || VOID0;\r\n\t\turl = url.substring(i + 1);\r\n\t}\r\n\r\n\t// Remaining is host and port.\r\n\ti = url.indexOf(':');\r\n\tif(i!= -1)\r\n\t{\r\n\t\tvar port = parseInt(trim(url.substring(i + 1)));\r\n\t\tif(isNaN(port))\r\n\t\t\treturn new ArgumentException('url', 'Port was invalid.');\r\n\r\n\t\tresult.port = port;\r\n\t\turl = url.substring(0, i);\r\n\t}\r\n\r\n\turl = trim(url);\r\n\tif(url)\r\n\t\tresult.host = url;\r\n\r\n\tout(copyUri(result));\r\n\r\n\t// null is good! (here)\r\n\treturn null;\r\n\r\n}\r\n\r\nexport default Uri;"]} \ No newline at end of file diff --git a/dist/amd/System/Utility/clone.js b/dist/amd/System/Utility/clone.js index c54da9a4..e486029c 100644 --- a/dist/amd/System/Utility/clone.js +++ b/dist/amd/System/Utility/clone.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -define(["require","exports","../Types"],function(e,r,i){"use strict";function t(e,r){if(void 0===r&&(r=0),0>r)return e;if(!i["default"].isObject(e))return e;var f;if(Array.isArray(e)){if(f=e.slice(),r>0)for(var n=0;n0)for(var u in e)f[u]=t(e[u],r-1);return f}Object.defineProperty(r,"__esModule",{value:!0}),r["default"]=t}); +define(["require","exports","../Types"],function(e,r,i){"use strict";function t(e,r){if(void 0===r&&(r=0),0>r)return e;if(!i.Type.isObject(e))return e;var f;if(Array.isArray(e)){if(f=e.slice(),r>0)for(var n=0;n0)for(var u in e)f[u]=t(e[u],r-1);return f}Object.defineProperty(r,"__esModule",{value:!0}),r["default"]=t}); //# sourceMappingURL=clone.js.map diff --git a/dist/amd/System/Utility/clone.js.map b/dist/amd/System/Utility/clone.js.map index 3f793b72..0929ae60 100644 --- a/dist/amd/System/Utility/clone.js.map +++ b/dist/amd/System/Utility/clone.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Utility/clone.js","System/Utility/clone.ts"],"names":["define","require","exports","Types_1","clone","source","depth","isObject","result","Array","isArray","slice","i","length","k","Object","defineProperty","value"],"mappings":";;;;AAIAA,QAAQ,UAAW,UAAW,YAAa,SAAUC,EAASC,EAASC,GACnE,YCEJ,SAAAC,GAA8BC,EAAYC,GAEzC,GAFyC,SAAAA,IAAAA,EAAA,GAEhC,EAANA,EACF,MAAOD,EAGR,KAAIF,EAAAA,WAAKI,SAASF,GAAS,MAAOA,EAElC,IAAIG,EACJ,IAAGC,MAAMC,QAAQL,IAGhB,GADAG,EAAeH,EAAQM,QACpBL,EAAM,EAER,IAAI,GAAIM,GAAI,EAAGA,EAAEJ,EAAOK,OAAQD,IAE/BJ,EAAOI,GAAKR,EAAMI,EAAOI,GAAIN,EAAQ,OAOvC,IADAE,KACGF,EAAM,EAAG,IAAI,GAAIQ,KAAKT,GAGxBG,EAAOM,GAAKV,EAAMC,EAAOS,GAAIR,EAAQ,EAIvC,OAAOE,GA9BRO,OAAAC,eAAAd,EAAA,cAAAe,OAAA,IDwBIf,EAAAA,WAAkBE","file":"System/Utility/clone.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\", '../Types'], function (require, exports, Types_1) {\n \"use strict\";\n function clone(source, depth) {\n if (depth === void 0) { depth = 0; }\n if (depth < 0)\n return source;\n if (!Types_1.default.isObject(source))\n return source;\n var result;\n if (Array.isArray(source)) {\n result = source.slice();\n if (depth > 0) {\n for (var i = 0; i < result.length; i++) {\n result[i] = clone(result[i], depth - 1);\n }\n }\n }\n else {\n result = {};\n if (depth > 0)\n for (var k in source) {\n result[k] = clone(source[k], depth - 1);\n }\n }\n return result;\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = clone;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport Type from '../Types';\r\n\r\nexport default function clone(source:any, depth:number = 0):any\r\n{\r\n\tif(depth<0)\r\n\t\treturn source;\r\n\r\n\t// return primitives as is.\r\n\tif(!Type.isObject(source)) return source;\r\n\r\n\tvar result:any;\r\n\tif(Array.isArray(source))\r\n\t{\r\n\t\tresult = (source).slice();\r\n\t\tif(depth>0)\r\n\t\t{\r\n\t\t\tfor(let i = 0; i0) for(let k in source)\r\n\t\t{\r\n\t\t\t//noinspection JSUnfilteredForInLoop\r\n\t\t\tresult[k] = clone(source[k], depth - 1);\r\n\t\t}\r\n\t}\r\n\r\n\treturn result;\r\n\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Utility/clone.js","System/Utility/clone.ts"],"names":["define","require","exports","Types_1","clone","source","depth","Type","isObject","result","Array","isArray","slice","i","length","k","Object","defineProperty","value"],"mappings":";;;;AAIAA,QAAQ,UAAW,UAAW,YAAa,SAAUC,EAASC,EAASC,GACnE,YCEJ,SAAAC,GAA8BC,EAAYC,GAEzC,GAFyC,SAAAA,IAAAA,EAAA,GAEhC,EAANA,EACF,MAAOD,EAGR,KAAIF,EAAAI,KAAKC,SAASH,GAAS,MAAOA,EAElC,IAAII,EACJ,IAAGC,MAAMC,QAAQN,IAGhB,GADAI,EAAeJ,EAAQO,QACpBN,EAAM,EAER,IAAI,GAAIO,GAAI,EAAGA,EAAEJ,EAAOK,OAAQD,IAE/BJ,EAAOI,GAAKT,EAAMK,EAAOI,GAAIP,EAAQ,OAOvC,IADAG,KACGH,EAAM,EAAG,IAAI,GAAIS,KAAKV,GAGxBI,EAAOM,GAAKX,EAAMC,EAAOU,GAAIT,EAAQ,EAIvC,OAAOG,GA9BRO,OAAAC,eAAAf,EAAA,cAAAgB,OAAA,IDwBIhB,EAAAA,WAAkBE","file":"System/Utility/clone.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\", \"../Types\"], function (require, exports, Types_1) {\n \"use strict\";\n function clone(source, depth) {\n if (depth === void 0) { depth = 0; }\n if (depth < 0)\n return source;\n if (!Types_1.Type.isObject(source))\n return source;\n var result;\n if (Array.isArray(source)) {\n result = source.slice();\n if (depth > 0) {\n for (var i = 0; i < result.length; i++) {\n result[i] = clone(result[i], depth - 1);\n }\n }\n }\n else {\n result = {};\n if (depth > 0)\n for (var k in source) {\n result[k] = clone(source[k], depth - 1);\n }\n }\n return result;\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = clone;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {Type} from \"../Types\";\r\n\r\nexport default function clone(source:any, depth:number = 0):any\r\n{\r\n\tif(depth<0)\r\n\t\treturn source;\r\n\r\n\t// return primitives as is.\r\n\tif(!Type.isObject(source)) return source;\r\n\r\n\tvar result:any;\r\n\tif(Array.isArray(source))\r\n\t{\r\n\t\tresult = (source).slice();\r\n\t\tif(depth>0)\r\n\t\t{\r\n\t\t\tfor(let i = 0; i0) for(let k in source)\r\n\t\t{\r\n\t\t\t//noinspection JSUnfilteredForInLoop\r\n\t\t\tresult[k] = clone(source[k], depth - 1);\r\n\t\t}\r\n\t}\r\n\r\n\treturn result;\r\n\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Utility/shallowCopy.d.ts b/dist/amd/System/Utility/shallowCopy.d.ts index df935e23..51512af7 100644 --- a/dist/amd/System/Utility/shallowCopy.d.ts +++ b/dist/amd/System/Utility/shallowCopy.d.ts @@ -2,4 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -export default function shallowCopy(source: any, target?: any): any; +export declare function shallowCopy(source: any, target?: any): any; +export default shallowCopy; diff --git a/dist/amd/System/Utility/shallowCopy.js b/dist/amd/System/Utility/shallowCopy.js index 786114be..c3a2a1c1 100644 --- a/dist/amd/System/Utility/shallowCopy.js +++ b/dist/amd/System/Utility/shallowCopy.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -define(["require","exports"],function(e,r){"use strict";function i(e,r){if(void 0===r&&(r={}),r)for(var i in e)r[i]=e[i];return r}Object.defineProperty(r,"__esModule",{value:!0}),r["default"]=i}); +define(["require","exports"],function(e,r){"use strict";function i(e,r){if(void 0===r&&(r={}),r)for(var i in e)r[i]=e[i];return r}r.shallowCopy=i,Object.defineProperty(r,"__esModule",{value:!0}),r["default"]=i}); //# sourceMappingURL=shallowCopy.js.map diff --git a/dist/amd/System/Utility/shallowCopy.js.map b/dist/amd/System/Utility/shallowCopy.js.map index ea4bf528..300c42f9 100644 --- a/dist/amd/System/Utility/shallowCopy.js.map +++ b/dist/amd/System/Utility/shallowCopy.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Utility/shallowCopy.js","System/Utility/shallowCopy.ts"],"names":["define","require","exports","shallowCopy","source","target","k","Object","defineProperty","value"],"mappings":";;;;AAIAA,QAAQ,UAAW,WAAY,SAAUC,EAASC,GAC9C,YCAJ,SAAAC,GAAoCC,EAAYC,GAE/C,GAF+C,SAAAA,IAAAA,MAE5CA,EAEF,IAAI,GAAIC,KAAKF,GAGZC,EAAOC,GAAKF,EAAOE,EAIrB,OAAOD,GAXRE,OAAAC,eAAAN,EAAA,cAAAO,OAAA,IDWIP,EAAAA,WAAkBC","file":"System/Utility/shallowCopy.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n function shallowCopy(source, target) {\n if (target === void 0) { target = {}; }\n if (target) {\n for (var k in source) {\n target[k] = source[k];\n }\n }\n return target;\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = shallowCopy;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nexport default function shallowCopy(source:any, target:any = {}):any\r\n{\r\n\tif(target)\r\n\t{\r\n\t\tfor(let k in source)\r\n\t\t{\r\n\t\t\t//noinspection JSUnfilteredForInLoop\r\n\t\t\ttarget[k] = source[k];\r\n\t\t}\r\n\t}\r\n\r\n\treturn target;\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Utility/shallowCopy.js","System/Utility/shallowCopy.ts"],"names":["define","require","exports","shallowCopy","source","target","k","Object","defineProperty","value"],"mappings":";;;;AAIAA,QAAQ,UAAW,WAAY,SAAUC,EAASC,GAC9C,YCAJ,SAAAC,GAA4BC,EAAYC,GAEvC,GAFuC,SAAAA,IAAAA,MAEpCA,EAEF,IAAI,GAAIC,KAAKF,GAGZC,EAAOC,GAAKF,EAAOE,EAIrB,OAAOD,GAXQH,EAAAC,YAAWA,EAc3BI,OAAAC,eAAAN,EAAA,cAAAO,OAAA,IDFIP,EAAAA,WCEWC","file":"System/Utility/shallowCopy.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n function shallowCopy(source, target) {\n if (target === void 0) { target = {}; }\n if (target) {\n for (var k in source) {\n target[k] = source[k];\n }\n }\n return target;\n }\n exports.shallowCopy = shallowCopy;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = shallowCopy;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nexport function shallowCopy(source:any, target:any = {}):any\r\n{\r\n\tif(target)\r\n\t{\r\n\t\tfor(let k in source)\r\n\t\t{\r\n\t\t\t//noinspection JSUnfilteredForInLoop\r\n\t\t\ttarget[k] = source[k];\r\n\t\t}\r\n\t}\r\n\r\n\treturn target;\r\n}\r\n\r\nexport default shallowCopy;"]} \ No newline at end of file diff --git a/dist/amd/System/Validation/ValidationResult.d.ts b/dist/amd/System/Validation/ValidationResult.d.ts index 8fdffed8..563c9625 100644 --- a/dist/amd/System/Validation/ValidationResult.d.ts +++ b/dist/amd/System/Validation/ValidationResult.d.ts @@ -1,9 +1,9 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { IEquatable } from "../IEquatable"; +import { IValidationResult } from "./IValidationResult"; export default class ValidationResult implements IValidationResult, IEquatable { isValid: boolean; message: string; diff --git a/dist/amd/System/Validation/ValidationResult.js.map b/dist/amd/System/Validation/ValidationResult.js.map index 1325209e..60f075e1 100644 --- a/dist/amd/System/Validation/ValidationResult.js.map +++ b/dist/amd/System/Validation/ValidationResult.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Validation/ValidationResult.js","System/Validation/ValidationResult.ts"],"names":["define","require","exports","valid","ValidationResult","isValid","message","data","this","Object","freeze","prototype","equals","other","_","defineProperty","get","enumerable","configurable","invalid","value"],"mappings":";;;;AAIAA,QAAQ,UAAW,WAAY,SAAUC,EAASC,GCGlD,YAEA,IAAMC,GAAQ,GAAIC,IAAiB,GAKnCA,EAAA,WAOC,QAAAA,GACQC,EACAC,EACAC,GAFP,SAAAF,IAAAA,GAAA,GACA,SAAAC,IAAAA,EAAA,MACA,SAAAC,IAAAA,EAAA,MAFOC,KAAAH,QAAAA,EACAG,KAAAF,QAAAA,EACAE,KAAAD,KAAAA,EAIPE,OAAOC,OAAOF,MAgChB,MA1BCJ,GAAAO,UAAAC,OAAA,SAAOC,GAEN,GAAIC,GAAIN,IACR,OAAOM,GAAET,UAAUQ,EAAMR,SACrBS,EAAER,SAASQ,EAAER,SACbQ,EAAEP,MAAMO,EAAEP,MAQfE,OAAAM,eAAWX,EAAA,SDvBAY,ICuBX,WACC,MAAOb,IDrBGc,YAAY,EACZC,cAAc,IC0BlBd,EAAAe,QAAP,SACCb,EACAC,GAEA,MAFA,UAAAA,IAAAA,EAAA,MAEO,GAAIH,IAAiB,EAAOE,EAASC,IAE9CH,IA9CAK,QAAAM,eAAAb,EAAA,cAAAkB,OAAA,IDuBIlB,EAAAA,WAAkBE","file":"System/Validation/ValidationResult.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\"], function (require, exports) {\n 'use strict';\n var valid = new ValidationResult(true);\n var ValidationResult = (function () {\n function ValidationResult(isValid, message, data) {\n if (isValid === void 0) { isValid = false; }\n if (message === void 0) { message = null; }\n if (data === void 0) { data = null; }\n this.isValid = isValid;\n this.message = message;\n this.data = data;\n Object.freeze(this);\n }\n ValidationResult.prototype.equals = function (other) {\n var _ = this;\n return _.isValid === other.isValid\n && _.message == _.message\n && _.data == _.data;\n };\n Object.defineProperty(ValidationResult, \"valid\", {\n get: function () {\n return valid;\n },\n enumerable: true,\n configurable: true\n });\n ValidationResult.invalid = function (message, data) {\n if (data === void 0) { data = null; }\n return new ValidationResult(false, message, data);\n };\n return ValidationResult;\n }());\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ValidationResult;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n/// \r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nconst valid = new ValidationResult(true);\r\n\r\n/**\r\n * A class for generating responses to validation.\r\n */\r\nexport default\r\nclass ValidationResult\r\nimplements IValidationResult, IEquatable\r\n{\r\n\t/**\r\n\t * Allows for rare cases that ValidationResult.valid and ValidationResult.invalid() don't cover.\r\n\t */\r\n\tconstructor(\r\n\t\tpublic isValid:boolean = false,\r\n\t\tpublic message:string = null,\r\n\t\tpublic data:any = null)\r\n\t{\r\n\r\n\t\t// Readonly...\r\n\t\tObject.freeze(this);\r\n\t}\r\n\r\n\t/**\r\n\t * Allows for comparing another IValidationResult to see if they are equal.\r\n\t */\r\n\tequals(other:IValidationResult):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn _.isValid===other.isValid\r\n\t\t\t&& _.message==_.message\r\n\t\t\t&& _.data==_.data;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Represents a single/shared instance of a valid result.\r\n\t * Allows for returning this instance like you would return 'true'.\r\n\t */\r\n\tstatic get valid():IValidationResult {\r\n\t\treturn valid;\r\n\t}\r\n\r\n\t/**\r\n\t * Factory method for easily creating an invalid result.\r\n\t */\r\n\tstatic invalid(\r\n\t\tmessage:string,\r\n\t\tdata:any = null):IValidationResult\r\n\t{\r\n\t\treturn new ValidationResult(false, message, data);\r\n\t}\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Validation/ValidationResult.js","System/Validation/ValidationResult.ts"],"names":["define","require","exports","valid","ValidationResult","isValid","message","data","this","Object","freeze","prototype","equals","other","_","defineProperty","get","enumerable","configurable","invalid","value"],"mappings":";;;;AAIAA,QAAQ,UAAW,WAAY,SAAUC,EAASC,GAC9C,YCGJ,IAAMC,GAAQ,GAAIC,IAAiB,GAKnCA,EAAA,WAOC,QAAAA,GACQC,EACAC,EACAC,GAFP,SAAAF,IAAAA,GAAA,GACA,SAAAC,IAAAA,EAAA,MACA,SAAAC,IAAAA,EAAA,MAFOC,KAAAH,QAAAA,EACAG,KAAAF,QAAAA,EACAE,KAAAD,KAAAA,EAIPE,OAAOC,OAAOF,MAgChB,MA1BCJ,GAAAO,UAAAC,OAAA,SAAOC,GAEN,GAAIC,GAAIN,IACR,OAAOM,GAAET,UAAUQ,EAAMR,SACrBS,EAAER,SAASQ,EAAER,SACbQ,EAAEP,MAAMO,EAAEP,MAQfE,OAAAM,eAAWX,EAAA,SDtBAY,ICsBX,WACC,MAAOb,IDpBGc,YAAY,EACZC,cAAc,ICyBlBd,EAAAe,QAAP,SACCb,EACAC,GAEA,MAFA,UAAAA,IAAAA,EAAA,MAEO,GAAIH,IAAiB,EAAOE,EAASC,IAE9CH,IA9CAK,QAAAM,eAAAb,EAAA,cAAAkB,OAAA,IDwBIlB,EAAAA,WAAkBE","file":"System/Validation/ValidationResult.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var valid = new ValidationResult(true);\n var ValidationResult = (function () {\n function ValidationResult(isValid, message, data) {\n if (isValid === void 0) { isValid = false; }\n if (message === void 0) { message = null; }\n if (data === void 0) { data = null; }\n this.isValid = isValid;\n this.message = message;\n this.data = data;\n Object.freeze(this);\n }\n ValidationResult.prototype.equals = function (other) {\n var _ = this;\n return _.isValid === other.isValid\n && _.message == _.message\n && _.data == _.data;\n };\n Object.defineProperty(ValidationResult, \"valid\", {\n get: function () {\n return valid;\n },\n enumerable: true,\n configurable: true\n });\n ValidationResult.invalid = function (message, data) {\n if (data === void 0) { data = null; }\n return new ValidationResult(false, message, data);\n };\n return ValidationResult;\n }());\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ValidationResult;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {IEquatable} from \"../IEquatable\";\r\nimport {IValidationResult} from \"./IValidationResult\"; // For compatibility with (let, const, function, class);\r\n\r\nconst valid = new ValidationResult(true);\r\n\r\n/**\r\n * A class for generating responses to validation.\r\n */\r\nexport default\r\nclass ValidationResult\r\nimplements IValidationResult, IEquatable\r\n{\r\n\t/**\r\n\t * Allows for rare cases that ValidationResult.valid and ValidationResult.invalid() don't cover.\r\n\t */\r\n\tconstructor(\r\n\t\tpublic isValid:boolean = false,\r\n\t\tpublic message:string = null,\r\n\t\tpublic data:any = null)\r\n\t{\r\n\r\n\t\t// Readonly...\r\n\t\tObject.freeze(this);\r\n\t}\r\n\r\n\t/**\r\n\t * Allows for comparing another IValidationResult to see if they are equal.\r\n\t */\r\n\tequals(other:IValidationResult):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn _.isValid===other.isValid\r\n\t\t\t&& _.message==_.message\r\n\t\t\t&& _.data==_.data;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Represents a single/shared instance of a valid result.\r\n\t * Allows for returning this instance like you would return 'true'.\r\n\t */\r\n\tstatic get valid():IValidationResult {\r\n\t\treturn valid;\r\n\t}\r\n\r\n\t/**\r\n\t * Factory method for easily creating an invalid result.\r\n\t */\r\n\tstatic invalid(\r\n\t\tmessage:string,\r\n\t\tdata:any = null):IValidationResult\r\n\t{\r\n\t\treturn new ValidationResult(false, message, data);\r\n\t}\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/commonjs/System.Linq/Linq.d.ts b/dist/commonjs/System.Linq/Linq.d.ts index 03d8c5c7..eb598fc4 100644 --- a/dist/commonjs/System.Linq/Linq.d.ts +++ b/dist/commonjs/System.Linq/Linq.d.ts @@ -1,19 +1,17 @@ -/// -/// -/// -/// -/// -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Original: http://linqjs.codeplex.com/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import Dictionary from "../System/Collections/Dictionaries/Dictionary"; -import DisposableBase from "../System/Disposable/DisposableBase"; +import { Dictionary } from "../System/Collections/Dictionaries/Dictionary"; +import { DisposableBase } from "../System/Disposable/DisposableBase"; +import { IEnumerator } from "../System/Collections/Enumeration/IEnumerator"; +import { IEnumerable } from "../System/Collections/Enumeration/IEnumerable"; +import { Action, Predicate, Selector, EqualityComparison, Comparison } from "../System/FunctionTypes"; +import { IEnumerableOrArray } from "../System/Collections/IEnumerableOrArray"; +import { IArray } from "../System/Collections/Array/IArray"; +import { IMap } from "../System/Collections/Dictionaries/IDictionary"; +import { Comparable } from "../System/IComparable"; export declare const enum EnumerableAction { Break = 0, Return = 1, diff --git a/dist/commonjs/System.Linq/Linq.js b/dist/commonjs/System.Linq/Linq.js index b9994803..119fb640 100644 --- a/dist/commonjs/System.Linq/Linq.js +++ b/dist/commonjs/System.Linq/Linq.js @@ -41,8 +41,8 @@ var BREAK = function BREAK(element) { return 0; }; -var LinqFunctions = function (_Functions_1$default) { - _inherits(LinqFunctions, _Functions_1$default); +var LinqFunctions = function (_Functions_1$Function) { + _inherits(LinqFunctions, _Functions_1$Function); function LinqFunctions() { _classCallCheck(this, LinqFunctions); @@ -63,7 +63,7 @@ var LinqFunctions = function (_Functions_1$default) { }]); return LinqFunctions; -}(Functions_1.default); +}(Functions_1.Functions); var Functions = new LinqFunctions(); Object.freeze(Functions); @@ -71,8 +71,8 @@ function getEmptyEnumerator() { return Enumerator_1.empty; } -var InfiniteEnumerable = function (_DisposableBase_1$def) { - _inherits(InfiniteEnumerable, _DisposableBase_1$def); +var InfiniteEnumerable = function (_DisposableBase_1$Dis) { + _inherits(InfiniteEnumerable, _DisposableBase_1$Dis); function InfiniteEnumerable(_enumeratorFactory, finalizer) { _classCallCheck(this, InfiniteEnumerable); @@ -115,7 +115,7 @@ var InfiniteEnumerable = function (_DisposableBase_1$def) { return new Enumerable(function () { var enumerator; var index = 0; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { throwIfDisposed(disposed); if (initializer) initializer(); index = 0; @@ -147,7 +147,7 @@ var InfiniteEnumerable = function (_DisposableBase_1$def) { var _ = this; _.throwIfDisposed(); if (!isFinite(count)) return Enumerable.empty(); - Integer_1.default.assert(count, "count"); + Integer_1.Integer.assert(count, "count"); return this.doAction(function (element, index) { return index < count ? 2 : 1; }); @@ -158,8 +158,8 @@ var InfiniteEnumerable = function (_DisposableBase_1$def) { if (!(count > 0)) return Enumerable.empty(); var _ = this; _.throwIfDisposed(); - if (!isFinite(count)) throw new ArgumentOutOfRangeException_1.default('count', count, 'Must be finite.'); - Integer_1.default.assert(count, "count"); + if (!isFinite(count)) throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('count', count, 'Must be finite.'); + Integer_1.Integer.assert(count, "count"); return _.doAction(function (element, index) { return index < count; }, null, false); @@ -168,7 +168,7 @@ var InfiniteEnumerable = function (_DisposableBase_1$def) { key: "elementAt", value: function elementAt(index) { var v = this.elementAtOrDefault(index, INVALID_DEFAULT); - if (v === INVALID_DEFAULT) throw new ArgumentOutOfRangeException_1.default('index', index, "is greater than or equal to the number of elements in source"); + if (v === INVALID_DEFAULT) throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('index', index, "is greater than or equal to the number of elements in source"); return v; } }, { @@ -178,7 +178,7 @@ var InfiniteEnumerable = function (_DisposableBase_1$def) { var _ = this; _.throwIfDisposed(); - Integer_1.default.assertZeroOrGreater(index, 'index'); + Integer_1.Integer.assertZeroOrGreater(index, 'index'); var n = index; return dispose_1.using(this.getEnumerator(), function (e) { var i = 0; @@ -261,7 +261,7 @@ var InfiniteEnumerable = function (_DisposableBase_1$def) { var enumerator; var nestLevel = 0; var buffer, len; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { nestLevel = 0; buffer = []; len = 0; @@ -301,7 +301,7 @@ var InfiniteEnumerable = function (_DisposableBase_1$def) { var enumeratorStack = []; var enumerator; var len; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { enumerator = _.getEnumerator(); len = 0; }, function (yielder) { @@ -335,7 +335,7 @@ var InfiniteEnumerable = function (_DisposableBase_1$def) { return new Enumerable(function () { var enumerator; var middleEnumerator = null; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { enumerator = _.getEnumerator(); }, function (yielder) { while (true) { @@ -349,7 +349,7 @@ var InfiniteEnumerable = function (_DisposableBase_1$def) { } if (enumerator.moveNext()) { var c = enumerator.current; - var e = !Types_1.default.isString(c) && Enumerable.fromAny(c); + var e = !Types_1.Type.isString(c) && Enumerable.fromAny(c); if (e) { middleEnumerator = e.selectMany(Functions.Identity).flatten().getEnumerator(); continue; @@ -370,7 +370,7 @@ var InfiniteEnumerable = function (_DisposableBase_1$def) { var _ = this; return new Enumerable(function () { var enumerator; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { enumerator = _.getEnumerator(); enumerator.moveNext(); }, function (yielder) { @@ -390,7 +390,7 @@ var InfiniteEnumerable = function (_DisposableBase_1$def) { var enumerator; var value; var isFirst; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { enumerator = _.getEnumerator(); isFirst = true; }, function (yielder) { @@ -412,7 +412,7 @@ var InfiniteEnumerable = function (_DisposableBase_1$def) { return new Enumerable(function () { var enumerator; var index = 0; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { throwIfDisposed(disposed); index = 0; enumerator = _.getEnumerator(); @@ -438,7 +438,7 @@ var InfiniteEnumerable = function (_DisposableBase_1$def) { var enumerator; var middleEnumerator; var index = 0; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { enumerator = _.getEnumerator(); middleEnumerator = undefined; index = 0; @@ -475,7 +475,7 @@ var InfiniteEnumerable = function (_DisposableBase_1$def) { return new Enumerable(function () { var enumerator; var index = 0; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { throwIfDisposed(disposed); index = 0; enumerator = _.getEnumerator(); @@ -508,7 +508,7 @@ var InfiniteEnumerable = function (_DisposableBase_1$def) { return new Enumerable(function () { var enumerator; var index = 0; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { throwIfDisposed(disposed); index = 0; enumerator = _.getEnumerator(); @@ -531,16 +531,16 @@ var InfiniteEnumerable = function (_DisposableBase_1$def) { var typeName; switch (type) { case Number: - typeName = Types_1.default.NUMBER; + typeName = Types_1.Type.NUMBER; break; case String: - typeName = Types_1.default.STRING; + typeName = Types_1.Type.STRING; break; case Boolean: - typeName = Types_1.default.BOOLEAN; + typeName = Types_1.Type.BOOLEAN; break; case Function: - typeName = Types_1.default.FUNCTION; + typeName = Types_1.Type.FUNCTION; break; default: return this.where(function (x) { @@ -559,10 +559,10 @@ var InfiniteEnumerable = function (_DisposableBase_1$def) { return new Enumerable(function () { var enumerator; var keys; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { throwIfDisposed(disposed); enumerator = _.getEnumerator(); - keys = new Dictionary_1.default(compareSelector); + keys = new Dictionary_1.Dictionary(compareSelector); if (second) Enumerator_1.forEach(second, function (key) { return keys.addByKeyValue(key, true); }); @@ -600,7 +600,7 @@ var InfiniteEnumerable = function (_DisposableBase_1$def) { var enumerator; var compareKey; var initial = true; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { throwIfDisposed(disposed); enumerator = _.getEnumerator(); }, function (yielder) { @@ -633,7 +633,7 @@ var InfiniteEnumerable = function (_DisposableBase_1$def) { return new Enumerable(function () { var enumerator; var isFirst; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { isFirst = true; throwIfDisposed(disposed); enumerator = _.getEnumerator(); @@ -661,7 +661,7 @@ var InfiniteEnumerable = function (_DisposableBase_1$def) { var firstEnumerator; var secondEnumerator; var index = 0; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { index = 0; firstEnumerator = _.getEnumerator(); secondEnumerator = Enumerator_1.from(second); @@ -683,8 +683,8 @@ var InfiniteEnumerable = function (_DisposableBase_1$def) { var firstEnumerator; var secondEnumerator; var index = 0; - return new EnumeratorBase_1.default(function () { - secondTemp = new Queue_1.default(second); + return new EnumeratorBase_1.EnumeratorBase(function () { + secondTemp = new Queue_1.Queue(second); index = 0; firstEnumerator = _.getEnumerator(); secondEnumerator = null; @@ -719,7 +719,7 @@ var InfiniteEnumerable = function (_DisposableBase_1$def) { var lookup; var innerElements = null; var innerCount = 0; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { outerEnumerator = _.getEnumerator(); lookup = Enumerable.from(inner).toLookup(innerKeySelector, Functions.Identity, compareSelector); }, function (yielder) { @@ -751,7 +751,7 @@ var InfiniteEnumerable = function (_DisposableBase_1$def) { return new Enumerable(function () { var enumerator; var lookup = null; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { enumerator = _.getEnumerator(); lookup = Enumerable.from(inner).toLookup(innerKeySelector, Functions.Identity, compareSelector); }, function (yielder) { @@ -770,9 +770,9 @@ var InfiniteEnumerable = function (_DisposableBase_1$def) { return new Enumerable(function () { var enumerator; var queue; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { enumerator = _.getEnumerator(); - queue = new Queue_1.default(enumerables); + queue = new Queue_1.Queue(enumerables); }, function (yielder) { while (true) { while (!enumerator && queue.count) { @@ -811,9 +811,9 @@ var InfiniteEnumerable = function (_DisposableBase_1$def) { var firstEnumerator; var secondEnumerator; var keys; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { firstEnumerator = _.getEnumerator(); - keys = new Dictionary_1.default(compareSelector); + keys = new Dictionary_1.Dictionary(compareSelector); }, function (yielder) { var current; if (secondEnumerator === VOID0) { @@ -842,7 +842,7 @@ var InfiniteEnumerable = function (_DisposableBase_1$def) { }, { key: "insertAt", value: function insertAt(index, other) { - Integer_1.default.assertZeroOrGreater(index, 'index'); + Integer_1.Integer.assertZeroOrGreater(index, 'index'); var n = index; var _ = this, isEndless = _._isEndless || null; @@ -852,7 +852,7 @@ var InfiniteEnumerable = function (_DisposableBase_1$def) { var secondEnumerator; var count = 0; var isEnumerated = false; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { count = 0; firstEnumerator = _.getEnumerator(); secondEnumerator = Enumerator_1.from(other); @@ -878,8 +878,8 @@ var InfiniteEnumerable = function (_DisposableBase_1$def) { var _ = this; return new Enumerable(function () { var buffer, mode, enumerator, alternateEnumerator; - return new EnumeratorBase_1.default(function () { - alternateEnumerator = new ArrayEnumerator_1.default(Enumerable.toArray(sequence)); + return new EnumeratorBase_1.EnumeratorBase(function () { + alternateEnumerator = new ArrayEnumerator_1.ArrayEnumerator(Enumerable.toArray(sequence)); enumerator = _.getEnumerator(); var hasAtLeastOne = enumerator.moveNext(); mode = hasAtLeastOne ? 1 : 0; @@ -925,7 +925,7 @@ var InfiniteEnumerable = function (_DisposableBase_1$def) { disposed = !_.throwIfDisposed(); return new Enumerable(function () { var enumerator; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { try { throwIfDisposed(disposed); enumerator = _.getEnumerator(); @@ -950,7 +950,7 @@ var InfiniteEnumerable = function (_DisposableBase_1$def) { disposed = !_.throwIfDisposed(); return new Enumerable(function () { var enumerator; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { throwIfDisposed(disposed); enumerator = _.getEnumerator(); }, function (yielder) { @@ -969,12 +969,12 @@ var InfiniteEnumerable = function (_DisposableBase_1$def) { key: "buffer", value: function buffer(size) { if (size < 1 || !isFinite(size)) throw new Error("Invalid buffer size."); - Integer_1.default.assert(size, "size"); + Integer_1.Integer.assert(size, "size"); var _ = this, len; return new Enumerable(function () { var enumerator; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { enumerator = _.getEnumerator(); }, function (yielder) { var array = ArrayUtility.initialize(size); @@ -1009,7 +1009,7 @@ var InfiniteEnumerable = function (_DisposableBase_1$def) { }]); return InfiniteEnumerable; -}(DisposableBase_1.default); +}(DisposableBase_1.DisposableBase); exports.InfiniteEnumerable = InfiniteEnumerable; @@ -1051,7 +1051,7 @@ var Enumerable = function (_InfiniteEnumerable) { key: "takeWhile", value: function takeWhile(predicate) { this.throwIfDisposed(); - if (!predicate) throw new ArgumentNullException_1.default('predicate'); + if (!predicate) throw new ArgumentNullException_1.ArgumentNullException('predicate'); return this.doAction(function (element, index) { return predicate(element, index) ? 1 : 0; }, null, null); @@ -1060,7 +1060,7 @@ var Enumerable = function (_InfiniteEnumerable) { key: "takeUntil", value: function takeUntil(predicate, includeUntilValue) { this.throwIfDisposed(); - if (!predicate) throw new ArgumentNullException_1.default('predicate'); + if (!predicate) throw new ArgumentNullException_1.ArgumentNullException('predicate'); if (!includeUntilValue) return this.doAction(function (element, index) { return predicate(element, index) ? 0 : 1; }, null, null); @@ -1098,8 +1098,8 @@ var Enumerable = function (_InfiniteEnumerable) { var index = arguments.length <= 1 || arguments[1] === undefined ? 0 : arguments[1]; this.throwIfDisposed(); - if (!target) throw new ArgumentNullException_1.default("target"); - Integer_1.default.assertZeroOrGreater(index); + if (!target) throw new ArgumentNullException_1.ArgumentNullException("target"); + Integer_1.Integer.assertZeroOrGreater(index); Enumerator_1.forEach(this, function (x, i) { target[i + index] = x; }); @@ -1111,7 +1111,7 @@ var Enumerable = function (_InfiniteEnumerable) { var elementSelector = arguments.length <= 1 || arguments[1] === undefined ? Functions.Identity : arguments[1]; var compareSelector = arguments.length <= 2 || arguments[2] === undefined ? Functions.Identity : arguments[2]; - var dict = new Dictionary_1.default(compareSelector); + var dict = new Dictionary_1.Dictionary(compareSelector); this.forEach(function (x) { var key = keySelector(x); var element = elementSelector(x); @@ -1134,7 +1134,7 @@ var Enumerable = function (_InfiniteEnumerable) { value: function toDictionary(keySelector, elementSelector) { var compareSelector = arguments.length <= 2 || arguments[2] === undefined ? Functions.Identity : arguments[2]; - var dict = new Dictionary_1.default(compareSelector); + var dict = new Dictionary_1.Dictionary(compareSelector); this.forEach(function (x, i) { return dict.addByKeyValue(keySelector(x, i), elementSelector(x, i)); }); @@ -1156,14 +1156,14 @@ var Enumerable = function (_InfiniteEnumerable) { var _ = this; if (!(count > 0)) return _; if (!isFinite(count)) return Enumerable.empty(); - Integer_1.default.assert(count, "count"); + Integer_1.Integer.assert(count, "count"); var c = count; return new Enumerable(function () { var enumerator; var q; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { enumerator = _.getEnumerator(); - q = new Queue_1.default(); + q = new Queue_1.Queue(); }, function (yielder) { while (enumerator.moveNext()) { q.enqueue(enumerator.current); @@ -1181,7 +1181,7 @@ var Enumerable = function (_InfiniteEnumerable) { if (!(count > 0)) return Enumerable.empty(); var _ = this; if (!isFinite(count)) return _; - Integer_1.default.assert(count, "count"); + Integer_1.Integer.assert(count, "count"); return _.reverse().take(count).reverse(); } }, { @@ -1215,7 +1215,7 @@ var Enumerable = function (_InfiniteEnumerable) { return new Enumerable(function () { var buffer; var index = 0; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { throwIfDisposed(disposed); buffer = _.toArray(); index = buffer.length; @@ -1238,13 +1238,13 @@ var Enumerable = function (_InfiniteEnumerable) { var buffer; var capacity; var len; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { throwIfDisposed(disposed); buffer = _.toArray(); capacity = len = buffer.length; }, function (yielder) { if (!len) return yielder.yieldBreak(); - var selectedIndex = Integer_1.default.random(len); + var selectedIndex = Integer_1.Integer.random(len); var selectedValue = buffer[selectedIndex]; buffer[selectedIndex] = buffer[--len]; buffer[len] = null; @@ -1271,7 +1271,7 @@ var Enumerable = function (_InfiniteEnumerable) { }, { key: "all", value: function all(predicate) { - if (!predicate) throw new ArgumentNullException_1.default("predicate"); + if (!predicate) throw new ArgumentNullException_1.ArgumentNullException("predicate"); var result = true; this.forEach(function (x, i) { if (!predicate(x, i)) { @@ -1361,10 +1361,10 @@ var Enumerable = function (_InfiniteEnumerable) { var enumerator; var keys; var outs; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { enumerator = _.getEnumerator(); - keys = new Dictionary_1.default(compareSelector); - outs = new Dictionary_1.default(compareSelector); + keys = new Dictionary_1.Dictionary(compareSelector); + outs = new Dictionary_1.Dictionary(compareSelector); Enumerator_1.forEach(second, function (key) { keys.addByKeyValue(key, true); }); @@ -1474,7 +1474,7 @@ var Enumerable = function (_InfiniteEnumerable) { var compareKey; var group; var len; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { enumerator = _.getEnumerator(); if (enumerator.moveNext()) { key = keySelector(enumerator.current); @@ -1514,7 +1514,7 @@ var Enumerable = function (_InfiniteEnumerable) { }, { key: "average", value: function average() { - var selector = arguments.length <= 0 || arguments[0] === undefined ? Types_1.default.numberOrNaN : arguments[0]; + var selector = arguments.length <= 0 || arguments[0] === undefined ? Types_1.Type.numberOrNaN : arguments[0]; var count = 0; var sum = this.sum(function (e, i) { @@ -1554,7 +1554,7 @@ var Enumerable = function (_InfiniteEnumerable) { }, { key: "sum", value: function sum() { - var selector = arguments.length <= 0 || arguments[0] === undefined ? Types_1.default.numberOrNaN : arguments[0]; + var selector = arguments.length <= 0 || arguments[0] === undefined ? Types_1.Type.numberOrNaN : arguments[0]; var sum = 0; var sumInfinite = 0; @@ -1571,7 +1571,7 @@ var Enumerable = function (_InfiniteEnumerable) { }, { key: "product", value: function product() { - var selector = arguments.length <= 0 || arguments[0] === undefined ? Types_1.default.numberOrNaN : arguments[0]; + var selector = arguments.length <= 0 || arguments[0] === undefined ? Types_1.Type.numberOrNaN : arguments[0]; var result = 1, exists = false; @@ -1593,7 +1593,7 @@ var Enumerable = function (_InfiniteEnumerable) { }, { key: "quotient", value: function quotient() { - var selector = arguments.length <= 0 || arguments[0] === undefined ? Types_1.default.numberOrNaN : arguments[0]; + var selector = arguments.length <= 0 || arguments[0] === undefined ? Types_1.Type.numberOrNaN : arguments[0]; var count = 0; var result = NaN; @@ -1666,7 +1666,7 @@ var Enumerable = function (_InfiniteEnumerable) { var enumerator; return new Enumerable(function () { var index = 0; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { throwIfDisposed(disposed); if (!enumerator) enumerator = _.getEnumerator(); if (!cache) cache = []; @@ -1691,7 +1691,7 @@ var Enumerable = function (_InfiniteEnumerable) { key: "from", value: function from(source) { var e = Enumerable.fromAny(source); - if (!e) throw new UnsupportedEnumerableException_1.default(); + if (!e) throw new UnsupportedEnumerableException_1.UnsupportedEnumerableException(); return e; } }, { @@ -1699,9 +1699,9 @@ var Enumerable = function (_InfiniteEnumerable) { value: function fromAny(source) { var defaultEnumerable = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1]; - if (Types_1.default.isObject(source) || Types_1.default.isString(source)) { + if (Types_1.Type.isObject(source) || Types_1.Type.isString(source)) { if (source instanceof Enumerable) return source; - if (Types_1.default.isArrayLike(source)) return new ArrayEnumerable(source); + if (Types_1.Type.isArrayLike(source)) return new ArrayEnumerable(source); if (Enumerator_1.isEnumerable(source)) return new Enumerable(function () { return source.getEnumerator(); }, null, source.isEndless); @@ -1723,10 +1723,10 @@ var Enumerable = function (_InfiniteEnumerable) { key: "choice", value: function choice(values) { var len = values && values.length; - if (!len || !isFinite(len)) throw new ArgumentOutOfRangeException_1.default('length', length); + if (!len || !isFinite(len)) throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('length', length); return new InfiniteEnumerable(function () { - return new EnumeratorBase_1.default(null, function (yielder) { - return yielder.yieldReturn(Integer_1.default.random.select(values)); + return new EnumeratorBase_1.EnumeratorBase(null, function (yielder) { + return yielder.yieldReturn(Integer_1.Integer.random.select(values)); }, true); }); } @@ -1743,10 +1743,10 @@ var Enumerable = function (_InfiniteEnumerable) { key: "cycle", value: function cycle(values) { var len = values && values.length; - if (!len || !isFinite(len)) throw new ArgumentOutOfRangeException_1.default('length', length); + if (!len || !isFinite(len)) throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('length', length); return new InfiniteEnumerable(function () { var index = 0; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { index = 0; }, function (yielder) { if (index >= values.length) index = 0; @@ -1774,16 +1774,16 @@ var Enumerable = function (_InfiniteEnumerable) { var count = arguments.length <= 1 || arguments[1] === undefined ? Infinity : arguments[1]; if (!(count > 0)) return Enumerable.empty(); - return isFinite(count) && Integer_1.default.assert(count, "count") ? new FiniteEnumerable(function () { + return isFinite(count) && Integer_1.Integer.assert(count, "count") ? new FiniteEnumerable(function () { var c = count; var index = 0; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { index = 0; }, function (yielder) { return index++ < c && yielder.yieldReturn(element); }, null, false); }) : new Enumerable(function () { - return new EnumeratorBase_1.default(null, function (yielder) { + return new EnumeratorBase_1.EnumeratorBase(null, function (yielder) { return yielder.yieldReturn(element); }, true); }); @@ -1793,7 +1793,7 @@ var Enumerable = function (_InfiniteEnumerable) { value: function repeatWithFinalize(initializer, finalizer) { return new InfiniteEnumerable(function () { var element; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { element = initializer(); }, function (yielder) { return yielder.yieldReturn(element); @@ -1812,16 +1812,16 @@ var Enumerable = function (_InfiniteEnumerable) { value: function range(start, count) { var step = arguments.length <= 2 || arguments[2] === undefined ? 1 : arguments[2]; - if (!isFinite(start)) throw new ArgumentOutOfRangeException_1.default("start", start, "Must be a finite number."); + if (!isFinite(start)) throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException("start", start, "Must be a finite number."); if (!(count > 0)) return Enumerable.empty(); - if (!step) throw new ArgumentOutOfRangeException_1.default("step", step, "Must be a valid value"); - if (!isFinite(step)) throw new ArgumentOutOfRangeException_1.default("step", step, "Must be a finite number."); - Integer_1.default.assert(count, "count"); + if (!step) throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException("step", step, "Must be a valid value"); + if (!isFinite(step)) throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException("step", step, "Must be a finite number."); + Integer_1.Integer.assert(count, "count"); return new FiniteEnumerable(function () { var value; var c = count; var index = 0; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { index = 0; value = start; }, function (yielder) { @@ -1845,12 +1845,12 @@ var Enumerable = function (_InfiniteEnumerable) { var start = arguments.length <= 0 || arguments[0] === undefined ? 0 : arguments[0]; var step = arguments.length <= 1 || arguments[1] === undefined ? 1 : arguments[1]; - if (!isFinite(start)) throw new ArgumentOutOfRangeException_1.default("start", start, "Must be a finite number."); - if (!step) throw new ArgumentOutOfRangeException_1.default("step", step, "Must be a valid value"); - if (!isFinite(step)) throw new ArgumentOutOfRangeException_1.default("step", step, "Must be a finite number."); + if (!isFinite(start)) throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException("start", start, "Must be a finite number."); + if (!step) throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException("step", step, "Must be a valid value"); + if (!isFinite(step)) throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException("step", step, "Must be a finite number."); return new InfiniteEnumerable(function () { var value; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { value = start; }, function (yielder) { var current = value; @@ -1872,12 +1872,12 @@ var Enumerable = function (_InfiniteEnumerable) { value: function rangeTo(start, to) { var step = arguments.length <= 2 || arguments[2] === undefined ? 1 : arguments[2]; - if (isNaN(to) || !isFinite(to)) throw new ArgumentOutOfRangeException_1.default("to", to, "Must be a finite number."); - if (step && !isFinite(step)) throw new ArgumentOutOfRangeException_1.default("step", step, "Must be a finite non-zero number."); + if (isNaN(to) || !isFinite(to)) throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException("to", to, "Must be a finite number."); + if (step && !isFinite(step)) throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException("step", step, "Must be a finite non-zero number."); step = Math.abs(step); return new FiniteEnumerable(function () { var value; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { value = start; }, start < to ? function (yielder) { var result = value <= to && yielder.yieldReturn(value); @@ -1895,9 +1895,9 @@ var Enumerable = function (_InfiniteEnumerable) { value: function matches(input, pattern) { var flags = arguments.length <= 2 || arguments[2] === undefined ? "" : arguments[2]; - if (input === null || input === VOID0) throw new ArgumentNullException_1.default("input"); + if (input === null || input === VOID0) throw new ArgumentNullException_1.ArgumentNullException("input"); var type = typeof input === "undefined" ? "undefined" : _typeof(input); - if (type != Types_1.default.STRING) throw new Error("Cannot exec RegExp matches of type '" + type + "'."); + if (type != Types_1.Type.STRING) throw new Error("Cannot exec RegExp matches of type '" + type + "'."); if (pattern instanceof RegExp) { flags += pattern.ignoreCase ? "i" : ""; flags += pattern.multiline ? "m" : ""; @@ -1906,7 +1906,7 @@ var Enumerable = function (_InfiniteEnumerable) { if (flags.indexOf("g") === -1) flags += "g"; return new FiniteEnumerable(function () { var regex; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { regex = new RegExp(pattern, flags); }, function (yielder) { var match = regex.exec(input); @@ -1920,10 +1920,10 @@ var Enumerable = function (_InfiniteEnumerable) { var count = arguments.length <= 1 || arguments[1] === undefined ? Infinity : arguments[1]; if (isNaN(count) || count <= 0) return Enumerable.empty(); - return isFinite(count) && Integer_1.default.assert(count, "count") ? new FiniteEnumerable(function () { + return isFinite(count) && Integer_1.Integer.assert(count, "count") ? new FiniteEnumerable(function () { var c = count; var index = 0; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { index = 0; }, function (yielder) { var current = index++; @@ -1931,7 +1931,7 @@ var Enumerable = function (_InfiniteEnumerable) { }, false); }) : new InfiniteEnumerable(function () { var index = 0; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { index = 0; }, function (yielder) { return yielder.yieldReturn(factory(index++)); @@ -1947,7 +1947,7 @@ var Enumerable = function (_InfiniteEnumerable) { var index = 0; var value; var isFirst; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { index = 0; value = seed; isFirst = !skipSeed; @@ -1985,14 +1985,14 @@ var Enumerable = function (_InfiniteEnumerable) { }, { key: "weave", value: function weave(enumerables) { - if (!enumerables) throw new ArgumentNullException_1.default('enumerables'); + if (!enumerables) throw new ArgumentNullException_1.ArgumentNullException('enumerables'); return new Enumerable(function () { var queue; var mainEnumerator; var index; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { index = 0; - queue = new Queue_1.default(); + queue = new Queue_1.Queue(); mainEnumerator = Enumerator_1.from(enumerables); }, function (yielder) { var e = undefined; @@ -2044,7 +2044,7 @@ var ArrayEnumerable = function (_FiniteEnumerable) { var _this6 = _possibleConstructorReturn(this, Object.getPrototypeOf(ArrayEnumerable).call(this, function () { _.throwIfDisposed(); - return new ArrayEnumerator_1.default(function () { + return new ArrayEnumerator_1.ArrayEnumerator(function () { _.throwIfDisposed("The underlying ArrayEnumerable was disposed.", "ArrayEnumerator"); return _._source; }); @@ -2106,7 +2106,7 @@ var ArrayEnumerable = function (_FiniteEnumerable) { var _ = this; _.throwIfDisposed(); - Integer_1.default.assertZeroOrGreater(index, 'index'); + Integer_1.Integer.assertZeroOrGreater(index, 'index'); var source = _._source; return index < source.length ? source[index] : defaultValue; } @@ -2136,7 +2136,7 @@ var ArrayEnumerable = function (_FiniteEnumerable) { var _ = this; if (!(count > 0)) return _; return new Enumerable(function () { - return new ArrayEnumerator_1.default(function () { + return new ArrayEnumerator_1.ArrayEnumerator(function () { return _._source; }, count); }); @@ -2163,7 +2163,7 @@ var ArrayEnumerable = function (_FiniteEnumerable) { value: function reverse() { var _ = this; return new Enumerable(function () { - return new ArrayEnumerator_1.default(function () { + return new ArrayEnumerator_1.ArrayEnumerator(function () { return _._source; }, _._source ? _._source.length - 1 : 0, -1); }); @@ -2178,7 +2178,7 @@ var ArrayEnumerable = function (_FiniteEnumerable) { value: function sequenceEqual(second) { var equalityComparer = arguments.length <= 1 || arguments[1] === undefined ? Values.areEqual : arguments[1]; - if (Types_1.default.isArrayLike(second)) return Arrays.areEqual(this.source, second, true, equalityComparer); + if (Types_1.Type.isArrayLike(second)) return Arrays.areEqual(this.source, second, true, equalityComparer); if (second instanceof ArrayEnumerable) return second.sequenceEqual(this.source, equalityComparer); return _get(Object.getPrototypeOf(ArrayEnumerable.prototype), "sequenceEqual", this).call(this, second, equalityComparer); } @@ -2245,7 +2245,7 @@ var Lookup = function () { value: function getEnumerator() { var _ = this; var enumerator; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { enumerator = _._dictionary.getEnumerator(); }, function (yielder) { if (!enumerator.moveNext()) return false; @@ -2316,7 +2316,7 @@ var OrderedEnumerable = function (_FiniteEnumerable2) { var buffer; var indexes; var index = 0; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { index = 0; buffer = Enumerable.toArray(_.source); indexes = createSortContext(_).generateSortedIndexes(buffer); @@ -2357,12 +2357,12 @@ function nextEnumerator(queue, e) { function createSortContext(orderedEnumerable) { var currentContext = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1]; - var context = new KeySortedContext_1.default(currentContext, orderedEnumerable.keySelector, orderedEnumerable.order, orderedEnumerable.comparer); + var context = new KeySortedContext_1.KeySortedContext(currentContext, orderedEnumerable.keySelector, orderedEnumerable.order, orderedEnumerable.comparer); if (orderedEnumerable.parent) return createSortContext(orderedEnumerable.parent, context); return context; } function throwIfDisposed(disposed) { - if (disposed) throw new ObjectDisposedException_1.default("Enumerable"); + if (disposed) throw new ObjectDisposedException_1.ObjectDisposedException("Enumerable"); } Object.defineProperty(exports, "__esModule", { value: true }); exports.default = Enumerable; diff --git a/dist/commonjs/System.Linq/Linq.js.map b/dist/commonjs/System.Linq/Linq.js.map index 014220e7..6978ee7d 100644 --- a/dist/commonjs/System.Linq/Linq.js.map +++ b/dist/commonjs/System.Linq/Linq.js.map @@ -1 +1 @@ -{"version":3,"sources":["System.Linq/Linq.js","System.Linq/Linq.ts"],"names":[],"mappings":"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","file":"System.Linq/Linq.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Original: http://linqjs.codeplex.com/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst Values = require(\"../System/Compare\");\nconst Arrays = require(\"../System/Collections/Array/Compare\");\nconst ArrayUtility = require(\"../System/Collections/Array/Utility\");\nconst Enumerator_1 = require(\"../System/Collections/Enumeration/Enumerator\");\nconst Types_1 = require(\"../System/Types\");\nconst Integer_1 = require(\"../System/Integer\");\nconst Functions_1 = require(\"../System/Functions\");\nconst ArrayEnumerator_1 = require(\"../System/Collections/Enumeration/ArrayEnumerator\");\nconst EnumeratorBase_1 = require(\"../System/Collections/Enumeration/EnumeratorBase\");\nconst Dictionary_1 = require(\"../System/Collections/Dictionaries/Dictionary\");\nconst Queue_1 = require(\"../System/Collections/Queue\");\nconst dispose_1 = require(\"../System/Disposable/dispose\");\nconst DisposableBase_1 = require(\"../System/Disposable/DisposableBase\");\nconst UnsupportedEnumerableException_1 = require(\"../System/Collections/Enumeration/UnsupportedEnumerableException\");\nconst ObjectDisposedException_1 = require(\"../System/Disposable/ObjectDisposedException\");\nconst KeySortedContext_1 = require(\"../System/Collections/Sorting/KeySortedContext\");\nconst ArgumentNullException_1 = require(\"../System/Exceptions/ArgumentNullException\");\nconst ArgumentOutOfRangeException_1 = require(\"../System/Exceptions/ArgumentOutOfRangeException\");\nconst INVALID_DEFAULT = {};\nconst VOID0 = void 0;\nconst BREAK = element => 0;\nclass LinqFunctions extends Functions_1.default {\n Greater(a, b) {\n return a > b ? a : b;\n }\n Lesser(a, b) {\n return a < b ? a : b;\n }\n}\nvar Functions = new LinqFunctions();\nObject.freeze(Functions);\nfunction getEmptyEnumerator() {\n return Enumerator_1.empty;\n}\nclass InfiniteEnumerable extends DisposableBase_1.default {\n constructor(_enumeratorFactory, finalizer) {\n super(finalizer);\n this._enumeratorFactory = _enumeratorFactory;\n this._isEndless = true;\n }\n get isEndless() {\n return this._isEndless;\n }\n getEnumerator() {\n this.throwIfDisposed();\n return this._enumeratorFactory();\n }\n _onDispose() {\n super._onDispose();\n this._enumeratorFactory = null;\n }\n asEnumerable() {\n var _ = this;\n _.throwIfDisposed();\n return new InfiniteEnumerable(() => _.getEnumerator());\n }\n doAction(action, initializer, isEndless = this.isEndless) {\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(() => {\n var enumerator;\n var index = 0;\n return new EnumeratorBase_1.default(() => {\n throwIfDisposed(disposed);\n if (initializer)\n initializer();\n index = 0;\n enumerator = _.getEnumerator();\n }, (yielder) => {\n throwIfDisposed(disposed);\n while (enumerator.moveNext()) {\n var actionResult = action(enumerator.current, index++);\n if (actionResult === false || actionResult === 0)\n return yielder.yieldBreak();\n if (actionResult !== 2)\n return yielder.yieldReturn(enumerator.current);\n }\n return false;\n }, () => {\n dispose_1.dispose(enumerator);\n }, isEndless);\n }, () => {\n disposed = true;\n }, isEndless);\n }\n force() {\n this.throwIfDisposed();\n this.doAction(BREAK)\n .getEnumerator()\n .moveNext();\n }\n skip(count) {\n var _ = this;\n _.throwIfDisposed();\n if (!isFinite(count))\n return Enumerable.empty();\n Integer_1.default.assert(count, \"count\");\n return this.doAction((element, index) => index < count\n ? 2\n : 1);\n }\n take(count) {\n if (!(count > 0))\n return Enumerable.empty();\n var _ = this;\n _.throwIfDisposed();\n if (!isFinite(count))\n throw new ArgumentOutOfRangeException_1.default('count', count, 'Must be finite.');\n Integer_1.default.assert(count, \"count\");\n return _.doAction((element, index) => index < count, null, false);\n }\n elementAt(index) {\n var v = this.elementAtOrDefault(index, INVALID_DEFAULT);\n if (v === INVALID_DEFAULT)\n throw new ArgumentOutOfRangeException_1.default('index', index, \"is greater than or equal to the number of elements in source\");\n return v;\n }\n elementAtOrDefault(index, defaultValue = null) {\n var _ = this;\n _.throwIfDisposed();\n Integer_1.default.assertZeroOrGreater(index, 'index');\n var n = index;\n return dispose_1.using(this.getEnumerator(), e => {\n var i = 0;\n while (e.moveNext()) {\n if (i == n)\n return e.current;\n i++;\n }\n return defaultValue;\n });\n }\n first() {\n var v = this.firstOrDefault(INVALID_DEFAULT);\n if (v === INVALID_DEFAULT)\n throw new Error(\"first:The sequence is empty.\");\n return v;\n }\n firstOrDefault(defaultValue = null) {\n var _ = this;\n _.throwIfDisposed();\n return dispose_1.using(this.getEnumerator(), e => e.moveNext() ? e.current : defaultValue);\n }\n single() {\n var _ = this;\n _.throwIfDisposed();\n return dispose_1.using(this.getEnumerator(), e => {\n if (e.moveNext()) {\n var value = e.current;\n if (!e.moveNext())\n return value;\n throw new Error(\"single:sequence contains more than one element.\");\n }\n throw new Error(\"single:The sequence is empty.\");\n });\n }\n singleOrDefault(defaultValue = null) {\n var _ = this;\n _.throwIfDisposed();\n return dispose_1.using(this.getEnumerator(), e => {\n if (e.moveNext()) {\n var value = e.current;\n if (!e.moveNext())\n return value;\n }\n return defaultValue;\n });\n }\n any() {\n var _ = this;\n _.throwIfDisposed();\n return dispose_1.using(this.getEnumerator(), e => e.moveNext());\n }\n isEmpty() {\n return !this.any();\n }\n traverseBreadthFirst(childrenSelector, resultSelector = Functions.Identity) {\n var _ = this, isEndless = _._isEndless || null;\n return new Enumerable(() => {\n var enumerator;\n var nestLevel = 0;\n var buffer, len;\n return new EnumeratorBase_1.default(() => {\n nestLevel = 0;\n buffer = [];\n len = 0;\n enumerator = _.getEnumerator();\n }, (yielder) => {\n while (true) {\n if (enumerator.moveNext()) {\n buffer[len++] = enumerator.current;\n return yielder.yieldReturn(resultSelector(enumerator.current, nestLevel));\n }\n if (!len)\n return yielder.yieldBreak();\n var next = Enumerable\n .from(buffer)\n .selectMany(childrenSelector);\n if (!next.any()) {\n return yielder.yieldBreak();\n }\n else {\n nestLevel++;\n buffer = [];\n len = 0;\n enumerator.dispose();\n enumerator = next.getEnumerator();\n }\n }\n }, () => {\n dispose_1.dispose(enumerator);\n buffer.length = 0;\n }, isEndless);\n }, null, isEndless);\n }\n traverseDepthFirst(childrenSelector, resultSelector = Functions.Identity) {\n var _ = this, isEndless = _._isEndless || null;\n return new Enumerable(() => {\n var enumeratorStack = [];\n var enumerator;\n var len;\n return new EnumeratorBase_1.default(() => {\n enumerator = _.getEnumerator();\n len = 0;\n }, (yielder) => {\n while (true) {\n if (enumerator.moveNext()) {\n let value = resultSelector(enumerator.current, len);\n enumeratorStack[len++] = enumerator;\n let e = Enumerable.fromAny(childrenSelector(enumerator.current));\n enumerator = e ? e.getEnumerator() : Enumerator_1.empty;\n return yielder.yieldReturn(value);\n }\n if (len == 0)\n return false;\n enumerator.dispose();\n enumerator = enumeratorStack[--len];\n enumeratorStack.length = len;\n }\n }, () => {\n try {\n dispose_1.dispose(enumerator);\n }\n finally {\n dispose_1.dispose.these(enumeratorStack);\n }\n }, isEndless);\n }, null, isEndless);\n }\n flatten() {\n var _ = this, isEndless = _._isEndless || null;\n return new Enumerable(() => {\n var enumerator;\n var middleEnumerator = null;\n return new EnumeratorBase_1.default(() => {\n enumerator = _.getEnumerator();\n }, (yielder) => {\n while (true) {\n if (middleEnumerator) {\n if (middleEnumerator.moveNext()) {\n return yielder.yieldReturn(middleEnumerator.current);\n }\n else {\n middleEnumerator.dispose();\n middleEnumerator = null;\n }\n }\n if (enumerator.moveNext()) {\n var c = enumerator.current;\n var e = !Types_1.default.isString(c) && Enumerable.fromAny(c);\n if (e) {\n middleEnumerator\n = e\n .selectMany(Functions.Identity)\n .flatten()\n .getEnumerator();\n continue;\n }\n else {\n return yielder.yieldReturn(c);\n }\n }\n return yielder.yieldBreak();\n }\n }, () => {\n dispose_1.dispose(enumerator, middleEnumerator);\n }, isEndless);\n }, null, isEndless);\n }\n pairwise(selector) {\n var _ = this;\n return new Enumerable(() => {\n var enumerator;\n return new EnumeratorBase_1.default(() => {\n enumerator = _.getEnumerator();\n enumerator.moveNext();\n }, (yielder) => {\n var prev = enumerator.current;\n return enumerator.moveNext()\n && yielder.yieldReturn(selector(prev, enumerator.current));\n }, () => {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, null, _._isEndless);\n }\n scan(func, seed) {\n var isUseSeed = seed !== VOID0;\n var _ = this;\n return new Enumerable(() => {\n var enumerator;\n var value;\n var isFirst;\n return new EnumeratorBase_1.default(() => {\n enumerator = _.getEnumerator();\n isFirst = true;\n }, (yielder) => {\n if (isFirst) {\n isFirst = false;\n return isUseSeed\n ? yielder.yieldReturn(value = seed)\n : enumerator.moveNext() && yielder.yieldReturn(value\n = enumerator.current);\n }\n return (enumerator.moveNext())\n ? yielder.yieldReturn(value = func(value, enumerator.current))\n : false;\n }, () => {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, null, _._isEndless);\n }\n select(selector) {\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(() => {\n var enumerator;\n var index = 0;\n return new EnumeratorBase_1.default(() => {\n throwIfDisposed(disposed);\n index = 0;\n enumerator = _.getEnumerator();\n }, (yielder) => {\n throwIfDisposed(disposed);\n return enumerator.moveNext()\n ? yielder.yieldReturn(selector(enumerator.current, index++))\n : yielder.yieldBreak();\n }, () => {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, () => {\n disposed = true;\n }, _._isEndless);\n }\n _selectMany(collectionSelector, resultSelector) {\n var _ = this, isEndless = _._isEndless || null;\n if (!resultSelector)\n resultSelector = (a, b) => b;\n return new Enumerable(() => {\n var enumerator;\n var middleEnumerator;\n var index = 0;\n return new EnumeratorBase_1.default(() => {\n enumerator = _.getEnumerator();\n middleEnumerator = undefined;\n index = 0;\n }, (yielder) => {\n if (middleEnumerator === VOID0 && !enumerator.moveNext())\n return false;\n do {\n if (!middleEnumerator) {\n var middleSeq = collectionSelector(enumerator.current, index++);\n if (!middleSeq)\n continue;\n middleEnumerator = Enumerator_1.from(middleSeq);\n }\n if (middleEnumerator.moveNext())\n return yielder.yieldReturn(resultSelector(enumerator.current, middleEnumerator.current));\n middleEnumerator.dispose();\n middleEnumerator = null;\n } while (enumerator.moveNext());\n return false;\n }, () => {\n dispose_1.dispose(enumerator, middleEnumerator);\n enumerator = null;\n middleEnumerator = null;\n }, isEndless);\n }, null, isEndless);\n }\n selectMany(collectionSelector, resultSelector) {\n return this._selectMany(collectionSelector, resultSelector);\n }\n _choose(selector) {\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(() => {\n var enumerator;\n var index = 0;\n return new EnumeratorBase_1.default(() => {\n throwIfDisposed(disposed);\n index = 0;\n enumerator = _.getEnumerator();\n }, (yielder) => {\n throwIfDisposed(disposed);\n while (enumerator.moveNext()) {\n var result = selector(enumerator.current, index++);\n if (result !== null && result !== VOID0)\n return yielder.yieldReturn(result);\n }\n return false;\n }, () => {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, () => {\n disposed = true;\n }, _._isEndless);\n }\n choose(selector = Functions.Identity) {\n return this._choose(selector);\n }\n where(predicate) {\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(() => {\n var enumerator;\n var index = 0;\n return new EnumeratorBase_1.default(() => {\n throwIfDisposed(disposed);\n index = 0;\n enumerator = _.getEnumerator();\n }, (yielder) => {\n throwIfDisposed(disposed);\n while (enumerator.moveNext()) {\n if (predicate(enumerator.current, index++))\n return yielder.yieldReturn(enumerator.current);\n }\n return false;\n }, () => {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, () => {\n disposed = true;\n }, _._isEndless);\n }\n ofType(type) {\n var typeName;\n switch (type) {\n case Number:\n typeName = Types_1.default.NUMBER;\n break;\n case String:\n typeName = Types_1.default.STRING;\n break;\n case Boolean:\n typeName = Types_1.default.BOOLEAN;\n break;\n case Function:\n typeName = Types_1.default.FUNCTION;\n break;\n default:\n return this\n .where(x => x instanceof type);\n }\n return this\n .choose()\n .where(x => (typeof x) === typeName);\n }\n except(second, compareSelector) {\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(() => {\n var enumerator;\n var keys;\n return new EnumeratorBase_1.default(() => {\n throwIfDisposed(disposed);\n enumerator = _.getEnumerator();\n keys = new Dictionary_1.default(compareSelector);\n if (second)\n Enumerator_1.forEach(second, key => keys.addByKeyValue(key, true));\n }, (yielder) => {\n throwIfDisposed(disposed);\n while (enumerator.moveNext()) {\n var current = enumerator.current;\n if (!keys.containsKey(current)) {\n keys.addByKeyValue(current, true);\n return yielder.yieldReturn(current);\n }\n }\n return false;\n }, () => {\n dispose_1.dispose(enumerator);\n keys.clear();\n }, _._isEndless);\n }, () => {\n disposed = true;\n }, _._isEndless);\n }\n distinct(compareSelector) {\n return this.except(null, compareSelector);\n }\n distinctUntilChanged(compareSelector = Functions.Identity) {\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(() => {\n var enumerator;\n var compareKey;\n var initial = true;\n return new EnumeratorBase_1.default(() => {\n throwIfDisposed(disposed);\n enumerator = _.getEnumerator();\n }, (yielder) => {\n throwIfDisposed(disposed);\n while (enumerator.moveNext()) {\n var key = compareSelector(enumerator.current);\n if (initial) {\n initial = false;\n }\n else if (Values.areEqual(compareKey, key)) {\n continue;\n }\n compareKey = key;\n return yielder.yieldReturn(enumerator.current);\n }\n return false;\n }, () => {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, () => {\n disposed = true;\n }, _._isEndless);\n }\n defaultIfEmpty(defaultValue = null) {\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(() => {\n var enumerator;\n var isFirst;\n return new EnumeratorBase_1.default(() => {\n isFirst = true;\n throwIfDisposed(disposed);\n enumerator = _.getEnumerator();\n }, (yielder) => {\n throwIfDisposed(disposed);\n if (enumerator.moveNext()) {\n isFirst = false;\n return yielder.yieldReturn(enumerator.current);\n }\n else if (isFirst) {\n isFirst = false;\n return yielder.yieldReturn(defaultValue);\n }\n return false;\n }, () => {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, null, _._isEndless);\n }\n zip(second, resultSelector) {\n var _ = this;\n _.throwIfDisposed();\n return new Enumerable(() => {\n var firstEnumerator;\n var secondEnumerator;\n var index = 0;\n return new EnumeratorBase_1.default(() => {\n index = 0;\n firstEnumerator = _.getEnumerator();\n secondEnumerator = Enumerator_1.from(second);\n }, (yielder) => firstEnumerator.moveNext()\n && secondEnumerator.moveNext()\n && yielder.yieldReturn(resultSelector(firstEnumerator.current, secondEnumerator.current, index++)), () => {\n dispose_1.dispose(firstEnumerator, secondEnumerator);\n });\n });\n }\n zipMultiple(second, resultSelector) {\n var _ = this;\n _.throwIfDisposed();\n if (!second.length)\n return Enumerable.empty();\n return new Enumerable(() => {\n var secondTemp;\n var firstEnumerator;\n var secondEnumerator;\n var index = 0;\n return new EnumeratorBase_1.default(() => {\n secondTemp = new Queue_1.default(second);\n index = 0;\n firstEnumerator = _.getEnumerator();\n secondEnumerator = null;\n }, (yielder) => {\n if (firstEnumerator.moveNext()) {\n while (true) {\n while (!secondEnumerator) {\n if (secondTemp.count) {\n var next = secondTemp.dequeue();\n if (next)\n secondEnumerator = Enumerator_1.from(next);\n }\n else\n return yielder.yieldBreak();\n }\n if (secondEnumerator.moveNext())\n return yielder.yieldReturn(resultSelector(firstEnumerator.current, secondEnumerator.current, index++));\n secondEnumerator.dispose();\n secondEnumerator = null;\n }\n }\n return yielder.yieldBreak();\n }, () => {\n dispose_1.dispose(firstEnumerator, secondTemp);\n });\n });\n }\n join(inner, outerKeySelector, innerKeySelector, resultSelector, compareSelector = Functions.Identity) {\n var _ = this;\n return new Enumerable(() => {\n var outerEnumerator;\n var lookup;\n var innerElements = null;\n var innerCount = 0;\n return new EnumeratorBase_1.default(() => {\n outerEnumerator = _.getEnumerator();\n lookup = Enumerable.from(inner)\n .toLookup(innerKeySelector, Functions.Identity, compareSelector);\n }, (yielder) => {\n while (true) {\n if (innerElements != null) {\n var innerElement = innerElements[innerCount++];\n if (innerElement !== VOID0)\n return yielder.yieldReturn(resultSelector(outerEnumerator.current, innerElement));\n innerElement = null;\n innerCount = 0;\n }\n if (outerEnumerator.moveNext()) {\n var key = outerKeySelector(outerEnumerator.current);\n innerElements = lookup.get(key);\n }\n else {\n return yielder.yieldBreak();\n }\n }\n }, () => {\n dispose_1.dispose(outerEnumerator);\n });\n });\n }\n groupJoin(inner, outerKeySelector, innerKeySelector, resultSelector, compareSelector = Functions.Identity) {\n var _ = this;\n return new Enumerable(() => {\n var enumerator;\n var lookup = null;\n return new EnumeratorBase_1.default(() => {\n enumerator = _.getEnumerator();\n lookup = Enumerable.from(inner)\n .toLookup(innerKeySelector, Functions.Identity, compareSelector);\n }, (yielder) => enumerator.moveNext()\n && yielder.yieldReturn(resultSelector(enumerator.current, lookup.get(outerKeySelector(enumerator.current)))), () => {\n dispose_1.dispose(enumerator);\n });\n });\n }\n merge(enumerables) {\n var _ = this, isEndless = _._isEndless || null;\n if (!enumerables || enumerables.length == 0)\n return _;\n return new Enumerable(() => {\n var enumerator;\n var queue;\n return new EnumeratorBase_1.default(() => {\n enumerator = _.getEnumerator();\n queue = new Queue_1.default(enumerables);\n }, (yielder) => {\n while (true) {\n while (!enumerator && queue.count) {\n enumerator = Enumerator_1.from(queue.dequeue());\n }\n if (enumerator && enumerator.moveNext())\n return yielder.yieldReturn(enumerator.current);\n if (enumerator) {\n enumerator.dispose();\n enumerator = null;\n continue;\n }\n return yielder.yieldBreak();\n }\n }, () => {\n dispose_1.dispose(enumerator, queue);\n }, isEndless);\n }, null, isEndless);\n }\n concat(...enumerables) {\n return this.merge(enumerables);\n }\n union(second, compareSelector = Functions.Identity) {\n var _ = this, isEndless = _._isEndless || null;\n return new Enumerable(() => {\n var firstEnumerator;\n var secondEnumerator;\n var keys;\n return new EnumeratorBase_1.default(() => {\n firstEnumerator = _.getEnumerator();\n keys = new Dictionary_1.default(compareSelector);\n }, (yielder) => {\n var current;\n if (secondEnumerator === VOID0) {\n while (firstEnumerator.moveNext()) {\n current = firstEnumerator.current;\n if (!keys.containsKey(current)) {\n keys.addByKeyValue(current, null);\n return yielder.yieldReturn(current);\n }\n }\n secondEnumerator = Enumerator_1.from(second);\n }\n while (secondEnumerator.moveNext()) {\n current = secondEnumerator.current;\n if (!keys.containsKey(current)) {\n keys.addByKeyValue(current, null);\n return yielder.yieldReturn(current);\n }\n }\n return false;\n }, () => {\n dispose_1.dispose(firstEnumerator, secondEnumerator);\n }, isEndless);\n }, null, isEndless);\n }\n insertAt(index, other) {\n Integer_1.default.assertZeroOrGreater(index, 'index');\n var n = index;\n var _ = this, isEndless = _._isEndless || null;\n _.throwIfDisposed();\n return new Enumerable(() => {\n var firstEnumerator;\n var secondEnumerator;\n var count = 0;\n var isEnumerated = false;\n return new EnumeratorBase_1.default(() => {\n count = 0;\n firstEnumerator = _.getEnumerator();\n secondEnumerator = Enumerator_1.from(other);\n isEnumerated = false;\n }, (yielder) => {\n if (count == n) {\n isEnumerated = true;\n if (secondEnumerator.moveNext())\n return yielder.yieldReturn(secondEnumerator.current);\n }\n if (firstEnumerator.moveNext()) {\n count++;\n return yielder.yieldReturn(firstEnumerator.current);\n }\n return !isEnumerated\n && secondEnumerator.moveNext()\n && yielder.yieldReturn(secondEnumerator.current);\n }, () => {\n dispose_1.dispose(firstEnumerator, secondEnumerator);\n }, isEndless);\n }, null, isEndless);\n }\n alternateMultiple(sequence) {\n var _ = this;\n return new Enumerable(() => {\n var buffer, mode, enumerator, alternateEnumerator;\n return new EnumeratorBase_1.default(() => {\n alternateEnumerator = new ArrayEnumerator_1.default(Enumerable.toArray(sequence));\n enumerator = _.getEnumerator();\n var hasAtLeastOne = enumerator.moveNext();\n mode = hasAtLeastOne\n ? 1\n : 0;\n if (hasAtLeastOne)\n buffer = enumerator.current;\n }, (yielder) => {\n switch (mode) {\n case 0:\n return yielder.yieldBreak();\n case 2:\n if (alternateEnumerator.moveNext())\n return yielder.yieldReturn(alternateEnumerator.current);\n alternateEnumerator.reset();\n mode = 1;\n break;\n }\n var latest = buffer;\n var another = enumerator.moveNext();\n mode = another\n ? 2\n : 0;\n if (another)\n buffer = enumerator.current;\n return yielder.yieldReturn(latest);\n }, () => {\n dispose_1.dispose(enumerator, alternateEnumerator);\n }, _._isEndless);\n }, null, _._isEndless);\n }\n alternateSingle(value) {\n return this.alternateMultiple(Enumerable.make(value));\n }\n alternate(...sequence) {\n return this.alternateMultiple(sequence);\n }\n catchError(handler) {\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(() => {\n var enumerator;\n return new EnumeratorBase_1.default(() => {\n try {\n throwIfDisposed(disposed);\n enumerator = _.getEnumerator();\n }\n catch (e) {\n }\n }, (yielder) => {\n try {\n throwIfDisposed(disposed);\n if (enumerator.moveNext())\n return yielder.yieldReturn(enumerator.current);\n }\n catch (e) {\n handler(e);\n }\n return false;\n }, () => {\n dispose_1.dispose(enumerator);\n });\n });\n }\n finallyAction(action) {\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(() => {\n var enumerator;\n return new EnumeratorBase_1.default(() => {\n throwIfDisposed(disposed);\n enumerator = _.getEnumerator();\n }, (yielder) => {\n throwIfDisposed(disposed);\n return (enumerator.moveNext())\n ? yielder.yieldReturn(enumerator.current)\n : false;\n }, () => {\n try {\n dispose_1.dispose(enumerator);\n }\n finally {\n action();\n }\n });\n });\n }\n buffer(size) {\n if (size < 1 || !isFinite(size))\n throw new Error(\"Invalid buffer size.\");\n Integer_1.default.assert(size, \"size\");\n var _ = this, len;\n return new Enumerable(() => {\n var enumerator;\n return new EnumeratorBase_1.default(() => {\n enumerator = _.getEnumerator();\n }, (yielder) => {\n var array = ArrayUtility.initialize(size);\n len = 0;\n while (len < size && enumerator.moveNext()) {\n array[len++] = enumerator.current;\n }\n array.length = len;\n return len && yielder.yieldReturn(array);\n }, () => {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, null, _._isEndless);\n }\n share() {\n var _ = this;\n _.throwIfDisposed();\n var sharedEnumerator;\n return new Enumerable(() => {\n return sharedEnumerator || (sharedEnumerator = _.getEnumerator());\n }, () => {\n dispose_1.dispose(sharedEnumerator);\n }, _._isEndless);\n }\n}\nexports.InfiniteEnumerable = InfiniteEnumerable;\nclass Enumerable extends InfiniteEnumerable {\n constructor(enumeratorFactory, finalizer, isEndless = null) {\n super(enumeratorFactory, finalizer);\n this._isEndless = isEndless;\n }\n static from(source) {\n var e = Enumerable.fromAny(source);\n if (!e)\n throw new UnsupportedEnumerableException_1.default();\n return e;\n }\n static fromAny(source, defaultEnumerable = null) {\n if (Types_1.default.isObject(source) || Types_1.default.isString(source)) {\n if (source instanceof Enumerable)\n return source;\n if (Types_1.default.isArrayLike(source))\n return new ArrayEnumerable(source);\n if (Enumerator_1.isEnumerable(source))\n return new Enumerable(() => source.getEnumerator(), null, source.isEndless);\n }\n return defaultEnumerable;\n }\n static fromOrEmpty(source) {\n return Enumerable.fromAny(source) || Enumerable.empty();\n }\n static toArray(source) {\n if (source instanceof Enumerable)\n return source.toArray();\n return Enumerator_1.toArray(source);\n }\n static choice(values) {\n var len = values && values.length;\n if (!len || !isFinite(len))\n throw new ArgumentOutOfRangeException_1.default('length', length);\n return new InfiniteEnumerable(() => new EnumeratorBase_1.default(null, (yielder) => yielder.yieldReturn(Integer_1.default.random.select(values)), true));\n }\n static chooseFrom(...args) {\n return Enumerable.choice(args);\n }\n static cycle(values) {\n var len = values && values.length;\n if (!len || !isFinite(len))\n throw new ArgumentOutOfRangeException_1.default('length', length);\n return new InfiniteEnumerable(() => {\n var index = 0;\n return new EnumeratorBase_1.default(() => {\n index = 0;\n }, (yielder) => {\n if (index >= values.length)\n index = 0;\n return yielder.yieldReturn(values[index++]);\n }, true);\n });\n }\n static cycleThrough(...args) {\n return Enumerable.cycle(args);\n }\n static empty() {\n return new FiniteEnumerable(getEmptyEnumerator);\n }\n static repeat(element, count = Infinity) {\n if (!(count > 0))\n return Enumerable.empty();\n return isFinite(count) && Integer_1.default.assert(count, \"count\")\n ? new FiniteEnumerable(() => {\n var c = count;\n var index = 0;\n return new EnumeratorBase_1.default(() => { index = 0; }, (yielder) => (index++ < c) && yielder.yieldReturn(element), null, false);\n })\n : new Enumerable(() => new EnumeratorBase_1.default(null, (yielder) => yielder.yieldReturn(element), true));\n }\n static repeatWithFinalize(initializer, finalizer) {\n return new InfiniteEnumerable(() => {\n var element;\n return new EnumeratorBase_1.default(() => {\n element = initializer();\n }, (yielder) => yielder.yieldReturn(element), () => {\n finalizer(element);\n }, true);\n });\n }\n static make(element) {\n return Enumerable.repeat(element, 1);\n }\n static range(start, count, step = 1) {\n if (!isFinite(start))\n throw new ArgumentOutOfRangeException_1.default(\"start\", start, \"Must be a finite number.\");\n if (!(count > 0))\n return Enumerable.empty();\n if (!step)\n throw new ArgumentOutOfRangeException_1.default(\"step\", step, \"Must be a valid value\");\n if (!isFinite(step))\n throw new ArgumentOutOfRangeException_1.default(\"step\", step, \"Must be a finite number.\");\n Integer_1.default.assert(count, \"count\");\n return new FiniteEnumerable(() => {\n var value;\n var c = count;\n var index = 0;\n return new EnumeratorBase_1.default(() => {\n index = 0;\n value = start;\n }, (yielder) => {\n var result = index++ < c\n && yielder.yieldReturn(value);\n if (result && index < count)\n value += step;\n return result;\n }, false);\n });\n }\n static rangeDown(start, count, step = 1) {\n step = Math.abs(step) * -1;\n return Enumerable.range(start, count, step);\n }\n static toInfinity(start = 0, step = 1) {\n if (!isFinite(start))\n throw new ArgumentOutOfRangeException_1.default(\"start\", start, \"Must be a finite number.\");\n if (!step)\n throw new ArgumentOutOfRangeException_1.default(\"step\", step, \"Must be a valid value\");\n if (!isFinite(step))\n throw new ArgumentOutOfRangeException_1.default(\"step\", step, \"Must be a finite number.\");\n return new InfiniteEnumerable(() => {\n var value;\n return new EnumeratorBase_1.default(() => {\n value = start;\n }, (yielder) => {\n var current = value;\n value += step;\n return yielder.yieldReturn(current);\n }, true);\n });\n }\n static toNegativeInfinity(start = 0, step = 1) {\n return Enumerable.toInfinity(start, -step);\n }\n static rangeTo(start, to, step = 1) {\n if (isNaN(to) || !isFinite(to))\n throw new ArgumentOutOfRangeException_1.default(\"to\", to, \"Must be a finite number.\");\n if (step && !isFinite(step))\n throw new ArgumentOutOfRangeException_1.default(\"step\", step, \"Must be a finite non-zero number.\");\n step = Math.abs(step);\n return new FiniteEnumerable(() => {\n var value;\n return new EnumeratorBase_1.default(() => { value = start; }, start < to\n ?\n (yielder) => {\n var result = value <= to && yielder.yieldReturn(value);\n if (result)\n value += step;\n return result;\n }\n :\n (yielder) => {\n var result = value >= to && yielder.yieldReturn(value);\n if (result)\n value -= step;\n return result;\n }, false);\n });\n }\n static matches(input, pattern, flags = \"\") {\n if (input === null || input === VOID0)\n throw new ArgumentNullException_1.default(\"input\");\n var type = typeof input;\n if (type != Types_1.default.STRING)\n throw new Error(\"Cannot exec RegExp matches of type '\" + type + \"'.\");\n if (pattern instanceof RegExp) {\n flags += (pattern.ignoreCase) ? \"i\" : \"\";\n flags += (pattern.multiline) ? \"m\" : \"\";\n pattern = pattern.source;\n }\n if (flags.indexOf(\"g\") === -1)\n flags += \"g\";\n return new FiniteEnumerable(() => {\n var regex;\n return new EnumeratorBase_1.default(() => {\n regex = new RegExp(pattern, flags);\n }, (yielder) => {\n var match = regex.exec(input);\n return (match !== null) ? yielder.yieldReturn(match) : false;\n });\n });\n }\n static generate(factory, count = Infinity) {\n if (isNaN(count) || count <= 0)\n return Enumerable.empty();\n return isFinite(count) && Integer_1.default.assert(count, \"count\")\n ?\n new FiniteEnumerable(() => {\n var c = count;\n var index = 0;\n return new EnumeratorBase_1.default(() => {\n index = 0;\n }, (yielder) => {\n var current = index++;\n return current < c && yielder.yieldReturn(factory(current));\n }, false);\n })\n :\n new InfiniteEnumerable(() => {\n var index = 0;\n return new EnumeratorBase_1.default(() => {\n index = 0;\n }, (yielder) => yielder.yieldReturn(factory(index++)), true);\n });\n }\n static unfold(seed, valueFactory, skipSeed = false) {\n return new InfiniteEnumerable(() => {\n var index = 0;\n var value;\n var isFirst;\n return new EnumeratorBase_1.default(() => {\n index = 0;\n value = seed;\n isFirst = !skipSeed;\n }, (yielder) => {\n var i = index++;\n if (isFirst)\n isFirst = false;\n else\n value = valueFactory(value, i);\n return yielder.yieldReturn(value);\n }, true);\n });\n }\n static forEach(enumerable, action) {\n Enumerator_1.forEach(enumerable, action);\n }\n static map(enumerable, selector) {\n return Enumerator_1.map(enumerable, selector);\n }\n static max(values) {\n return values\n .takeUntil(v => v == +Infinity, true)\n .aggregate(Functions.Greater);\n }\n static min(values) {\n return values\n .takeUntil(v => v == -Infinity, true)\n .aggregate(Functions.Lesser);\n }\n static weave(enumerables) {\n if (!enumerables)\n throw new ArgumentNullException_1.default('enumerables');\n return new Enumerable(() => {\n var queue;\n var mainEnumerator;\n var index;\n return new EnumeratorBase_1.default(() => {\n index = 0;\n queue = new Queue_1.default();\n mainEnumerator = Enumerator_1.from(enumerables);\n }, (yielder) => {\n let e;\n if (mainEnumerator) {\n while (!e && mainEnumerator.moveNext()) {\n let c = mainEnumerator.current;\n e = nextEnumerator(queue, c && Enumerator_1.from(c));\n }\n if (!e)\n mainEnumerator = null;\n }\n while (!e && queue.count) {\n e = nextEnumerator(queue, queue.dequeue());\n }\n return e\n ? yielder.yieldReturn(e.current)\n : yielder.yieldBreak();\n }, () => {\n dispose_1.dispose.these(queue.dump());\n dispose_1.dispose(mainEnumerator, queue);\n mainEnumerator = null;\n queue = null;\n });\n });\n }\n doAction(action, initializer, isEndless = this.isEndless) {\n return super.doAction(action, initializer, isEndless);\n }\n skip(count) {\n return super.skip(count);\n }\n skipWhile(predicate) {\n this.throwIfDisposed();\n return this.doAction((element, index) => predicate(element, index)\n ? 2\n : 1);\n }\n takeWhile(predicate) {\n this.throwIfDisposed();\n if (!predicate)\n throw new ArgumentNullException_1.default('predicate');\n return this.doAction((element, index) => predicate(element, index)\n ? 1\n : 0, null, null);\n }\n takeUntil(predicate, includeUntilValue) {\n this.throwIfDisposed();\n if (!predicate)\n throw new ArgumentNullException_1.default('predicate');\n if (!includeUntilValue)\n return this.doAction((element, index) => predicate(element, index)\n ? 0\n : 1, null, null);\n var found = false;\n return this.doAction((element, index) => {\n if (found)\n return 0;\n found = predicate(element, index);\n return 1;\n }, () => {\n found = false;\n }, null);\n }\n forEach(action) {\n var _ = this;\n _.throwIfDisposed();\n Enumerator_1.throwIfEndless(_.isEndless);\n var index = 0;\n dispose_1.using(_.getEnumerator(), e => {\n Enumerator_1.throwIfEndless(e.isEndless);\n while (_.throwIfDisposed() && e.moveNext()) {\n if (action(e.current, index++) === false)\n break;\n }\n });\n }\n toArray(predicate) {\n return predicate\n ? this.where(predicate).toArray()\n : this.copyTo([]);\n }\n copyTo(target, index = 0) {\n this.throwIfDisposed();\n if (!target)\n throw new ArgumentNullException_1.default(\"target\");\n Integer_1.default.assertZeroOrGreater(index);\n Enumerator_1.forEach(this, (x, i) => {\n target[i + index] = x;\n });\n return target;\n }\n toLookup(keySelector, elementSelector = Functions.Identity, compareSelector = Functions.Identity) {\n var dict = new Dictionary_1.default(compareSelector);\n this.forEach(x => {\n var key = keySelector(x);\n var element = elementSelector(x);\n var array = dict.getValue(key);\n if (array !== VOID0)\n array.push(element);\n else\n dict.addByKeyValue(key, [element]);\n });\n return new Lookup(dict);\n }\n toMap(keySelector, elementSelector) {\n var obj = {};\n this.forEach((x, i) => {\n obj[keySelector(x, i)] = elementSelector(x, i);\n });\n return obj;\n }\n toDictionary(keySelector, elementSelector, compareSelector = Functions.Identity) {\n var dict = new Dictionary_1.default(compareSelector);\n this.forEach((x, i) => dict.addByKeyValue(keySelector(x, i), elementSelector(x, i)));\n return dict;\n }\n toJoinedString(separator = \"\", selector = Functions.Identity) {\n return this.select(selector).toArray().join(separator);\n }\n takeExceptLast(count = 1) {\n var _ = this;\n if (!(count > 0))\n return _;\n if (!isFinite(count))\n return Enumerable.empty();\n Integer_1.default.assert(count, \"count\");\n var c = count;\n return new Enumerable(() => {\n var enumerator;\n var q;\n return new EnumeratorBase_1.default(() => {\n enumerator = _.getEnumerator();\n q = new Queue_1.default();\n }, (yielder) => {\n while (enumerator.moveNext()) {\n q.enqueue(enumerator.current);\n if (q.count > c)\n return yielder.yieldReturn(q.dequeue());\n }\n return false;\n }, () => {\n dispose_1.dispose(enumerator, q);\n });\n });\n }\n skipToLast(count) {\n if (!(count > 0))\n return Enumerable.empty();\n var _ = this;\n if (!isFinite(count))\n return _;\n Integer_1.default.assert(count, \"count\");\n return _.reverse()\n .take(count)\n .reverse();\n }\n where(predicate) {\n return super.where(predicate);\n }\n select(selector) {\n return super.select(selector);\n }\n selectMany(collectionSelector, resultSelector) {\n return this._selectMany(collectionSelector, resultSelector);\n }\n choose(selector = Functions.Identity) {\n return this._choose(selector);\n }\n reverse() {\n var _ = this, disposed = !_.throwIfDisposed();\n Enumerator_1.throwIfEndless(_._isEndless);\n return new Enumerable(() => {\n var buffer;\n var index = 0;\n return new EnumeratorBase_1.default(() => {\n throwIfDisposed(disposed);\n buffer = _.toArray();\n index = buffer.length;\n }, (yielder) => index && yielder.yieldReturn(buffer[--index]), () => {\n buffer.length = 0;\n });\n }, () => {\n disposed = true;\n });\n }\n shuffle() {\n var _ = this, disposed = !_.throwIfDisposed();\n Enumerator_1.throwIfEndless(_._isEndless);\n return new Enumerable(() => {\n var buffer;\n var capacity;\n var len;\n return new EnumeratorBase_1.default(() => {\n throwIfDisposed(disposed);\n buffer = _.toArray();\n capacity = len = buffer.length;\n }, (yielder) => {\n if (!len)\n return yielder.yieldBreak();\n var selectedIndex = Integer_1.default.random(len);\n var selectedValue = buffer[selectedIndex];\n buffer[selectedIndex] = buffer[--len];\n buffer[len] = null;\n if (len % 32 == 0)\n buffer.length = len;\n return yielder.yieldReturn(selectedValue);\n }, () => {\n buffer.length = 0;\n });\n }, () => {\n disposed = true;\n });\n }\n count(predicate) {\n var count = 0;\n this.forEach(predicate\n ?\n (x, i) => {\n if (predicate(x, i))\n ++count;\n }\n :\n () => {\n ++count;\n });\n return count;\n }\n all(predicate) {\n if (!predicate)\n throw new ArgumentNullException_1.default(\"predicate\");\n var result = true;\n this.forEach((x, i) => {\n if (!predicate(x, i)) {\n result = false;\n return false;\n }\n });\n return result;\n }\n every(predicate) {\n return this.all(predicate);\n }\n any(predicate) {\n if (!predicate)\n return super.any();\n var result = false;\n this.forEach((x, i) => {\n result = predicate(x, i);\n return !result;\n });\n return result;\n }\n some(predicate) {\n return this.any(predicate);\n }\n contains(value, compareSelector) {\n return compareSelector\n ? this.any(v => compareSelector(v) === compareSelector(value))\n : this.any(v => v === value);\n }\n indexOf(value, compareSelector) {\n var found = -1;\n this.forEach(compareSelector\n ?\n (element, i) => {\n if (Values.areEqual(compareSelector(element, i), compareSelector(value, i), true)) {\n found = i;\n return false;\n }\n }\n :\n (element, i) => {\n if (Values.areEqual(element, value, true)) {\n found = i;\n return false;\n }\n });\n return found;\n }\n lastIndexOf(value, compareSelector) {\n var result = -1;\n this.forEach(compareSelector\n ?\n (element, i) => {\n if (Values.areEqual(compareSelector(element, i), compareSelector(value, i), true))\n result\n = i;\n }\n :\n (element, i) => {\n if (Values.areEqual(element, value, true))\n result = i;\n });\n return result;\n }\n merge(enumerables) {\n return super.merge(enumerables);\n }\n concat(...enumerables) {\n return this.merge(enumerables);\n }\n intersect(second, compareSelector) {\n var _ = this;\n return new Enumerable(() => {\n var enumerator;\n var keys;\n var outs;\n return new EnumeratorBase_1.default(() => {\n enumerator = _.getEnumerator();\n keys = new Dictionary_1.default(compareSelector);\n outs = new Dictionary_1.default(compareSelector);\n Enumerator_1.forEach(second, key => {\n keys.addByKeyValue(key, true);\n });\n }, (yielder) => {\n while (enumerator.moveNext()) {\n var current = enumerator.current;\n if (!outs.containsKey(current) && keys.containsKey(current)) {\n outs.addByKeyValue(current, true);\n return yielder.yieldReturn(current);\n }\n }\n return yielder.yieldBreak();\n }, () => {\n dispose_1.dispose(enumerator, keys, outs);\n }, _._isEndless);\n }, null, _._isEndless);\n }\n sequenceEqual(second, equalityComparer = Values.areEqual) {\n return dispose_1.using(this.getEnumerator(), e1 => dispose_1.using(Enumerator_1.from(second), e2 => {\n Enumerator_1.throwIfEndless(e1.isEndless && e2.isEndless);\n while (e1.moveNext()) {\n if (!e2.moveNext() || !equalityComparer(e1.current, e2.current))\n return false;\n }\n return !e2.moveNext();\n }));\n }\n ofType(type) {\n return super.ofType(type);\n }\n except(second, compareSelector) {\n return super.except(second, compareSelector);\n }\n distinct(compareSelector) {\n return super.distinct(compareSelector);\n }\n distinctUntilChanged(compareSelector = Functions.Identity) {\n return super.distinctUntilChanged(compareSelector);\n }\n orderBy(keySelector = Functions.Identity) {\n return new OrderedEnumerable(this, keySelector, 1);\n }\n orderUsing(comparison) {\n return new OrderedEnumerable(this, null, 1, null, comparison);\n }\n orderUsingReversed(comparison) {\n return new OrderedEnumerable(this, null, -1, null, comparison);\n }\n orderByDescending(keySelector = Functions.Identity) {\n return new OrderedEnumerable(this, keySelector, -1);\n }\n buffer(size) {\n return super.buffer(size);\n }\n groupBy(keySelector, elementSelector, compareSelector) {\n if (!elementSelector)\n elementSelector = Functions.Identity;\n return new Enumerable(() => this.toLookup(keySelector, elementSelector, compareSelector)\n .getEnumerator());\n }\n partitionBy(keySelector, elementSelector, resultSelector = (key, elements) => new Grouping(key, elements), compareSelector = Functions.Identity) {\n var _ = this;\n if (!elementSelector)\n elementSelector = Functions.Identity;\n return new Enumerable(() => {\n var enumerator;\n var key;\n var compareKey;\n var group;\n var len;\n return new EnumeratorBase_1.default(() => {\n enumerator = _.getEnumerator();\n if (enumerator.moveNext()) {\n key = keySelector(enumerator.current);\n compareKey = compareSelector(key);\n group = [elementSelector(enumerator.current)];\n len = 1;\n }\n else\n group = null;\n }, (yielder) => {\n if (!group)\n return yielder.yieldBreak();\n var hasNext, c;\n while ((hasNext = enumerator.moveNext())) {\n c = enumerator.current;\n if (compareKey === compareSelector(keySelector(c)))\n group[len++] = elementSelector(c);\n else\n break;\n }\n var result = resultSelector(key, group);\n if (hasNext) {\n c = enumerator.current;\n key = keySelector(c);\n compareKey = compareSelector(key);\n group = [elementSelector(c)];\n len = 1;\n }\n else {\n group = null;\n }\n return yielder.yieldReturn(result);\n }, () => {\n dispose_1.dispose(enumerator);\n group = null;\n });\n });\n }\n aggregate(func, seed) {\n return this.scan(func, seed).lastOrDefault();\n }\n average(selector = Types_1.default.numberOrNaN) {\n var count = 0;\n var sum = this.sum((e, i) => {\n count++;\n return selector(e, i);\n });\n return (isNaN(sum) || !count)\n ? NaN\n : (sum / count);\n }\n max() {\n return this.aggregate(Functions.Greater);\n }\n min() {\n return this.aggregate(Functions.Lesser);\n }\n maxBy(keySelector = Functions.Identity) {\n return this.aggregate((a, b) => (keySelector(a) > keySelector(b)) ? a : b);\n }\n minBy(keySelector = Functions.Identity) {\n return this.aggregate((a, b) => (keySelector(a) < keySelector(b)) ? a : b);\n }\n sum(selector = Types_1.default.numberOrNaN) {\n var sum = 0;\n var sumInfinite = 0;\n this.forEach(x => {\n var value = selector(x);\n if (isNaN(value)) {\n sum = NaN;\n return false;\n }\n if (isFinite(value))\n sum += value;\n else\n sumInfinite +=\n value > 0 ?\n (+1) :\n (-1);\n });\n return isNaN(sum) ? NaN : (sumInfinite ? (sumInfinite * Infinity) : sum);\n }\n product(selector = Types_1.default.numberOrNaN) {\n var result = 1, exists = false;\n this.forEach((x, i) => {\n exists = true;\n var value = selector(x, i);\n if (isNaN(value)) {\n result = NaN;\n return false;\n }\n if (value == 0) {\n result = 0;\n return false;\n }\n result *= value;\n });\n return (exists && isNaN(result)) ? NaN : result;\n }\n quotient(selector = Types_1.default.numberOrNaN) {\n var count = 0;\n var result = NaN;\n this.forEach((x, i) => {\n var value = selector(x, i);\n count++;\n if (count === 1) {\n result = value;\n }\n else {\n if (isNaN(value) || value === 0 || !isFinite(value)) {\n result = NaN;\n return false;\n }\n result /= value;\n }\n });\n if (count === 1)\n result = NaN;\n return result;\n }\n last() {\n var _ = this;\n _.throwIfDisposed();\n var value = undefined;\n var found = false;\n _.forEach(x => {\n found = true;\n value = x;\n });\n if (!found)\n throw new Error(\"last:No element satisfies the condition.\");\n return value;\n }\n lastOrDefault(defaultValue = null) {\n var _ = this;\n _.throwIfDisposed();\n var value = undefined;\n var found = false;\n _.forEach(x => {\n found = true;\n value = x;\n });\n return (!found) ? defaultValue : value;\n }\n share() {\n return super.share();\n }\n catchError(handler) {\n return super.catchError(handler);\n }\n finallyAction(action) {\n return super.finallyAction(action);\n }\n memoize() {\n var _ = this, disposed = !_.throwIfDisposed();\n var cache;\n var enumerator;\n return new Enumerable(() => {\n var index = 0;\n return new EnumeratorBase_1.default(() => {\n throwIfDisposed(disposed);\n if (!enumerator)\n enumerator = _.getEnumerator();\n if (!cache)\n cache = [];\n index = 0;\n }, (yielder) => {\n throwIfDisposed(disposed);\n var i = index++;\n if (i >= cache.length) {\n return (enumerator.moveNext())\n ? yielder.yieldReturn(cache[i] = enumerator.current)\n : false;\n }\n return yielder.yieldReturn(cache[i]);\n });\n }, () => {\n disposed = true;\n if (cache)\n cache.length = 0;\n cache = null;\n dispose_1.dispose(enumerator);\n enumerator = null;\n });\n }\n}\nexports.Enumerable = Enumerable;\nclass FiniteEnumerable extends Enumerable {\n constructor(enumeratorFactory, finalizer) {\n super(enumeratorFactory, finalizer, false);\n }\n}\nexports.FiniteEnumerable = FiniteEnumerable;\nclass ArrayEnumerable extends FiniteEnumerable {\n constructor(source) {\n super(() => {\n _.throwIfDisposed();\n return new ArrayEnumerator_1.default(() => {\n _.throwIfDisposed(\"The underlying ArrayEnumerable was disposed.\", \"ArrayEnumerator\");\n return _._source;\n });\n });\n var _ = this;\n _._disposableObjectName = \"ArrayEnumerable\";\n _._source = source;\n }\n _onDispose() {\n super._onDispose();\n this._source = null;\n }\n get source() {\n return this._source;\n }\n toArray() {\n var _ = this;\n _.throwIfDisposed();\n return Enumerator_1.toArray(_._source);\n }\n asEnumerable() {\n return new ArrayEnumerable(this._source);\n }\n forEach(action) {\n var _ = this;\n _.throwIfDisposed();\n Enumerator_1.forEach(_._source, action);\n }\n any(predicate) {\n var _ = this;\n _.throwIfDisposed();\n var source = _._source, len = source.length;\n return len && (!predicate || super.any(predicate));\n }\n count(predicate) {\n var _ = this;\n _.throwIfDisposed();\n var source = _._source, len = source.length;\n return len && (predicate ? super.count(predicate) : len);\n }\n elementAtOrDefault(index, defaultValue = null) {\n var _ = this;\n _.throwIfDisposed();\n Integer_1.default.assertZeroOrGreater(index, 'index');\n var source = _._source;\n return index < source.length\n ? source[index]\n : defaultValue;\n }\n last() {\n var _ = this;\n _.throwIfDisposed();\n var source = _._source, len = source.length;\n return (len)\n ? source[len - 1]\n : super.last();\n }\n lastOrDefault(defaultValue = null) {\n var _ = this;\n _.throwIfDisposed();\n var source = _._source, len = source.length;\n return len\n ? source[len - 1]\n : defaultValue;\n }\n skip(count) {\n var _ = this;\n if (!(count > 0))\n return _;\n return new Enumerable(() => new ArrayEnumerator_1.default(() => _._source, count));\n }\n takeExceptLast(count = 1) {\n var _ = this;\n return _.take(_._source.length - count);\n }\n skipToLast(count) {\n if (!(count > 0))\n return Enumerable.empty();\n var _ = this;\n if (!isFinite(count))\n return _;\n var len = _._source\n ? _._source.length\n : 0;\n return _.skip(len - count);\n }\n reverse() {\n var _ = this;\n return new Enumerable(() => new ArrayEnumerator_1.default(() => _._source, _._source\n ? (_._source.length - 1)\n : 0, -1));\n }\n memoize() {\n return this.asEnumerable();\n }\n sequenceEqual(second, equalityComparer = Values.areEqual) {\n if (Types_1.default.isArrayLike(second))\n return Arrays.areEqual(this.source, second, true, equalityComparer);\n if (second instanceof ArrayEnumerable)\n return second.sequenceEqual(this.source, equalityComparer);\n return super.sequenceEqual(second, equalityComparer);\n }\n toJoinedString(separator = \"\", selector = Functions.Identity) {\n var s = this._source;\n return !selector && Array.isArray(s)\n ? s.join(separator)\n : super.toJoinedString(separator, selector);\n }\n}\nclass Grouping extends ArrayEnumerable {\n constructor(_groupKey, elements) {\n super(elements);\n this._groupKey = _groupKey;\n }\n get key() {\n return this._groupKey;\n }\n}\nclass Lookup {\n constructor(_dictionary) {\n this._dictionary = _dictionary;\n }\n get count() {\n return this._dictionary.count;\n }\n get(key) {\n return this._dictionary.getValue(key);\n }\n contains(key) {\n return this._dictionary.containsKey(key);\n }\n getEnumerator() {\n var _ = this;\n var enumerator;\n return new EnumeratorBase_1.default(() => {\n enumerator = _._dictionary.getEnumerator();\n }, (yielder) => {\n if (!enumerator.moveNext())\n return false;\n var current = enumerator.current;\n return yielder.yieldReturn(new Grouping(current.key, current.value));\n }, () => {\n dispose_1.dispose(enumerator);\n });\n }\n}\nclass OrderedEnumerable extends FiniteEnumerable {\n constructor(source, keySelector, order, parent, comparer = Values.compare) {\n super(null);\n this.source = source;\n this.keySelector = keySelector;\n this.order = order;\n this.parent = parent;\n this.comparer = comparer;\n Enumerator_1.throwIfEndless(source && source.isEndless);\n }\n createOrderedEnumerable(keySelector, order) {\n return new OrderedEnumerable(this.source, keySelector, order, this);\n }\n thenBy(keySelector) {\n return this.createOrderedEnumerable(keySelector, 1);\n }\n thenUsing(comparison) {\n return new OrderedEnumerable(this.source, null, 1, this, comparison);\n }\n thenByDescending(keySelector) {\n return this.createOrderedEnumerable(keySelector, -1);\n }\n thenUsingReversed(comparison) {\n return new OrderedEnumerable(this.source, null, -1, this, comparison);\n }\n getEnumerator() {\n var _ = this;\n var buffer;\n var indexes;\n var index = 0;\n return new EnumeratorBase_1.default(() => {\n index = 0;\n buffer = Enumerable.toArray(_.source);\n indexes = createSortContext(_).generateSortedIndexes(buffer);\n }, (yielder) => {\n return (index < indexes.length)\n ? yielder.yieldReturn(buffer[indexes[index++]])\n : false;\n }, () => {\n if (buffer)\n buffer.length = 0;\n buffer = null;\n if (indexes)\n indexes.length = 0;\n indexes = null;\n }, false);\n }\n _onDispose() {\n super._onDispose();\n this.source = null;\n this.keySelector = null;\n this.order = null;\n this.parent = null;\n }\n}\nfunction nextEnumerator(queue, e) {\n if (e) {\n if (e.moveNext()) {\n queue.enqueue(e);\n }\n else {\n dispose_1.dispose(e);\n e = null;\n }\n }\n return e;\n}\nfunction createSortContext(orderedEnumerable, currentContext = null) {\n var context = new KeySortedContext_1.default(currentContext, orderedEnumerable.keySelector, orderedEnumerable.order, orderedEnumerable.comparer);\n if (orderedEnumerable.parent)\n return createSortContext(orderedEnumerable.parent, context);\n return context;\n}\nfunction throwIfDisposed(disposed) {\n if (disposed)\n throw new ObjectDisposedException_1.default(\"Enumerable\");\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Enumerable;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Original: http://linqjs.codeplex.com/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n///\r\n///\r\n///\r\n///\r\n///\r\n///\r\n\r\nimport * as Values from \"../System/Compare\";\r\nimport * as Arrays from \"../System/Collections/Array/Compare\";\r\nimport * as ArrayUtility from \"../System/Collections/Array/Utility\";\r\nimport {\r\n\tempty as EmptyEnumerator,\r\n\tfrom as enumeratorFrom,\r\n\tforEach,\r\n\ttoArray,\r\n\tmap,\r\n\tisEnumerable,\r\n\tthrowIfEndless\r\n} from \"../System/Collections/Enumeration/Enumerator\";\r\nimport Type from \"../System/Types\";\r\nimport Integer from \"../System/Integer\";\r\nimport BaseFunctions from \"../System/Functions\";\r\nimport ArrayEnumerator from \"../System/Collections/Enumeration/ArrayEnumerator\";\r\nimport EnumeratorBase from \"../System/Collections/Enumeration/EnumeratorBase\";\r\nimport Dictionary from \"../System/Collections/Dictionaries/Dictionary\";\r\nimport Queue from \"../System/Collections/Queue\";\r\nimport {dispose, using} from \"../System/Disposable/dispose\";\r\nimport DisposableBase from \"../System/Disposable/DisposableBase\";\r\nimport UnsupportedEnumerableException from \"../System/Collections/Enumeration/UnsupportedEnumerableException\";\r\nimport ObjectDisposedException from \"../System/Disposable/ObjectDisposedException\";\r\nimport KeySortedContext from \"../System/Collections/Sorting/KeySortedContext\";\r\nimport ArgumentNullException from \"../System/Exceptions/ArgumentNullException\";\r\nimport ArgumentOutOfRangeException from \"../System/Exceptions/ArgumentOutOfRangeException\";\r\n\r\n// #region Local Constants.\r\n\r\nconst INVALID_DEFAULT:any = {}; // create a private unique instance for referencing.\r\nconst VOID0:any = void 0;\r\nconst BREAK:(e:any)=>EnumerableAction = element => EnumerableAction.Break;\r\n\r\n// Leave internal to avoid accidental overwriting.\r\nclass LinqFunctions extends BaseFunctions\r\n{\r\n\tGreater(a:T, b:T)\r\n\t{\r\n\t\treturn a>b ? a : b;\r\n\t}\r\n\r\n\tLesser(a:T, b:T)\r\n\t{\r\n\t\treturn a\r\n{\r\n\treturn EmptyEnumerator;\r\n}\r\n\r\n// #endregion\r\n\r\n/**\r\n * Defined values for doAction.\r\n */\r\nexport const enum EnumerableAction\r\n{\r\n\tBreak = 0,\r\n\tReturn = 1,\r\n\tSkip = 2\r\n}\r\n\r\n/*\r\n * NOTE: About InfiniteEnumerable and Enumerable.\r\n * There may seem like there's extra overrides here and they may seem unnecessary.\r\n * But after closer inspection you'll see the type chain is retained and\r\n * infinite enumerables are prevented from having features that finite ones have.\r\n *\r\n * I'm not sure if it's the best option to just use overrides, but it honors the typing properly.\r\n */\r\n\r\nexport class InfiniteEnumerable\r\nextends DisposableBase implements IEnumerable\r\n{\r\n\tconstructor(\r\n\t\tprotected _enumeratorFactory:() => IEnumerator,\r\n\t\tfinalizer?:() => void)\r\n\t{\r\n\t\tsuper(finalizer);\r\n\t\tthis._isEndless = true;\r\n\t}\r\n\r\n\tprotected _isEndless:boolean;\r\n\tget isEndless():boolean\r\n\t{\r\n\t\treturn this._isEndless;\r\n\t}\r\n\r\n\t// #region IEnumerable Implementation...\r\n\tgetEnumerator():IEnumerator\r\n\t{\r\n\r\n\t\tthis.throwIfDisposed();\r\n\r\n\t\treturn this._enumeratorFactory();\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\t// #region IDisposable override...\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose(); // Just in case.\r\n\t\tthis._enumeratorFactory = null;\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\t// Return a default (unfiltered) enumerable.\r\n\tasEnumerable():InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\treturn new InfiniteEnumerable(() => _.getEnumerator());\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Similar to forEach, but executes an action for each time a value is enumerated.\r\n\t * If the action explicitly returns false or 0 (EnumerationAction.Break), the enumeration will complete.\r\n\t * If it returns a 2 (EnumerationAction.Skip) it will move on to the next item.\r\n\t * This also automatically handles disposing the enumerator.\r\n\t */\r\n\tdoAction(\r\n\t\taction:Action | Predicate | Selector | Selector,\r\n\t\tinitializer?:()=>void,\r\n\t\tisEndless:boolean = this.isEndless):InfiniteEnumerable\r\n\t{\r\n\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\tif(initializer) initializer();\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\t// May need a way to propagate isEndless\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar actionResult = action(enumerator.current, index++);\r\n\r\n\t\t\t\t\t\t\tif(actionResult===false || actionResult===EnumerableAction.Break)\r\n\t\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\r\n\t\t\t\t\t\t\tif(actionResult!==EnumerableAction.Skip) // || !== 2\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(enumerator.current);\r\n\r\n\t\t\t\t\t\t\t// If actionResult===2, then a signal for skip is received.\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\r\n\t\t\t},\r\n\t\t\t// Using a finalizer value reduces the chance of a circular reference\r\n\t\t\t// since we could simply reference the enumeration and check e.wasDisposed.\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t},\r\n\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tforce():void\r\n\t{\r\n\t\tthis.throwIfDisposed();\r\n\t\tthis.doAction(BREAK)\r\n\t\t\t.getEnumerator()\r\n\t\t\t.moveNext();\r\n\r\n\t}\r\n\r\n\t// #region Indexing/Paging methods.\r\n\tskip(count:number):InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tif(!isFinite(count)) // +Infinity equals skip all so return empty.\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\tInteger.assert(count, \"count\");\r\n\r\n\t\treturn this.doAction(\r\n\t\t\t(element:T, index?:number) =>\r\n\t\t\t\tindex\r\n\t{\r\n\t\tif(!(count>0)) // Out of bounds? Empty.\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tif(!isFinite(count))\r\n\t\t\tthrow new ArgumentOutOfRangeException('count', count, 'Must be finite.');\r\n\r\n\t\tInteger.assert(count, \"count\");\r\n\r\n\t\t// Once action returns false, the enumeration will stop.\r\n\t\treturn >_.doAction((element:T, index?:number) => index\r\n\t\t\t{\r\n\t\t\t\tvar i = 0;\r\n\t\t\t\twhile(e.moveNext())\r\n\t\t\t\t{\r\n\t\t\t\t\tif(i==n) return e.current;\r\n\t\t\t\t\ti++;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn defaultValue;\r\n\t\t\t});\r\n\t}\r\n\r\n\t/* Note: Unlike previous implementations, you could pass a predicate into these methods.\r\n\t * But since under the hood it ends up calling .where(predicate) anyway,\r\n\t * it may be better to remove this to allow for a cleaner signature/override.\r\n\t * JavaScript/TypeScript does not easily allow for a strict method interface like C#.\r\n\t * Having to write extra override logic is error prone and confusing to the consumer.\r\n\t * Removing the predicate here may also cause the consumer of this method to think more about how they structure their query.\r\n\t * The end all difference is that the user must declare .where(predicate) before .first(), .single(), or .last().\r\n\t * */\r\n\r\n\tfirst():T\r\n\t{\r\n\t\tvar v = this.firstOrDefault(INVALID_DEFAULT);\r\n\t\tif(v===INVALID_DEFAULT) throw new Error(\"first:The sequence is empty.\");\r\n\t\treturn v;\r\n\t}\r\n\r\n\tfirstOrDefault(defaultValue:T = null):T\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\treturn using(\r\n\t\t\tthis.getEnumerator(),\r\n\t\t\te=> e.moveNext() ? e.current : defaultValue\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tsingle():T\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\treturn using(\r\n\t\t\tthis.getEnumerator(),\r\n\t\t\te=>\r\n\t\t\t{\r\n\t\t\t\tif(e.moveNext())\r\n\t\t\t\t{\r\n\t\t\t\t\tvar value = e.current;\r\n\t\t\t\t\tif(!e.moveNext()) return value;\r\n\t\t\t\t\tthrow new Error(\"single:sequence contains more than one element.\");\r\n\t\t\t\t}\r\n\t\t\t\tthrow new Error(\"single:The sequence is empty.\");\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tsingleOrDefault(defaultValue:T = null):T\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\treturn using(\r\n\t\t\tthis.getEnumerator(),\r\n\t\t\te=>\r\n\t\t\t{\r\n\t\t\t\tif(e.moveNext())\r\n\t\t\t\t{\r\n\t\t\t\t\tvar value = e.current;\r\n\t\t\t\t\tif(!e.moveNext()) return value;\r\n\t\t\t\t}\r\n\t\t\t\treturn defaultValue;\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tany():boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\treturn using(\r\n\t\t\tthis.getEnumerator(),\r\n\t\t\te=> e.moveNext()\r\n\t\t);\r\n\t}\r\n\r\n\tisEmpty():boolean\r\n\t{\r\n\t\treturn !this.any();\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\r\n\t// #region Projection and Filtering Methods\r\n\r\n\ttraverseBreadthFirst(\r\n\t\tchildrenSelector:(element:T) => IEnumerableOrArray):Enumerable;\r\n\r\n\ttraverseBreadthFirst(\r\n\t\tchildrenSelector:(element:T|TNode) => IEnumerableOrArray):Enumerable;\r\n\r\n\ttraverseBreadthFirst(\r\n\t\tchildrenSelector:(element:T) => IEnumerableOrArray,\r\n\t\tresultSelector?:(element:T, nestLevel?:number) => TResult):Enumerable;\r\n\r\n\ttraverseBreadthFirst(\r\n\t\tchildrenSelector:(element:T|TNode) => IEnumerableOrArray,\r\n\t\tresultSelector?:(element:TNode, nestLevel?:number) => TResult):Enumerable;\r\n\r\n\ttraverseBreadthFirst(\r\n\t\tchildrenSelector:(element:T|TNode) => IEnumerableOrArray,\r\n\t\tresultSelector:(\r\n\t\t\telement:TNode,\r\n\t\t\tnestLevel?:number) => any = Functions.Identity):Enumerable\r\n\t{\r\n\t\tvar _ = this, isEndless = _._isEndless || null; // Is endless is not affirmative if false.\r\n\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar nestLevel:number = 0;\r\n\t\t\t\tvar buffer:any[], len:number;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tnestLevel = 0;\r\n\t\t\t\t\t\tbuffer = [];\r\n\t\t\t\t\t\tlen = 0;\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\twhile(true)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tif(enumerator.moveNext())\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tbuffer[len++] = enumerator.current;\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(resultSelector(enumerator.current, nestLevel));\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(!len)\r\n\t\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\r\n\t\t\t\t\t\t\tvar next = Enumerable\r\n\t\t\t\t\t\t\t\t.from(buffer)\r\n\t\t\t\t\t\t\t\t.selectMany(childrenSelector);\r\n\r\n\t\t\t\t\t\t\tif(!next.any())\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tnestLevel++;\r\n\t\t\t\t\t\t\t\tbuffer = [];\r\n\t\t\t\t\t\t\t\tlen = 0;\r\n\t\t\t\t\t\t\t\tenumerator.dispose();\r\n\t\t\t\t\t\t\t\tenumerator = next.getEnumerator();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t\tbuffer.length = 0;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n\ttraverseDepthFirst(\r\n\t\tchildrenSelector:(element:T) => IEnumerableOrArray):Enumerable;\r\n\r\n\ttraverseDepthFirst(\r\n\t\tchildrenSelector:(element:T|TNode) => IEnumerableOrArray):Enumerable;\r\n\r\n\ttraverseDepthFirst(\r\n\t\tchildrenSelector:(element:T) => IEnumerableOrArray,\r\n\t\tresultSelector?:(element:T, nestLevel?:number) => TResult):Enumerable;\r\n\r\n\ttraverseDepthFirst(\r\n\t\tchildrenSelector:(element:T|TNode) => IEnumerableOrArray,\r\n\t\tresultSelector?:(element:TNode, nestLevel?:number) => TResult):Enumerable;\r\n\r\n\ttraverseDepthFirst(\r\n\t\tchildrenSelector:(element:T|TNode) => IEnumerableOrArray,\r\n\t\tresultSelector:(\r\n\t\t\telement:TNode,\r\n\t\t\tnestLevel?:number) => any = Functions.Identity):Enumerable\r\n\t{\r\n\t\tvar _ = this, isEndless = _._isEndless || null; // Is endless is not affirmative if false.\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\t// Dev Note: May want to consider using an actual stack and not an array.\r\n\t\t\t\tvar enumeratorStack:IEnumerator[] = [];\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar len:number; // Avoid using push/pop since they query .length every time and can be slower.\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tlen = 0;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\twhile(true)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tif(enumerator.moveNext())\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tlet value = resultSelector(enumerator.current, len);\r\n\t\t\t\t\t\t\t\tenumeratorStack[len++] = enumerator;\r\n\t\t\t\t\t\t\t\tlet e = Enumerable.fromAny(childrenSelector(enumerator.current));\r\n\t\t\t\t\t\t\t\tenumerator = e ? e.getEnumerator() : EmptyEnumerator;\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(value);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(len==0) return false;\r\n\r\n\t\t\t\t\t\t\tenumerator.dispose();\r\n\t\t\t\t\t\t\tenumerator = enumeratorStack[--len];\r\n\t\t\t\t\t\t\tenumeratorStack.length = len;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttry\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tfinally\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tdispose.these(enumeratorStack);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tflatten():Enumerable\r\n\t{\r\n\t\tvar _ = this, isEndless = _._isEndless || null; // Is endless is not affirmative if false.;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar middleEnumerator:IEnumerator = null;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\twhile(true)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tif(middleEnumerator)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tif(middleEnumerator.moveNext())\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\treturn yielder.yieldReturn(middleEnumerator.current);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tmiddleEnumerator.dispose();\r\n\t\t\t\t\t\t\t\t\tmiddleEnumerator = null;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(enumerator.moveNext())\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tvar c = enumerator.current;\r\n\t\t\t\t\t\t\t\t// Because strings are enumerable, we can get stuck in an infinite loop.\r\n\t\t\t\t\t\t\t\t// Treat strings as primitives here.\r\n\t\t\t\t\t\t\t\tvar e = !Type.isString(c) && Enumerable.fromAny(c);\r\n\t\t\t\t\t\t\t\tif(e)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tmiddleEnumerator\r\n\t\t\t\t\t\t\t\t\t\t= e\r\n\t\t\t\t\t\t\t\t\t\t.selectMany(Functions.Identity)\r\n\t\t\t\t\t\t\t\t\t\t.flatten()\r\n\t\t\t\t\t\t\t\t\t\t.getEnumerator();\r\n\t\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\treturn yielder.yieldReturn(c);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator, middleEnumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tpairwise(selector:(prev:T, current:T) => TSelect):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tenumerator.moveNext();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar prev = enumerator.current;\r\n\t\t\t\t\t\treturn enumerator.moveNext()\r\n\t\t\t\t\t\t\t&& yielder.yieldReturn(selector(prev, enumerator.current));\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\tscan(func:(a:T, b:T) => T, seed?:T):Enumerable\r\n\t{\r\n\r\n\t\tvar isUseSeed = seed!==VOID0; // For now...\r\n\t\tvar _ = this;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar value:T;\r\n\t\t\t\tvar isFirst:boolean;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tisFirst = true;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(isFirst)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tisFirst = false;\r\n\t\t\t\t\t\t\t//noinspection JSUnusedAssignment\r\n\t\t\t\t\t\t\treturn isUseSeed\r\n\t\t\t\t\t\t\t\t? yielder.yieldReturn(value = seed)\r\n\t\t\t\t\t\t\t\t: enumerator.moveNext() && yielder.yieldReturn(value\r\n\t\t\t\t\t\t\t\t= enumerator.current);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn (enumerator.moveNext())\r\n\t\t\t\t\t\t\t? yielder.yieldReturn(value = func(value, enumerator.current))\r\n\t\t\t\t\t\t\t: false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\tselect(selector:Selector):InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\treturn enumerator.moveNext()\r\n\t\t\t\t\t\t\t? yielder.yieldReturn(selector(enumerator.current, index++))\r\n\t\t\t\t\t\t\t: yielder.yieldBreak();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t},\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\t/*\r\n\tpublic static IEnumerable SelectMany(\r\n\t\tthis IEnumerable source,\r\n\t\tFunc> collectionSelector,\r\n\t\tFunc resultSelector)\r\n\t */\r\n\r\n\tprotected _selectMany(\r\n\t\tcollectionSelector:Selector>,\r\n\t\tresultSelector?:(collection:T, element:TElement) => TResult):Enumerable\r\n\t{\r\n\t\tvar _ = this, isEndless = _._isEndless || null; // Do second enumeration, it will be indeterminate if false.\r\n\t\tif(!resultSelector)\r\n\t\t\tresultSelector = (a:T, b:any) => b;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar middleEnumerator:IEnumerator;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tmiddleEnumerator = undefined;\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\r\n\t\t\t\t\t\t// Just started, and nothing to enumerate? End.\r\n\t\t\t\t\t\tif(middleEnumerator===VOID0 && !enumerator.moveNext())\r\n\t\t\t\t\t\t\treturn false;\r\n\r\n\t\t\t\t\t\t// moveNext has been called at least once...\r\n\t\t\t\t\t\tdo\r\n\t\t\t\t\t\t{\r\n\r\n\t\t\t\t\t\t\t// Initialize middle if there isn't one.\r\n\t\t\t\t\t\t\tif(!middleEnumerator)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tvar middleSeq = collectionSelector(enumerator.current, index++);\r\n\r\n\t\t\t\t\t\t\t\t// Collection is null? Skip it...\r\n\t\t\t\t\t\t\t\tif(!middleSeq)\r\n\t\t\t\t\t\t\t\t\tcontinue;\r\n\r\n\t\t\t\t\t\t\t\tmiddleEnumerator = enumeratorFrom(middleSeq);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(middleEnumerator.moveNext())\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(\r\n\t\t\t\t\t\t\t\t\tresultSelector(\r\n\t\t\t\t\t\t\t\t\t\tenumerator.current, middleEnumerator.current\r\n\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t\t// else no more in this middle? Then clear and reset for next...\r\n\r\n\t\t\t\t\t\t\tmiddleEnumerator.dispose();\r\n\t\t\t\t\t\t\tmiddleEnumerator = null;\r\n\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\twhile(enumerator.moveNext());\r\n\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator, middleEnumerator);\r\n\t\t\t\t\t\tenumerator = null;\r\n\t\t\t\t\t\tmiddleEnumerator = null;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\tselectMany(\r\n\t\tcollectionSelector:Selector>):InfiniteEnumerable;\r\n\r\n\tselectMany(\r\n\t\tcollectionSelector:Selector>,\r\n\t\tresultSelector:(collection:T, element:TElement) => TResult):InfiniteEnumerable;\r\n\r\n\tselectMany(\r\n\t\tcollectionSelector:Selector>,\r\n\t\tresultSelector?:(collection:T, element:any) => TResult):InfiniteEnumerable\r\n\t{\r\n\t\treturn this._selectMany(collectionSelector, resultSelector);\r\n\t}\r\n\r\n\tprotected _choose(selector:Selector):Enumerable\r\n\t{\r\n\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar result = selector(enumerator.current, index++);\r\n\t\t\t\t\t\t\tif(result!==null && result!==VOID0)\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(result);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t},\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns selected values that are not null or undefined.\r\n\t */\r\n\tchoose():InfiniteEnumerable;\r\n\tchoose(selector?:Selector):InfiniteEnumerable\r\n\tchoose(selector:Selector = Functions.Identity):InfiniteEnumerable\r\n\t{\r\n\t\treturn this._choose(selector)\r\n\t}\r\n\r\n\twhere(predicate:Predicate):InfiniteEnumerable\r\n\t{\r\n\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tif(predicate(enumerator.current, index++))\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(enumerator.current);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t},\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\r\n\t}\r\n\r\n\tofType(type:{ new (...params:any[]):TType }):InfiniteEnumerable;\r\n\tofType(type:any):InfiniteEnumerable\r\n\t{\r\n\t\tvar typeName:string;\r\n\t\tswitch(type)\r\n\t\t{\r\n\t\t\tcase Number:\r\n\t\t\t\ttypeName = Type.NUMBER;\r\n\t\t\t\tbreak;\r\n\t\t\tcase String:\r\n\t\t\t\ttypeName = Type.STRING;\r\n\t\t\t\tbreak;\r\n\t\t\tcase Boolean:\r\n\t\t\t\ttypeName = Type.BOOLEAN;\r\n\t\t\t\tbreak;\r\n\t\t\tcase Function:\r\n\t\t\t\ttypeName = Type.FUNCTION;\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\treturn >this\r\n\t\t\t\t\t.where(x=>x instanceof type);\r\n\t\t}\r\n\t\treturn >this\r\n\t\t\t.choose()\r\n\t\t\t.where(x=>(typeof x)===typeName);\r\n\t}\r\n\r\n\texcept(\r\n\t\tsecond:IEnumerableOrArray,\r\n\t\tcompareSelector?:Selector):InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar keys:Dictionary;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tkeys = new Dictionary(compareSelector);\r\n\t\t\t\t\t\tif(second)\r\n\t\t\t\t\t\t\tforEach(second, key => keys.addByKeyValue(key, true));\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar current = enumerator.current;\r\n\t\t\t\t\t\t\tif(!keys.containsKey(current))\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tkeys.addByKeyValue(current, true);\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(current);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t\tkeys.clear();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t},\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\tdistinct(compareSelector?:(value:T) => T):InfiniteEnumerable\r\n\t{\r\n\t\treturn this.except(null, compareSelector);\r\n\t}\r\n\r\n\t// [0,0,0,1,1,1,2,2,2,0,0,0,1,1] results in [0,1,2,0,1];\r\n\tdistinctUntilChanged(compareSelector:Selector = Functions.Identity):InfiniteEnumerable\r\n\t{\r\n\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar compareKey:TCompare;\r\n\t\t\t\tvar initial:boolean = true;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar key = compareSelector(enumerator.current);\r\n\r\n\t\t\t\t\t\t\tif(initial)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tinitial = false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse if(Values.areEqual(compareKey,key))\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tcompareKey = key;\r\n\t\t\t\t\t\t\treturn yielder.yieldReturn(enumerator.current);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t},\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Returns a single default value if empty.\r\n\t * @param defaultValue\r\n\t * @returns {Enumerable}\r\n\t */\r\n\tdefaultIfEmpty(defaultValue:T = null):Enumerable\r\n\t{\r\n\t\tvar _ = this, disposed:boolean = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar isFirst:boolean;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tisFirst = true;\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\tif(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tisFirst = false;\r\n\t\t\t\t\t\t\treturn yielder.yieldReturn(enumerator.current);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if(isFirst)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tisFirst = false;\r\n\t\t\t\t\t\t\treturn yielder.yieldReturn(defaultValue);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\tzip(\r\n\t\tsecond:IEnumerableOrArray,\r\n\t\tresultSelector:(first:T, second:TSecond, index?:number) => TResult):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar firstEnumerator:IEnumerator;\r\n\t\t\t\tvar secondEnumerator:IEnumerator;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tfirstEnumerator = _.getEnumerator();\r\n\t\t\t\t\t\tsecondEnumerator = enumeratorFrom(second);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=> firstEnumerator.moveNext()\r\n\t\t\t\t\t&& secondEnumerator.moveNext()\r\n\t\t\t\t\t&& yielder.yieldReturn(resultSelector(firstEnumerator.current, secondEnumerator.current, index++)),\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(firstEnumerator, secondEnumerator);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tzipMultiple(\r\n\t\tsecond:IArray>,\r\n\t\tresultSelector:(first:T, second:TSecond, index?:number) => TResult):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tif(!second.length)\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar secondTemp:Queue;\r\n\t\t\t\tvar firstEnumerator:IEnumerator;\r\n\t\t\t\tvar secondEnumerator:IEnumerator;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tsecondTemp = new Queue(second);\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tfirstEnumerator = _.getEnumerator();\r\n\t\t\t\t\t\tsecondEnumerator = null;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(firstEnumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\twhile(true)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\twhile(!secondEnumerator)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tif(secondTemp.count)\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\tvar next = secondTemp.dequeue();\r\n\t\t\t\t\t\t\t\t\t\tif(next) // In case by chance next is null, then try again.\r\n\t\t\t\t\t\t\t\t\t\t\tsecondEnumerator = enumeratorFrom(next);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif(secondEnumerator.moveNext())\r\n\t\t\t\t\t\t\t\t\treturn yielder.yieldReturn(\r\n\t\t\t\t\t\t\t\t\t\tresultSelector(firstEnumerator.current, secondEnumerator.current, index++)\r\n\t\t\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t\t\tsecondEnumerator.dispose();\r\n\t\t\t\t\t\t\t\tsecondEnumerator = null;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(firstEnumerator, secondTemp);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\r\n\t// #region Join Methods\r\n\r\n\tjoin(\r\n\t\tinner:IEnumerableOrArray,\r\n\t\touterKeySelector:Selector,\r\n\t\tinnerKeySelector:Selector,\r\n\t\tresultSelector:(outer:T, inner:TInner) => TResult,\r\n\t\tcompareSelector:Selector = Functions.Identity):Enumerable\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar outerEnumerator:IEnumerator;\r\n\t\t\t\tvar lookup:ILookup;\r\n\t\t\t\tvar innerElements:TInner[] = null;\r\n\t\t\t\tvar innerCount:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\touterEnumerator = _.getEnumerator();\r\n\t\t\t\t\t\tlookup = Enumerable.from(inner)\r\n\t\t\t\t\t\t\t.toLookup(innerKeySelector, Functions.Identity, compareSelector);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\twhile(true)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tif(innerElements!=null)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tvar innerElement = innerElements[innerCount++];\r\n\t\t\t\t\t\t\t\tif(innerElement!==VOID0)\r\n\t\t\t\t\t\t\t\t\treturn yielder.yieldReturn(resultSelector(outerEnumerator.current, innerElement));\r\n\r\n\t\t\t\t\t\t\t\tinnerElement = null;\r\n\t\t\t\t\t\t\t\tinnerCount = 0;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(outerEnumerator.moveNext())\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tvar key = outerKeySelector(outerEnumerator.current);\r\n\t\t\t\t\t\t\t\tinnerElements = lookup.get(key);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(outerEnumerator);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tgroupJoin(\r\n\t\tinner:IEnumerableOrArray,\r\n\t\touterKeySelector:Selector,\r\n\t\tinnerKeySelector:Selector,\r\n\t\tresultSelector:(outer:T, inner:TInner[]) => TResult,\r\n\t\tcompareSelector:Selector = Functions.Identity):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar lookup:ILookup = null;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tlookup = Enumerable.from(inner)\r\n\t\t\t\t\t\t\t.toLookup(innerKeySelector, Functions.Identity, compareSelector);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\tenumerator.moveNext()\r\n\t\t\t\t\t&& yielder.yieldReturn(\r\n\t\t\t\t\t\tresultSelector(\r\n\t\t\t\t\t\t\tenumerator.current,\r\n\t\t\t\t\t\t\tlookup.get(outerKeySelector(enumerator.current))\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t),\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tmerge(enumerables:IArray>):InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this, isEndless = _._isEndless || null;\r\n\r\n\t\tif(!enumerables || enumerables.length==0)\r\n\t\t\treturn _;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar queue:Queue>;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t// 1) First get our values...\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tqueue = new Queue>(enumerables);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder) =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\twhile(true)\r\n\t\t\t\t\t\t{\r\n\r\n\t\t\t\t\t\t\twhile(!enumerator && queue.count)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tenumerator = enumeratorFrom(queue.dequeue()); // 4) Keep going and on to step 2. Else fall through to yieldBreak().\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(enumerator && enumerator.moveNext()) // 2) Keep returning until done.\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(enumerator.current);\r\n\r\n\t\t\t\t\t\t\tif(enumerator) // 3) Dispose and reset for next.\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tenumerator.dispose();\r\n\t\t\t\t\t\t\t\tenumerator = null;\r\n\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator, queue); // Just in case this gets disposed early.\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\tconcat(...enumerables:Array>):InfiniteEnumerable\r\n\t{\r\n\t\treturn this.merge(enumerables);\r\n\t}\r\n\r\n\r\n\tunion(\r\n\t\tsecond:IEnumerableOrArray,\r\n\t\tcompareSelector:Selector = Functions.Identity):Enumerable\r\n\t{\r\n\t\tvar _ = this, isEndless = _._isEndless || null;\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar firstEnumerator:IEnumerator;\r\n\t\t\t\tvar secondEnumerator:IEnumerator;\r\n\t\t\t\tvar keys:Dictionary;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfirstEnumerator = _.getEnumerator();\r\n\t\t\t\t\t\tkeys = new Dictionary(compareSelector); // Acting as a HashSet.\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar current:T;\r\n\t\t\t\t\t\tif(secondEnumerator===VOID0)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\twhile(firstEnumerator.moveNext())\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tcurrent = firstEnumerator.current;\r\n\t\t\t\t\t\t\t\tif(!keys.containsKey(current))\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tkeys.addByKeyValue(current, null);\r\n\t\t\t\t\t\t\t\t\treturn yielder.yieldReturn(current);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tsecondEnumerator = enumeratorFrom(second);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\twhile(secondEnumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tcurrent = secondEnumerator.current;\r\n\t\t\t\t\t\t\tif(!keys.containsKey(current))\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tkeys.addByKeyValue(current, null);\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(current);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(firstEnumerator, secondEnumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\tinsertAt(index:number, other:IEnumerableOrArray):Enumerable\r\n\t{\r\n\t\tInteger.assertZeroOrGreater(index,'index');\r\n\t\tvar n:number = index;\r\n\r\n\t\tvar _ = this, isEndless = _._isEndless || null;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\r\n\t\t\t\tvar firstEnumerator:IEnumerator;\r\n\t\t\t\tvar secondEnumerator:IEnumerator;\r\n\r\n\t\t\t\tvar count:number = 0;\r\n\t\t\t\tvar isEnumerated:boolean = false;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcount = 0;\r\n\t\t\t\t\t\tfirstEnumerator = _.getEnumerator();\r\n\t\t\t\t\t\tsecondEnumerator = enumeratorFrom(other);\r\n\t\t\t\t\t\tisEnumerated = false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder) =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(count==n)\r\n\t\t\t\t\t\t{ // Inserting?\r\n\t\t\t\t\t\t\tisEnumerated = true;\r\n\t\t\t\t\t\t\tif(secondEnumerator.moveNext())\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(secondEnumerator.current);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif(firstEnumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tcount++;\r\n\t\t\t\t\t\t\treturn yielder.yieldReturn(firstEnumerator.current);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn !isEnumerated\r\n\t\t\t\t\t\t\t&& secondEnumerator.moveNext()\r\n\t\t\t\t\t\t\t&& yielder.yieldReturn(secondEnumerator.current);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(firstEnumerator, secondEnumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n\talternateMultiple(sequence:IEnumerableOrArray):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar buffer:T,\r\n\t\t\t\t mode:EnumerableAction,\r\n\t\t\t\t enumerator:IEnumerator,\r\n\t\t\t\t alternateEnumerator:IEnumerator;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t// Instead of recalling getEnumerator every time, just reset the existing one.\r\n\t\t\t\t\t\talternateEnumerator = new ArrayEnumerator(\r\n\t\t\t\t\t\t\tEnumerable.toArray(sequence)\r\n\t\t\t\t\t\t); // Freeze\r\n\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\r\n\t\t\t\t\t\tvar hasAtLeastOne = enumerator.moveNext();\r\n\t\t\t\t\t\tmode = hasAtLeastOne\r\n\t\t\t\t\t\t\t? EnumerableAction.Return\r\n\t\t\t\t\t\t\t: EnumerableAction.Break;\r\n\r\n\t\t\t\t\t\tif(hasAtLeastOne)\r\n\t\t\t\t\t\t\tbuffer = enumerator.current;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tswitch(mode)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tcase EnumerableAction.Break: // We're done?\r\n\t\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\r\n\t\t\t\t\t\t\tcase EnumerableAction.Skip:\r\n\t\t\t\t\t\t\t\tif(alternateEnumerator.moveNext())\r\n\t\t\t\t\t\t\t\t\treturn yielder.yieldReturn(alternateEnumerator.current);\r\n\t\t\t\t\t\t\t\talternateEnumerator.reset();\r\n\t\t\t\t\t\t\t\tmode = EnumerableAction.Return;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar latest = buffer;\r\n\r\n\t\t\t\t\t\t// Set up the next round...\r\n\r\n\t\t\t\t\t\t// Is there another one? Set the buffer and setup instruct for the next one to be the alternate.\r\n\t\t\t\t\t\tvar another = enumerator.moveNext();\r\n\t\t\t\t\t\tmode = another\r\n\t\t\t\t\t\t\t? EnumerableAction.Skip\r\n\t\t\t\t\t\t\t: EnumerableAction.Break;\r\n\r\n\t\t\t\t\t\tif(another)\r\n\t\t\t\t\t\t\tbuffer = enumerator.current;\r\n\r\n\t\t\t\t\t\treturn yielder.yieldReturn(latest);\r\n\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator, alternateEnumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\talternateSingle(value:T):Enumerable\r\n\t{\r\n\t\treturn this.alternateMultiple(Enumerable.make(value));\r\n\t}\r\n\r\n\talternate(...sequence:T[]):Enumerable\r\n\t{\r\n\t\treturn this.alternateMultiple(sequence);\r\n\t}\r\n\r\n\r\n\t// #region Error Handling\r\n\tcatchError(handler:(e:any) => void):InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttry\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcatch(e)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t// Don't init...\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttry\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\t\tif(enumerator.moveNext())\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(enumerator.current);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcatch(e)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\thandler(e);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tfinallyAction(action:() => void):InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\treturn (enumerator.moveNext())\r\n\t\t\t\t\t\t\t? yielder.yieldReturn(enumerator.current)\r\n\t\t\t\t\t\t\t: false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttry\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tfinally\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\taction();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tbuffer(size:number):InfiniteEnumerable\r\n\t{\r\n\t\tif(size<1 || !isFinite(size))\r\n\t\t\tthrow new Error(\"Invalid buffer size.\");\r\n\r\n\t\tInteger.assert(size, \"size\");\r\n\r\n\t\tvar _ = this, len:number;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar array:T[] = ArrayUtility.initialize(size);\r\n\t\t\t\t\t\tlen = 0;\r\n\t\t\t\t\t\twhile(len\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tshare():InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar sharedEnumerator:IEnumerator;\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\treturn sharedEnumerator || (sharedEnumerator = _.getEnumerator());\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdispose(sharedEnumerator);\r\n\t\t\t},\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n}\r\n\r\n\r\n/**\r\n * Enumerable is a wrapper class that allows more primitive enumerables to exhibit LINQ behavior.\r\n *\r\n * In C# Enumerable is not an instance but has extensions for IEnumerable.\r\n * In this case, we use Enumerable as the underlying class that is being chained.\r\n */\r\nexport class Enumerable\r\nextends InfiniteEnumerable\r\n{\r\n\r\n\tconstructor(\r\n\t\tenumeratorFactory:() => IEnumerator,\r\n\t\tfinalizer?:() => void,\r\n\t\tisEndless:boolean = null)\r\n\t{\r\n\t\tsuper(enumeratorFactory, finalizer);\r\n\t\tthis._isEndless = isEndless;\r\n\t}\r\n\r\n\t/**\r\n\t * Universal method for converting a primitive enumerables into a LINQ enabled ones.\r\n\t *\r\n\t * Is not limited to TypeScript usages.\r\n\t */\r\n\tstatic from(source:IEnumerableOrArray):Enumerable\r\n\t{\r\n\t\tvar e = Enumerable.fromAny(source);\r\n\t\tif(!e) throw new UnsupportedEnumerableException();\r\n\t\treturn e;\r\n\t}\r\n\r\n\tstatic fromAny(\r\n\t\tsource:any):Enumerable\r\n\r\n\tstatic fromAny(\r\n\t\tsource:IEnumerableOrArray,\r\n\t\tdefaultEnumerable?:Enumerable):Enumerable\r\n\r\n\tstatic fromAny(\r\n\t\tsource:any,\r\n\t\tdefaultEnumerable?:Enumerable):Enumerable\r\n\r\n\tstatic fromAny(\r\n\t\tsource:any,\r\n\t\tdefaultEnumerable:Enumerable = null):Enumerable\r\n\t{\r\n\t\tif(Type.isObject(source) || Type.isString(source))\r\n\t\t{\r\n\t\t\tif(source instanceof Enumerable)\r\n\t\t\t\treturn source;\r\n\r\n\t\t\tif(Type.isArrayLike(source))\r\n\t\t\t\treturn new ArrayEnumerable(source);\r\n\r\n\t\t\tif(isEnumerable(source))\r\n\t\t\t\treturn new Enumerable(\r\n\t\t\t\t\t()=>source.getEnumerator(),\r\n\t\t\t\t\tnull, source.isEndless);\r\n\t\t}\r\n\r\n\t\treturn defaultEnumerable;\r\n\t}\r\n\r\n\tstatic fromOrEmpty(source:IEnumerableOrArray):Enumerable\r\n\t{\r\n\t\treturn Enumerable.fromAny(source) || Enumerable.empty();\r\n\t}\r\n\r\n\t/**\r\n\t * Static helper for converting enumerables to an array.\r\n\t * @param source\r\n\t * @returns {any}\r\n\t */\r\n\tstatic toArray(source:IEnumerableOrArray):T[]\r\n\t{\r\n\t\tif(source instanceof Enumerable)\r\n\t\t\treturn source.toArray();\r\n\r\n\t\treturn toArray(source);\r\n\t}\r\n\r\n\r\n\t//////////////////////////////////////////\r\n\t// #region Static Methods...\r\n\tstatic choice(values:IArray):InfiniteEnumerable\r\n\t{\r\n\t\tvar len = values && values.length;\r\n\t\t// We could return empty if no length, but that would break the typing and produce unexpected results.\r\n\t\t// Enforcing that there must be at least 1 choice is key.\r\n\t\tif(!len || !isFinite(len))\r\n\t\t\tthrow new ArgumentOutOfRangeException('length', length);\r\n\r\n\t\treturn new InfiniteEnumerable(\r\n\t\t\t() => new EnumeratorBase(\r\n\t\t\t\tnull,\r\n\t\t\t\t(yielder)=>\r\n\t\t\t\t\tyielder.yieldReturn(Integer.random.select(values)),\r\n\t\t\t\ttrue // Is endless!\r\n\t\t\t)\r\n\t\t);\r\n\t}\r\n\r\n\tstatic chooseFrom(...args:T[]):InfiniteEnumerable\r\n\t{\r\n\t\treturn Enumerable.choice(args);\r\n\t}\r\n\r\n\tstatic cycle(values:IArray):InfiniteEnumerable\r\n\t{\r\n\t\tvar len = values && values.length;\r\n\t\t// We could return empty if no length, but that would break the typing and produce unexpected results.\r\n\t\t// Enforcing that there must be at least 1 choice is key.\r\n\t\tif(!len || !isFinite(len))\r\n\t\t\tthrow new ArgumentOutOfRangeException('length', length);\r\n\r\n\t\treturn new InfiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar index:number = 0;\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t}, // Reinitialize the value just in case the enumerator is restarted.\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(index>=values.length) index = 0;\r\n\t\t\t\t\t\treturn yielder.yieldReturn(values[index++]);\r\n\t\t\t\t\t},\r\n\t\t\t\t\ttrue // Is endless!\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic cycleThrough(...args:T[]):InfiniteEnumerable\r\n\t{\r\n\t\treturn Enumerable.cycle(args);\r\n\t}\r\n\r\n\tstatic empty():FiniteEnumerable\r\n\t{\r\n\t\t// Could be single static instance, but for safety, we'll make a new one.\r\n\t\treturn new FiniteEnumerable(getEmptyEnumerator);\r\n\t}\r\n\r\n\tstatic repeat(element:T):InfiniteEnumerable;\r\n\tstatic repeat(element:T, count:number):FiniteEnumerable;\r\n\tstatic repeat(element:T, count:number = Infinity):Enumerable\r\n\t{\r\n\t\tif(!(count>0))\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\treturn isFinite(count) && Integer.assert(count, \"count\")\r\n\t\t\t? new FiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar c:number = count;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() => { index = 0; },\r\n\t\t\t\t\t(yielder)=> (index++(\r\n\t\t\t() =>\r\n\t\t\t\tnew EnumeratorBase(\r\n\t\t\t\t\tnull,\r\n\t\t\t\t\t(yielder)=> yielder.yieldReturn(element),\r\n\t\t\t\t\ttrue // Is endless!\r\n\t\t\t\t)\r\n\t\t);\r\n\t}\r\n\r\n\t// Note: this enumeration is endless but can be disposed/cancelled and finalized.\r\n\tstatic repeatWithFinalize(\r\n\t\tinitializer:() => T,\r\n\t\tfinalizer:(element:T) => void):InfiniteEnumerable\r\n\t{\r\n\r\n\t\treturn new InfiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar element:T;\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\telement = initializer();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=> yielder.yieldReturn(element),\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfinalizer(element);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\ttrue // Is endless!\r\n\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * Creates an enumerable of one element.\r\n\t * @param element\r\n\t * @returns {FiniteEnumerable}\r\n\t */\r\n\tstatic make(element:T):FiniteEnumerable\r\n\t{\r\n\t\treturn Enumerable.repeat(element, 1);\r\n\t}\r\n\r\n\t// start and step can be other than integer.\r\n\r\n\tstatic range(\r\n\t\tstart:number,\r\n\t\tcount:number,\r\n\t\tstep:number = 1):FiniteEnumerable\r\n\t{\r\n\t\tif(!isFinite(start))\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"start\", start, \"Must be a finite number.\");\r\n\r\n\t\tif(!(count>0))\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\tif(!step)\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"step\", step, \"Must be a valid value\");\r\n\r\n\t\tif(!isFinite(step))\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"step\", step, \"Must be a finite number.\");\r\n\r\n\t\tInteger.assert(count, \"count\");\r\n\r\n\t\treturn new FiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar value:number;\r\n\t\t\t\tvar c:number = count; // Force integer evaluation.\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tvalue = start;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar result:boolean =\r\n\t\t\t\t\t\t\t index++\r\n\t{\r\n\t\tstep = Math.abs(step)* -1;\r\n\r\n\t\treturn Enumerable.range(start, count, step);\r\n\t}\r\n\r\n\t// step = -1 behaves the same as toNegativeInfinity;\r\n\tstatic toInfinity(\r\n\t\tstart:number = 0,\r\n\t\tstep:number = 1):InfiniteEnumerable\r\n\t{\r\n\t\tif(!isFinite(start))\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"start\", start, \"Must be a finite number.\");\r\n\r\n\t\tif(!step)\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"step\", step, \"Must be a valid value\");\r\n\r\n\t\tif(!isFinite(step))\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"step\", step, \"Must be a finite number.\");\r\n\r\n\t\treturn new InfiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar value:number;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvalue = start;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar current:number = value;\r\n\t\t\t\t\t\tvalue += step;\r\n\t\t\t\t\t\treturn yielder.yieldReturn(current);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\ttrue // Is endless!\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic toNegativeInfinity(\r\n\t\tstart:number = 0,\r\n\t\tstep:number = 1):InfiniteEnumerable\r\n\t{\r\n\t\treturn Enumerable.toInfinity(start, -step);\r\n\t}\r\n\r\n\tstatic rangeTo(\r\n\t\tstart:number,\r\n\t\tto:number,\r\n\t\tstep:number = 1):FiniteEnumerable\r\n\t{\r\n\t\tif(isNaN(to) || !isFinite(to))\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"to\", to, \"Must be a finite number.\");\r\n\r\n\t\tif(step && !isFinite(step))\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"step\", step, \"Must be a finite non-zero number.\");\r\n\r\n\t\t// This way we adjust for the delta from start and to so the user can say +/- step and it will work as expected.\r\n\t\tstep = Math.abs(step);\r\n\r\n\t\treturn new FiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar value:number;\r\n\r\n\t\t\t\treturn new EnumeratorBase(() => { value = start; },\r\n\t\t\t\t\tstart)=>\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar result:boolean = value<=to && yielder.yieldReturn(value);\r\n\r\n\t\t\t\t\t\t\tif(result)\r\n\t\t\t\t\t\t\t\tvalue += step;\r\n\r\n\t\t\t\t\t\t\treturn result;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t:\r\n\t\t\t\t\t\t(yielder:IYield)=>\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar result:boolean = value>=to && yielder.yieldReturn(value);\r\n\r\n\t\t\t\t\t\t\tif(result)\r\n\t\t\t\t\t\t\t\tvalue -= step;\r\n\r\n\t\t\t\t\t\t\treturn result;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t, false);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic matches(input:string, pattern:any, flags:string = \"\"):FiniteEnumerable\r\n\t{\r\n\t\tif(input===null || input===VOID0)\r\n\t\t\tthrow new ArgumentNullException(\"input\");\r\n\t\tvar type = typeof input;\r\n\t\tif(type!=Type.STRING)\r\n\t\t\tthrow new Error(\"Cannot exec RegExp matches of type '\" + type + \"'.\");\r\n\r\n\t\tif(pattern instanceof RegExp)\r\n\t\t{\r\n\t\t\tflags += (pattern.ignoreCase) ? \"i\" : \"\";\r\n\t\t\tflags += (pattern.multiline) ? \"m\" : \"\";\r\n\t\t\tpattern = pattern.source;\r\n\t\t}\r\n\r\n\t\tif(flags.indexOf(\"g\")=== -1) flags += \"g\";\r\n\r\n\t\treturn new FiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar regex:RegExp;\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tregex = new RegExp(pattern, flags);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t// Calling regex.exec consecutively on the same input uses the lastIndex to start the next match.\r\n\t\t\t\t\t\tvar match = regex.exec(input);\r\n\t\t\t\t\t\treturn (match!==null) ? yielder.yieldReturn(match) : false;\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic generate(factory:(index?:number) => T):InfiniteEnumerable;\r\n\tstatic generate(factory:(index?:number) => T, count:number):FiniteEnumerable;\r\n\tstatic generate(factory:(index?:number) => T, count:number = Infinity):InfiniteEnumerable\r\n\t{\r\n\r\n\t\tif(isNaN(count) || count<=0)\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\treturn isFinite(count) && Integer.assert(count, \"count\")\r\n\t\t\t?\r\n\t\t\tnew FiniteEnumerable(\r\n\t\t\t\t() =>\r\n\t\t\t\t{\r\n\t\t\t\t\tvar c:number = count;\r\n\t\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t\t() =>\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar current:number = index++;\r\n\t\t\t\t\t\t\treturn current(\r\n\t\t\t\t() =>\r\n\t\t\t\t{\r\n\t\t\t\t\tvar index:number = 0;\r\n\t\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t\t() =>\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t(yielder)=> yielder.yieldReturn(factory(index++)),\r\n\r\n\t\t\t\t\t\ttrue // Is endless!\r\n\t\t\t\t\t);\r\n\t\t\t\t});\r\n\t}\r\n\r\n\tstatic unfold(\r\n\t\tseed:T,\r\n\t\tvalueFactory:Selector,\r\n\t\tskipSeed:Boolean = false):InfiniteEnumerable\r\n\t{\r\n\t\treturn new InfiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar index:number = 0;\r\n\t\t\t\tvar value:T;\r\n\t\t\t\tvar isFirst:boolean;\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tvalue = seed;\r\n\t\t\t\t\t\tisFirst = !skipSeed;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar i = index++;\r\n\t\t\t\t\t\tif(isFirst)\r\n\t\t\t\t\t\t\tisFirst = false;\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\tvalue = valueFactory(value, i);\r\n\t\t\t\t\t\treturn yielder.yieldReturn(value);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\ttrue // Is endless!\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic forEach(\r\n\t\tenumerable:IEnumerableOrArray,\r\n\t\taction:(element:T, index?:number) => any):void\r\n\t{\r\n\t\t// Will properly dispose created enumerable.\r\n\t\t// Will throw if enumerable is endless.\r\n\t\tforEach(enumerable, action);\r\n\t}\r\n\r\n\tstatic map(\r\n\t\tenumerable:IEnumerableOrArray,\r\n\t\tselector:Selector):TResult[]\r\n\t{\r\n\t\t// Will properly dispose created enumerable.\r\n\t\t// Will throw if enumerable is endless.\r\n\t\treturn map(enumerable, selector);\r\n\r\n\t}\r\n\r\n\t// Slightly optimized versions for numbers.\r\n\tstatic max(values:FiniteEnumerable):number\r\n\t{\r\n\t\treturn values\r\n\t\t\t.takeUntil(v=> v== +Infinity, true)\r\n\t\t\t.aggregate(Functions.Greater);\r\n\t}\r\n\r\n\tstatic min(values:FiniteEnumerable):number\r\n\t{\r\n\t\treturn values\r\n\t\t\t.takeUntil(v=> v== -Infinity, true)\r\n\t\t\t.aggregate(Functions.Lesser);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Takes any set of collections of the same type and weaves them together.\r\n\t * @param enumerables\r\n\t * @returns {Enumerable}\r\n\t */\r\n\tstatic weave(\r\n\t\tenumerables:IEnumerableOrArray>):Enumerable\r\n\t{\r\n\t\tif(!enumerables)\r\n\t\t\tthrow new ArgumentNullException('enumerables');\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar queue:Queue>;\r\n\t\t\t\tvar mainEnumerator:IEnumerator>;\r\n\t\t\t\tvar index:number;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tqueue = new Queue>();\r\n\t\t\t\t\t\tmainEnumerator = enumeratorFrom(enumerables);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tlet e:IEnumerator;\r\n\r\n\t\t\t\t\t\t// First pass...\r\n\t\t\t\t\t\tif(mainEnumerator) {\r\n\t\t\t\t\t\t\twhile(!e && mainEnumerator.moveNext())\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tlet c = mainEnumerator.current;\r\n\t\t\t\t\t\t\t\te = nextEnumerator(queue, c && enumeratorFrom(c));\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(!e)\r\n\t\t\t\t\t\t\t\tmainEnumerator = null;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\twhile(!e && queue.count) {\r\n\t\t\t\t\t\t\te = nextEnumerator(queue, queue.dequeue());\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn e\r\n\t\t\t\t\t\t\t? yielder.yieldReturn(e.current)\r\n\t\t\t\t\t\t\t: yielder.yieldBreak();\r\n\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose.these(queue.dump());\r\n\t\t\t\t\t\tdispose(mainEnumerator,queue);\r\n\t\t\t\t\t\tmainEnumerator = null;\r\n\t\t\t\t\t\tqueue = null;\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\tdoAction(\r\n\t\taction:Action|Predicate|Selector|Selector,\r\n\t\tinitializer?:()=>void,\r\n\t\tisEndless:boolean = this.isEndless):Enumerable\r\n\t{\r\n\t\treturn >super.doAction(action, initializer, isEndless);\r\n\t}\r\n\r\n// #region Indexing/Paging methods.\r\n\r\n\tskip(count:number):Enumerable\r\n\t{\r\n\t\treturn >super.skip(count);\r\n\t}\r\n\r\n\tskipWhile(predicate:Predicate):Enumerable\r\n\t{\r\n\t\tthis.throwIfDisposed();\r\n\t\treturn this.doAction(\r\n\t\t\t(element:T, index?:number) =>\r\n\t\t\t\tpredicate(element, index)\r\n\t\t\t\t\t? EnumerableAction.Skip\r\n\t\t\t\t\t: EnumerableAction.Return\r\n\t\t);\r\n\t}\r\n\r\n\ttakeWhile(predicate:Predicate):Enumerable\r\n\t{\r\n\t\tthis.throwIfDisposed();\r\n\r\n\t\tif(!predicate)\r\n\t\t\tthrow new ArgumentNullException('predicate');\r\n\r\n\t\treturn this.doAction(\r\n\t\t\t(element:T, index?:number) =>\r\n\t\t\t\tpredicate(element, index)\r\n\t\t\t\t\t? EnumerableAction.Return\r\n\t\t\t\t\t: EnumerableAction.Break,\r\n\t\t\tnull,\r\n\t\t\tnull // We don't know the state if it is endless or not.\r\n\t\t);\r\n\t}\r\n\r\n\t// Is like the inverse of take While with the ability to return the value identified by the predicate.\r\n\ttakeUntil(predicate:Predicate, includeUntilValue?:boolean):Enumerable\r\n\t{\r\n\t\tthis.throwIfDisposed();\r\n\r\n\t\tif(!predicate)\r\n\t\t\tthrow new ArgumentNullException('predicate');\r\n\r\n\t\tif(!includeUntilValue)\r\n\t\t\treturn this.doAction(\r\n\t\t\t\t(element:T, index?:number) =>\r\n\t\t\t\t\tpredicate(element, index)\r\n\t\t\t\t\t\t? EnumerableAction.Break\r\n\t\t\t\t\t\t: EnumerableAction.Return,\r\n\t\t\t\tnull,\r\n\t\t\t\tnull // We don't know the state if it is endless or not.\r\n\t\t\t);\r\n\r\n\t\tvar found:boolean = false;\r\n\t\treturn this.doAction(\r\n\t\t\t(element:T, index?:number) =>\r\n\t\t\t{\r\n\t\t\t\tif(found)\r\n\t\t\t\t\treturn EnumerableAction.Break;\r\n\r\n\t\t\t\tfound = predicate(element, index);\r\n\t\t\t\treturn EnumerableAction.Return;\r\n\t\t\t},\r\n\t\t\t()=>\r\n\t\t\t{\r\n\t\t\t\tfound = false;\r\n\t\t\t},\r\n\t\t\tnull // We don't know the state if it is endless or not.\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tforEach(action:Predicate | Action):void\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\tthrowIfEndless(_.isEndless);\r\n\r\n\t\tvar index:number = 0;\r\n\t\t// Return value of action can be anything, but if it is (===) false then the forEach will discontinue.\r\n\t\tusing(\r\n\t\t\t_.getEnumerator(), e=>\r\n\t\t\t{\r\n\t\t\t\tthrowIfEndless(e.isEndless);\r\n\r\n\t\t\t\t// It is possible that subsequently 'action' could cause the enumeration to dispose, so we have to check each time.\r\n\t\t\t\twhile(_.throwIfDisposed() && e.moveNext())\r\n\t\t\t\t{\r\n\t\t\t\t\tif(action(e.current, index++)===false)\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\t// #region Conversion Methods\r\n\ttoArray(predicate?:Predicate):T[]\r\n\t{\r\n\t\treturn predicate\r\n\t\t\t? this.where(predicate).toArray()\r\n\t\t\t: this.copyTo([]);\r\n\t}\r\n\r\n\tcopyTo(target:T[], index:number = 0):T[]\r\n\t{\r\n\t\tthis.throwIfDisposed();\r\n\t\tif(!target) throw new ArgumentNullException(\"target\");\r\n\t\tInteger.assertZeroOrGreater(index);\r\n\r\n\t\t// If not exposing an action that could cause dispose, then use forEach utility instead.\r\n\t\tforEach(this, (x, i)=>\r\n\t\t{\r\n\t\t\ttarget[i + index] = x\r\n\t\t});\r\n\r\n\t\treturn target;\r\n\t}\r\n\r\n\ttoLookup(\r\n\t\tkeySelector:Selector,\r\n\t\telementSelector:Selector = Functions.Identity,\r\n\t\tcompareSelector:Selector = Functions.Identity):ILookup\r\n\t{\r\n\t\tvar dict:Dictionary = new Dictionary(compareSelector);\r\n\t\tthis.forEach(\r\n\t\t\tx=>\r\n\t\t\t{\r\n\t\t\t\tvar key = keySelector(x);\r\n\t\t\t\tvar element = elementSelector(x);\r\n\r\n\t\t\t\tvar array = dict.getValue(key);\r\n\t\t\t\tif(array!==VOID0) array.push(element);\r\n\t\t\t\telse dict.addByKeyValue(key, [element]);\r\n\t\t\t}\r\n\t\t);\r\n\t\treturn new Lookup(dict);\r\n\t}\r\n\r\n\ttoMap(\r\n\t\tkeySelector:Selector,\r\n\t\telementSelector:Selector):IMap\r\n\t{\r\n\t\tvar obj:IMap = {};\r\n\t\tthis.forEach((x, i)=>\r\n\t\t{\r\n\t\t\tobj[keySelector(x, i)] = elementSelector(x, i);\r\n\t\t});\r\n\t\treturn obj;\r\n\t}\r\n\r\n\ttoDictionary(\r\n\t\tkeySelector:Selector,\r\n\t\telementSelector:Selector,\r\n\t\tcompareSelector:Selector = Functions.Identity):Dictionary\r\n\t{\r\n\t\tvar dict:Dictionary = new Dictionary(compareSelector);\r\n\t\tthis.forEach((x, i)=> dict.addByKeyValue(keySelector(x, i), elementSelector(x, i)));\r\n\t\treturn dict;\r\n\t}\r\n\r\n\ttoJoinedString(separator:string = \"\", selector:Selector = Functions.Identity)\r\n\t{\r\n\t\treturn this.select(selector).toArray().join(separator);\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\r\n\ttakeExceptLast(count:number = 1):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\tif(!(count>0)) // Out of bounds?\r\n\t\t\treturn _;\r\n\r\n\t\tif(!isFinite(count)) // +Infinity equals skip all so return empty.\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\tInteger.assert(count, \"count\");\r\n\t\tvar c = count;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar q:Queue;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tq = new Queue();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t// Add the next one to the queue.\r\n\t\t\t\t\t\t\tq.enqueue(enumerator.current);\r\n\r\n\t\t\t\t\t\t\t// Did we reach our quota?\r\n\t\t\t\t\t\t\tif(q.count>c)\r\n\t\t\t\t\t\t\t// Okay then, start returning results.\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(q.dequeue());\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator, q);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tskipToLast(count:number):Enumerable\r\n\t{\r\n\t\tif(!(count>0)) // Out of bounds? Empty.\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\tvar _ = this;\r\n\r\n\t\tif(!isFinite(count)) // Infinity means return all.\r\n\t\t\treturn _;\r\n\r\n\t\tInteger.assert(count, \"count\");\r\n\r\n\t\t// This sets up the query so nothing is done until move next is called.\r\n\t\treturn _.reverse()\r\n\t\t\t.take(count)\r\n\t\t\t.reverse();\r\n\t}\r\n\r\n\t// To help with type guarding.\r\n\r\n\twhere(predicate:Predicate):Enumerable\r\n\t{\r\n\t\treturn >super.where(predicate);\r\n\t}\r\n\r\n\tselect(selector:Selector):Enumerable\r\n\t{\r\n\t\treturn >super.select(selector);\r\n\t}\r\n\r\n\tselectMany(\r\n\t\tcollectionSelector:Selector>):Enumerable;\r\n\r\n\r\n\tselectMany(\r\n\t\tcollectionSelector:Selector>,\r\n\t\tresultSelector:(collection:T, element:TElement)=>TResult):Enumerable;\r\n\r\n\tselectMany(\r\n\t\tcollectionSelector:Selector>,\r\n\t\tresultSelector?:(collection:T, element:any)=>TResult):Enumerable\r\n\t{\r\n\t\treturn this._selectMany(collectionSelector, resultSelector);\r\n\t}\r\n\r\n\tchoose():Enumerable;\r\n\tchoose(selector?:Selector):Enumerable\r\n\tchoose(selector:Selector = Functions.Identity):Enumerable\r\n\t{\r\n\t\treturn this._choose(selector);\r\n\t}\r\n\r\n\treverse():Enumerable\r\n\t{\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\t\tthrowIfEndless(_._isEndless); // Cannot reverse an endless collection...\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar buffer:T[];\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\tbuffer = _.toArray();\r\n\t\t\t\t\t\tindex = buffer.length;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=> index && yielder.yieldReturn(buffer[--index]),\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tbuffer.length = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tshuffle():Enumerable\r\n\t{\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\t\tthrowIfEndless(_._isEndless); // Cannot shuffle an endless collection...\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar buffer:T[];\r\n\t\t\t\tvar capacity:number;\r\n\t\t\t\tvar len:number;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\tbuffer = _.toArray();\r\n\t\t\t\t\t\tcapacity = len = buffer.length;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t// Avoid using major array operations like .slice();\r\n\t\t\t\t\t\tif(!len)\r\n\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\r\n\t\t\t\t\t\tvar selectedIndex = Integer.random(len);\r\n\t\t\t\t\t\tvar selectedValue = buffer[selectedIndex];\r\n\r\n\t\t\t\t\t\tbuffer[selectedIndex] = buffer[--len]; // Take the last one and put it here.\r\n\t\t\t\t\t\tbuffer[len] = null; // clear possible reference.\r\n\r\n\t\t\t\t\t\tif(len%32==0) // Shrink?\r\n\t\t\t\t\t\t\tbuffer.length = len;\r\n\r\n\t\t\t\t\t\treturn yielder.yieldReturn(selectedValue);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tbuffer.length = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tcount(predicate?:Predicate):number\r\n\t{\r\n\t\tvar count:number = 0;\r\n\t\tthis.forEach(\r\n\t\t\tpredicate\r\n\r\n\t\t\t\t?\r\n\t\t\t\t(x, i) =>\r\n\t\t\t\t{\r\n\t\t\t\t\tif(predicate(x, i))++count;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t:\r\n\t\t\t\t() =>\r\n\t\t\t\t{\r\n\t\t\t\t\t++count;\r\n\t\t\t\t}\r\n\t\t);\r\n\r\n\t\treturn count;\r\n\t}\r\n\r\n\t// Akin to '.every' on an array.\r\n\tall(predicate:Predicate):boolean\r\n\t{\r\n\t\tif(!predicate)\r\n\t\t\tthrow new ArgumentNullException(\"predicate\");\r\n\r\n\t\tvar result = true;\r\n\t\tthis.forEach((x, i) =>\r\n\t\t{\r\n\t\t\tif(!predicate(x, i))\r\n\t\t\t{\r\n\t\t\t\tresult = false;\r\n\t\t\t\treturn false; // break\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\r\n\t// 'every' has been added here for parity/compatibility with an array.\r\n\tevery(predicate:Predicate):boolean\r\n\t{\r\n\t\treturn this.all(predicate);\r\n\t}\r\n\r\n\t// Akin to '.some' on an array.\r\n\tany(predicate?:Predicate):boolean\r\n\t{\r\n\t\tif(!predicate)\r\n\t\t\treturn super.any();\r\n\r\n\t\tvar result = false;\r\n\t\t// Splitting the forEach up this way reduces iterative processing.\r\n\t\t// forEach handles the generation and disposal of the enumerator.\r\n\t\tthis.forEach(\r\n\t\t\t(x, i) =>\r\n\t\t\t{\r\n\t\t\t\tresult = predicate(x, i); // false = not found and therefore it should continue. true = found and break;\r\n\t\t\t\treturn !result;\r\n\t\t\t});\r\n\t\treturn result;\r\n\r\n\t}\r\n\r\n\t// 'some' has been added here for parity/compatibility with an array.\r\n\tsome(predicate:Predicate):boolean\r\n\t{\r\n\t\treturn this.any(predicate);\r\n\t}\r\n\r\n\r\n\tcontains(value:T, compareSelector?:Selector):boolean\r\n\t{\r\n\t\treturn compareSelector\r\n\t\t\t? this.any(v=> compareSelector(v)===compareSelector(value))\r\n\t\t\t: this.any(v=> v===value);\r\n\t}\r\n\r\n\t// Originally has an overload for a predicate,\r\n\t// but that's a bad idea since this could be an enumeration of functions and therefore fail the intent.\r\n\t// Better to chain a where statement first to be more explicit.\r\n\tindexOf(value:T, compareSelector?:Selector):number\r\n\t{\r\n\t\tvar found:number = -1;\r\n\t\tthis.forEach(\r\n\t\t\tcompareSelector\r\n\t\t\t\t?\r\n\t\t\t\t(element:T, i?:number) =>\r\n\t\t\t\t{\r\n\t\t\t\t\tif(Values.areEqual(compareSelector(element, i), compareSelector(value, i), true))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfound = i;\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t:\r\n\t\t\t\t(element:T, i?:number) =>\r\n\t\t\t\t{\r\n\t\t\t\t\t// Why? Because NaN doesn't equal NaN. :P\r\n\t\t\t\t\tif(Values.areEqual(element, value, true))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfound = i;\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\r\n\t\treturn found;\r\n\t}\r\n\r\n\tlastIndexOf(value:T, compareSelector?:Selector):number\r\n\t{\r\n\t\tvar result:number = -1;\r\n\t\tthis.forEach(\r\n\t\t\tcompareSelector\r\n\t\t\t\t?\r\n\t\t\t\t(element:T, i?:number) =>\r\n\t\t\t\t{\r\n\t\t\t\t\tif(Values.areEqual(compareSelector(element, i), compareSelector(value, i), true)) result\r\n\t\t\t\t\t\t= i;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t:\r\n\t\t\t\t(element:T, i?:number) =>\r\n\t\t\t\t{\r\n\t\t\t\t\tif(Values.areEqual(element, value, true)) result = i;\r\n\t\t\t\t});\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\tmerge(enumerables:IArray>):Enumerable\r\n\t{\r\n\t\treturn >super.merge(enumerables);\r\n\t}\r\n\r\n\tconcat(...enumerables:Array>):Enumerable\r\n\t{\r\n\t\treturn this.merge(enumerables);\r\n\t}\r\n\r\n\r\n\tintersect(\r\n\t\tsecond:IEnumerableOrArray,\r\n\t\tcompareSelector?:Selector):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar keys:Dictionary;\r\n\t\t\t\tvar outs:Dictionary;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\r\n\t\t\t\t\t\tkeys = new Dictionary(compareSelector);\r\n\t\t\t\t\t\touts = new Dictionary(compareSelector);\r\n\r\n\t\t\t\t\t\tforEach(second, key=>\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tkeys.addByKeyValue(key, true);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar current = enumerator.current;\r\n\t\t\t\t\t\t\tif(!outs.containsKey(current) && keys.containsKey(current))\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\touts.addByKeyValue(current, true);\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(current);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator, keys, outs);\r\n\t\t\t\t\t},\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\tsequenceEqual(\r\n\t\tsecond:IEnumerableOrArray,\r\n\t\tequalityComparer:EqualityComparison = Values.areEqual):boolean\r\n\t{\r\n\t\treturn using(\r\n\t\t\tthis.getEnumerator(),\r\n\t\t\te1=> using(\r\n\t\t\t\tenumeratorFrom(second),\r\n\t\t\t\te2=>\r\n\t\t\t\t{\r\n\t\t\t\t\t// if both are endless, this will never evaluate.\r\n\t\t\t\t\tthrowIfEndless(e1.isEndless && e2.isEndless);\r\n\r\n\t\t\t\t\twhile(e1.moveNext())\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(!e2.moveNext() || !equalityComparer(e1.current, e2.current))\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn !e2.moveNext();\r\n\t\t\t\t}\r\n\t\t\t)\r\n\t\t);\r\n\t}\r\n\r\n\t//isEquivalent(second:IEnumerableOrArray,\r\n\t//\tequalityComparer:EqualityComparison = Values.areEqual):boolean\r\n\t//{\r\n\t//\treturn this\r\n\t//\t\t.orderBy(keySelector)\r\n\t//\t\t.sequenceEqual(Enumerable.from(second).orderBy(keySelector))\r\n\t//}\r\n\r\n\r\n\t// #endregion\r\n\r\n\r\n\tofType(type:{ new (...params:any[]):TType }):Enumerable;\r\n\tofType(type:any):Enumerable\r\n\t{\r\n\t\treturn >super.ofType(type);\r\n\t}\r\n\r\n\texcept(\r\n\t\tsecond:IEnumerableOrArray,\r\n\t\tcompareSelector?:Selector):Enumerable\r\n\t{\r\n\t\treturn >super.except(second, compareSelector);\r\n\t}\r\n\r\n\tdistinct(compareSelector?:(value:T)=>T):Enumerable\r\n\t{\r\n\t\treturn >super.distinct(compareSelector);\r\n\t}\r\n\r\n\tdistinctUntilChanged(compareSelector:Selector = Functions.Identity):Enumerable\r\n\t{\r\n\t\treturn >super.distinctUntilChanged(compareSelector);\r\n\t}\r\n\r\n// #region Ordering Methods\r\n\r\n\torderBy(keySelector:Selector = Functions.Identity):IOrderedEnumerable\r\n\t{\r\n\t\treturn new OrderedEnumerable(this, keySelector, Order.Ascending);\r\n\t}\r\n\r\n\torderUsing(comparison:Comparison):IOrderedEnumerable\r\n\t{\r\n\t\treturn new OrderedEnumerable(this, null, Order.Ascending, null, comparison);\r\n\t}\r\n\r\n\torderUsingReversed(comparison:Comparison):IOrderedEnumerable\r\n\t{\r\n\t\treturn new OrderedEnumerable(this, null, Order.Descending, null, comparison);\r\n\t}\r\n\r\n\torderByDescending(keySelector:Selector = Functions.Identity):IOrderedEnumerable\r\n\t{\r\n\t\treturn new OrderedEnumerable(this, keySelector, Order.Descending);\r\n\t}\r\n\r\n\t/*\r\n\t\t weightedSample(weightSelector) {\r\n\t\t weightSelector = Utils.createLambda(weightSelector);\r\n\t\t var source = this;\r\n\r\n\t\t return new Enumerable(() => {\r\n\t\t var sortedByBound;\r\n\t\t var totalWeight = 0;\r\n\r\n\t\t return new EnumeratorBase(\r\n\t\t () => {\r\n\t\t sortedByBound = source\r\n\t\t .choose(function (x) {\r\n\t\t var weight = weightSelector(x);\r\n\t\t if (weight <= 0) return null; // ignore 0\r\n\r\n\t\t totalWeight += weight;\r\n\t\t return { value: x, bound: totalWeight }\r\n\t\t })\r\n\t\t .toArray();\r\n\t\t },\r\n\t\t () => {\r\n\t\t if (sortedByBound.length > 0) {\r\n\t\t var draw = (Math.random() * totalWeight) + 1;\r\n\r\n\t\t var lower = -1;\r\n\t\t var upper = sortedByBound.length;\r\n\t\t while (upper - lower > 1) {\r\n\t\t var index = ((lower + upper) / 2);\r\n\t\t if (sortedByBound[index].bound >= draw) {\r\n\t\t upper = index;\r\n\t\t }\r\n\t\t else {\r\n\t\t lower = index;\r\n\t\t }\r\n\t\t }\r\n\r\n\t\t return (this).yieldReturn(sortedByBound[upper].value);\r\n\t\t }\r\n\r\n\t\t return (this).yieldBreak();\r\n\t\t },\r\n\t\t Functions.Blank);\r\n\t\t });\r\n\t\t }\r\n\t\t */\r\n\t// #endregion\r\n\r\n\tbuffer(size:number):Enumerable\r\n\t{\r\n\t\treturn >super.buffer(size);\r\n\t}\r\n\r\n\t// #region Grouping Methods\r\n\r\n\t// Originally contained a result selector (not common use), but this could be done simply by a select statement after.\r\n\r\n\r\n\tgroupBy(keySelector:Selector):Enumerable>;\r\n\tgroupBy(\r\n\t\tkeySelector:Selector,\r\n\t\telementSelector?:Selector,\r\n\t\tcompareSelector?:Selector):Enumerable>;\r\n\tgroupBy(\r\n\t\tkeySelector:Selector,\r\n\t\telementSelector?:Selector,\r\n\t\tcompareSelector?:Selector):Enumerable>\r\n\t{\r\n\t\tif(!elementSelector) elementSelector = Functions.Identity; // Allow for 'null' and not just undefined.\r\n\t\treturn new Enumerable>(\r\n\t\t\t() => this.toLookup(keySelector, elementSelector, compareSelector)\r\n\t\t\t\t.getEnumerator()\r\n\t\t);\r\n\t}\r\n\r\n\tpartitionBy(keySelector:Selector):Enumerable>;\r\n\tpartitionBy(\r\n\t\tkeySelector:Selector,\r\n\t\telementSelector:Selector,\r\n\t\tresultSelector?:(key:TKey, element:TElement[]) => IGrouping,\r\n\t\tcompareSelector?:Selector):Enumerable>;\r\n\tpartitionBy(\r\n\t\tkeySelector:Selector,\r\n\t\telementSelector?:Selector,\r\n\t\tresultSelector:(key:TKey, element:TElement[]) => IGrouping\r\n\t\t\t= (key:TKey, elements:TElement[]) => new Grouping(key, elements),\r\n\t\tcompareSelector:Selector\r\n\t\t\t= Functions.Identity):Enumerable>|Enumerable>\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\t\tif(!elementSelector) elementSelector = Functions.Identity; // Allow for 'null' and not just undefined.\r\n\t\treturn new Enumerable>(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar key:TKey;\r\n\t\t\t\tvar compareKey:TCompare;\r\n\t\t\t\tvar group:TElement[];\r\n\t\t\t\tvar len:number;\r\n\r\n\t\t\t\treturn new EnumeratorBase>(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tif(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tkey = keySelector(enumerator.current);\r\n\t\t\t\t\t\t\tcompareKey = compareSelector(key);\r\n\t\t\t\t\t\t\tgroup = [elementSelector(enumerator.current)];\r\n\t\t\t\t\t\t\tlen = 1;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\tgroup = null;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(!group)\r\n\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\r\n\t\t\t\t\t\tvar hasNext:boolean, c:T;\r\n\t\t\t\t\t\twhile((hasNext = enumerator.moveNext()))\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tc = enumerator.current;\r\n\t\t\t\t\t\t\tif(compareKey===compareSelector(keySelector(c)))\r\n\t\t\t\t\t\t\t\tgroup[len++] = elementSelector(c);\r\n\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar result:IGrouping\r\n\t\t\t\t\t\t\t = resultSelector(key, group);\r\n\r\n\t\t\t\t\t\tif(hasNext)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tc = enumerator.current;\r\n\t\t\t\t\t\t\tkey = keySelector(c);\r\n\t\t\t\t\t\t\tcompareKey = compareSelector(key);\r\n\t\t\t\t\t\t\tgroup = [elementSelector(c)];\r\n\t\t\t\t\t\t\tlen = 1;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tgroup = null;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn yielder.yieldReturn(result);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t\tgroup = null;\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\t// #region Aggregate Methods\r\n\r\n\taggregate(\r\n\t\tfunc:(a:T, b:T) => T,\r\n\t\tseed?:T):T\r\n\t{\r\n\t\treturn this.scan(func, seed).lastOrDefault();\r\n\t}\r\n\r\n\taverage(selector:Selector = Type.numberOrNaN):number\r\n\t{\r\n\t\tvar count = 0;\r\n\t\tvar sum = this.sum((e, i)=>\r\n\t\t{\r\n\t\t\tcount++;\r\n\t\t\treturn selector(e, i);\r\n\t\t});\r\n\r\n\t\treturn (isNaN(sum) || !count)\r\n\t\t\t? NaN\r\n\t\t\t: (sum/count);\r\n\t}\r\n\r\n\t// If using numbers, it may be useful to call .takeUntil(v=>v==Infinity,true) before calling max. See static versions for numbers.\r\n\tmax():T\r\n\t{\r\n\t\treturn this.aggregate(Functions.Greater);\r\n\t}\r\n\r\n\tmin():T\r\n\t{\r\n\t\treturn this.aggregate(Functions.Lesser);\r\n\t}\r\n\r\n\tmaxBy(keySelector:Selector = Functions.Identity):T\r\n\t{\r\n\t\treturn this.aggregate((a:T, b:T) => (keySelector(a)>keySelector(b)) ? a : b);\r\n\t}\r\n\r\n\tminBy(keySelector:Selector = Functions.Identity):T\r\n\t{\r\n\t\treturn this.aggregate((a:T, b:T) => (keySelector(a) = Type.numberOrNaN):number\r\n\t{\r\n\t\tvar sum = 0;\r\n\r\n\t\t// This allows for infinity math that doesn't destroy the other values.\r\n\t\tvar sumInfinite = 0; // Needs more investigation since we are really trying to retain signs.\r\n\r\n\t\tthis.forEach(\r\n\t\t\tx=>\r\n\t\t\t{\r\n\t\t\t\tvar value = selector(x);\r\n\t\t\t\tif(isNaN(value))\r\n\t\t\t\t{\r\n\t\t\t\t\tsum = NaN;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tif(isFinite(value))\r\n\t\t\t\t\tsum += value;\r\n\t\t\t\telse\r\n\t\t\t\t\tsumInfinite +=\r\n\t\t\t\t\t\tvalue>0 ?\r\n\t\t\t\t\t\t\t(+1) :\r\n\t\t\t\t\t\t\t(-1);\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\treturn isNaN(sum) ? NaN : (sumInfinite ? (sumInfinite*Infinity) : sum);\r\n\t}\r\n\r\n\t// Multiplication...\r\n\tproduct(selector:Selector = Type.numberOrNaN):number\r\n\t{\r\n\t\tvar result = 1, exists:boolean = false;\r\n\r\n\t\tthis.forEach(\r\n\t\t\t(x, i)=>\r\n\t\t\t{\r\n\t\t\t\texists = true;\r\n\t\t\t\tvar value = selector(x, i);\r\n\t\t\t\tif(isNaN(value))\r\n\t\t\t\t{\r\n\t\t\t\t\tresult = NaN;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(value==0)\r\n\t\t\t\t{\r\n\t\t\t\t\tresult = 0; // Multiplying by zero will always end in zero.\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Multiplication can never recover from infinity and simply must retain signs.\r\n\t\t\t\t// You could cancel out infinity with 1/infinity but no available representation exists.\r\n\t\t\t\tresult *= value;\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\treturn (exists && isNaN(result)) ? NaN : result;\r\n\t}\r\n\r\n\t/**\r\n\t * Takes the first number and divides it by all following.\r\n\t * @param selector\r\n\t * @returns {number}\r\n\t */\r\n\tquotient(selector:Selector = Type.numberOrNaN):number\r\n\t{\r\n\t\tvar count = 0;\r\n\t\tvar result:number = NaN;\r\n\r\n\t\tthis.forEach(\r\n\t\t\t(x, i)=>\r\n\t\t\t{\r\n\t\t\t\tvar value = selector(x, i);\r\n\t\t\t\tcount++;\r\n\r\n\t\t\t\tif(count===1)\r\n\t\t\t\t{\r\n\t\t\t\t\tresult = value;\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tif(isNaN(value) || value===0 || !isFinite(value))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tresult = NaN;\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tresult /= value;\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\tif(count===1)\r\n\t\t\tresult = NaN;\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\t// #region Single Value Return...\r\n\r\n\tlast():T\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar value:T = undefined;\r\n\t\tvar found:boolean = false;\r\n\t\t_.forEach(\r\n\t\t\tx =>\r\n\t\t\t{\r\n\t\t\t\tfound = true;\r\n\t\t\t\tvalue = x;\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\tif(!found) throw new Error(\"last:No element satisfies the condition.\");\r\n\t\treturn value;\r\n\t}\r\n\r\n\tlastOrDefault(defaultValue:T = null):T\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar value:T = undefined;\r\n\t\tvar found:boolean = false;\r\n\t\t_.forEach(\r\n\t\t\tx=>\r\n\t\t\t{\r\n\t\t\t\tfound = true;\r\n\t\t\t\tvalue = x;\r\n\t\t\t}\r\n\t\t);\r\n\t\treturn (!found) ? defaultValue : value;\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\tshare():Enumerable\r\n\t{\r\n\t\treturn >super.share();\r\n\t}\r\n\r\n\r\n\tcatchError(handler:(e:any)=>void):Enumerable\r\n\t{\r\n\t\treturn >super.catchError(handler);\r\n\t}\r\n\r\n\r\n\tfinallyAction(action:()=>void):Enumerable\r\n\t{\r\n\t\treturn >super.finallyAction(action);\r\n\t}\r\n\r\n\tmemoize():Enumerable\r\n\t{\r\n\t\tvar _ = this, disposed:boolean = !_.throwIfDisposed();\r\n\r\n\t\tvar cache:T[];\r\n\t\tvar enumerator:IEnumerator;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\tif(!enumerator)\r\n\t\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tif(!cache)\r\n\t\t\t\t\t\t\tcache = [];\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\tvar i = index++;\r\n\r\n\t\t\t\t\t\tif(i>=cache.length)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\treturn (enumerator.moveNext())\r\n\t\t\t\t\t\t\t\t? yielder.yieldReturn(cache[i] = enumerator.current)\r\n\t\t\t\t\t\t\t\t: false;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn yielder.yieldReturn(cache[i]);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t\tif(cache)\r\n\t\t\t\t\tcache.length = 0;\r\n\t\t\t\tcache = null;\r\n\r\n\t\t\t\tdispose(enumerator);\r\n\t\t\t\tenumerator = null;\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\r\n}\r\n\r\n\r\n// Provided for type guarding.\r\nexport class FiniteEnumerable\r\nextends Enumerable\r\n{\r\n\tconstructor(\r\n\t\tenumeratorFactory:() => IEnumerator,\r\n\t\tfinalizer?:() => void)\r\n\t{\r\n\t\tsuper(enumeratorFactory, finalizer, false);\r\n\t}\r\n\r\n}\r\n\r\nclass ArrayEnumerable\r\nextends FiniteEnumerable\r\n{\r\n\tprivate _source:IArray;\r\n\r\n\tconstructor(source:IArray)\r\n\t{\r\n\t\tsuper(() =>\r\n\t\t{\r\n\t\t\t_.throwIfDisposed();\r\n\t\t\treturn new ArrayEnumerator(() =>\r\n\t\t\t{\r\n\t\t\t\t_.throwIfDisposed(\"The underlying ArrayEnumerable was disposed.\", \"ArrayEnumerator\");\r\n\r\n\t\t\t\treturn _._source; // Should never be null, but ArrayEnumerable if not disposed simply treats null as empty array.\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tvar _ = this;\r\n\t\t_._disposableObjectName = \"ArrayEnumerable\";\r\n\t\t_._source = source;\r\n\r\n\t}\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis._source = null;\r\n\t}\r\n\r\n\tget source():IArray\r\n\t{\r\n\t\treturn this._source;\r\n\t}\r\n\r\n\ttoArray():T[]\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\treturn toArray(_._source);\r\n\t}\r\n\r\n\tasEnumerable():ArrayEnumerable\r\n\t{\r\n\t\treturn new ArrayEnumerable(this._source);\r\n\t}\r\n\r\n\t// Optimize forEach so that subsequent usage is optimized.\r\n\tforEach(action:Predicate | Action):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tforEach(_._source, action);\r\n\t}\r\n\r\n\t// These methods should ALWAYS check for array length before attempting anything.\r\n\r\n\tany(predicate?:Predicate):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar source = _._source, len = source.length;\r\n\t\treturn len && (!predicate || super.any(predicate));\r\n\t}\r\n\r\n\tcount(predicate?:Predicate):number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar source = _._source, len = source.length;\r\n\t\treturn len && (predicate ? super.count(predicate) : len);\r\n\t}\r\n\t\r\n\telementAtOrDefault(index:number, defaultValue:T = null):T\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\tInteger.assertZeroOrGreater(index,'index');\r\n\r\n\t\tvar source = _._source;\r\n\t\treturn index\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\r\n\t\tif(!(count>0))\r\n\t\t\treturn _;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() => new ArrayEnumerator(() => _._source, count)\r\n\t\t);\r\n\t}\r\n\r\n\ttakeExceptLast(count:number = 1):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn _.take(_._source.length - count);\r\n\t}\r\n\r\n\tskipToLast(count:number):Enumerable\r\n\t{\r\n\t\tif(!(count>0))\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\tvar _ = this;\r\n\t\tif(!isFinite(count))\r\n\t\t\treturn _;\r\n\r\n\t\tvar len = _._source\r\n\t\t\t? _._source.length\r\n\t\t\t: 0;\r\n\r\n\t\treturn _.skip(len - count);\r\n\t}\r\n\r\n\treverse():Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() => new ArrayEnumerator(\r\n\t\t\t\t() => _._source, _._source\r\n\t\t\t\t\t? (_._source.length - 1)\r\n\t\t\t\t\t: 0, -1\r\n\t\t\t)\r\n\t\t);\r\n\t}\r\n\r\n\tmemoize():ArrayEnumerable\r\n\t{\r\n\t\treturn this.asEnumerable();\r\n\t}\r\n\r\n\tsequenceEqual(\r\n\t\tsecond:IEnumerableOrArray,\r\n\t\tequalityComparer:EqualityComparison = Values.areEqual):boolean\r\n\t{\r\n\t\tif(Type.isArrayLike(second))\r\n\t\t\treturn Arrays.areEqual(this.source, second, true, equalityComparer);\r\n\r\n\t\tif(second instanceof ArrayEnumerable)\r\n\t\t\treturn second.sequenceEqual(this.source, equalityComparer);\r\n\r\n\t\treturn super.sequenceEqual(second, equalityComparer);\r\n\t}\r\n\r\n\r\n\ttoJoinedString(separator:string = \"\", selector:Selector = Functions.Identity)\r\n\t{\r\n\t\tvar s = this._source;\r\n\t\treturn !selector && Array.isArray(s)\r\n\t\t\t? (>s).join(separator)\r\n\t\t\t: super.toJoinedString(separator, selector);\r\n\t}\r\n\r\n}\r\n\r\n\r\nexport interface IGrouping\r\nextends Enumerable\r\n{\r\n\tkey:TKey;\r\n}\r\n\r\nclass Grouping\r\nextends ArrayEnumerable implements IGrouping\r\n{\r\n\r\n\tconstructor(private _groupKey:TKey, elements:TElement[])\r\n\t{\r\n\t\tsuper(elements);\r\n\t}\r\n\r\n\tget key():TKey\r\n\t{\r\n\t\treturn this._groupKey;\r\n\t}\r\n}\r\n\r\n\r\nexport interface ILookup\r\nextends IEnumerable>\r\n{\r\n\tcount:number;\r\n\tget(key:TKey):TElement[];\r\n\tcontains(key:TKey):boolean;\r\n}\r\n\r\nclass Lookup\r\nimplements ILookup\r\n{\r\n\r\n\tconstructor(private _dictionary:Dictionary)\r\n\t{\r\n\t}\r\n\r\n\tget count():number\r\n\t{\r\n\t\treturn this._dictionary.count;\r\n\t}\r\n\r\n\tget(key:TKey):TElement[]\r\n\t{\r\n\t\treturn this._dictionary.getValue(key);\r\n\t}\r\n\r\n\tcontains(key:TKey):boolean\r\n\t{\r\n\t\treturn this._dictionary.containsKey(key);\r\n\t}\r\n\r\n\tgetEnumerator():IEnumerator>\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\t\tvar enumerator:IEnumerator>;\r\n\r\n\t\treturn new EnumeratorBase>(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tenumerator = _._dictionary.getEnumerator();\r\n\t\t\t},\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\r\n\t\t\t\tif(!enumerator.moveNext())\r\n\t\t\t\t\treturn false;\r\n\r\n\t\t\t\tvar current = enumerator.current;\r\n\r\n\t\t\t\treturn yielder.yieldReturn(new Grouping(current.key, current.value));\r\n\t\t\t},\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdispose(enumerator);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n}\r\n\r\n\r\nexport interface IOrderedEnumerable\r\nextends FiniteEnumerable\r\n{\r\n\tthenBy(keySelector:(value:T) => any):IOrderedEnumerable;\r\n\tthenByDescending(keySelector:(value:T) => any):IOrderedEnumerable;\r\n\tthenUsing(comparison:Comparison):IOrderedEnumerable;\r\n\tthenUsingReversed(comparison:Comparison):IOrderedEnumerable\r\n}\r\n\r\nclass OrderedEnumerable\r\nextends FiniteEnumerable implements IOrderedEnumerable\r\n{\r\n\r\n\tconstructor(\r\n\t\tprivate source:IEnumerable,\r\n\t\tpublic keySelector:(value:T) => TOrderBy,\r\n\t\tpublic order:Order,\r\n\t\tpublic parent?:OrderedEnumerable,\r\n\t\tpublic comparer:Comparison = Values.compare)\r\n\t{\r\n\t\tsuper(null);\r\n\t\tthrowIfEndless(source && source.isEndless);\r\n\t}\r\n\r\n\tprivate createOrderedEnumerable(\r\n\t\tkeySelector:(value:T) => TOrderBy,\r\n\t\torder:Order):IOrderedEnumerable\r\n\t{\r\n\t\treturn new OrderedEnumerable(this.source, keySelector, order, this);\r\n\t}\r\n\r\n\tthenBy(keySelector:(value:T) => TOrderBy):IOrderedEnumerable\r\n\t{\r\n\t\treturn this.createOrderedEnumerable(keySelector, Order.Ascending);\r\n\t}\r\n\r\n\tthenUsing(comparison:Comparison):IOrderedEnumerable\r\n\t{\r\n\t\treturn new OrderedEnumerable(this.source, null, Order.Ascending, this, comparison);\r\n\t}\r\n\r\n\tthenByDescending(keySelector:(value:T) => TOrderBy):IOrderedEnumerable\r\n\t{\r\n\t\treturn this.createOrderedEnumerable(keySelector, Order.Descending);\r\n\t}\r\n\r\n\tthenUsingReversed(comparison:Comparison):IOrderedEnumerable\r\n\t{\r\n\t\treturn new OrderedEnumerable(this.source, null, Order.Descending, this, comparison);\r\n\t}\r\n\r\n\tgetEnumerator():EnumeratorBase\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar buffer:T[];\r\n\t\tvar indexes:number[];\r\n\t\tvar index:number = 0;\r\n\r\n\t\treturn new EnumeratorBase(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tindex = 0;\r\n\t\t\t\tbuffer = Enumerable.toArray(_.source);\r\n\t\t\t\tindexes = createSortContext(_).generateSortedIndexes(buffer);\r\n\t\t\t},\r\n\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\t\t\t\treturn (index\r\n\t\t\t{\r\n\t\t\t\tif(buffer)\r\n\t\t\t\t\tbuffer.length = 0;\r\n\t\t\t\tbuffer = null;\r\n\t\t\t\tif(indexes)\r\n\t\t\t\t\tindexes.length = 0;\r\n\t\t\t\tindexes = null;\r\n\t\t\t},\r\n\r\n\t\t\tfalse\r\n\t\t);\r\n\t}\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis.source = null;\r\n\t\tthis.keySelector = null;\r\n\t\tthis.order = null;\r\n\t\tthis.parent = null;\r\n\t}\r\n\r\n}\r\n\r\n// A private static helper for the weave function.\r\nfunction nextEnumerator(queue:Queue>, e:IEnumerator):IEnumerator {\r\n\tif(e) {\r\n\t\tif(e.moveNext()) {\r\n\t\t\tqueue.enqueue(e);\r\n\t\t} else {\r\n\t\t\tdispose(e);\r\n\t\t\te = null;\r\n\t\t}\r\n\t}\r\n\treturn e;\r\n}\r\n\r\n/**\r\n * Recursively builds a SortContext chain.\r\n * @param orderedEnumerable\r\n * @param currentContext\r\n * @returns {any}\r\n */\r\nfunction createSortContext(\r\n\torderedEnumerable:OrderedEnumerable,\r\n\tcurrentContext:IComparer = null):KeySortedContext\r\n{\r\n\r\n\tvar context = new KeySortedContext(\r\n\t\tcurrentContext,\r\n\t\torderedEnumerable.keySelector,\r\n\t\torderedEnumerable.order,\r\n\t\torderedEnumerable.comparer);\r\n\r\n\tif(orderedEnumerable.parent)\r\n\t\treturn createSortContext(orderedEnumerable.parent, context);\r\n\r\n\treturn context;\r\n}\r\n\r\n// #region Helper Functions...\r\n// This allows for the use of a boolean instead of calling this.throwIfDisposed()\r\n// since there is a strong chance of introducing a circular reference.\r\nfunction throwIfDisposed(disposed:boolean):void\r\n{\r\n\tif(disposed) throw new ObjectDisposedException(\"Enumerable\");\r\n}\r\n// #endregion\r\n\r\nexport default Enumerable;\r\n"]} \ No newline at end of file +{"version":3,"sources":["System.Linq/Linq.js","System.Linq/Linq.ts"],"names":[],"mappings":";;;;;AAKA;;;;;;;;;;;;;;ACEA,IAAY,SAAM,QAAM,mBAAN,CAAN;AACZ,IAAY,SAAM,QAAM,qCAAN,CAAN;AACZ,IAAY,eAAY,QAAM,qCAAN,CAAZ;AACZ,IAAA,eAAA,QAQO,8CARP,CAAA;AASA,IAAA,UAAA,QAAmB,iBAAnB,CAAA;AACA,IAAA,YAAA,QAAsB,mBAAtB,CAAA;AACA,IAAA,cAAA,QAAyC,qBAAzC,CAAA;AACA,IAAA,oBAAA,QAA8B,mDAA9B,CAAA;AACA,IAAA,mBAAA,QAA6B,kDAA7B,CAAA;AACA,IAAA,eAAA,QAAyB,+CAAzB,CAAA;AACA,IAAA,UAAA,QAAoB,6BAApB,CAAA;AACA,IAAA,YAAA,QAA6B,8BAA7B,CAAA;AACA,IAAA,mBAAA,QAA6B,qCAA7B,CAAA;AACA,IAAA,mCAAA,QAA6C,kEAA7C,CAAA;AACA,IAAA,4BAAA,QAAsC,8CAAtC,CAAA;AACA,IAAA,qBAAA,QAA+B,gDAA/B,CAAA;AACA,IAAA,0BAAA,QAAoC,4CAApC,CAAA;AACA,IAAA,gCAAA,QAA0C,kDAA1C,CAAA;AAcA,IAAM,kBAAsB,EAAtB;AACN,IAAM,QAAY,KAAK,CAAL;AAClB,IAAM,QAAkC,SAAlC,KAAkC;WAAW;CAAX;;IAGxC;;;;;;;;;;;gCAEY,GAAK,GAAG;AAElB,mBAAO,IAAE,CAAF,GAAM,CAAN,GAAU,CAAV,CAFW;;;;+BAKT,GAAK,GAAG;AAEjB,mBAAO,IAAE,CAAF,GAAM,CAAN,GAAU,CAAV,CAFU;;;;WAPnB;EAA4B,YAAA,SAAA;;AAa5B,IAAI,YAAY,IAAI,aAAJ,EAAZ;AACJ,OAAO,MAAP,CAAc,SAAd;AAGA,SAAA,kBAAA,GAAA;AAEC,WAAO,aAAA,KAAA,CAFR;CAAA;;IA0BA;;;AAGC,aAHD,kBAGC,CACW,kBADX,EAEC,SAFD,EAEsB;8BALvB,oBAKuB;;4EALvB,+BAOQ,YAFe;;AADX,eAAA,kBAAA,GAAA,kBAAA,CACW;AAGrB,eAAK,UAAL,GAAkB,IAAlB,CAHqB;;KAFtB;;iBAHD;;wCAkBc;AAGZ,iBAAK,eAAL,GAHY;AAKZ,mBAAO,KAAK,kBAAL,EAAP,CALY;;;;qCAWO;AAEnB,uCA/BF,6DA+BE,CAFmB;AAGnB,iBAAK,kBAAL,GAA0B,IAA1B,CAHmB;;;;uCASR;AAEX,gBAAI,IAAI,IAAJ,CAFO;AAGX,cAAE,eAAF,GAHW;AAIX,mBAAO,IAAI,kBAAJ,CAA0B;uBAAM,EAAE,aAAF;aAAN,CAAjC,CAJW;;;;iCAeX,QACA,aACkC;gBAAlC,kEAAoB,KAAK,SAAL,gBAAc;;AAGlC,gBAAI,IAAI,IAAJ;gBAAU,WAAW,CAAC,EAAE,eAAF,EAAD,CAHS;AAKlC,mBAAO,IAAI,UAAJ,CACN,YAAA;AAEC,oBAAI,UAAJ,CAFD;AAGC,oBAAI,QAAe,CAAf,CAHL;AAKC,uBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAEC,oCAAgB,QAAhB,EAFD;AAIC,wBAAG,WAAH,EAAgB,cAAhB;AACA,4BAAQ,CAAR,CALD;AAMC,iCAAa,EAAE,aAAF,EAAb,CAND;iBAAA,EAUA,UAAC,OAAD,EAAQ;AAEP,oCAAgB,QAAhB,EAFO;AAIP,2BAAM,WAAW,QAAX,EAAN,EACA;AACC,4BAAI,eAAoB,OAAO,WAAW,OAAX,EAAoB,OAA3B,CAApB,CADL;AAGC,4BAAG,iBAAe,KAAf,IAAwB,iBAAe,CAAf,EAC1B,OAAO,QAAQ,UAAR,EAAP,CADD;AAGA,4BAAG,iBAAe,CAAf,EACF,OAAO,QAAQ,WAAR,CAAoB,WAAW,OAAX,CAA3B,CADD;qBAPD;AAYA,2BAAO,KAAP,CAhBO;iBAAR,EAmBA,YAAA;AAEC,8BAAA,OAAA,CAAQ,UAAR,EAFD;iBAAA,EAKA,SAnCM,CAAP,CALD;aAAA,EA8CA,YAAA;AAEC,2BAAW,IAAX,CAFD;aAAA,EAKA,SApDM,CAAP,CALkC;;;;gCA8D9B;AAEJ,iBAAK,eAAL,GAFI;AAGJ,iBAAK,QAAL,CAAc,KAAd,EACE,aADF,GAEE,QAFF,GAHI;;;;6BAUA,OAAY;AAEhB,gBAAI,IAAI,IAAJ,CAFY;AAGhB,cAAE,eAAF,GAHgB;AAKhB,gBAAG,CAAC,SAAS,KAAT,CAAD,EACF,OAAO,WAAW,KAAX,EAAP,CADD;AAGA,sBAAA,OAAA,CAAQ,MAAR,CAAe,KAAf,EAAsB,OAAtB,EARgB;AAUhB,mBAAO,KAAK,QAAL,CACN,UAAC,OAAD,EAAY,KAAZ;uBACC,QAAM,KAAN,GACG,CADH,GAEG,CAFH;aADD,CADD,CAVgB;;;;6BAmBZ,OAAY;AAEhB,gBAAG,EAAE,QAAM,CAAN,CAAF,EACF,OAAO,WAAW,KAAX,EAAP,CADD;AAGA,gBAAI,IAAI,IAAJ,CALY;AAMhB,cAAE,eAAF,GANgB;AAQhB,gBAAG,CAAC,SAAS,KAAT,CAAD,EACF,MAAM,IAAI,8BAAA,2BAAA,CAA4B,OAAhC,EAAyC,KAAzC,EAAgD,iBAAhD,CAAN,CADD;AAGA,sBAAA,OAAA,CAAQ,MAAR,CAAe,KAAf,EAAsB,OAAtB,EAXgB;AAchB,mBAAsB,EAAE,QAAF,CAAW,UAAC,OAAD,EAAY,KAAZ;uBAA8B,QAAM,KAAN;aAA9B,EAA2C,IAAtD,EAA4D,KAA5D,CAAtB,CAdgB;;;;kCAmBP,OAAY;AAErB,gBAAI,IAAI,KAAK,kBAAL,CAAwB,KAAxB,EAA+B,eAA/B,CAAJ,CAFiB;AAGrB,gBAAG,MAAI,eAAJ,EAAqB,MAAM,IAAI,8BAAA,2BAAA,CAA4B,OAAhC,EAAyC,KAAzC,EAAgD,8DAAhD,CAAN,CAAxB;AACA,mBAAO,CAAP,CAJqB;;;;2CAOH,OAAmC;gBAArB,qEAAiB,oBAAI;;AAErD,gBAAI,IAAI,IAAJ,CAFiD;AAGrD,cAAE,eAAF,GAHqD;AAKrD,sBAAA,OAAA,CAAQ,mBAAR,CAA4B,KAA5B,EAAmC,OAAnC,EALqD;AAMrD,gBAAI,IAAW,KAAX,CANiD;AAQrD,mBAAO,UAAA,KAAA,CACN,KAAK,aAAL,EADM,EAEN,aAAC;AAEA,oBAAI,IAAI,CAAJ,CAFJ;AAGA,uBAAM,EAAE,QAAF,EAAN,EACA;AACC,wBAAG,KAAG,CAAH,EAAM,OAAO,EAAE,OAAF,CAAhB;AACA,wBAFD;iBADA;AAMA,uBAAO,YAAP,CATA;aAAD,CAFD,CARqD;;;;gCAgCjD;AAEJ,gBAAI,IAAI,KAAK,cAAL,CAAoB,eAApB,CAAJ,CAFA;AAGJ,gBAAG,MAAI,eAAJ,EAAqB,MAAM,IAAI,KAAJ,CAAU,8BAAV,CAAN,CAAxB;AACA,mBAAO,CAAP,CAJI;;;;yCAO+B;gBAArB,qEAAiB,oBAAI;;AAEnC,gBAAI,IAAI,IAAJ,CAF+B;AAGnC,cAAE,eAAF,GAHmC;AAKnC,mBAAO,UAAA,KAAA,CACN,KAAK,aAAL,EADM,EAEN;uBAAI,EAAE,QAAF,KAAe,EAAE,OAAF,GAAY,YAA3B;aAAJ,CAFD,CALmC;;;;iCAY9B;AAEL,gBAAI,IAAI,IAAJ,CAFC;AAGL,cAAE,eAAF,GAHK;AAKL,mBAAO,UAAA,KAAA,CACN,KAAK,aAAL,EADM,EAEN,aAAC;AAEA,oBAAG,EAAE,QAAF,EAAH,EACA;AACC,wBAAI,QAAQ,EAAE,OAAF,CADb;AAEC,wBAAG,CAAC,EAAE,QAAF,EAAD,EAAe,OAAO,KAAP,CAAlB;AACA,0BAAM,IAAI,KAAJ,CAAU,iDAAV,CAAN,CAHD;iBADA;AAMA,sBAAM,IAAI,KAAJ,CAAU,+BAAV,CAAN,CARA;aAAD,CAFD,CALK;;;;0CAoB+B;gBAArB,qEAAiB,oBAAI;;AAGpC,gBAAI,IAAI,IAAJ,CAHgC;AAIpC,cAAE,eAAF,GAJoC;AAMpC,mBAAO,UAAA,KAAA,CACN,KAAK,aAAL,EADM,EAEN,aAAC;AAEA,oBAAG,EAAE,QAAF,EAAH,EACA;AACC,wBAAI,QAAQ,EAAE,OAAF,CADb;AAEC,wBAAG,CAAC,EAAE,QAAF,EAAD,EAAe,OAAO,KAAP,CAAlB;iBAHD;AAKA,uBAAO,YAAP,CAPA;aAAD,CAFD,CANoC;;;;8BAoBlC;AAEF,gBAAI,IAAI,IAAJ,CAFF;AAGF,cAAE,eAAF,GAHE;AAKF,mBAAO,UAAA,KAAA,CACN,KAAK,aAAL,EADM,EAEN;uBAAI,EAAE,QAAF;aAAJ,CAFD,CALE;;;;kCAWI;AAEN,mBAAO,CAAC,KAAK,GAAL,EAAD,CAFD;;;;6CAyBN,kBAG+C;gBAF/C,uEAE6B,UAAU,QAAV,gBAAkB;;AAE/C,gBAAI,IAAI,IAAJ;gBAAU,YAAY,EAAE,UAAF,IAAgB,IAAhB,CAFqB;AAK/C,mBAAO,IAAI,UAAJ,CACN,YAAA;AAEC,oBAAI,UAAJ,CAFD;AAGC,oBAAI,YAAmB,CAAnB,CAHL;AAIC,oBAAI,MAAJ,EAAkB,GAAlB,CAJD;AAMC,uBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAEC,gCAAY,CAAZ,CAFD;AAGC,6BAAS,EAAT,CAHD;AAIC,0BAAM,CAAN,CAJD;AAKC,iCAAa,EAAE,aAAF,EAAb,CALD;iBAAA,EAQA,UAAC,OAAD,EAAQ;AAEP,2BAAM,IAAN,EACA;AACC,4BAAG,WAAW,QAAX,EAAH,EACA;AACC,mCAAO,KAAP,IAAgB,WAAW,OAAX,CADjB;AAEC,mCAAO,QAAQ,WAAR,CAAoB,eAAe,WAAW,OAAX,EAAoB,SAAnC,CAApB,CAAP,CAFD;yBADA;AAMA,4BAAG,CAAC,GAAD,EACF,OAAO,QAAQ,UAAR,EAAP,CADD;AAGA,4BAAI,OAAO,WACT,IADS,CACJ,MADI,EAET,UAFS,CAEE,gBAFF,CAAP,CAVL;AAcC,4BAAG,CAAC,KAAK,GAAL,EAAD,EACH;AACC,mCAAO,QAAQ,UAAR,EAAP,CADD;yBADA,MAKA;AACC,wCADD;AAEC,qCAAS,EAAT,CAFD;AAGC,kCAAM,CAAN,CAHD;AAIC,uCAAW,OAAX,GAJD;AAKC,yCAAa,KAAK,aAAL,EAAb,CALD;yBALA;qBAfD;iBAFD,EAgCA,YAAA;AAEC,8BAAA,OAAA,CAAQ,UAAR,EAFD;AAGC,2BAAO,MAAP,GAAgB,CAAhB,CAHD;iBAAA,EAMA,SA/CM,CAAP,CAND;aAAA,EAwDA,IAzDM,EA2DN,SA3DM,CAAP,CAL+C;;;;2CAoF/C,kBAG+C;gBAF/C,uEAE6B,UAAU,QAAV,gBAAkB;;AAE/C,gBAAI,IAAI,IAAJ;gBAAU,YAAY,EAAE,UAAF,IAAgB,IAAhB,CAFqB;AAI/C,mBAAO,IAAI,UAAJ,CACN,YAAA;AAGC,oBAAI,kBAAqC,EAArC,CAHL;AAIC,oBAAI,UAAJ,CAJD;AAKC,oBAAI,GAAJ,CALD;AAOC,uBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAEC,iCAAa,EAAE,aAAF,EAAb,CAFD;AAGC,0BAAM,CAAN,CAHD;iBAAA,EAMA,UAAC,OAAD,EAAQ;AAEP,2BAAM,IAAN,EACA;AACC,4BAAG,WAAW,QAAX,EAAH,EACA;AACC,gCAAI,QAAQ,eAAe,WAAW,OAAX,EAAoB,GAAnC,CAAR,CADL;AAEC,4CAAgB,KAAhB,IAAyB,UAAzB,CAFD;AAGC,gCAAI,IAAI,WAAW,OAAX,CAAwB,iBAAiB,WAAW,OAAX,CAAzC,CAAJ,CAHL;AAIC,yCAAa,IAAI,EAAE,aAAF,EAAJ,GAAwB,aAAA,KAAA,CAJtC;AAKC,mCAAO,QAAQ,WAAR,CAAoB,KAApB,CAAP,CALD;yBADA;AASA,4BAAG,OAAK,CAAL,EAAQ,OAAO,KAAP,CAAX;AAEA,mCAAW,OAAX,GAZD;AAaC,qCAAa,gBAAgB,EAAE,GAAF,CAA7B,CAbD;AAcC,wCAAgB,MAAhB,GAAyB,GAAzB,CAdD;qBADA;iBAFD,EAqBA,YAAA;AAEC,wBACA;AACC,kCAAA,OAAA,CAAQ,UAAR,EADD;qBADA,SAKA;AACC,kCAAA,OAAA,CAAQ,KAAR,CAAc,eAAd,EADD;qBALA;iBAFD,EAYA,SAxCM,CAAP,CAPD;aAAA,EAkDA,IAnDM,EAoDN,SApDM,CAAP,CAJ+C;;;;kCA6DzC;AAEN,gBAAI,IAAI,IAAJ;gBAAU,YAAY,EAAE,UAAF,IAAgB,IAAhB,CAFpB;AAIN,mBAAO,IAAI,UAAJ,CACN,YAAA;AAEC,oBAAI,UAAJ,CAFD;AAGC,oBAAI,mBAAoC,IAApC,CAHL;AAKC,uBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAEC,iCAAa,EAAE,aAAF,EAAb,CAFD;iBAAA,EAKA,UAAC,OAAD,EAAQ;AAEP,2BAAM,IAAN,EACA;AACC,4BAAG,gBAAH,EACA;AACC,gCAAG,iBAAiB,QAAjB,EAAH,EACA;AACC,uCAAO,QAAQ,WAAR,CAAoB,iBAAiB,OAAjB,CAA3B,CADD;6BADA,MAKA;AACC,iDAAiB,OAAjB,GADD;AAEC,mDAAmB,IAAnB,CAFD;6BALA;yBAFD;AAaA,4BAAG,WAAW,QAAX,EAAH,EACA;AACC,gCAAI,IAAI,WAAW,OAAX,CADT;AAIC,gCAAI,IAAI,CAAC,QAAA,IAAA,CAAK,QAAL,CAAc,CAAd,CAAD,IAAqB,WAAW,OAAX,CAAmB,CAAnB,CAArB,CAJT;AAKC,gCAAG,CAAH,EACA;AACC,mDACG,EACD,UADC,CACU,UAAU,QAAV,CADV,CAED,OAFC,GAGD,aAHC,EADH,CADD;AAMC,yCAND;6BADA,MAUA;AACC,uCAAO,QAAQ,WAAR,CAAoB,CAApB,CAAP,CADD;6BAVA;yBAND;AAqBA,+BAAO,QAAQ,UAAR,EAAP,CAnCD;qBADA;iBAFD,EA0CA,YAAA;AAEC,8BAAA,OAAA,CAAQ,UAAR,EAAoB,gBAApB,EAFD;iBAAA,EAKA,SArDM,CAAP,CALD;aAAA,EA6DA,IA9DM,EA+DN,SA/DM,CAAP,CAJM;;;;iCAwEW,UAAuC;AAExD,gBAAI,IAAI,IAAJ,CAFoD;AAIxD,mBAAO,IAAI,UAAJ,CACN,YAAA;AAEC,oBAAI,UAAJ,CAFD;AAIC,uBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAEC,iCAAa,EAAE,aAAF,EAAb,CAFD;AAGC,+BAAW,QAAX,GAHD;iBAAA,EAMA,UAAC,OAAD,EAAQ;AAEP,wBAAI,OAAO,WAAW,OAAX,CAFJ;AAGP,2BAAO,WAAW,QAAX,MACH,QAAQ,WAAR,CAAoB,SAAS,IAAT,EAAe,WAAW,OAAX,CAAnC,CADG,CAHA;iBAAR,EAOA,YAAA;AAEC,8BAAA,OAAA,CAAQ,UAAR,EAFD;iBAAA,EAKA,EAAE,UAAF,CAnBD,CAJD;aAAA,EA0BA,IA3BM,EA6BN,EAAE,UAAF,CA7BD,CAJwD;;;;6BAqCpD,MAAsB,MAAO;AAGjC,gBAAI,YAAY,SAAO,KAAP,CAHiB;AAIjC,gBAAI,IAAI,IAAJ,CAJ6B;AAMjC,mBAAO,IAAI,UAAJ,CACN,YAAA;AAEC,oBAAI,UAAJ,CAFD;AAGC,oBAAI,KAAJ,CAHD;AAIC,oBAAI,OAAJ,CAJD;AAMC,uBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAEC,iCAAa,EAAE,aAAF,EAAb,CAFD;AAGC,8BAAU,IAAV,CAHD;iBAAA,EAMA,UAAC,OAAD,EAAQ;AAEP,wBAAG,OAAH,EACA;AACC,kCAAU,KAAV,CADD;AAGC,+BAAO,YACJ,QAAQ,WAAR,CAAoB,QAAQ,IAAR,CADhB,GAEJ,WAAW,QAAX,MAAyB,QAAQ,WAAR,CAAoB,QAC7C,WAAW,OAAX,CADA,CALJ;qBADA;AAUA,2BAAO,UAAC,CAAW,QAAX,EAAD,GACJ,QAAQ,WAAR,CAAoB,QAAQ,KAAK,KAAL,EAAY,WAAW,OAAX,CAApB,CADhB,GAEJ,KAFI,CAZA;iBAAR,EAiBA,YAAA;AAEC,8BAAA,OAAA,CAAQ,UAAR,EAFD;iBAAA,EAKA,EAAE,UAAF,CA7BD,CAND;aAAA,EAsCA,IAvCM,EAyCN,EAAE,UAAF,CAzCD,CANiC;;;;+BAqDlB,UAA6B;AAE5C,gBAAI,IAAI,IAAJ;gBAAU,WAAW,CAAC,EAAE,eAAF,EAAD,CAFmB;AAI5C,mBAAO,IAAI,UAAJ,CACN,YAAA;AAEC,oBAAI,UAAJ,CAFD;AAGC,oBAAI,QAAe,CAAf,CAHL;AAKC,uBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAEC,oCAAgB,QAAhB,EAFD;AAIC,4BAAQ,CAAR,CAJD;AAKC,iCAAa,EAAE,aAAF,EAAb,CALD;iBAAA,EAQA,UAAC,OAAD,EAAQ;AAEP,oCAAgB,QAAhB,EAFO;AAIP,2BAAO,WAAW,QAAX,KACJ,QAAQ,WAAR,CAAoB,SAAS,WAAW,OAAX,EAAoB,OAA7B,CAApB,CADI,GAEJ,QAAQ,UAAR,EAFI,CAJA;iBAAR,EASA,YAAA;AAEC,8BAAA,OAAA,CAAQ,UAAR,EAFD;iBAAA,EAKA,EAAE,UAAF,CAvBD,CALD;aAAA,EAgCA,YAAA;AAEC,2BAAW,IAAX,CAFD;aAAA,EAKA,EAAE,UAAF,CAtCD,CAJ4C;;;;oCAsD5C,oBACA,gBAA2D;AAE3D,gBAAI,IAAI,IAAJ;gBAAU,YAAY,EAAE,UAAF,IAAgB,IAAhB,CAFiC;AAG3D,gBAAG,CAAC,cAAD,EACF,iBAAiB,wBAAC,CAAD,EAAM,CAAN;uBAAyB;aAAzB,CADlB;AAGA,mBAAO,IAAI,UAAJ,CACN,YAAA;AAEC,oBAAI,UAAJ,CAFD;AAGC,oBAAI,gBAAJ,CAHD;AAIC,oBAAI,QAAe,CAAf,CAJL;AAMC,uBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAEC,iCAAa,EAAE,aAAF,EAAb,CAFD;AAGC,uCAAmB,SAAnB,CAHD;AAIC,4BAAQ,CAAR,CAJD;iBAAA,EAOA,UAAC,OAAD,EAAQ;AAIP,wBAAG,qBAAmB,KAAnB,IAA4B,CAAC,WAAW,QAAX,EAAD,EAC9B,OAAO,KAAP,CADD;AAIA,uBACA;AAGC,4BAAG,CAAC,gBAAD,EACH;AACC,gCAAI,YAAY,mBAAmB,WAAW,OAAX,EAAoB,OAAvC,CAAZ,CADL;AAIC,gCAAG,CAAC,SAAD,EACF,SADD;AAGA,+CAAmB,aAAA,IAAA,CAAe,SAAf,CAAnB,CAPD;yBADA;AAWA,4BAAG,iBAAiB,QAAjB,EAAH,EACC,OAAO,QAAQ,WAAR,CACN,eACC,WAAW,OAAX,EAAoB,iBAAiB,OAAjB,CAFf,CAAP,CADD;AASA,yCAAiB,OAAjB,GAvBD;AAwBC,2CAAmB,IAAnB,CAxBD;qBADA,QA4BM,WAAW,QAAX,EA5BN,EARO;AAsCP,2BAAO,KAAP,CAtCO;iBAAR,EAyCA,YAAA;AAEC,8BAAA,OAAA,CAAQ,UAAR,EAAoB,gBAApB,EAFD;AAGC,iCAAa,IAAb,CAHD;AAIC,uCAAmB,IAAnB,CAJD;iBAAA,EAOA,SAxDM,CAAP,CAND;aAAA,EAiEA,IAlEM,EAoEN,SApEM,CAAP,CAN2D;;;;mCAsF3D,oBACA,gBAAsD;AAEtD,mBAAO,KAAK,WAAL,CAAiB,kBAAjB,EAAqC,cAArC,CAAP,CAFsD;;;;gCAK5B,UAA6B;AAGvD,gBAAI,IAAI,IAAJ;gBAAU,WAAW,CAAC,EAAE,eAAF,EAAD,CAH8B;AAKvD,mBAAO,IAAI,UAAJ,CACN,YAAA;AAEC,oBAAI,UAAJ,CAFD;AAGC,oBAAI,QAAe,CAAf,CAHL;AAKC,uBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAEC,oCAAgB,QAAhB,EAFD;AAIC,4BAAQ,CAAR,CAJD;AAKC,iCAAa,EAAE,aAAF,EAAb,CALD;iBAAA,EAQA,UAAC,OAAD,EAAQ;AAEP,oCAAgB,QAAhB,EAFO;AAIP,2BAAM,WAAW,QAAX,EAAN,EACA;AACC,4BAAI,SAAS,SAAS,WAAW,OAAX,EAAoB,OAA7B,CAAT,CADL;AAEC,4BAAG,WAAS,IAAT,IAAiB,WAAS,KAAT,EACnB,OAAO,QAAQ,WAAR,CAAoB,MAApB,CAAP,CADD;qBAHD;AAOA,2BAAO,KAAP,CAXO;iBAAR,EAcA,YAAA;AAEC,8BAAA,OAAA,CAAQ,UAAR,EAFD;iBAAA,EAKA,EAAE,UAAF,CA5BD,CALD;aAAA,EAqCA,YAAA;AAEC,2BAAW,IAAX,CAFD;aAAA,EAKA,EAAE,UAAF,CA3CD,CALuD;;;;iCAyDH;gBAA9C,iEAA4B,UAAU,QAAV,gBAAkB;;AAEpD,mBAAO,KAAK,OAAL,CAAa,QAAb,CAAP,CAFoD;;;;8BAK/C,WAAsB;AAG3B,gBAAI,IAAI,IAAJ;gBAAU,WAAW,CAAC,EAAE,eAAF,EAAD,CAHE;AAK3B,mBAAO,IAAI,UAAJ,CACN,YAAA;AAEC,oBAAI,UAAJ,CAFD;AAGC,oBAAI,QAAe,CAAf,CAHL;AAKC,uBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAEC,oCAAgB,QAAhB,EAFD;AAIC,4BAAQ,CAAR,CAJD;AAKC,iCAAa,EAAE,aAAF,EAAb,CALD;iBAAA,EAQA,UAAC,OAAD,EAAQ;AAEP,oCAAgB,QAAhB,EAFO;AAIP,2BAAM,WAAW,QAAX,EAAN,EACA;AACC,4BAAG,UAAU,WAAW,OAAX,EAAoB,OAA9B,CAAH,EACC,OAAO,QAAQ,WAAR,CAAoB,WAAW,OAAX,CAA3B,CADD;qBAFD;AAKA,2BAAO,KAAP,CATO;iBAAR,EAYA,YAAA;AAEC,8BAAA,OAAA,CAAQ,UAAR,EAFD;iBAAA,EAKA,EAAE,UAAF,CA1BD,CALD;aAAA,EAmCA,YAAA;AAEC,2BAAW,IAAX,CAFD;aAAA,EAKA,EAAE,UAAF,CAzCD,CAL2B;;;;+BAoDd,MAAQ;AAErB,gBAAI,QAAJ,CAFqB;AAGrB,oBAAY,IAAZ;AAEC,qBAAK,MAAL;AACC,+BAAW,QAAA,IAAA,CAAK,MAAL,CADZ;AAEC,0BAFD;AAFD,qBAKM,MAAL;AACC,+BAAW,QAAA,IAAA,CAAK,MAAL,CADZ;AAEC,0BAFD;AALD,qBAQM,OAAL;AACC,+BAAW,QAAA,IAAA,CAAK,OAAL,CADZ;AAEC,0BAFD;AARD,qBAWM,QAAL;AACC,+BAAW,QAAA,IAAA,CAAK,QAAL,CADZ;AAEC,0BAFD;AAXD;AAeE,2BAAwB,KACtB,KADsB,CAChB;+BAAG,aAAa,IAAb;qBAAH,CADR,CADD;AAdD,aAHqB;AAqBrB,mBAAwB,KACtB,MADsB,GAEtB,KAFsB,CAEhB;uBAAG,QAAQ,6CAAR,KAAa,QAAb;aAAH,CAFR,CArBqB;;;;+BA2BrB,QACA,iBAAsC;AAEtC,gBAAI,IAAI,IAAJ;gBAAU,WAAW,CAAC,EAAE,eAAF,EAAD,CAFa;AAItC,mBAAO,IAAI,UAAJ,CACN,YAAA;AAEC,oBAAI,UAAJ,CAFD;AAGC,oBAAI,IAAJ,CAHD;AAKC,uBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAEC,oCAAgB,QAAhB,EAFD;AAGC,iCAAa,EAAE,aAAF,EAAb,CAHD;AAIC,2BAAO,IAAI,aAAA,UAAA,CAAuB,eAA3B,CAAP,CAJD;AAKC,wBAAG,MAAH,EACC,aAAA,OAAA,CAAQ,MAAR,EAAgB;+BAAO,KAAK,aAAL,CAAmB,GAAnB,EAAwB,IAAxB;qBAAP,CAAhB,CADD;iBALD,EASA,UAAC,OAAD,EAAQ;AAEP,oCAAgB,QAAhB,EAFO;AAGP,2BAAM,WAAW,QAAX,EAAN,EACA;AACC,4BAAI,UAAU,WAAW,OAAX,CADf;AAEC,4BAAG,CAAC,KAAK,WAAL,CAAiB,OAAjB,CAAD,EACH;AACC,iCAAK,aAAL,CAAmB,OAAnB,EAA4B,IAA5B,EADD;AAEC,mCAAO,QAAQ,WAAR,CAAoB,OAApB,CAAP,CAFD;yBADA;qBAHD;AASA,2BAAO,KAAP,CAZO;iBAAR,EAeA,YAAA;AAEC,8BAAA,OAAA,CAAQ,UAAR,EAFD;AAGC,yBAAK,KAAL,GAHD;iBAAA,EAMA,EAAE,UAAF,CA/BD,CALD;aAAA,EAwCA,YAAA;AAEC,2BAAW,IAAX,CAFD;aAAA,EAKA,EAAE,UAAF,CA9CD,CAJsC;;;;iCAsD9B,iBAA+B;AAEvC,mBAAO,KAAK,MAAL,CAAY,IAAZ,EAAkB,eAAlB,CAAP,CAFuC;;;;+CAMiD;gBAA1D,wEAAwC,UAAU,QAAV,gBAAkB;;AAGxF,gBAAI,IAAI,IAAJ;gBAAU,WAAW,CAAC,EAAE,eAAF,EAAD,CAH+D;AAKxF,mBAAO,IAAI,UAAJ,CACN,YAAA;AAEC,oBAAI,UAAJ,CAFD;AAGC,oBAAI,UAAJ,CAHD;AAIC,oBAAI,UAAkB,IAAlB,CAJL;AAMC,uBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAEC,oCAAgB,QAAhB,EAFD;AAGC,iCAAa,EAAE,aAAF,EAAb,CAHD;iBAAA,EAMA,UAAC,OAAD,EAAQ;AAEP,oCAAgB,QAAhB,EAFO;AAGP,2BAAM,WAAW,QAAX,EAAN,EACA;AACC,4BAAI,MAAM,gBAAgB,WAAW,OAAX,CAAtB,CADL;AAGC,4BAAG,OAAH,EACA;AACC,sCAAU,KAAV,CADD;yBADA,MAIK,IAAG,OAAO,QAAP,CAAgB,UAAhB,EAA4B,GAA5B,CAAH,EACL;AACC,qCADD;yBADK;AAKL,qCAAa,GAAb,CAZD;AAaC,+BAAO,QAAQ,WAAR,CAAoB,WAAW,OAAX,CAA3B,CAbD;qBADA;AAgBA,2BAAO,KAAP,CAnBO;iBAAR,EAsBA,YAAA;AAEC,8BAAA,OAAA,CAAQ,UAAR,EAFD;iBAAA,EAKA,EAAE,UAAF,CAlCD,CAND;aAAA,EA4CA,YAAA;AAEC,2BAAW,IAAX,CAFD;aAAA,EAKA,EAAE,UAAF,CAlDD,CALwF;;;;yCAiErD;gBAArB,qEAAiB,oBAAI;;AAEnC,gBAAI,IAAI,IAAJ;gBAAU,WAAmB,CAAC,EAAE,eAAF,EAAD,CAFE;AAInC,mBAAO,IAAI,UAAJ,CACN,YAAA;AAEC,oBAAI,UAAJ,CAFD;AAGC,oBAAI,OAAJ,CAHD;AAKC,uBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAEC,8BAAU,IAAV,CAFD;AAGC,oCAAgB,QAAhB,EAHD;AAIC,iCAAa,EAAE,aAAF,EAAb,CAJD;iBAAA,EAOA,UAAC,OAAD,EAAQ;AAEP,oCAAgB,QAAhB,EAFO;AAIP,wBAAG,WAAW,QAAX,EAAH,EACA;AACC,kCAAU,KAAV,CADD;AAEC,+BAAO,QAAQ,WAAR,CAAoB,WAAW,OAAX,CAA3B,CAFD;qBADA,MAKK,IAAG,OAAH,EACL;AACC,kCAAU,KAAV,CADD;AAEC,+BAAO,QAAQ,WAAR,CAAoB,YAApB,CAAP,CAFD;qBADK;AAKL,2BAAO,KAAP,CAdO;iBAAR,EAiBA,YAAA;AAEC,8BAAA,OAAA,CAAQ,UAAR,EAFD;iBAAA,EAKA,EAAE,UAAF,CA9BD,CALD;aAAA,EAsCA,IAvCM,EAyCN,EAAE,UAAF,CAzCD,CAJmC;;;;4BAkDnC,QACA,gBAAkE;AAElE,gBAAI,IAAI,IAAJ,CAF8D;AAGlE,cAAE,eAAF,GAHkE;AAMlE,mBAAO,IAAI,UAAJ,CACN,YAAA;AAEC,oBAAI,eAAJ,CAFD;AAGC,oBAAI,gBAAJ,CAHD;AAIC,oBAAI,QAAe,CAAf,CAJL;AAMC,uBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAEC,4BAAQ,CAAR,CAFD;AAGC,sCAAkB,EAAE,aAAF,EAAlB,CAHD;AAIC,uCAAmB,aAAA,IAAA,CAAwB,MAAxB,CAAnB,CAJD;iBAAA,EAOA,UAAC,OAAD;2BAAY,gBAAgB,QAAhB,MACT,iBAAiB,QAAjB,EADS,IAET,QAAQ,WAAR,CAAoB,eAAe,gBAAgB,OAAhB,EAAyB,iBAAiB,OAAjB,EAA0B,OAAlE,CAApB,CAFS;iBAAZ,EAIA,YAAA;AAEC,8BAAA,OAAA,CAAQ,eAAR,EAAyB,gBAAzB,EAFD;iBAAA,CAZD,CAND;aAAA,CADD,CANkE;;;;oCAoClE,QACA,gBAAkE;AAElE,gBAAI,IAAI,IAAJ,CAF8D;AAGlE,cAAE,eAAF,GAHkE;AAKlE,gBAAG,CAAC,OAAO,MAAP,EACH,OAAO,WAAW,KAAX,EAAP,CADD;AAGA,mBAAO,IAAI,UAAJ,CACN,YAAA;AAEC,oBAAI,UAAJ,CAFD;AAGC,oBAAI,eAAJ,CAHD;AAIC,oBAAI,gBAAJ,CAJD;AAKC,oBAAI,QAAe,CAAf,CALL;AAOC,uBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAEC,iCAAa,IAAI,QAAA,KAAA,CAAW,MAAf,CAAb,CAFD;AAGC,4BAAQ,CAAR,CAHD;AAIC,sCAAkB,EAAE,aAAF,EAAlB,CAJD;AAKC,uCAAmB,IAAnB,CALD;iBAAA,EAQA,UAAC,OAAD,EAAQ;AAEP,wBAAG,gBAAgB,QAAhB,EAAH,EACA;AACC,+BAAM,IAAN,EACA;AACC,mCAAM,CAAC,gBAAD,EACN;AACC,oCAAG,WAAW,KAAX,EACH;AACC,wCAAI,OAAO,WAAW,OAAX,EAAP,CADL;AAEC,wCAAG,IAAH,EACC,mBAAmB,aAAA,IAAA,CAAwB,IAAxB,CAAnB,CADD;iCAHD,MAOC,OAAO,QAAQ,UAAR,EAAP,CAPD;6BAFD;AAYA,gCAAG,iBAAiB,QAAjB,EAAH,EACC,OAAO,QAAQ,WAAR,CACN,eAAe,gBAAgB,OAAhB,EAAyB,iBAAiB,OAAjB,EAA0B,OAAlE,CADM,CAAP,CADD;AAKA,6CAAiB,OAAjB,GAlBD;AAmBC,+CAAmB,IAAnB,CAnBD;yBADA;qBAFD;AA0BA,2BAAO,QAAQ,UAAR,EAAP,CA5BO;iBAAR,EA+BA,YAAA;AAEC,8BAAA,OAAA,CAAQ,eAAR,EAAyB,UAAzB,EAFD;iBAAA,CAxCD,CAPD;aAAA,CADD,CARkE;;;;6BAqElE,OACA,kBACA,kBACA,gBAC6D;gBAA7D,wEAA2C,UAAU,QAAV,gBAAkB;;AAG7D,gBAAI,IAAI,IAAJ,CAHyD;AAI7D,mBAAO,IAAI,UAAJ,CACN,YAAA;AAEC,oBAAI,eAAJ,CAFD;AAGC,oBAAI,MAAJ,CAHD;AAIC,oBAAI,gBAAyB,IAAzB,CAJL;AAKC,oBAAI,aAAoB,CAApB,CALL;AAOC,uBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAEC,sCAAkB,EAAE,aAAF,EAAlB,CAFD;AAGC,6BAAS,WAAW,IAAX,CAAgB,KAAhB,EACP,QADO,CACE,gBADF,EACoB,UAAU,QAAV,EAAoB,eADxC,CAAT,CAHD;iBAAA,EAOA,UAAC,OAAD,EAAQ;AAEP,2BAAM,IAAN,EACA;AACC,4BAAG,iBAAe,IAAf,EACH;AACC,gCAAI,eAAe,cAAc,YAAd,CAAf,CADL;AAEC,gCAAG,iBAAe,KAAf,EACF,OAAO,QAAQ,WAAR,CAAoB,eAAe,gBAAgB,OAAhB,EAAyB,YAAxC,CAApB,CAAP,CADD;AAGA,2CAAe,IAAf,CALD;AAMC,yCAAa,CAAb,CAND;yBADA;AAUA,4BAAG,gBAAgB,QAAhB,EAAH,EACA;AACC,gCAAI,MAAM,iBAAiB,gBAAgB,OAAhB,CAAvB,CADL;AAEC,4CAAgB,OAAO,GAAP,CAAW,GAAX,CAAhB,CAFD;yBADA,MAMA;AACC,mCAAO,QAAQ,UAAR,EAAP,CADD;yBANA;qBAZD;iBAFD,EA0BA,YAAA;AAEC,8BAAA,OAAA,CAAQ,eAAR,EAFD;iBAAA,CAlCD,CAPD;aAAA,CADD,CAJ6D;;;;kCAwD7D,OACA,kBACA,kBACA,gBAC6D;gBAA7D,wEAA2C,UAAU,QAAV,gBAAkB;;AAE7D,gBAAI,IAAI,IAAJ,CAFyD;AAI7D,mBAAO,IAAI,UAAJ,CACN,YAAA;AAEC,oBAAI,UAAJ,CAFD;AAGC,oBAAI,SAA+B,IAA/B,CAHL;AAKC,uBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAEC,iCAAa,EAAE,aAAF,EAAb,CAFD;AAGC,6BAAS,WAAW,IAAX,CAAgB,KAAhB,EACP,QADO,CACE,gBADF,EACoB,UAAU,QAAV,EAAoB,eADxC,CAAT,CAHD;iBAAA,EAOA,UAAC,OAAD;2BACA,WAAW,QAAX,MACG,QAAQ,WAAR,CACF,eACC,WAAW,OAAX,EACA,OAAO,GAAP,CAAW,iBAAiB,WAAW,OAAX,CAA5B,CAFD,CADE,CADH;iBADA,EASA,YAAA;AAEC,8BAAA,OAAA,CAAQ,UAAR,EAFD;iBAAA,CAjBD,CALD;aAAA,CADD,CAJ6D;;;;8BAqCxD,aAAyC;AAE9C,gBAAI,IAAI,IAAJ;gBAAU,YAAY,EAAE,UAAF,IAAgB,IAAhB,CAFoB;AAI9C,gBAAG,CAAC,WAAD,IAAgB,YAAY,MAAZ,IAAoB,CAApB,EAClB,OAAO,CAAP,CADD;AAGA,mBAAO,IAAI,UAAJ,CACN,YAAA;AAEC,oBAAI,UAAJ,CAFD;AAGC,oBAAI,KAAJ,CAHD;AAKC,uBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAGC,iCAAa,EAAE,aAAF,EAAb,CAHD;AAIC,4BAAQ,IAAI,QAAA,KAAA,CAA6B,WAAjC,CAAR,CAJD;iBAAA,EAOA,UAAC,OAAD,EAAQ;AAEP,2BAAM,IAAN,EACA;AAEC,+BAAM,CAAC,UAAD,IAAe,MAAM,KAAN,EACrB;AACC,yCAAa,aAAA,IAAA,CAAkB,MAAM,OAAN,EAAlB,CAAb,CADD;yBADA;AAKA,4BAAG,cAAc,WAAW,QAAX,EAAd,EACF,OAAO,QAAQ,WAAR,CAAoB,WAAW,OAAX,CAA3B,CADD;AAGA,4BAAG,UAAH,EACA;AACC,uCAAW,OAAX,GADD;AAEC,yCAAa,IAAb,CAFD;AAGC,qCAHD;yBADA;AAOA,+BAAO,QAAQ,UAAR,EAAP,CAjBD;qBADA;iBAFD,EAwBA,YAAA;AAEC,8BAAA,OAAA,CAAQ,UAAR,EAAoB,KAApB,EAFD;iBAAA,EAKA,SArCM,CAAP,CALD;aAAA,EA6CA,IA9CM,EA+CN,SA/CM,CAAP,CAP8C;;;;iCA0DG;8CAAxC;;aAAwC;;AAEjD,mBAAO,KAAK,KAAL,CAAW,WAAX,CAAP,CAFiD;;;;8BAOjD,QAC0D;gBAA1D,wEAAwC,UAAU,QAAV,gBAAkB;;AAE1D,gBAAI,IAAI,IAAJ;gBAAU,YAAY,EAAE,UAAF,IAAgB,IAAhB,CAFgC;AAG1D,mBAAO,IAAI,UAAJ,CACN,YAAA;AAEC,oBAAI,eAAJ,CAFD;AAGC,oBAAI,gBAAJ,CAHD;AAIC,oBAAI,IAAJ,CAJD;AAMC,uBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAEC,sCAAkB,EAAE,aAAF,EAAlB,CAFD;AAGC,2BAAO,IAAI,aAAA,UAAA,CAAmB,eAAvB,CAAP,CAHD;iBAAA,EAMA,UAAC,OAAD,EAAQ;AAEP,wBAAI,OAAJ,CAFO;AAGP,wBAAG,qBAAmB,KAAnB,EACH;AACC,+BAAM,gBAAgB,QAAhB,EAAN,EACA;AACC,sCAAU,gBAAgB,OAAhB,CADX;AAEC,gCAAG,CAAC,KAAK,WAAL,CAAiB,OAAjB,CAAD,EACH;AACC,qCAAK,aAAL,CAAmB,OAAnB,EAA4B,IAA5B,EADD;AAEC,uCAAO,QAAQ,WAAR,CAAoB,OAApB,CAAP,CAFD;6BADA;yBAHD;AASA,2CAAmB,aAAA,IAAA,CAAe,MAAf,CAAnB,CAVD;qBADA;AAaA,2BAAM,iBAAiB,QAAjB,EAAN,EACA;AACC,kCAAU,iBAAiB,OAAjB,CADX;AAEC,4BAAG,CAAC,KAAK,WAAL,CAAiB,OAAjB,CAAD,EACH;AACC,iCAAK,aAAL,CAAmB,OAAnB,EAA4B,IAA5B,EADD;AAEC,mCAAO,QAAQ,WAAR,CAAoB,OAApB,CAAP,CAFD;yBADA;qBAHD;AASA,2BAAO,KAAP,CAzBO;iBAAR,EA4BA,YAAA;AAEC,8BAAA,OAAA,CAAQ,eAAR,EAAyB,gBAAzB,EAFD;iBAAA,EAKA,SAxCM,CAAP,CAND;aAAA,EAiDA,IAlDM,EAoDN,SApDM,CAAP,CAH0D;;;;iCA2DlD,OAAc,OAA2B;AAEjD,sBAAA,OAAA,CAAQ,mBAAR,CAA4B,KAA5B,EAAmC,OAAnC,EAFiD;AAGjD,gBAAI,IAAW,KAAX,CAH6C;AAKjD,gBAAI,IAAI,IAAJ;gBAAU,YAAY,EAAE,UAAF,IAAgB,IAAhB,CALuB;AAMjD,cAAE,eAAF,GANiD;AAQjD,mBAAO,IAAI,UAAJ,CACN,YAAA;AAGC,oBAAI,eAAJ,CAHD;AAIC,oBAAI,gBAAJ,CAJD;AAMC,oBAAI,QAAe,CAAf,CANL;AAOC,oBAAI,eAAuB,KAAvB,CAPL;AASC,uBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAEC,4BAAQ,CAAR,CAFD;AAGC,sCAAkB,EAAE,aAAF,EAAlB,CAHD;AAIC,uCAAmB,aAAA,IAAA,CAAkB,KAAlB,CAAnB,CAJD;AAKC,mCAAe,KAAf,CALD;iBAAA,EAQA,UAAC,OAAD,EAAQ;AAEP,wBAAG,SAAO,CAAP,EACH;AACC,uCAAe,IAAf,CADD;AAEC,4BAAG,iBAAiB,QAAjB,EAAH,EACC,OAAO,QAAQ,WAAR,CAAoB,iBAAiB,OAAjB,CAA3B,CADD;qBAHD;AAOA,wBAAG,gBAAgB,QAAhB,EAAH,EACA;AACC,gCADD;AAEC,+BAAO,QAAQ,WAAR,CAAoB,gBAAgB,OAAhB,CAA3B,CAFD;qBADA;AAMA,2BAAO,CAAC,YAAD,IACH,iBAAiB,QAAjB,EADG,IAEH,QAAQ,WAAR,CAAoB,iBAAiB,OAAjB,CAFjB,CAfA;iBAAR,EAoBA,YAAA;AAEC,8BAAA,OAAA,CAAQ,eAAR,EAAyB,gBAAzB,EAFD;iBAAA,EAKA,SAlCM,CAAP,CATD;aAAA,EA8CA,IA/CM,EAiDN,SAjDM,CAAP,CARiD;;;;0CA8DhC,UAA8B;AAE/C,gBAAI,IAAI,IAAJ,CAF2C;AAI/C,mBAAO,IAAI,UAAJ,CACN,YAAA;AAEC,oBAAI,MAAJ,EACI,IADJ,EAEI,UAFJ,EAGI,mBAHJ,CAFD;AAOC,uBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAGC,0CAAsB,IAAI,kBAAA,eAAA,CACzB,WAAW,OAAX,CAAsB,QAAtB,CADqB,CAAtB,CAHD;AAOC,iCAAa,EAAE,aAAF,EAAb,CAPD;AASC,wBAAI,gBAAgB,WAAW,QAAX,EAAhB,CATL;AAUC,2BAAO,gBACJ,CADI,GAEJ,CAFI,CAVR;AAcC,wBAAG,aAAH,EACC,SAAS,WAAW,OAAX,CADV;iBAdD,EAkBA,UAAC,OAAD,EAAQ;AAEP,4BAAO,IAAP;AAEC,6BAAK,CAAL;AACC,mCAAO,QAAQ,UAAR,EAAP,CADD;AAFD,6BAKM,CAAL;AACC,gCAAG,oBAAoB,QAApB,EAAH,EACC,OAAO,QAAQ,WAAR,CAAoB,oBAAoB,OAApB,CAA3B,CADD;AAEA,gDAAoB,KAApB,GAHD;AAIC,mCAAO,CAAP,CAJD;AAKC,kCALD;AALD,qBAFO;AAeP,wBAAI,SAAS,MAAT,CAfG;AAoBP,wBAAI,UAAU,WAAW,QAAX,EAAV,CApBG;AAqBP,2BAAO,UACJ,CADI,GAEJ,CAFI,CArBA;AAyBP,wBAAG,OAAH,EACC,SAAS,WAAW,OAAX,CADV;AAGA,2BAAO,QAAQ,WAAR,CAAoB,MAApB,CAAP,CA5BO;iBAAR,EAgCA,YAAA;AAEC,8BAAA,OAAA,CAAQ,UAAR,EAAoB,mBAApB,EAFD;iBAAA,EAKA,EAAE,UAAF,CAxDD,CAPD;aAAA,EAkEA,IAnEM,EAqEN,EAAE,UAAF,CArED,CAJ+C;;;;wCA6EhC,OAAO;AAEtB,mBAAO,KAAK,iBAAL,CAAuB,WAAW,IAAX,CAAgB,KAAhB,CAAvB,CAAP,CAFsB;;;;oCAKE;+CAAZ;;aAAY;;AAExB,mBAAO,KAAK,iBAAL,CAAuB,QAAvB,CAAP,CAFwB;;;;mCAOd,SAAuB;AAEjC,gBAAI,IAAI,IAAJ;gBAAU,WAAW,CAAC,EAAE,eAAF,EAAD,CAFQ;AAGjC,mBAAO,IAAI,UAAJ,CACN,YAAA;AAEC,oBAAI,UAAJ,CAFD;AAIC,uBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAEC,wBACA;AACC,wCAAgB,QAAhB,EADD;AAEC,qCAAa,EAAE,aAAF,EAAb,CAFD;qBADA,CAKA,OAAM,CAAN,EACA,EADA;iBAPD,EAaA,UAAC,OAAD,EAAQ;AAEP,wBACA;AACC,wCAAgB,QAAhB,EADD;AAEC,4BAAG,WAAW,QAAX,EAAH,EACC,OAAO,QAAQ,WAAR,CAAoB,WAAW,OAAX,CAA3B,CADD;qBAHD,CAMA,OAAM,CAAN,EACA;AACC,gCAAQ,CAAR,EADD;qBADA;AAIA,2BAAO,KAAP,CAZO;iBAAR,EAeA,YAAA;AAEC,8BAAA,OAAA,CAAQ,UAAR,EAFD;iBAAA,CA7BD,CAJD;aAAA,CADD,CAHiC;;;;sCA8CpB,QAAiB;AAE9B,gBAAI,IAAI,IAAJ;gBAAU,WAAW,CAAC,EAAE,eAAF,EAAD,CAFK;AAI9B,mBAAO,IAAI,UAAJ,CACN,YAAA;AAEC,oBAAI,UAAJ,CAFD;AAIC,uBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAEC,oCAAgB,QAAhB,EAFD;AAGC,iCAAa,EAAE,aAAF,EAAb,CAHD;iBAAA,EAMA,UAAC,OAAD,EAAQ;AAEP,oCAAgB,QAAhB,EAFO;AAGP,2BAAO,UAAC,CAAW,QAAX,EAAD,GACJ,QAAQ,WAAR,CAAoB,WAAW,OAAX,CADhB,GAEJ,KAFI,CAHA;iBAAR,EAQA,YAAA;AAEC,wBACA;AACC,kCAAA,OAAA,CAAQ,UAAR,EADD;qBADA,SAKA;AACC,iCADD;qBALA;iBAFD,CAfD,CAJD;aAAA,CADD,CAJ8B;;;;+BAyCxB,MAAW;AAEjB,gBAAG,OAAK,CAAL,IAAU,CAAC,SAAS,IAAT,CAAD,EACZ,MAAM,IAAI,KAAJ,CAAU,sBAAV,CAAN,CADD;AAGA,sBAAA,OAAA,CAAQ,MAAR,CAAe,IAAf,EAAqB,MAArB,EALiB;AAOjB,gBAAI,IAAI,IAAJ;gBAAU,GAAd,CAPiB;AASjB,mBAAO,IAAI,UAAJ,CACN,YAAA;AAEC,oBAAI,UAAJ,CAFD;AAGC,uBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAEC,iCAAa,EAAE,aAAF,EAAb,CAFD;iBAAA,EAKA,UAAC,OAAD,EAAQ;AAEP,wBAAI,QAAY,aAAa,UAAb,CAA2B,IAA3B,CAAZ,CAFG;AAGP,0BAAM,CAAN,CAHO;AAIP,2BAAM,MAAI,IAAJ,IAAY,WAAW,QAAX,EAAZ,EACN;AACC,8BAAM,KAAN,IAAe,WAAW,OAAX,CADhB;qBADA;AAKA,0BAAM,MAAN,GAAe,GAAf,CATO;AAUP,2BAAO,OAAO,QAAQ,WAAR,CAAoB,KAApB,CAAP,CAVA;iBAAR,EAaA,YAAA;AAEC,8BAAA,OAAA,CAAQ,UAAR,EAFD;iBAAA,EAKA,EAAE,UAAF,CAxBD,CAHD;aAAA,EA8BA,IA/BM,EAiCN,EAAE,UAAF,CAjCD,CATiB;;;;gCA+Cb;AAEJ,gBAAI,IAAI,IAAJ,CAFA;AAGJ,cAAE,eAAF,GAHI;AAKJ,gBAAI,gBAAJ,CALI;AAMJ,mBAAO,IAAI,UAAJ,CACN,YAAA;AAEC,uBAAO,qBAAqB,mBAAmB,EAAE,aAAF,EAAnB,CAArB,CAFR;aAAA,EAKA,YAAA;AAEC,0BAAA,OAAA,CAAQ,gBAAR,EAFD;aAAA,EAKA,EAAE,UAAF,CAXD,CANI;;;;4BAlpDQ;AAEZ,mBAAO,KAAK,UAAL,CAFK;;;;WAZd;EACQ,iBAAA,cAAA;;AADK,QAAA,kBAAA,GAAkB,kBAAlB;;IA6rDb;;;AAIC,aAJD,UAIC,CACC,iBADD,EAEC,SAFD,EAGyB;YAAxB,kEAAoB,oBAAI;;8BAP1B,YAO0B;;4EAP1B,uBASQ,mBAAmB,YAFD;;AAGxB,eAAK,UAAL,GAAkB,SAAlB,CAHwB;;KAHzB;;iBAJD;;iCA+kBE,QACA,aACkC;gBAAlC,kEAAoB,KAAK,SAAL,gBAAc;;AAElC,8CAnlBF,oDAmlBuC,QAAQ,aAAa,UAA1D,CAFkC;;;;6BAO9B,OAAY;AAEhB,8CA1lBF,gDA0lBmC,MAAjC,CAFgB;;;;kCAKP,WAAsB;AAE/B,iBAAK,eAAL,GAF+B;AAG/B,mBAAO,KAAK,QAAL,CACN,UAAC,OAAD,EAAY,KAAZ;uBACC,UAAU,OAAV,EAAmB,KAAnB,IACG,CADH,GAEG,CAFH;aADD,CADD,CAH+B;;;;kCAWtB,WAAsB;AAE/B,iBAAK,eAAL,GAF+B;AAI/B,gBAAG,CAAC,SAAD,EACF,MAAM,IAAI,wBAAA,qBAAA,CAAsB,WAA1B,CAAN,CADD;AAGA,mBAAO,KAAK,QAAL,CACN,UAAC,OAAD,EAAY,KAAZ;uBACC,UAAU,OAAV,EAAmB,KAAnB,IACG,CADH,GAEG,CAFH;aADD,EAIA,IALM,EAMN,IANM,CAAP,CAP+B;;;;kCAkBtB,WAAwB,mBAA0B;AAE3D,iBAAK,eAAL,GAF2D;AAI3D,gBAAG,CAAC,SAAD,EACF,MAAM,IAAI,wBAAA,qBAAA,CAAsB,WAA1B,CAAN,CADD;AAGA,gBAAG,CAAC,iBAAD,EACF,OAAO,KAAK,QAAL,CACN,UAAC,OAAD,EAAY,KAAZ;uBACC,UAAU,OAAV,EAAmB,KAAnB,IACG,CADH,GAEG,CAFH;aADD,EAIA,IALM,EAMN,IANM,CAAP,CADD;AAUA,gBAAI,QAAgB,KAAhB,CAjBuD;AAkB3D,mBAAO,KAAK,QAAL,CACN,UAAC,OAAD,EAAY,KAAZ,EAAyB;AAExB,oBAAG,KAAH,EACC,OAAO,CAAP,CADD;AAGA,wBAAQ,UAAU,OAAV,EAAmB,KAAnB,CAAR,CALwB;AAMxB,uBAAO,CAAP,CANwB;aAAzB,EAQA,YAAA;AAEC,wBAAQ,KAAR,CAFD;aAAA,EAIA,IAbM,CAAP,CAlB2D;;;;gCAoCpD,QAA+B;AAGtC,gBAAI,IAAI,IAAJ,CAHkC;AAItC,cAAE,eAAF,GAJsC;AAKtC,yBAAA,cAAA,CAAe,EAAE,SAAF,CAAf,CALsC;AAOtC,gBAAI,QAAe,CAAf,CAPkC;AAStC,sBAAA,KAAA,CACC,EAAE,aAAF,EADD,EACoB,aAAC;AAEnB,6BAAA,cAAA,CAAe,EAAE,SAAF,CAAf,CAFmB;AAKnB,uBAAM,EAAE,eAAF,MAAuB,EAAE,QAAF,EAAvB,EACN;AACC,wBAAG,OAAO,EAAE,OAAF,EAAW,OAAlB,MAA6B,KAA7B,EACF,MADD;iBAFD;aALkB,CADpB,CATsC;;;;gCAyB/B,WAAuB;AAE9B,mBAAO,YACJ,KAAK,KAAL,CAAW,SAAX,EAAsB,OAAtB,EADI,GAEJ,KAAK,MAAL,CAAY,EAAZ,CAFI,CAFuB;;;;+BAOxB,QAA4B;gBAAhB,8DAAe,iBAAC;;AAElC,iBAAK,eAAL,GAFkC;AAGlC,gBAAG,CAAC,MAAD,EAAS,MAAM,IAAI,wBAAA,qBAAA,CAAsB,QAA1B,CAAN,CAAZ;AACA,sBAAA,OAAA,CAAQ,mBAAR,CAA4B,KAA5B,EAJkC;AAOlC,yBAAA,OAAA,CAAW,IAAX,EAAiB,UAAC,CAAD,EAAI,CAAJ,EAAK;AAErB,uBAAO,IAAI,KAAJ,CAAP,GAAoB,CAApB,CAFqB;aAAL,CAAjB,CAPkC;AAYlC,mBAAO,MAAP,CAZkC;;;;iCAgBlC,aAE6D;gBAD7D,wEAAsC,UAAU,QAAV,gBACuB;gBAA7D,wEAA2C,UAAU,QAAV,gBAAkB;;AAE7D,gBAAI,OAAkC,IAAI,aAAA,UAAA,CAA2B,eAA/B,CAAlC,CAFyD;AAG7D,iBAAK,OAAL,CACC,aAAC;AAEA,oBAAI,MAAM,YAAY,CAAZ,CAAN,CAFJ;AAGA,oBAAI,UAAU,gBAAgB,CAAhB,CAAV,CAHJ;AAKA,oBAAI,QAAQ,KAAK,QAAL,CAAc,GAAd,CAAR,CALJ;AAMA,oBAAG,UAAQ,KAAR,EAAe,MAAM,IAAN,CAAW,OAAX,EAAlB,KACK,KAAK,aAAL,CAAmB,GAAnB,EAAwB,CAAC,OAAD,CAAxB,EADL;aAND,CADD,CAH6D;AAc7D,mBAAO,IAAI,MAAJ,CAAyB,IAAzB,CAAP,CAd6D;;;;8BAkB7D,aACA,iBAAoC;AAEpC,gBAAI,MAAoB,EAApB,CAFgC;AAGpC,iBAAK,OAAL,CAAa,UAAC,CAAD,EAAI,CAAJ,EAAK;AAEjB,oBAAI,YAAY,CAAZ,EAAe,CAAf,CAAJ,IAAyB,gBAAgB,CAAhB,EAAmB,CAAnB,CAAzB,CAFiB;aAAL,CAAb,CAHoC;AAOpC,mBAAO,GAAP,CAPoC;;;;qCAWpC,aACA,iBAC6D;gBAA7D,wEAA2C,UAAU,QAAV,gBAAkB;;AAE7D,gBAAI,OAAgC,IAAI,aAAA,UAAA,CAAyB,eAA7B,CAAhC,CAFyD;AAG7D,iBAAK,OAAL,CAAa,UAAC,CAAD,EAAI,CAAJ;uBAAS,KAAK,aAAL,CAAmB,YAAY,CAAZ,EAAe,CAAf,CAAnB,EAAsC,gBAAgB,CAAhB,EAAmB,CAAnB,CAAtC;aAAT,CAAb,CAH6D;AAI7D,mBAAO,IAAP,CAJ6D;;;;yCAOyB;gBAAxE,kEAAmB,kBAAqD;gBAAjD,iEAA+B,UAAU,QAAV,gBAAkB;;AAEtF,mBAAO,KAAK,MAAL,CAAY,QAAZ,EAAsB,OAAtB,GAAgC,IAAhC,CAAqC,SAArC,CAAP,CAFsF;;;;yCAQxD;gBAAhB,8DAAe,iBAAC;;AAE9B,gBAAI,IAAI,IAAJ,CAF0B;AAI9B,gBAAG,EAAE,QAAM,CAAN,CAAF,EACF,OAAO,CAAP,CADD;AAGA,gBAAG,CAAC,SAAS,KAAT,CAAD,EACF,OAAO,WAAW,KAAX,EAAP,CADD;AAGA,sBAAA,OAAA,CAAQ,MAAR,CAAe,KAAf,EAAsB,OAAtB,EAV8B;AAW9B,gBAAI,IAAI,KAAJ,CAX0B;AAa9B,mBAAO,IAAI,UAAJ,CACN,YAAA;AAEC,oBAAI,UAAJ,CAFD;AAGC,oBAAI,CAAJ,CAHD;AAKC,uBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAEC,iCAAa,EAAE,aAAF,EAAb,CAFD;AAGC,wBAAI,IAAI,QAAA,KAAA,EAAR,CAHD;iBAAA,EAMA,UAAC,OAAD,EAAQ;AAEP,2BAAM,WAAW,QAAX,EAAN,EACA;AAEC,0BAAE,OAAF,CAAU,WAAW,OAAX,CAAV,CAFD;AAKC,4BAAG,EAAE,KAAF,GAAQ,CAAR,EAEF,OAAO,QAAQ,WAAR,CAAoB,EAAE,OAAF,EAApB,CAAP,CAFD;qBAND;AAUA,2BAAO,KAAP,CAZO;iBAAR,EAeA,YAAA;AAEC,8BAAA,OAAA,CAAQ,UAAR,EAAoB,CAApB,EAFD;iBAAA,CAtBD,CALD;aAAA,CADD,CAb8B;;;;mCAkDpB,OAAY;AAEtB,gBAAG,EAAE,QAAM,CAAN,CAAF,EACF,OAAO,WAAW,KAAX,EAAP,CADD;AAGA,gBAAI,IAAI,IAAJ,CALkB;AAOtB,gBAAG,CAAC,SAAS,KAAT,CAAD,EACF,OAAO,CAAP,CADD;AAGA,sBAAA,OAAA,CAAQ,MAAR,CAAe,KAAf,EAAsB,OAAtB,EAVsB;AAatB,mBAAO,EAAE,OAAF,GACL,IADK,CACA,KADA,EAEL,OAFK,EAAP,CAbsB;;;;8BAoBjB,WAAsB;AAE3B,8CAv0BF,iDAu0BoC,UAAlC,CAF2B;;;;+BAKZ,UAA6B;AAE5C,8CA50BF,kDA40B2C,SAAzC,CAF4C;;;;mCAc5C,oBACA,gBAAoD;AAEpD,mBAAO,KAAK,WAAL,CAAiB,kBAAjB,EAAqC,cAArC,CAAP,CAFoD;;;;iCAOA;gBAA9C,iEAA4B,UAAU,QAAV,gBAAkB;;AAEpD,mBAAO,KAAK,OAAL,CAAa,QAAb,CAAP,CAFoD;;;;kCAK9C;AAEN,gBAAI,IAAI,IAAJ;gBAAU,WAAW,CAAC,EAAE,eAAF,EAAD,CAFnB;AAGN,yBAAA,cAAA,CAAe,EAAE,UAAF,CAAf,CAHM;AAKN,mBAAO,IAAI,UAAJ,CACN,YAAA;AAEC,oBAAI,MAAJ,CAFD;AAGC,oBAAI,QAAe,CAAf,CAHL;AAKC,uBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAEC,oCAAgB,QAAhB,EAFD;AAGC,6BAAS,EAAE,OAAF,EAAT,CAHD;AAIC,4BAAQ,OAAO,MAAP,CAJT;iBAAA,EAOA,UAAC,OAAD;2BAAY,SAAS,QAAQ,WAAR,CAAoB,OAAO,EAAE,KAAF,CAA3B,CAAT;iBAAZ,EAEA,YAAA;AAEC,2BAAO,MAAP,GAAgB,CAAhB,CAFD;iBAAA,CAVD,CALD;aAAA,EAsBA,YAAA;AAEC,2BAAW,IAAX,CAFD;aAAA,CAvBD,CALM;;;;kCAmCA;AAEN,gBAAI,IAAI,IAAJ;gBAAU,WAAW,CAAC,EAAE,eAAF,EAAD,CAFnB;AAGN,yBAAA,cAAA,CAAe,EAAE,UAAF,CAAf,CAHM;AAKN,mBAAO,IAAI,UAAJ,CACN,YAAA;AAEC,oBAAI,MAAJ,CAFD;AAGC,oBAAI,QAAJ,CAHD;AAIC,oBAAI,GAAJ,CAJD;AAMC,uBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAEC,oCAAgB,QAAhB,EAFD;AAGC,6BAAS,EAAE,OAAF,EAAT,CAHD;AAIC,+BAAW,MAAM,OAAO,MAAP,CAJlB;iBAAA,EAOA,UAAC,OAAD,EAAQ;AAGP,wBAAG,CAAC,GAAD,EACF,OAAO,QAAQ,UAAR,EAAP,CADD;AAGA,wBAAI,gBAAgB,UAAA,OAAA,CAAQ,MAAR,CAAe,GAAf,CAAhB,CANG;AAOP,wBAAI,gBAAgB,OAAO,aAAP,CAAhB,CAPG;AASP,2BAAO,aAAP,IAAwB,OAAO,EAAE,GAAF,CAA/B,CATO;AAUP,2BAAO,GAAP,IAAc,IAAd,CAVO;AAYP,wBAAG,MAAI,EAAJ,IAAQ,CAAR,EACF,OAAO,MAAP,GAAgB,GAAhB,CADD;AAGA,2BAAO,QAAQ,WAAR,CAAoB,aAApB,CAAP,CAfO;iBAAR,EAkBA,YAAA;AAEC,2BAAO,MAAP,GAAgB,CAAhB,CAFD;iBAAA,CA1BD,CAND;aAAA,EAuCA,YAAA;AAEC,2BAAW,IAAX,CAFD;aAAA,CAxCD,CALM;;;;8BAoDD,WAAuB;AAE5B,gBAAI,QAAe,CAAf,CAFwB;AAG5B,iBAAK,OAAL,CACC,YAGC,UAAC,CAAD,EAAI,CAAJ,EAAK;AAEJ,oBAAG,UAAU,CAAV,EAAa,CAAb,CAAH,EAAmB,EAAE,KAAF,CAAnB;aAFD,GAMA,YAAA;AAEC,kBAAE,KAAF,CAFD;aAAA,CAVF,CAH4B;AAmB5B,mBAAO,KAAP,CAnB4B;;;;4BAuBzB,WAAsB;AAEzB,gBAAG,CAAC,SAAD,EACF,MAAM,IAAI,wBAAA,qBAAA,CAAsB,WAA1B,CAAN,CADD;AAGA,gBAAI,SAAS,IAAT,CALqB;AAMzB,iBAAK,OAAL,CAAa,UAAC,CAAD,EAAI,CAAJ,EAAK;AAEjB,oBAAG,CAAC,UAAU,CAAV,EAAa,CAAb,CAAD,EACH;AACC,6BAAS,KAAT,CADD;AAEC,2BAAO,KAAP,CAFD;iBADA;aAFY,CAAb,CANyB;AAczB,mBAAO,MAAP,CAdyB;;;;8BAkBpB,WAAsB;AAE3B,mBAAO,KAAK,GAAL,CAAS,SAAT,CAAP,CAF2B;;;;4BAMxB,WAAuB;AAE1B,gBAAG,CAAC,SAAD,EACF,kCA9+BH,8CA8+BG,CADD;AAGA,gBAAI,SAAS,KAAT,CALsB;AAQ1B,iBAAK,OAAL,CACC,UAAC,CAAD,EAAI,CAAJ,EAAK;AAEJ,yBAAS,UAAU,CAAV,EAAa,CAAb,CAAT,CAFI;AAGJ,uBAAO,CAAC,MAAD,CAHH;aAAL,CADD,CAR0B;AAc1B,mBAAO,MAAP,CAd0B;;;;6BAmBtB,WAAsB;AAE1B,mBAAO,KAAK,GAAL,CAAS,SAAT,CAAP,CAF0B;;;;iCAMR,OAAS,iBAAsC;AAEjE,mBAAO,kBACJ,KAAK,GAAL,CAAS;uBAAI,gBAAgB,CAAhB,MAAqB,gBAAgB,KAAhB,CAArB;aAAJ,CADL,GAEJ,KAAK,GAAL,CAAS;uBAAI,MAAI,KAAJ;aAAJ,CAFL,CAF0D;;;;gCAUhD,OAAS,iBAAsC;AAEhE,gBAAI,QAAe,CAAC,CAAD,CAF6C;AAGhE,iBAAK,OAAL,CACC,kBAEC,UAAC,OAAD,EAAY,CAAZ,EAAqB;AAEpB,oBAAG,OAAO,QAAP,CAAgB,gBAAgB,OAAhB,EAAyB,CAAzB,CAAhB,EAA6C,gBAAgB,KAAhB,EAAuB,CAAvB,CAA7C,EAAwE,IAAxE,CAAH,EACA;AACC,4BAAQ,CAAR,CADD;AAEC,2BAAO,KAAP,CAFD;iBADA;aAFD,GASA,UAAC,OAAD,EAAY,CAAZ,EAAqB;AAGpB,oBAAG,OAAO,QAAP,CAAgB,OAAhB,EAAyB,KAAzB,EAAgC,IAAhC,CAAH,EACA;AACC,4BAAQ,CAAR,CADD;AAEC,2BAAO,KAAP,CAFD;iBADA;aAHD,CAZF,CAHgE;AA0BhE,mBAAO,KAAP,CA1BgE;;;;oCA6B3C,OAAS,iBAAsC;AAEpE,gBAAI,SAAgB,CAAC,CAAD,CAFgD;AAGpE,iBAAK,OAAL,CACC,kBAEC,UAAC,OAAD,EAAY,CAAZ,EAAqB;AAEpB,oBAAG,OAAO,QAAP,CAAgB,gBAAgB,OAAhB,EAAyB,CAAzB,CAAhB,EAA6C,gBAAgB,KAAhB,EAAuB,CAAvB,CAA7C,EAAwE,IAAxE,CAAH,EAAkF,SAC/E,CAD+E,CAAlF;aAFD,GAOA,UAAC,OAAD,EAAY,CAAZ,EAAqB;AAEpB,oBAAG,OAAO,QAAP,CAAgB,OAAhB,EAAyB,KAAzB,EAAgC,IAAhC,CAAH,EAA0C,SAAS,CAAT,CAA1C;aAFD,CAVF,CAHoE;AAkBpE,mBAAO,MAAP,CAlBoE;;;;8BAqB/D,aAAyC;AAE9C,8CAlkCF,iDAkkCoC,YAAlC,CAF8C;;;;iCAKG;+CAAxC;;aAAwC;;AAEjD,mBAAO,KAAK,KAAL,CAAW,WAAX,CAAP,CAFiD;;;;kCAOjD,QACA,iBAAsC;AAEtC,gBAAI,IAAI,IAAJ,CAFkC;AAItC,mBAAO,IAAI,UAAJ,CACN,YAAA;AAEC,oBAAI,UAAJ,CAFD;AAGC,oBAAI,IAAJ,CAHD;AAIC,oBAAI,IAAJ,CAJD;AAMC,uBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAEC,iCAAa,EAAE,aAAF,EAAb,CAFD;AAIC,2BAAO,IAAI,aAAA,UAAA,CAAuB,eAA3B,CAAP,CAJD;AAKC,2BAAO,IAAI,aAAA,UAAA,CAAuB,eAA3B,CAAP,CALD;AAOC,iCAAA,OAAA,CAAQ,MAAR,EAAgB,eAAG;AAElB,6BAAK,aAAL,CAAmB,GAAnB,EAAwB,IAAxB,EAFkB;qBAAH,CAAhB,CAPD;iBAAA,EAaA,UAAC,OAAD,EAAQ;AAEP,2BAAM,WAAW,QAAX,EAAN,EACA;AACC,4BAAI,UAAU,WAAW,OAAX,CADf;AAEC,4BAAG,CAAC,KAAK,WAAL,CAAiB,OAAjB,CAAD,IAA8B,KAAK,WAAL,CAAiB,OAAjB,CAA9B,EACH;AACC,iCAAK,aAAL,CAAmB,OAAnB,EAA4B,IAA5B,EADD;AAEC,mCAAO,QAAQ,WAAR,CAAoB,OAApB,CAAP,CAFD;yBADA;qBAHD;AASA,2BAAO,QAAQ,UAAR,EAAP,CAXO;iBAAR,EAcA,YAAA;AAEC,8BAAA,OAAA,CAAQ,UAAR,EAAoB,IAApB,EAA0B,IAA1B,EAFD;iBAAA,EAIA,EAAE,UAAF,CAhCD,CAND;aAAA,EAyCA,IA1CM,EA2CN,EAAE,UAAF,CA3CD,CAJsC;;;;sCAoDtC,QACwD;gBAAxD,yEAAyC,OAAO,QAAP,gBAAe;;AAExD,mBAAO,UAAA,KAAA,CACN,KAAK,aAAL,EADM,EAEN;uBAAK,UAAA,KAAA,CACJ,aAAA,IAAA,CAAe,MAAf,CADI,EAEJ,cAAE;AAGD,iCAAA,cAAA,CAAe,GAAG,SAAH,IAAgB,GAAG,SAAH,CAA/B,CAHC;AAKD,2BAAM,GAAG,QAAH,EAAN,EACA;AACC,4BAAG,CAAC,GAAG,QAAH,EAAD,IAAkB,CAAC,iBAAiB,GAAG,OAAH,EAAY,GAAG,OAAH,CAA9B,EACpB,OAAO,KAAP,CADD;qBAFD;AAMA,2BAAO,CAAC,GAAG,QAAH,EAAD,CAXN;iBAAF;aAFD,CAFD,CAFwD;;;;+BAoC3C,MAAQ;AAErB,8CAxqCF,kDAwqCyC,KAAvC,CAFqB;;;;+BAMrB,QACA,iBAAsC;AAEtC,8CA/qCF,kDA+qCqC,QAAQ,gBAA3C,CAFsC;;;;iCAK9B,iBAA6B;AAErC,8CAprCF,oDAorCuC,gBAArC,CAFqC;;;;+CAKmD;gBAA1D,wEAAwC,UAAU,QAAV,gBAAkB;;AAExF,8CAzrCF,gEAyrCmD,gBAAjD,CAFwF;;;;kCAON;gBAAlD,oEAAgC,UAAU,QAAV,gBAAkB;;AAElF,mBAAO,IAAI,iBAAJ,CAA8B,IAA9B,EAAoC,WAApC,EAAiD,CAAjD,CAAP,CAFkF;;;;mCAKxE,YAAwB;AAElC,mBAAO,IAAI,iBAAJ,CAA6B,IAA7B,EAAmC,IAAnC,EAAyC,CAAzC,EAA0D,IAA1D,EAAgE,UAAhE,CAAP,CAFkC;;;;2CAKhB,YAAwB;AAE1C,mBAAO,IAAI,iBAAJ,CAA6B,IAA7B,EAAmC,IAAnC,EAAyC,CAAA,CAAA,EAAkB,IAA3D,EAAiE,UAAjE,CAAP,CAF0C;;;;4CAKkD;gBAAlD,oEAAgC,UAAU,QAAV,gBAAkB;;AAE5F,mBAAO,IAAI,iBAAJ,CAA8B,IAA9B,EAAoC,WAApC,EAAiD,CAAA,CAAA,CAAxD,CAF4F;;;;+BAqDtF,MAAW;AAEjB,8CApwCF,kDAowCuC,KAArC,CAFiB;;;;gCAgBjB,aACA,iBACA,iBAAyC;;;AAEzC,gBAAG,CAAC,eAAD,EAAkB,kBAAkB,UAAU,QAAV,CAAvC;AACA,mBAAO,IAAI,UAAJ,CACN;uBAAM,OAAK,QAAL,CAAc,WAAd,EAA2B,eAA3B,EAA4C,eAA5C,EACJ,aADI;aAAN,CADD,CAHyC;;;;oCAgBzC,aACA,iBAIqB;gBAHrB,uEACG,UAAC,GAAD,EAAW,QAAX;uBAAmC,IAAI,QAAJ,CAA6B,GAA7B,EAAkC,QAAlC;aAAnC,gBAEkB;gBADrB,wEACG,UAAU,QAAV,gBAAkB;;AAGrB,gBAAI,IAAI,IAAJ,CAHiB;AAIrB,gBAAG,CAAC,eAAD,EAAkB,kBAAkB,UAAU,QAAV,CAAvC;AACA,mBAAO,IAAI,UAAJ,CACN,YAAA;AAEC,oBAAI,UAAJ,CAFD;AAGC,oBAAI,GAAJ,CAHD;AAIC,oBAAI,UAAJ,CAJD;AAKC,oBAAI,KAAJ,CALD;AAMC,oBAAI,GAAJ,CAND;AAQC,uBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAEC,iCAAa,EAAE,aAAF,EAAb,CAFD;AAGC,wBAAG,WAAW,QAAX,EAAH,EACA;AACC,8BAAM,YAAY,WAAW,OAAX,CAAlB,CADD;AAEC,qCAAa,gBAAgB,GAAhB,CAAb,CAFD;AAGC,gCAAQ,CAAC,gBAAgB,WAAW,OAAX,CAAjB,CAAR,CAHD;AAIC,8BAAM,CAAN,CAJD;qBADA,MAQC,QAAQ,IAAR,CARD;iBAHD,EAcA,UAAC,OAAD,EAAQ;AAEP,wBAAG,CAAC,KAAD,EACF,OAAO,QAAQ,UAAR,EAAP,CADD;AAGA,wBAAI,OAAJ,EAAqB,CAArB,CALO;AAMP,2BAAO,UAAU,WAAW,QAAX,EAAV,EACP;AACC,4BAAI,WAAW,OAAX,CADL;AAEC,4BAAG,eAAa,gBAAgB,YAAY,CAAZ,CAAhB,CAAb,EACF,MAAM,KAAN,IAAe,gBAAgB,CAAhB,CAAf,CADD,KAGC,MAHD;qBAHD;AASA,wBAAI,SACG,eAAe,GAAf,EAAoB,KAApB,CADH,CAfG;AAkBP,wBAAG,OAAH,EACA;AACC,4BAAI,WAAW,OAAX,CADL;AAEC,8BAAM,YAAY,CAAZ,CAAN,CAFD;AAGC,qCAAa,gBAAgB,GAAhB,CAAb,CAHD;AAIC,gCAAQ,CAAC,gBAAgB,CAAhB,CAAD,CAAR,CAJD;AAKC,8BAAM,CAAN,CALD;qBADA,MASA;AACC,gCAAQ,IAAR,CADD;qBATA;AAaA,2BAAO,QAAQ,WAAR,CAAoB,MAApB,CAAP,CA/BO;iBAAR,EAkCA,YAAA;AAEC,8BAAA,OAAA,CAAQ,UAAR,EAFD;AAGC,4BAAQ,IAAR,CAHD;iBAAA,CAjDD,CARD;aAAA,CADD,CALqB;;;;kCA8ErB,MACA,MAAO;AAEP,mBAAO,KAAK,IAAL,CAAU,IAAV,EAAgB,IAAhB,EAAsB,aAAtB,EAAP,CAFO;;;;kCAK+C;gBAA/C,iEAA+B,QAAA,IAAA,CAAK,WAAL,gBAAgB;;AAEtD,gBAAI,QAAQ,CAAR,CAFkD;AAGtD,gBAAI,MAAM,KAAK,GAAL,CAAS,UAAC,CAAD,EAAI,CAAJ,EAAK;AAEvB,wBAFuB;AAGvB,uBAAO,SAAS,CAAT,EAAY,CAAZ,CAAP,CAHuB;aAAL,CAAf,CAHkD;AAStD,mBAAO,KAAC,CAAM,GAAN,KAAc,CAAC,KAAD,GACnB,GADI,GAEH,MAAI,KAAJ,CAXkD;;;;8BAepD;AAEF,mBAAO,KAAK,SAAL,CAAe,UAAU,OAAV,CAAtB,CAFE;;;;8BAKA;AAEF,mBAAO,KAAK,SAAL,CAAe,UAAU,MAAV,CAAtB,CAFE;;;;gCAKmE;gBAAtD,oEAAoC,UAAU,QAAV,gBAAkB;;AAErE,mBAAO,KAAK,SAAL,CAAe,UAAC,CAAD,EAAM,CAAN;uBAAc,WAAC,CAAY,CAAZ,IAAe,YAAY,CAAZ,CAAf,GAAiC,CAAlC,GAAsC,CAAtC;aAAd,CAAtB,CAFqE;;;;gCAKA;gBAAtD,oEAAoC,UAAU,QAAV,gBAAkB;;AAErE,mBAAO,KAAK,SAAL,CAAe,UAAC,CAAD,EAAM,CAAN;uBAAc,WAAC,CAAY,CAAZ,IAAe,YAAY,CAAZ,CAAf,GAAiC,CAAlC,GAAsC,CAAtC;aAAd,CAAtB,CAFqE;;;;8BAMnB;gBAA/C,iEAA+B,QAAA,IAAA,CAAK,WAAL,gBAAgB;;AAElD,gBAAI,MAAM,CAAN,CAF8C;AAKlD,gBAAI,cAAc,CAAd,CAL8C;AAOlD,iBAAK,OAAL,CACC,aAAC;AAEA,oBAAI,QAAQ,SAAS,CAAT,CAAR,CAFJ;AAGA,oBAAG,MAAM,KAAN,CAAH,EACA;AACC,0BAAM,GAAN,CADD;AAEC,2BAAO,KAAP,CAFD;iBADA;AAKA,oBAAG,SAAS,KAAT,CAAH,EACC,OAAO,KAAP,CADD,KAGC,eACC,QAAM,CAAN,GACE,CAAC,CAAD,GACA,CAAC,CAAD,CANJ;aARD,CADD,CAPkD;AA0BlD,mBAAO,MAAM,GAAN,IAAa,GAAb,GAAoB,cAAe,cAAY,QAAZ,GAAwB,GAAvC,CA1BuB;;;;kCA8BI;gBAA/C,iEAA+B,QAAA,IAAA,CAAK,WAAL,gBAAgB;;AAEtD,gBAAI,SAAS,CAAT;gBAAY,SAAiB,KAAjB,CAFsC;AAItD,iBAAK,OAAL,CACC,UAAC,CAAD,EAAI,CAAJ,EAAK;AAEJ,yBAAS,IAAT,CAFI;AAGJ,oBAAI,QAAQ,SAAS,CAAT,EAAY,CAAZ,CAAR,CAHA;AAIJ,oBAAG,MAAM,KAAN,CAAH,EACA;AACC,6BAAS,GAAT,CADD;AAEC,2BAAO,KAAP,CAFD;iBADA;AAMA,oBAAG,SAAO,CAAP,EACH;AACC,6BAAS,CAAT,CADD;AAEC,2BAAO,KAAP,CAFD;iBADA;AAQA,0BAAU,KAAV,CAlBI;aAAL,CADD,CAJsD;AA2BtD,mBAAO,MAAC,IAAU,MAAM,MAAN,CAAV,GAA2B,GAA5B,GAAkC,MAAlC,CA3B+C;;;;mCAmCC;gBAA/C,iEAA+B,QAAA,IAAA,CAAK,WAAL,gBAAgB;;AAEvD,gBAAI,QAAQ,CAAR,CAFmD;AAGvD,gBAAI,SAAgB,GAAhB,CAHmD;AAKvD,iBAAK,OAAL,CACC,UAAC,CAAD,EAAI,CAAJ,EAAK;AAEJ,oBAAI,QAAQ,SAAS,CAAT,EAAY,CAAZ,CAAR,CAFA;AAGJ,wBAHI;AAKJ,oBAAG,UAAQ,CAAR,EACH;AACC,6BAAS,KAAT,CADD;iBADA,MAKA;AACC,wBAAG,MAAM,KAAN,KAAgB,UAAQ,CAAR,IAAa,CAAC,SAAS,KAAT,CAAD,EAChC;AACC,iCAAS,GAAT,CADD;AAEC,+BAAO,KAAP,CAFD;qBADA;AAMA,8BAAU,KAAV,CAPD;iBALA;aALD,CADD,CALuD;AA6BvD,gBAAG,UAAQ,CAAR,EACF,SAAS,GAAT,CADD;AAGA,mBAAO,MAAP,CAhCuD;;;;+BAuCpD;AAEH,gBAAI,IAAI,IAAJ,CAFD;AAGH,cAAE,eAAF,GAHG;AAKH,gBAAI,QAAU,SAAV,CALD;AAMH,gBAAI,QAAgB,KAAhB,CAND;AAOH,cAAE,OAAF,CACC,aAAC;AAEA,wBAAQ,IAAR,CAFA;AAGA,wBAAQ,CAAR,CAHA;aAAD,CADD,CAPG;AAeH,gBAAG,CAAC,KAAD,EAAQ,MAAM,IAAI,KAAJ,CAAU,0CAAV,CAAN,CAAX;AACA,mBAAO,KAAP,CAhBG;;;;wCAmB+B;gBAArB,qEAAiB,oBAAI;;AAElC,gBAAI,IAAI,IAAJ,CAF8B;AAGlC,cAAE,eAAF,GAHkC;AAKlC,gBAAI,QAAU,SAAV,CAL8B;AAMlC,gBAAI,QAAgB,KAAhB,CAN8B;AAOlC,cAAE,OAAF,CACC,aAAC;AAEA,wBAAQ,IAAR,CAFA;AAGA,wBAAQ,CAAR,CAHA;aAAD,CADD,CAPkC;AAclC,mBAAO,CAAE,KAAD,GAAU,YAAX,GAA0B,KAA1B,CAd2B;;;;gCAmB9B;AAEJ,8CAjjDF,gDAijDE,CAFI;;;;mCAMM,SAAqB;AAE/B,8CAvjDF,sDAujDyC,QAAvC,CAF+B;;;;sCAMlB,QAAe;AAE5B,8CA7jDF,yDA6jD4C,OAA1C,CAF4B;;;;kCAKtB;AAEN,gBAAI,IAAI,IAAJ;gBAAU,WAAmB,CAAC,EAAE,eAAF,EAAD,CAF3B;AAIN,gBAAI,KAAJ,CAJM;AAKN,gBAAI,UAAJ,CALM;AAON,mBAAO,IAAI,UAAJ,CACN,YAAA;AAGC,oBAAI,QAAe,CAAf,CAHL;AAKC,uBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAEC,oCAAgB,QAAhB,EAFD;AAGC,wBAAG,CAAC,UAAD,EACF,aAAa,EAAE,aAAF,EAAb,CADD;AAEA,wBAAG,CAAC,KAAD,EACF,QAAQ,EAAR,CADD;AAEA,4BAAQ,CAAR,CAPD;iBAAA,EAUA,UAAC,OAAD,EAAQ;AAEP,oCAAgB,QAAhB,EAFO;AAIP,wBAAI,IAAI,OAAJ,CAJG;AAMP,wBAAG,KAAG,MAAM,MAAN,EACN;AACC,+BAAO,UAAC,CAAW,QAAX,EAAD,GACJ,QAAQ,WAAR,CAAoB,MAAM,CAAN,IAAW,WAAW,OAAX,CAD3B,GAEJ,KAFI,CADR;qBADA;AAOA,2BAAO,QAAQ,WAAR,CAAoB,MAAM,CAAN,CAApB,CAAP,CAbO;iBAAR,CAXD,CALD;aAAA,EAkCA,YAAA;AAEC,2BAAW,IAAX,CAFD;AAGC,oBAAG,KAAH,EACC,MAAM,MAAN,GAAe,CAAf,CADD;AAEA,wBAAQ,IAAR,CALD;AAOC,0BAAA,OAAA,CAAQ,UAAR,EAPD;AAQC,6BAAa,IAAb,CARD;aAAA,CAnCD,CAPM;;;;6BA9iDQ,QAA4B;AAE1C,gBAAI,IAAI,WAAW,OAAX,CAAmB,MAAnB,CAAJ,CAFsC;AAG1C,gBAAG,CAAC,CAAD,EAAI,MAAM,IAAI,iCAAA,8BAAA,EAAV,CAAP;AACA,mBAAO,CAAP,CAJ0C;;;;gCAmB1C,QACsC;gBAAtC,0EAAkC,oBAAI;;AAEtC,gBAAG,QAAA,IAAA,CAAK,QAAL,CAAc,MAAd,KAAyB,QAAA,IAAA,CAAK,QAAL,CAAc,MAAd,CAAzB,EACH;AACC,oBAAG,kBAAkB,UAAlB,EACF,OAAO,MAAP,CADD;AAGA,oBAAG,QAAA,IAAA,CAAK,WAAL,CAAoB,MAApB,CAAH,EACC,OAAO,IAAI,eAAJ,CAAuB,MAAvB,CAAP,CADD;AAGA,oBAAG,aAAA,YAAA,CAAgB,MAAhB,CAAH,EACC,OAAO,IAAI,UAAJ,CACN;2BAAI,OAAO,aAAP;iBAAJ,EACA,IAFM,EAEA,OAAO,SAAP,CAFP,CADD;aARD;AAcA,mBAAO,iBAAP,CAhBsC;;;;oCAmBjB,QAA4B;AAEjD,mBAAO,WAAW,OAAX,CAAmB,MAAnB,KAA8B,WAAW,KAAX,EAA9B,CAF0C;;;;gCAUhC,QAA4B;AAE7C,gBAAG,kBAAkB,UAAlB,EACF,OAAO,OAAO,OAAP,EAAP,CADD;AAGA,mBAAO,aAAA,OAAA,CAAQ,MAAR,CAAP,CAL6C;;;;+BAW7B,QAAgB;AAEhC,gBAAI,MAAM,UAAU,OAAO,MAAP,CAFY;AAKhC,gBAAG,CAAC,GAAD,IAAQ,CAAC,SAAS,GAAT,CAAD,EACV,MAAM,IAAI,8BAAA,2BAAA,CAA4B,QAAhC,EAA0C,MAA1C,CAAN,CADD;AAGA,mBAAO,IAAI,kBAAJ,CACN;uBAAM,IAAI,iBAAA,cAAA,CACT,IADK,EAEL,UAAC,OAAD;2BACC,QAAQ,WAAR,CAAoB,UAAA,OAAA,CAAQ,MAAR,CAAe,MAAf,CAAsB,MAAtB,CAApB;iBADD,EAEA,IAJK;aAAN,CADD,CARgC;;;;qCAkBD;+CAAR;;aAAQ;;AAE/B,mBAAO,WAAW,MAAX,CAAkB,IAAlB,CAAP,CAF+B;;;;8BAKhB,QAAgB;AAE/B,gBAAI,MAAM,UAAU,OAAO,MAAP,CAFW;AAK/B,gBAAG,CAAC,GAAD,IAAQ,CAAC,SAAS,GAAT,CAAD,EACV,MAAM,IAAI,8BAAA,2BAAA,CAA4B,QAAhC,EAA0C,MAA1C,CAAN,CADD;AAGA,mBAAO,IAAI,kBAAJ,CACN,YAAA;AAEC,oBAAI,QAAe,CAAf,CAFL;AAGC,uBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAEC,4BAAQ,CAAR,CAFD;iBAAA,EAIA,UAAC,OAAD,EAAQ;AAEP,wBAAG,SAAO,OAAO,MAAP,EAAe,QAAQ,CAAR,CAAzB;AACA,2BAAO,QAAQ,WAAR,CAAoB,OAAO,OAAP,CAApB,CAAP,CAHO;iBAAR,EAKA,IAVM,CAAP,CAHD;aAAA,CADD,CAR+B;;;;uCA4BE;+CAAR;;aAAQ;;AAEjC,mBAAO,WAAW,KAAX,CAAiB,IAAjB,CAAP,CAFiC;;;;gCAKtB;AAGX,mBAAO,IAAI,gBAAJ,CAAwB,kBAAxB,CAAP,CAHW;;;;+BAQK,SAAkC;gBAAvB,8DAAe,wBAAQ;;AAElD,gBAAG,EAAE,QAAM,CAAN,CAAF,EACF,OAAO,WAAW,KAAX,EAAP,CADD;AAGA,mBAAO,SAAS,KAAT,KAAmB,UAAA,OAAA,CAAQ,MAAR,CAAe,KAAf,EAAsB,OAAtB,CAAnB,GACJ,IAAI,gBAAJ,CACF,YAAA;AAEC,oBAAI,IAAW,KAAX,CAFL;AAGC,oBAAI,QAAe,CAAf,CAHL;AAKC,uBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAAQ,4BAAQ,CAAR,CAAR;iBAAA,EACA,UAAC,OAAD;2BAAY,KAAC,KAAQ,CAAR,IAAc,QAAQ,WAAR,CAAoB,OAApB,CAAf;iBAAZ,EACA,IAHM,EAIN,KAJM,CAAP,CALD;aAAA,CAFM,GAeJ,IAAI,UAAJ,CACF;uBACC,IAAI,iBAAA,cAAA,CACH,IADD,EAEC,UAAC,OAAD;2BAAY,QAAQ,WAAR,CAAoB,OAApB;iBAAZ,EACA,IAHD;aADD,CAhBM,CAL2C;;;;2CAgClD,aACA,WAA6B;AAG7B,mBAAO,IAAI,kBAAJ,CACN,YAAA;AAEC,oBAAI,OAAJ,CAFD;AAGC,uBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAEC,8BAAU,aAAV,CAFD;iBAAA,EAKA,UAAC,OAAD;2BAAY,QAAQ,WAAR,CAAoB,OAApB;iBAAZ,EAEA,YAAA;AAEC,8BAAU,OAAV,EAFD;iBAAA,EAKA,IAbM,CAAP,CAHD;aAAA,CADD,CAH6B;;;;6BAgCf,SAAS;AAEvB,mBAAO,WAAW,MAAX,CAAqB,OAArB,EAA8B,CAA9B,CAAP,CAFuB;;;;8BAQvB,OACA,OACe;gBAAf,6DAAc,iBAAC;;AAEf,gBAAG,CAAC,SAAS,KAAT,CAAD,EACF,MAAM,IAAI,8BAAA,2BAAA,CAA4B,OAAhC,EAAyC,KAAzC,EAAgD,0BAAhD,CAAN,CADD;AAGA,gBAAG,EAAE,QAAM,CAAN,CAAF,EACF,OAAO,WAAW,KAAX,EAAP,CADD;AAGA,gBAAG,CAAC,IAAD,EACF,MAAM,IAAI,8BAAA,2BAAA,CAA4B,MAAhC,EAAwC,IAAxC,EAA8C,uBAA9C,CAAN,CADD;AAGA,gBAAG,CAAC,SAAS,IAAT,CAAD,EACF,MAAM,IAAI,8BAAA,2BAAA,CAA4B,MAAhC,EAAwC,IAAxC,EAA8C,0BAA9C,CAAN,CADD;AAGA,sBAAA,OAAA,CAAQ,MAAR,CAAe,KAAf,EAAsB,OAAtB,EAde;AAgBf,mBAAO,IAAI,gBAAJ,CACN,YAAA;AAEC,oBAAI,KAAJ,CAFD;AAGC,oBAAI,IAAW,KAAX,CAHL;AAIC,oBAAI,QAAe,CAAf,CAJL;AAMC,uBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAEC,4BAAQ,CAAR,CAFD;AAGC,4BAAQ,KAAR,CAHD;iBAAA,EAMA,UAAC,OAAD,EAAQ;AAEP,wBAAI,SACC,UAAQ,CAAR,IACG,QAAQ,WAAR,CAAoB,KAApB,CADH,CAHE;AAMP,wBAAG,UAAU,QAAM,KAAN,EACZ,SAAS,IAAT,CADD;AAGA,2BAAO,MAAP,CATO;iBAAR,EAYA,KAnBM,CAAP,CAND;aAAA,CADD,CAhBe;;;;kCAgDf,OACA,OACe;gBAAf,6DAAc,iBAAC;;AAEf,mBAAO,KAAK,GAAL,CAAS,IAAT,IAAgB,CAAC,CAAD,CAFR;AAIf,mBAAO,WAAW,KAAX,CAAiB,KAAjB,EAAwB,KAAxB,EAA+B,IAA/B,CAAP,CAJe;;;;qCAUA;gBADf,8DAAe,iBACA;gBAAf,6DAAc,iBAAC;;AAEf,gBAAG,CAAC,SAAS,KAAT,CAAD,EACF,MAAM,IAAI,8BAAA,2BAAA,CAA4B,OAAhC,EAAyC,KAAzC,EAAgD,0BAAhD,CAAN,CADD;AAGA,gBAAG,CAAC,IAAD,EACF,MAAM,IAAI,8BAAA,2BAAA,CAA4B,MAAhC,EAAwC,IAAxC,EAA8C,uBAA9C,CAAN,CADD;AAGA,gBAAG,CAAC,SAAS,IAAT,CAAD,EACF,MAAM,IAAI,8BAAA,2BAAA,CAA4B,MAAhC,EAAwC,IAAxC,EAA8C,0BAA9C,CAAN,CADD;AAGA,mBAAO,IAAI,kBAAJ,CACN,YAAA;AAEC,oBAAI,KAAJ,CAFD;AAIC,uBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAEC,4BAAQ,KAAR,CAFD;iBAAA,EAKA,UAAC,OAAD,EAAQ;AAEP,wBAAI,UAAiB,KAAjB,CAFG;AAGP,6BAAS,IAAT,CAHO;AAIP,2BAAO,QAAQ,WAAR,CAAoB,OAApB,CAAP,CAJO;iBAAR,EAOA,IAbM,CAAP,CAJD;aAAA,CADD,CAXe;;;;6CAqCA;gBADf,8DAAe,iBACA;gBAAf,6DAAc,iBAAC;;AAEf,mBAAO,WAAW,UAAX,CAAsB,KAAtB,EAA6B,CAAC,IAAD,CAApC,CAFe;;;;gCAMf,OACA,IACe;gBAAf,6DAAc,iBAAC;;AAEf,gBAAG,MAAM,EAAN,KAAa,CAAC,SAAS,EAAT,CAAD,EACf,MAAM,IAAI,8BAAA,2BAAA,CAA4B,IAAhC,EAAsC,EAAtC,EAA0C,0BAA1C,CAAN,CADD;AAGA,gBAAG,QAAQ,CAAC,SAAS,IAAT,CAAD,EACV,MAAM,IAAI,8BAAA,2BAAA,CAA4B,MAAhC,EAAwC,IAAxC,EAA8C,mCAA9C,CAAN,CADD;AAIA,mBAAO,KAAK,GAAL,CAAS,IAAT,CAAP,CATe;AAWf,mBAAO,IAAI,gBAAJ,CACN,YAAA;AAEC,oBAAI,KAAJ,CAFD;AAIC,uBAAO,IAAI,iBAAA,cAAA,CAAuB,YAAA;AAAQ,4BAAQ,KAAR,CAAR;iBAAA,EACjC,QAAM,EAAN,GAEC,mBAAO;AAEN,wBAAI,SAAiB,SAAO,EAAP,IAAa,QAAQ,WAAR,CAAoB,KAApB,CAAb,CAFf;AAIN,wBAAG,MAAH,EACC,SAAS,IAAT,CADD;AAGA,2BAAO,MAAP,CAPM;iBAAP,GAUA,mBAAO;AAEN,wBAAI,SAAiB,SAAO,EAAP,IAAa,QAAQ,WAAR,CAAoB,KAApB,CAAb,CAFf;AAIN,wBAAG,MAAH,EACC,SAAS,IAAT,CADD;AAGA,2BAAO,MAAP,CAPM;iBAAP,EASC,KAtBI,CAAP,CAJD;aAAA,CADD,CAXe;;;;gCA2CD,OAAc,SAA8B;gBAAjB,8DAAe,kBAAE;;AAE1D,gBAAG,UAAQ,IAAR,IAAgB,UAAQ,KAAR,EAClB,MAAM,IAAI,wBAAA,qBAAA,CAAsB,OAA1B,CAAN,CADD;AAEA,gBAAI,cAAc,oDAAd,CAJsD;AAK1D,gBAAG,QAAM,QAAA,IAAA,CAAK,MAAL,EACR,MAAM,IAAI,KAAJ,CAAU,yCAAyC,IAAzC,GAAgD,IAAhD,CAAhB,CADD;AAGA,gBAAG,mBAAmB,MAAnB,EACH;AACC,yBAAS,OAAC,CAAQ,UAAR,GAAsB,GAAvB,GAA6B,EAA7B,CADV;AAEC,yBAAS,OAAC,CAAQ,SAAR,GAAqB,GAAtB,GAA4B,EAA5B,CAFV;AAGC,0BAAU,QAAQ,MAAR,CAHX;aADA;AAOA,gBAAG,MAAM,OAAN,CAAc,GAAd,MAAsB,CAAC,CAAD,EAAI,SAAS,GAAT,CAA7B;AAEA,mBAAO,IAAI,gBAAJ,CACN,YAAA;AAEC,oBAAI,KAAJ,CAFD;AAGC,uBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAEC,4BAAQ,IAAI,MAAJ,CAAW,OAAX,EAAoB,KAApB,CAAR,CAFD;iBAAA,EAKA,UAAC,OAAD,EAAQ;AAGP,wBAAI,QAAQ,MAAM,IAAN,CAAW,KAAX,CAAR,CAHG;AAIP,2BAAO,KAAC,KAAQ,IAAR,GAAgB,QAAQ,WAAR,CAAoB,KAApB,CAAjB,GAA8C,KAA9C,CAJA;iBAAR,CAND,CAHD;aAAA,CADD,CAjB0D;;;;iCAwCxC,SAAqD;gBAAvB,8DAAe,wBAAQ;;AAGvE,gBAAG,MAAM,KAAN,KAAgB,SAAO,CAAP,EAClB,OAAO,WAAW,KAAX,EAAP,CADD;AAGA,mBAAO,SAAS,KAAT,KAAmB,UAAA,OAAA,CAAQ,MAAR,CAAe,KAAf,EAAsB,OAAtB,CAAnB,GAEN,IAAI,gBAAJ,CACC,YAAA;AAEC,oBAAI,IAAW,KAAX,CAFL;AAGC,oBAAI,QAAe,CAAf,CAHL;AAKC,uBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAEC,4BAAQ,CAAR,CAFD;iBAAA,EAKA,UAAC,OAAD,EAAQ;AAEP,wBAAI,UAAiB,OAAjB,CAFG;AAGP,2BAAO,UAAQ,CAAR,IAAa,QAAQ,WAAR,CAAoB,QAAQ,OAAR,CAApB,CAAb,CAHA;iBAAR,EAMA,KAZM,CAAP,CALD;aAAA,CAHK,GAwBN,IAAI,kBAAJ,CACC,YAAA;AAEC,oBAAI,QAAe,CAAf,CAFL;AAGC,uBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAEC,4BAAQ,CAAR,CAFD;iBAAA,EAKA,UAAC,OAAD;2BAAY,QAAQ,WAAR,CAAoB,QAAQ,OAAR,CAApB;iBAAZ,EAEA,IARM,CAAP,CAHD;aAAA,CAzBK,CANgE;;;;+BAgDvE,MACA,cACwB;gBAAxB,iEAAmB,qBAAK;;AAExB,mBAAO,IAAI,kBAAJ,CACN,YAAA;AAEC,oBAAI,QAAe,CAAf,CAFL;AAGC,oBAAI,KAAJ,CAHD;AAIC,oBAAI,OAAJ,CAJD;AAKC,uBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAEC,4BAAQ,CAAR,CAFD;AAGC,4BAAQ,IAAR,CAHD;AAIC,8BAAU,CAAC,QAAD,CAJX;iBAAA,EAOA,UAAC,OAAD,EAAQ;AAEP,wBAAI,IAAI,OAAJ,CAFG;AAGP,wBAAG,OAAH,EACC,UAAU,KAAV,CADD,KAGC,QAAQ,aAAa,KAAb,EAAoB,CAApB,CAAR,CAHD;AAIA,2BAAO,QAAQ,WAAR,CAAoB,KAApB,CAAP,CAPO;iBAAR,EAUA,IAlBM,CAAP,CALD;aAAA,CADD,CAFwB;;;;gCAiCxB,YACA,QAAwC;AAIxC,yBAAA,OAAA,CAAQ,UAAR,EAAoB,MAApB,EAJwC;;;;4BAQxC,YACA,UAA4B;AAI5B,mBAAO,aAAA,GAAA,CAAI,UAAJ,EAAgB,QAAhB,CAAP,CAJ4B;;;;4BASlB,QAA+B;AAEzC,mBAAO,OACL,SADK,CACK;uBAAI,KAAI,CAAC,QAAD;aAAR,EAAmB,IADxB,EAEL,SAFK,CAEK,UAAU,OAAV,CAFZ,CAFyC;;;;4BAO/B,QAA+B;AAEzC,mBAAO,OACL,SADK,CACK;uBAAI,KAAI,CAAC,QAAD;aAAR,EAAmB,IADxB,EAEL,SAFK,CAEK,UAAU,MAAV,CAFZ,CAFyC;;;;8BAczC,aAAqD;AAErD,gBAAG,CAAC,WAAD,EACF,MAAM,IAAI,wBAAA,qBAAA,CAAsB,aAA1B,CAAN,CADD;AAGA,mBAAO,IAAI,UAAJ,CACN,YAAA;AAEC,oBAAI,KAAJ,CAFD;AAGC,oBAAI,cAAJ,CAHD;AAIC,oBAAI,KAAJ,CAJD;AAMC,uBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAEC,4BAAQ,CAAR,CAFD;AAGC,4BAAQ,IAAI,QAAA,KAAA,EAAZ,CAHD;AAIC,qCAAiB,aAAA,IAAA,CAAe,WAAf,CAAjB,CAJD;iBAAA,EAOA,UAAC,OAAD,EAAQ;AAEP,wBAAI,aAAJ,CAFO;AAKP,wBAAG,cAAH,EACA;AACC,+BAAM,CAAC,CAAD,IAAM,eAAe,QAAf,EAAN,EACN;AACC,gCAAI,IAAI,eAAe,OAAf,CADT;AAEC,gCAAI,eAAe,KAAf,EAAsB,KAAK,aAAA,IAAA,CAAe,CAAf,CAAL,CAA1B,CAFD;yBADA;AAMA,4BAAG,CAAC,CAAD,EACF,iBAAiB,IAAjB,CADD;qBARD;AAYA,2BAAM,CAAC,CAAD,IAAM,MAAM,KAAN,EACZ;AACC,4BAAI,eAAe,KAAf,EAAsB,MAAM,OAAN,EAAtB,CAAJ,CADD;qBADA;AAKA,2BAAO,IACJ,QAAQ,WAAR,CAAoB,EAAE,OAAF,CADhB,GAEJ,QAAQ,UAAR,EAFI,CAtBA;iBAAR,EA4BA,YAAA;AAEC,8BAAA,OAAA,CAAQ,KAAR,CAAc,MAAM,IAAN,EAAd,EAFD;AAGC,8BAAA,OAAA,CAAQ,cAAR,EAAwB,KAAxB,EAHD;AAIC,qCAAiB,IAAjB,CAJD;AAKC,4BAAQ,IAAR,CALD;iBAAA,CApCD,CAND;aAAA,CADD,CALqD;;;;WAhhBvD;EACQ;;AADK,QAAA,UAAA,GAAU,UAAV;;IA4nDb;;;AAGC,aAHD,gBAGC,CACC,iBADD,EAEC,SAFD,EAEsB;8BALvB,kBAKuB;;sEALvB,6BAOQ,mBAAmB,WAAW,QAFf;KAFtB;;WAHD;EACQ;;AADK,QAAA,gBAAA,GAAgB,gBAAhB;;IAYb;;;AAKC,aALD,eAKC,CAAY,MAAZ,EAA4B;8BAL7B,iBAK6B;;4EAL7B,4BAOQ,YAAA;AAEL,cAAE,eAAF,GAFK;AAGL,mBAAO,IAAI,kBAAA,eAAA,CAAmB,YAAA;AAE7B,kBAAE,eAAF,CAAkB,8CAAlB,EAAkE,iBAAlE,EAF6B;AAI7B,uBAAO,EAAE,OAAF,CAJsB;aAAA,CAA9B,CAHK;SAAA,GAFqB;;AAa3B,YAAI,UAAJ,CAb2B;AAc3B,UAAE,qBAAF,GAA0B,iBAA1B,CAd2B;AAe3B,UAAE,OAAF,GAAY,MAAZ,CAf2B;;KAA5B;;iBALD;;qCAwBqB;AAEnB,uCA1BF,0DA0BE,CAFmB;AAGnB,iBAAK,OAAL,GAAoB,IAApB,CAHmB;;;;kCAWb;AAEN,gBAAI,IAAI,IAAJ,CAFE;AAGN,cAAE,eAAF,GAHM;AAKN,mBAAO,aAAA,OAAA,CAAQ,EAAE,OAAF,CAAf,CALM;;;;uCAQK;AAEX,mBAAO,IAAI,eAAJ,CAAuB,KAAK,OAAL,CAA9B,CAFW;;;;gCAMJ,QAA+B;AAEtC,gBAAI,IAAI,IAAJ,CAFkC;AAGtC,cAAE,eAAF,GAHsC;AAKtC,yBAAA,OAAA,CAAQ,EAAE,OAAF,EAAW,MAAnB,EALsC;;;;4BAUnC,WAAuB;AAE1B,gBAAI,IAAI,IAAJ,CAFsB;AAG1B,cAAE,eAAF,GAH0B;AAK1B,gBAAI,SAAS,EAAE,OAAF;gBAAW,MAAM,OAAO,MAAP,CALJ;AAM1B,mBAAO,QAAQ,CAAC,SAAD,+BAjEjB,oDAiEyC,UAAxB,CAAR,CANmB;;;;8BASrB,WAAuB;AAE5B,gBAAI,IAAI,IAAJ,CAFwB;AAG5B,cAAE,eAAF,GAH4B;AAK5B,gBAAI,SAAS,EAAE,OAAF;gBAAW,MAAM,OAAO,MAAP,CALF;AAM5B,mBAAO,QAAQ,uCA1EjB,sDA0EyC,UAAxB,GAAqC,GAArC,CAAR,CANqB;;;;2CASV,OAAmC;gBAArB,qEAAiB,oBAAI;;AAErD,gBAAI,IAAI,IAAJ,CAFiD;AAGrD,cAAE,eAAF,GAHqD;AAIrD,sBAAA,OAAA,CAAQ,mBAAR,CAA4B,KAA5B,EAAmC,OAAnC,EAJqD;AAMrD,gBAAI,SAAS,EAAE,OAAF,CANwC;AAOrD,mBAAO,QAAM,OAAO,MAAP,GACV,OAAO,KAAP,CADI,GAEJ,YAFI,CAP8C;;;;+BAYlD;AAEH,gBAAI,IAAI,IAAJ,CAFD;AAGH,cAAE,eAAF,GAHG;AAKH,gBAAI,SAAS,EAAE,OAAF;gBAAW,MAAM,OAAO,MAAP,CAL3B;AAMH,mBAAO,MACJ,OAAO,MAAM,CAAN,CADH,8BA/FT,oDA+FS,CANJ;;;;wCAW+B;gBAArB,qEAAiB,oBAAI;;AAElC,gBAAI,IAAI,IAAJ,CAF8B;AAGlC,cAAE,eAAF,GAHkC;AAKlC,gBAAI,SAAS,EAAE,OAAF;gBAAW,MAAM,OAAO,MAAP,CALI;AAMlC,mBAAO,MACJ,OAAO,MAAM,CAAN,CADH,GAEJ,YAFI,CAN2B;;;;6BAW9B,OAAY;AAGhB,gBAAI,IAAI,IAAJ,CAHY;AAKhB,gBAAG,EAAE,QAAM,CAAN,CAAF,EACF,OAAO,CAAP,CADD;AAGA,mBAAO,IAAI,UAAJ,CACN;uBAAM,IAAI,kBAAA,eAAA,CAAmB;2BAAM,EAAE,OAAF;iBAAN,EAAiB,KAAxC;aAAN,CADD,CARgB;;;;yCAac;gBAAhB,8DAAe,iBAAC;;AAE9B,gBAAI,IAAI,IAAJ,CAF0B;AAG9B,mBAAO,EAAE,IAAF,CAAO,EAAE,OAAF,CAAU,MAAV,GAAmB,KAAnB,CAAd,CAH8B;;;;mCAMpB,OAAY;AAEtB,gBAAG,EAAE,QAAM,CAAN,CAAF,EACF,OAAO,WAAW,KAAX,EAAP,CADD;AAGA,gBAAI,IAAI,IAAJ,CALkB;AAMtB,gBAAG,CAAC,SAAS,KAAT,CAAD,EACF,OAAO,CAAP,CADD;AAGA,gBAAI,MAAM,EAAE,OAAF,GACP,EAAE,OAAF,CAAU,MAAV,GACA,CAFO,CATY;AAatB,mBAAO,EAAE,IAAF,CAAO,MAAM,KAAN,CAAd,CAbsB;;;;kCAgBhB;AAEN,gBAAI,IAAI,IAAJ,CAFE;AAIN,mBAAO,IAAI,UAAJ,CACN;uBAAM,IAAI,kBAAA,eAAA,CACT;2BAAM,EAAE,OAAF;iBAAN,EAAiB,EAAE,OAAF,GACb,EAAE,OAAF,CAAU,MAAV,GAAmB,CAAnB,GACD,CAFc,EAEX,CAAC,CAAD;aAHP,CADD,CAJM;;;;kCAaA;AAEN,mBAAO,KAAK,YAAL,EAAP,CAFM;;;;sCAMN,QACwD;gBAAxD,yEAAyC,OAAO,QAAP,gBAAe;;AAExD,gBAAG,QAAA,IAAA,CAAK,WAAL,CAAiB,MAAjB,CAAH,EACC,OAAO,OAAO,QAAP,CAAgB,KAAK,MAAL,EAAa,MAA7B,EAAqC,IAArC,EAA2C,gBAA3C,CAAP,CADD;AAGA,gBAAG,kBAAkB,eAAlB,EACF,OAAO,OAAO,aAAP,CAAqB,KAAK,MAAL,EAAa,gBAAlC,CAAP,CADD;AAGA,8CA9KF,8DA8K6B,QAAQ,iBAAnC,CARwD;;;;yCAY8B;gBAAxE,kEAAmB,kBAAqD;gBAAjD,iEAA+B,UAAU,QAAV,gBAAkB;;AAEtF,gBAAI,IAAI,KAAK,OAAL,CAF8E;AAGtF,mBAAO,CAAC,QAAD,IAAa,MAAM,OAAN,CAAc,CAAd,CAAb,GACO,EAAG,IAAH,CAAQ,SAAR,CADP,8BArLT,+DAuL0B,WAAW,SAF5B,CAH+E;;;;4BApJ7E;AAET,mBAAO,KAAK,OAAL,CAFE;;;;WA9BX;EACQ;;IAkMR;;;AAIC,aAJD,QAIC,CAAoB,SAApB,EAAoC,QAApC,EAAuD;8BAJxD,UAIwD;;4EAJxD,qBAMQ,WAFgD;;AAAnC,eAAA,SAAA,GAAA,SAAA,CAAmC;;KAAvD;;iBAJD;;4BASQ;AAEN,mBAAO,KAAK,SAAL,CAFD;;;;WATR;EACQ;;IAuBR;AAIC,aAJD,MAIC,CAAoB,WAApB,EAA4D;8BAJ7D,QAI6D;;AAAxC,aAAA,WAAA,GAAA,WAAA,CAAwC;KAA5D;;iBAJD;;4BAaK,KAAQ;AAEX,mBAAO,KAAK,WAAL,CAAiB,QAAjB,CAA0B,GAA1B,CAAP,CAFW;;;;iCAKH,KAAQ;AAEhB,mBAAO,KAAK,WAAL,CAAiB,WAAjB,CAA6B,GAA7B,CAAP,CAFgB;;;;wCAKJ;AAGZ,gBAAI,IAAI,IAAJ,CAHQ;AAIZ,gBAAI,UAAJ,CAJY;AAMZ,mBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAEC,6BAAa,EAAE,WAAF,CAAc,aAAd,EAAb,CAFD;aAAA,EAIA,UAAC,OAAD,EAAQ;AAGP,oBAAG,CAAC,WAAW,QAAX,EAAD,EACF,OAAO,KAAP,CADD;AAGA,oBAAI,UAAU,WAAW,OAAX,CANP;AAQP,uBAAO,QAAQ,WAAR,CAAoB,IAAI,QAAJ,CAA6B,QAAQ,GAAR,EAAa,QAAQ,KAAR,CAA9D,CAAP,CARO;aAAR,EAUA,YAAA;AAEC,0BAAA,OAAA,CAAQ,UAAR,EAFD;aAAA,CAfD,CANY;;;;4BAfJ;AAER,mBAAO,KAAK,WAAL,CAAiB,KAAjB,CAFC;;;;WARV;;;IA+DA;;;AAIC,aAJD,iBAIC,CACS,MADT,EAEQ,WAFR,EAGQ,KAHR,EAIQ,MAJR,EAK+C;YAAvC,iEAAyB,OAAO,OAAP,gBAAc;;8BAThD,mBASgD;;4EAThD,8BAWQ,OAFwC;;AAJtC,eAAA,MAAA,GAAA,MAAA,CAIsC;AAHvC,eAAA,WAAA,GAAA,WAAA,CAGuC;AAFvC,eAAA,KAAA,GAAA,KAAA,CAEuC;AADvC,eAAA,MAAA,GAAA,MAAA,CACuC;AAAvC,eAAA,QAAA,GAAA,QAAA,CAAuC;AAG9C,qBAAA,cAAA,CAAe,UAAU,OAAO,SAAP,CAAzB,CAH8C;;KAL/C;;iBAJD;;gDAgBE,aACA,OAAW;AAEX,mBAAO,IAAI,iBAAJ,CAAkC,KAAK,MAAL,EAAa,WAA/C,EAA4D,KAA5D,EAAmE,IAAnE,CAAP,CAFW;;;;+BAKL,aAAiC;AAEvC,mBAAO,KAAK,uBAAL,CAA6B,WAA7B,EAA0C,CAA1C,CAAP,CAFuC;;;;kCAK9B,YAAwB;AAEjC,mBAAO,IAAI,iBAAJ,CAA6B,KAAK,MAAL,EAAa,IAA1C,EAAgD,CAAhD,EAAiE,IAAjE,EAAuE,UAAvE,CAAP,CAFiC;;;;yCAKjB,aAAiC;AAEjD,mBAAO,KAAK,uBAAL,CAA6B,WAA7B,EAA0C,CAAA,CAAA,CAAjD,CAFiD;;;;0CAKhC,YAAwB;AAEzC,mBAAO,IAAI,iBAAJ,CAA6B,KAAK,MAAL,EAAa,IAA1C,EAAgD,CAAA,CAAA,EAAkB,IAAlE,EAAwE,UAAxE,CAAP,CAFyC;;;;wCAK7B;AAEZ,gBAAI,IAAI,IAAJ,CAFQ;AAGZ,gBAAI,MAAJ,CAHY;AAIZ,gBAAI,OAAJ,CAJY;AAKZ,gBAAI,QAAe,CAAf,CALQ;AAOZ,mBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAEC,wBAAQ,CAAR,CAFD;AAGC,yBAAS,WAAW,OAAX,CAAmB,EAAE,MAAF,CAA5B,CAHD;AAIC,0BAAU,kBAAkB,CAAlB,EAAqB,qBAArB,CAA2C,MAA3C,CAAV,CAJD;aAAA,EAOA,UAAC,OAAD,EAAQ;AAEP,uBAAO,KAAC,GAAM,QAAQ,MAAR,GACX,QAAQ,WAAR,CAAoB,OAAO,QAAQ,OAAR,CAAP,CAApB,CADI,GAEJ,KAFI,CAFA;aAAR,EAOA,YAAA;AAEC,oBAAG,MAAH,EACC,OAAO,MAAP,GAAgB,CAAhB,CADD;AAEA,yBAAS,IAAT,CAJD;AAKC,oBAAG,OAAH,EACC,QAAQ,MAAR,GAAiB,CAAjB,CADD;AAEA,0BAAU,IAAV,CAPD;aAAA,EAUA,KAzBM,CAAP,CAPY;;;;qCAoCO;AAEnB,uCAhFF,4DAgFE,CAFmB;AAGnB,iBAAK,MAAL,GAAc,IAAd,CAHmB;AAInB,iBAAK,WAAL,GAAmB,IAAnB,CAJmB;AAKnB,iBAAK,KAAL,GAAa,IAAb,CALmB;AAMnB,iBAAK,MAAL,GAAc,IAAd,CANmB;;;;WA9ErB;EACQ;;AAyFR,SAAA,cAAA,CAA2B,KAA3B,EAAwD,CAAxD,EAAwE;AAEvE,QAAG,CAAH,EACA;AACC,YAAG,EAAE,QAAF,EAAH,EACA;AACC,kBAAM,OAAN,CAAc,CAAd,EADD;SADA,MAKA;AACC,sBAAA,OAAA,CAAQ,CAAR,EADD;AAEC,gBAAI,IAAJ,CAFD;SALA;KAFD;AAYA,WAAO,CAAP,CAduE;CAAxE;AAuBA,SAAA,iBAAA,CACC,iBADD,EAEmC;QAAlC,uEAA8B,oBAAI;;AAGlC,QAAI,UAAU,IAAI,mBAAA,gBAAA,CACjB,cADa,EAEb,kBAAkB,WAAlB,EACA,kBAAkB,KAAlB,EACA,kBAAkB,QAAlB,CAJG,CAH8B;AASlC,QAAG,kBAAkB,MAAlB,EACF,OAAO,kBAAkB,kBAAkB,MAAlB,EAA0B,OAA5C,CAAP,CADD;AAGA,WAAO,OAAP,CAZkC;CAFnC;AAoBA,SAAA,eAAA,CAAyB,QAAzB,EAAyC;AAExC,QAAG,QAAH,EAAa,MAAM,IAAI,0BAAA,uBAAA,CAAwB,YAA5B,CAAN,CAAb;CAFD;AAMA,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADr7DA,QAAQ,OAAR,GCq7De,UDr7Df","file":"System.Linq/Linq.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Original: http://linqjs.codeplex.com/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst Values = require(\"../System/Compare\");\nconst Arrays = require(\"../System/Collections/Array/Compare\");\nconst ArrayUtility = require(\"../System/Collections/Array/Utility\");\nconst Enumerator_1 = require(\"../System/Collections/Enumeration/Enumerator\");\nconst Types_1 = require(\"../System/Types\");\nconst Integer_1 = require(\"../System/Integer\");\nconst Functions_1 = require(\"../System/Functions\");\nconst ArrayEnumerator_1 = require(\"../System/Collections/Enumeration/ArrayEnumerator\");\nconst EnumeratorBase_1 = require(\"../System/Collections/Enumeration/EnumeratorBase\");\nconst Dictionary_1 = require(\"../System/Collections/Dictionaries/Dictionary\");\nconst Queue_1 = require(\"../System/Collections/Queue\");\nconst dispose_1 = require(\"../System/Disposable/dispose\");\nconst DisposableBase_1 = require(\"../System/Disposable/DisposableBase\");\nconst UnsupportedEnumerableException_1 = require(\"../System/Collections/Enumeration/UnsupportedEnumerableException\");\nconst ObjectDisposedException_1 = require(\"../System/Disposable/ObjectDisposedException\");\nconst KeySortedContext_1 = require(\"../System/Collections/Sorting/KeySortedContext\");\nconst ArgumentNullException_1 = require(\"../System/Exceptions/ArgumentNullException\");\nconst ArgumentOutOfRangeException_1 = require(\"../System/Exceptions/ArgumentOutOfRangeException\");\nconst INVALID_DEFAULT = {};\nconst VOID0 = void 0;\nconst BREAK = element => 0;\nclass LinqFunctions extends Functions_1.Functions {\n Greater(a, b) {\n return a > b ? a : b;\n }\n Lesser(a, b) {\n return a < b ? a : b;\n }\n}\nvar Functions = new LinqFunctions();\nObject.freeze(Functions);\nfunction getEmptyEnumerator() {\n return Enumerator_1.empty;\n}\nclass InfiniteEnumerable extends DisposableBase_1.DisposableBase {\n constructor(_enumeratorFactory, finalizer) {\n super(finalizer);\n this._enumeratorFactory = _enumeratorFactory;\n this._isEndless = true;\n }\n get isEndless() {\n return this._isEndless;\n }\n getEnumerator() {\n this.throwIfDisposed();\n return this._enumeratorFactory();\n }\n _onDispose() {\n super._onDispose();\n this._enumeratorFactory = null;\n }\n asEnumerable() {\n var _ = this;\n _.throwIfDisposed();\n return new InfiniteEnumerable(() => _.getEnumerator());\n }\n doAction(action, initializer, isEndless = this.isEndless) {\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(() => {\n var enumerator;\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n throwIfDisposed(disposed);\n if (initializer)\n initializer();\n index = 0;\n enumerator = _.getEnumerator();\n }, (yielder) => {\n throwIfDisposed(disposed);\n while (enumerator.moveNext()) {\n var actionResult = action(enumerator.current, index++);\n if (actionResult === false || actionResult === 0)\n return yielder.yieldBreak();\n if (actionResult !== 2)\n return yielder.yieldReturn(enumerator.current);\n }\n return false;\n }, () => {\n dispose_1.dispose(enumerator);\n }, isEndless);\n }, () => {\n disposed = true;\n }, isEndless);\n }\n force() {\n this.throwIfDisposed();\n this.doAction(BREAK)\n .getEnumerator()\n .moveNext();\n }\n skip(count) {\n var _ = this;\n _.throwIfDisposed();\n if (!isFinite(count))\n return Enumerable.empty();\n Integer_1.Integer.assert(count, \"count\");\n return this.doAction((element, index) => index < count\n ? 2\n : 1);\n }\n take(count) {\n if (!(count > 0))\n return Enumerable.empty();\n var _ = this;\n _.throwIfDisposed();\n if (!isFinite(count))\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('count', count, 'Must be finite.');\n Integer_1.Integer.assert(count, \"count\");\n return _.doAction((element, index) => index < count, null, false);\n }\n elementAt(index) {\n var v = this.elementAtOrDefault(index, INVALID_DEFAULT);\n if (v === INVALID_DEFAULT)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('index', index, \"is greater than or equal to the number of elements in source\");\n return v;\n }\n elementAtOrDefault(index, defaultValue = null) {\n var _ = this;\n _.throwIfDisposed();\n Integer_1.Integer.assertZeroOrGreater(index, 'index');\n var n = index;\n return dispose_1.using(this.getEnumerator(), e => {\n var i = 0;\n while (e.moveNext()) {\n if (i == n)\n return e.current;\n i++;\n }\n return defaultValue;\n });\n }\n first() {\n var v = this.firstOrDefault(INVALID_DEFAULT);\n if (v === INVALID_DEFAULT)\n throw new Error(\"first:The sequence is empty.\");\n return v;\n }\n firstOrDefault(defaultValue = null) {\n var _ = this;\n _.throwIfDisposed();\n return dispose_1.using(this.getEnumerator(), e => e.moveNext() ? e.current : defaultValue);\n }\n single() {\n var _ = this;\n _.throwIfDisposed();\n return dispose_1.using(this.getEnumerator(), e => {\n if (e.moveNext()) {\n var value = e.current;\n if (!e.moveNext())\n return value;\n throw new Error(\"single:sequence contains more than one element.\");\n }\n throw new Error(\"single:The sequence is empty.\");\n });\n }\n singleOrDefault(defaultValue = null) {\n var _ = this;\n _.throwIfDisposed();\n return dispose_1.using(this.getEnumerator(), e => {\n if (e.moveNext()) {\n var value = e.current;\n if (!e.moveNext())\n return value;\n }\n return defaultValue;\n });\n }\n any() {\n var _ = this;\n _.throwIfDisposed();\n return dispose_1.using(this.getEnumerator(), e => e.moveNext());\n }\n isEmpty() {\n return !this.any();\n }\n traverseBreadthFirst(childrenSelector, resultSelector = Functions.Identity) {\n var _ = this, isEndless = _._isEndless || null;\n return new Enumerable(() => {\n var enumerator;\n var nestLevel = 0;\n var buffer, len;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n nestLevel = 0;\n buffer = [];\n len = 0;\n enumerator = _.getEnumerator();\n }, (yielder) => {\n while (true) {\n if (enumerator.moveNext()) {\n buffer[len++] = enumerator.current;\n return yielder.yieldReturn(resultSelector(enumerator.current, nestLevel));\n }\n if (!len)\n return yielder.yieldBreak();\n var next = Enumerable\n .from(buffer)\n .selectMany(childrenSelector);\n if (!next.any()) {\n return yielder.yieldBreak();\n }\n else {\n nestLevel++;\n buffer = [];\n len = 0;\n enumerator.dispose();\n enumerator = next.getEnumerator();\n }\n }\n }, () => {\n dispose_1.dispose(enumerator);\n buffer.length = 0;\n }, isEndless);\n }, null, isEndless);\n }\n traverseDepthFirst(childrenSelector, resultSelector = Functions.Identity) {\n var _ = this, isEndless = _._isEndless || null;\n return new Enumerable(() => {\n var enumeratorStack = [];\n var enumerator;\n var len;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n enumerator = _.getEnumerator();\n len = 0;\n }, (yielder) => {\n while (true) {\n if (enumerator.moveNext()) {\n let value = resultSelector(enumerator.current, len);\n enumeratorStack[len++] = enumerator;\n let e = Enumerable.fromAny(childrenSelector(enumerator.current));\n enumerator = e ? e.getEnumerator() : Enumerator_1.empty;\n return yielder.yieldReturn(value);\n }\n if (len == 0)\n return false;\n enumerator.dispose();\n enumerator = enumeratorStack[--len];\n enumeratorStack.length = len;\n }\n }, () => {\n try {\n dispose_1.dispose(enumerator);\n }\n finally {\n dispose_1.dispose.these(enumeratorStack);\n }\n }, isEndless);\n }, null, isEndless);\n }\n flatten() {\n var _ = this, isEndless = _._isEndless || null;\n return new Enumerable(() => {\n var enumerator;\n var middleEnumerator = null;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n enumerator = _.getEnumerator();\n }, (yielder) => {\n while (true) {\n if (middleEnumerator) {\n if (middleEnumerator.moveNext()) {\n return yielder.yieldReturn(middleEnumerator.current);\n }\n else {\n middleEnumerator.dispose();\n middleEnumerator = null;\n }\n }\n if (enumerator.moveNext()) {\n var c = enumerator.current;\n var e = !Types_1.Type.isString(c) && Enumerable.fromAny(c);\n if (e) {\n middleEnumerator\n = e\n .selectMany(Functions.Identity)\n .flatten()\n .getEnumerator();\n continue;\n }\n else {\n return yielder.yieldReturn(c);\n }\n }\n return yielder.yieldBreak();\n }\n }, () => {\n dispose_1.dispose(enumerator, middleEnumerator);\n }, isEndless);\n }, null, isEndless);\n }\n pairwise(selector) {\n var _ = this;\n return new Enumerable(() => {\n var enumerator;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n enumerator = _.getEnumerator();\n enumerator.moveNext();\n }, (yielder) => {\n var prev = enumerator.current;\n return enumerator.moveNext()\n && yielder.yieldReturn(selector(prev, enumerator.current));\n }, () => {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, null, _._isEndless);\n }\n scan(func, seed) {\n var isUseSeed = seed !== VOID0;\n var _ = this;\n return new Enumerable(() => {\n var enumerator;\n var value;\n var isFirst;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n enumerator = _.getEnumerator();\n isFirst = true;\n }, (yielder) => {\n if (isFirst) {\n isFirst = false;\n return isUseSeed\n ? yielder.yieldReturn(value = seed)\n : enumerator.moveNext() && yielder.yieldReturn(value\n = enumerator.current);\n }\n return (enumerator.moveNext())\n ? yielder.yieldReturn(value = func(value, enumerator.current))\n : false;\n }, () => {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, null, _._isEndless);\n }\n select(selector) {\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(() => {\n var enumerator;\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n throwIfDisposed(disposed);\n index = 0;\n enumerator = _.getEnumerator();\n }, (yielder) => {\n throwIfDisposed(disposed);\n return enumerator.moveNext()\n ? yielder.yieldReturn(selector(enumerator.current, index++))\n : yielder.yieldBreak();\n }, () => {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, () => {\n disposed = true;\n }, _._isEndless);\n }\n _selectMany(collectionSelector, resultSelector) {\n var _ = this, isEndless = _._isEndless || null;\n if (!resultSelector)\n resultSelector = (a, b) => b;\n return new Enumerable(() => {\n var enumerator;\n var middleEnumerator;\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n enumerator = _.getEnumerator();\n middleEnumerator = undefined;\n index = 0;\n }, (yielder) => {\n if (middleEnumerator === VOID0 && !enumerator.moveNext())\n return false;\n do {\n if (!middleEnumerator) {\n var middleSeq = collectionSelector(enumerator.current, index++);\n if (!middleSeq)\n continue;\n middleEnumerator = Enumerator_1.from(middleSeq);\n }\n if (middleEnumerator.moveNext())\n return yielder.yieldReturn(resultSelector(enumerator.current, middleEnumerator.current));\n middleEnumerator.dispose();\n middleEnumerator = null;\n } while (enumerator.moveNext());\n return false;\n }, () => {\n dispose_1.dispose(enumerator, middleEnumerator);\n enumerator = null;\n middleEnumerator = null;\n }, isEndless);\n }, null, isEndless);\n }\n selectMany(collectionSelector, resultSelector) {\n return this._selectMany(collectionSelector, resultSelector);\n }\n _choose(selector) {\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(() => {\n var enumerator;\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n throwIfDisposed(disposed);\n index = 0;\n enumerator = _.getEnumerator();\n }, (yielder) => {\n throwIfDisposed(disposed);\n while (enumerator.moveNext()) {\n var result = selector(enumerator.current, index++);\n if (result !== null && result !== VOID0)\n return yielder.yieldReturn(result);\n }\n return false;\n }, () => {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, () => {\n disposed = true;\n }, _._isEndless);\n }\n choose(selector = Functions.Identity) {\n return this._choose(selector);\n }\n where(predicate) {\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(() => {\n var enumerator;\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n throwIfDisposed(disposed);\n index = 0;\n enumerator = _.getEnumerator();\n }, (yielder) => {\n throwIfDisposed(disposed);\n while (enumerator.moveNext()) {\n if (predicate(enumerator.current, index++))\n return yielder.yieldReturn(enumerator.current);\n }\n return false;\n }, () => {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, () => {\n disposed = true;\n }, _._isEndless);\n }\n ofType(type) {\n var typeName;\n switch (type) {\n case Number:\n typeName = Types_1.Type.NUMBER;\n break;\n case String:\n typeName = Types_1.Type.STRING;\n break;\n case Boolean:\n typeName = Types_1.Type.BOOLEAN;\n break;\n case Function:\n typeName = Types_1.Type.FUNCTION;\n break;\n default:\n return this\n .where(x => x instanceof type);\n }\n return this\n .choose()\n .where(x => (typeof x) === typeName);\n }\n except(second, compareSelector) {\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(() => {\n var enumerator;\n var keys;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n throwIfDisposed(disposed);\n enumerator = _.getEnumerator();\n keys = new Dictionary_1.Dictionary(compareSelector);\n if (second)\n Enumerator_1.forEach(second, key => keys.addByKeyValue(key, true));\n }, (yielder) => {\n throwIfDisposed(disposed);\n while (enumerator.moveNext()) {\n var current = enumerator.current;\n if (!keys.containsKey(current)) {\n keys.addByKeyValue(current, true);\n return yielder.yieldReturn(current);\n }\n }\n return false;\n }, () => {\n dispose_1.dispose(enumerator);\n keys.clear();\n }, _._isEndless);\n }, () => {\n disposed = true;\n }, _._isEndless);\n }\n distinct(compareSelector) {\n return this.except(null, compareSelector);\n }\n distinctUntilChanged(compareSelector = Functions.Identity) {\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(() => {\n var enumerator;\n var compareKey;\n var initial = true;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n throwIfDisposed(disposed);\n enumerator = _.getEnumerator();\n }, (yielder) => {\n throwIfDisposed(disposed);\n while (enumerator.moveNext()) {\n var key = compareSelector(enumerator.current);\n if (initial) {\n initial = false;\n }\n else if (Values.areEqual(compareKey, key)) {\n continue;\n }\n compareKey = key;\n return yielder.yieldReturn(enumerator.current);\n }\n return false;\n }, () => {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, () => {\n disposed = true;\n }, _._isEndless);\n }\n defaultIfEmpty(defaultValue = null) {\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(() => {\n var enumerator;\n var isFirst;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n isFirst = true;\n throwIfDisposed(disposed);\n enumerator = _.getEnumerator();\n }, (yielder) => {\n throwIfDisposed(disposed);\n if (enumerator.moveNext()) {\n isFirst = false;\n return yielder.yieldReturn(enumerator.current);\n }\n else if (isFirst) {\n isFirst = false;\n return yielder.yieldReturn(defaultValue);\n }\n return false;\n }, () => {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, null, _._isEndless);\n }\n zip(second, resultSelector) {\n var _ = this;\n _.throwIfDisposed();\n return new Enumerable(() => {\n var firstEnumerator;\n var secondEnumerator;\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n index = 0;\n firstEnumerator = _.getEnumerator();\n secondEnumerator = Enumerator_1.from(second);\n }, (yielder) => firstEnumerator.moveNext()\n && secondEnumerator.moveNext()\n && yielder.yieldReturn(resultSelector(firstEnumerator.current, secondEnumerator.current, index++)), () => {\n dispose_1.dispose(firstEnumerator, secondEnumerator);\n });\n });\n }\n zipMultiple(second, resultSelector) {\n var _ = this;\n _.throwIfDisposed();\n if (!second.length)\n return Enumerable.empty();\n return new Enumerable(() => {\n var secondTemp;\n var firstEnumerator;\n var secondEnumerator;\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n secondTemp = new Queue_1.Queue(second);\n index = 0;\n firstEnumerator = _.getEnumerator();\n secondEnumerator = null;\n }, (yielder) => {\n if (firstEnumerator.moveNext()) {\n while (true) {\n while (!secondEnumerator) {\n if (secondTemp.count) {\n var next = secondTemp.dequeue();\n if (next)\n secondEnumerator = Enumerator_1.from(next);\n }\n else\n return yielder.yieldBreak();\n }\n if (secondEnumerator.moveNext())\n return yielder.yieldReturn(resultSelector(firstEnumerator.current, secondEnumerator.current, index++));\n secondEnumerator.dispose();\n secondEnumerator = null;\n }\n }\n return yielder.yieldBreak();\n }, () => {\n dispose_1.dispose(firstEnumerator, secondTemp);\n });\n });\n }\n join(inner, outerKeySelector, innerKeySelector, resultSelector, compareSelector = Functions.Identity) {\n var _ = this;\n return new Enumerable(() => {\n var outerEnumerator;\n var lookup;\n var innerElements = null;\n var innerCount = 0;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n outerEnumerator = _.getEnumerator();\n lookup = Enumerable.from(inner)\n .toLookup(innerKeySelector, Functions.Identity, compareSelector);\n }, (yielder) => {\n while (true) {\n if (innerElements != null) {\n var innerElement = innerElements[innerCount++];\n if (innerElement !== VOID0)\n return yielder.yieldReturn(resultSelector(outerEnumerator.current, innerElement));\n innerElement = null;\n innerCount = 0;\n }\n if (outerEnumerator.moveNext()) {\n var key = outerKeySelector(outerEnumerator.current);\n innerElements = lookup.get(key);\n }\n else {\n return yielder.yieldBreak();\n }\n }\n }, () => {\n dispose_1.dispose(outerEnumerator);\n });\n });\n }\n groupJoin(inner, outerKeySelector, innerKeySelector, resultSelector, compareSelector = Functions.Identity) {\n var _ = this;\n return new Enumerable(() => {\n var enumerator;\n var lookup = null;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n enumerator = _.getEnumerator();\n lookup = Enumerable.from(inner)\n .toLookup(innerKeySelector, Functions.Identity, compareSelector);\n }, (yielder) => enumerator.moveNext()\n && yielder.yieldReturn(resultSelector(enumerator.current, lookup.get(outerKeySelector(enumerator.current)))), () => {\n dispose_1.dispose(enumerator);\n });\n });\n }\n merge(enumerables) {\n var _ = this, isEndless = _._isEndless || null;\n if (!enumerables || enumerables.length == 0)\n return _;\n return new Enumerable(() => {\n var enumerator;\n var queue;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n enumerator = _.getEnumerator();\n queue = new Queue_1.Queue(enumerables);\n }, (yielder) => {\n while (true) {\n while (!enumerator && queue.count) {\n enumerator = Enumerator_1.from(queue.dequeue());\n }\n if (enumerator && enumerator.moveNext())\n return yielder.yieldReturn(enumerator.current);\n if (enumerator) {\n enumerator.dispose();\n enumerator = null;\n continue;\n }\n return yielder.yieldBreak();\n }\n }, () => {\n dispose_1.dispose(enumerator, queue);\n }, isEndless);\n }, null, isEndless);\n }\n concat(...enumerables) {\n return this.merge(enumerables);\n }\n union(second, compareSelector = Functions.Identity) {\n var _ = this, isEndless = _._isEndless || null;\n return new Enumerable(() => {\n var firstEnumerator;\n var secondEnumerator;\n var keys;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n firstEnumerator = _.getEnumerator();\n keys = new Dictionary_1.Dictionary(compareSelector);\n }, (yielder) => {\n var current;\n if (secondEnumerator === VOID0) {\n while (firstEnumerator.moveNext()) {\n current = firstEnumerator.current;\n if (!keys.containsKey(current)) {\n keys.addByKeyValue(current, null);\n return yielder.yieldReturn(current);\n }\n }\n secondEnumerator = Enumerator_1.from(second);\n }\n while (secondEnumerator.moveNext()) {\n current = secondEnumerator.current;\n if (!keys.containsKey(current)) {\n keys.addByKeyValue(current, null);\n return yielder.yieldReturn(current);\n }\n }\n return false;\n }, () => {\n dispose_1.dispose(firstEnumerator, secondEnumerator);\n }, isEndless);\n }, null, isEndless);\n }\n insertAt(index, other) {\n Integer_1.Integer.assertZeroOrGreater(index, 'index');\n var n = index;\n var _ = this, isEndless = _._isEndless || null;\n _.throwIfDisposed();\n return new Enumerable(() => {\n var firstEnumerator;\n var secondEnumerator;\n var count = 0;\n var isEnumerated = false;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n count = 0;\n firstEnumerator = _.getEnumerator();\n secondEnumerator = Enumerator_1.from(other);\n isEnumerated = false;\n }, (yielder) => {\n if (count == n) {\n isEnumerated = true;\n if (secondEnumerator.moveNext())\n return yielder.yieldReturn(secondEnumerator.current);\n }\n if (firstEnumerator.moveNext()) {\n count++;\n return yielder.yieldReturn(firstEnumerator.current);\n }\n return !isEnumerated\n && secondEnumerator.moveNext()\n && yielder.yieldReturn(secondEnumerator.current);\n }, () => {\n dispose_1.dispose(firstEnumerator, secondEnumerator);\n }, isEndless);\n }, null, isEndless);\n }\n alternateMultiple(sequence) {\n var _ = this;\n return new Enumerable(() => {\n var buffer, mode, enumerator, alternateEnumerator;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n alternateEnumerator = new ArrayEnumerator_1.ArrayEnumerator(Enumerable.toArray(sequence));\n enumerator = _.getEnumerator();\n var hasAtLeastOne = enumerator.moveNext();\n mode = hasAtLeastOne\n ? 1\n : 0;\n if (hasAtLeastOne)\n buffer = enumerator.current;\n }, (yielder) => {\n switch (mode) {\n case 0:\n return yielder.yieldBreak();\n case 2:\n if (alternateEnumerator.moveNext())\n return yielder.yieldReturn(alternateEnumerator.current);\n alternateEnumerator.reset();\n mode = 1;\n break;\n }\n var latest = buffer;\n var another = enumerator.moveNext();\n mode = another\n ? 2\n : 0;\n if (another)\n buffer = enumerator.current;\n return yielder.yieldReturn(latest);\n }, () => {\n dispose_1.dispose(enumerator, alternateEnumerator);\n }, _._isEndless);\n }, null, _._isEndless);\n }\n alternateSingle(value) {\n return this.alternateMultiple(Enumerable.make(value));\n }\n alternate(...sequence) {\n return this.alternateMultiple(sequence);\n }\n catchError(handler) {\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(() => {\n var enumerator;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n try {\n throwIfDisposed(disposed);\n enumerator = _.getEnumerator();\n }\n catch (e) {\n }\n }, (yielder) => {\n try {\n throwIfDisposed(disposed);\n if (enumerator.moveNext())\n return yielder.yieldReturn(enumerator.current);\n }\n catch (e) {\n handler(e);\n }\n return false;\n }, () => {\n dispose_1.dispose(enumerator);\n });\n });\n }\n finallyAction(action) {\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(() => {\n var enumerator;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n throwIfDisposed(disposed);\n enumerator = _.getEnumerator();\n }, (yielder) => {\n throwIfDisposed(disposed);\n return (enumerator.moveNext())\n ? yielder.yieldReturn(enumerator.current)\n : false;\n }, () => {\n try {\n dispose_1.dispose(enumerator);\n }\n finally {\n action();\n }\n });\n });\n }\n buffer(size) {\n if (size < 1 || !isFinite(size))\n throw new Error(\"Invalid buffer size.\");\n Integer_1.Integer.assert(size, \"size\");\n var _ = this, len;\n return new Enumerable(() => {\n var enumerator;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n enumerator = _.getEnumerator();\n }, (yielder) => {\n var array = ArrayUtility.initialize(size);\n len = 0;\n while (len < size && enumerator.moveNext()) {\n array[len++] = enumerator.current;\n }\n array.length = len;\n return len && yielder.yieldReturn(array);\n }, () => {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, null, _._isEndless);\n }\n share() {\n var _ = this;\n _.throwIfDisposed();\n var sharedEnumerator;\n return new Enumerable(() => {\n return sharedEnumerator || (sharedEnumerator = _.getEnumerator());\n }, () => {\n dispose_1.dispose(sharedEnumerator);\n }, _._isEndless);\n }\n}\nexports.InfiniteEnumerable = InfiniteEnumerable;\nclass Enumerable extends InfiniteEnumerable {\n constructor(enumeratorFactory, finalizer, isEndless = null) {\n super(enumeratorFactory, finalizer);\n this._isEndless = isEndless;\n }\n static from(source) {\n var e = Enumerable.fromAny(source);\n if (!e)\n throw new UnsupportedEnumerableException_1.UnsupportedEnumerableException();\n return e;\n }\n static fromAny(source, defaultEnumerable = null) {\n if (Types_1.Type.isObject(source) || Types_1.Type.isString(source)) {\n if (source instanceof Enumerable)\n return source;\n if (Types_1.Type.isArrayLike(source))\n return new ArrayEnumerable(source);\n if (Enumerator_1.isEnumerable(source))\n return new Enumerable(() => source.getEnumerator(), null, source.isEndless);\n }\n return defaultEnumerable;\n }\n static fromOrEmpty(source) {\n return Enumerable.fromAny(source) || Enumerable.empty();\n }\n static toArray(source) {\n if (source instanceof Enumerable)\n return source.toArray();\n return Enumerator_1.toArray(source);\n }\n static choice(values) {\n var len = values && values.length;\n if (!len || !isFinite(len))\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('length', length);\n return new InfiniteEnumerable(() => new EnumeratorBase_1.EnumeratorBase(null, (yielder) => yielder.yieldReturn(Integer_1.Integer.random.select(values)), true));\n }\n static chooseFrom(...args) {\n return Enumerable.choice(args);\n }\n static cycle(values) {\n var len = values && values.length;\n if (!len || !isFinite(len))\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('length', length);\n return new InfiniteEnumerable(() => {\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n index = 0;\n }, (yielder) => {\n if (index >= values.length)\n index = 0;\n return yielder.yieldReturn(values[index++]);\n }, true);\n });\n }\n static cycleThrough(...args) {\n return Enumerable.cycle(args);\n }\n static empty() {\n return new FiniteEnumerable(getEmptyEnumerator);\n }\n static repeat(element, count = Infinity) {\n if (!(count > 0))\n return Enumerable.empty();\n return isFinite(count) && Integer_1.Integer.assert(count, \"count\")\n ? new FiniteEnumerable(() => {\n var c = count;\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(() => { index = 0; }, (yielder) => (index++ < c) && yielder.yieldReturn(element), null, false);\n })\n : new Enumerable(() => new EnumeratorBase_1.EnumeratorBase(null, (yielder) => yielder.yieldReturn(element), true));\n }\n static repeatWithFinalize(initializer, finalizer) {\n return new InfiniteEnumerable(() => {\n var element;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n element = initializer();\n }, (yielder) => yielder.yieldReturn(element), () => {\n finalizer(element);\n }, true);\n });\n }\n static make(element) {\n return Enumerable.repeat(element, 1);\n }\n static range(start, count, step = 1) {\n if (!isFinite(start))\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(\"start\", start, \"Must be a finite number.\");\n if (!(count > 0))\n return Enumerable.empty();\n if (!step)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(\"step\", step, \"Must be a valid value\");\n if (!isFinite(step))\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(\"step\", step, \"Must be a finite number.\");\n Integer_1.Integer.assert(count, \"count\");\n return new FiniteEnumerable(() => {\n var value;\n var c = count;\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n index = 0;\n value = start;\n }, (yielder) => {\n var result = index++ < c\n && yielder.yieldReturn(value);\n if (result && index < count)\n value += step;\n return result;\n }, false);\n });\n }\n static rangeDown(start, count, step = 1) {\n step = Math.abs(step) * -1;\n return Enumerable.range(start, count, step);\n }\n static toInfinity(start = 0, step = 1) {\n if (!isFinite(start))\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(\"start\", start, \"Must be a finite number.\");\n if (!step)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(\"step\", step, \"Must be a valid value\");\n if (!isFinite(step))\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(\"step\", step, \"Must be a finite number.\");\n return new InfiniteEnumerable(() => {\n var value;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n value = start;\n }, (yielder) => {\n var current = value;\n value += step;\n return yielder.yieldReturn(current);\n }, true);\n });\n }\n static toNegativeInfinity(start = 0, step = 1) {\n return Enumerable.toInfinity(start, -step);\n }\n static rangeTo(start, to, step = 1) {\n if (isNaN(to) || !isFinite(to))\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(\"to\", to, \"Must be a finite number.\");\n if (step && !isFinite(step))\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(\"step\", step, \"Must be a finite non-zero number.\");\n step = Math.abs(step);\n return new FiniteEnumerable(() => {\n var value;\n return new EnumeratorBase_1.EnumeratorBase(() => { value = start; }, start < to\n ?\n yielder => {\n var result = value <= to && yielder.yieldReturn(value);\n if (result)\n value += step;\n return result;\n }\n :\n yielder => {\n var result = value >= to && yielder.yieldReturn(value);\n if (result)\n value -= step;\n return result;\n }, false);\n });\n }\n static matches(input, pattern, flags = \"\") {\n if (input === null || input === VOID0)\n throw new ArgumentNullException_1.ArgumentNullException(\"input\");\n var type = typeof input;\n if (type != Types_1.Type.STRING)\n throw new Error(\"Cannot exec RegExp matches of type '\" + type + \"'.\");\n if (pattern instanceof RegExp) {\n flags += (pattern.ignoreCase) ? \"i\" : \"\";\n flags += (pattern.multiline) ? \"m\" : \"\";\n pattern = pattern.source;\n }\n if (flags.indexOf(\"g\") === -1)\n flags += \"g\";\n return new FiniteEnumerable(() => {\n var regex;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n regex = new RegExp(pattern, flags);\n }, (yielder) => {\n var match = regex.exec(input);\n return (match !== null) ? yielder.yieldReturn(match) : false;\n });\n });\n }\n static generate(factory, count = Infinity) {\n if (isNaN(count) || count <= 0)\n return Enumerable.empty();\n return isFinite(count) && Integer_1.Integer.assert(count, \"count\")\n ?\n new FiniteEnumerable(() => {\n var c = count;\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n index = 0;\n }, (yielder) => {\n var current = index++;\n return current < c && yielder.yieldReturn(factory(current));\n }, false);\n })\n :\n new InfiniteEnumerable(() => {\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n index = 0;\n }, (yielder) => yielder.yieldReturn(factory(index++)), true);\n });\n }\n static unfold(seed, valueFactory, skipSeed = false) {\n return new InfiniteEnumerable(() => {\n var index = 0;\n var value;\n var isFirst;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n index = 0;\n value = seed;\n isFirst = !skipSeed;\n }, (yielder) => {\n var i = index++;\n if (isFirst)\n isFirst = false;\n else\n value = valueFactory(value, i);\n return yielder.yieldReturn(value);\n }, true);\n });\n }\n static forEach(enumerable, action) {\n Enumerator_1.forEach(enumerable, action);\n }\n static map(enumerable, selector) {\n return Enumerator_1.map(enumerable, selector);\n }\n static max(values) {\n return values\n .takeUntil(v => v == +Infinity, true)\n .aggregate(Functions.Greater);\n }\n static min(values) {\n return values\n .takeUntil(v => v == -Infinity, true)\n .aggregate(Functions.Lesser);\n }\n static weave(enumerables) {\n if (!enumerables)\n throw new ArgumentNullException_1.ArgumentNullException('enumerables');\n return new Enumerable(() => {\n var queue;\n var mainEnumerator;\n var index;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n index = 0;\n queue = new Queue_1.Queue();\n mainEnumerator = Enumerator_1.from(enumerables);\n }, (yielder) => {\n let e;\n if (mainEnumerator) {\n while (!e && mainEnumerator.moveNext()) {\n let c = mainEnumerator.current;\n e = nextEnumerator(queue, c && Enumerator_1.from(c));\n }\n if (!e)\n mainEnumerator = null;\n }\n while (!e && queue.count) {\n e = nextEnumerator(queue, queue.dequeue());\n }\n return e\n ? yielder.yieldReturn(e.current)\n : yielder.yieldBreak();\n }, () => {\n dispose_1.dispose.these(queue.dump());\n dispose_1.dispose(mainEnumerator, queue);\n mainEnumerator = null;\n queue = null;\n });\n });\n }\n doAction(action, initializer, isEndless = this.isEndless) {\n return super.doAction(action, initializer, isEndless);\n }\n skip(count) {\n return super.skip(count);\n }\n skipWhile(predicate) {\n this.throwIfDisposed();\n return this.doAction((element, index) => predicate(element, index)\n ? 2\n : 1);\n }\n takeWhile(predicate) {\n this.throwIfDisposed();\n if (!predicate)\n throw new ArgumentNullException_1.ArgumentNullException('predicate');\n return this.doAction((element, index) => predicate(element, index)\n ? 1\n : 0, null, null);\n }\n takeUntil(predicate, includeUntilValue) {\n this.throwIfDisposed();\n if (!predicate)\n throw new ArgumentNullException_1.ArgumentNullException('predicate');\n if (!includeUntilValue)\n return this.doAction((element, index) => predicate(element, index)\n ? 0\n : 1, null, null);\n var found = false;\n return this.doAction((element, index) => {\n if (found)\n return 0;\n found = predicate(element, index);\n return 1;\n }, () => {\n found = false;\n }, null);\n }\n forEach(action) {\n var _ = this;\n _.throwIfDisposed();\n Enumerator_1.throwIfEndless(_.isEndless);\n var index = 0;\n dispose_1.using(_.getEnumerator(), e => {\n Enumerator_1.throwIfEndless(e.isEndless);\n while (_.throwIfDisposed() && e.moveNext()) {\n if (action(e.current, index++) === false)\n break;\n }\n });\n }\n toArray(predicate) {\n return predicate\n ? this.where(predicate).toArray()\n : this.copyTo([]);\n }\n copyTo(target, index = 0) {\n this.throwIfDisposed();\n if (!target)\n throw new ArgumentNullException_1.ArgumentNullException(\"target\");\n Integer_1.Integer.assertZeroOrGreater(index);\n Enumerator_1.forEach(this, (x, i) => {\n target[i + index] = x;\n });\n return target;\n }\n toLookup(keySelector, elementSelector = Functions.Identity, compareSelector = Functions.Identity) {\n var dict = new Dictionary_1.Dictionary(compareSelector);\n this.forEach(x => {\n var key = keySelector(x);\n var element = elementSelector(x);\n var array = dict.getValue(key);\n if (array !== VOID0)\n array.push(element);\n else\n dict.addByKeyValue(key, [element]);\n });\n return new Lookup(dict);\n }\n toMap(keySelector, elementSelector) {\n var obj = {};\n this.forEach((x, i) => {\n obj[keySelector(x, i)] = elementSelector(x, i);\n });\n return obj;\n }\n toDictionary(keySelector, elementSelector, compareSelector = Functions.Identity) {\n var dict = new Dictionary_1.Dictionary(compareSelector);\n this.forEach((x, i) => dict.addByKeyValue(keySelector(x, i), elementSelector(x, i)));\n return dict;\n }\n toJoinedString(separator = \"\", selector = Functions.Identity) {\n return this.select(selector).toArray().join(separator);\n }\n takeExceptLast(count = 1) {\n var _ = this;\n if (!(count > 0))\n return _;\n if (!isFinite(count))\n return Enumerable.empty();\n Integer_1.Integer.assert(count, \"count\");\n var c = count;\n return new Enumerable(() => {\n var enumerator;\n var q;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n enumerator = _.getEnumerator();\n q = new Queue_1.Queue();\n }, (yielder) => {\n while (enumerator.moveNext()) {\n q.enqueue(enumerator.current);\n if (q.count > c)\n return yielder.yieldReturn(q.dequeue());\n }\n return false;\n }, () => {\n dispose_1.dispose(enumerator, q);\n });\n });\n }\n skipToLast(count) {\n if (!(count > 0))\n return Enumerable.empty();\n var _ = this;\n if (!isFinite(count))\n return _;\n Integer_1.Integer.assert(count, \"count\");\n return _.reverse()\n .take(count)\n .reverse();\n }\n where(predicate) {\n return super.where(predicate);\n }\n select(selector) {\n return super.select(selector);\n }\n selectMany(collectionSelector, resultSelector) {\n return this._selectMany(collectionSelector, resultSelector);\n }\n choose(selector = Functions.Identity) {\n return this._choose(selector);\n }\n reverse() {\n var _ = this, disposed = !_.throwIfDisposed();\n Enumerator_1.throwIfEndless(_._isEndless);\n return new Enumerable(() => {\n var buffer;\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n throwIfDisposed(disposed);\n buffer = _.toArray();\n index = buffer.length;\n }, (yielder) => index && yielder.yieldReturn(buffer[--index]), () => {\n buffer.length = 0;\n });\n }, () => {\n disposed = true;\n });\n }\n shuffle() {\n var _ = this, disposed = !_.throwIfDisposed();\n Enumerator_1.throwIfEndless(_._isEndless);\n return new Enumerable(() => {\n var buffer;\n var capacity;\n var len;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n throwIfDisposed(disposed);\n buffer = _.toArray();\n capacity = len = buffer.length;\n }, (yielder) => {\n if (!len)\n return yielder.yieldBreak();\n var selectedIndex = Integer_1.Integer.random(len);\n var selectedValue = buffer[selectedIndex];\n buffer[selectedIndex] = buffer[--len];\n buffer[len] = null;\n if (len % 32 == 0)\n buffer.length = len;\n return yielder.yieldReturn(selectedValue);\n }, () => {\n buffer.length = 0;\n });\n }, () => {\n disposed = true;\n });\n }\n count(predicate) {\n var count = 0;\n this.forEach(predicate\n ?\n (x, i) => {\n if (predicate(x, i))\n ++count;\n }\n :\n () => {\n ++count;\n });\n return count;\n }\n all(predicate) {\n if (!predicate)\n throw new ArgumentNullException_1.ArgumentNullException(\"predicate\");\n var result = true;\n this.forEach((x, i) => {\n if (!predicate(x, i)) {\n result = false;\n return false;\n }\n });\n return result;\n }\n every(predicate) {\n return this.all(predicate);\n }\n any(predicate) {\n if (!predicate)\n return super.any();\n var result = false;\n this.forEach((x, i) => {\n result = predicate(x, i);\n return !result;\n });\n return result;\n }\n some(predicate) {\n return this.any(predicate);\n }\n contains(value, compareSelector) {\n return compareSelector\n ? this.any(v => compareSelector(v) === compareSelector(value))\n : this.any(v => v === value);\n }\n indexOf(value, compareSelector) {\n var found = -1;\n this.forEach(compareSelector\n ?\n (element, i) => {\n if (Values.areEqual(compareSelector(element, i), compareSelector(value, i), true)) {\n found = i;\n return false;\n }\n }\n :\n (element, i) => {\n if (Values.areEqual(element, value, true)) {\n found = i;\n return false;\n }\n });\n return found;\n }\n lastIndexOf(value, compareSelector) {\n var result = -1;\n this.forEach(compareSelector\n ?\n (element, i) => {\n if (Values.areEqual(compareSelector(element, i), compareSelector(value, i), true))\n result\n = i;\n }\n :\n (element, i) => {\n if (Values.areEqual(element, value, true))\n result = i;\n });\n return result;\n }\n merge(enumerables) {\n return super.merge(enumerables);\n }\n concat(...enumerables) {\n return this.merge(enumerables);\n }\n intersect(second, compareSelector) {\n var _ = this;\n return new Enumerable(() => {\n var enumerator;\n var keys;\n var outs;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n enumerator = _.getEnumerator();\n keys = new Dictionary_1.Dictionary(compareSelector);\n outs = new Dictionary_1.Dictionary(compareSelector);\n Enumerator_1.forEach(second, key => {\n keys.addByKeyValue(key, true);\n });\n }, (yielder) => {\n while (enumerator.moveNext()) {\n var current = enumerator.current;\n if (!outs.containsKey(current) && keys.containsKey(current)) {\n outs.addByKeyValue(current, true);\n return yielder.yieldReturn(current);\n }\n }\n return yielder.yieldBreak();\n }, () => {\n dispose_1.dispose(enumerator, keys, outs);\n }, _._isEndless);\n }, null, _._isEndless);\n }\n sequenceEqual(second, equalityComparer = Values.areEqual) {\n return dispose_1.using(this.getEnumerator(), e1 => dispose_1.using(Enumerator_1.from(second), e2 => {\n Enumerator_1.throwIfEndless(e1.isEndless && e2.isEndless);\n while (e1.moveNext()) {\n if (!e2.moveNext() || !equalityComparer(e1.current, e2.current))\n return false;\n }\n return !e2.moveNext();\n }));\n }\n ofType(type) {\n return super.ofType(type);\n }\n except(second, compareSelector) {\n return super.except(second, compareSelector);\n }\n distinct(compareSelector) {\n return super.distinct(compareSelector);\n }\n distinctUntilChanged(compareSelector = Functions.Identity) {\n return super.distinctUntilChanged(compareSelector);\n }\n orderBy(keySelector = Functions.Identity) {\n return new OrderedEnumerable(this, keySelector, 1);\n }\n orderUsing(comparison) {\n return new OrderedEnumerable(this, null, 1, null, comparison);\n }\n orderUsingReversed(comparison) {\n return new OrderedEnumerable(this, null, -1, null, comparison);\n }\n orderByDescending(keySelector = Functions.Identity) {\n return new OrderedEnumerable(this, keySelector, -1);\n }\n buffer(size) {\n return super.buffer(size);\n }\n groupBy(keySelector, elementSelector, compareSelector) {\n if (!elementSelector)\n elementSelector = Functions.Identity;\n return new Enumerable(() => this.toLookup(keySelector, elementSelector, compareSelector)\n .getEnumerator());\n }\n partitionBy(keySelector, elementSelector, resultSelector = (key, elements) => new Grouping(key, elements), compareSelector = Functions.Identity) {\n var _ = this;\n if (!elementSelector)\n elementSelector = Functions.Identity;\n return new Enumerable(() => {\n var enumerator;\n var key;\n var compareKey;\n var group;\n var len;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n enumerator = _.getEnumerator();\n if (enumerator.moveNext()) {\n key = keySelector(enumerator.current);\n compareKey = compareSelector(key);\n group = [elementSelector(enumerator.current)];\n len = 1;\n }\n else\n group = null;\n }, (yielder) => {\n if (!group)\n return yielder.yieldBreak();\n var hasNext, c;\n while ((hasNext = enumerator.moveNext())) {\n c = enumerator.current;\n if (compareKey === compareSelector(keySelector(c)))\n group[len++] = elementSelector(c);\n else\n break;\n }\n var result = resultSelector(key, group);\n if (hasNext) {\n c = enumerator.current;\n key = keySelector(c);\n compareKey = compareSelector(key);\n group = [elementSelector(c)];\n len = 1;\n }\n else {\n group = null;\n }\n return yielder.yieldReturn(result);\n }, () => {\n dispose_1.dispose(enumerator);\n group = null;\n });\n });\n }\n aggregate(func, seed) {\n return this.scan(func, seed).lastOrDefault();\n }\n average(selector = Types_1.Type.numberOrNaN) {\n var count = 0;\n var sum = this.sum((e, i) => {\n count++;\n return selector(e, i);\n });\n return (isNaN(sum) || !count)\n ? NaN\n : (sum / count);\n }\n max() {\n return this.aggregate(Functions.Greater);\n }\n min() {\n return this.aggregate(Functions.Lesser);\n }\n maxBy(keySelector = Functions.Identity) {\n return this.aggregate((a, b) => (keySelector(a) > keySelector(b)) ? a : b);\n }\n minBy(keySelector = Functions.Identity) {\n return this.aggregate((a, b) => (keySelector(a) < keySelector(b)) ? a : b);\n }\n sum(selector = Types_1.Type.numberOrNaN) {\n var sum = 0;\n var sumInfinite = 0;\n this.forEach(x => {\n var value = selector(x);\n if (isNaN(value)) {\n sum = NaN;\n return false;\n }\n if (isFinite(value))\n sum += value;\n else\n sumInfinite +=\n value > 0 ?\n (+1) :\n (-1);\n });\n return isNaN(sum) ? NaN : (sumInfinite ? (sumInfinite * Infinity) : sum);\n }\n product(selector = Types_1.Type.numberOrNaN) {\n var result = 1, exists = false;\n this.forEach((x, i) => {\n exists = true;\n var value = selector(x, i);\n if (isNaN(value)) {\n result = NaN;\n return false;\n }\n if (value == 0) {\n result = 0;\n return false;\n }\n result *= value;\n });\n return (exists && isNaN(result)) ? NaN : result;\n }\n quotient(selector = Types_1.Type.numberOrNaN) {\n var count = 0;\n var result = NaN;\n this.forEach((x, i) => {\n var value = selector(x, i);\n count++;\n if (count === 1) {\n result = value;\n }\n else {\n if (isNaN(value) || value === 0 || !isFinite(value)) {\n result = NaN;\n return false;\n }\n result /= value;\n }\n });\n if (count === 1)\n result = NaN;\n return result;\n }\n last() {\n var _ = this;\n _.throwIfDisposed();\n var value = undefined;\n var found = false;\n _.forEach(x => {\n found = true;\n value = x;\n });\n if (!found)\n throw new Error(\"last:No element satisfies the condition.\");\n return value;\n }\n lastOrDefault(defaultValue = null) {\n var _ = this;\n _.throwIfDisposed();\n var value = undefined;\n var found = false;\n _.forEach(x => {\n found = true;\n value = x;\n });\n return (!found) ? defaultValue : value;\n }\n share() {\n return super.share();\n }\n catchError(handler) {\n return super.catchError(handler);\n }\n finallyAction(action) {\n return super.finallyAction(action);\n }\n memoize() {\n var _ = this, disposed = !_.throwIfDisposed();\n var cache;\n var enumerator;\n return new Enumerable(() => {\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n throwIfDisposed(disposed);\n if (!enumerator)\n enumerator = _.getEnumerator();\n if (!cache)\n cache = [];\n index = 0;\n }, (yielder) => {\n throwIfDisposed(disposed);\n var i = index++;\n if (i >= cache.length) {\n return (enumerator.moveNext())\n ? yielder.yieldReturn(cache[i] = enumerator.current)\n : false;\n }\n return yielder.yieldReturn(cache[i]);\n });\n }, () => {\n disposed = true;\n if (cache)\n cache.length = 0;\n cache = null;\n dispose_1.dispose(enumerator);\n enumerator = null;\n });\n }\n}\nexports.Enumerable = Enumerable;\nclass FiniteEnumerable extends Enumerable {\n constructor(enumeratorFactory, finalizer) {\n super(enumeratorFactory, finalizer, false);\n }\n}\nexports.FiniteEnumerable = FiniteEnumerable;\nclass ArrayEnumerable extends FiniteEnumerable {\n constructor(source) {\n super(() => {\n _.throwIfDisposed();\n return new ArrayEnumerator_1.ArrayEnumerator(() => {\n _.throwIfDisposed(\"The underlying ArrayEnumerable was disposed.\", \"ArrayEnumerator\");\n return _._source;\n });\n });\n var _ = this;\n _._disposableObjectName = \"ArrayEnumerable\";\n _._source = source;\n }\n _onDispose() {\n super._onDispose();\n this._source = null;\n }\n get source() {\n return this._source;\n }\n toArray() {\n var _ = this;\n _.throwIfDisposed();\n return Enumerator_1.toArray(_._source);\n }\n asEnumerable() {\n return new ArrayEnumerable(this._source);\n }\n forEach(action) {\n var _ = this;\n _.throwIfDisposed();\n Enumerator_1.forEach(_._source, action);\n }\n any(predicate) {\n var _ = this;\n _.throwIfDisposed();\n var source = _._source, len = source.length;\n return len && (!predicate || super.any(predicate));\n }\n count(predicate) {\n var _ = this;\n _.throwIfDisposed();\n var source = _._source, len = source.length;\n return len && (predicate ? super.count(predicate) : len);\n }\n elementAtOrDefault(index, defaultValue = null) {\n var _ = this;\n _.throwIfDisposed();\n Integer_1.Integer.assertZeroOrGreater(index, 'index');\n var source = _._source;\n return index < source.length\n ? source[index]\n : defaultValue;\n }\n last() {\n var _ = this;\n _.throwIfDisposed();\n var source = _._source, len = source.length;\n return (len)\n ? source[len - 1]\n : super.last();\n }\n lastOrDefault(defaultValue = null) {\n var _ = this;\n _.throwIfDisposed();\n var source = _._source, len = source.length;\n return len\n ? source[len - 1]\n : defaultValue;\n }\n skip(count) {\n var _ = this;\n if (!(count > 0))\n return _;\n return new Enumerable(() => new ArrayEnumerator_1.ArrayEnumerator(() => _._source, count));\n }\n takeExceptLast(count = 1) {\n var _ = this;\n return _.take(_._source.length - count);\n }\n skipToLast(count) {\n if (!(count > 0))\n return Enumerable.empty();\n var _ = this;\n if (!isFinite(count))\n return _;\n var len = _._source\n ? _._source.length\n : 0;\n return _.skip(len - count);\n }\n reverse() {\n var _ = this;\n return new Enumerable(() => new ArrayEnumerator_1.ArrayEnumerator(() => _._source, _._source\n ? (_._source.length - 1)\n : 0, -1));\n }\n memoize() {\n return this.asEnumerable();\n }\n sequenceEqual(second, equalityComparer = Values.areEqual) {\n if (Types_1.Type.isArrayLike(second))\n return Arrays.areEqual(this.source, second, true, equalityComparer);\n if (second instanceof ArrayEnumerable)\n return second.sequenceEqual(this.source, equalityComparer);\n return super.sequenceEqual(second, equalityComparer);\n }\n toJoinedString(separator = \"\", selector = Functions.Identity) {\n var s = this._source;\n return !selector && Array.isArray(s)\n ? s.join(separator)\n : super.toJoinedString(separator, selector);\n }\n}\nclass Grouping extends ArrayEnumerable {\n constructor(_groupKey, elements) {\n super(elements);\n this._groupKey = _groupKey;\n }\n get key() {\n return this._groupKey;\n }\n}\nclass Lookup {\n constructor(_dictionary) {\n this._dictionary = _dictionary;\n }\n get count() {\n return this._dictionary.count;\n }\n get(key) {\n return this._dictionary.getValue(key);\n }\n contains(key) {\n return this._dictionary.containsKey(key);\n }\n getEnumerator() {\n var _ = this;\n var enumerator;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n enumerator = _._dictionary.getEnumerator();\n }, (yielder) => {\n if (!enumerator.moveNext())\n return false;\n var current = enumerator.current;\n return yielder.yieldReturn(new Grouping(current.key, current.value));\n }, () => {\n dispose_1.dispose(enumerator);\n });\n }\n}\nclass OrderedEnumerable extends FiniteEnumerable {\n constructor(source, keySelector, order, parent, comparer = Values.compare) {\n super(null);\n this.source = source;\n this.keySelector = keySelector;\n this.order = order;\n this.parent = parent;\n this.comparer = comparer;\n Enumerator_1.throwIfEndless(source && source.isEndless);\n }\n createOrderedEnumerable(keySelector, order) {\n return new OrderedEnumerable(this.source, keySelector, order, this);\n }\n thenBy(keySelector) {\n return this.createOrderedEnumerable(keySelector, 1);\n }\n thenUsing(comparison) {\n return new OrderedEnumerable(this.source, null, 1, this, comparison);\n }\n thenByDescending(keySelector) {\n return this.createOrderedEnumerable(keySelector, -1);\n }\n thenUsingReversed(comparison) {\n return new OrderedEnumerable(this.source, null, -1, this, comparison);\n }\n getEnumerator() {\n var _ = this;\n var buffer;\n var indexes;\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n index = 0;\n buffer = Enumerable.toArray(_.source);\n indexes = createSortContext(_).generateSortedIndexes(buffer);\n }, (yielder) => {\n return (index < indexes.length)\n ? yielder.yieldReturn(buffer[indexes[index++]])\n : false;\n }, () => {\n if (buffer)\n buffer.length = 0;\n buffer = null;\n if (indexes)\n indexes.length = 0;\n indexes = null;\n }, false);\n }\n _onDispose() {\n super._onDispose();\n this.source = null;\n this.keySelector = null;\n this.order = null;\n this.parent = null;\n }\n}\nfunction nextEnumerator(queue, e) {\n if (e) {\n if (e.moveNext()) {\n queue.enqueue(e);\n }\n else {\n dispose_1.dispose(e);\n e = null;\n }\n }\n return e;\n}\nfunction createSortContext(orderedEnumerable, currentContext = null) {\n var context = new KeySortedContext_1.KeySortedContext(currentContext, orderedEnumerable.keySelector, orderedEnumerable.order, orderedEnumerable.comparer);\n if (orderedEnumerable.parent)\n return createSortContext(orderedEnumerable.parent, context);\n return context;\n}\nfunction throwIfDisposed(disposed) {\n if (disposed)\n throw new ObjectDisposedException_1.ObjectDisposedException(\"Enumerable\");\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Enumerable;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Original: http://linqjs.codeplex.com/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport * as Values from \"../System/Compare\";\r\nimport * as Arrays from \"../System/Collections/Array/Compare\";\r\nimport * as ArrayUtility from \"../System/Collections/Array/Utility\";\r\nimport {\r\n\tempty as EmptyEnumerator,\r\n\tfrom as enumeratorFrom,\r\n\tforEach,\r\n\ttoArray,\r\n\tmap,\r\n\tisEnumerable,\r\n\tthrowIfEndless\r\n} from \"../System/Collections/Enumeration/Enumerator\";\r\nimport {Type} from \"../System/Types\";\r\nimport {Integer} from \"../System/Integer\";\r\nimport {Functions as BaseFunctions} from \"../System/Functions\";\r\nimport {ArrayEnumerator} from \"../System/Collections/Enumeration/ArrayEnumerator\";\r\nimport {EnumeratorBase} from \"../System/Collections/Enumeration/EnumeratorBase\";\r\nimport {Dictionary} from \"../System/Collections/Dictionaries/Dictionary\";\r\nimport {Queue} from \"../System/Collections/Queue\";\r\nimport {dispose, using} from \"../System/Disposable/dispose\";\r\nimport {DisposableBase} from \"../System/Disposable/DisposableBase\";\r\nimport {UnsupportedEnumerableException} from \"../System/Collections/Enumeration/UnsupportedEnumerableException\";\r\nimport {ObjectDisposedException} from \"../System/Disposable/ObjectDisposedException\";\r\nimport {KeySortedContext} from \"../System/Collections/Sorting/KeySortedContext\";\r\nimport {ArgumentNullException} from \"../System/Exceptions/ArgumentNullException\";\r\nimport {ArgumentOutOfRangeException} from \"../System/Exceptions/ArgumentOutOfRangeException\";\r\nimport {IEnumerator} from \"../System/Collections/Enumeration/IEnumerator\";\r\nimport {IEnumerable} from \"../System/Collections/Enumeration/IEnumerable\";\r\nimport {Action, Predicate, Selector, EqualityComparison, Comparison} from \"../System/FunctionTypes\";\r\nimport {IEnumerableOrArray} from \"../System/Collections/IEnumerableOrArray\";\r\nimport {IArray} from \"../System/Collections/Array/IArray\";\r\nimport {IMap} from \"../System/Collections/Dictionaries/IDictionary\";\r\nimport {Comparable} from \"../System/IComparable\";\r\nimport {IComparer} from \"../System/IComparer\";\r\nimport {IKeyValuePair} from \"../System/KeyValuePair\";\r\nimport {Order} from \"../System/Collections/Sorting/Order\";\r\n\r\n// #region Local Constants.\r\n\r\nconst INVALID_DEFAULT:any = {}; // create a private unique instance for referencing.\r\nconst VOID0:any = void 0;\r\nconst BREAK:(e:any)=>EnumerableAction = element => EnumerableAction.Break;\r\n\r\n// Leave internal to avoid accidental overwriting.\r\nclass LinqFunctions extends BaseFunctions\r\n{\r\n\tGreater(a:T, b:T)\r\n\t{\r\n\t\treturn a>b ? a : b;\r\n\t}\r\n\r\n\tLesser(a:T, b:T)\r\n\t{\r\n\t\treturn a\r\n{\r\n\treturn EmptyEnumerator;\r\n}\r\n\r\n// #endregion\r\n\r\n/**\r\n * Defined values for doAction.\r\n */\r\nexport const enum EnumerableAction\r\n{\r\n\tBreak = 0,\r\n\tReturn = 1,\r\n\tSkip = 2\r\n}\r\n\r\n/*\r\n * NOTE: About InfiniteEnumerable and Enumerable.\r\n * There may seem like there's extra overrides here and they may seem unnecessary.\r\n * But after closer inspection you'll see the type chain is retained and\r\n * infinite enumerables are prevented from having features that finite ones have.\r\n *\r\n * I'm not sure if it's the best option to just use overrides, but it honors the typing properly.\r\n */\r\n\r\nexport class InfiniteEnumerable\r\nextends DisposableBase implements IEnumerable\r\n{\r\n\tconstructor(\r\n\t\tprotected _enumeratorFactory:() => IEnumerator,\r\n\t\tfinalizer?:() => void)\r\n\t{\r\n\t\tsuper(finalizer);\r\n\t\tthis._isEndless = true;\r\n\t}\r\n\r\n\tprotected _isEndless:boolean;\r\n\tget isEndless():boolean\r\n\t{\r\n\t\treturn this._isEndless;\r\n\t}\r\n\r\n\t// #region IEnumerable Implementation...\r\n\tgetEnumerator():IEnumerator\r\n\t{\r\n\r\n\t\tthis.throwIfDisposed();\r\n\r\n\t\treturn this._enumeratorFactory();\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\t// #region IDisposable override...\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose(); // Just in case.\r\n\t\tthis._enumeratorFactory = null;\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\t// Return a default (unfiltered) enumerable.\r\n\tasEnumerable():InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\treturn new InfiniteEnumerable(() => _.getEnumerator());\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Similar to forEach, but executes an action for each time a value is enumerated.\r\n\t * If the action explicitly returns false or 0 (EnumerationAction.Break), the enumeration will complete.\r\n\t * If it returns a 2 (EnumerationAction.Skip) it will move on to the next item.\r\n\t * This also automatically handles disposing the enumerator.\r\n\t */\r\n\tdoAction(\r\n\t\taction:Action | Predicate | Selector | Selector,\r\n\t\tinitializer?:()=>void,\r\n\t\tisEndless:boolean = this.isEndless):InfiniteEnumerable\r\n\t{\r\n\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\tif(initializer) initializer();\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\t// May need a way to propagate isEndless\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar actionResult = action(enumerator.current, index++);\r\n\r\n\t\t\t\t\t\t\tif(actionResult===false || actionResult===EnumerableAction.Break)\r\n\t\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\r\n\t\t\t\t\t\t\tif(actionResult!==EnumerableAction.Skip) // || !== 2\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(enumerator.current);\r\n\r\n\t\t\t\t\t\t\t// If actionResult===2, then a signal for skip is received.\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\r\n\t\t\t},\r\n\t\t\t// Using a finalizer value reduces the chance of a circular reference\r\n\t\t\t// since we could simply reference the enumeration and check e.wasDisposed.\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t},\r\n\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tforce():void\r\n\t{\r\n\t\tthis.throwIfDisposed();\r\n\t\tthis.doAction(BREAK)\r\n\t\t\t.getEnumerator()\r\n\t\t\t.moveNext();\r\n\r\n\t}\r\n\r\n\t// #region Indexing/Paging methods.\r\n\tskip(count:number):InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tif(!isFinite(count)) // +Infinity equals skip all so return empty.\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\tInteger.assert(count, \"count\");\r\n\r\n\t\treturn this.doAction(\r\n\t\t\t(element:T, index?:number) =>\r\n\t\t\t\tindex\r\n\t{\r\n\t\tif(!(count>0)) // Out of bounds? Empty.\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tif(!isFinite(count))\r\n\t\t\tthrow new ArgumentOutOfRangeException('count', count, 'Must be finite.');\r\n\r\n\t\tInteger.assert(count, \"count\");\r\n\r\n\t\t// Once action returns false, the enumeration will stop.\r\n\t\treturn >_.doAction((element:T, index?:number) => index\r\n\t\t\t{\r\n\t\t\t\tvar i = 0;\r\n\t\t\t\twhile(e.moveNext())\r\n\t\t\t\t{\r\n\t\t\t\t\tif(i==n) return e.current;\r\n\t\t\t\t\ti++;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn defaultValue;\r\n\t\t\t});\r\n\t}\r\n\r\n\t/* Note: Unlike previous implementations, you could pass a predicate into these methods.\r\n\t * But since under the hood it ends up calling .where(predicate) anyway,\r\n\t * it may be better to remove this to allow for a cleaner signature/override.\r\n\t * JavaScript/TypeScript does not easily allow for a strict method interface like C#.\r\n\t * Having to write extra override logic is error prone and confusing to the consumer.\r\n\t * Removing the predicate here may also cause the consumer of this method to think more about how they structure their query.\r\n\t * The end all difference is that the user must declare .where(predicate) before .first(), .single(), or .last().\r\n\t * */\r\n\r\n\tfirst():T\r\n\t{\r\n\t\tvar v = this.firstOrDefault(INVALID_DEFAULT);\r\n\t\tif(v===INVALID_DEFAULT) throw new Error(\"first:The sequence is empty.\");\r\n\t\treturn v;\r\n\t}\r\n\r\n\tfirstOrDefault(defaultValue:T = null):T\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\treturn using(\r\n\t\t\tthis.getEnumerator(),\r\n\t\t\te=> e.moveNext() ? e.current : defaultValue\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tsingle():T\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\treturn using(\r\n\t\t\tthis.getEnumerator(),\r\n\t\t\te=>\r\n\t\t\t{\r\n\t\t\t\tif(e.moveNext())\r\n\t\t\t\t{\r\n\t\t\t\t\tvar value = e.current;\r\n\t\t\t\t\tif(!e.moveNext()) return value;\r\n\t\t\t\t\tthrow new Error(\"single:sequence contains more than one element.\");\r\n\t\t\t\t}\r\n\t\t\t\tthrow new Error(\"single:The sequence is empty.\");\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tsingleOrDefault(defaultValue:T = null):T\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\treturn using(\r\n\t\t\tthis.getEnumerator(),\r\n\t\t\te=>\r\n\t\t\t{\r\n\t\t\t\tif(e.moveNext())\r\n\t\t\t\t{\r\n\t\t\t\t\tvar value = e.current;\r\n\t\t\t\t\tif(!e.moveNext()) return value;\r\n\t\t\t\t}\r\n\t\t\t\treturn defaultValue;\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tany():boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\treturn using(\r\n\t\t\tthis.getEnumerator(),\r\n\t\t\te=> e.moveNext()\r\n\t\t);\r\n\t}\r\n\r\n\tisEmpty():boolean\r\n\t{\r\n\t\treturn !this.any();\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\r\n\t// #region Projection and Filtering Methods\r\n\r\n\ttraverseBreadthFirst(\r\n\t\tchildrenSelector:(element:T) => IEnumerableOrArray):Enumerable;\r\n\r\n\ttraverseBreadthFirst(\r\n\t\tchildrenSelector:(element:T|TNode) => IEnumerableOrArray):Enumerable;\r\n\r\n\ttraverseBreadthFirst(\r\n\t\tchildrenSelector:(element:T) => IEnumerableOrArray,\r\n\t\tresultSelector?:(element:T, nestLevel?:number) => TResult):Enumerable;\r\n\r\n\ttraverseBreadthFirst(\r\n\t\tchildrenSelector:(element:T|TNode) => IEnumerableOrArray,\r\n\t\tresultSelector?:(element:TNode, nestLevel?:number) => TResult):Enumerable;\r\n\r\n\ttraverseBreadthFirst(\r\n\t\tchildrenSelector:(element:T|TNode) => IEnumerableOrArray,\r\n\t\tresultSelector:(\r\n\t\t\telement:TNode,\r\n\t\t\tnestLevel?:number) => any = Functions.Identity):Enumerable\r\n\t{\r\n\t\tvar _ = this, isEndless = _._isEndless || null; // Is endless is not affirmative if false.\r\n\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar nestLevel:number = 0;\r\n\t\t\t\tvar buffer:any[], len:number;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tnestLevel = 0;\r\n\t\t\t\t\t\tbuffer = [];\r\n\t\t\t\t\t\tlen = 0;\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\twhile(true)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tif(enumerator.moveNext())\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tbuffer[len++] = enumerator.current;\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(resultSelector(enumerator.current, nestLevel));\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(!len)\r\n\t\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\r\n\t\t\t\t\t\t\tvar next = Enumerable\r\n\t\t\t\t\t\t\t\t.from(buffer)\r\n\t\t\t\t\t\t\t\t.selectMany(childrenSelector);\r\n\r\n\t\t\t\t\t\t\tif(!next.any())\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tnestLevel++;\r\n\t\t\t\t\t\t\t\tbuffer = [];\r\n\t\t\t\t\t\t\t\tlen = 0;\r\n\t\t\t\t\t\t\t\tenumerator.dispose();\r\n\t\t\t\t\t\t\t\tenumerator = next.getEnumerator();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t\tbuffer.length = 0;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n\ttraverseDepthFirst(\r\n\t\tchildrenSelector:(element:T) => IEnumerableOrArray):Enumerable;\r\n\r\n\ttraverseDepthFirst(\r\n\t\tchildrenSelector:(element:T|TNode) => IEnumerableOrArray):Enumerable;\r\n\r\n\ttraverseDepthFirst(\r\n\t\tchildrenSelector:(element:T) => IEnumerableOrArray,\r\n\t\tresultSelector?:(element:T, nestLevel?:number) => TResult):Enumerable;\r\n\r\n\ttraverseDepthFirst(\r\n\t\tchildrenSelector:(element:T|TNode) => IEnumerableOrArray,\r\n\t\tresultSelector?:(element:TNode, nestLevel?:number) => TResult):Enumerable;\r\n\r\n\ttraverseDepthFirst(\r\n\t\tchildrenSelector:(element:T|TNode) => IEnumerableOrArray,\r\n\t\tresultSelector:(\r\n\t\t\telement:TNode,\r\n\t\t\tnestLevel?:number) => any = Functions.Identity):Enumerable\r\n\t{\r\n\t\tvar _ = this, isEndless = _._isEndless || null; // Is endless is not affirmative if false.\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\t// Dev Note: May want to consider using an actual stack and not an array.\r\n\t\t\t\tvar enumeratorStack:IEnumerator[] = [];\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar len:number; // Avoid using push/pop since they query .length every time and can be slower.\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tlen = 0;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\twhile(true)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tif(enumerator.moveNext())\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tlet value = resultSelector(enumerator.current, len);\r\n\t\t\t\t\t\t\t\tenumeratorStack[len++] = enumerator;\r\n\t\t\t\t\t\t\t\tlet e = Enumerable.fromAny(childrenSelector(enumerator.current));\r\n\t\t\t\t\t\t\t\tenumerator = e ? e.getEnumerator() : EmptyEnumerator;\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(value);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(len==0) return false;\r\n\r\n\t\t\t\t\t\t\tenumerator.dispose();\r\n\t\t\t\t\t\t\tenumerator = enumeratorStack[--len];\r\n\t\t\t\t\t\t\tenumeratorStack.length = len;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttry\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tfinally\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tdispose.these(enumeratorStack);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tflatten():Enumerable\r\n\t{\r\n\t\tvar _ = this, isEndless = _._isEndless || null; // Is endless is not affirmative if false.;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar middleEnumerator:IEnumerator = null;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\twhile(true)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tif(middleEnumerator)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tif(middleEnumerator.moveNext())\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\treturn yielder.yieldReturn(middleEnumerator.current);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tmiddleEnumerator.dispose();\r\n\t\t\t\t\t\t\t\t\tmiddleEnumerator = null;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(enumerator.moveNext())\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tvar c = enumerator.current;\r\n\t\t\t\t\t\t\t\t// Because strings are enumerable, we can get stuck in an infinite loop.\r\n\t\t\t\t\t\t\t\t// Treat strings as primitives here.\r\n\t\t\t\t\t\t\t\tvar e = !Type.isString(c) && Enumerable.fromAny(c);\r\n\t\t\t\t\t\t\t\tif(e)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tmiddleEnumerator\r\n\t\t\t\t\t\t\t\t\t\t= e\r\n\t\t\t\t\t\t\t\t\t\t.selectMany(Functions.Identity)\r\n\t\t\t\t\t\t\t\t\t\t.flatten()\r\n\t\t\t\t\t\t\t\t\t\t.getEnumerator();\r\n\t\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\treturn yielder.yieldReturn(c);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator, middleEnumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tpairwise(selector:(prev:T, current:T) => TSelect):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tenumerator.moveNext();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar prev = enumerator.current;\r\n\t\t\t\t\t\treturn enumerator.moveNext()\r\n\t\t\t\t\t\t\t&& yielder.yieldReturn(selector(prev, enumerator.current));\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\tscan(func:(a:T, b:T) => T, seed?:T):Enumerable\r\n\t{\r\n\r\n\t\tvar isUseSeed = seed!==VOID0; // For now...\r\n\t\tvar _ = this;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar value:T;\r\n\t\t\t\tvar isFirst:boolean;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tisFirst = true;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(isFirst)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tisFirst = false;\r\n\t\t\t\t\t\t\t//noinspection JSUnusedAssignment\r\n\t\t\t\t\t\t\treturn isUseSeed\r\n\t\t\t\t\t\t\t\t? yielder.yieldReturn(value = seed)\r\n\t\t\t\t\t\t\t\t: enumerator.moveNext() && yielder.yieldReturn(value\r\n\t\t\t\t\t\t\t\t= enumerator.current);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn (enumerator.moveNext())\r\n\t\t\t\t\t\t\t? yielder.yieldReturn(value = func(value, enumerator.current))\r\n\t\t\t\t\t\t\t: false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\tselect(selector:Selector):InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\treturn enumerator.moveNext()\r\n\t\t\t\t\t\t\t? yielder.yieldReturn(selector(enumerator.current, index++))\r\n\t\t\t\t\t\t\t: yielder.yieldBreak();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t},\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\t/*\r\n\tpublic static IEnumerable SelectMany(\r\n\t\tthis IEnumerable source,\r\n\t\tFunc> collectionSelector,\r\n\t\tFunc resultSelector)\r\n\t */\r\n\r\n\tprotected _selectMany(\r\n\t\tcollectionSelector:Selector>,\r\n\t\tresultSelector?:(collection:T, element:TElement) => TResult):Enumerable\r\n\t{\r\n\t\tvar _ = this, isEndless = _._isEndless || null; // Do second enumeration, it will be indeterminate if false.\r\n\t\tif(!resultSelector)\r\n\t\t\tresultSelector = (a:T, b:any) => b;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar middleEnumerator:IEnumerator;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tmiddleEnumerator = undefined;\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\r\n\t\t\t\t\t\t// Just started, and nothing to enumerate? End.\r\n\t\t\t\t\t\tif(middleEnumerator===VOID0 && !enumerator.moveNext())\r\n\t\t\t\t\t\t\treturn false;\r\n\r\n\t\t\t\t\t\t// moveNext has been called at least once...\r\n\t\t\t\t\t\tdo\r\n\t\t\t\t\t\t{\r\n\r\n\t\t\t\t\t\t\t// Initialize middle if there isn't one.\r\n\t\t\t\t\t\t\tif(!middleEnumerator)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tvar middleSeq = collectionSelector(enumerator.current, index++);\r\n\r\n\t\t\t\t\t\t\t\t// Collection is null? Skip it...\r\n\t\t\t\t\t\t\t\tif(!middleSeq)\r\n\t\t\t\t\t\t\t\t\tcontinue;\r\n\r\n\t\t\t\t\t\t\t\tmiddleEnumerator = enumeratorFrom(middleSeq);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(middleEnumerator.moveNext())\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(\r\n\t\t\t\t\t\t\t\t\tresultSelector(\r\n\t\t\t\t\t\t\t\t\t\tenumerator.current, middleEnumerator.current\r\n\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t\t// else no more in this middle? Then clear and reset for next...\r\n\r\n\t\t\t\t\t\t\tmiddleEnumerator.dispose();\r\n\t\t\t\t\t\t\tmiddleEnumerator = null;\r\n\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\twhile(enumerator.moveNext());\r\n\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator, middleEnumerator);\r\n\t\t\t\t\t\tenumerator = null;\r\n\t\t\t\t\t\tmiddleEnumerator = null;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\tselectMany(\r\n\t\tcollectionSelector:Selector>):InfiniteEnumerable;\r\n\r\n\tselectMany(\r\n\t\tcollectionSelector:Selector>,\r\n\t\tresultSelector:(collection:T, element:TElement) => TResult):InfiniteEnumerable;\r\n\r\n\tselectMany(\r\n\t\tcollectionSelector:Selector>,\r\n\t\tresultSelector?:(collection:T, element:any) => TResult):InfiniteEnumerable\r\n\t{\r\n\t\treturn this._selectMany(collectionSelector, resultSelector);\r\n\t}\r\n\r\n\tprotected _choose(selector:Selector):Enumerable\r\n\t{\r\n\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar result = selector(enumerator.current, index++);\r\n\t\t\t\t\t\t\tif(result!==null && result!==VOID0)\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(result);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t},\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns selected values that are not null or undefined.\r\n\t */\r\n\tchoose():InfiniteEnumerable;\r\n\tchoose(selector?:Selector):InfiniteEnumerable\r\n\tchoose(selector:Selector = Functions.Identity):InfiniteEnumerable\r\n\t{\r\n\t\treturn this._choose(selector)\r\n\t}\r\n\r\n\twhere(predicate:Predicate):InfiniteEnumerable\r\n\t{\r\n\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tif(predicate(enumerator.current, index++))\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(enumerator.current);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t},\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\r\n\t}\r\n\r\n\tofType(type:{ new (...params:any[]):TType }):InfiniteEnumerable;\r\n\tofType(type:any):InfiniteEnumerable\r\n\t{\r\n\t\tvar typeName:string;\r\n\t\tswitch(type)\r\n\t\t{\r\n\t\t\tcase Number:\r\n\t\t\t\ttypeName = Type.NUMBER;\r\n\t\t\t\tbreak;\r\n\t\t\tcase String:\r\n\t\t\t\ttypeName = Type.STRING;\r\n\t\t\t\tbreak;\r\n\t\t\tcase Boolean:\r\n\t\t\t\ttypeName = Type.BOOLEAN;\r\n\t\t\t\tbreak;\r\n\t\t\tcase Function:\r\n\t\t\t\ttypeName = Type.FUNCTION;\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\treturn >this\r\n\t\t\t\t\t.where(x=>x instanceof type);\r\n\t\t}\r\n\t\treturn >this\r\n\t\t\t.choose()\r\n\t\t\t.where(x=>(typeof x)===typeName);\r\n\t}\r\n\r\n\texcept(\r\n\t\tsecond:IEnumerableOrArray,\r\n\t\tcompareSelector?:Selector):InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar keys:Dictionary;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tkeys = new Dictionary(compareSelector);\r\n\t\t\t\t\t\tif(second)\r\n\t\t\t\t\t\t\tforEach(second, key => keys.addByKeyValue(key, true));\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar current = enumerator.current;\r\n\t\t\t\t\t\t\tif(!keys.containsKey(current))\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tkeys.addByKeyValue(current, true);\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(current);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t\tkeys.clear();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t},\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\tdistinct(compareSelector?:(value:T) => T):InfiniteEnumerable\r\n\t{\r\n\t\treturn this.except(null, compareSelector);\r\n\t}\r\n\r\n\t// [0,0,0,1,1,1,2,2,2,0,0,0,1,1] results in [0,1,2,0,1];\r\n\tdistinctUntilChanged(compareSelector:Selector = Functions.Identity):InfiniteEnumerable\r\n\t{\r\n\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar compareKey:TCompare;\r\n\t\t\t\tvar initial:boolean = true;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar key = compareSelector(enumerator.current);\r\n\r\n\t\t\t\t\t\t\tif(initial)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tinitial = false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse if(Values.areEqual(compareKey, key))\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tcompareKey = key;\r\n\t\t\t\t\t\t\treturn yielder.yieldReturn(enumerator.current);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t},\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Returns a single default value if empty.\r\n\t * @param defaultValue\r\n\t * @returns {Enumerable}\r\n\t */\r\n\tdefaultIfEmpty(defaultValue:T = null):Enumerable\r\n\t{\r\n\t\tvar _ = this, disposed:boolean = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar isFirst:boolean;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tisFirst = true;\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\tif(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tisFirst = false;\r\n\t\t\t\t\t\t\treturn yielder.yieldReturn(enumerator.current);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if(isFirst)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tisFirst = false;\r\n\t\t\t\t\t\t\treturn yielder.yieldReturn(defaultValue);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\tzip(\r\n\t\tsecond:IEnumerableOrArray,\r\n\t\tresultSelector:(first:T, second:TSecond, index?:number) => TResult):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar firstEnumerator:IEnumerator;\r\n\t\t\t\tvar secondEnumerator:IEnumerator;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tfirstEnumerator = _.getEnumerator();\r\n\t\t\t\t\t\tsecondEnumerator = enumeratorFrom(second);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=> firstEnumerator.moveNext()\r\n\t\t\t\t\t&& secondEnumerator.moveNext()\r\n\t\t\t\t\t&& yielder.yieldReturn(resultSelector(firstEnumerator.current, secondEnumerator.current, index++)),\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(firstEnumerator, secondEnumerator);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tzipMultiple(\r\n\t\tsecond:IArray>,\r\n\t\tresultSelector:(first:T, second:TSecond, index?:number) => TResult):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tif(!second.length)\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar secondTemp:Queue;\r\n\t\t\t\tvar firstEnumerator:IEnumerator;\r\n\t\t\t\tvar secondEnumerator:IEnumerator;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tsecondTemp = new Queue(second);\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tfirstEnumerator = _.getEnumerator();\r\n\t\t\t\t\t\tsecondEnumerator = null;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(firstEnumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\twhile(true)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\twhile(!secondEnumerator)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tif(secondTemp.count)\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\tvar next = secondTemp.dequeue();\r\n\t\t\t\t\t\t\t\t\t\tif(next) // In case by chance next is null, then try again.\r\n\t\t\t\t\t\t\t\t\t\t\tsecondEnumerator = enumeratorFrom(next);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif(secondEnumerator.moveNext())\r\n\t\t\t\t\t\t\t\t\treturn yielder.yieldReturn(\r\n\t\t\t\t\t\t\t\t\t\tresultSelector(firstEnumerator.current, secondEnumerator.current, index++)\r\n\t\t\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t\t\tsecondEnumerator.dispose();\r\n\t\t\t\t\t\t\t\tsecondEnumerator = null;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(firstEnumerator, secondTemp);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\r\n\t// #region Join Methods\r\n\r\n\tjoin(\r\n\t\tinner:IEnumerableOrArray,\r\n\t\touterKeySelector:Selector,\r\n\t\tinnerKeySelector:Selector,\r\n\t\tresultSelector:(outer:T, inner:TInner) => TResult,\r\n\t\tcompareSelector:Selector = Functions.Identity):Enumerable\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar outerEnumerator:IEnumerator;\r\n\t\t\t\tvar lookup:ILookup;\r\n\t\t\t\tvar innerElements:TInner[] = null;\r\n\t\t\t\tvar innerCount:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\touterEnumerator = _.getEnumerator();\r\n\t\t\t\t\t\tlookup = Enumerable.from(inner)\r\n\t\t\t\t\t\t\t.toLookup(innerKeySelector, Functions.Identity, compareSelector);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\twhile(true)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tif(innerElements!=null)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tvar innerElement = innerElements[innerCount++];\r\n\t\t\t\t\t\t\t\tif(innerElement!==VOID0)\r\n\t\t\t\t\t\t\t\t\treturn yielder.yieldReturn(resultSelector(outerEnumerator.current, innerElement));\r\n\r\n\t\t\t\t\t\t\t\tinnerElement = null;\r\n\t\t\t\t\t\t\t\tinnerCount = 0;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(outerEnumerator.moveNext())\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tvar key = outerKeySelector(outerEnumerator.current);\r\n\t\t\t\t\t\t\t\tinnerElements = lookup.get(key);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(outerEnumerator);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tgroupJoin(\r\n\t\tinner:IEnumerableOrArray,\r\n\t\touterKeySelector:Selector,\r\n\t\tinnerKeySelector:Selector,\r\n\t\tresultSelector:(outer:T, inner:TInner[]) => TResult,\r\n\t\tcompareSelector:Selector = Functions.Identity):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar lookup:ILookup = null;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tlookup = Enumerable.from(inner)\r\n\t\t\t\t\t\t\t.toLookup(innerKeySelector, Functions.Identity, compareSelector);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\tenumerator.moveNext()\r\n\t\t\t\t\t&& yielder.yieldReturn(\r\n\t\t\t\t\t\tresultSelector(\r\n\t\t\t\t\t\t\tenumerator.current,\r\n\t\t\t\t\t\t\tlookup.get(outerKeySelector(enumerator.current))\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t),\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tmerge(enumerables:IArray>):InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this, isEndless = _._isEndless || null;\r\n\r\n\t\tif(!enumerables || enumerables.length==0)\r\n\t\t\treturn _;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar queue:Queue>;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t// 1) First get our values...\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tqueue = new Queue>(enumerables);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder) =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\twhile(true)\r\n\t\t\t\t\t\t{\r\n\r\n\t\t\t\t\t\t\twhile(!enumerator && queue.count)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tenumerator = enumeratorFrom(queue.dequeue()); // 4) Keep going and on to step 2. Else fall through to yieldBreak().\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(enumerator && enumerator.moveNext()) // 2) Keep returning until done.\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(enumerator.current);\r\n\r\n\t\t\t\t\t\t\tif(enumerator) // 3) Dispose and reset for next.\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tenumerator.dispose();\r\n\t\t\t\t\t\t\t\tenumerator = null;\r\n\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator, queue); // Just in case this gets disposed early.\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\tconcat(...enumerables:Array>):InfiniteEnumerable\r\n\t{\r\n\t\treturn this.merge(enumerables);\r\n\t}\r\n\r\n\r\n\tunion(\r\n\t\tsecond:IEnumerableOrArray,\r\n\t\tcompareSelector:Selector = Functions.Identity):Enumerable\r\n\t{\r\n\t\tvar _ = this, isEndless = _._isEndless || null;\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar firstEnumerator:IEnumerator;\r\n\t\t\t\tvar secondEnumerator:IEnumerator;\r\n\t\t\t\tvar keys:Dictionary;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfirstEnumerator = _.getEnumerator();\r\n\t\t\t\t\t\tkeys = new Dictionary(compareSelector); // Acting as a HashSet.\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar current:T;\r\n\t\t\t\t\t\tif(secondEnumerator===VOID0)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\twhile(firstEnumerator.moveNext())\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tcurrent = firstEnumerator.current;\r\n\t\t\t\t\t\t\t\tif(!keys.containsKey(current))\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tkeys.addByKeyValue(current, null);\r\n\t\t\t\t\t\t\t\t\treturn yielder.yieldReturn(current);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tsecondEnumerator = enumeratorFrom(second);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\twhile(secondEnumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tcurrent = secondEnumerator.current;\r\n\t\t\t\t\t\t\tif(!keys.containsKey(current))\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tkeys.addByKeyValue(current, null);\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(current);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(firstEnumerator, secondEnumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\tinsertAt(index:number, other:IEnumerableOrArray):Enumerable\r\n\t{\r\n\t\tInteger.assertZeroOrGreater(index, 'index');\r\n\t\tvar n:number = index;\r\n\r\n\t\tvar _ = this, isEndless = _._isEndless || null;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\r\n\t\t\t\tvar firstEnumerator:IEnumerator;\r\n\t\t\t\tvar secondEnumerator:IEnumerator;\r\n\r\n\t\t\t\tvar count:number = 0;\r\n\t\t\t\tvar isEnumerated:boolean = false;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcount = 0;\r\n\t\t\t\t\t\tfirstEnumerator = _.getEnumerator();\r\n\t\t\t\t\t\tsecondEnumerator = enumeratorFrom(other);\r\n\t\t\t\t\t\tisEnumerated = false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder) =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(count==n)\r\n\t\t\t\t\t\t{ // Inserting?\r\n\t\t\t\t\t\t\tisEnumerated = true;\r\n\t\t\t\t\t\t\tif(secondEnumerator.moveNext())\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(secondEnumerator.current);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif(firstEnumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tcount++;\r\n\t\t\t\t\t\t\treturn yielder.yieldReturn(firstEnumerator.current);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn !isEnumerated\r\n\t\t\t\t\t\t\t&& secondEnumerator.moveNext()\r\n\t\t\t\t\t\t\t&& yielder.yieldReturn(secondEnumerator.current);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(firstEnumerator, secondEnumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n\talternateMultiple(sequence:IEnumerableOrArray):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar buffer:T,\r\n\t\t\t\t mode:EnumerableAction,\r\n\t\t\t\t enumerator:IEnumerator,\r\n\t\t\t\t alternateEnumerator:IEnumerator;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t// Instead of recalling getEnumerator every time, just reset the existing one.\r\n\t\t\t\t\t\talternateEnumerator = new ArrayEnumerator(\r\n\t\t\t\t\t\t\tEnumerable.toArray(sequence)\r\n\t\t\t\t\t\t); // Freeze\r\n\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\r\n\t\t\t\t\t\tvar hasAtLeastOne = enumerator.moveNext();\r\n\t\t\t\t\t\tmode = hasAtLeastOne\r\n\t\t\t\t\t\t\t? EnumerableAction.Return\r\n\t\t\t\t\t\t\t: EnumerableAction.Break;\r\n\r\n\t\t\t\t\t\tif(hasAtLeastOne)\r\n\t\t\t\t\t\t\tbuffer = enumerator.current;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tswitch(mode)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tcase EnumerableAction.Break: // We're done?\r\n\t\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\r\n\t\t\t\t\t\t\tcase EnumerableAction.Skip:\r\n\t\t\t\t\t\t\t\tif(alternateEnumerator.moveNext())\r\n\t\t\t\t\t\t\t\t\treturn yielder.yieldReturn(alternateEnumerator.current);\r\n\t\t\t\t\t\t\t\talternateEnumerator.reset();\r\n\t\t\t\t\t\t\t\tmode = EnumerableAction.Return;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar latest = buffer;\r\n\r\n\t\t\t\t\t\t// Set up the next round...\r\n\r\n\t\t\t\t\t\t// Is there another one? Set the buffer and setup instruct for the next one to be the alternate.\r\n\t\t\t\t\t\tvar another = enumerator.moveNext();\r\n\t\t\t\t\t\tmode = another\r\n\t\t\t\t\t\t\t? EnumerableAction.Skip\r\n\t\t\t\t\t\t\t: EnumerableAction.Break;\r\n\r\n\t\t\t\t\t\tif(another)\r\n\t\t\t\t\t\t\tbuffer = enumerator.current;\r\n\r\n\t\t\t\t\t\treturn yielder.yieldReturn(latest);\r\n\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator, alternateEnumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\talternateSingle(value:T):Enumerable\r\n\t{\r\n\t\treturn this.alternateMultiple(Enumerable.make(value));\r\n\t}\r\n\r\n\talternate(...sequence:T[]):Enumerable\r\n\t{\r\n\t\treturn this.alternateMultiple(sequence);\r\n\t}\r\n\r\n\r\n\t// #region Error Handling\r\n\tcatchError(handler:(e:any) => void):InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttry\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcatch(e)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t// Don't init...\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttry\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\t\tif(enumerator.moveNext())\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(enumerator.current);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcatch(e)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\thandler(e);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tfinallyAction(action:() => void):InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\treturn (enumerator.moveNext())\r\n\t\t\t\t\t\t\t? yielder.yieldReturn(enumerator.current)\r\n\t\t\t\t\t\t\t: false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttry\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tfinally\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\taction();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tbuffer(size:number):InfiniteEnumerable\r\n\t{\r\n\t\tif(size<1 || !isFinite(size))\r\n\t\t\tthrow new Error(\"Invalid buffer size.\");\r\n\r\n\t\tInteger.assert(size, \"size\");\r\n\r\n\t\tvar _ = this, len:number;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar array:T[] = ArrayUtility.initialize(size);\r\n\t\t\t\t\t\tlen = 0;\r\n\t\t\t\t\t\twhile(len\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tshare():InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar sharedEnumerator:IEnumerator;\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\treturn sharedEnumerator || (sharedEnumerator = _.getEnumerator());\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdispose(sharedEnumerator);\r\n\t\t\t},\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n}\r\n\r\n\r\n/**\r\n * Enumerable is a wrapper class that allows more primitive enumerables to exhibit LINQ behavior.\r\n *\r\n * In C# Enumerable is not an instance but has extensions for IEnumerable.\r\n * In this case, we use Enumerable as the underlying class that is being chained.\r\n */\r\nexport class Enumerable\r\nextends InfiniteEnumerable\r\n{\r\n\r\n\tconstructor(\r\n\t\tenumeratorFactory:() => IEnumerator,\r\n\t\tfinalizer?:() => void,\r\n\t\tisEndless:boolean = null)\r\n\t{\r\n\t\tsuper(enumeratorFactory, finalizer);\r\n\t\tthis._isEndless = isEndless;\r\n\t}\r\n\r\n\t/**\r\n\t * Universal method for converting a primitive enumerables into a LINQ enabled ones.\r\n\t *\r\n\t * Is not limited to TypeScript usages.\r\n\t */\r\n\tstatic from(source:IEnumerableOrArray):Enumerable\r\n\t{\r\n\t\tvar e = Enumerable.fromAny(source);\r\n\t\tif(!e) throw new UnsupportedEnumerableException();\r\n\t\treturn e;\r\n\t}\r\n\r\n\tstatic fromAny(\r\n\t\tsource:any):Enumerable\r\n\r\n\tstatic fromAny(\r\n\t\tsource:IEnumerableOrArray,\r\n\t\tdefaultEnumerable?:Enumerable):Enumerable\r\n\r\n\tstatic fromAny(\r\n\t\tsource:any,\r\n\t\tdefaultEnumerable?:Enumerable):Enumerable\r\n\r\n\tstatic fromAny(\r\n\t\tsource:any,\r\n\t\tdefaultEnumerable:Enumerable = null):Enumerable\r\n\t{\r\n\t\tif(Type.isObject(source) || Type.isString(source))\r\n\t\t{\r\n\t\t\tif(source instanceof Enumerable)\r\n\t\t\t\treturn source;\r\n\r\n\t\t\tif(Type.isArrayLike(source))\r\n\t\t\t\treturn new ArrayEnumerable(source);\r\n\r\n\t\t\tif(isEnumerable(source))\r\n\t\t\t\treturn new Enumerable(\r\n\t\t\t\t\t()=>source.getEnumerator(),\r\n\t\t\t\t\tnull, source.isEndless);\r\n\t\t}\r\n\r\n\t\treturn defaultEnumerable;\r\n\t}\r\n\r\n\tstatic fromOrEmpty(source:IEnumerableOrArray):Enumerable\r\n\t{\r\n\t\treturn Enumerable.fromAny(source) || Enumerable.empty();\r\n\t}\r\n\r\n\t/**\r\n\t * Static helper for converting enumerables to an array.\r\n\t * @param source\r\n\t * @returns {any}\r\n\t */\r\n\tstatic toArray(source:IEnumerableOrArray):T[]\r\n\t{\r\n\t\tif(source instanceof Enumerable)\r\n\t\t\treturn source.toArray();\r\n\r\n\t\treturn toArray(source);\r\n\t}\r\n\r\n\r\n\t//////////////////////////////////////////\r\n\t// #region Static Methods...\r\n\tstatic choice(values:IArray):InfiniteEnumerable\r\n\t{\r\n\t\tvar len = values && values.length;\r\n\t\t// We could return empty if no length, but that would break the typing and produce unexpected results.\r\n\t\t// Enforcing that there must be at least 1 choice is key.\r\n\t\tif(!len || !isFinite(len))\r\n\t\t\tthrow new ArgumentOutOfRangeException('length', length);\r\n\r\n\t\treturn new InfiniteEnumerable(\r\n\t\t\t() => new EnumeratorBase(\r\n\t\t\t\tnull,\r\n\t\t\t\t(yielder)=>\r\n\t\t\t\t\tyielder.yieldReturn(Integer.random.select(values)),\r\n\t\t\t\ttrue // Is endless!\r\n\t\t\t)\r\n\t\t);\r\n\t}\r\n\r\n\tstatic chooseFrom(...args:T[]):InfiniteEnumerable\r\n\t{\r\n\t\treturn Enumerable.choice(args);\r\n\t}\r\n\r\n\tstatic cycle(values:IArray):InfiniteEnumerable\r\n\t{\r\n\t\tvar len = values && values.length;\r\n\t\t// We could return empty if no length, but that would break the typing and produce unexpected results.\r\n\t\t// Enforcing that there must be at least 1 choice is key.\r\n\t\tif(!len || !isFinite(len))\r\n\t\t\tthrow new ArgumentOutOfRangeException('length', length);\r\n\r\n\t\treturn new InfiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar index:number = 0;\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t}, // Reinitialize the value just in case the enumerator is restarted.\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(index>=values.length) index = 0;\r\n\t\t\t\t\t\treturn yielder.yieldReturn(values[index++]);\r\n\t\t\t\t\t},\r\n\t\t\t\t\ttrue // Is endless!\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic cycleThrough(...args:T[]):InfiniteEnumerable\r\n\t{\r\n\t\treturn Enumerable.cycle(args);\r\n\t}\r\n\r\n\tstatic empty():FiniteEnumerable\r\n\t{\r\n\t\t// Could be single static instance, but for safety, we'll make a new one.\r\n\t\treturn new FiniteEnumerable(getEmptyEnumerator);\r\n\t}\r\n\r\n\tstatic repeat(element:T):InfiniteEnumerable;\r\n\tstatic repeat(element:T, count:number):FiniteEnumerable;\r\n\tstatic repeat(element:T, count:number = Infinity):Enumerable\r\n\t{\r\n\t\tif(!(count>0))\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\treturn isFinite(count) && Integer.assert(count, \"count\")\r\n\t\t\t? new FiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar c:number = count;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() => { index = 0; },\r\n\t\t\t\t\t(yielder)=> (index++(\r\n\t\t\t() =>\r\n\t\t\t\tnew EnumeratorBase(\r\n\t\t\t\t\tnull,\r\n\t\t\t\t\t(yielder)=> yielder.yieldReturn(element),\r\n\t\t\t\t\ttrue // Is endless!\r\n\t\t\t\t)\r\n\t\t);\r\n\t}\r\n\r\n\t// Note: this enumeration is endless but can be disposed/cancelled and finalized.\r\n\tstatic repeatWithFinalize(\r\n\t\tinitializer:() => T,\r\n\t\tfinalizer:(element:T) => void):InfiniteEnumerable\r\n\t{\r\n\r\n\t\treturn new InfiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar element:T;\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\telement = initializer();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=> yielder.yieldReturn(element),\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfinalizer(element);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\ttrue // Is endless!\r\n\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * Creates an enumerable of one element.\r\n\t * @param element\r\n\t * @returns {FiniteEnumerable}\r\n\t */\r\n\tstatic make(element:T):FiniteEnumerable\r\n\t{\r\n\t\treturn Enumerable.repeat(element, 1);\r\n\t}\r\n\r\n\t// start and step can be other than integer.\r\n\r\n\tstatic range(\r\n\t\tstart:number,\r\n\t\tcount:number,\r\n\t\tstep:number = 1):FiniteEnumerable\r\n\t{\r\n\t\tif(!isFinite(start))\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"start\", start, \"Must be a finite number.\");\r\n\r\n\t\tif(!(count>0))\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\tif(!step)\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"step\", step, \"Must be a valid value\");\r\n\r\n\t\tif(!isFinite(step))\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"step\", step, \"Must be a finite number.\");\r\n\r\n\t\tInteger.assert(count, \"count\");\r\n\r\n\t\treturn new FiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar value:number;\r\n\t\t\t\tvar c:number = count; // Force integer evaluation.\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tvalue = start;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar result:boolean =\r\n\t\t\t\t\t\t\t index++\r\n\t{\r\n\t\tstep = Math.abs(step)* -1;\r\n\r\n\t\treturn Enumerable.range(start, count, step);\r\n\t}\r\n\r\n\t// step = -1 behaves the same as toNegativeInfinity;\r\n\tstatic toInfinity(\r\n\t\tstart:number = 0,\r\n\t\tstep:number = 1):InfiniteEnumerable\r\n\t{\r\n\t\tif(!isFinite(start))\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"start\", start, \"Must be a finite number.\");\r\n\r\n\t\tif(!step)\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"step\", step, \"Must be a valid value\");\r\n\r\n\t\tif(!isFinite(step))\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"step\", step, \"Must be a finite number.\");\r\n\r\n\t\treturn new InfiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar value:number;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvalue = start;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar current:number = value;\r\n\t\t\t\t\t\tvalue += step;\r\n\t\t\t\t\t\treturn yielder.yieldReturn(current);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\ttrue // Is endless!\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic toNegativeInfinity(\r\n\t\tstart:number = 0,\r\n\t\tstep:number = 1):InfiniteEnumerable\r\n\t{\r\n\t\treturn Enumerable.toInfinity(start, -step);\r\n\t}\r\n\r\n\tstatic rangeTo(\r\n\t\tstart:number,\r\n\t\tto:number,\r\n\t\tstep:number = 1):FiniteEnumerable\r\n\t{\r\n\t\tif(isNaN(to) || !isFinite(to))\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"to\", to, \"Must be a finite number.\");\r\n\r\n\t\tif(step && !isFinite(step))\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"step\", step, \"Must be a finite non-zero number.\");\r\n\r\n\t\t// This way we adjust for the delta from start and to so the user can say +/- step and it will work as expected.\r\n\t\tstep = Math.abs(step);\r\n\r\n\t\treturn new FiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar value:number;\r\n\r\n\t\t\t\treturn new EnumeratorBase(() => { value = start; },\r\n\t\t\t\t\tstart\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar result:boolean = value<=to && yielder.yieldReturn(value);\r\n\r\n\t\t\t\t\t\t\tif(result)\r\n\t\t\t\t\t\t\t\tvalue += step;\r\n\r\n\t\t\t\t\t\t\treturn result;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t:\r\n\t\t\t\t\t\tyielder=>\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar result:boolean = value>=to && yielder.yieldReturn(value);\r\n\r\n\t\t\t\t\t\t\tif(result)\r\n\t\t\t\t\t\t\t\tvalue -= step;\r\n\r\n\t\t\t\t\t\t\treturn result;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t, false);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic matches(input:string, pattern:any, flags:string = \"\"):FiniteEnumerable\r\n\t{\r\n\t\tif(input===null || input===VOID0)\r\n\t\t\tthrow new ArgumentNullException(\"input\");\r\n\t\tvar type = typeof input;\r\n\t\tif(type!=Type.STRING)\r\n\t\t\tthrow new Error(\"Cannot exec RegExp matches of type '\" + type + \"'.\");\r\n\r\n\t\tif(pattern instanceof RegExp)\r\n\t\t{\r\n\t\t\tflags += (pattern.ignoreCase) ? \"i\" : \"\";\r\n\t\t\tflags += (pattern.multiline) ? \"m\" : \"\";\r\n\t\t\tpattern = pattern.source;\r\n\t\t}\r\n\r\n\t\tif(flags.indexOf(\"g\")=== -1) flags += \"g\";\r\n\r\n\t\treturn new FiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar regex:RegExp;\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tregex = new RegExp(pattern, flags);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t// Calling regex.exec consecutively on the same input uses the lastIndex to start the next match.\r\n\t\t\t\t\t\tvar match = regex.exec(input);\r\n\t\t\t\t\t\treturn (match!==null) ? yielder.yieldReturn(match) : false;\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic generate(factory:(index?:number) => T):InfiniteEnumerable;\r\n\tstatic generate(factory:(index?:number) => T, count:number):FiniteEnumerable;\r\n\tstatic generate(factory:(index?:number) => T, count:number = Infinity):InfiniteEnumerable\r\n\t{\r\n\r\n\t\tif(isNaN(count) || count<=0)\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\treturn isFinite(count) && Integer.assert(count, \"count\")\r\n\t\t\t?\r\n\t\t\tnew FiniteEnumerable(\r\n\t\t\t\t() =>\r\n\t\t\t\t{\r\n\t\t\t\t\tvar c:number = count;\r\n\t\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t\t() =>\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar current:number = index++;\r\n\t\t\t\t\t\t\treturn current(\r\n\t\t\t\t() =>\r\n\t\t\t\t{\r\n\t\t\t\t\tvar index:number = 0;\r\n\t\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t\t() =>\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t(yielder)=> yielder.yieldReturn(factory(index++)),\r\n\r\n\t\t\t\t\t\ttrue // Is endless!\r\n\t\t\t\t\t);\r\n\t\t\t\t});\r\n\t}\r\n\r\n\tstatic unfold(\r\n\t\tseed:T,\r\n\t\tvalueFactory:Selector,\r\n\t\tskipSeed:Boolean = false):InfiniteEnumerable\r\n\t{\r\n\t\treturn new InfiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar index:number = 0;\r\n\t\t\t\tvar value:T;\r\n\t\t\t\tvar isFirst:boolean;\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tvalue = seed;\r\n\t\t\t\t\t\tisFirst = !skipSeed;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar i = index++;\r\n\t\t\t\t\t\tif(isFirst)\r\n\t\t\t\t\t\t\tisFirst = false;\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\tvalue = valueFactory(value, i);\r\n\t\t\t\t\t\treturn yielder.yieldReturn(value);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\ttrue // Is endless!\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic forEach(\r\n\t\tenumerable:IEnumerableOrArray,\r\n\t\taction:(element:T, index?:number) => any):void\r\n\t{\r\n\t\t// Will properly dispose created enumerable.\r\n\t\t// Will throw if enumerable is endless.\r\n\t\tforEach(enumerable, action);\r\n\t}\r\n\r\n\tstatic map(\r\n\t\tenumerable:IEnumerableOrArray,\r\n\t\tselector:Selector):TResult[]\r\n\t{\r\n\t\t// Will properly dispose created enumerable.\r\n\t\t// Will throw if enumerable is endless.\r\n\t\treturn map(enumerable, selector);\r\n\r\n\t}\r\n\r\n\t// Slightly optimized versions for numbers.\r\n\tstatic max(values:FiniteEnumerable):number\r\n\t{\r\n\t\treturn values\r\n\t\t\t.takeUntil(v=> v== +Infinity, true)\r\n\t\t\t.aggregate(Functions.Greater);\r\n\t}\r\n\r\n\tstatic min(values:FiniteEnumerable):number\r\n\t{\r\n\t\treturn values\r\n\t\t\t.takeUntil(v=> v== -Infinity, true)\r\n\t\t\t.aggregate(Functions.Lesser);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Takes any set of collections of the same type and weaves them together.\r\n\t * @param enumerables\r\n\t * @returns {Enumerable}\r\n\t */\r\n\tstatic weave(\r\n\t\tenumerables:IEnumerableOrArray>):Enumerable\r\n\t{\r\n\t\tif(!enumerables)\r\n\t\t\tthrow new ArgumentNullException('enumerables');\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar queue:Queue>;\r\n\t\t\t\tvar mainEnumerator:IEnumerator>;\r\n\t\t\t\tvar index:number;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tqueue = new Queue>();\r\n\t\t\t\t\t\tmainEnumerator = enumeratorFrom(enumerables);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tlet e:IEnumerator;\r\n\r\n\t\t\t\t\t\t// First pass...\r\n\t\t\t\t\t\tif(mainEnumerator)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\twhile(!e && mainEnumerator.moveNext())\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tlet c = mainEnumerator.current;\r\n\t\t\t\t\t\t\t\te = nextEnumerator(queue, c && enumeratorFrom(c));\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(!e)\r\n\t\t\t\t\t\t\t\tmainEnumerator = null;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\twhile(!e && queue.count)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\te = nextEnumerator(queue, queue.dequeue());\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn e\r\n\t\t\t\t\t\t\t? yielder.yieldReturn(e.current)\r\n\t\t\t\t\t\t\t: yielder.yieldBreak();\r\n\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose.these(queue.dump());\r\n\t\t\t\t\t\tdispose(mainEnumerator, queue);\r\n\t\t\t\t\t\tmainEnumerator = null;\r\n\t\t\t\t\t\tqueue = null;\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\tdoAction(\r\n\t\taction:Action|Predicate|Selector|Selector,\r\n\t\tinitializer?:()=>void,\r\n\t\tisEndless:boolean = this.isEndless):Enumerable\r\n\t{\r\n\t\treturn >super.doAction(action, initializer, isEndless);\r\n\t}\r\n\r\n// #region Indexing/Paging methods.\r\n\r\n\tskip(count:number):Enumerable\r\n\t{\r\n\t\treturn >super.skip(count);\r\n\t}\r\n\r\n\tskipWhile(predicate:Predicate):Enumerable\r\n\t{\r\n\t\tthis.throwIfDisposed();\r\n\t\treturn this.doAction(\r\n\t\t\t(element:T, index?:number) =>\r\n\t\t\t\tpredicate(element, index)\r\n\t\t\t\t\t? EnumerableAction.Skip\r\n\t\t\t\t\t: EnumerableAction.Return\r\n\t\t);\r\n\t}\r\n\r\n\ttakeWhile(predicate:Predicate):Enumerable\r\n\t{\r\n\t\tthis.throwIfDisposed();\r\n\r\n\t\tif(!predicate)\r\n\t\t\tthrow new ArgumentNullException('predicate');\r\n\r\n\t\treturn this.doAction(\r\n\t\t\t(element:T, index?:number) =>\r\n\t\t\t\tpredicate(element, index)\r\n\t\t\t\t\t? EnumerableAction.Return\r\n\t\t\t\t\t: EnumerableAction.Break,\r\n\t\t\tnull,\r\n\t\t\tnull // We don't know the state if it is endless or not.\r\n\t\t);\r\n\t}\r\n\r\n\t// Is like the inverse of take While with the ability to return the value identified by the predicate.\r\n\ttakeUntil(predicate:Predicate, includeUntilValue?:boolean):Enumerable\r\n\t{\r\n\t\tthis.throwIfDisposed();\r\n\r\n\t\tif(!predicate)\r\n\t\t\tthrow new ArgumentNullException('predicate');\r\n\r\n\t\tif(!includeUntilValue)\r\n\t\t\treturn this.doAction(\r\n\t\t\t\t(element:T, index?:number) =>\r\n\t\t\t\t\tpredicate(element, index)\r\n\t\t\t\t\t\t? EnumerableAction.Break\r\n\t\t\t\t\t\t: EnumerableAction.Return,\r\n\t\t\t\tnull,\r\n\t\t\t\tnull // We don't know the state if it is endless or not.\r\n\t\t\t);\r\n\r\n\t\tvar found:boolean = false;\r\n\t\treturn this.doAction(\r\n\t\t\t(element:T, index?:number) =>\r\n\t\t\t{\r\n\t\t\t\tif(found)\r\n\t\t\t\t\treturn EnumerableAction.Break;\r\n\r\n\t\t\t\tfound = predicate(element, index);\r\n\t\t\t\treturn EnumerableAction.Return;\r\n\t\t\t},\r\n\t\t\t()=>\r\n\t\t\t{\r\n\t\t\t\tfound = false;\r\n\t\t\t},\r\n\t\t\tnull // We don't know the state if it is endless or not.\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tforEach(action:Predicate | Action):void\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\tthrowIfEndless(_.isEndless);\r\n\r\n\t\tvar index:number = 0;\r\n\t\t// Return value of action can be anything, but if it is (===) false then the forEach will discontinue.\r\n\t\tusing(\r\n\t\t\t_.getEnumerator(), e=>\r\n\t\t\t{\r\n\t\t\t\tthrowIfEndless(e.isEndless);\r\n\r\n\t\t\t\t// It is possible that subsequently 'action' could cause the enumeration to dispose, so we have to check each time.\r\n\t\t\t\twhile(_.throwIfDisposed() && e.moveNext())\r\n\t\t\t\t{\r\n\t\t\t\t\tif(action(e.current, index++)===false)\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\t// #region Conversion Methods\r\n\ttoArray(predicate?:Predicate):T[]\r\n\t{\r\n\t\treturn predicate\r\n\t\t\t? this.where(predicate).toArray()\r\n\t\t\t: this.copyTo([]);\r\n\t}\r\n\r\n\tcopyTo(target:T[], index:number = 0):T[]\r\n\t{\r\n\t\tthis.throwIfDisposed();\r\n\t\tif(!target) throw new ArgumentNullException(\"target\");\r\n\t\tInteger.assertZeroOrGreater(index);\r\n\r\n\t\t// If not exposing an action that could cause dispose, then use forEach utility instead.\r\n\t\tforEach(this, (x, i)=>\r\n\t\t{\r\n\t\t\ttarget[i + index] = x\r\n\t\t});\r\n\r\n\t\treturn target;\r\n\t}\r\n\r\n\ttoLookup(\r\n\t\tkeySelector:Selector,\r\n\t\telementSelector:Selector = Functions.Identity,\r\n\t\tcompareSelector:Selector = Functions.Identity):ILookup\r\n\t{\r\n\t\tvar dict:Dictionary = new Dictionary(compareSelector);\r\n\t\tthis.forEach(\r\n\t\t\tx=>\r\n\t\t\t{\r\n\t\t\t\tvar key = keySelector(x);\r\n\t\t\t\tvar element = elementSelector(x);\r\n\r\n\t\t\t\tvar array = dict.getValue(key);\r\n\t\t\t\tif(array!==VOID0) array.push(element);\r\n\t\t\t\telse dict.addByKeyValue(key, [element]);\r\n\t\t\t}\r\n\t\t);\r\n\t\treturn new Lookup(dict);\r\n\t}\r\n\r\n\ttoMap(\r\n\t\tkeySelector:Selector,\r\n\t\telementSelector:Selector):IMap\r\n\t{\r\n\t\tvar obj:IMap = {};\r\n\t\tthis.forEach((x, i)=>\r\n\t\t{\r\n\t\t\tobj[keySelector(x, i)] = elementSelector(x, i);\r\n\t\t});\r\n\t\treturn obj;\r\n\t}\r\n\r\n\ttoDictionary(\r\n\t\tkeySelector:Selector,\r\n\t\telementSelector:Selector,\r\n\t\tcompareSelector:Selector = Functions.Identity):Dictionary\r\n\t{\r\n\t\tvar dict:Dictionary = new Dictionary(compareSelector);\r\n\t\tthis.forEach((x, i)=> dict.addByKeyValue(keySelector(x, i), elementSelector(x, i)));\r\n\t\treturn dict;\r\n\t}\r\n\r\n\ttoJoinedString(separator:string = \"\", selector:Selector = Functions.Identity)\r\n\t{\r\n\t\treturn this.select(selector).toArray().join(separator);\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\r\n\ttakeExceptLast(count:number = 1):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\tif(!(count>0)) // Out of bounds?\r\n\t\t\treturn _;\r\n\r\n\t\tif(!isFinite(count)) // +Infinity equals skip all so return empty.\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\tInteger.assert(count, \"count\");\r\n\t\tvar c = count;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar q:Queue;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tq = new Queue();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t// Add the next one to the queue.\r\n\t\t\t\t\t\t\tq.enqueue(enumerator.current);\r\n\r\n\t\t\t\t\t\t\t// Did we reach our quota?\r\n\t\t\t\t\t\t\tif(q.count>c)\r\n\t\t\t\t\t\t\t// Okay then, start returning results.\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(q.dequeue());\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator, q);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tskipToLast(count:number):Enumerable\r\n\t{\r\n\t\tif(!(count>0)) // Out of bounds? Empty.\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\tvar _ = this;\r\n\r\n\t\tif(!isFinite(count)) // Infinity means return all.\r\n\t\t\treturn _;\r\n\r\n\t\tInteger.assert(count, \"count\");\r\n\r\n\t\t// This sets up the query so nothing is done until move next is called.\r\n\t\treturn _.reverse()\r\n\t\t\t.take(count)\r\n\t\t\t.reverse();\r\n\t}\r\n\r\n\t// To help with type guarding.\r\n\r\n\twhere(predicate:Predicate):Enumerable\r\n\t{\r\n\t\treturn >super.where(predicate);\r\n\t}\r\n\r\n\tselect(selector:Selector):Enumerable\r\n\t{\r\n\t\treturn >super.select(selector);\r\n\t}\r\n\r\n\tselectMany(\r\n\t\tcollectionSelector:Selector>):Enumerable;\r\n\r\n\r\n\tselectMany(\r\n\t\tcollectionSelector:Selector>,\r\n\t\tresultSelector:(collection:T, element:TElement)=>TResult):Enumerable;\r\n\r\n\tselectMany(\r\n\t\tcollectionSelector:Selector>,\r\n\t\tresultSelector?:(collection:T, element:any)=>TResult):Enumerable\r\n\t{\r\n\t\treturn this._selectMany(collectionSelector, resultSelector);\r\n\t}\r\n\r\n\tchoose():Enumerable;\r\n\tchoose(selector?:Selector):Enumerable\r\n\tchoose(selector:Selector = Functions.Identity):Enumerable\r\n\t{\r\n\t\treturn this._choose(selector);\r\n\t}\r\n\r\n\treverse():Enumerable\r\n\t{\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\t\tthrowIfEndless(_._isEndless); // Cannot reverse an endless collection...\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar buffer:T[];\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\tbuffer = _.toArray();\r\n\t\t\t\t\t\tindex = buffer.length;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=> index && yielder.yieldReturn(buffer[--index]),\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tbuffer.length = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tshuffle():Enumerable\r\n\t{\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\t\tthrowIfEndless(_._isEndless); // Cannot shuffle an endless collection...\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar buffer:T[];\r\n\t\t\t\tvar capacity:number;\r\n\t\t\t\tvar len:number;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\tbuffer = _.toArray();\r\n\t\t\t\t\t\tcapacity = len = buffer.length;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t// Avoid using major array operations like .slice();\r\n\t\t\t\t\t\tif(!len)\r\n\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\r\n\t\t\t\t\t\tvar selectedIndex = Integer.random(len);\r\n\t\t\t\t\t\tvar selectedValue = buffer[selectedIndex];\r\n\r\n\t\t\t\t\t\tbuffer[selectedIndex] = buffer[--len]; // Take the last one and put it here.\r\n\t\t\t\t\t\tbuffer[len] = null; // clear possible reference.\r\n\r\n\t\t\t\t\t\tif(len%32==0) // Shrink?\r\n\t\t\t\t\t\t\tbuffer.length = len;\r\n\r\n\t\t\t\t\t\treturn yielder.yieldReturn(selectedValue);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tbuffer.length = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tcount(predicate?:Predicate):number\r\n\t{\r\n\t\tvar count:number = 0;\r\n\t\tthis.forEach(\r\n\t\t\tpredicate\r\n\r\n\t\t\t\t?\r\n\t\t\t\t(x, i) =>\r\n\t\t\t\t{\r\n\t\t\t\t\tif(predicate(x, i))++count;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t:\r\n\t\t\t\t() =>\r\n\t\t\t\t{\r\n\t\t\t\t\t++count;\r\n\t\t\t\t}\r\n\t\t);\r\n\r\n\t\treturn count;\r\n\t}\r\n\r\n\t// Akin to '.every' on an array.\r\n\tall(predicate:Predicate):boolean\r\n\t{\r\n\t\tif(!predicate)\r\n\t\t\tthrow new ArgumentNullException(\"predicate\");\r\n\r\n\t\tvar result = true;\r\n\t\tthis.forEach((x, i) =>\r\n\t\t{\r\n\t\t\tif(!predicate(x, i))\r\n\t\t\t{\r\n\t\t\t\tresult = false;\r\n\t\t\t\treturn false; // break\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\r\n\t// 'every' has been added here for parity/compatibility with an array.\r\n\tevery(predicate:Predicate):boolean\r\n\t{\r\n\t\treturn this.all(predicate);\r\n\t}\r\n\r\n\t// Akin to '.some' on an array.\r\n\tany(predicate?:Predicate):boolean\r\n\t{\r\n\t\tif(!predicate)\r\n\t\t\treturn super.any();\r\n\r\n\t\tvar result = false;\r\n\t\t// Splitting the forEach up this way reduces iterative processing.\r\n\t\t// forEach handles the generation and disposal of the enumerator.\r\n\t\tthis.forEach(\r\n\t\t\t(x, i) =>\r\n\t\t\t{\r\n\t\t\t\tresult = predicate(x, i); // false = not found and therefore it should continue. true = found and break;\r\n\t\t\t\treturn !result;\r\n\t\t\t});\r\n\t\treturn result;\r\n\r\n\t}\r\n\r\n\t// 'some' has been added here for parity/compatibility with an array.\r\n\tsome(predicate:Predicate):boolean\r\n\t{\r\n\t\treturn this.any(predicate);\r\n\t}\r\n\r\n\r\n\tcontains(value:T, compareSelector?:Selector):boolean\r\n\t{\r\n\t\treturn compareSelector\r\n\t\t\t? this.any(v=> compareSelector(v)===compareSelector(value))\r\n\t\t\t: this.any(v=> v===value);\r\n\t}\r\n\r\n\t// Originally has an overload for a predicate,\r\n\t// but that's a bad idea since this could be an enumeration of functions and therefore fail the intent.\r\n\t// Better to chain a where statement first to be more explicit.\r\n\tindexOf(value:T, compareSelector?:Selector):number\r\n\t{\r\n\t\tvar found:number = -1;\r\n\t\tthis.forEach(\r\n\t\t\tcompareSelector\r\n\t\t\t\t?\r\n\t\t\t\t(element:T, i?:number) =>\r\n\t\t\t\t{\r\n\t\t\t\t\tif(Values.areEqual(compareSelector(element, i), compareSelector(value, i), true))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfound = i;\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t:\r\n\t\t\t\t(element:T, i?:number) =>\r\n\t\t\t\t{\r\n\t\t\t\t\t// Why? Because NaN doesn't equal NaN. :P\r\n\t\t\t\t\tif(Values.areEqual(element, value, true))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfound = i;\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\r\n\t\treturn found;\r\n\t}\r\n\r\n\tlastIndexOf(value:T, compareSelector?:Selector):number\r\n\t{\r\n\t\tvar result:number = -1;\r\n\t\tthis.forEach(\r\n\t\t\tcompareSelector\r\n\t\t\t\t?\r\n\t\t\t\t(element:T, i?:number) =>\r\n\t\t\t\t{\r\n\t\t\t\t\tif(Values.areEqual(compareSelector(element, i), compareSelector(value, i), true)) result\r\n\t\t\t\t\t\t= i;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t:\r\n\t\t\t\t(element:T, i?:number) =>\r\n\t\t\t\t{\r\n\t\t\t\t\tif(Values.areEqual(element, value, true)) result = i;\r\n\t\t\t\t});\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\tmerge(enumerables:IArray>):Enumerable\r\n\t{\r\n\t\treturn >super.merge(enumerables);\r\n\t}\r\n\r\n\tconcat(...enumerables:Array>):Enumerable\r\n\t{\r\n\t\treturn this.merge(enumerables);\r\n\t}\r\n\r\n\r\n\tintersect(\r\n\t\tsecond:IEnumerableOrArray,\r\n\t\tcompareSelector?:Selector):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar keys:Dictionary;\r\n\t\t\t\tvar outs:Dictionary;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\r\n\t\t\t\t\t\tkeys = new Dictionary(compareSelector);\r\n\t\t\t\t\t\touts = new Dictionary(compareSelector);\r\n\r\n\t\t\t\t\t\tforEach(second, key=>\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tkeys.addByKeyValue(key, true);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar current = enumerator.current;\r\n\t\t\t\t\t\t\tif(!outs.containsKey(current) && keys.containsKey(current))\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\touts.addByKeyValue(current, true);\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(current);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator, keys, outs);\r\n\t\t\t\t\t},\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\tsequenceEqual(\r\n\t\tsecond:IEnumerableOrArray,\r\n\t\tequalityComparer:EqualityComparison = Values.areEqual):boolean\r\n\t{\r\n\t\treturn using(\r\n\t\t\tthis.getEnumerator(),\r\n\t\t\te1=> using(\r\n\t\t\t\tenumeratorFrom(second),\r\n\t\t\t\te2=>\r\n\t\t\t\t{\r\n\t\t\t\t\t// if both are endless, this will never evaluate.\r\n\t\t\t\t\tthrowIfEndless(e1.isEndless && e2.isEndless);\r\n\r\n\t\t\t\t\twhile(e1.moveNext())\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(!e2.moveNext() || !equalityComparer(e1.current, e2.current))\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn !e2.moveNext();\r\n\t\t\t\t}\r\n\t\t\t)\r\n\t\t);\r\n\t}\r\n\r\n\t//isEquivalent(second:IEnumerableOrArray,\r\n\t//\tequalityComparer:EqualityComparison = Values.areEqual):boolean\r\n\t//{\r\n\t//\treturn this\r\n\t//\t\t.orderBy(keySelector)\r\n\t//\t\t.sequenceEqual(Enumerable.from(second).orderBy(keySelector))\r\n\t//}\r\n\r\n\r\n\t// #endregion\r\n\r\n\r\n\tofType(type:{ new (...params:any[]):TType }):Enumerable;\r\n\tofType(type:any):Enumerable\r\n\t{\r\n\t\treturn >super.ofType(type);\r\n\t}\r\n\r\n\texcept(\r\n\t\tsecond:IEnumerableOrArray,\r\n\t\tcompareSelector?:Selector):Enumerable\r\n\t{\r\n\t\treturn >super.except(second, compareSelector);\r\n\t}\r\n\r\n\tdistinct(compareSelector?:(value:T)=>T):Enumerable\r\n\t{\r\n\t\treturn >super.distinct(compareSelector);\r\n\t}\r\n\r\n\tdistinctUntilChanged(compareSelector:Selector = Functions.Identity):Enumerable\r\n\t{\r\n\t\treturn >super.distinctUntilChanged(compareSelector);\r\n\t}\r\n\r\n// #region Ordering Methods\r\n\r\n\torderBy(keySelector:Selector = Functions.Identity):IOrderedEnumerable\r\n\t{\r\n\t\treturn new OrderedEnumerable(this, keySelector, Order.Ascending);\r\n\t}\r\n\r\n\torderUsing(comparison:Comparison):IOrderedEnumerable\r\n\t{\r\n\t\treturn new OrderedEnumerable(this, null, Order.Ascending, null, comparison);\r\n\t}\r\n\r\n\torderUsingReversed(comparison:Comparison):IOrderedEnumerable\r\n\t{\r\n\t\treturn new OrderedEnumerable(this, null, Order.Descending, null, comparison);\r\n\t}\r\n\r\n\torderByDescending(keySelector:Selector = Functions.Identity):IOrderedEnumerable\r\n\t{\r\n\t\treturn new OrderedEnumerable(this, keySelector, Order.Descending);\r\n\t}\r\n\r\n\t/*\r\n\t\t weightedSample(weightSelector) {\r\n\t\t weightSelector = Utils.createLambda(weightSelector);\r\n\t\t var source = this;\r\n\r\n\t\t return new Enumerable(() => {\r\n\t\t var sortedByBound;\r\n\t\t var totalWeight = 0;\r\n\r\n\t\t return new EnumeratorBase(\r\n\t\t () => {\r\n\t\t sortedByBound = source\r\n\t\t .choose(function (x) {\r\n\t\t var weight = weightSelector(x);\r\n\t\t if (weight <= 0) return null; // ignore 0\r\n\r\n\t\t totalWeight += weight;\r\n\t\t return { value: x, bound: totalWeight }\r\n\t\t })\r\n\t\t .toArray();\r\n\t\t },\r\n\t\t () => {\r\n\t\t if (sortedByBound.length > 0) {\r\n\t\t var draw = (Math.random() * totalWeight) + 1;\r\n\r\n\t\t var lower = -1;\r\n\t\t var upper = sortedByBound.length;\r\n\t\t while (upper - lower > 1) {\r\n\t\t var index = ((lower + upper) / 2);\r\n\t\t if (sortedByBound[index].bound >= draw) {\r\n\t\t upper = index;\r\n\t\t }\r\n\t\t else {\r\n\t\t lower = index;\r\n\t\t }\r\n\t\t }\r\n\r\n\t\t return (this).yieldReturn(sortedByBound[upper].value);\r\n\t\t }\r\n\r\n\t\t return (this).yieldBreak();\r\n\t\t },\r\n\t\t Functions.Blank);\r\n\t\t });\r\n\t\t }\r\n\t\t */\r\n\t// #endregion\r\n\r\n\tbuffer(size:number):Enumerable\r\n\t{\r\n\t\treturn >super.buffer(size);\r\n\t}\r\n\r\n\t// #region Grouping Methods\r\n\r\n\t// Originally contained a result selector (not common use), but this could be done simply by a select statement after.\r\n\r\n\r\n\tgroupBy(keySelector:Selector):Enumerable>;\r\n\tgroupBy(\r\n\t\tkeySelector:Selector,\r\n\t\telementSelector?:Selector,\r\n\t\tcompareSelector?:Selector):Enumerable>;\r\n\tgroupBy(\r\n\t\tkeySelector:Selector,\r\n\t\telementSelector?:Selector,\r\n\t\tcompareSelector?:Selector):Enumerable>\r\n\t{\r\n\t\tif(!elementSelector) elementSelector = Functions.Identity; // Allow for 'null' and not just undefined.\r\n\t\treturn new Enumerable>(\r\n\t\t\t() => this.toLookup(keySelector, elementSelector, compareSelector)\r\n\t\t\t\t.getEnumerator()\r\n\t\t);\r\n\t}\r\n\r\n\tpartitionBy(keySelector:Selector):Enumerable>;\r\n\tpartitionBy(\r\n\t\tkeySelector:Selector,\r\n\t\telementSelector:Selector,\r\n\t\tresultSelector?:(key:TKey, element:TElement[]) => IGrouping,\r\n\t\tcompareSelector?:Selector):Enumerable>;\r\n\tpartitionBy(\r\n\t\tkeySelector:Selector,\r\n\t\telementSelector?:Selector,\r\n\t\tresultSelector:(key:TKey, element:TElement[]) => IGrouping\r\n\t\t\t= (key:TKey, elements:TElement[]) => new Grouping(key, elements),\r\n\t\tcompareSelector:Selector\r\n\t\t\t= Functions.Identity):Enumerable>|Enumerable>\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\t\tif(!elementSelector) elementSelector = Functions.Identity; // Allow for 'null' and not just undefined.\r\n\t\treturn new Enumerable>(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar key:TKey;\r\n\t\t\t\tvar compareKey:TCompare;\r\n\t\t\t\tvar group:TElement[];\r\n\t\t\t\tvar len:number;\r\n\r\n\t\t\t\treturn new EnumeratorBase>(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tif(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tkey = keySelector(enumerator.current);\r\n\t\t\t\t\t\t\tcompareKey = compareSelector(key);\r\n\t\t\t\t\t\t\tgroup = [elementSelector(enumerator.current)];\r\n\t\t\t\t\t\t\tlen = 1;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\tgroup = null;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(!group)\r\n\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\r\n\t\t\t\t\t\tvar hasNext:boolean, c:T;\r\n\t\t\t\t\t\twhile((hasNext = enumerator.moveNext()))\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tc = enumerator.current;\r\n\t\t\t\t\t\t\tif(compareKey===compareSelector(keySelector(c)))\r\n\t\t\t\t\t\t\t\tgroup[len++] = elementSelector(c);\r\n\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar result:IGrouping\r\n\t\t\t\t\t\t\t = resultSelector(key, group);\r\n\r\n\t\t\t\t\t\tif(hasNext)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tc = enumerator.current;\r\n\t\t\t\t\t\t\tkey = keySelector(c);\r\n\t\t\t\t\t\t\tcompareKey = compareSelector(key);\r\n\t\t\t\t\t\t\tgroup = [elementSelector(c)];\r\n\t\t\t\t\t\t\tlen = 1;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tgroup = null;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn yielder.yieldReturn(result);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t\tgroup = null;\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\t// #region Aggregate Methods\r\n\r\n\taggregate(\r\n\t\tfunc:(a:T, b:T) => T,\r\n\t\tseed?:T):T\r\n\t{\r\n\t\treturn this.scan(func, seed).lastOrDefault();\r\n\t}\r\n\r\n\taverage(selector:Selector = Type.numberOrNaN):number\r\n\t{\r\n\t\tvar count = 0;\r\n\t\tvar sum = this.sum((e, i)=>\r\n\t\t{\r\n\t\t\tcount++;\r\n\t\t\treturn selector(e, i);\r\n\t\t});\r\n\r\n\t\treturn (isNaN(sum) || !count)\r\n\t\t\t? NaN\r\n\t\t\t: (sum/count);\r\n\t}\r\n\r\n\t// If using numbers, it may be useful to call .takeUntil(v=>v==Infinity,true) before calling max. See static versions for numbers.\r\n\tmax():T\r\n\t{\r\n\t\treturn this.aggregate(Functions.Greater);\r\n\t}\r\n\r\n\tmin():T\r\n\t{\r\n\t\treturn this.aggregate(Functions.Lesser);\r\n\t}\r\n\r\n\tmaxBy(keySelector:Selector = Functions.Identity):T\r\n\t{\r\n\t\treturn this.aggregate((a:T, b:T) => (keySelector(a)>keySelector(b)) ? a : b);\r\n\t}\r\n\r\n\tminBy(keySelector:Selector = Functions.Identity):T\r\n\t{\r\n\t\treturn this.aggregate((a:T, b:T) => (keySelector(a) = Type.numberOrNaN):number\r\n\t{\r\n\t\tvar sum = 0;\r\n\r\n\t\t// This allows for infinity math that doesn't destroy the other values.\r\n\t\tvar sumInfinite = 0; // Needs more investigation since we are really trying to retain signs.\r\n\r\n\t\tthis.forEach(\r\n\t\t\tx=>\r\n\t\t\t{\r\n\t\t\t\tvar value = selector(x);\r\n\t\t\t\tif(isNaN(value))\r\n\t\t\t\t{\r\n\t\t\t\t\tsum = NaN;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tif(isFinite(value))\r\n\t\t\t\t\tsum += value;\r\n\t\t\t\telse\r\n\t\t\t\t\tsumInfinite +=\r\n\t\t\t\t\t\tvalue>0 ?\r\n\t\t\t\t\t\t\t(+1) :\r\n\t\t\t\t\t\t\t(-1);\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\treturn isNaN(sum) ? NaN : (sumInfinite ? (sumInfinite*Infinity) : sum);\r\n\t}\r\n\r\n\t// Multiplication...\r\n\tproduct(selector:Selector = Type.numberOrNaN):number\r\n\t{\r\n\t\tvar result = 1, exists:boolean = false;\r\n\r\n\t\tthis.forEach(\r\n\t\t\t(x, i)=>\r\n\t\t\t{\r\n\t\t\t\texists = true;\r\n\t\t\t\tvar value = selector(x, i);\r\n\t\t\t\tif(isNaN(value))\r\n\t\t\t\t{\r\n\t\t\t\t\tresult = NaN;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(value==0)\r\n\t\t\t\t{\r\n\t\t\t\t\tresult = 0; // Multiplying by zero will always end in zero.\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Multiplication can never recover from infinity and simply must retain signs.\r\n\t\t\t\t// You could cancel out infinity with 1/infinity but no available representation exists.\r\n\t\t\t\tresult *= value;\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\treturn (exists && isNaN(result)) ? NaN : result;\r\n\t}\r\n\r\n\t/**\r\n\t * Takes the first number and divides it by all following.\r\n\t * @param selector\r\n\t * @returns {number}\r\n\t */\r\n\tquotient(selector:Selector = Type.numberOrNaN):number\r\n\t{\r\n\t\tvar count = 0;\r\n\t\tvar result:number = NaN;\r\n\r\n\t\tthis.forEach(\r\n\t\t\t(x, i)=>\r\n\t\t\t{\r\n\t\t\t\tvar value = selector(x, i);\r\n\t\t\t\tcount++;\r\n\r\n\t\t\t\tif(count===1)\r\n\t\t\t\t{\r\n\t\t\t\t\tresult = value;\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tif(isNaN(value) || value===0 || !isFinite(value))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tresult = NaN;\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tresult /= value;\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\tif(count===1)\r\n\t\t\tresult = NaN;\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\t// #region Single Value Return...\r\n\r\n\tlast():T\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar value:T = undefined;\r\n\t\tvar found:boolean = false;\r\n\t\t_.forEach(\r\n\t\t\tx =>\r\n\t\t\t{\r\n\t\t\t\tfound = true;\r\n\t\t\t\tvalue = x;\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\tif(!found) throw new Error(\"last:No element satisfies the condition.\");\r\n\t\treturn value;\r\n\t}\r\n\r\n\tlastOrDefault(defaultValue:T = null):T\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar value:T = undefined;\r\n\t\tvar found:boolean = false;\r\n\t\t_.forEach(\r\n\t\t\tx=>\r\n\t\t\t{\r\n\t\t\t\tfound = true;\r\n\t\t\t\tvalue = x;\r\n\t\t\t}\r\n\t\t);\r\n\t\treturn (!found) ? defaultValue : value;\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\tshare():Enumerable\r\n\t{\r\n\t\treturn >super.share();\r\n\t}\r\n\r\n\r\n\tcatchError(handler:(e:any)=>void):Enumerable\r\n\t{\r\n\t\treturn >super.catchError(handler);\r\n\t}\r\n\r\n\r\n\tfinallyAction(action:()=>void):Enumerable\r\n\t{\r\n\t\treturn >super.finallyAction(action);\r\n\t}\r\n\r\n\tmemoize():Enumerable\r\n\t{\r\n\t\tvar _ = this, disposed:boolean = !_.throwIfDisposed();\r\n\r\n\t\tvar cache:T[];\r\n\t\tvar enumerator:IEnumerator;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\tif(!enumerator)\r\n\t\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tif(!cache)\r\n\t\t\t\t\t\t\tcache = [];\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\tvar i = index++;\r\n\r\n\t\t\t\t\t\tif(i>=cache.length)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\treturn (enumerator.moveNext())\r\n\t\t\t\t\t\t\t\t? yielder.yieldReturn(cache[i] = enumerator.current)\r\n\t\t\t\t\t\t\t\t: false;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn yielder.yieldReturn(cache[i]);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t\tif(cache)\r\n\t\t\t\t\tcache.length = 0;\r\n\t\t\t\tcache = null;\r\n\r\n\t\t\t\tdispose(enumerator);\r\n\t\t\t\tenumerator = null;\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\r\n}\r\n\r\n\r\n// Provided for type guarding.\r\nexport class FiniteEnumerable\r\nextends Enumerable\r\n{\r\n\tconstructor(\r\n\t\tenumeratorFactory:() => IEnumerator,\r\n\t\tfinalizer?:() => void)\r\n\t{\r\n\t\tsuper(enumeratorFactory, finalizer, false);\r\n\t}\r\n\r\n}\r\n\r\nclass ArrayEnumerable\r\nextends FiniteEnumerable\r\n{\r\n\tprivate _source:IArray;\r\n\r\n\tconstructor(source:IArray)\r\n\t{\r\n\t\tsuper(() =>\r\n\t\t{\r\n\t\t\t_.throwIfDisposed();\r\n\t\t\treturn new ArrayEnumerator(() =>\r\n\t\t\t{\r\n\t\t\t\t_.throwIfDisposed(\"The underlying ArrayEnumerable was disposed.\", \"ArrayEnumerator\");\r\n\r\n\t\t\t\treturn _._source; // Should never be null, but ArrayEnumerable if not disposed simply treats null as empty array.\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tvar _ = this;\r\n\t\t_._disposableObjectName = \"ArrayEnumerable\";\r\n\t\t_._source = source;\r\n\r\n\t}\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis._source = null;\r\n\t}\r\n\r\n\tget source():IArray\r\n\t{\r\n\t\treturn this._source;\r\n\t}\r\n\r\n\ttoArray():T[]\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\treturn toArray(_._source);\r\n\t}\r\n\r\n\tasEnumerable():ArrayEnumerable\r\n\t{\r\n\t\treturn new ArrayEnumerable(this._source);\r\n\t}\r\n\r\n\t// Optimize forEach so that subsequent usage is optimized.\r\n\tforEach(action:Predicate | Action):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tforEach(_._source, action);\r\n\t}\r\n\r\n\t// These methods should ALWAYS check for array length before attempting anything.\r\n\r\n\tany(predicate?:Predicate):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar source = _._source, len = source.length;\r\n\t\treturn len && (!predicate || super.any(predicate));\r\n\t}\r\n\r\n\tcount(predicate?:Predicate):number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar source = _._source, len = source.length;\r\n\t\treturn len && (predicate ? super.count(predicate) : len);\r\n\t}\r\n\r\n\telementAtOrDefault(index:number, defaultValue:T = null):T\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\tInteger.assertZeroOrGreater(index, 'index');\r\n\r\n\t\tvar source = _._source;\r\n\t\treturn index\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\r\n\t\tif(!(count>0))\r\n\t\t\treturn _;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() => new ArrayEnumerator(() => _._source, count)\r\n\t\t);\r\n\t}\r\n\r\n\ttakeExceptLast(count:number = 1):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn _.take(_._source.length - count);\r\n\t}\r\n\r\n\tskipToLast(count:number):Enumerable\r\n\t{\r\n\t\tif(!(count>0))\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\tvar _ = this;\r\n\t\tif(!isFinite(count))\r\n\t\t\treturn _;\r\n\r\n\t\tvar len = _._source\r\n\t\t\t? _._source.length\r\n\t\t\t: 0;\r\n\r\n\t\treturn _.skip(len - count);\r\n\t}\r\n\r\n\treverse():Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() => new ArrayEnumerator(\r\n\t\t\t\t() => _._source, _._source\r\n\t\t\t\t\t? (_._source.length - 1)\r\n\t\t\t\t\t: 0, -1\r\n\t\t\t)\r\n\t\t);\r\n\t}\r\n\r\n\tmemoize():ArrayEnumerable\r\n\t{\r\n\t\treturn this.asEnumerable();\r\n\t}\r\n\r\n\tsequenceEqual(\r\n\t\tsecond:IEnumerableOrArray,\r\n\t\tequalityComparer:EqualityComparison = Values.areEqual):boolean\r\n\t{\r\n\t\tif(Type.isArrayLike(second))\r\n\t\t\treturn Arrays.areEqual(this.source, second, true, equalityComparer);\r\n\r\n\t\tif(second instanceof ArrayEnumerable)\r\n\t\t\treturn second.sequenceEqual(this.source, equalityComparer);\r\n\r\n\t\treturn super.sequenceEqual(second, equalityComparer);\r\n\t}\r\n\r\n\r\n\ttoJoinedString(separator:string = \"\", selector:Selector = Functions.Identity)\r\n\t{\r\n\t\tvar s = this._source;\r\n\t\treturn !selector && Array.isArray(s)\r\n\t\t\t? (>s).join(separator)\r\n\t\t\t: super.toJoinedString(separator, selector);\r\n\t}\r\n\r\n}\r\n\r\n\r\nexport interface IGrouping\r\nextends Enumerable\r\n{\r\n\tkey:TKey;\r\n}\r\n\r\nclass Grouping\r\nextends ArrayEnumerable implements IGrouping\r\n{\r\n\r\n\tconstructor(private _groupKey:TKey, elements:TElement[])\r\n\t{\r\n\t\tsuper(elements);\r\n\t}\r\n\r\n\tget key():TKey\r\n\t{\r\n\t\treturn this._groupKey;\r\n\t}\r\n}\r\n\r\n\r\nexport interface ILookup\r\nextends IEnumerable>\r\n{\r\n\tcount:number;\r\n\tget(key:TKey):TElement[];\r\n\tcontains(key:TKey):boolean;\r\n}\r\n\r\nclass Lookup\r\nimplements ILookup\r\n{\r\n\r\n\tconstructor(private _dictionary:Dictionary)\r\n\t{\r\n\t}\r\n\r\n\tget count():number\r\n\t{\r\n\t\treturn this._dictionary.count;\r\n\t}\r\n\r\n\tget(key:TKey):TElement[]\r\n\t{\r\n\t\treturn this._dictionary.getValue(key);\r\n\t}\r\n\r\n\tcontains(key:TKey):boolean\r\n\t{\r\n\t\treturn this._dictionary.containsKey(key);\r\n\t}\r\n\r\n\tgetEnumerator():IEnumerator>\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\t\tvar enumerator:IEnumerator>;\r\n\r\n\t\treturn new EnumeratorBase>(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tenumerator = _._dictionary.getEnumerator();\r\n\t\t\t},\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\r\n\t\t\t\tif(!enumerator.moveNext())\r\n\t\t\t\t\treturn false;\r\n\r\n\t\t\t\tvar current = enumerator.current;\r\n\r\n\t\t\t\treturn yielder.yieldReturn(new Grouping(current.key, current.value));\r\n\t\t\t},\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdispose(enumerator);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n}\r\n\r\n\r\nexport interface IOrderedEnumerable\r\nextends FiniteEnumerable\r\n{\r\n\tthenBy(keySelector:(value:T) => any):IOrderedEnumerable;\r\n\tthenByDescending(keySelector:(value:T) => any):IOrderedEnumerable;\r\n\tthenUsing(comparison:Comparison):IOrderedEnumerable;\r\n\tthenUsingReversed(comparison:Comparison):IOrderedEnumerable\r\n}\r\n\r\nclass OrderedEnumerable\r\nextends FiniteEnumerable implements IOrderedEnumerable\r\n{\r\n\r\n\tconstructor(\r\n\t\tprivate source:IEnumerable,\r\n\t\tpublic keySelector:(value:T) => TOrderBy,\r\n\t\tpublic order:Order,\r\n\t\tpublic parent?:OrderedEnumerable,\r\n\t\tpublic comparer:Comparison = Values.compare)\r\n\t{\r\n\t\tsuper(null);\r\n\t\tthrowIfEndless(source && source.isEndless);\r\n\t}\r\n\r\n\tprivate createOrderedEnumerable(\r\n\t\tkeySelector:(value:T) => TOrderBy,\r\n\t\torder:Order):IOrderedEnumerable\r\n\t{\r\n\t\treturn new OrderedEnumerable(this.source, keySelector, order, this);\r\n\t}\r\n\r\n\tthenBy(keySelector:(value:T) => TOrderBy):IOrderedEnumerable\r\n\t{\r\n\t\treturn this.createOrderedEnumerable(keySelector, Order.Ascending);\r\n\t}\r\n\r\n\tthenUsing(comparison:Comparison):IOrderedEnumerable\r\n\t{\r\n\t\treturn new OrderedEnumerable(this.source, null, Order.Ascending, this, comparison);\r\n\t}\r\n\r\n\tthenByDescending(keySelector:(value:T) => TOrderBy):IOrderedEnumerable\r\n\t{\r\n\t\treturn this.createOrderedEnumerable(keySelector, Order.Descending);\r\n\t}\r\n\r\n\tthenUsingReversed(comparison:Comparison):IOrderedEnumerable\r\n\t{\r\n\t\treturn new OrderedEnumerable(this.source, null, Order.Descending, this, comparison);\r\n\t}\r\n\r\n\tgetEnumerator():EnumeratorBase\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar buffer:T[];\r\n\t\tvar indexes:number[];\r\n\t\tvar index:number = 0;\r\n\r\n\t\treturn new EnumeratorBase(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tindex = 0;\r\n\t\t\t\tbuffer = Enumerable.toArray(_.source);\r\n\t\t\t\tindexes = createSortContext(_).generateSortedIndexes(buffer);\r\n\t\t\t},\r\n\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\t\t\t\treturn (index\r\n\t\t\t{\r\n\t\t\t\tif(buffer)\r\n\t\t\t\t\tbuffer.length = 0;\r\n\t\t\t\tbuffer = null;\r\n\t\t\t\tif(indexes)\r\n\t\t\t\t\tindexes.length = 0;\r\n\t\t\t\tindexes = null;\r\n\t\t\t},\r\n\r\n\t\t\tfalse\r\n\t\t);\r\n\t}\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis.source = null;\r\n\t\tthis.keySelector = null;\r\n\t\tthis.order = null;\r\n\t\tthis.parent = null;\r\n\t}\r\n\r\n}\r\n\r\n// A private static helper for the weave function.\r\nfunction nextEnumerator(queue:Queue>, e:IEnumerator):IEnumerator\r\n{\r\n\tif(e)\r\n\t{\r\n\t\tif(e.moveNext())\r\n\t\t{\r\n\t\t\tqueue.enqueue(e);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tdispose(e);\r\n\t\t\te = null;\r\n\t\t}\r\n\t}\r\n\treturn e;\r\n}\r\n\r\n/**\r\n * Recursively builds a SortContext chain.\r\n * @param orderedEnumerable\r\n * @param currentContext\r\n * @returns {any}\r\n */\r\nfunction createSortContext(\r\n\torderedEnumerable:OrderedEnumerable,\r\n\tcurrentContext:IComparer = null):KeySortedContext\r\n{\r\n\r\n\tvar context = new KeySortedContext(\r\n\t\tcurrentContext,\r\n\t\torderedEnumerable.keySelector,\r\n\t\torderedEnumerable.order,\r\n\t\torderedEnumerable.comparer);\r\n\r\n\tif(orderedEnumerable.parent)\r\n\t\treturn createSortContext(orderedEnumerable.parent, context);\r\n\r\n\treturn context;\r\n}\r\n\r\n// #region Helper Functions...\r\n// This allows for the use of a boolean instead of calling this.throwIfDisposed()\r\n// since there is a strong chance of introducing a circular reference.\r\nfunction throwIfDisposed(disposed:boolean):void\r\n{\r\n\tif(disposed) throw new ObjectDisposedException(\"Enumerable\");\r\n}\r\n// #endregion\r\n\r\nexport default Enumerable;\r\n"]} \ No newline at end of file diff --git a/dist/commonjs/System/Collections/Array/Compare.d.ts b/dist/commonjs/System/Collections/Array/Compare.d.ts index 2ce82c2d..84dc3239 100644 --- a/dist/commonjs/System/Collections/Array/Compare.d.ts +++ b/dist/commonjs/System/Collections/Array/Compare.d.ts @@ -1,11 +1,11 @@ -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { Primitive } from "../../Primitive"; +import { EqualityComparison, Comparison } from "../../FunctionTypes"; +import { IArray } from "./IArray"; +import { IComparable } from "../../IComparable"; export declare function areAllEqual(arrays: any[][], strict?: boolean, equalityComparer?: EqualityComparison): boolean; export declare function areEqual(a: IArray, b: IArray, strict?: boolean, equalityComparer?: EqualityComparison): boolean; export declare function areEquivalent(a: IArray, b: IArray): boolean; diff --git a/dist/commonjs/System/Collections/Array/Compare.js b/dist/commonjs/System/Collections/Array/Compare.js index 31413210..bca7b08d 100644 --- a/dist/commonjs/System/Collections/Array/Compare.js +++ b/dist/commonjs/System/Collections/Array/Compare.js @@ -30,7 +30,7 @@ function areEqual(a, b, strict) { var equalityComparer = arguments.length <= 3 || arguments[3] === undefined ? Values.areEqual : arguments[3]; var len = validateSize(a, b); - if (Types_1.default.isBoolean(len)) return len; + if (Types_1.Type.isBoolean(len)) return len; for (var i = 0; i < len; i++) { if (!equalityComparer(a[i], b[i], strict)) return false; } @@ -47,14 +47,15 @@ function sort(a, comparer) { } for (var i = 0; i < len; i++) { b[i] = a[i]; - }b.sort(comparer); + } + b.sort(comparer); return b; } function areEquivalent(a, b) { var comparer = arguments.length <= 2 || arguments[2] === undefined ? Values.compare : arguments[2]; var len = validateSize(a, b); - if (Types_1.default.isBoolean(len)) return len; + if (Types_1.Type.isBoolean(len)) return len; a = sort(a, comparer); b = sort(b, comparer); for (var i = 0; i < len; i++) { diff --git a/dist/commonjs/System/Collections/Array/Compare.js.map b/dist/commonjs/System/Collections/Array/Compare.js.map index 7e73ac95..e1c505d2 100644 --- a/dist/commonjs/System/Collections/Array/Compare.js.map +++ b/dist/commonjs/System/Collections/Array/Compare.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Array/Compare.js","System/Collections/Array/Compare.ts"],"names":[],"mappings":"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","file":"System/Collections/Array/Compare.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst Values = require(\"../../Compare\");\nconst Types_1 = require(\"../../Types\");\nfunction validateSize(a, b) {\n if (a && b && a === b || !a && !b)\n return true;\n if (!a || !b)\n return false;\n var len = a.length;\n if (len !== b.length)\n return false;\n if (len === 0)\n return true;\n return len;\n}\nfunction areAllEqual(arrays, strict, equalityComparer = Values.areEqual) {\n if (!arrays)\n throw new Error(\"ArgumentNullException: 'arrays' cannot be null.\");\n if (arrays.length < 2)\n throw new Error(\"Cannot compare a set of arrays less than 2.\");\n var first = arrays[0];\n for (let i = 0, l = arrays.length; i < l; i++) {\n if (!areEqual(first, arrays[i], strict, equalityComparer))\n return false;\n }\n return true;\n}\nexports.areAllEqual = areAllEqual;\nfunction areEqual(a, b, strict, equalityComparer = Values.areEqual) {\n var len = validateSize(a, b);\n if (Types_1.default.isBoolean(len))\n return len;\n for (let i = 0; i < len; i++) {\n if (!equalityComparer(a[i], b[i], strict))\n return false;\n }\n return true;\n}\nexports.areEqual = areEqual;\nfunction sort(a, comparer) {\n if (!a || a.length < 2)\n return a;\n var len = a.length, b;\n if (len > 65536)\n b = new Array(len);\n else {\n b = [];\n b.length = len;\n }\n for (let i = 0; i < len; i++)\n b[i] = a[i];\n b.sort(comparer);\n return b;\n}\nfunction areEquivalent(a, b, comparer = Values.compare) {\n var len = validateSize(a, b);\n if (Types_1.default.isBoolean(len))\n return len;\n a = sort(a, comparer);\n b = sort(b, comparer);\n for (let i = 0; i < len; i++) {\n if (comparer(a[i], b[i]) !== 0)\n return false;\n }\n return true;\n}\nexports.areEquivalent = areEquivalent;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n///\r\nimport * as Values from \"../../Compare\";\r\nimport Type from \"../../Types\";\r\n\r\n/* validateSize: Utility for quick validation/invalidation of array equality.\r\n\tWhy this way? Why not pass a closure for the last return?\r\n\tReason: Performance and avoiding the creation of new functions/closures. */\r\nfunction validateSize(a:IArray, b:IArray):any\r\n{\r\n\t// Both valid and are same object, or both are null/undefined.\r\n\tif(a && b && a===b || !a && !b)\r\n\t\treturn true;\r\n\r\n\t// At this point, at least one has to be non-null.\r\n\tif(!a || !b)\r\n\t\treturn false;\r\n\r\n\tvar len = a.length;\r\n\tif(len!==b.length)\r\n\t\treturn false;\r\n\r\n\t// If both are arrays and have zero length, they are equal.\r\n\tif(len===0)\r\n\t\treturn true;\r\n\r\n\t// Return the length for downstream processing.\r\n\treturn len;\r\n}\r\n\r\nexport function areAllEqual(\r\n\tarrays:any[][],\r\n\tstrict?:boolean,\r\n\tequalityComparer:EqualityComparison = Values.areEqual):boolean\r\n{\r\n\tif(!arrays)\r\n\t\tthrow new Error(\"ArgumentNullException: 'arrays' cannot be null.\");\r\n\tif(arrays.length<2)\r\n\t\tthrow new Error(\"Cannot compare a set of arrays less than 2.\");\r\n\tvar first = arrays[0];\r\n\tfor(let i = 0, l = arrays.length; i(\r\n\ta:IArray, b:IArray,\r\n\tstrict?:boolean,\r\n\tequalityComparer:EqualityComparison = Values.areEqual):boolean\r\n{\r\n\tvar len = validateSize(a, b);\r\n\tif(Type.isBoolean(len)) return len;\r\n\r\n\tfor(let i = 0; i(a:IArray, comparer:Comparison):IArray\r\n{\r\n\tif(!a || a.length<2) return a;\r\n\r\n\tvar len = a.length, b:T[];\r\n\tif(len>65536)\r\n\t\tb = new Array(len);\r\n\telse {\r\n\t\tb = [];\r\n\t\tb.length = len;\r\n\t}\r\n\tfor(let i = 0; i(a:IArray, b:IArray):boolean;\r\nexport function areEquivalent(a:IArray>, b:IArray>):boolean;\r\nexport function areEquivalent(a:IArray, b:IArray, comparer:Comparison):boolean;\r\nexport function areEquivalent(\r\n\ta:IArray, b:IArray,\r\n\tcomparer:Comparison = Values.compare):boolean\r\n{\r\n\tvar len = validateSize(a, b);\r\n\tif(Type.isBoolean(len)) return len;\r\n\r\n\t// There might be a better more performant way to do this, but for the moment, this\r\n\t// works quite well.\r\n\ta = sort(a, comparer);\r\n\tb = sort(b, comparer);\r\n\r\n\tfor(let i = 0; i 65536)\n b = new Array(len);\n else {\n b = [];\n b.length = len;\n }\n for (let i = 0; i < len; i++) {\n b[i] = a[i];\n }\n b.sort(comparer);\n return b;\n}\nfunction areEquivalent(a, b, comparer = Values.compare) {\n var len = validateSize(a, b);\n if (Types_1.Type.isBoolean(len))\n return len;\n a = sort(a, comparer);\n b = sort(b, comparer);\n for (let i = 0; i < len; i++) {\n if (comparer(a[i], b[i]) !== 0)\n return false;\n }\n return true;\n}\nexports.areEquivalent = areEquivalent;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport * as Values from \"../../Compare\";\r\nimport {Type} from \"../../Types\";\r\nimport {Primitive} from \"../../Primitive\";\r\nimport {EqualityComparison, Comparison} from \"../../FunctionTypes\";\r\nimport {IArray} from \"./IArray\";\r\nimport {IComparable} from \"../../IComparable\";\r\n\r\n/* validateSize: Utility for quick validation/invalidation of array equality.\r\n\tWhy this way? Why not pass a closure for the last return?\r\n\tReason: Performance and avoiding the creation of new functions/closures. */\r\nfunction validateSize(a:IArray, b:IArray):any\r\n{\r\n\t// Both valid and are same object, or both are null/undefined.\r\n\tif(a && b && a===b || !a && !b)\r\n\t\treturn true;\r\n\r\n\t// At this point, at least one has to be non-null.\r\n\tif(!a || !b)\r\n\t\treturn false;\r\n\r\n\tvar len = a.length;\r\n\tif(len!==b.length)\r\n\t\treturn false;\r\n\r\n\t// If both are arrays and have zero length, they are equal.\r\n\tif(len===0)\r\n\t\treturn true;\r\n\r\n\t// Return the length for downstream processing.\r\n\treturn len;\r\n}\r\n\r\nexport function areAllEqual(\r\n\tarrays:any[][],\r\n\tstrict?:boolean,\r\n\tequalityComparer:EqualityComparison = Values.areEqual):boolean\r\n{\r\n\tif(!arrays)\r\n\t\tthrow new Error(\"ArgumentNullException: 'arrays' cannot be null.\");\r\n\tif(arrays.length<2)\r\n\t\tthrow new Error(\"Cannot compare a set of arrays less than 2.\");\r\n\tvar first = arrays[0];\r\n\tfor(let i = 0, l = arrays.length; i(\r\n\ta:IArray, b:IArray,\r\n\tstrict?:boolean,\r\n\tequalityComparer:EqualityComparison = Values.areEqual):boolean\r\n{\r\n\tvar len = validateSize(a, b);\r\n\tif(Type.isBoolean(len)) return len;\r\n\r\n\tfor(let i = 0; i(a:IArray, comparer:Comparison):IArray\r\n{\r\n\tif(!a || a.length<2) return a;\r\n\r\n\tvar len = a.length, b:T[];\r\n\tif(len>65536)\r\n\t\tb = new Array(len);\r\n\telse\r\n\t{\r\n\t\tb = [];\r\n\t\tb.length = len;\r\n\t}\r\n\tfor(let i = 0; i(a:IArray, b:IArray):boolean;\r\nexport function areEquivalent(a:IArray>, b:IArray>):boolean;\r\nexport function areEquivalent(a:IArray, b:IArray, comparer:Comparison):boolean;\r\nexport function areEquivalent(\r\n\ta:IArray, b:IArray,\r\n\tcomparer:Comparison = Values.compare):boolean\r\n{\r\n\tvar len = validateSize(a, b);\r\n\tif(Type.isBoolean(len)) return len;\r\n\r\n\t// There might be a better more performant way to do this, but for the moment, this\r\n\t// works quite well.\r\n\ta = sort(a, comparer);\r\n\tb = sort(b, comparer);\r\n\r\n\tfor(let i = 0; i -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { IArray } from "./IArray"; export interface DispatchErrorHandler { (ex?: any, i?: number): void; } diff --git a/dist/commonjs/System/Collections/Array/Dispatch.js b/dist/commonjs/System/Collections/Array/Dispatch.js index a383d26f..8a90bf36 100644 --- a/dist/commonjs/System/Collections/Array/Dispatch.js +++ b/dist/commonjs/System/Collections/Array/Dispatch.js @@ -15,7 +15,7 @@ function unsafe(listeners, payload, trap) { try { fn(payload); } catch (ex) { - if (!trap) throw ex;else if (Types_1.default.isFunction(trap)) trap(ex, i); + if (!trap) throw ex;else if (Types_1.Type.isFunction(trap)) trap(ex, i); } } } @@ -31,7 +31,7 @@ function mapped(listeners, payload, trap) { result[i] = fn ? fn(payload) : VOID0; } catch (ex) { result[i] = VOID0; - if (!trap) throw ex;else if (Types_1.default.isFunction(trap)) trap(ex, i); + if (!trap) throw ex;else if (Types_1.Type.isFunction(trap)) trap(ex, i); } } } diff --git a/dist/commonjs/System/Collections/Array/Dispatch.js.map b/dist/commonjs/System/Collections/Array/Dispatch.js.map index 3f34d48d..01b0e84e 100644 --- a/dist/commonjs/System/Collections/Array/Dispatch.js.map +++ b/dist/commonjs/System/Collections/Array/Dispatch.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Array/Dispatch.js","System/Collections/Array/Dispatch.ts"],"names":[],"mappings":";;;;AAIA;;ACGA,IAAA,UAAA,QAAiB,aAAjB,CAAA;AACA,IAAA,YAAA,QAAmB,WAAnB,CAAA;AAEA,IAAM,QAAY,KAAK,CAAL;AA4BlB,SAAA,MAAA,CACC,SADD,EAEC,OAFD,EAEY,IAFZ,EAE8C;AAE7C,QAAG,aAAa,UAAU,MAAV,EAChB;AACC,aAAI,IAAI,IAAI,CAAJ,EAAO,MAAM,UAAU,MAAV,EAAkB,IAAE,GAAF,EAAO,GAA9C,EACA;AACC,gBAAI,KAAc,UAAU,CAAV,CAAd,CADL;AAEC,gBAAG,CAAC,EAAD,EAAK,SAAR;AACA,gBACA;AACC,mBAAG,OAAH,EADD;aADA,CAIA,OAAM,EAAN,EACA;AACC,oBAAG,CAAC,IAAD,EACF,MAAM,EAAN,CADD,KAEK,IAAG,QAAA,OAAA,CAAK,UAAL,CAAgB,IAAhB,CAAH,EACJ,KAAK,EAAL,EAAS,CAAT,EADI;aAJN;SARD;KAFD;CAJD;AAAgB,QAAA,MAAA,GAAM,MAAN;AAkChB,SAAA,MAAA,CACC,SADD,EAEC,OAFD,EAEY,IAFZ,EAE8C;AAG7C,QAAG,CAAC,SAAD,EAAY,OAAO,IAAP,CAAf;AAEA,QAAI,SAAe,UAAA,IAAA,CAAK,SAAL,CAAf,CALyC;AAM7C,QAAG,UAAU,MAAV,EACH;AAEC,aAAI,IAAI,IAAI,CAAJ,EAAO,MAAM,OAAO,MAAP,EAAe,IAAE,GAAF,EAAO,GAA3C,EACA;AACC,gBAAI,KAAc,OAAO,CAAP,CAAd,CADL;AAEC,gBACA;AACC,uBAAO,CAAP,IAAY,KACT,GAAG,OAAH,CADS,GAET,KAFS,CADb;aADA,CAMA,OAAM,EAAN,EACA;AACC,uBAAO,CAAP,IAAY,KAAZ,CADD;AAEC,oBAAG,CAAC,IAAD,EACF,MAAM,EAAN,CADD,KAEK,IAAG,QAAA,OAAA,CAAK,UAAL,CAAgB,IAAhB,CAAH,EACJ,KAAK,EAAL,EAAS,CAAT,EADI;aALN;SATD;KAHD;AAuBA,WAAO,MAAP,CA7B6C;CAF9C;AAAgB,QAAA,MAAA,GAAM,MAAN;AA2ChB,SAAA,QAAA,CACC,SADD,EAEC,OAFD,EAEY,IAFZ,EAE8C;AAE7C,WAAO,UAAA,IAAA,CAAK,SAAL,CAAP,EAAwB,OAAxB,EAAiC,IAAjC,EAF6C;CAF9C;AAAgB,QAAA,QAAA,GAAQ,QAAR;AAOhB,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADlEA,QAAQ,OAAR,GCkEe,QDlEf","file":"System/Collections/Array/Dispatch.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst Types_1 = require(\"../../Types\");\nconst Utility_1 = require(\"./Utility\");\nconst VOID0 = void (0);\nfunction unsafe(listeners, payload, trap) {\n if (listeners && listeners.length) {\n for (let i = 0, len = listeners.length; i < len; i++) {\n let fn = listeners[i];\n if (!fn)\n continue;\n try {\n fn(payload);\n }\n catch (ex) {\n if (!trap)\n throw ex;\n else if (Types_1.default.isFunction(trap))\n trap(ex, i);\n }\n }\n }\n}\nexports.unsafe = unsafe;\nfunction mapped(listeners, payload, trap) {\n if (!listeners)\n return null;\n var result = Utility_1.copy(listeners);\n if (listeners.length) {\n for (let i = 0, len = result.length; i < len; i++) {\n let fn = result[i];\n try {\n result[i] = fn\n ? fn(payload)\n : VOID0;\n }\n catch (ex) {\n result[i] = VOID0;\n if (!trap)\n throw ex;\n else if (Types_1.default.isFunction(trap))\n trap(ex, i);\n }\n }\n }\n return result;\n}\nexports.mapped = mapped;\nfunction dispatch(listeners, payload, trap) {\n unsafe(Utility_1.copy(listeners), payload, trap);\n}\nexports.dispatch = dispatch;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = dispatch;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\nimport Type from \"../../Types\";\r\nimport {copy} from \"./Utility\";\r\n\r\nconst VOID0:any = void(0);\r\n\r\nexport interface DispatchErrorHandler\r\n{\r\n\t(ex?:any, i?:number):void;\r\n}\r\n\r\n/**\r\n * Simply takes a payload and passes it to all the listeners.\r\n *\r\n * While dispatching:\r\n * * This is an unsafe method if by chance any of the listeners modify the array.\r\n * * It cannot prevent changes to the payload.\r\n *\r\n * Improving safety:\r\n * * Only use a local array that isn't exposed to the listeners.\r\n * * Use the dispatch method instead as it makes a copy of the listeners array.\r\n * * Freeze the listeners array so it can't be modified.\r\n * * Freeze the payload.\r\n *\r\n * Specifying trap will catch any errors and pass them along if trap is a function.\r\n * A payload is used instead of arguments for easy typing.\r\n *\r\n *\r\n * @param listeners\r\n * @param payload\r\n * @param trap\r\n */\r\nexport function unsafe(\r\n\tlisteners:IArray<(payload:T)=>any>,\r\n\tpayload:T, trap?:boolean|DispatchErrorHandler):void\r\n{\r\n\tif(listeners && listeners.length)\r\n\t{\r\n\t\tfor(let i = 0, len = listeners.length; i(\r\n\tlisteners:IArray<(payload:T)=>TResult>,\r\n\tpayload:T, trap?:boolean|DispatchErrorHandler):TResult[]\r\n{\r\n\r\n\tif(!listeners) return null;\r\n\t// Reuse the copy as the array result.\r\n\tvar result:any[] = copy(listeners);\r\n\tif(listeners.length)\r\n\t{\r\n\r\n\t\tfor(let i = 0, len = result.length; i(\r\n\tlisteners:IArray<(payload:T)=>any>,\r\n\tpayload:T, trap?:boolean|DispatchErrorHandler):void\r\n{\r\n\tunsafe(copy(listeners), payload, trap);\r\n}\r\n\r\nexport default dispatch;"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Array/Dispatch.js","System/Collections/Array/Dispatch.ts"],"names":[],"mappings":";;;;AAIA;;ACCA,IAAA,UAAA,QAAmB,aAAnB,CAAA;AACA,IAAA,YAAA,QAAmB,WAAnB,CAAA;AAGA,IAAM,QAAY,KAAK,CAAL;AA4BlB,SAAA,MAAA,CACC,SADD,EAEC,OAFD,EAEY,IAFZ,EAE8C;AAE7C,QAAG,aAAa,UAAU,MAAV,EAChB;AACC,aAAI,IAAI,IAAI,CAAJ,EAAO,MAAM,UAAU,MAAV,EAAkB,IAAE,GAAF,EAAO,GAA9C,EACA;AACC,gBAAI,KAAc,UAAU,CAAV,CAAd,CADL;AAEC,gBAAG,CAAC,EAAD,EAAK,SAAR;AACA,gBACA;AACC,mBAAG,OAAH,EADD;aADA,CAIA,OAAM,EAAN,EACA;AACC,oBAAG,CAAC,IAAD,EACF,MAAM,EAAN,CADD,KAEK,IAAG,QAAA,IAAA,CAAK,UAAL,CAAgB,IAAhB,CAAH,EACJ,KAAK,EAAL,EAAS,CAAT,EADI;aAJN;SARD;KAFD;CAJD;AAAgB,QAAA,MAAA,GAAM,MAAN;AAkChB,SAAA,MAAA,CACC,SADD,EAEC,OAFD,EAEY,IAFZ,EAE8C;AAG7C,QAAG,CAAC,SAAD,EAAY,OAAO,IAAP,CAAf;AAEA,QAAI,SAAe,UAAA,IAAA,CAAK,SAAL,CAAf,CALyC;AAM7C,QAAG,UAAU,MAAV,EACH;AAEC,aAAI,IAAI,IAAI,CAAJ,EAAO,MAAM,OAAO,MAAP,EAAe,IAAE,GAAF,EAAO,GAA3C,EACA;AACC,gBAAI,KAAc,OAAO,CAAP,CAAd,CADL;AAEC,gBACA;AACC,uBAAO,CAAP,IAAY,KACT,GAAG,OAAH,CADS,GAET,KAFS,CADb;aADA,CAMA,OAAM,EAAN,EACA;AACC,uBAAO,CAAP,IAAY,KAAZ,CADD;AAEC,oBAAG,CAAC,IAAD,EACF,MAAM,EAAN,CADD,KAEK,IAAG,QAAA,IAAA,CAAK,UAAL,CAAgB,IAAhB,CAAH,EACJ,KAAK,EAAL,EAAS,CAAT,EADI;aALN;SATD;KAHD;AAuBA,WAAO,MAAP,CA7B6C;CAF9C;AAAgB,QAAA,MAAA,GAAM,MAAN;AA2ChB,SAAA,QAAA,CACC,SADD,EAEC,OAFD,EAEY,IAFZ,EAE8C;AAE7C,WAAO,UAAA,IAAA,CAAK,SAAL,CAAP,EAAwB,OAAxB,EAAiC,IAAjC,EAF6C;CAF9C;AAAgB,QAAA,QAAA,GAAQ,QAAR;AAOhB,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADjEA,QAAQ,OAAR,GCiEe,QDjEf","file":"System/Collections/Array/Dispatch.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst Types_1 = require(\"../../Types\");\nconst Utility_1 = require(\"./Utility\");\nconst VOID0 = void (0);\nfunction unsafe(listeners, payload, trap) {\n if (listeners && listeners.length) {\n for (let i = 0, len = listeners.length; i < len; i++) {\n let fn = listeners[i];\n if (!fn)\n continue;\n try {\n fn(payload);\n }\n catch (ex) {\n if (!trap)\n throw ex;\n else if (Types_1.Type.isFunction(trap))\n trap(ex, i);\n }\n }\n }\n}\nexports.unsafe = unsafe;\nfunction mapped(listeners, payload, trap) {\n if (!listeners)\n return null;\n var result = Utility_1.copy(listeners);\n if (listeners.length) {\n for (let i = 0, len = result.length; i < len; i++) {\n let fn = result[i];\n try {\n result[i] = fn\n ? fn(payload)\n : VOID0;\n }\n catch (ex) {\n result[i] = VOID0;\n if (!trap)\n throw ex;\n else if (Types_1.Type.isFunction(trap))\n trap(ex, i);\n }\n }\n }\n return result;\n}\nexports.mapped = mapped;\nfunction dispatch(listeners, payload, trap) {\n unsafe(Utility_1.copy(listeners), payload, trap);\n}\nexports.dispatch = dispatch;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = dispatch;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {Type} from \"../../Types\";\r\nimport {copy} from \"./Utility\";\r\nimport {IArray} from \"./IArray\";\r\n\r\nconst VOID0:any = void(0);\r\n\r\nexport interface DispatchErrorHandler\r\n{\r\n\t(ex?:any, i?:number):void;\r\n}\r\n\r\n/**\r\n * Simply takes a payload and passes it to all the listeners.\r\n *\r\n * While dispatching:\r\n * * This is an unsafe method if by chance any of the listeners modify the array.\r\n * * It cannot prevent changes to the payload.\r\n *\r\n * Improving safety:\r\n * * Only use a local array that isn't exposed to the listeners.\r\n * * Use the dispatch method instead as it makes a copy of the listeners array.\r\n * * Freeze the listeners array so it can't be modified.\r\n * * Freeze the payload.\r\n *\r\n * Specifying trap will catch any errors and pass them along if trap is a function.\r\n * A payload is used instead of arguments for easy typing.\r\n *\r\n *\r\n * @param listeners\r\n * @param payload\r\n * @param trap\r\n */\r\nexport function unsafe(\r\n\tlisteners:IArray<(payload:T)=>any>,\r\n\tpayload:T, trap?:boolean|DispatchErrorHandler):void\r\n{\r\n\tif(listeners && listeners.length)\r\n\t{\r\n\t\tfor(let i = 0, len = listeners.length; i(\r\n\tlisteners:IArray<(payload:T)=>TResult>,\r\n\tpayload:T, trap?:boolean|DispatchErrorHandler):TResult[]\r\n{\r\n\r\n\tif(!listeners) return null;\r\n\t// Reuse the copy as the array result.\r\n\tvar result:any[] = copy(listeners);\r\n\tif(listeners.length)\r\n\t{\r\n\r\n\t\tfor(let i = 0, len = result.length; i(\r\n\tlisteners:IArray<(payload:T)=>any>,\r\n\tpayload:T, trap?:boolean|DispatchErrorHandler):void\r\n{\r\n\tunsafe(copy(listeners), payload, trap);\r\n}\r\n\r\nexport default dispatch;"]} \ No newline at end of file diff --git a/dist/commonjs/System/Collections/Array/ReadOnlyArrayWrapper.d.ts b/dist/commonjs/System/Collections/Array/ReadOnlyArrayWrapper.d.ts index 88e74cbc..f27159ff 100644 --- a/dist/commonjs/System/Collections/Array/ReadOnlyArrayWrapper.d.ts +++ b/dist/commonjs/System/Collections/Array/ReadOnlyArrayWrapper.d.ts @@ -2,7 +2,8 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import ReadOnlyCollectionBase from "../ReadOnlyCollectionBase"; +import { ReadOnlyCollectionBase } from "../ReadOnlyCollectionBase"; +import { IArray } from "./IArray"; export default class ReadOnlyArrayWrapper extends ReadOnlyCollectionBase { constructor(array: IArray); getValueAt: (index: number) => T; diff --git a/dist/commonjs/System/Collections/Array/ReadOnlyArrayWrapper.js b/dist/commonjs/System/Collections/Array/ReadOnlyArrayWrapper.js index 76b2149f..9716a778 100644 --- a/dist/commonjs/System/Collections/Array/ReadOnlyArrayWrapper.js +++ b/dist/commonjs/System/Collections/Array/ReadOnlyArrayWrapper.js @@ -11,8 +11,8 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var ArgumentNullException_1 = require("../../Exceptions/ArgumentNullException"); -var Enumerator_1 = require("../Enumeration/Enumerator"); var ReadOnlyCollectionBase_1 = require("../ReadOnlyCollectionBase"); +var Enumerator_1 = require("../Enumeration/Enumerator"); var ReadOnlyArrayWrapper = function (_ReadOnlyCollectionBa) { _inherits(ReadOnlyArrayWrapper, _ReadOnlyCollectionBa); @@ -22,7 +22,7 @@ var ReadOnlyArrayWrapper = function (_ReadOnlyCollectionBa) { var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(ReadOnlyArrayWrapper).call(this)); - if (!array) throw new ArgumentNullException_1.default('array'); + if (!array) throw new ArgumentNullException_1.ArgumentNullException('array'); var _ = _this; _._getCount = function () { return array.length; @@ -37,7 +37,7 @@ var ReadOnlyArrayWrapper = function (_ReadOnlyCollectionBa) { } return ReadOnlyArrayWrapper; -}(ReadOnlyCollectionBase_1.default); +}(ReadOnlyCollectionBase_1.ReadOnlyCollectionBase); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = ReadOnlyArrayWrapper; diff --git a/dist/commonjs/System/Collections/Array/ReadOnlyArrayWrapper.js.map b/dist/commonjs/System/Collections/Array/ReadOnlyArrayWrapper.js.map index aa606694..da07fa45 100644 --- a/dist/commonjs/System/Collections/Array/ReadOnlyArrayWrapper.js.map +++ b/dist/commonjs/System/Collections/Array/ReadOnlyArrayWrapper.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Array/ReadOnlyArrayWrapper.js","System/Collections/Array/ReadOnlyArrayWrapper.ts"],"names":[],"mappings":";;;;AAIA;;;;;;;;ACCA,IAAA,0BAAA,QAAkC,wCAAlC,CAAA;AACA,IAAA,eAAA,QAAqC,2BAArC,CAAA;AACA,IAAA,2BAAA,QAAmC,2BAAnC,CAAA;;IAEA;;;AAGC,aAHD,oBAGC,CAAY,KAAZ,EAA2B;8BAH5B,sBAG4B;;2EAH5B,kCAG4B;;AAG1B,YAAG,CAAC,KAAD,EACF,MAAM,IAAI,wBAAA,OAAA,CAAsB,OAA1B,CAAN,CADD;AAGA,YAAI,SAAJ,CAN0B;AAO1B,UAAE,SAAF,GAAc;mBAAM,MAAM,MAAN;SAAN,CAPY;AAQ1B,UAAE,aAAF,GAAkB;mBAAM,aAAA,IAAA,CAAe,KAAf;SAAN,CARQ;AAS1B,UAAE,UAAF,GAAe;mBAAK,MAAM,CAAN;SAAL,CATW;;KAA3B;;WAHD;EAAqD,yBAAA,OAAA;;AAArD,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADWA,QAAQ,OAAR,GAAkB,oBAAlB","file":"System/Collections/Array/ReadOnlyArrayWrapper.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst ArgumentNullException_1 = require(\"../../Exceptions/ArgumentNullException\");\nconst Enumerator_1 = require(\"../Enumeration/Enumerator\");\nconst ReadOnlyCollectionBase_1 = require(\"../ReadOnlyCollectionBase\");\nclass ReadOnlyArrayWrapper extends ReadOnlyCollectionBase_1.default {\n constructor(array) {\n super();\n if (!array)\n throw new ArgumentNullException_1.default('array');\n var _ = this;\n _._getCount = () => array.length;\n _.getEnumerator = () => Enumerator_1.from(array);\n _.getValueAt = i => array[i];\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = ReadOnlyArrayWrapper;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport ArgumentNullException from \"../../Exceptions/ArgumentNullException\";\r\nimport {from as enumeratorFrom} from \"../Enumeration/Enumerator\";\r\nimport ReadOnlyCollectionBase from \"../ReadOnlyCollectionBase\";\r\n\r\nexport default class ReadOnlyArrayWrapper extends ReadOnlyCollectionBase\r\n{\r\n\r\n\tconstructor(array:IArray)\r\n\t{\r\n\t\tsuper();\r\n\t\tif(!array)\r\n\t\t\tthrow new ArgumentNullException('array');\r\n\r\n\t\tvar _ = this;\r\n\t\t_._getCount = () => array.length;\r\n\t\t_.getEnumerator = () => enumeratorFrom(array);\r\n\t\t_.getValueAt = i => array[i];\r\n\t}\r\n\r\n\tgetValueAt:(index:number)=>T;\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Array/ReadOnlyArrayWrapper.js","System/Collections/Array/ReadOnlyArrayWrapper.ts"],"names":[],"mappings":";;;;AAIA;;;;;;;;ACCA,IAAA,0BAAA,QAAoC,wCAApC,CAAA;AACA,IAAA,2BAAA,QAAqC,2BAArC,CAAA;AAEA,IAAA,eAAA,QAAqC,2BAArC,CAAA;;IAEA;;;AAGC,aAHD,oBAGC,CAAY,KAAZ,EAA2B;8BAH5B,sBAG4B;;2EAH5B,kCAG4B;;AAG1B,YAAG,CAAC,KAAD,EACF,MAAM,IAAI,wBAAA,qBAAA,CAAsB,OAA1B,CAAN,CADD;AAGA,YAAI,SAAJ,CAN0B;AAO1B,UAAE,SAAF,GAAc;mBAAM,MAAM,MAAN;SAAN,CAPY;AAQ1B,UAAE,aAAF,GAAkB;mBAAM,aAAA,IAAA,CAAe,KAAf;SAAN,CARQ;AAS1B,UAAE,UAAF,GAAe;mBAAK,MAAM,CAAN;SAAL,CATW;;KAA3B;;WAHD;EAAqD,yBAAA,sBAAA;;AAArD,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADUA,QAAQ,OAAR,GAAkB,oBAAlB","file":"System/Collections/Array/ReadOnlyArrayWrapper.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst ArgumentNullException_1 = require(\"../../Exceptions/ArgumentNullException\");\nconst ReadOnlyCollectionBase_1 = require(\"../ReadOnlyCollectionBase\");\nconst Enumerator_1 = require(\"../Enumeration/Enumerator\");\nclass ReadOnlyArrayWrapper extends ReadOnlyCollectionBase_1.ReadOnlyCollectionBase {\n constructor(array) {\n super();\n if (!array)\n throw new ArgumentNullException_1.ArgumentNullException('array');\n var _ = this;\n _._getCount = () => array.length;\n _.getEnumerator = () => Enumerator_1.from(array);\n _.getValueAt = i => array[i];\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = ReadOnlyArrayWrapper;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {ArgumentNullException} from \"../../Exceptions/ArgumentNullException\";\r\nimport {ReadOnlyCollectionBase} from \"../ReadOnlyCollectionBase\";\r\nimport {IArray} from \"./IArray\";\r\nimport {from as enumeratorFrom} from \"../Enumeration/Enumerator\";\r\n\r\nexport default class ReadOnlyArrayWrapper extends ReadOnlyCollectionBase\r\n{\r\n\r\n\tconstructor(array:IArray)\r\n\t{\r\n\t\tsuper();\r\n\t\tif(!array)\r\n\t\t\tthrow new ArgumentNullException('array');\r\n\r\n\t\tvar _ = this;\r\n\t\t_._getCount = () => array.length;\r\n\t\t_.getEnumerator = () => enumeratorFrom(array);\r\n\t\t_.getValueAt = i => array[i];\r\n\t}\r\n\r\n\tgetValueAt:(index:number)=>T;\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/commonjs/System/Collections/Array/Sort.d.ts b/dist/commonjs/System/Collections/Array/Sort.d.ts index 5524bcb8..3201c0e9 100644 --- a/dist/commonjs/System/Collections/Array/Sort.d.ts +++ b/dist/commonjs/System/Collections/Array/Sort.d.ts @@ -1,9 +1,9 @@ -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { Primitive } from "../../Primitive"; +import { Selector, Comparison } from "../../FunctionTypes"; +import { Order } from "../Sorting/Order"; export declare function createComparer(selector: Selector, order?: Order | Order[], equivalentToNaN?: any): Comparison; export { createComparer as default, createComparer as by }; diff --git a/dist/commonjs/System/Collections/Array/Sort.js b/dist/commonjs/System/Collections/Array/Sort.js index 4a098b6c..742d52a0 100644 --- a/dist/commonjs/System/Collections/Array/Sort.js +++ b/dist/commonjs/System/Collections/Array/Sort.js @@ -4,8 +4,8 @@ */ "use strict"; -var Types_1 = require('../../Types'); -var Compare_1 = require('../../Compare'); +var Types_1 = require("../../Types"); +var Compare_1 = require("../../Compare"); function ensureArray(value) { return Array.isArray(value) ? value : [value]; } @@ -13,7 +13,7 @@ function createComparer(selector) { var order = arguments.length <= 1 || arguments[1] === undefined ? 1 : arguments[1]; var equivalentToNaN = arguments.length <= 2 || arguments[2] === undefined ? NaN : arguments[2]; - var nanHasEquivalent = !Types_1.default.isTrueNaN(equivalentToNaN); + var nanHasEquivalent = !Types_1.Type.isTrueNaN(equivalentToNaN); return function (a, b) { var aValue = ensureArray(selector(a)); var bValue = ensureArray(selector(b)); @@ -24,8 +24,8 @@ function createComparer(selector) { vB = bValue[i], o = oArray ? i < oArray.length ? oArray[i] : 1 : order; if (nanHasEquivalent) { - if (Types_1.default.isTrueNaN(vA)) vA = equivalentToNaN; - if (Types_1.default.isTrueNaN(vB)) vB = equivalentToNaN; + if (Types_1.Type.isTrueNaN(vA)) vA = equivalentToNaN; + if (Types_1.Type.isTrueNaN(vB)) vB = equivalentToNaN; } var r = Compare_1.compare(vA, vB); if (r !== 0) return o * r; diff --git a/dist/commonjs/System/Collections/Array/Sort.js.map b/dist/commonjs/System/Collections/Array/Sort.js.map index 18ecd076..3a18b521 100644 --- a/dist/commonjs/System/Collections/Array/Sort.js.map +++ b/dist/commonjs/System/Collections/Array/Sort.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Array/Sort.js","System/Collections/Array/Sort.ts"],"names":[],"mappings":";;;;AAIA;;ACKA,IAAA,UAAA,QAAiB,aAAjB,CAAA;AACA,IAAA,YAAA,QAAsB,eAAtB,CAAA;AAEA,SAAA,WAAA,CAAwB,KAAxB,EAAmC;AAElC,WAAO,MAAM,OAAN,CAAc,KAAd,IACC,KADD,GAEJ,CAAI,KAAJ,CAFI,CAF2B;CAAnC;AA8BA,SAAA,cAAA,CACC,QADD,EAG0B;QADzB,8DAAwB,iBACC;QAAzB,wEAAsB,mBAAG;;AAEzB,QAAI,mBAAmB,CAAC,QAAA,OAAA,CAAK,SAAL,CAAe,eAAf,CAAD,CAFE;AAIzB,WAAO,UAAC,CAAD,EAAsB,CAAtB,EAAyC;AAG/C,YAAI,SAAS,YAAY,SAAS,CAAT,CAAZ,CAAT,CAH2C;AAI/C,YAAI,SAAS,YAAY,SAAS,CAAT,CAAZ,CAAT,CAJ2C;AAK/C,YAAI,MAAM,KAAK,GAAL,CAAS,OAAO,MAAP,EAAe,OAAO,MAAP,CAA9B,CAL2C;AAO/C,YAAI,SAAiB,MAAM,OAAN,CAAc,KAAd,IAAuB,KAAvB,GAA+B,IAA/B,CAP0B;AAQ/C,aAAI,IAAI,IAAI,CAAJ,EAAO,IAAE,GAAF,EAAO,GAAtB,EACA;AACC,gBAAI,KAAK,OAAO,CAAP,CAAL;gBAAgB,KAAK,OAAO,CAAP,CAAL;gBAChB,IAAK,SACD,IAAE,OAAO,MAAP,GAAgB,OAAO,CAAP,CAAlB,GAA8B,CAA9B,GACM,KAFL,CAFV;AAMC,gBAAG,gBAAH,EACA;AACC,oBAAG,QAAA,OAAA,CAAK,SAAL,CAAe,EAAf,CAAH,EACC,KAAK,eAAL,CADD;AAEA,oBAAG,QAAA,OAAA,CAAK,SAAL,CAAe,EAAf,CAAH,EACC,KAAK,eAAL,CADD;aAJD;AASA,gBAAI,IAAI,UAAA,OAAA,CAAQ,EAAR,EAAY,EAAZ,CAAJ,CAfL;AAgBC,gBAAG,MAAI,CAAJ,EACF,OAAO,IAAE,CAAF,CADR;SAjBD;AAsBA,eAAO,CAAP,CA9B+C;KAAzC,CAJkB;CAH1B;AAAgB,QAAA,cAAA,GAAc,cAAd;AA0CG,QAAA,OAAA,GAAO,cAAP;AACA,QAAA,EAAA,GAAE,cAAF","file":"System/Collections/Array/Sort.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst Types_1 = require('../../Types');\nconst Compare_1 = require('../../Compare');\nfunction ensureArray(value) {\n return Array.isArray(value)\n ? value\n : [value];\n}\nfunction createComparer(selector, order = 1, equivalentToNaN = NaN) {\n var nanHasEquivalent = !Types_1.default.isTrueNaN(equivalentToNaN);\n return (a, b) => {\n var aValue = ensureArray(selector(a));\n var bValue = ensureArray(selector(b));\n var len = Math.min(aValue.length, bValue.length);\n var oArray = Array.isArray(order) ? order : null;\n for (let i = 0; i < len; i++) {\n var vA = aValue[i], vB = bValue[i], o = oArray\n ? (i < oArray.length ? oArray[i] : 1)\n : order;\n if (nanHasEquivalent) {\n if (Types_1.default.isTrueNaN(vA))\n vA = equivalentToNaN;\n if (Types_1.default.isTrueNaN(vB))\n vB = equivalentToNaN;\n }\n var r = Compare_1.compare(vA, vB);\n if (r !== 0)\n return o * r;\n }\n return 0;\n };\n}\nexports.createComparer = createComparer;\nexports.default = createComparer;\nexports.by = createComparer;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n\r\nimport Type from '../../Types';\r\nimport {compare} from '../../Compare';\r\n\r\nfunction ensureArray(value:T|T[]):T[]\r\n{\r\n\treturn Array.isArray(value)\r\n\t\t? value\r\n\t\t: [value];\r\n}\r\n\r\n/**\r\n * A factory function that creates a comparer to be used in multi-dimensional sorting.\r\n *\r\n *

Example

\r\n * ```typescript\r\n * var myArray = [{a:1:b:2},{a:3,b:4},{a:1,b:3}];\r\n *\r\n * // First sort by a, then by b.\r\n * myArray.sort(\r\n * createComparer(\r\n * (e)=> [e.a, e.b],\r\n * [Order.Ascending, Order.Descending]\r\n * )\r\n * );\r\n *\r\n * // result: [{a:1,b:3},{a:1:b:2},{a:3,b:4}]\r\n * ```\r\n *\r\n * @param selector\r\n * @param order\r\n * @param equivalentToNaN\r\n * @returns {function((TSource|TSource[]), (TSource|TSource[])): CompareResult}\r\n */\r\nexport function createComparer(\r\n\tselector:Selector,\r\n\torder:Order | Order[] = Order.Ascending,\r\n\tequivalentToNaN:any = NaN):Comparison\r\n{\r\n\tvar nanHasEquivalent = !Type.isTrueNaN(equivalentToNaN);\r\n\r\n\treturn (a:TSource|TSource[], b:TSource|TSource[]):CompareResult=>\r\n\t{\r\n\t\t// Use an array always to ensure a single code path.\r\n\t\tvar aValue = ensureArray(selector(a));\r\n\t\tvar bValue = ensureArray(selector(b));\r\n\t\tvar len = Math.min(aValue.length, bValue.length);\r\n\r\n\t\tvar oArray:Order[] = Array.isArray(order) ? order : null;\r\n\t\tfor(let i = 0; iorder;\r\n\r\n\t\t\tif(nanHasEquivalent)\r\n\t\t\t{\r\n\t\t\t\tif(Type.isTrueNaN(vA))\r\n\t\t\t\t\tvA = equivalentToNaN;\r\n\t\t\t\tif(Type.isTrueNaN(vB))\r\n\t\t\t\t\tvB = equivalentToNaN;\r\n\r\n\t\t\t}\r\n\r\n\t\t\tvar r = compare(vA, vB);\r\n\t\t\tif(r!==CompareResult.Equal)\r\n\t\t\t\treturn o*r;\r\n\r\n\t\t}\r\n\r\n\t\treturn 0;\r\n\t};\r\n}\r\n\r\nexport {\r\n\tcreateComparer as default, // Allow for default import.\r\n\tcreateComparer as by // Alias for Sort.by(...) instead of Sort.createComparer\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Array/Sort.js","System/Collections/Array/Sort.ts"],"names":[],"mappings":";;;;AAIA;;ACEA,IAAA,UAAA,QAAmB,aAAnB,CAAA;AACA,IAAA,YAAA,QAAsB,eAAtB,CAAA;AAMA,SAAA,WAAA,CAAwB,KAAxB,EAAmC;AAElC,WAAO,MAAM,OAAN,CAAc,KAAd,IACC,KADD,GAEJ,CAAI,KAAJ,CAFI,CAF2B;CAAnC;AA8BA,SAAA,cAAA,CACC,QADD,EAG0B;QADzB,8DAAwB,iBACC;QAAzB,wEAAsB,mBAAG;;AAEzB,QAAI,mBAAmB,CAAC,QAAA,IAAA,CAAK,SAAL,CAAe,eAAf,CAAD,CAFE;AAIzB,WAAO,UAAC,CAAD,EAAsB,CAAtB,EAAyC;AAG/C,YAAI,SAAS,YAAY,SAAS,CAAT,CAAZ,CAAT,CAH2C;AAI/C,YAAI,SAAS,YAAY,SAAS,CAAT,CAAZ,CAAT,CAJ2C;AAK/C,YAAI,MAAM,KAAK,GAAL,CAAS,OAAO,MAAP,EAAe,OAAO,MAAP,CAA9B,CAL2C;AAO/C,YAAI,SAAiB,MAAM,OAAN,CAAc,KAAd,IAAuB,KAAvB,GAA+B,IAA/B,CAP0B;AAQ/C,aAAI,IAAI,IAAI,CAAJ,EAAO,IAAE,GAAF,EAAO,GAAtB,EACA;AACC,gBAAI,KAAK,OAAO,CAAP,CAAL;gBAAgB,KAAK,OAAO,CAAP,CAAL;gBAChB,IAAqB,SACjB,IAAE,OAAO,MAAP,GAAgB,OAAO,CAAP,CAAlB,GAA8B,CAA9B,GACM,KAFW,CAF1B;AAMC,gBAAG,gBAAH,EACA;AACC,oBAAG,QAAA,IAAA,CAAK,SAAL,CAAe,EAAf,CAAH,EACC,KAAK,eAAL,CADD;AAEA,oBAAG,QAAA,IAAA,CAAK,SAAL,CAAe,EAAf,CAAH,EACC,KAAK,eAAL,CADD;aAJD;AASA,gBAAI,IAAI,UAAA,OAAA,CAAQ,EAAR,EAAY,EAAZ,CAAJ,CAfL;AAgBC,gBAAG,MAAI,CAAJ,EACF,OAAO,IAAE,CAAF,CADR;SAjBD;AAsBA,eAAO,CAAP,CA9B+C;KAAzC,CAJkB;CAH1B;AAAgB,QAAA,cAAA,GAAc,cAAd;AA0CG,QAAA,OAAA,GAAO,cAAP;AACA,QAAA,EAAA,GAAE,cAAF","file":"System/Collections/Array/Sort.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst Types_1 = require(\"../../Types\");\nconst Compare_1 = require(\"../../Compare\");\nfunction ensureArray(value) {\n return Array.isArray(value)\n ? value\n : [value];\n}\nfunction createComparer(selector, order = 1, equivalentToNaN = NaN) {\n var nanHasEquivalent = !Types_1.Type.isTrueNaN(equivalentToNaN);\n return (a, b) => {\n var aValue = ensureArray(selector(a));\n var bValue = ensureArray(selector(b));\n var len = Math.min(aValue.length, bValue.length);\n var oArray = Array.isArray(order) ? order : null;\n for (let i = 0; i < len; i++) {\n var vA = aValue[i], vB = bValue[i], o = oArray\n ? (i < oArray.length ? oArray[i] : 1)\n : order;\n if (nanHasEquivalent) {\n if (Types_1.Type.isTrueNaN(vA))\n vA = equivalentToNaN;\n if (Types_1.Type.isTrueNaN(vB))\n vB = equivalentToNaN;\n }\n var r = Compare_1.compare(vA, vB);\n if (r !== 0)\n return o * r;\n }\n return 0;\n };\n}\nexports.createComparer = createComparer;\nexports.default = createComparer;\nexports.by = createComparer;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {Type} from \"../../Types\";\r\nimport {compare} from \"../../Compare\";\r\nimport {Primitive} from \"../../Primitive\";\r\nimport {Selector, Comparison} from \"../../FunctionTypes\";\r\nimport {CompareResult} from \"../../CompareResult\";\r\nimport {Order} from \"../Sorting/Order\";\r\n\r\nfunction ensureArray(value:T|T[]):T[]\r\n{\r\n\treturn Array.isArray(value)\r\n\t\t? value\r\n\t\t: [value];\r\n}\r\n\r\n/**\r\n * A factory function that creates a comparer to be used in multi-dimensional sorting.\r\n *\r\n *

Example

\r\n * ```typescript\r\n * var myArray = [{a:1:b:2},{a:3,b:4},{a:1,b:3}];\r\n *\r\n * // First sort by a, then by b.\r\n * myArray.sort(\r\n * createComparer(\r\n * (e)=> [e.a, e.b],\r\n * [Order.Ascending, Order.Descending]\r\n * )\r\n * );\r\n *\r\n * // result: [{a:1,b:3},{a:1:b:2},{a:3,b:4}]\r\n * ```\r\n *\r\n * @param selector\r\n * @param order\r\n * @param equivalentToNaN\r\n * @returns {function((TSource|TSource[]), (TSource|TSource[])): CompareResult}\r\n */\r\nexport function createComparer(\r\n\tselector:Selector,\r\n\torder:Order | Order[] = Order.Ascending,\r\n\tequivalentToNaN:any = NaN):Comparison\r\n{\r\n\tvar nanHasEquivalent = !Type.isTrueNaN(equivalentToNaN);\r\n\r\n\treturn (a:TSource|TSource[], b:TSource|TSource[]):CompareResult=>\r\n\t{\r\n\t\t// Use an array always to ensure a single code path.\r\n\t\tvar aValue = ensureArray(selector(a));\r\n\t\tvar bValue = ensureArray(selector(b));\r\n\t\tvar len = Math.min(aValue.length, bValue.length);\r\n\r\n\t\tvar oArray:Order[] = Array.isArray(order) ? order : null;\r\n\t\tfor(let i = 0; iorder;\r\n\r\n\t\t\tif(nanHasEquivalent)\r\n\t\t\t{\r\n\t\t\t\tif(Type.isTrueNaN(vA))\r\n\t\t\t\t\tvA = equivalentToNaN;\r\n\t\t\t\tif(Type.isTrueNaN(vB))\r\n\t\t\t\t\tvB = equivalentToNaN;\r\n\r\n\t\t\t}\r\n\r\n\t\t\tvar r = compare(vA, vB);\r\n\t\t\tif(r!==CompareResult.Equal)\r\n\t\t\t\treturn o*r;\r\n\r\n\t\t}\r\n\r\n\t\treturn 0;\r\n\t};\r\n}\r\n\r\nexport {\r\n\tcreateComparer as default, // Allow for default import.\r\n\tcreateComparer as by // Alias for Sort.by(...) instead of Sort.createComparer\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/commonjs/System/Collections/Array/Utility.d.ts b/dist/commonjs/System/Collections/Array/Utility.d.ts index 2314ac04..9c7b0c7f 100644 --- a/dist/commonjs/System/Collections/Array/Utility.d.ts +++ b/dist/commonjs/System/Collections/Array/Utility.d.ts @@ -1,9 +1,9 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { EqualityComparison, Predicate, Action } from "../../FunctionTypes"; +import { IArray } from "./IArray"; export declare function initialize(length: number): T[]; export declare function copy(source: IArray, sourceIndex?: number, length?: number): T[]; export declare function copyTo>(source: IArray, destination: TDestination, sourceIndex?: number, destinationIndex?: number, length?: number): TDestination; diff --git a/dist/commonjs/System/Collections/Array/Utility.js b/dist/commonjs/System/Collections/Array/Utility.js index 25365fac..f4829236 100644 --- a/dist/commonjs/System/Collections/Array/Utility.js +++ b/dist/commonjs/System/Collections/Array/Utility.js @@ -11,7 +11,7 @@ var ArgumentException_1 = require("../../Exceptions/ArgumentException"); var ArgumentNullException_1 = require("../../Exceptions/ArgumentNullException"); var ArgumentOutOfRangeException_1 = require("../../Exceptions/ArgumentOutOfRangeException"); function initialize(length) { - Integer_1.default.assert(length, 'length'); + Integer_1.Integer.assert(length, 'length'); var array; if (length > 65536) array = new Array(length);else { array = []; @@ -37,15 +37,15 @@ function copyTo(source, destination) { var destinationIndex = arguments.length <= 3 || arguments[3] === undefined ? 0 : arguments[3]; var length = arguments.length <= 4 || arguments[4] === undefined ? Infinity : arguments[4]; - if (!source) throw new ArgumentNullException_1.default('source', CBN); - if (!destination) throw new ArgumentNullException_1.default('destination', CBN); - if (sourceIndex < 0) throw new ArgumentOutOfRangeException_1.default('sourceIndex', sourceIndex, CBL0); + if (!source) throw new ArgumentNullException_1.ArgumentNullException('source', CBN); + if (!destination) throw new ArgumentNullException_1.ArgumentNullException('destination', CBN); + if (sourceIndex < 0) throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('sourceIndex', sourceIndex, CBL0); var sourceLength = source.length; if (!sourceLength) return destination; - if (sourceIndex >= sourceLength) throw new ArgumentOutOfRangeException_1.default('sourceIndex', sourceIndex, 'Must be less than the length of the source array.'); - if (destination.length < 0) throw new ArgumentOutOfRangeException_1.default('destinationIndex', destinationIndex, CBL0); + if (sourceIndex >= sourceLength) throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('sourceIndex', sourceIndex, 'Must be less than the length of the source array.'); + if (destination.length < 0) throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('destinationIndex', destinationIndex, CBL0); var maxLength = source.length - sourceIndex; - if (isFinite(length) && length > maxLength) throw new ArgumentOutOfRangeException_1.default('sourceIndex', sourceIndex, 'Source index + length cannot exceed the length of the source array.'); + if (isFinite(length) && length > maxLength) throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('sourceIndex', sourceIndex, 'Source index + length cannot exceed the length of the source array.'); length = Math.min(length, maxLength); var newLength = destinationIndex + length; if (newLength > destination.length) destination.length = newLength; @@ -60,7 +60,7 @@ function indexOf(array, item) { var len = array && array.length; if (len) { - if (Array.isArray(array) && !Types_1.default.isTrueNaN(item)) return array.indexOf(item); + if (Array.isArray(array) && !Types_1.Type.isTrueNaN(item)) return array.indexOf(item); for (var i = 0; i < len; i++) { if (equalityComparer(array[i], item)) return i; } @@ -76,7 +76,7 @@ function contains(array, item) { exports.contains = contains; function replace(array, old, newValue, max) { if (!array || !array.length || max === 0) return 0; - if (max < 0) throw new ArgumentOutOfRangeException_1.default('max', max, CBL0); + if (max < 0) throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('max', max, CBL0); if (!max) max = Infinity; var count = 0; for (var i = 0, len = array.length; i < len; i++) { @@ -94,10 +94,10 @@ function updateRange(array, value) { var stop = arguments[3]; if (!array) return; - Integer_1.default.assertZeroOrGreater(start, 'start'); + Integer_1.Integer.assertZeroOrGreater(start, 'start'); if (!stop && stop !== 0) stop = array.length; - Integer_1.default.assert(stop, 'stop'); - if (stop < start) throw new ArgumentOutOfRangeException_1.default("stop", stop, "is less than start"); + Integer_1.Integer.assert(stop, 'stop'); + if (stop < start) throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException("stop", stop, "is less than start"); for (var i = start; i < stop; i++) { array[i] = value; } @@ -113,7 +113,7 @@ exports.clear = clear; function register(array, item) { var equalityComparer = arguments.length <= 2 || arguments[2] === undefined ? Compare_1.areEqual : arguments[2]; - if (!array) throw new ArgumentNullException_1.default('array', CBN); + if (!array) throw new ArgumentNullException_1.ArgumentNullException('array', CBN); var len = array.length; var ok = !len || !contains(array, item, equalityComparer); if (ok) array[len] = item; @@ -121,8 +121,8 @@ function register(array, item) { } exports.register = register; function findIndex(array, predicate) { - if (!array) throw new ArgumentNullException_1.default('array', CBN); - if (!Types_1.default.isFunction(predicate)) throw new ArgumentException_1.default('predicate', 'Must be a function.'); + if (!array) throw new ArgumentNullException_1.ArgumentNullException('array', CBN); + if (!Types_1.Type.isFunction(predicate)) throw new ArgumentException_1.ArgumentException('predicate', 'Must be a function.'); var len = array.length; if (Array.isArray(array)) { for (var i = 0; i < len; i++) { @@ -153,9 +153,9 @@ function applyTo(target, fn) { } exports.applyTo = applyTo; function removeIndex(array, index) { - if (!array) throw new ArgumentNullException_1.default('array', CBN); - Integer_1.default.assert(index, 'index'); - if (index < 0) throw new ArgumentOutOfRangeException_1.default('index', index, CBL0); + if (!array) throw new ArgumentNullException_1.ArgumentNullException('array', CBN); + Integer_1.Integer.assert(index, 'index'); + if (index < 0) throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('index', index, CBL0); var exists = index < array.length; if (exists) array.splice(index, 1); return exists; @@ -165,7 +165,7 @@ function remove(array, value, max) { var equalityComparer = arguments.length <= 3 || arguments[3] === undefined ? Compare_1.areEqual : arguments[3]; if (!array || !array.length || max === 0) return 0; - if (max < 0) throw new ArgumentOutOfRangeException_1.default('max', max, CBL0); + if (max < 0) throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('max', max, CBL0); var count = 0; if (!max || !isFinite(max)) { for (var i = array.length - 1; i >= 0; i--) { @@ -191,8 +191,8 @@ function remove(array, value, max) { } exports.remove = remove; function repeat(element, count) { - Integer_1.default.assert(count, 'count'); - if (count < 0) throw new ArgumentOutOfRangeException_1.default('count', count, CBL0); + Integer_1.Integer.assert(count, 'count'); + if (count < 0) throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('count', count, CBL0); var result = initialize(count); for (var i = 0; i < count; i++) { result[i] = element; @@ -203,9 +203,9 @@ exports.repeat = repeat; function range(first, count) { var step = arguments.length <= 2 || arguments[2] === undefined ? 1 : arguments[2]; - if (isNaN(first) || !isFinite(first)) throw new ArgumentOutOfRangeException_1.default('first', first, VFN); - if (isNaN(count) || !isFinite(count)) throw new ArgumentOutOfRangeException_1.default('count', count, VFN); - if (count < 0) throw new ArgumentOutOfRangeException_1.default('count', count, CBL0); + if (isNaN(first) || !isFinite(first)) throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('first', first, VFN); + if (isNaN(count) || !isFinite(count)) throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('count', count, VFN); + if (count < 0) throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('count', count, CBL0); var result = initialize(count); for (var i = 0; i < count; i++) { result[i] = first; @@ -217,7 +217,7 @@ exports.range = range; function rangeUntil(first, until) { var step = arguments.length <= 2 || arguments[2] === undefined ? 1 : arguments[2]; - if (step == 0) throw new ArgumentOutOfRangeException_1.default('step', step, CB0); + if (step == 0) throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('step', step, CB0); return range(first, (until - first) / step, step); } exports.rangeUntil = rangeUntil; diff --git a/dist/commonjs/System/Collections/Array/Utility.js.map b/dist/commonjs/System/Collections/Array/Utility.js.map index d97d0bcd..d5c3661c 100644 --- a/dist/commonjs/System/Collections/Array/Utility.js.map +++ b/dist/commonjs/System/Collections/Array/Utility.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Array/Utility.js","System/Collections/Array/Utility.ts"],"names":[],"mappings":"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","file":"System/Collections/Array/Utility.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst Types_1 = require(\"../../Types\");\nconst Integer_1 = require(\"../../Integer\");\nconst Compare_1 = require(\"../../Compare\");\nconst ArgumentException_1 = require(\"../../Exceptions/ArgumentException\");\nconst ArgumentNullException_1 = require(\"../../Exceptions/ArgumentNullException\");\nconst ArgumentOutOfRangeException_1 = require(\"../../Exceptions/ArgumentOutOfRangeException\");\nfunction initialize(length) {\n Integer_1.default.assert(length, 'length');\n var array;\n if (length > 65536)\n array = new Array(length);\n else {\n array = [];\n array.length = length;\n }\n return array;\n}\nexports.initialize = initialize;\nfunction copy(source, sourceIndex = 0, length = Infinity) {\n if (!source)\n return source;\n return copyTo(source, initialize(Math.min(length, Math.max(source.length - sourceIndex, 0))), sourceIndex, 0, length);\n}\nexports.copy = copy;\nconst CBN = 'Cannot be null.', CB0 = 'Cannot be zero.', CBL0 = 'Cannot be less than zero.', VFN = 'Must be a valid finite number';\nfunction copyTo(source, destination, sourceIndex = 0, destinationIndex = 0, length = Infinity) {\n if (!source)\n throw new ArgumentNullException_1.default('source', CBN);\n if (!destination)\n throw new ArgumentNullException_1.default('destination', CBN);\n if (sourceIndex < 0)\n throw new ArgumentOutOfRangeException_1.default('sourceIndex', sourceIndex, CBL0);\n var sourceLength = source.length;\n if (!sourceLength)\n return destination;\n if (sourceIndex >= sourceLength)\n throw new ArgumentOutOfRangeException_1.default('sourceIndex', sourceIndex, 'Must be less than the length of the source array.');\n if (destination.length < 0)\n throw new ArgumentOutOfRangeException_1.default('destinationIndex', destinationIndex, CBL0);\n var maxLength = source.length - sourceIndex;\n if (isFinite(length) && length > maxLength)\n throw new ArgumentOutOfRangeException_1.default('sourceIndex', sourceIndex, 'Source index + length cannot exceed the length of the source array.');\n length = Math.min(length, maxLength);\n var newLength = destinationIndex + length;\n if (newLength > destination.length)\n destination.length = newLength;\n for (let i = 0; i < length; i++) {\n destination[destinationIndex + i] = source[sourceIndex + i];\n }\n return destination;\n}\nexports.copyTo = copyTo;\nfunction indexOf(array, item, equalityComparer = Compare_1.areEqual) {\n var len = array && array.length;\n if (len) {\n if (Array.isArray(array) && !Types_1.default.isTrueNaN(item))\n return array.indexOf(item);\n for (let i = 0; i < len; i++) {\n if (equalityComparer(array[i], item))\n return i;\n }\n }\n return -1;\n}\nexports.indexOf = indexOf;\nfunction contains(array, item, equalityComparer = Compare_1.areEqual) {\n return indexOf(array, item, equalityComparer) != -1;\n}\nexports.contains = contains;\nfunction replace(array, old, newValue, max) {\n if (!array || !array.length || max === 0)\n return 0;\n if (max < 0)\n throw new ArgumentOutOfRangeException_1.default('max', max, CBL0);\n if (!max)\n max = Infinity;\n var count = 0;\n for (let i = 0, len = array.length; i < len; i++) {\n if (array[i] === old) {\n array[i] = newValue;\n ++count;\n if (count == max)\n break;\n }\n }\n return count;\n}\nexports.replace = replace;\nfunction updateRange(array, value, start = 0, stop) {\n if (!array)\n return;\n Integer_1.default.assertZeroOrGreater(start, 'start');\n if (!stop && stop !== 0)\n stop = array.length;\n Integer_1.default.assert(stop, 'stop');\n if (stop < start)\n throw new ArgumentOutOfRangeException_1.default(\"stop\", stop, \"is less than start\");\n for (let i = start; i < stop; i++) {\n array[i] = value;\n }\n}\nexports.updateRange = updateRange;\nfunction clear(array, start = 0, stop) {\n updateRange(array, null, start, stop);\n}\nexports.clear = clear;\nfunction register(array, item, equalityComparer = Compare_1.areEqual) {\n if (!array)\n throw new ArgumentNullException_1.default('array', CBN);\n var len = array.length;\n var ok = !len || !contains(array, item, equalityComparer);\n if (ok)\n array[len] = item;\n return ok;\n}\nexports.register = register;\nfunction findIndex(array, predicate) {\n if (!array)\n throw new ArgumentNullException_1.default('array', CBN);\n if (!Types_1.default.isFunction(predicate))\n throw new ArgumentException_1.default('predicate', 'Must be a function.');\n var len = array.length;\n if (Array.isArray(array)) {\n for (let i = 0; i < len; i++) {\n if (predicate(array[i]))\n return i;\n }\n }\n else {\n for (let i = 0; i < len; i++) {\n if ((i) in (array) && predicate(array[i]))\n return i;\n }\n }\n return -1;\n}\nexports.findIndex = findIndex;\nfunction forEach(source, action) {\n if (source && action) {\n for (let i = 0; i < source.length; i++) {\n if (action(source[i], i) === false)\n break;\n }\n }\n}\nexports.forEach = forEach;\nfunction applyTo(target, fn) {\n if (target && fn) {\n for (let i = 0; i < target.length; i++) {\n target[i] = fn(target[i]);\n }\n }\n}\nexports.applyTo = applyTo;\nfunction removeIndex(array, index) {\n if (!array)\n throw new ArgumentNullException_1.default('array', CBN);\n Integer_1.default.assert(index, 'index');\n if (index < 0)\n throw new ArgumentOutOfRangeException_1.default('index', index, CBL0);\n var exists = index < array.length;\n if (exists)\n array.splice(index, 1);\n return exists;\n}\nexports.removeIndex = removeIndex;\nfunction remove(array, value, max, equalityComparer = Compare_1.areEqual) {\n if (!array || !array.length || max === 0)\n return 0;\n if (max < 0)\n throw new ArgumentOutOfRangeException_1.default('max', max, CBL0);\n var count = 0;\n if (!max || !isFinite(max)) {\n for (let i = (array.length - 1); i >= 0; i--) {\n if (equalityComparer(array[i], value)) {\n array.splice(i, 1);\n ++count;\n }\n }\n }\n else {\n var found = [];\n for (let i = 0, len = array.length; i < len; i++) {\n if (equalityComparer(array[i], value)) {\n found.push(i);\n ++count;\n if (count == max)\n break;\n }\n }\n for (let i = found.length - 1; i >= 0; i--) {\n array.splice(found[i], 1);\n }\n }\n return count;\n}\nexports.remove = remove;\nfunction repeat(element, count) {\n Integer_1.default.assert(count, 'count');\n if (count < 0)\n throw new ArgumentOutOfRangeException_1.default('count', count, CBL0);\n var result = initialize(count);\n for (let i = 0; i < count; i++) {\n result[i] = element;\n }\n return result;\n}\nexports.repeat = repeat;\nfunction range(first, count, step = 1) {\n if (isNaN(first) || !isFinite(first))\n throw new ArgumentOutOfRangeException_1.default('first', first, VFN);\n if (isNaN(count) || !isFinite(count))\n throw new ArgumentOutOfRangeException_1.default('count', count, VFN);\n if (count < 0)\n throw new ArgumentOutOfRangeException_1.default('count', count, CBL0);\n var result = initialize(count);\n for (let i = 0; i < count; i++) {\n result[i] = first;\n first += step;\n }\n return result;\n}\nexports.range = range;\nfunction rangeUntil(first, until, step = 1) {\n if (step == 0)\n throw new ArgumentOutOfRangeException_1.default('step', step, CB0);\n return range(first, (until - first) / step, step);\n}\nexports.rangeUntil = rangeUntil;\nfunction distinct(source) {\n var seen = {};\n return source.filter(e => !(e in seen) && (seen[e] = true));\n}\nexports.distinct = distinct;\nfunction flatten(a, recurseDepth = 0) {\n var result = [];\n for (var i = 0; i < a.length; i++) {\n var x = a[i];\n if (Array.isArray(x)) {\n if (recurseDepth > 0)\n x = flatten(x, recurseDepth - 1);\n for (var n = 0; n < x.length; n++)\n result.push(x[n]);\n }\n else\n result.push(x);\n }\n return result;\n}\nexports.flatten = flatten;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\nimport Type from \"../../Types\";\r\nimport Integer from \"../../Integer\";\r\nimport {areEqual} from \"../../Compare\";\r\nimport ArgumentException from \"../../Exceptions/ArgumentException\";\r\nimport ArgumentNullException from \"../../Exceptions/ArgumentNullException\";\r\nimport ArgumentOutOfRangeException from \"../../Exceptions/ArgumentOutOfRangeException\";\r\n\r\n/**\r\n * Initializes an array depending on the requested capacity.\r\n * The returned array will have a .length equal to the value provided.\r\n * @param length\r\n * @returns {T[]}\r\n */\r\nexport function initialize(length:number):T[]\r\n{\r\n\tInteger.assert(length, 'length');\r\n\t// This logic is based upon JS performance tests that show a significant difference at the level of 65536.\r\n\tvar array:T[];\r\n\tif(length>65536)\r\n\t\tarray = new Array(length);\r\n\telse\r\n\t{\r\n\t\tarray = [];\r\n\t\tarray.length = length;\r\n\t}\r\n\treturn array;\r\n}\r\n\r\n/**\r\n *\r\n * @param source\r\n * @param sourceIndex\r\n * @param length\r\n * @returns {any}\r\n */\r\nexport function copy(\r\n\tsource:IArray,\r\n\tsourceIndex:number = 0,\r\n\tlength:number = Infinity):T[]\r\n{\r\n\tif(!source) return source; // may have passed zero? undefined? or null?\r\n\treturn copyTo(\r\n\t\tsource,\r\n\t\tinitialize(Math.min(length, Math.max(source.length - sourceIndex, 0))),\r\n\t\tsourceIndex, 0, length);\r\n}\r\n\r\nconst\r\n\tCBN = 'Cannot be null.',\r\n\tCB0 = 'Cannot be zero.',\r\n\tCBL0 = 'Cannot be less than zero.',\r\n\tVFN = 'Must be a valid finite number';\r\n\r\n/**\r\n * Copies one array to another.\r\n * @param source\r\n * @param destination\r\n * @param sourceIndex\r\n * @param destinationIndex\r\n * @param length An optional limit to stop copying.\r\n * @returns The destination array.\r\n */\r\nexport function copyTo>(\r\n\tsource:IArray,\r\n\tdestination:TDestination,\r\n\tsourceIndex:number = 0,\r\n\tdestinationIndex:number = 0,\r\n\tlength:number = Infinity):TDestination\r\n{\r\n\tif(!source)\r\n\t\tthrow new ArgumentNullException('source', CBN);\r\n\r\n\tif(!destination)\r\n\t\tthrow new ArgumentNullException('destination', CBN);\r\n\r\n\tif(sourceIndex<0)\r\n\t\tthrow new ArgumentOutOfRangeException('sourceIndex', sourceIndex, CBL0);\r\n\r\n\tvar sourceLength = source.length;\r\n\tif(!sourceLength)\r\n\t\treturn destination;\r\n\tif(sourceIndex>=sourceLength)\r\n\t\tthrow new ArgumentOutOfRangeException('sourceIndex', sourceIndex, 'Must be less than the length of the source array.');\r\n\r\n\tif(destination.length<0)\r\n\t\tthrow new ArgumentOutOfRangeException('destinationIndex', destinationIndex, CBL0);\r\n\r\n\tvar maxLength = source.length - sourceIndex;\r\n\tif(isFinite(length) && length>maxLength)\r\n\t\tthrow new ArgumentOutOfRangeException('sourceIndex', sourceIndex, 'Source index + length cannot exceed the length of the source array.');\r\n\r\n\tlength = Math.min(length, maxLength);\r\n\tvar newLength = destinationIndex + length;\r\n\tif(newLength>destination.length) destination.length = newLength;\r\n\r\n\tfor(let i = 0; i(\r\n\tarray:IArray, item:T,\r\n\tequalityComparer:EqualityComparison = areEqual):number\r\n{\r\n\r\n\tvar len = array && array.length;\r\n\tif(len)\r\n\t{\r\n\t\t// NaN NEVER evaluates its equality so be careful.\r\n\t\tif(Array.isArray(array) && !Type.isTrueNaN(item))\r\n\t\t\treturn array.indexOf(item);\r\n\r\n\t\tfor(let i = 0; i(\r\n\tarray:IArray, item:T,\r\n\tequalityComparer:EqualityComparison = areEqual):boolean\r\n{\r\n\treturn indexOf(array, item, equalityComparer)!= -1;\r\n}\r\n\r\n/**\r\n * Finds and replaces a value from an array. Will replaces all instances unless a maximum is specified.\r\n * @param array\r\n * @param old\r\n * @param newValue\r\n * @param max\r\n * @returns {number}\r\n */\r\nexport function replace(\r\n\tarray:IArray,\r\n\told:T,\r\n\tnewValue:T,\r\n\tmax?:number):number\r\n{\r\n\tif(!array || !array.length || max===0) return 0;\r\n\tif(max<0) throw new ArgumentOutOfRangeException('max', max, CBL0);\r\n\tif(!max) max = Infinity;\r\n\r\n\tvar count = 0;\r\n\r\n\tfor(let i = 0,len=array.length;i(\r\n\tarray:IArray,\r\n\tvalue:T,\r\n\tstart:number = 0,\r\n\tstop?:number):void\r\n{\r\n\tif(!array) return;\r\n\tInteger.assertZeroOrGreater(start, 'start');\r\n\tif(!stop && stop!==0) stop = array.length;\r\n\tInteger.assert(stop, 'stop');\r\n\tif(stop,\r\n\tstart:number = 0,\r\n\tstop?:number):void\r\n{\r\n\tupdateRange(array, null, start, stop);\r\n}\r\n\r\n/**\r\n * Ensures a value exists within an array. If not found, adds to the end.\r\n * @param array\r\n * @param item\r\n * @param {function?} equalityComparer\r\n * @returns {boolean}\r\n */\r\nexport function register(\r\n\tarray:IArray, item:T,\r\n\tequalityComparer:EqualityComparison = areEqual):boolean\r\n{\r\n\tif(!array)\r\n\t\tthrow new ArgumentNullException('array', CBN);\r\n\tvar len = array.length; // avoid querying .length more than once. *\r\n\tvar ok = !len || !contains(array, item, equalityComparer);\r\n\tif(ok) array[len] = item; // * push would query length again.\r\n\treturn ok;\r\n}\r\n\r\n/**\r\n * Returns the first index of which the provided predicate returns true.\r\n * Returns -1 if always false.\r\n * @param array\r\n * @param predicate\r\n * @returns {number}\r\n */\r\nexport function findIndex(array:IArray, predicate:Predicate):number\r\n{\r\n\tif(!array)\r\n\t\tthrow new ArgumentNullException('array', CBN);\r\n\tif(!Type.isFunction(predicate))\r\n\t\tthrow new ArgumentException('predicate', 'Must be a function.');\r\n\r\n\tvar len = array.length;\r\n\tif(Array.isArray(array)) {\r\n\t\tfor(let i = 0; i(\r\n\tsource:IArray,\r\n\taction:Predicate | Action):void\r\n{\r\n\tif(source && action)\r\n\t{\r\n\t\t// Don't cache the length since it is possible that the underlying array changed.\r\n\t\tfor(let i = 0; i(target:IArray, fn:(a:T) => T):void\r\n{\r\n\tif(target && fn)\r\n\t{\r\n\t\tfor(let i = 0; i(array:T[], index:number):boolean\r\n{\r\n\tif(!array)\r\n\t\tthrow new ArgumentNullException('array', CBN);\r\n\r\n\tInteger.assert(index, 'index');\r\n\tif(index<0) throw new ArgumentOutOfRangeException('index', index, CBL0);\r\n\r\n\r\n\tvar exists = index(\r\n\tarray:T[], value:T, max?:number,\r\n\tequalityComparer:EqualityComparison = areEqual):number\r\n{\r\n\tif(!array || !array.length || max===0) return 0;\r\n\tif(max<0) throw new ArgumentOutOfRangeException('max', max, CBL0);\r\n\r\n\tvar count = 0;\r\n\tif(!max || !isFinite(max)) {\r\n\t\t// Don't track the indexes and remove in reverse.\r\n\t\tfor(let i = (array.length - 1); i>=0; i--)\r\n\t\t{\r\n\t\t\tif(equalityComparer(array[i], value))\r\n\t\t\t{\r\n\t\t\t\tarray.splice(i, 1);\r\n\t\t\t\t++count;\r\n\t\t\t}\r\n\t\t}\r\n\t} else {\r\n\t\t// Since the user will expect it to happen in forward order...\r\n\t\tvar found:number[] = []; // indexes;\r\n\t\tfor(let i = 0, len = array.length; i=0;i--) {\r\n\t\t\tarray.splice(found[i], 1);\r\n\t\t}\r\n\t}\r\n\r\n\r\n\treturn count;\r\n}\r\n\r\n/**\r\n * Simply repeats a value the number of times specified.\r\n * @param element\r\n * @param count\r\n * @returns {T[]}\r\n */\r\nexport function repeat(element:T, count:number):T[]\r\n{\r\n\tInteger.assert(count, 'count');\r\n\tif(count<0) throw new ArgumentOutOfRangeException('count', count, CBL0);\r\n\r\n\tvar result = initialize(count);\r\n\tfor(let i = 0; i(count);\r\n\tfor(let i = 0; i !(e in seen) && (seen[e] = true));\r\n}\r\n\r\n/**\r\n * Takes any arrays within an array and inserts the values contained within in place of that array.\r\n * For every count higher than 0 in recurseDepth it will attempt an additional pass. Passing Infinity will flatten all arrays contained.\r\n * @param a\r\n * @param recurseDepth\r\n * @returns {any[]}\r\n */\r\nexport function flatten(a:any[], recurseDepth:number = 0):any[]\r\n{\r\n\tvar result:any[] = [];\r\n\tfor(var i = 0; i0) x = flatten(x, recurseDepth - 1);\r\n\t\t\tfor(var n = 0; n 65536)\n array = new Array(length);\n else {\n array = [];\n array.length = length;\n }\n return array;\n}\nexports.initialize = initialize;\nfunction copy(source, sourceIndex = 0, length = Infinity) {\n if (!source)\n return source;\n return copyTo(source, initialize(Math.min(length, Math.max(source.length - sourceIndex, 0))), sourceIndex, 0, length);\n}\nexports.copy = copy;\nconst CBN = 'Cannot be null.', CB0 = 'Cannot be zero.', CBL0 = 'Cannot be less than zero.', VFN = 'Must be a valid finite number';\nfunction copyTo(source, destination, sourceIndex = 0, destinationIndex = 0, length = Infinity) {\n if (!source)\n throw new ArgumentNullException_1.ArgumentNullException('source', CBN);\n if (!destination)\n throw new ArgumentNullException_1.ArgumentNullException('destination', CBN);\n if (sourceIndex < 0)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('sourceIndex', sourceIndex, CBL0);\n var sourceLength = source.length;\n if (!sourceLength)\n return destination;\n if (sourceIndex >= sourceLength)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('sourceIndex', sourceIndex, 'Must be less than the length of the source array.');\n if (destination.length < 0)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('destinationIndex', destinationIndex, CBL0);\n var maxLength = source.length - sourceIndex;\n if (isFinite(length) && length > maxLength)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('sourceIndex', sourceIndex, 'Source index + length cannot exceed the length of the source array.');\n length = Math.min(length, maxLength);\n var newLength = destinationIndex + length;\n if (newLength > destination.length)\n destination.length = newLength;\n for (let i = 0; i < length; i++) {\n destination[destinationIndex + i] = source[sourceIndex + i];\n }\n return destination;\n}\nexports.copyTo = copyTo;\nfunction indexOf(array, item, equalityComparer = Compare_1.areEqual) {\n var len = array && array.length;\n if (len) {\n if (Array.isArray(array) && !Types_1.Type.isTrueNaN(item))\n return array.indexOf(item);\n for (let i = 0; i < len; i++) {\n if (equalityComparer(array[i], item))\n return i;\n }\n }\n return -1;\n}\nexports.indexOf = indexOf;\nfunction contains(array, item, equalityComparer = Compare_1.areEqual) {\n return indexOf(array, item, equalityComparer) != -1;\n}\nexports.contains = contains;\nfunction replace(array, old, newValue, max) {\n if (!array || !array.length || max === 0)\n return 0;\n if (max < 0)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('max', max, CBL0);\n if (!max)\n max = Infinity;\n var count = 0;\n for (let i = 0, len = array.length; i < len; i++) {\n if (array[i] === old) {\n array[i] = newValue;\n ++count;\n if (count == max)\n break;\n }\n }\n return count;\n}\nexports.replace = replace;\nfunction updateRange(array, value, start = 0, stop) {\n if (!array)\n return;\n Integer_1.Integer.assertZeroOrGreater(start, 'start');\n if (!stop && stop !== 0)\n stop = array.length;\n Integer_1.Integer.assert(stop, 'stop');\n if (stop < start)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(\"stop\", stop, \"is less than start\");\n for (let i = start; i < stop; i++) {\n array[i] = value;\n }\n}\nexports.updateRange = updateRange;\nfunction clear(array, start = 0, stop) {\n updateRange(array, null, start, stop);\n}\nexports.clear = clear;\nfunction register(array, item, equalityComparer = Compare_1.areEqual) {\n if (!array)\n throw new ArgumentNullException_1.ArgumentNullException('array', CBN);\n var len = array.length;\n var ok = !len || !contains(array, item, equalityComparer);\n if (ok)\n array[len] = item;\n return ok;\n}\nexports.register = register;\nfunction findIndex(array, predicate) {\n if (!array)\n throw new ArgumentNullException_1.ArgumentNullException('array', CBN);\n if (!Types_1.Type.isFunction(predicate))\n throw new ArgumentException_1.ArgumentException('predicate', 'Must be a function.');\n var len = array.length;\n if (Array.isArray(array)) {\n for (let i = 0; i < len; i++) {\n if (predicate(array[i]))\n return i;\n }\n }\n else {\n for (let i = 0; i < len; i++) {\n if ((i) in (array) && predicate(array[i]))\n return i;\n }\n }\n return -1;\n}\nexports.findIndex = findIndex;\nfunction forEach(source, action) {\n if (source && action) {\n for (let i = 0; i < source.length; i++) {\n if (action(source[i], i) === false)\n break;\n }\n }\n}\nexports.forEach = forEach;\nfunction applyTo(target, fn) {\n if (target && fn) {\n for (let i = 0; i < target.length; i++) {\n target[i] = fn(target[i]);\n }\n }\n}\nexports.applyTo = applyTo;\nfunction removeIndex(array, index) {\n if (!array)\n throw new ArgumentNullException_1.ArgumentNullException('array', CBN);\n Integer_1.Integer.assert(index, 'index');\n if (index < 0)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('index', index, CBL0);\n var exists = index < array.length;\n if (exists)\n array.splice(index, 1);\n return exists;\n}\nexports.removeIndex = removeIndex;\nfunction remove(array, value, max, equalityComparer = Compare_1.areEqual) {\n if (!array || !array.length || max === 0)\n return 0;\n if (max < 0)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('max', max, CBL0);\n var count = 0;\n if (!max || !isFinite(max)) {\n for (let i = (array.length - 1); i >= 0; i--) {\n if (equalityComparer(array[i], value)) {\n array.splice(i, 1);\n ++count;\n }\n }\n }\n else {\n var found = [];\n for (let i = 0, len = array.length; i < len; i++) {\n if (equalityComparer(array[i], value)) {\n found.push(i);\n ++count;\n if (count == max)\n break;\n }\n }\n for (let i = found.length - 1; i >= 0; i--) {\n array.splice(found[i], 1);\n }\n }\n return count;\n}\nexports.remove = remove;\nfunction repeat(element, count) {\n Integer_1.Integer.assert(count, 'count');\n if (count < 0)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('count', count, CBL0);\n var result = initialize(count);\n for (let i = 0; i < count; i++) {\n result[i] = element;\n }\n return result;\n}\nexports.repeat = repeat;\nfunction range(first, count, step = 1) {\n if (isNaN(first) || !isFinite(first))\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('first', first, VFN);\n if (isNaN(count) || !isFinite(count))\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('count', count, VFN);\n if (count < 0)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('count', count, CBL0);\n var result = initialize(count);\n for (let i = 0; i < count; i++) {\n result[i] = first;\n first += step;\n }\n return result;\n}\nexports.range = range;\nfunction rangeUntil(first, until, step = 1) {\n if (step == 0)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('step', step, CB0);\n return range(first, (until - first) / step, step);\n}\nexports.rangeUntil = rangeUntil;\nfunction distinct(source) {\n var seen = {};\n return source.filter(e => !(e in seen) && (seen[e] = true));\n}\nexports.distinct = distinct;\nfunction flatten(a, recurseDepth = 0) {\n var result = [];\n for (var i = 0; i < a.length; i++) {\n var x = a[i];\n if (Array.isArray(x)) {\n if (recurseDepth > 0)\n x = flatten(x, recurseDepth - 1);\n for (var n = 0; n < x.length; n++)\n result.push(x[n]);\n }\n else\n result.push(x);\n }\n return result;\n}\nexports.flatten = flatten;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {Type} from \"../../Types\";\r\nimport {Integer} from \"../../Integer\";\r\nimport {areEqual} from \"../../Compare\";\r\nimport {ArgumentException} from \"../../Exceptions/ArgumentException\";\r\nimport {ArgumentNullException} from \"../../Exceptions/ArgumentNullException\";\r\nimport {ArgumentOutOfRangeException} from \"../../Exceptions/ArgumentOutOfRangeException\";\r\nimport {EqualityComparison, Predicate, Action} from \"../../FunctionTypes\";\r\nimport {IArray} from \"./IArray\";\r\n\r\n/**\r\n * Initializes an array depending on the requested capacity.\r\n * The returned array will have a .length equal to the value provided.\r\n * @param length\r\n * @returns {T[]}\r\n */\r\nexport function initialize(length:number):T[]\r\n{\r\n\tInteger.assert(length, 'length');\r\n\t// This logic is based upon JS performance tests that show a significant difference at the level of 65536.\r\n\tvar array:T[];\r\n\tif(length>65536)\r\n\t\tarray = new Array(length);\r\n\telse\r\n\t{\r\n\t\tarray = [];\r\n\t\tarray.length = length;\r\n\t}\r\n\treturn array;\r\n}\r\n\r\n/**\r\n *\r\n * @param source\r\n * @param sourceIndex\r\n * @param length\r\n * @returns {any}\r\n */\r\nexport function copy(\r\n\tsource:IArray,\r\n\tsourceIndex:number = 0,\r\n\tlength:number = Infinity):T[]\r\n{\r\n\tif(!source) return source; // may have passed zero? undefined? or null?\r\n\treturn copyTo(\r\n\t\tsource,\r\n\t\tinitialize(Math.min(length, Math.max(source.length - sourceIndex, 0))),\r\n\t\tsourceIndex, 0, length);\r\n}\r\n\r\nconst\r\n\tCBN = 'Cannot be null.',\r\n\tCB0 = 'Cannot be zero.',\r\n\tCBL0 = 'Cannot be less than zero.',\r\n\tVFN = 'Must be a valid finite number';\r\n\r\n/**\r\n * Copies one array to another.\r\n * @param source\r\n * @param destination\r\n * @param sourceIndex\r\n * @param destinationIndex\r\n * @param length An optional limit to stop copying.\r\n * @returns The destination array.\r\n */\r\nexport function copyTo>(\r\n\tsource:IArray,\r\n\tdestination:TDestination,\r\n\tsourceIndex:number = 0,\r\n\tdestinationIndex:number = 0,\r\n\tlength:number = Infinity):TDestination\r\n{\r\n\tif(!source)\r\n\t\tthrow new ArgumentNullException('source', CBN);\r\n\r\n\tif(!destination)\r\n\t\tthrow new ArgumentNullException('destination', CBN);\r\n\r\n\tif(sourceIndex<0)\r\n\t\tthrow new ArgumentOutOfRangeException('sourceIndex', sourceIndex, CBL0);\r\n\r\n\tvar sourceLength = source.length;\r\n\tif(!sourceLength)\r\n\t\treturn destination;\r\n\tif(sourceIndex>=sourceLength)\r\n\t\tthrow new ArgumentOutOfRangeException('sourceIndex', sourceIndex, 'Must be less than the length of the source array.');\r\n\r\n\tif(destination.length<0)\r\n\t\tthrow new ArgumentOutOfRangeException('destinationIndex', destinationIndex, CBL0);\r\n\r\n\tvar maxLength = source.length - sourceIndex;\r\n\tif(isFinite(length) && length>maxLength)\r\n\t\tthrow new ArgumentOutOfRangeException('sourceIndex', sourceIndex, 'Source index + length cannot exceed the length of the source array.');\r\n\r\n\tlength = Math.min(length, maxLength);\r\n\tvar newLength = destinationIndex + length;\r\n\tif(newLength>destination.length) destination.length = newLength;\r\n\r\n\tfor(let i = 0; i(\r\n\tarray:IArray, item:T,\r\n\tequalityComparer:EqualityComparison = areEqual):number\r\n{\r\n\r\n\tvar len = array && array.length;\r\n\tif(len)\r\n\t{\r\n\t\t// NaN NEVER evaluates its equality so be careful.\r\n\t\tif(Array.isArray(array) && !Type.isTrueNaN(item))\r\n\t\t\treturn array.indexOf(item);\r\n\r\n\t\tfor(let i = 0; i(\r\n\tarray:IArray, item:T,\r\n\tequalityComparer:EqualityComparison = areEqual):boolean\r\n{\r\n\treturn indexOf(array, item, equalityComparer)!= -1;\r\n}\r\n\r\n/**\r\n * Finds and replaces a value from an array. Will replaces all instances unless a maximum is specified.\r\n * @param array\r\n * @param old\r\n * @param newValue\r\n * @param max\r\n * @returns {number}\r\n */\r\nexport function replace(\r\n\tarray:IArray,\r\n\told:T,\r\n\tnewValue:T,\r\n\tmax?:number):number\r\n{\r\n\tif(!array || !array.length || max===0) return 0;\r\n\tif(max<0) throw new ArgumentOutOfRangeException('max', max, CBL0);\r\n\tif(!max) max = Infinity;\r\n\r\n\tvar count = 0;\r\n\r\n\tfor(let i = 0, len = array.length; i(\r\n\tarray:IArray,\r\n\tvalue:T,\r\n\tstart:number = 0,\r\n\tstop?:number):void\r\n{\r\n\tif(!array) return;\r\n\tInteger.assertZeroOrGreater(start, 'start');\r\n\tif(!stop && stop!==0) stop = array.length;\r\n\tInteger.assert(stop, 'stop');\r\n\tif(stop,\r\n\tstart:number = 0,\r\n\tstop?:number):void\r\n{\r\n\tupdateRange(array, null, start, stop);\r\n}\r\n\r\n/**\r\n * Ensures a value exists within an array. If not found, adds to the end.\r\n * @param array\r\n * @param item\r\n * @param {function?} equalityComparer\r\n * @returns {boolean}\r\n */\r\nexport function register(\r\n\tarray:IArray, item:T,\r\n\tequalityComparer:EqualityComparison = areEqual):boolean\r\n{\r\n\tif(!array)\r\n\t\tthrow new ArgumentNullException('array', CBN);\r\n\tvar len = array.length; // avoid querying .length more than once. *\r\n\tvar ok = !len || !contains(array, item, equalityComparer);\r\n\tif(ok) array[len] = item; // * push would query length again.\r\n\treturn ok;\r\n}\r\n\r\n/**\r\n * Returns the first index of which the provided predicate returns true.\r\n * Returns -1 if always false.\r\n * @param array\r\n * @param predicate\r\n * @returns {number}\r\n */\r\nexport function findIndex(array:IArray, predicate:Predicate):number\r\n{\r\n\tif(!array)\r\n\t\tthrow new ArgumentNullException('array', CBN);\r\n\tif(!Type.isFunction(predicate))\r\n\t\tthrow new ArgumentException('predicate', 'Must be a function.');\r\n\r\n\tvar len = array.length;\r\n\tif(Array.isArray(array))\r\n\t{\r\n\t\tfor(let i = 0; i(\r\n\tsource:IArray,\r\n\taction:Predicate | Action):void\r\n{\r\n\tif(source && action)\r\n\t{\r\n\t\t// Don't cache the length since it is possible that the underlying array changed.\r\n\t\tfor(let i = 0; i(target:IArray, fn:(a:T) => T):void\r\n{\r\n\tif(target && fn)\r\n\t{\r\n\t\tfor(let i = 0; i(array:T[], index:number):boolean\r\n{\r\n\tif(!array)\r\n\t\tthrow new ArgumentNullException('array', CBN);\r\n\r\n\tInteger.assert(index, 'index');\r\n\tif(index<0) throw new ArgumentOutOfRangeException('index', index, CBL0);\r\n\r\n\r\n\tvar exists = index(\r\n\tarray:T[], value:T, max?:number,\r\n\tequalityComparer:EqualityComparison = areEqual):number\r\n{\r\n\tif(!array || !array.length || max===0) return 0;\r\n\tif(max<0) throw new ArgumentOutOfRangeException('max', max, CBL0);\r\n\r\n\tvar count = 0;\r\n\tif(!max || !isFinite(max))\r\n\t{\r\n\t\t// Don't track the indexes and remove in reverse.\r\n\t\tfor(let i = (array.length - 1); i>=0; i--)\r\n\t\t{\r\n\t\t\tif(equalityComparer(array[i], value))\r\n\t\t\t{\r\n\t\t\t\tarray.splice(i, 1);\r\n\t\t\t\t++count;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\telse\r\n\t{\r\n\t\t// Since the user will expect it to happen in forward order...\r\n\t\tvar found:number[] = []; // indexes;\r\n\t\tfor(let i = 0, len = array.length; i=0; i--)\r\n\t\t{\r\n\t\t\tarray.splice(found[i], 1);\r\n\t\t}\r\n\t}\r\n\r\n\r\n\treturn count;\r\n}\r\n\r\n/**\r\n * Simply repeats a value the number of times specified.\r\n * @param element\r\n * @param count\r\n * @returns {T[]}\r\n */\r\nexport function repeat(element:T, count:number):T[]\r\n{\r\n\tInteger.assert(count, 'count');\r\n\tif(count<0) throw new ArgumentOutOfRangeException('count', count, CBL0);\r\n\r\n\tvar result = initialize(count);\r\n\tfor(let i = 0; i(count);\r\n\tfor(let i = 0; i !(e in seen) && (seen[e] = true));\r\n}\r\n\r\n/**\r\n * Takes any arrays within an array and inserts the values contained within in place of that array.\r\n * For every count higher than 0 in recurseDepth it will attempt an additional pass. Passing Infinity will flatten all arrays contained.\r\n * @param a\r\n * @param recurseDepth\r\n * @returns {any[]}\r\n */\r\nexport function flatten(a:any[], recurseDepth:number = 0):any[]\r\n{\r\n\tvar result:any[] = [];\r\n\tfor(var i = 0; i0) x = flatten(x, recurseDepth - 1);\r\n\t\t\tfor(var n = 0; n -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import DisposableBase from "../Disposable/DisposableBase"; -declare abstract class CollectionBase extends DisposableBase implements ICollection, IEnumerateEach { +import { DisposableBase } from "../Disposable/DisposableBase"; +import { ICollection } from "./ICollection"; +import { IEnumerator } from "./Enumeration/IEnumerator"; +import { IEnumerateEach } from "./Enumeration/IEnumerateEach"; +import { EqualityComparison, Predicate, Action } from "../FunctionTypes"; +import { IEnumerableOrArray } from "./IEnumerableOrArray"; +import { IArray } from "./Array/IArray"; +export declare abstract class CollectionBase extends DisposableBase implements ICollection, IEnumerateEach { protected _equalityComparer: EqualityComparison; constructor(source?: IEnumerableOrArray, _equalityComparer?: EqualityComparison); protected abstract getCount(): number; diff --git a/dist/commonjs/System/Collections/CollectionBase.js b/dist/commonjs/System/Collections/CollectionBase.js index c503ceb6..bb0843dc 100644 --- a/dist/commonjs/System/Collections/CollectionBase.js +++ b/dist/commonjs/System/Collections/CollectionBase.js @@ -23,8 +23,8 @@ var NAME = "CollectionBase", CMDC = "Cannot modify a disposed collection.", CMRO = "Cannot modify a read-only collection."; -var CollectionBase = function (_DisposableBase_1$def) { - _inherits(CollectionBase, _DisposableBase_1$def); +var CollectionBase = function (_DisposableBase_1$Dis) { + _inherits(CollectionBase, _DisposableBase_1$Dis); function CollectionBase(source) { var _equalityComparer = arguments.length <= 1 || arguments[1] === undefined ? Compare_1.areEqual : arguments[1]; @@ -52,12 +52,12 @@ var CollectionBase = function (_DisposableBase_1$def) { key: "assertModifiable", value: function assertModifiable() { this.throwIfDisposed(CMDC); - if (this.getIsReadOnly()) throw new InvalidOperationException_1.default(CMRO); + if (this.getIsReadOnly()) throw new InvalidOperationException_1.InvalidOperationException(CMRO); } }, { key: "assertVersion", value: function assertVersion(version) { - if (version != this._version) throw new InvalidOperationException_1.default("Collection was modified."); + if (version != this._version) throw new InvalidOperationException_1.InvalidOperationException("Collection was modified."); } }, { key: "_onModified", @@ -236,7 +236,7 @@ var CollectionBase = function (_DisposableBase_1$def) { value: function copyTo(target) { var index = arguments.length <= 1 || arguments[1] === undefined ? 0 : arguments[1]; - if (!target) throw new ArgumentNullException_1.default('target'); + if (!target) throw new ArgumentNullException_1.ArgumentNullException('target'); var count = this.getCount(), newLength = count + index; if (target.length < newLength) target.length = newLength; @@ -270,8 +270,9 @@ var CollectionBase = function (_DisposableBase_1$def) { }]); return CollectionBase; -}(DisposableBase_1.default); +}(DisposableBase_1.DisposableBase); +exports.CollectionBase = CollectionBase; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = CollectionBase; //# sourceMappingURL=CollectionBase.js.map diff --git a/dist/commonjs/System/Collections/CollectionBase.js.map b/dist/commonjs/System/Collections/CollectionBase.js.map index db38428e..762ae62b 100644 --- a/dist/commonjs/System/Collections/CollectionBase.js.map +++ b/dist/commonjs/System/Collections/CollectionBase.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/CollectionBase.js","System/Collections/CollectionBase.ts"],"names":[],"mappings":"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","file":"System/Collections/CollectionBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst Enumerator_1 = require(\"./Enumeration/Enumerator\");\nconst Compare_1 = require(\"../Compare\");\nconst ArgumentNullException_1 = require(\"../Exceptions/ArgumentNullException\");\nconst InvalidOperationException_1 = require(\"../Exceptions/InvalidOperationException\");\nconst DisposableBase_1 = require(\"../Disposable/DisposableBase\");\nconst NAME = \"CollectionBase\", CMDC = \"Cannot modify a disposed collection.\", CMRO = \"Cannot modify a read-only collection.\";\nclass CollectionBase extends DisposableBase_1.default {\n constructor(source, _equalityComparer = Compare_1.areEqual) {\n super();\n this._equalityComparer = _equalityComparer;\n var _ = this;\n _._disposableObjectName = NAME;\n _._importEntries(source);\n _._updateRecursion = 0;\n _._modifiedCount = 0;\n _._version = 0;\n }\n get count() {\n return this.getCount();\n }\n getIsReadOnly() {\n return false;\n }\n get isReadOnly() {\n return this.getIsReadOnly();\n }\n assertModifiable() {\n this.throwIfDisposed(CMDC);\n if (this.getIsReadOnly())\n throw new InvalidOperationException_1.default(CMRO);\n }\n assertVersion(version) {\n if (version != this._version)\n throw new InvalidOperationException_1.default(\"Collection was modified.\");\n }\n _onModified() { }\n _signalModification(increment) {\n var _ = this;\n if (increment)\n _._modifiedCount++;\n if (_._modifiedCount && !this._updateRecursion) {\n _._modifiedCount = 0;\n _._version++;\n try {\n _._onModified();\n }\n catch (ex) {\n console.error(ex);\n }\n return true;\n }\n return false;\n }\n _incrementModified() { this._modifiedCount++; }\n get isUpdating() { return this._updateRecursion != 0; }\n handleUpdate(closure) {\n if (!closure)\n return false;\n var _ = this;\n _.assertModifiable();\n _._updateRecursion++;\n var updated = false;\n try {\n if (updated = closure())\n _._modifiedCount++;\n }\n finally {\n _._updateRecursion--;\n }\n _._signalModification();\n return updated;\n }\n add(entry) {\n var _ = this;\n _.assertModifiable();\n _._updateRecursion++;\n try {\n if (_._addInternal(entry))\n _._modifiedCount++;\n }\n finally {\n _._updateRecursion--;\n }\n _._signalModification();\n }\n remove(entry, max = Infinity) {\n var _ = this;\n _.assertModifiable();\n _._updateRecursion++;\n var n;\n try {\n if (n = _._removeInternal(entry, max))\n _._modifiedCount++;\n }\n finally {\n _._updateRecursion--;\n }\n _._signalModification();\n return n;\n }\n clear() {\n var _ = this;\n _.assertModifiable();\n _._updateRecursion++;\n var n;\n try {\n if (n = _._clearInternal())\n _._modifiedCount++;\n }\n finally {\n _._updateRecursion--;\n }\n _._signalModification();\n return n;\n }\n _onDispose() {\n super._onDispose();\n this._clearInternal();\n this._version = 0;\n this._updateRecursion = 0;\n this._modifiedCount = 0;\n }\n _importEntries(entries) {\n var added = 0;\n if (entries) {\n if (Array.isArray(entries)) {\n for (let e of entries) {\n if (this._addInternal(e))\n added++;\n }\n }\n else {\n Enumerator_1.forEach(entries, e => {\n if (this._addInternal(e))\n added++;\n });\n }\n }\n return added;\n }\n importEntries(entries) {\n var _ = this;\n _.assertModifiable();\n _._updateRecursion++;\n var n;\n try {\n if (n = _._importEntries(entries))\n _._modifiedCount++;\n }\n finally {\n _._updateRecursion--;\n }\n _._signalModification();\n return n;\n }\n contains(entry) {\n if (!this.getCount())\n return false;\n var found = false, equals = this._equalityComparer;\n this.forEach(e => !(found = equals(entry, e)));\n return found;\n }\n forEach(action, useCopy) {\n if (useCopy) {\n var a = this.toArray();\n Enumerator_1.forEach(a, action);\n a.length = 0;\n }\n else {\n Enumerator_1.forEach(this.getEnumerator(), action);\n }\n }\n copyTo(target, index = 0) {\n if (!target)\n throw new ArgumentNullException_1.default('target');\n var count = this.getCount(), newLength = count + index;\n if (target.length < newLength)\n target.length = newLength;\n var e = this.getEnumerator();\n while (e.moveNext()) {\n target[index++] = e.current;\n }\n return target;\n }\n toArray() {\n var count = this.getCount();\n return this.copyTo(count > 65536 ? new Array(count) : []);\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = CollectionBase;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\nimport {forEach} from \"./Enumeration/Enumerator\";\r\nimport {areEqual} from \"../Compare\";\r\nimport ArgumentNullException from \"../Exceptions/ArgumentNullException\";\r\nimport InvalidOperationException from \"../Exceptions/InvalidOperationException\";\r\nimport DisposableBase from \"../Disposable/DisposableBase\";\r\n\r\n//noinspection SpellCheckingInspection\r\nconst NAME = \"CollectionBase\",\r\n CMDC = \"Cannot modify a disposed collection.\",\r\n CMRO = \"Cannot modify a read-only collection.\";\r\n\r\nabstract class CollectionBase\r\nextends DisposableBase implements ICollection, IEnumerateEach\r\n{\r\n\r\n\tconstructor(\r\n\t\tsource?:IEnumerableOrArray,\r\n\t\tprotected _equalityComparer:EqualityComparison = areEqual)\r\n\t{\r\n\t\tsuper();\r\n\t\tvar _ = this;\r\n\t\t_._disposableObjectName = NAME;\r\n\t\t_._importEntries(source);\r\n\t\t_._updateRecursion = 0;\r\n\t\t_._modifiedCount = 0;\r\n\t\t_._version = 0;\r\n\t}\r\n\r\n\r\n\tprotected abstract getCount():number;\r\n\r\n\tget count():number\r\n\t{\r\n\t\treturn this.getCount();\r\n\t}\r\n\r\n\tprotected getIsReadOnly():boolean\r\n\t{\r\n\t\treturn false;\r\n\t}\r\n\r\n\tget isReadOnly():boolean\r\n\t{\r\n\t\treturn this.getIsReadOnly();\r\n\t}\r\n\r\n\tprotected assertModifiable():void\r\n\t{\r\n\t\tthis.throwIfDisposed(CMDC);\r\n\t\tif(this.getIsReadOnly())\r\n\t\t\tthrow new InvalidOperationException(CMRO);\r\n\t}\r\n\r\n\tprotected _version:number; // Provides an easy means of tracking changes and invalidating enumerables.\r\n\tassertVersion(version:number):void\r\n\t{\r\n\t\tif(version!=this._version)\r\n\t\t\tthrow new InvalidOperationException(\"Collection was modified.\");\r\n\t}\r\n\r\n\t/*\r\n\t * Note: Avoid changing modified count by any means but ++;\r\n\t * If setting modified count by the result of a closure it may be a negative number or NaN and ruin the pattern.\r\n\t */\r\n\tprivate _modifiedCount:number;\r\n\tprivate _updateRecursion:number;\r\n\r\n\tprotected _onModified():void {}\r\n\r\n\tprotected _signalModification(increment?:boolean):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(increment) _._modifiedCount++;\r\n\t\tif(_._modifiedCount && !this._updateRecursion)\r\n\t\t{\r\n\t\t\t_._modifiedCount = 0;\r\n\t\t\t_._version++;\r\n\t\t\ttry {\r\n\t\t\t\t_._onModified();\r\n\t\t\t} catch (ex) {\r\n\t\t\t\t// Avoid fatal errors which may have been caused by consumer.\r\n\t\t\t\tconsole.error(ex);\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tprotected _incrementModified():void { this._modifiedCount++; }\r\n\r\n\tget isUpdating():boolean { return this._updateRecursion!=0; }\r\n\r\n\t/**\r\n\t * Takes a closure that if returning true will propagate an update signal.\r\n\t * Multiple update operations can be occurring at once or recursively and the onModified signal will only occur once they're done.\r\n\t * @param closure\r\n\t * @returns {boolean}\r\n\t */\r\n\thandleUpdate(closure?:() => boolean):boolean\r\n\t{\r\n\t\tif(!closure) return false;\r\n\t\tvar _ = this;\r\n\t\t_.assertModifiable();\r\n\t\t_._updateRecursion++;\r\n\t\tvar updated:boolean = false;\r\n\r\n\t\ttry\r\n\t\t{\r\n\t\t\tif(updated = closure())\r\n\t\t\t\t_._modifiedCount++;\r\n\t\t}\r\n\t\tfinally\r\n\t\t{\r\n\t\t\t_._updateRecursion--;\r\n\t\t}\r\n\r\n\t\t_._signalModification();\r\n\r\n\t\treturn updated;\r\n\t}\r\n\r\n\tprotected abstract _addInternal(entry:T):boolean;\r\n\r\n\t/*\r\n\t * Note: for a slight amount more code, we avoid creating functions/closures.\r\n\t * Calling handleUpdate is the correct pattern, but if possible avoid creating another function scope.\r\n\t */\r\n\r\n\tadd(entry:T):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.assertModifiable();\r\n\t\t_._updateRecursion++;\r\n\r\n\t\ttry\r\n\t\t{ if(_._addInternal(entry)) _._modifiedCount++; }\r\n\t\tfinally\r\n\t\t{ _._updateRecursion--; }\r\n\r\n\t\t_._signalModification();\r\n\t}\r\n\r\n\tprotected abstract _removeInternal(entry:T, max?:number):number;\r\n\r\n\tremove(entry:T, max:number = Infinity):number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.assertModifiable();\r\n\t\t_._updateRecursion++;\r\n\r\n\t\tvar n:number;\r\n\t\ttry\r\n\t\t{ if(n = _._removeInternal(entry, max)) _._modifiedCount++; }\r\n\t\tfinally\r\n\t\t{ _._updateRecursion--; }\r\n\r\n\t\t_._signalModification();\r\n\t\treturn n;\r\n\t}\r\n\r\n\tprotected abstract _clearInternal():number;\r\n\r\n\tclear():number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.assertModifiable();\r\n\t\t_._updateRecursion++;\r\n\r\n\t\tvar n:number;\r\n\t\ttry\r\n\t\t{ if(n = _._clearInternal()) _._modifiedCount++; }\r\n\t\tfinally\r\n\t\t{ _._updateRecursion--; }\r\n\r\n\t\t_._signalModification();\r\n\r\n\t\treturn n;\r\n\t}\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis._clearInternal();\r\n\t\tthis._version = 0;\r\n\t\tthis._updateRecursion = 0;\r\n\t\tthis._modifiedCount = 0;\r\n\t}\r\n\r\n\tprotected _importEntries(entries:IEnumerableOrArray):number\r\n\t{\r\n\t\tvar added = 0;\r\n\t\tif(entries)\r\n\t\t{\r\n\t\t\tif(Array.isArray(entries))\r\n\t\t\t{\r\n\t\t\t\t// Optimize for avoiding a new closure.\r\n\t\t\t\tfor(let e of entries)\r\n\t\t\t\t{\r\n\t\t\t\t\tif(this._addInternal(e)) added++;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tforEach(entries, e=>\r\n\t\t\t\t{\r\n\t\t\t\t\tif(this._addInternal(e)) added++;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn added;\r\n\t}\r\n\r\n\timportEntries(entries:IEnumerableOrArray):number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.assertModifiable();\r\n\t\t_._updateRecursion++;\r\n\r\n\t\tvar n:number;\r\n\t\ttry\r\n\t\t{ if(n = _._importEntries(entries)) _._modifiedCount++; }\r\n\t\tfinally\r\n\t\t{ _._updateRecursion--; }\r\n\r\n\t\t_._signalModification();\r\n\t\treturn n;\r\n\t}\r\n\r\n\t// Fundamentally the most important part of the collection.\r\n\tabstract getEnumerator():IEnumerator;\r\n\r\n\tcontains(entry:T):boolean\r\n\t{\r\n\t\tif(!this.getCount()) return false;\r\n\t\tvar found:boolean = false, equals = this._equalityComparer;\r\n\t\tthis.forEach(e => !(found = equals(entry, e)));\r\n\t\treturn found;\r\n\t}\r\n\r\n\tforEach(action:Predicate|Action, useCopy?:boolean):void\r\n\t{\r\n\t\tif(useCopy)\r\n\t\t{\r\n\t\t\tvar a = this.toArray();\r\n\t\t\tforEach(a, action);\r\n\t\t\ta.length = 0;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tforEach(this.getEnumerator(), action);\r\n\t\t}\r\n\t}\r\n\r\n\tcopyTo>(\r\n\t\ttarget:TTarget,\r\n\t\tindex:number = 0):TTarget\r\n\t{\r\n\t\tif(!target) throw new ArgumentNullException('target');\r\n\r\n\t\tvar count = this.getCount(), newLength = count + index;\r\n\t\tif(target.length65536 ? new Array(count) : []);\r\n\t}\r\n\r\n\r\n}\r\n\r\nexport default CollectionBase;"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/CollectionBase.js","System/Collections/CollectionBase.ts"],"names":[],"mappings":"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","file":"System/Collections/CollectionBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst Enumerator_1 = require(\"./Enumeration/Enumerator\");\nconst Compare_1 = require(\"../Compare\");\nconst ArgumentNullException_1 = require(\"../Exceptions/ArgumentNullException\");\nconst InvalidOperationException_1 = require(\"../Exceptions/InvalidOperationException\");\nconst DisposableBase_1 = require(\"../Disposable/DisposableBase\");\nconst NAME = \"CollectionBase\", CMDC = \"Cannot modify a disposed collection.\", CMRO = \"Cannot modify a read-only collection.\";\nclass CollectionBase extends DisposableBase_1.DisposableBase {\n constructor(source, _equalityComparer = Compare_1.areEqual) {\n super();\n this._equalityComparer = _equalityComparer;\n var _ = this;\n _._disposableObjectName = NAME;\n _._importEntries(source);\n _._updateRecursion = 0;\n _._modifiedCount = 0;\n _._version = 0;\n }\n get count() {\n return this.getCount();\n }\n getIsReadOnly() {\n return false;\n }\n get isReadOnly() {\n return this.getIsReadOnly();\n }\n assertModifiable() {\n this.throwIfDisposed(CMDC);\n if (this.getIsReadOnly())\n throw new InvalidOperationException_1.InvalidOperationException(CMRO);\n }\n assertVersion(version) {\n if (version != this._version)\n throw new InvalidOperationException_1.InvalidOperationException(\"Collection was modified.\");\n }\n _onModified() { }\n _signalModification(increment) {\n var _ = this;\n if (increment)\n _._modifiedCount++;\n if (_._modifiedCount && !this._updateRecursion) {\n _._modifiedCount = 0;\n _._version++;\n try {\n _._onModified();\n }\n catch (ex) {\n console.error(ex);\n }\n return true;\n }\n return false;\n }\n _incrementModified() { this._modifiedCount++; }\n get isUpdating() { return this._updateRecursion != 0; }\n handleUpdate(closure) {\n if (!closure)\n return false;\n var _ = this;\n _.assertModifiable();\n _._updateRecursion++;\n var updated = false;\n try {\n if (updated = closure())\n _._modifiedCount++;\n }\n finally {\n _._updateRecursion--;\n }\n _._signalModification();\n return updated;\n }\n add(entry) {\n var _ = this;\n _.assertModifiable();\n _._updateRecursion++;\n try {\n if (_._addInternal(entry))\n _._modifiedCount++;\n }\n finally {\n _._updateRecursion--;\n }\n _._signalModification();\n }\n remove(entry, max = Infinity) {\n var _ = this;\n _.assertModifiable();\n _._updateRecursion++;\n var n;\n try {\n if (n = _._removeInternal(entry, max))\n _._modifiedCount++;\n }\n finally {\n _._updateRecursion--;\n }\n _._signalModification();\n return n;\n }\n clear() {\n var _ = this;\n _.assertModifiable();\n _._updateRecursion++;\n var n;\n try {\n if (n = _._clearInternal())\n _._modifiedCount++;\n }\n finally {\n _._updateRecursion--;\n }\n _._signalModification();\n return n;\n }\n _onDispose() {\n super._onDispose();\n this._clearInternal();\n this._version = 0;\n this._updateRecursion = 0;\n this._modifiedCount = 0;\n }\n _importEntries(entries) {\n var added = 0;\n if (entries) {\n if (Array.isArray(entries)) {\n for (let e of entries) {\n if (this._addInternal(e))\n added++;\n }\n }\n else {\n Enumerator_1.forEach(entries, e => {\n if (this._addInternal(e))\n added++;\n });\n }\n }\n return added;\n }\n importEntries(entries) {\n var _ = this;\n _.assertModifiable();\n _._updateRecursion++;\n var n;\n try {\n if (n = _._importEntries(entries))\n _._modifiedCount++;\n }\n finally {\n _._updateRecursion--;\n }\n _._signalModification();\n return n;\n }\n contains(entry) {\n if (!this.getCount())\n return false;\n var found = false, equals = this._equalityComparer;\n this.forEach(e => !(found = equals(entry, e)));\n return found;\n }\n forEach(action, useCopy) {\n if (useCopy) {\n var a = this.toArray();\n Enumerator_1.forEach(a, action);\n a.length = 0;\n }\n else {\n Enumerator_1.forEach(this.getEnumerator(), action);\n }\n }\n copyTo(target, index = 0) {\n if (!target)\n throw new ArgumentNullException_1.ArgumentNullException('target');\n var count = this.getCount(), newLength = count + index;\n if (target.length < newLength)\n target.length = newLength;\n var e = this.getEnumerator();\n while (e.moveNext()) {\n target[index++] = e.current;\n }\n return target;\n }\n toArray() {\n var count = this.getCount();\n return this.copyTo(count > 65536 ? new Array(count) : []);\n }\n}\nexports.CollectionBase = CollectionBase;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = CollectionBase;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {forEach} from \"./Enumeration/Enumerator\";\r\nimport {areEqual} from \"../Compare\";\r\nimport {ArgumentNullException} from \"../Exceptions/ArgumentNullException\";\r\nimport {InvalidOperationException} from \"../Exceptions/InvalidOperationException\";\r\nimport {DisposableBase} from \"../Disposable/DisposableBase\";\r\nimport {ICollection} from \"./ICollection\";\r\nimport {IEnumerator} from \"./Enumeration/IEnumerator\";\r\nimport {IEnumerateEach} from \"./Enumeration/IEnumerateEach\";\r\nimport {EqualityComparison, Predicate, Action} from \"../FunctionTypes\";\r\nimport {IEnumerableOrArray} from \"./IEnumerableOrArray\";\r\nimport {IArray} from \"./Array/IArray\";\r\n\r\n//noinspection SpellCheckingInspection\r\nconst NAME = \"CollectionBase\",\r\n CMDC = \"Cannot modify a disposed collection.\",\r\n CMRO = \"Cannot modify a read-only collection.\";\r\n\r\nexport abstract class CollectionBase\r\nextends DisposableBase implements ICollection, IEnumerateEach\r\n{\r\n\r\n\tconstructor(\r\n\t\tsource?:IEnumerableOrArray,\r\n\t\tprotected _equalityComparer:EqualityComparison = areEqual)\r\n\t{\r\n\t\tsuper();\r\n\t\tvar _ = this;\r\n\t\t_._disposableObjectName = NAME;\r\n\t\t_._importEntries(source);\r\n\t\t_._updateRecursion = 0;\r\n\t\t_._modifiedCount = 0;\r\n\t\t_._version = 0;\r\n\t}\r\n\r\n\r\n\tprotected abstract getCount():number;\r\n\r\n\tget count():number\r\n\t{\r\n\t\treturn this.getCount();\r\n\t}\r\n\r\n\tprotected getIsReadOnly():boolean\r\n\t{\r\n\t\treturn false;\r\n\t}\r\n\r\n\tget isReadOnly():boolean\r\n\t{\r\n\t\treturn this.getIsReadOnly();\r\n\t}\r\n\r\n\tprotected assertModifiable():void\r\n\t{\r\n\t\tthis.throwIfDisposed(CMDC);\r\n\t\tif(this.getIsReadOnly())\r\n\t\t\tthrow new InvalidOperationException(CMRO);\r\n\t}\r\n\r\n\tprotected _version:number; // Provides an easy means of tracking changes and invalidating enumerables.\r\n\tassertVersion(version:number):void\r\n\t{\r\n\t\tif(version!=this._version)\r\n\t\t\tthrow new InvalidOperationException(\"Collection was modified.\");\r\n\t}\r\n\r\n\t/*\r\n\t * Note: Avoid changing modified count by any means but ++;\r\n\t * If setting modified count by the result of a closure it may be a negative number or NaN and ruin the pattern.\r\n\t */\r\n\tprivate _modifiedCount:number;\r\n\tprivate _updateRecursion:number;\r\n\r\n\tprotected _onModified():void {}\r\n\r\n\tprotected _signalModification(increment?:boolean):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(increment) _._modifiedCount++;\r\n\t\tif(_._modifiedCount && !this._updateRecursion)\r\n\t\t{\r\n\t\t\t_._modifiedCount = 0;\r\n\t\t\t_._version++;\r\n\t\t\ttry\r\n\t\t\t{\r\n\t\t\t\t_._onModified();\r\n\t\t\t}\r\n\t\t\tcatch(ex)\r\n\t\t\t{\r\n\t\t\t\t// Avoid fatal errors which may have been caused by consumer.\r\n\t\t\t\tconsole.error(ex);\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tprotected _incrementModified():void { this._modifiedCount++; }\r\n\r\n\tget isUpdating():boolean { return this._updateRecursion!=0; }\r\n\r\n\t/**\r\n\t * Takes a closure that if returning true will propagate an update signal.\r\n\t * Multiple update operations can be occurring at once or recursively and the onModified signal will only occur once they're done.\r\n\t * @param closure\r\n\t * @returns {boolean}\r\n\t */\r\n\thandleUpdate(closure?:() => boolean):boolean\r\n\t{\r\n\t\tif(!closure) return false;\r\n\t\tvar _ = this;\r\n\t\t_.assertModifiable();\r\n\t\t_._updateRecursion++;\r\n\t\tvar updated:boolean = false;\r\n\r\n\t\ttry\r\n\t\t{\r\n\t\t\tif(updated = closure())\r\n\t\t\t\t_._modifiedCount++;\r\n\t\t}\r\n\t\tfinally\r\n\t\t{\r\n\t\t\t_._updateRecursion--;\r\n\t\t}\r\n\r\n\t\t_._signalModification();\r\n\r\n\t\treturn updated;\r\n\t}\r\n\r\n\tprotected abstract _addInternal(entry:T):boolean;\r\n\r\n\t/*\r\n\t * Note: for a slight amount more code, we avoid creating functions/closures.\r\n\t * Calling handleUpdate is the correct pattern, but if possible avoid creating another function scope.\r\n\t */\r\n\r\n\tadd(entry:T):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.assertModifiable();\r\n\t\t_._updateRecursion++;\r\n\r\n\t\ttry\r\n\t\t{ if(_._addInternal(entry)) _._modifiedCount++; }\r\n\t\tfinally\r\n\t\t{ _._updateRecursion--; }\r\n\r\n\t\t_._signalModification();\r\n\t}\r\n\r\n\tprotected abstract _removeInternal(entry:T, max?:number):number;\r\n\r\n\tremove(entry:T, max:number = Infinity):number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.assertModifiable();\r\n\t\t_._updateRecursion++;\r\n\r\n\t\tvar n:number;\r\n\t\ttry\r\n\t\t{ if(n = _._removeInternal(entry, max)) _._modifiedCount++; }\r\n\t\tfinally\r\n\t\t{ _._updateRecursion--; }\r\n\r\n\t\t_._signalModification();\r\n\t\treturn n;\r\n\t}\r\n\r\n\tprotected abstract _clearInternal():number;\r\n\r\n\tclear():number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.assertModifiable();\r\n\t\t_._updateRecursion++;\r\n\r\n\t\tvar n:number;\r\n\t\ttry\r\n\t\t{ if(n = _._clearInternal()) _._modifiedCount++; }\r\n\t\tfinally\r\n\t\t{ _._updateRecursion--; }\r\n\r\n\t\t_._signalModification();\r\n\r\n\t\treturn n;\r\n\t}\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis._clearInternal();\r\n\t\tthis._version = 0;\r\n\t\tthis._updateRecursion = 0;\r\n\t\tthis._modifiedCount = 0;\r\n\t}\r\n\r\n\tprotected _importEntries(entries:IEnumerableOrArray):number\r\n\t{\r\n\t\tvar added = 0;\r\n\t\tif(entries)\r\n\t\t{\r\n\t\t\tif(Array.isArray(entries))\r\n\t\t\t{\r\n\t\t\t\t// Optimize for avoiding a new closure.\r\n\t\t\t\tfor(let e of entries)\r\n\t\t\t\t{\r\n\t\t\t\t\tif(this._addInternal(e)) added++;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tforEach(entries, e=>\r\n\t\t\t\t{\r\n\t\t\t\t\tif(this._addInternal(e)) added++;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn added;\r\n\t}\r\n\r\n\timportEntries(entries:IEnumerableOrArray):number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.assertModifiable();\r\n\t\t_._updateRecursion++;\r\n\r\n\t\tvar n:number;\r\n\t\ttry\r\n\t\t{ if(n = _._importEntries(entries)) _._modifiedCount++; }\r\n\t\tfinally\r\n\t\t{ _._updateRecursion--; }\r\n\r\n\t\t_._signalModification();\r\n\t\treturn n;\r\n\t}\r\n\r\n\t// Fundamentally the most important part of the collection.\r\n\tabstract getEnumerator():IEnumerator;\r\n\r\n\tcontains(entry:T):boolean\r\n\t{\r\n\t\tif(!this.getCount()) return false;\r\n\t\tvar found:boolean = false, equals = this._equalityComparer;\r\n\t\tthis.forEach(e => !(found = equals(entry, e)));\r\n\t\treturn found;\r\n\t}\r\n\r\n\tforEach(action:Predicate|Action, useCopy?:boolean):void\r\n\t{\r\n\t\tif(useCopy)\r\n\t\t{\r\n\t\t\tvar a = this.toArray();\r\n\t\t\tforEach(a, action);\r\n\t\t\ta.length = 0;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tforEach(this.getEnumerator(), action);\r\n\t\t}\r\n\t}\r\n\r\n\tcopyTo>(\r\n\t\ttarget:TTarget,\r\n\t\tindex:number = 0):TTarget\r\n\t{\r\n\t\tif(!target) throw new ArgumentNullException('target');\r\n\r\n\t\tvar count = this.getCount(), newLength = count + index;\r\n\t\tif(target.length65536 ? new Array(count) : []);\r\n\t}\r\n\r\n\r\n}\r\n\r\nexport default CollectionBase;"]} \ No newline at end of file diff --git a/dist/commonjs/System/Collections/Dictionaries/Dictionary.d.ts b/dist/commonjs/System/Collections/Dictionaries/Dictionary.d.ts index 8ce9d526..990f04d1 100644 --- a/dist/commonjs/System/Collections/Dictionaries/Dictionary.d.ts +++ b/dist/commonjs/System/Collections/Dictionaries/Dictionary.d.ts @@ -1,14 +1,16 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Original: http://linqjs.codeplex.com/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { IKeyValuePair } from "../../KeyValuePair"; +import { IEnumerator } from "../Enumeration/IEnumerator"; +import { ILinkedNode } from "../ILinkedListNode"; +import { Selector } from "../../FunctionTypes"; import DictionaryBase from "./DictionaryBase"; export interface IHashEntry extends ILinkedNode>, IKeyValuePair { } -export default class Dictionary extends DictionaryBase { +export declare class Dictionary extends DictionaryBase { private _keyComparer; private _entries; private _buckets; @@ -24,3 +26,4 @@ export default class Dictionary extends DictionaryBase\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport {areEqual} from \"../../Compare\";\r\nimport Type from \"../../Types\";\r\nimport Functions from \"../../Functions\";\r\nimport DictionaryBase from \"./DictionaryBase\";\r\nimport EnumeratorBase from \"../Enumeration/EnumeratorBase\";\r\nimport LinkedNodeList from \"../LinkedNodeList\";\r\nimport ObjectPool from \"../../Disposable/ObjectPool\";\r\n\r\nconst VOID0:any = void 0;\r\n\r\n\r\nexport interface IHashEntry\r\nextends ILinkedNode>, IKeyValuePair {\r\n\r\n}\r\n// LinkedList for Dictionary\r\nclass HashEntry\r\nimplements IHashEntry\r\n{\r\n\tconstructor(\r\n\t\tpublic key?:TKey,\r\n\t\tpublic value?:TValue,\r\n\t\tpublic previous?:IHashEntry,\r\n\t\tpublic next?:IHashEntry)\r\n\t{ }\r\n}\r\n\r\n\r\nvar linkedListPool:ObjectPool>;\r\nfunction linkedNodeList():LinkedNodeList;\r\nfunction linkedNodeList(recycle?:LinkedNodeList):void;\r\nfunction linkedNodeList(recycle?:LinkedNodeList):LinkedNodeList {\r\n\tif(!linkedListPool)\r\n\t\tlinkedListPool\r\n\t\t\t= new ObjectPool>(20,()=>new LinkedNodeList());\r\n\tif(!recycle) return linkedListPool.take();\r\n\trecycle.clear();\r\n\tlinkedListPool.add(recycle);\r\n}\r\n\r\n// static utility methods\r\nfunction callHasOwnProperty(target:any, key:string)\r\n{\r\n\treturn Object.prototype.hasOwnProperty.call(target, key);\r\n}\r\n\r\nconst NULL = \"null\", GET_HASH_CODE = \"getHashCode\";\r\nfunction getHashString(obj:any):string\r\n{\r\n\tif(obj===null) return NULL;\r\n\tif(obj===VOID0) return Type.UNDEFINED;\r\n\r\n\t// See IHashable.\r\n\tif(Type.hasMemberOfType(obj, GET_HASH_CODE, Type.FUNCTION))\r\n\t{\r\n\t\treturn obj.getHashCode();\r\n\t}\r\n\r\n\treturn (typeof obj.toString==Type.FUNCTION)\r\n\t\t? obj.toString()\r\n\t\t: Object.prototype.toString.call(obj);\r\n}\r\n\r\n\r\nexport default\r\nclass Dictionary extends DictionaryBase\r\n{\r\n\t// Retains the order...\r\n\tprivate _entries:LinkedNodeList>;\r\n\tprivate _buckets:IMap>>>;\r\n\r\n\tconstructor(\r\n\t\tprivate _keyComparer:Selector = Functions.Identity)\r\n\t{\r\n\t\tsuper();\r\n\t\tthis._entries = linkedNodeList();\r\n\t\tthis._buckets = {};\r\n\t}\r\n\r\n\tprotected getCount():number\r\n\t{\r\n\t\treturn this._entries.unsafeCount;\r\n\t}\r\n\r\n\r\n\tprivate _getBucket(\r\n\t\thash:string,\r\n\t\tcreateIfMissing?:boolean):LinkedNodeList>>\r\n\t{\r\n\t\tif(hash===null || hash===VOID0 || !createIfMissing && !this.getCount())\r\n\t\t\treturn null;\r\n\r\n\t\tvar buckets = this._buckets;\r\n\t\tvar bucket = callHasOwnProperty(buckets, hash) ? buckets[hash] : VOID0;\r\n\r\n\t\tif(createIfMissing && !bucket)\r\n\t\t\tbuckets[hash]\r\n\t\t\t\t= bucket\r\n\t\t\t\t= linkedNodeList();\r\n\r\n\t\treturn bucket;\r\n\t}\r\n\r\n\tprivate _getBucketEntry(\r\n\t\tkey:TKey,\r\n\t\thash?:string,\r\n\t\tbucket?:LinkedNodeList>>):IHashEntry>\r\n\t{\r\n\t\tif(key===null || key===VOID0 || !this.getCount())\r\n\t\t\treturn null;\r\n\r\n\t\tvar _ = this,\r\n\t\t comparer = _._keyComparer,\r\n\t\t compareKey = comparer(key);\r\n\r\n\t\tif(!bucket) bucket = _._getBucket(hash || getHashString(compareKey));\r\n\r\n\t\treturn bucket && bucket\r\n\t\t\t\t.find(e=>comparer(e.key)===compareKey);\r\n\t}\r\n\r\n\tprotected _getEntry(key:TKey):IHashEntry\r\n\t{\r\n\t\tvar e = this._getBucketEntry(key);\r\n\t\treturn e && e.value;\r\n\t}\r\n\r\n\tgetValue(key:TKey):TValue\r\n\t{\r\n\t\tvar e = this._getEntry(key);\r\n\t\treturn e ? e.value : VOID0;\r\n\t}\r\n\r\n\tprotected _setValueInternal(key:TKey, value:TValue):boolean\r\n\t{\r\n\t\tvar _ = this,\r\n\t\t buckets = _._buckets,\r\n\t\t entries = _._entries,\r\n\t\t comparer = _._keyComparer,\r\n\t\t compareKey = comparer(key),\r\n\t\t hash = getHashString(compareKey),\r\n\t\t bucket = _._getBucket(hash),\r\n\t\t bucketEntry = bucket && _._getBucketEntry(key, hash, bucket);\r\n\r\n\t\t// Entry exits? Delete or update\r\n\t\tif(bucketEntry)\r\n\t\t{\r\n\t\t\tif(value===VOID0)\r\n\t\t\t{\r\n\t\t\t\tlet x = bucket.removeNode(bucketEntry),\r\n\t\t\t\t y = entries.removeNode(bucketEntry.value);\r\n\r\n\t\t\t\tif(x && !bucket.count) {\r\n\t\t\t\t\tdelete buckets[hash];\r\n\t\t\t\t\tlinkedNodeList(bucket);\r\n\t\t\t\t\tbucket = null;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(x!==y) throw \"Entries and buckets are out of sync.\";\r\n\r\n\t\t\t\tif(x) return true;\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\t// We don't expose the internal hash entries so replacing the value is ok.\r\n\t\t\t\tvar old = bucketEntry.value.value;\r\n\t\t\t\tbucketEntry.value.value = value;\r\n\t\t\t\treturn !areEqual(value, old);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\telse if(value!==VOID0)\r\n\t\t{\r\n\t\t\tif(!bucket) bucket = _._getBucket(hash, true);\r\n\t\t\tlet entry = new HashEntry(key, value);\r\n\t\t\tentries.addNode(entry);\r\n\t\t\tbucket.addNode(new HashEntry(key, entry));\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\tprotected _clearInternal():number\r\n\t{\r\n\t\tvar _ = this, buckets = _._buckets;\r\n\r\n\t\t// Ensure reset and clean...\r\n\t\tfor(let key in buckets)\r\n\t\t{\r\n\t\t\tif(buckets.hasOwnProperty(key))\r\n\t\t\t{\r\n\t\t\t\tlet bucket = buckets[key];\r\n\t\t\t\tdelete buckets[key];\r\n\t\t\t\tlinkedNodeList(bucket);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn _._entries.clear();\r\n\t}\r\n\r\n\t/*\r\n\t * Note: super.getEnumerator() works perfectly well,\r\n\t * but enumerating the internal linked node list is much more efficient.\r\n\t */\r\n\tgetEnumerator():IEnumerator>\r\n\t{\r\n\t\tvar _ = this, ver:number, currentEntry:IHashEntry;\r\n\r\n\t\treturn new EnumeratorBase>(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tver = _._version;\r\n\t\t\t\tcurrentEntry = _._entries.first;\r\n\t\t\t},\r\n\t\t\t(yielder) =>\r\n\t\t\t{\r\n\t\t\t\tif(currentEntry!=null)\r\n\t\t\t\t{\r\n\t\t\t\t\t_.assertVersion(ver);\r\n\t\t\t\t\tvar result = {key: currentEntry.key, value: currentEntry.value};\r\n\t\t\t\t\tcurrentEntry = currentEntry.next;\r\n\t\t\t\t\treturn yielder.yieldReturn(result);\r\n\t\t\t\t}\r\n\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tprotected getKeys():TKey[]\r\n\t{\r\n\t\tvar _ = this, result:TKey[] = [];\r\n\t\tvar e = _._entries.first;\r\n\t\twhile(e)\r\n\t\t{\r\n\t\t\tresult.push(e.key);\r\n\t\t\te = e.next;\r\n\t\t}\r\n\t\treturn result;\r\n\t}\r\n\r\n\tprotected getValues():TValue[]\r\n\t{\r\n\t\tvar _ = this, result:TValue[] = [];\r\n\t\tvar e = _._entries.first;\r\n\t\twhile(e)\r\n\t\t{\r\n\t\t\tresult.push(e.value);\r\n\t\t\te = e.next;\r\n\t\t}\r\n\t\treturn result;\r\n\t}\r\n\r\n}\r\n","/*!\n * @author electricessence / https://github.com/electricessence/\n * Original: http://linqjs.codeplex.com/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n'use strict';\nconst Compare_1 = require(\"../../Compare\");\nconst Types_1 = require(\"../../Types\");\nconst Functions_1 = require(\"../../Functions\");\nconst DictionaryBase_1 = require(\"./DictionaryBase\");\nconst EnumeratorBase_1 = require(\"../Enumeration/EnumeratorBase\");\nconst LinkedNodeList_1 = require(\"../LinkedNodeList\");\nconst ObjectPool_1 = require(\"../../Disposable/ObjectPool\");\nconst VOID0 = void 0;\nclass HashEntry {\n constructor(key, value, previous, next) {\n this.key = key;\n this.value = value;\n this.previous = previous;\n this.next = next;\n }\n}\nvar linkedListPool;\nfunction linkedNodeList(recycle) {\n if (!linkedListPool)\n linkedListPool\n = new ObjectPool_1.default(20, () => new LinkedNodeList_1.default());\n if (!recycle)\n return linkedListPool.take();\n recycle.clear();\n linkedListPool.add(recycle);\n}\nfunction callHasOwnProperty(target, key) {\n return Object.prototype.hasOwnProperty.call(target, key);\n}\nconst NULL = \"null\", GET_HASH_CODE = \"getHashCode\";\nfunction getHashString(obj) {\n if (obj === null)\n return NULL;\n if (obj === VOID0)\n return Types_1.default.UNDEFINED;\n if (Types_1.default.hasMemberOfType(obj, GET_HASH_CODE, Types_1.default.FUNCTION)) {\n return obj.getHashCode();\n }\n return (typeof obj.toString == Types_1.default.FUNCTION)\n ? obj.toString()\n : Object.prototype.toString.call(obj);\n}\nclass Dictionary extends DictionaryBase_1.default {\n constructor(_keyComparer = Functions_1.default.Identity) {\n super();\n this._keyComparer = _keyComparer;\n this._entries = linkedNodeList();\n this._buckets = {};\n }\n getCount() {\n return this._entries.unsafeCount;\n }\n _getBucket(hash, createIfMissing) {\n if (hash === null || hash === VOID0 || !createIfMissing && !this.getCount())\n return null;\n var buckets = this._buckets;\n var bucket = callHasOwnProperty(buckets, hash) ? buckets[hash] : VOID0;\n if (createIfMissing && !bucket)\n buckets[hash]\n = bucket\n = linkedNodeList();\n return bucket;\n }\n _getBucketEntry(key, hash, bucket) {\n if (key === null || key === VOID0 || !this.getCount())\n return null;\n var _ = this, comparer = _._keyComparer, compareKey = comparer(key);\n if (!bucket)\n bucket = _._getBucket(hash || getHashString(compareKey));\n return bucket && bucket\n .find(e => comparer(e.key) === compareKey);\n }\n _getEntry(key) {\n var e = this._getBucketEntry(key);\n return e && e.value;\n }\n getValue(key) {\n var e = this._getEntry(key);\n return e ? e.value : VOID0;\n }\n _setValueInternal(key, value) {\n var _ = this, buckets = _._buckets, entries = _._entries, comparer = _._keyComparer, compareKey = comparer(key), hash = getHashString(compareKey), bucket = _._getBucket(hash), bucketEntry = bucket && _._getBucketEntry(key, hash, bucket);\n if (bucketEntry) {\n if (value === VOID0) {\n let x = bucket.removeNode(bucketEntry), y = entries.removeNode(bucketEntry.value);\n if (x && !bucket.count) {\n delete buckets[hash];\n linkedNodeList(bucket);\n bucket = null;\n }\n if (x !== y)\n throw \"Entries and buckets are out of sync.\";\n if (x)\n return true;\n }\n else {\n var old = bucketEntry.value.value;\n bucketEntry.value.value = value;\n return !Compare_1.areEqual(value, old);\n }\n }\n else if (value !== VOID0) {\n if (!bucket)\n bucket = _._getBucket(hash, true);\n let entry = new HashEntry(key, value);\n entries.addNode(entry);\n bucket.addNode(new HashEntry(key, entry));\n return true;\n }\n return false;\n }\n _clearInternal() {\n var _ = this, buckets = _._buckets;\n for (let key in buckets) {\n if (buckets.hasOwnProperty(key)) {\n let bucket = buckets[key];\n delete buckets[key];\n linkedNodeList(bucket);\n }\n }\n return _._entries.clear();\n }\n getEnumerator() {\n var _ = this, ver, currentEntry;\n return new EnumeratorBase_1.default(() => {\n ver = _._version;\n currentEntry = _._entries.first;\n }, (yielder) => {\n if (currentEntry != null) {\n _.assertVersion(ver);\n var result = { key: currentEntry.key, value: currentEntry.value };\n currentEntry = currentEntry.next;\n return yielder.yieldReturn(result);\n }\n return yielder.yieldBreak();\n });\n }\n getKeys() {\n var _ = this, result = [];\n var e = _._entries.first;\n while (e) {\n result.push(e.key);\n e = e.next;\n }\n return result;\n }\n getValues() {\n var _ = this, result = [];\n var e = _._entries.first;\n while (e) {\n result.push(e.value);\n e = e.next;\n }\n return result;\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Dictionary;\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Dictionaries/Dictionary.js","System/Collections/Dictionaries/Dictionary.ts"],"names":[],"mappings":";;;;;AAKA;;;;;;;;;;;;ACCA,IAAA,YAAA,QAAuB,eAAvB,CAAA;AACA,IAAA,UAAA,QAAmB,aAAnB,CAAA;AACA,IAAA,cAAA,QAAwB,iBAAxB,CAAA;AACA,IAAA,mBAAA,QAA6B,+BAA7B,CAAA;AACA,IAAA,mBAAA,QAA6B,mBAA7B,CAAA;AACA,IAAA,eAAA,QAAyB,6BAAzB,CAAA;AAMA,IAAA,mBAAA,QAA2B,kBAA3B,CAAA;AAEA,IAAM,QAAY,KAAK,CAAL;;IASlB,YAGC,SAHD,SAGC,CACQ,GADR,EAEQ,KAFR,EAGQ,QAHR,EAIQ,IAJR,EAIsC;0BAPvC,WAOuC;;AAH9B,SAAA,GAAA,GAAA,GAAA,CAG8B;AAF9B,SAAA,KAAA,GAAA,KAAA,CAE8B;AAD9B,SAAA,QAAA,GAAA,QAAA,CAC8B;AAA9B,SAAA,IAAA,GAAA,IAAA,CAA8B;CAJtC;;AASD,IAAI,cAAJ;AAGA,SAAA,cAAA,CAAwB,OAAxB,EAAoD;AAEnD,QAAG,CAAC,cAAD,EACF,iBACG,IAAI,aAAA,UAAA,CAAgC,EAApC,EAAwC;eAAI,IAAI,iBAAA,cAAA;KAAR,CAD3C,CADD;AAGA,QAAG,CAAC,OAAD,EAAU,OAAO,eAAe,IAAf,EAAP,CAAb;AACA,YAAQ,KAAR,GANmD;AAOnD,mBAAe,GAAf,CAAmB,OAAnB,EAPmD;CAApD;AAWA,SAAA,kBAAA,CAA4B,MAA5B,EAAwC,GAAxC,EAAkD;AAEjD,WAAO,OAAO,SAAP,CAAiB,cAAjB,CAAgC,IAAhC,CAAqC,MAArC,EAA6C,GAA7C,CAAP,CAFiD;CAAlD;AAKA,IAAM,OAAO,MAAP;IAAe,gBAAgB,aAAhB;AACrB,SAAA,aAAA,CAAuB,GAAvB,EAA8B;AAE7B,QAAG,QAAM,IAAN,EAAY,OAAO,IAAP,CAAf;AACA,QAAG,QAAM,KAAN,EAAa,OAAO,QAAA,IAAA,CAAK,SAAL,CAAvB;AAGA,QAAG,QAAA,IAAA,CAAK,eAAL,CAAqB,GAArB,EAA0B,aAA1B,EAAyC,QAAA,IAAA,CAAK,QAAL,CAA5C,EACA;AACC,eAAO,IAAI,WAAJ,EAAP,CADD;KADA;AAKA,WAAO,QAAQ,IAAI,QAAJ,CAAP,IAAqB,QAAA,IAAA,CAAK,QAAL,GAC1B,IAAI,QAAJ,EADI,GAEJ,OAAO,SAAP,CAAiB,QAAjB,CAA0B,IAA1B,CAA+B,GAA/B,CAFI,CAXsB;CAA9B;;IAiBA;;;AAMC,aAND,UAMC,GAC6D;YAApD,qEAAkC,YAAA,SAAA,CAAU,QAAV,gBAAkB;;8BAP9D,YAO8D;;2EAP9D,wBAO8D;;AAApD,cAAA,YAAA,GAAA,YAAA,CAAoD;AAG5D,cAAK,QAAL,GAAgB,gBAAhB,CAH4D;AAI5D,cAAK,QAAL,GAAgB,EAAhB,CAJ4D;;KAD7D;;iBAND;;mCAcmB;AAEjB,mBAAO,KAAK,QAAL,CAAc,WAAd,CAFU;;;;mCAOjB,MACA,iBAAwB;AAExB,gBAAG,SAAO,IAAP,IAAe,SAAO,KAAP,IAAgB,CAAC,eAAD,IAAoB,CAAC,KAAK,QAAL,EAAD,EACrD,OAAO,IAAP,CADD;AAGA,gBAAI,UAAU,KAAK,QAAL,CALU;AAMxB,gBAAI,SAAS,mBAAmB,OAAnB,EAA4B,IAA5B,IAAoC,QAAQ,IAAR,CAApC,GAAoD,KAApD,CANW;AAQxB,gBAAG,mBAAmB,CAAC,MAAD,EACrB,QAAQ,IAAR,IACG,SACA,gBADA,CAFJ;AAKA,mBAAO,MAAP,CAbwB;;;;wCAiBxB,KACA,MACA,QAAgE;AAEhE,gBAAG,QAAM,IAAN,IAAc,QAAM,KAAN,IAAe,CAAC,KAAK,QAAL,EAAD,EAC/B,OAAO,IAAP,CADD;AAGA,gBAAI,IAAa,IAAb;gBACA,WAAa,EAAE,YAAF;gBACb,aAAa,SAAS,GAAT,CAAb,CAP4D;AAShE,gBAAG,CAAC,MAAD,EAAS,SAAS,EAAE,UAAF,CAAa,QAAQ,cAAc,UAAd,CAAR,CAAtB,CAAZ;AAEA,mBAAO,UAAU,OACd,IADc,CACT;uBAAG,SAAS,EAAE,GAAF,CAAT,KAAkB,UAAlB;aAAH,CADD,CAXyD;;;;kCAe7C,KAAQ;AAE3B,gBAAI,IAAI,KAAK,eAAL,CAAqB,GAArB,CAAJ,CAFuB;AAG3B,mBAAO,KAAK,EAAE,KAAF,CAHe;;;;iCAMnB,KAAQ;AAEhB,gBAAI,IAAI,KAAK,SAAL,CAAe,GAAf,CAAJ,CAFY;AAGhB,mBAAO,IAAI,EAAE,KAAF,GAAU,KAAd,CAHS;;;;0CAMW,KAAU,OAAY;AAEjD,gBAAI,IAAc,IAAd;gBACA,UAAc,EAAE,QAAF;gBACd,UAAc,EAAE,QAAF;gBACd,WAAc,EAAE,YAAF;gBACd,aAAc,SAAS,GAAT,CAAd;gBACA,OAAc,cAAc,UAAd,CAAd;gBACA,SAAc,EAAE,UAAF,CAAa,IAAb,CAAd;gBACA,cAAc,UAAU,EAAE,eAAF,CAAkB,GAAlB,EAAuB,IAAvB,EAA6B,MAA7B,CAAV,CAT+B;AAYjD,gBAAG,WAAH,EACA;AACC,oBAAG,UAAQ,KAAR,EACH;AACC,wBAAI,IAAI,OAAO,UAAP,CAAkB,WAAlB,CAAJ;wBACA,IAAI,QAAQ,UAAR,CAAmB,YAAY,KAAZ,CAAvB,CAFL;AAIC,wBAAG,KAAK,CAAC,OAAO,KAAP,EACT;AACC,+BAAO,QAAQ,IAAR,CAAP,CADD;AAEC,uCAAe,MAAf,EAFD;AAGC,iCAAS,IAAT,CAHD;qBADA;AAOA,wBAAG,MAAI,CAAJ,EAAO,MAAM,sCAAN,CAAV;AAEA,wBAAG,CAAH,EAAM,OAAO,IAAP,CAAN;iBAdD,MAiBA;AAEC,wBAAI,MAAM,YAAY,KAAZ,CAAkB,KAAlB,CAFX;AAGC,gCAAY,KAAZ,CAAkB,KAAlB,GAA0B,KAA1B,CAHD;AAIC,2BAAO,CAAC,UAAA,QAAA,CAAS,KAAT,EAAgB,GAAhB,CAAD,CAJR;iBAjBA;aAFD,MA2BK,IAAG,UAAQ,KAAR,EACR;AACC,oBAAG,CAAC,MAAD,EAAS,SAAS,EAAE,UAAF,CAAa,IAAb,EAAmB,IAAnB,CAAT,CAAZ;AACA,oBAAI,QAAQ,IAAI,SAAJ,CAAc,GAAd,EAAmB,KAAnB,CAAR,CAFL;AAGC,wBAAQ,OAAR,CAAgB,KAAhB,EAHD;AAIC,uBAAO,OAAP,CAAe,IAAI,SAAJ,CAAc,GAAd,EAAmB,KAAnB,CAAf,EAJD;AAKC,uBAAO,IAAP,CALD;aADK;AASL,mBAAO,KAAP,CAhDiD;;;;yCAmD1B;AAEvB,gBAAI,IAAI,IAAJ;gBAAU,UAAU,EAAE,QAAF,CAFD;AAKvB,iBAAI,IAAI,GAAJ,IAAW,OAAf,EACA;AACC,oBAAG,QAAQ,cAAR,CAAuB,GAAvB,CAAH,EACA;AACC,wBAAI,SAAS,QAAQ,GAAR,CAAT,CADL;AAEC,2BAAO,QAAQ,GAAR,CAAP,CAFD;AAGC,mCAAe,MAAf,EAHD;iBADA;aAFD;AAUA,mBAAO,EAAE,QAAF,CAAW,KAAX,EAAP,CAfuB;;;;wCAsBX;AAEZ,gBAAI,IAAI,IAAJ;gBAAU,GAAd;gBAA0B,YAA1B,CAFY;AAIZ,mBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAEC,sBAAM,EAAE,QAAF,CAFP;AAGC,+BAAe,EAAE,QAAF,CAAW,KAAX,CAHhB;aAAA,EAKA,UAAC,OAAD,EAAQ;AAEP,oBAAG,gBAAc,IAAd,EACH;AACC,sBAAE,aAAF,CAAgB,GAAhB,EADD;AAEC,wBAAI,SAAS,EAAC,KAAK,aAAa,GAAb,EAAkB,OAAO,aAAa,KAAb,EAAxC,CAFL;AAGC,mCAAe,aAAa,IAAb,CAHhB;AAIC,2BAAO,QAAQ,WAAR,CAAoB,MAApB,CAAP,CAJD;iBADA;AAOA,uBAAO,QAAQ,UAAR,EAAP,CATO;aAAR,CAND,CAJY;;;;kCAyBI;AAEhB,gBAAI,IAAI,IAAJ;gBAAU,SAAgB,EAAhB,CAFE;AAGhB,gBAAI,IAAI,EAAE,QAAF,CAAW,KAAX,CAHQ;AAIhB,mBAAM,CAAN,EACA;AACC,uBAAO,IAAP,CAAY,EAAE,GAAF,CAAZ,CADD;AAEC,oBAAI,EAAE,IAAF,CAFL;aADA;AAKA,mBAAO,MAAP,CATgB;;;;oCAYE;AAElB,gBAAI,IAAI,IAAJ;gBAAU,SAAkB,EAAlB,CAFI;AAGlB,gBAAI,IAAI,EAAE,QAAF,CAAW,KAAX,CAHU;AAIlB,mBAAM,CAAN,EACA;AACC,uBAAO,IAAP,CAAY,EAAE,KAAF,CAAZ,CADD;AAEC,oBAAI,EAAE,IAAF,CAFL;aADA;AAKA,mBAAO,MAAP,CATkB;;;;WAlLpB;EAA8C,iBAAA,OAAA;;AAAjC,QAAA,UAAA,GAAU,UAAV;AAgMb,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADzGA,QAAQ,OAAR,GCyGe,UDzGf","file":"System/Collections/Dictionaries/Dictionary.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Original: http://linqjs.codeplex.com/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst Compare_1 = require(\"../../Compare\");\nconst Types_1 = require(\"../../Types\");\nconst Functions_1 = require(\"../../Functions\");\nconst EnumeratorBase_1 = require(\"../Enumeration/EnumeratorBase\");\nconst LinkedNodeList_1 = require(\"../LinkedNodeList\");\nconst ObjectPool_1 = require(\"../../Disposable/ObjectPool\");\nconst DictionaryBase_1 = require(\"./DictionaryBase\");\nconst VOID0 = void 0;\nclass HashEntry {\n constructor(key, value, previous, next) {\n this.key = key;\n this.value = value;\n this.previous = previous;\n this.next = next;\n }\n}\nvar linkedListPool;\nfunction linkedNodeList(recycle) {\n if (!linkedListPool)\n linkedListPool\n = new ObjectPool_1.ObjectPool(20, () => new LinkedNodeList_1.LinkedNodeList());\n if (!recycle)\n return linkedListPool.take();\n recycle.clear();\n linkedListPool.add(recycle);\n}\nfunction callHasOwnProperty(target, key) {\n return Object.prototype.hasOwnProperty.call(target, key);\n}\nconst NULL = \"null\", GET_HASH_CODE = \"getHashCode\";\nfunction getHashString(obj) {\n if (obj === null)\n return NULL;\n if (obj === VOID0)\n return Types_1.Type.UNDEFINED;\n if (Types_1.Type.hasMemberOfType(obj, GET_HASH_CODE, Types_1.Type.FUNCTION)) {\n return obj.getHashCode();\n }\n return (typeof obj.toString == Types_1.Type.FUNCTION)\n ? obj.toString()\n : Object.prototype.toString.call(obj);\n}\nclass Dictionary extends DictionaryBase_1.default {\n constructor(_keyComparer = Functions_1.Functions.Identity) {\n super();\n this._keyComparer = _keyComparer;\n this._entries = linkedNodeList();\n this._buckets = {};\n }\n getCount() {\n return this._entries.unsafeCount;\n }\n _getBucket(hash, createIfMissing) {\n if (hash === null || hash === VOID0 || !createIfMissing && !this.getCount())\n return null;\n var buckets = this._buckets;\n var bucket = callHasOwnProperty(buckets, hash) ? buckets[hash] : VOID0;\n if (createIfMissing && !bucket)\n buckets[hash]\n = bucket\n = linkedNodeList();\n return bucket;\n }\n _getBucketEntry(key, hash, bucket) {\n if (key === null || key === VOID0 || !this.getCount())\n return null;\n var _ = this, comparer = _._keyComparer, compareKey = comparer(key);\n if (!bucket)\n bucket = _._getBucket(hash || getHashString(compareKey));\n return bucket && bucket\n .find(e => comparer(e.key) === compareKey);\n }\n _getEntry(key) {\n var e = this._getBucketEntry(key);\n return e && e.value;\n }\n getValue(key) {\n var e = this._getEntry(key);\n return e ? e.value : VOID0;\n }\n _setValueInternal(key, value) {\n var _ = this, buckets = _._buckets, entries = _._entries, comparer = _._keyComparer, compareKey = comparer(key), hash = getHashString(compareKey), bucket = _._getBucket(hash), bucketEntry = bucket && _._getBucketEntry(key, hash, bucket);\n if (bucketEntry) {\n if (value === VOID0) {\n let x = bucket.removeNode(bucketEntry), y = entries.removeNode(bucketEntry.value);\n if (x && !bucket.count) {\n delete buckets[hash];\n linkedNodeList(bucket);\n bucket = null;\n }\n if (x !== y)\n throw \"Entries and buckets are out of sync.\";\n if (x)\n return true;\n }\n else {\n var old = bucketEntry.value.value;\n bucketEntry.value.value = value;\n return !Compare_1.areEqual(value, old);\n }\n }\n else if (value !== VOID0) {\n if (!bucket)\n bucket = _._getBucket(hash, true);\n let entry = new HashEntry(key, value);\n entries.addNode(entry);\n bucket.addNode(new HashEntry(key, entry));\n return true;\n }\n return false;\n }\n _clearInternal() {\n var _ = this, buckets = _._buckets;\n for (let key in buckets) {\n if (buckets.hasOwnProperty(key)) {\n let bucket = buckets[key];\n delete buckets[key];\n linkedNodeList(bucket);\n }\n }\n return _._entries.clear();\n }\n getEnumerator() {\n var _ = this, ver, currentEntry;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n ver = _._version;\n currentEntry = _._entries.first;\n }, (yielder) => {\n if (currentEntry != null) {\n _.assertVersion(ver);\n var result = { key: currentEntry.key, value: currentEntry.value };\n currentEntry = currentEntry.next;\n return yielder.yieldReturn(result);\n }\n return yielder.yieldBreak();\n });\n }\n getKeys() {\n var _ = this, result = [];\n var e = _._entries.first;\n while (e) {\n result.push(e.key);\n e = e.next;\n }\n return result;\n }\n getValues() {\n var _ = this, result = [];\n var e = _._entries.first;\n while (e) {\n result.push(e.value);\n e = e.next;\n }\n return result;\n }\n}\nexports.Dictionary = Dictionary;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Dictionary;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Original: http://linqjs.codeplex.com/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {areEqual} from \"../../Compare\";\r\nimport {Type} from \"../../Types\";\r\nimport {Functions} from \"../../Functions\";\r\nimport {EnumeratorBase} from \"../Enumeration/EnumeratorBase\";\r\nimport {LinkedNodeList} from \"../LinkedNodeList\";\r\nimport {ObjectPool} from \"../../Disposable/ObjectPool\";\r\nimport {IMap} from \"./IDictionary\";\r\nimport {IKeyValuePair} from \"../../KeyValuePair\";\r\nimport {IEnumerator} from \"../Enumeration/IEnumerator\";\r\nimport {ILinkedNode} from \"../ILinkedListNode\";\r\nimport {Selector} from \"../../FunctionTypes\";\r\nimport DictionaryBase from \"./DictionaryBase\";\r\n\r\nconst VOID0:any = void 0;\r\n\r\n\r\nexport interface IHashEntry\r\nextends ILinkedNode>, IKeyValuePair\r\n{\r\n\r\n}\r\n// LinkedList for Dictionary\r\nclass HashEntry\r\nimplements IHashEntry\r\n{\r\n\tconstructor(\r\n\t\tpublic key?:TKey,\r\n\t\tpublic value?:TValue,\r\n\t\tpublic previous?:IHashEntry,\r\n\t\tpublic next?:IHashEntry)\r\n\t{ }\r\n}\r\n\r\n\r\nvar linkedListPool:ObjectPool>;\r\nfunction linkedNodeList():LinkedNodeList;\r\nfunction linkedNodeList(recycle?:LinkedNodeList):void;\r\nfunction linkedNodeList(recycle?:LinkedNodeList):LinkedNodeList\r\n{\r\n\tif(!linkedListPool)\r\n\t\tlinkedListPool\r\n\t\t\t= new ObjectPool>(20, ()=>new LinkedNodeList());\r\n\tif(!recycle) return linkedListPool.take();\r\n\trecycle.clear();\r\n\tlinkedListPool.add(recycle);\r\n}\r\n\r\n// static utility methods\r\nfunction callHasOwnProperty(target:any, key:string)\r\n{\r\n\treturn Object.prototype.hasOwnProperty.call(target, key);\r\n}\r\n\r\nconst NULL = \"null\", GET_HASH_CODE = \"getHashCode\";\r\nfunction getHashString(obj:any):string\r\n{\r\n\tif(obj===null) return NULL;\r\n\tif(obj===VOID0) return Type.UNDEFINED;\r\n\r\n\t// See IHashable.\r\n\tif(Type.hasMemberOfType(obj, GET_HASH_CODE, Type.FUNCTION))\r\n\t{\r\n\t\treturn obj.getHashCode();\r\n\t}\r\n\r\n\treturn (typeof obj.toString==Type.FUNCTION)\r\n\t\t? obj.toString()\r\n\t\t: Object.prototype.toString.call(obj);\r\n}\r\n\r\n\r\nexport class Dictionary extends DictionaryBase\r\n{\r\n\t// Retains the order...\r\n\tprivate _entries:LinkedNodeList>;\r\n\tprivate _buckets:IMap>>>;\r\n\r\n\tconstructor(\r\n\t\tprivate _keyComparer:Selector = Functions.Identity)\r\n\t{\r\n\t\tsuper();\r\n\t\tthis._entries = linkedNodeList();\r\n\t\tthis._buckets = {};\r\n\t}\r\n\r\n\tprotected getCount():number\r\n\t{\r\n\t\treturn this._entries.unsafeCount;\r\n\t}\r\n\r\n\r\n\tprivate _getBucket(\r\n\t\thash:string,\r\n\t\tcreateIfMissing?:boolean):LinkedNodeList>>\r\n\t{\r\n\t\tif(hash===null || hash===VOID0 || !createIfMissing && !this.getCount())\r\n\t\t\treturn null;\r\n\r\n\t\tvar buckets = this._buckets;\r\n\t\tvar bucket = callHasOwnProperty(buckets, hash) ? buckets[hash] : VOID0;\r\n\r\n\t\tif(createIfMissing && !bucket)\r\n\t\t\tbuckets[hash]\r\n\t\t\t\t= bucket\r\n\t\t\t\t= linkedNodeList();\r\n\r\n\t\treturn bucket;\r\n\t}\r\n\r\n\tprivate _getBucketEntry(\r\n\t\tkey:TKey,\r\n\t\thash?:string,\r\n\t\tbucket?:LinkedNodeList>>):IHashEntry>\r\n\t{\r\n\t\tif(key===null || key===VOID0 || !this.getCount())\r\n\t\t\treturn null;\r\n\r\n\t\tvar _ = this,\r\n\t\t comparer = _._keyComparer,\r\n\t\t compareKey = comparer(key);\r\n\r\n\t\tif(!bucket) bucket = _._getBucket(hash || getHashString(compareKey));\r\n\r\n\t\treturn bucket && bucket\r\n\t\t\t\t.find(e=>comparer(e.key)===compareKey);\r\n\t}\r\n\r\n\tprotected _getEntry(key:TKey):IHashEntry\r\n\t{\r\n\t\tvar e = this._getBucketEntry(key);\r\n\t\treturn e && e.value;\r\n\t}\r\n\r\n\tgetValue(key:TKey):TValue\r\n\t{\r\n\t\tvar e = this._getEntry(key);\r\n\t\treturn e ? e.value : VOID0;\r\n\t}\r\n\r\n\tprotected _setValueInternal(key:TKey, value:TValue):boolean\r\n\t{\r\n\t\tvar _ = this,\r\n\t\t buckets = _._buckets,\r\n\t\t entries = _._entries,\r\n\t\t comparer = _._keyComparer,\r\n\t\t compareKey = comparer(key),\r\n\t\t hash = getHashString(compareKey),\r\n\t\t bucket = _._getBucket(hash),\r\n\t\t bucketEntry = bucket && _._getBucketEntry(key, hash, bucket);\r\n\r\n\t\t// Entry exits? Delete or update\r\n\t\tif(bucketEntry)\r\n\t\t{\r\n\t\t\tif(value===VOID0)\r\n\t\t\t{\r\n\t\t\t\tlet x = bucket.removeNode(bucketEntry),\r\n\t\t\t\t y = entries.removeNode(bucketEntry.value);\r\n\r\n\t\t\t\tif(x && !bucket.count)\r\n\t\t\t\t{\r\n\t\t\t\t\tdelete buckets[hash];\r\n\t\t\t\t\tlinkedNodeList(bucket);\r\n\t\t\t\t\tbucket = null;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(x!==y) throw \"Entries and buckets are out of sync.\";\r\n\r\n\t\t\t\tif(x) return true;\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\t// We don't expose the internal hash entries so replacing the value is ok.\r\n\t\t\t\tvar old = bucketEntry.value.value;\r\n\t\t\t\tbucketEntry.value.value = value;\r\n\t\t\t\treturn !areEqual(value, old);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\telse if(value!==VOID0)\r\n\t\t{\r\n\t\t\tif(!bucket) bucket = _._getBucket(hash, true);\r\n\t\t\tlet entry = new HashEntry(key, value);\r\n\t\t\tentries.addNode(entry);\r\n\t\t\tbucket.addNode(new HashEntry(key, entry));\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\tprotected _clearInternal():number\r\n\t{\r\n\t\tvar _ = this, buckets = _._buckets;\r\n\r\n\t\t// Ensure reset and clean...\r\n\t\tfor(let key in buckets)\r\n\t\t{\r\n\t\t\tif(buckets.hasOwnProperty(key))\r\n\t\t\t{\r\n\t\t\t\tlet bucket = buckets[key];\r\n\t\t\t\tdelete buckets[key];\r\n\t\t\t\tlinkedNodeList(bucket);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn _._entries.clear();\r\n\t}\r\n\r\n\t/*\r\n\t * Note: super.getEnumerator() works perfectly well,\r\n\t * but enumerating the internal linked node list is much more efficient.\r\n\t */\r\n\tgetEnumerator():IEnumerator>\r\n\t{\r\n\t\tvar _ = this, ver:number, currentEntry:IHashEntry;\r\n\r\n\t\treturn new EnumeratorBase>(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tver = _._version;\r\n\t\t\t\tcurrentEntry = _._entries.first;\r\n\t\t\t},\r\n\t\t\t(yielder) =>\r\n\t\t\t{\r\n\t\t\t\tif(currentEntry!=null)\r\n\t\t\t\t{\r\n\t\t\t\t\t_.assertVersion(ver);\r\n\t\t\t\t\tvar result = {key: currentEntry.key, value: currentEntry.value};\r\n\t\t\t\t\tcurrentEntry = currentEntry.next;\r\n\t\t\t\t\treturn yielder.yieldReturn(result);\r\n\t\t\t\t}\r\n\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tprotected getKeys():TKey[]\r\n\t{\r\n\t\tvar _ = this, result:TKey[] = [];\r\n\t\tvar e = _._entries.first;\r\n\t\twhile(e)\r\n\t\t{\r\n\t\t\tresult.push(e.key);\r\n\t\t\te = e.next;\r\n\t\t}\r\n\t\treturn result;\r\n\t}\r\n\r\n\tprotected getValues():TValue[]\r\n\t{\r\n\t\tvar _ = this, result:TValue[] = [];\r\n\t\tvar e = _._entries.first;\r\n\t\twhile(e)\r\n\t\t{\r\n\t\t\tresult.push(e.value);\r\n\t\t\te = e.next;\r\n\t\t}\r\n\t\treturn result;\r\n\t}\r\n\r\n}\r\n\r\nexport default Dictionary;"]} \ No newline at end of file diff --git a/dist/commonjs/System/Collections/Dictionaries/DictionaryBase.d.ts b/dist/commonjs/System/Collections/Dictionaries/DictionaryBase.d.ts index f931e1a7..e242d770 100644 --- a/dist/commonjs/System/Collections/Dictionaries/DictionaryBase.d.ts +++ b/dist/commonjs/System/Collections/Dictionaries/DictionaryBase.d.ts @@ -1,10 +1,13 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import CollectionBase from "../CollectionBase"; -declare abstract class DictionaryBase extends CollectionBase> implements IDictionary { +import { CollectionBase } from "../CollectionBase"; +import { IKeyValuePair, KeyValuePair } from "../../KeyValuePair"; +import { IDictionary } from "./IDictionary"; +import { IEnumerator } from "../Enumeration/IEnumerator"; +import { IEnumerableOrArray } from "../IEnumerableOrArray"; +export declare abstract class DictionaryBase extends CollectionBase> implements IDictionary { constructor(source?: IEnumerableOrArray>); protected _onValueModified(key: TKey, value: TValue, old: TValue): void; protected _addInternal(item: KeyValuePair): boolean; diff --git a/dist/commonjs/System/Collections/Dictionaries/DictionaryBase.js b/dist/commonjs/System/Collections/Dictionaries/DictionaryBase.js index 86f9f297..000e6996 100644 --- a/dist/commonjs/System/Collections/Dictionaries/DictionaryBase.js +++ b/dist/commonjs/System/Collections/Dictionaries/DictionaryBase.js @@ -2,7 +2,7 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; +"use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); @@ -23,8 +23,8 @@ var InvalidOperationException_1 = require("../../Exceptions/InvalidOperationExce var KeyValueExtract_1 = require("../../KeyValueExtract"); var VOID0 = void 0; -var DictionaryBase = function (_CollectionBase_1$def) { - _inherits(DictionaryBase, _CollectionBase_1$def); +var DictionaryBase = function (_CollectionBase_1$Col) { + _inherits(DictionaryBase, _CollectionBase_1$Col); function DictionaryBase(source) { _classCallCheck(this, DictionaryBase); @@ -40,8 +40,8 @@ var DictionaryBase = function (_CollectionBase_1$def) { value: function _addInternal(item) { var _this2 = this; - if (!item) throw new ArgumentNullException_1.default('item', 'Dictionaries must use a valid key/value pair. \'' + item + '\' is not allowed.'); - return KeyValueExtract_1.default(item, function (key, value) { + if (!item) throw new ArgumentNullException_1.ArgumentNullException('item', 'Dictionaries must use a valid key/value pair. \'' + item + '\' is not allowed.'); + return KeyValueExtract_1.extractKeyValue(item, function (key, value) { return _this2.addByKeyValue(key, value); }); } @@ -83,7 +83,7 @@ var DictionaryBase = function (_CollectionBase_1$def) { var _this3 = this; if (!item || !this.getCount()) return false; - return KeyValueExtract_1.default(item, function (key, value) { + return KeyValueExtract_1.extractKeyValue(item, function (key, value) { var v = _this3.getValue(key); return Compare_1.areEqual(value, v); }); @@ -94,7 +94,7 @@ var DictionaryBase = function (_CollectionBase_1$def) { var _this4 = this; if (!item) return 0; - return KeyValueExtract_1.default(item, function (key, value) { + return KeyValueExtract_1.extractKeyValue(item, function (key, value) { var v = _this4.getValue(key); return Compare_1.areEqual(value, v) && _this4.removeByKey(key) ? 1 : 0; }); @@ -102,10 +102,10 @@ var DictionaryBase = function (_CollectionBase_1$def) { }, { key: "addByKeyValue", value: function addByKeyValue(key, value) { - if (value === VOID0) throw new InvalidOperationException_1.default("Cannot add 'undefined' as a value."); + if (value === VOID0) throw new InvalidOperationException_1.InvalidOperationException("Cannot add 'undefined' as a value."); var _ = this; if (_.containsKey(key)) { - var ex = new InvalidOperationException_1.default("Adding a key/value when the key already exists."); + var ex = new InvalidOperationException_1.InvalidOperationException("Adding a key/value when the key already exists."); ex.data['key'] = key; ex.data['value'] = value; throw ex; @@ -197,7 +197,7 @@ var DictionaryBase = function (_CollectionBase_1$def) { if (!pairs) return 0; var changed = 0; Enumerator_1.forEach(pairs, function (pair) { - return KeyValueExtract_1.default(pair, function (key, value) { + return KeyValueExtract_1.extractKeyValue(pair, function (key, value) { if (_._setValueInternal(key, value)) changed++; }); }); @@ -211,7 +211,7 @@ var DictionaryBase = function (_CollectionBase_1$def) { keys, len, i = 0; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { ver = _._version; keys = _.getKeys(); len = keys.length; @@ -238,8 +238,9 @@ var DictionaryBase = function (_CollectionBase_1$def) { }]); return DictionaryBase; -}(CollectionBase_1.default); +}(CollectionBase_1.CollectionBase); +exports.DictionaryBase = DictionaryBase; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = DictionaryBase; //# sourceMappingURL=DictionaryBase.js.map diff --git a/dist/commonjs/System/Collections/Dictionaries/DictionaryBase.js.map b/dist/commonjs/System/Collections/Dictionaries/DictionaryBase.js.map index 8f5acde4..6b37aa40 100644 --- a/dist/commonjs/System/Collections/Dictionaries/DictionaryBase.js.map +++ b/dist/commonjs/System/Collections/Dictionaries/DictionaryBase.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Dictionaries/DictionaryBase.ts","System/Collections/Dictionaries/DictionaryBase.js"],"names":[],"mappings":"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","file":"System/Collections/Dictionaries/DictionaryBase.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport {areEqual} from \"../../Compare\";\r\nimport {forEach} from \"../Enumeration/Enumerator\";\r\nimport CollectionBase from \"../CollectionBase\";\r\nimport EnumeratorBase from \"../Enumeration/EnumeratorBase\";\r\nimport ArgumentNullException from \"../../Exceptions/ArgumentNullException\";\r\nimport InvalidOperationException from \"../../Exceptions/InvalidOperationException\";\r\nimport extractKeyValue from \"../../KeyValueExtract\";\r\n\r\nconst VOID0:any = void(0);\r\n\r\n// Design Note: Should DictionaryAbstractBase be IDisposable?\r\nabstract class DictionaryBase\r\nextends CollectionBase> implements IDictionary\r\n{\r\n\tconstructor(source?:IEnumerableOrArray>)\r\n\t{\r\n\t\tsuper(source);\r\n\t}\r\n\r\n\r\n\tprotected _onValueModified(key:TKey, value:TValue, old:TValue):void\r\n\t{\r\n\t}\r\n\r\n\tprotected _addInternal(item:KeyValuePair):boolean\r\n\t{\r\n\t\tif(!item)\r\n\t\t\tthrow new ArgumentNullException(\r\n\t\t\t\t'item', 'Dictionaries must use a valid key/value pair. \\'' + item + '\\' is not allowed.'\r\n\t\t\t);\r\n\r\n\t\treturn extractKeyValue(item,\r\n\t\t\t(key, value)=>this.addByKeyValue(key, value));\r\n\t}\r\n\r\n\tprotected _clearInternal():number\r\n\t{\r\n\t\tvar _ = this, count = 0;\r\n\r\n\t\tfor(let key of _.keys)\r\n\t\t{\r\n\t\t\tif(_.removeByKey(key)) count++;\r\n\t\t}\r\n\r\n\t\treturn count;\r\n\t}\r\n\r\n\tcontains(item:KeyValuePair):boolean\r\n\t{\r\n\t\t// Should never have a null object in the collection.\r\n\t\tif(!item || !this.getCount()) return false;\r\n\r\n\t\treturn extractKeyValue(item,\r\n\t\t\t(key, value)=>\r\n\t\t\t{\r\n\t\t\t\t// Leave as variable for debugging...\r\n\t\t\t\tlet v = this.getValue(key);\r\n\t\t\t\treturn areEqual(value, v);\r\n\t\t\t});\r\n\r\n\t}\r\n\r\n\tprotected _removeInternal(item:IKeyValuePair|[TKey,TValue]):number\r\n\t{\r\n\t\tif(!item) return 0;\r\n\r\n\t\treturn extractKeyValue(item,\r\n\t\t\t(key, value)=>\r\n\t\t\t{\r\n\t\t\t\t// Leave as variable for debugging...\r\n\t\t\t\tlet v = this.getValue(key);\r\n\t\t\t\treturn (areEqual(value, v) && this.removeByKey(key))\r\n\t\t\t\t\t? 1 : 0;\r\n\t\t\t});\r\n\t}\r\n\r\n\t/////////////////////////////////////////\r\n\t// IDictionary\r\n\t/////////////////////////////////////////\r\n\r\n\tprotected abstract getKeys():TKey[];\r\n\r\n\tget keys():TKey[] { return this.getKeys(); }\r\n\r\n\tprotected abstract getValues():TValue[];\r\n\r\n\tget values():TValue[] { return this.getValues(); }\r\n\r\n\r\n\taddByKeyValue(key:TKey, value:TValue):boolean\r\n\t{\r\n\t\tif(value===VOID0)\r\n\t\t\tthrow new InvalidOperationException(\"Cannot add 'undefined' as a value.\");\r\n\r\n\t\tvar _ = this;\r\n\t\tif(_.containsKey(key))\r\n\t\t{\r\n\t\t\tvar ex = new InvalidOperationException(\"Adding a key/value when the key already exists.\");\r\n\t\t\tex.data['key'] = key;\r\n\t\t\tex.data['value'] = value;\r\n\t\t\tthrow ex;\r\n\t\t}\r\n\r\n\t\treturn _.setValue(key, value);\r\n\t}\r\n\r\n\tprotected abstract _getEntry(key:TKey):IKeyValuePair;\r\n\r\n\tabstract getValue(key:TKey):TValue;\r\n\r\n\tprotected abstract _setValueInternal(key:TKey, value:TValue):boolean;\r\n\r\n\tsetValue(key:TKey, value:TValue):boolean\r\n\t{\r\n\t\t// setValue shouldn't need to worry about recursion...\r\n\t\tvar _ = this;\r\n\t\t_.assertModifiable();\r\n\r\n\t\tvar changed = false, old = _.getValue(key); // get the old value here and pass to internal.\r\n\t\tif(!areEqual(value, old) && _._setValueInternal(key, value))\r\n\t\t{\r\n\t\t\tchanged = true;\r\n\t\t\t_._onValueModified(key, value, old)\r\n\t\t}\r\n\r\n\t\t_._signalModification(changed);\r\n\t\treturn changed;\r\n\t}\r\n\r\n\tcontainsKey(key:TKey):boolean\r\n\t{\r\n\t\treturn !!this._getEntry(key);\r\n\t}\r\n\r\n\tcontainsValue(value:TValue):boolean\r\n\t{\r\n\t\tvar e = this.getEnumerator(), equal:(a:any, b:any, strict?:boolean) => boolean = areEqual;\r\n\r\n\t\twhile(e.moveNext())\r\n\t\t{\r\n\t\t\tif(equal(e.current, value, true))\r\n\t\t\t{\r\n\t\t\t\te.dispose();\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tremoveByKey(key:TKey):boolean\r\n\t{\r\n\t\treturn this.setValue(key, VOID0);\r\n\t}\r\n\r\n\tremoveByValue(value:TValue):number\r\n\t{\r\n\t\tvar _ = this, count = 0, equal:(a:any, b:any, strict?:boolean) => boolean = areEqual;\r\n\t\tfor(let key of _.getKeys())\r\n\t\t{\r\n\t\t\tif(equal(_.getValue(key), value, true))\r\n\t\t\t{\r\n\t\t\t\t_.removeByKey(key);\r\n\t\t\t\tcount++;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn count;\r\n\t}\r\n\r\n\timportEntries(pairs:IEnumerableOrArray>):number\r\n\t{\r\n\t\t// Allow piping through to trigger onModified properly.\r\n\t\treturn super.importEntries(pairs);\r\n\t}\r\n\r\n\tprotected _importEntries(pairs:IEnumerableOrArray>):number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(!pairs) return 0;\r\n\t\tlet changed:number = 0;\r\n\t\tforEach(pairs,\r\n\t\t\tpair=>extractKeyValue(pair, (key, value)=>\r\n\t\t\t{\r\n\t\t\t\tif(_._setValueInternal(key, value))\r\n\t\t\t\t\tchanged++;\r\n\t\t\t})\r\n\t\t);\r\n\t\treturn changed;\r\n\t}\r\n\r\n\tgetEnumerator():IEnumerator>\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar ver:number, keys:TKey[], len:number, i = 0;\r\n\t\treturn new EnumeratorBase>(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tver = _._version; // Track the version since getKeys is a copy.\r\n\t\t\t\tkeys = _.getKeys();\r\n\t\t\t\tlen = keys.length;\r\n\t\t\t},\r\n\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\t\t\t\t_.assertVersion(ver);\r\n\r\n\t\t\t\twhile(i this.addByKeyValue(key, value));\n }\n _clearInternal() {\n var _ = this, count = 0;\n for (let key of _.keys) {\n if (_.removeByKey(key))\n count++;\n }\n return count;\n }\n contains(item) {\n if (!item || !this.getCount())\n return false;\n return KeyValueExtract_1.default(item, (key, value) => {\n let v = this.getValue(key);\n return Compare_1.areEqual(value, v);\n });\n }\n _removeInternal(item) {\n if (!item)\n return 0;\n return KeyValueExtract_1.default(item, (key, value) => {\n let v = this.getValue(key);\n return (Compare_1.areEqual(value, v) && this.removeByKey(key))\n ? 1 : 0;\n });\n }\n get keys() { return this.getKeys(); }\n get values() { return this.getValues(); }\n addByKeyValue(key, value) {\n if (value === VOID0)\n throw new InvalidOperationException_1.default(\"Cannot add 'undefined' as a value.\");\n var _ = this;\n if (_.containsKey(key)) {\n var ex = new InvalidOperationException_1.default(\"Adding a key/value when the key already exists.\");\n ex.data['key'] = key;\n ex.data['value'] = value;\n throw ex;\n }\n return _.setValue(key, value);\n }\n setValue(key, value) {\n var _ = this;\n _.assertModifiable();\n var changed = false, old = _.getValue(key);\n if (!Compare_1.areEqual(value, old) && _._setValueInternal(key, value)) {\n changed = true;\n _._onValueModified(key, value, old);\n }\n _._signalModification(changed);\n return changed;\n }\n containsKey(key) {\n return !!this._getEntry(key);\n }\n containsValue(value) {\n var e = this.getEnumerator(), equal = Compare_1.areEqual;\n while (e.moveNext()) {\n if (equal(e.current, value, true)) {\n e.dispose();\n return true;\n }\n }\n return false;\n }\n removeByKey(key) {\n return this.setValue(key, VOID0);\n }\n removeByValue(value) {\n var _ = this, count = 0, equal = Compare_1.areEqual;\n for (let key of _.getKeys()) {\n if (equal(_.getValue(key), value, true)) {\n _.removeByKey(key);\n count++;\n }\n }\n return count;\n }\n importEntries(pairs) {\n return super.importEntries(pairs);\n }\n _importEntries(pairs) {\n var _ = this;\n if (!pairs)\n return 0;\n let changed = 0;\n Enumerator_1.forEach(pairs, pair => KeyValueExtract_1.default(pair, (key, value) => {\n if (_._setValueInternal(key, value))\n changed++;\n }));\n return changed;\n }\n getEnumerator() {\n var _ = this;\n var ver, keys, len, i = 0;\n return new EnumeratorBase_1.default(() => {\n ver = _._version;\n keys = _.getKeys();\n len = keys.length;\n }, (yielder) => {\n _.assertVersion(ver);\n while (i < len) {\n var key = keys[i++], value = _.getValue(key);\n if (value !== VOID0)\n return yielder.yieldReturn({ key: key, value: value });\n }\n return yielder.yieldBreak();\n });\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = DictionaryBase;\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Dictionaries/DictionaryBase.js","System/Collections/Dictionaries/DictionaryBase.ts"],"names":[],"mappings":"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","file":"System/Collections/Dictionaries/DictionaryBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst Compare_1 = require(\"../../Compare\");\nconst Enumerator_1 = require(\"../Enumeration/Enumerator\");\nconst CollectionBase_1 = require(\"../CollectionBase\");\nconst EnumeratorBase_1 = require(\"../Enumeration/EnumeratorBase\");\nconst ArgumentNullException_1 = require(\"../../Exceptions/ArgumentNullException\");\nconst InvalidOperationException_1 = require(\"../../Exceptions/InvalidOperationException\");\nconst KeyValueExtract_1 = require(\"../../KeyValueExtract\");\nconst VOID0 = void (0);\nclass DictionaryBase extends CollectionBase_1.CollectionBase {\n constructor(source) {\n super(source);\n }\n _onValueModified(key, value, old) {\n }\n _addInternal(item) {\n if (!item)\n throw new ArgumentNullException_1.ArgumentNullException('item', 'Dictionaries must use a valid key/value pair. \\'' + item + '\\' is not allowed.');\n return KeyValueExtract_1.extractKeyValue(item, (key, value) => this.addByKeyValue(key, value));\n }\n _clearInternal() {\n var _ = this, count = 0;\n for (let key of _.keys) {\n if (_.removeByKey(key))\n count++;\n }\n return count;\n }\n contains(item) {\n if (!item || !this.getCount())\n return false;\n return KeyValueExtract_1.extractKeyValue(item, (key, value) => {\n let v = this.getValue(key);\n return Compare_1.areEqual(value, v);\n });\n }\n _removeInternal(item) {\n if (!item)\n return 0;\n return KeyValueExtract_1.extractKeyValue(item, (key, value) => {\n let v = this.getValue(key);\n return (Compare_1.areEqual(value, v) && this.removeByKey(key))\n ? 1 : 0;\n });\n }\n get keys() { return this.getKeys(); }\n get values() { return this.getValues(); }\n addByKeyValue(key, value) {\n if (value === VOID0)\n throw new InvalidOperationException_1.InvalidOperationException(\"Cannot add 'undefined' as a value.\");\n var _ = this;\n if (_.containsKey(key)) {\n var ex = new InvalidOperationException_1.InvalidOperationException(\"Adding a key/value when the key already exists.\");\n ex.data['key'] = key;\n ex.data['value'] = value;\n throw ex;\n }\n return _.setValue(key, value);\n }\n setValue(key, value) {\n var _ = this;\n _.assertModifiable();\n var changed = false, old = _.getValue(key);\n if (!Compare_1.areEqual(value, old) && _._setValueInternal(key, value)) {\n changed = true;\n _._onValueModified(key, value, old);\n }\n _._signalModification(changed);\n return changed;\n }\n containsKey(key) {\n return !!this._getEntry(key);\n }\n containsValue(value) {\n var e = this.getEnumerator(), equal = Compare_1.areEqual;\n while (e.moveNext()) {\n if (equal(e.current, value, true)) {\n e.dispose();\n return true;\n }\n }\n return false;\n }\n removeByKey(key) {\n return this.setValue(key, VOID0);\n }\n removeByValue(value) {\n var _ = this, count = 0, equal = Compare_1.areEqual;\n for (let key of _.getKeys()) {\n if (equal(_.getValue(key), value, true)) {\n _.removeByKey(key);\n count++;\n }\n }\n return count;\n }\n importEntries(pairs) {\n return super.importEntries(pairs);\n }\n _importEntries(pairs) {\n var _ = this;\n if (!pairs)\n return 0;\n let changed = 0;\n Enumerator_1.forEach(pairs, pair => KeyValueExtract_1.extractKeyValue(pair, (key, value) => {\n if (_._setValueInternal(key, value))\n changed++;\n }));\n return changed;\n }\n getEnumerator() {\n var _ = this;\n var ver, keys, len, i = 0;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n ver = _._version;\n keys = _.getKeys();\n len = keys.length;\n }, (yielder) => {\n _.assertVersion(ver);\n while (i < len) {\n var key = keys[i++], value = _.getValue(key);\n if (value !== VOID0)\n return yielder.yieldReturn({ key: key, value: value });\n }\n return yielder.yieldBreak();\n });\n }\n}\nexports.DictionaryBase = DictionaryBase;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = DictionaryBase;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {areEqual} from \"../../Compare\";\r\nimport {forEach} from \"../Enumeration/Enumerator\";\r\nimport {CollectionBase} from \"../CollectionBase\";\r\nimport {EnumeratorBase} from \"../Enumeration/EnumeratorBase\";\r\nimport {ArgumentNullException} from \"../../Exceptions/ArgumentNullException\";\r\nimport {InvalidOperationException} from \"../../Exceptions/InvalidOperationException\";\r\nimport {extractKeyValue} from \"../../KeyValueExtract\";\r\nimport {IKeyValuePair, KeyValuePair} from \"../../KeyValuePair\";\r\nimport {IDictionary} from \"./IDictionary\";\r\nimport {IEnumerator} from \"../Enumeration/IEnumerator\";\r\nimport {IEnumerableOrArray} from \"../IEnumerableOrArray\";\r\n\r\nconst VOID0:any = void(0);\r\n\r\n// Design Note: Should DictionaryAbstractBase be IDisposable?\r\nexport abstract class DictionaryBase\r\nextends CollectionBase> implements IDictionary\r\n{\r\n\tconstructor(source?:IEnumerableOrArray>)\r\n\t{\r\n\t\tsuper(source);\r\n\t}\r\n\r\n\r\n\tprotected _onValueModified(key:TKey, value:TValue, old:TValue):void\r\n\t{\r\n\t}\r\n\r\n\tprotected _addInternal(item:KeyValuePair):boolean\r\n\t{\r\n\t\tif(!item)\r\n\t\t\tthrow new ArgumentNullException(\r\n\t\t\t\t'item', 'Dictionaries must use a valid key/value pair. \\'' + item + '\\' is not allowed.'\r\n\t\t\t);\r\n\r\n\t\treturn extractKeyValue(item,\r\n\t\t\t(key, value)=>this.addByKeyValue(key, value));\r\n\t}\r\n\r\n\tprotected _clearInternal():number\r\n\t{\r\n\t\tvar _ = this, count = 0;\r\n\r\n\t\tfor(let key of _.keys)\r\n\t\t{\r\n\t\t\tif(_.removeByKey(key)) count++;\r\n\t\t}\r\n\r\n\t\treturn count;\r\n\t}\r\n\r\n\tcontains(item:KeyValuePair):boolean\r\n\t{\r\n\t\t// Should never have a null object in the collection.\r\n\t\tif(!item || !this.getCount()) return false;\r\n\r\n\t\treturn extractKeyValue(item,\r\n\t\t\t(key, value)=>\r\n\t\t\t{\r\n\t\t\t\t// Leave as variable for debugging...\r\n\t\t\t\tlet v = this.getValue(key);\r\n\t\t\t\treturn areEqual(value, v);\r\n\t\t\t});\r\n\r\n\t}\r\n\r\n\tprotected _removeInternal(item:IKeyValuePair|[TKey,TValue]):number\r\n\t{\r\n\t\tif(!item) return 0;\r\n\r\n\t\treturn extractKeyValue(item,\r\n\t\t\t(key, value)=>\r\n\t\t\t{\r\n\t\t\t\t// Leave as variable for debugging...\r\n\t\t\t\tlet v = this.getValue(key);\r\n\t\t\t\treturn (areEqual(value, v) && this.removeByKey(key))\r\n\t\t\t\t\t? 1 : 0;\r\n\t\t\t});\r\n\t}\r\n\r\n\t/////////////////////////////////////////\r\n\t// IDictionary\r\n\t/////////////////////////////////////////\r\n\r\n\tprotected abstract getKeys():TKey[];\r\n\r\n\tget keys():TKey[] { return this.getKeys(); }\r\n\r\n\tprotected abstract getValues():TValue[];\r\n\r\n\tget values():TValue[] { return this.getValues(); }\r\n\r\n\r\n\taddByKeyValue(key:TKey, value:TValue):boolean\r\n\t{\r\n\t\tif(value===VOID0)\r\n\t\t\tthrow new InvalidOperationException(\"Cannot add 'undefined' as a value.\");\r\n\r\n\t\tvar _ = this;\r\n\t\tif(_.containsKey(key))\r\n\t\t{\r\n\t\t\tvar ex = new InvalidOperationException(\"Adding a key/value when the key already exists.\");\r\n\t\t\tex.data['key'] = key;\r\n\t\t\tex.data['value'] = value;\r\n\t\t\tthrow ex;\r\n\t\t}\r\n\r\n\t\treturn _.setValue(key, value);\r\n\t}\r\n\r\n\tprotected abstract _getEntry(key:TKey):IKeyValuePair;\r\n\r\n\tabstract getValue(key:TKey):TValue;\r\n\r\n\tprotected abstract _setValueInternal(key:TKey, value:TValue):boolean;\r\n\r\n\tsetValue(key:TKey, value:TValue):boolean\r\n\t{\r\n\t\t// setValue shouldn't need to worry about recursion...\r\n\t\tvar _ = this;\r\n\t\t_.assertModifiable();\r\n\r\n\t\tvar changed = false, old = _.getValue(key); // get the old value here and pass to internal.\r\n\t\tif(!areEqual(value, old) && _._setValueInternal(key, value))\r\n\t\t{\r\n\t\t\tchanged = true;\r\n\t\t\t_._onValueModified(key, value, old)\r\n\t\t}\r\n\r\n\t\t_._signalModification(changed);\r\n\t\treturn changed;\r\n\t}\r\n\r\n\tcontainsKey(key:TKey):boolean\r\n\t{\r\n\t\treturn !!this._getEntry(key);\r\n\t}\r\n\r\n\tcontainsValue(value:TValue):boolean\r\n\t{\r\n\t\tvar e = this.getEnumerator(), equal:(a:any, b:any, strict?:boolean) => boolean = areEqual;\r\n\r\n\t\twhile(e.moveNext())\r\n\t\t{\r\n\t\t\tif(equal(e.current, value, true))\r\n\t\t\t{\r\n\t\t\t\te.dispose();\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tremoveByKey(key:TKey):boolean\r\n\t{\r\n\t\treturn this.setValue(key, VOID0);\r\n\t}\r\n\r\n\tremoveByValue(value:TValue):number\r\n\t{\r\n\t\tvar _ = this, count = 0, equal:(a:any, b:any, strict?:boolean) => boolean = areEqual;\r\n\t\tfor(let key of _.getKeys())\r\n\t\t{\r\n\t\t\tif(equal(_.getValue(key), value, true))\r\n\t\t\t{\r\n\t\t\t\t_.removeByKey(key);\r\n\t\t\t\tcount++;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn count;\r\n\t}\r\n\r\n\timportEntries(pairs:IEnumerableOrArray>):number\r\n\t{\r\n\t\t// Allow piping through to trigger onModified properly.\r\n\t\treturn super.importEntries(pairs);\r\n\t}\r\n\r\n\tprotected _importEntries(pairs:IEnumerableOrArray>):number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(!pairs) return 0;\r\n\t\tlet changed:number = 0;\r\n\t\tforEach(pairs,\r\n\t\t\tpair=>extractKeyValue(pair, (key, value)=>\r\n\t\t\t{\r\n\t\t\t\tif(_._setValueInternal(key, value))\r\n\t\t\t\t\tchanged++;\r\n\t\t\t})\r\n\t\t);\r\n\t\treturn changed;\r\n\t}\r\n\r\n\tgetEnumerator():IEnumerator>\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar ver:number, keys:TKey[], len:number, i = 0;\r\n\t\treturn new EnumeratorBase>(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tver = _._version; // Track the version since getKeys is a copy.\r\n\t\t\t\tkeys = _.getKeys();\r\n\t\t\t\tlen = keys.length;\r\n\t\t\t},\r\n\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\t\t\t\t_.assertVersion(ver);\r\n\r\n\t\t\t\twhile(i extends StringKeyDictionary implements IOrderedDictionary { +import { StringKeyDictionary } from "./StringKeyDictionary"; +import { IOrderedDictionary } from "./IDictionary"; +export declare class OrderedStringKeyDictionary extends StringKeyDictionary implements IOrderedDictionary { private _order; constructor(); indexOfKey(key: string): number; @@ -15,3 +16,4 @@ export default class OrderedStringKeyDictionary extends StringKeyDiction removeByIndex(index: number): boolean; protected getKeys(): string[]; } +export default OrderedStringKeyDictionary; diff --git a/dist/commonjs/System/Collections/Dictionaries/OrderedStringKeyDictionary.js b/dist/commonjs/System/Collections/Dictionaries/OrderedStringKeyDictionary.js index 3eaacd00..02e57421 100644 --- a/dist/commonjs/System/Collections/Dictionaries/OrderedStringKeyDictionary.js +++ b/dist/commonjs/System/Collections/Dictionaries/OrderedStringKeyDictionary.js @@ -2,7 +2,7 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; +"use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); @@ -56,8 +56,8 @@ var OrderedStringKeyDictionary = function (_StringKeyDictionary_) { value: function setByIndex(index, value) { var _ = this, order = _._order; - if (index < 0) throw new ArgumentOutOfRangeException_1.default('index', index, 'Is less than zero.'); - if (index >= order.length) throw new ArgumentOutOfRangeException_1.default('index', index, 'Is greater than the count.'); + if (index < 0) throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('index', index, 'Is less than zero.'); + if (index >= order.length) throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('index', index, 'Is greater than the count.'); return _.setValue(order[index], value); } }, { @@ -98,8 +98,9 @@ var OrderedStringKeyDictionary = function (_StringKeyDictionary_) { }]); return OrderedStringKeyDictionary; -}(StringKeyDictionary_1.default); +}(StringKeyDictionary_1.StringKeyDictionary); +exports.OrderedStringKeyDictionary = OrderedStringKeyDictionary; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = OrderedStringKeyDictionary; //# sourceMappingURL=OrderedStringKeyDictionary.js.map diff --git a/dist/commonjs/System/Collections/Dictionaries/OrderedStringKeyDictionary.js.map b/dist/commonjs/System/Collections/Dictionaries/OrderedStringKeyDictionary.js.map index 39684864..8f264fec 100644 --- a/dist/commonjs/System/Collections/Dictionaries/OrderedStringKeyDictionary.js.map +++ b/dist/commonjs/System/Collections/Dictionaries/OrderedStringKeyDictionary.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Dictionaries/OrderedStringKeyDictionary.ts","System/Collections/Dictionaries/OrderedStringKeyDictionary.js"],"names":[],"mappings":";;;;AAKA;;;;;;;;;;;;AAEA,IAAY,eAAY,QAAM,kBAAN,CAAZ;AACZ,IAAA,wBAAA,QAAgC,uBAAhC,CAAA;AACA,IAAA,gCAAA,QAAwC,8CAAxC,CAAA;AAEA,IAAM,QAAY,KAAK,CAAL;;IAElB;;;AAQC,aARD,0BAQC,GAAA;8BARD,4BAQC;;2EARD,wCAQC;;AAFQ,cAAA,MAAA,GAAkB,EAAlB,CAER;;KAAA;;iBARD;;mCAaY,KAAU;AAEpB,gBAAI,IAAI,KAAK,MAAL,CAFY;AAGpB,mBAAO,EAAE,MAAF,GAAW,EAAE,OAAF,CAAU,GAAV,EAAe,CAAf,CAAX,GAA+B,CAAC,CAAD,CAHlB;;;;wCAML,OAAY;AAE3B,gBAAI,IAAI,KAAK,MAAL,CAFmB;AAG3B,mBAAO,QAAM,EAAE,MAAF,GAAW,KAAK,QAAL,CAAc,EAAE,KAAF,CAAd,CAAjB,GAA2C,KAA3C,CAHoB;;;;iCAOnB,KAAY,OAAc,WAAkB;AAGpD,gBAAI,IAAI,IAAJ;gBAAU,SAAS,EAAE,UAAF,CAAa,GAAb,KAAoB,CAAC,CAAD,CAHS;AAIpD,gBAAG,CAAC,MAAD,KAAY,UAAQ,KAAR,IAAiB,SAAjB,CAAZ,EACF,EAAE,MAAF,CAAS,IAAT,CAAc,GAAd,EADD,KAEK,IAAG,UAAU,UAAQ,KAAR,IAAiB,CAAC,SAAD,EAClC,aAAa,MAAb,CAAoB,EAAE,MAAF,EAAU,GAA9B,EADI;AAGL,8CAnCF,oEAmCwB,KAAK,MAA3B,CAToD;;;;mCAY1C,OAAc,OAAY;AAEpC,gBAAI,IAAI,IAAJ;gBAAU,QAAQ,EAAE,MAAF,CAFc;AAGpC,gBAAG,QAAM,CAAN,EACF,MAAM,IAAI,8BAAA,OAAA,CAA4B,OAAhC,EAAyC,KAAzC,EAAgD,oBAAhD,CAAN,CADD;AAEA,gBAAG,SAAO,MAAM,MAAN,EACT,MAAM,IAAI,8BAAA,OAAA,CAA4B,OAAhC,EAAyC,KAAzC,EAAgD,4BAAhD,CAAN,CADD;AAEA,mBAAO,EAAE,QAAF,CAAW,MAAM,KAAN,CAAX,EAAyB,KAAzB,CAAP,CAPoC;;;;qCAWxB,QAAe;AAE3B,gBAAI,IAAI,IAAJ,CAFuB;AAG3B,mBAAO,EAAE,YAAF,CACN,YAAA;AAEC,oBAAI,UAAkB,KAAlB,CAFL;AAGC,qBAAI,IAAI,IAAI,CAAJ,EAAO,IAAE,OAAO,MAAP,EAAe,GAAhC,EACA;AACC,wBAAG,EAAE,UAAF,CAAa,CAAb,EAAgB,OAAO,CAAP,CAAhB,CAAH,EACC,UAAU,IAAV,CADD;iBAFD;AAKA,uBAAO,OAAP,CARD;aAAA,CADD,CAH2B;;;;oCAmBA;8CAAf;;aAAe;;AAE3B,mBAAO,KAAK,YAAL,CAAkB,MAAlB,CAAP,CAF2B;;;;sCAKd,OAAY;AAEzB,mBAAO,KAAK,UAAL,CAAgB,KAAhB,EAAuB,KAAvB,CAAP,CAFyB;;;;kCAKT;AAEhB,gBAAI,IAAI,IAAJ;gBAAU,IAAI,EAAE,MAAF,CAFF;AAGhB,mBAAO,EAAE,MAAF,IAAY,EAAE,MAAF,CAAS;uBAAM,EAAE,WAAF,CAAc,GAAd;aAAN,CAArB,IAAkD,EAAlD,CAHS;;;;WA9ElB;EAEQ,sBAAA,OAAA;;AAFR,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ACgDA,QAAQ,OAAR,GAAkB,0BAAlB","file":"System/Collections/Dictionaries/OrderedStringKeyDictionary.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport * as ArrayUtility from \"../Array/Utility\";\r\nimport StringKeyDictionary from \"./StringKeyDictionary\";\r\nimport ArgumentOutOfRangeException from \"../../Exceptions/ArgumentOutOfRangeException\";\r\n\r\nconst VOID0:any = void 0;\r\n\r\nexport default\r\nclass OrderedStringKeyDictionary\r\nextends StringKeyDictionary implements IOrderedDictionary\r\n{\r\n\r\n\t// noinspection JSMismatchedCollectionQueryUpdate\r\n\tprivate _order:string[] = []; // Maintains indexes.\r\n\r\n\tconstructor()\r\n\t{\r\n\t\tsuper();\r\n\t}\r\n\r\n\tindexOfKey(key:string):number\r\n\t{\r\n\t\tvar o = this._order;\r\n\t\treturn o.length ? o.indexOf(key, 0) : -1;\r\n\t}\r\n\r\n\tgetValueByIndex(index:number):TValue\r\n\t{\r\n\t\tvar o = this._order;\r\n\t\treturn index=order.length)\r\n\t\t\tthrow new ArgumentOutOfRangeException('index', index, 'Is greater than the count.');\r\n\t\treturn _.setValue(order[index], value);\r\n\t}\r\n\r\n\t// importValues([x,y,z]);\r\n\timportValues(values:TValue[]):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn _.handleUpdate(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar changed:boolean = false;\r\n\t\t\t\tfor(let i = 0; i _.containsKey(key)) || [];\r\n\t}\r\n\r\n}\r\n","/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n'use strict';\nconst ArrayUtility = require(\"../Array/Utility\");\nconst StringKeyDictionary_1 = require(\"./StringKeyDictionary\");\nconst ArgumentOutOfRangeException_1 = require(\"../../Exceptions/ArgumentOutOfRangeException\");\nconst VOID0 = void 0;\nclass OrderedStringKeyDictionary extends StringKeyDictionary_1.default {\n constructor() {\n super();\n this._order = [];\n }\n indexOfKey(key) {\n var o = this._order;\n return o.length ? o.indexOf(key, 0) : -1;\n }\n getValueByIndex(index) {\n var o = this._order;\n return index < o.length ? this.getValue(o[index]) : VOID0;\n }\n setValue(key, value, keepIndex) {\n var _ = this, exists = _.indexOfKey(key) != -1;\n if (!exists && (value !== VOID0 || keepIndex))\n _._order.push(key);\n else if (exists && value === VOID0 && !keepIndex)\n ArrayUtility.remove(_._order, key);\n return super.setValue(key, value);\n }\n setByIndex(index, value) {\n var _ = this, order = _._order;\n if (index < 0)\n throw new ArgumentOutOfRangeException_1.default('index', index, 'Is less than zero.');\n if (index >= order.length)\n throw new ArgumentOutOfRangeException_1.default('index', index, 'Is greater than the count.');\n return _.setValue(order[index], value);\n }\n importValues(values) {\n var _ = this;\n return _.handleUpdate(() => {\n var changed = false;\n for (let i = 0; i < values.length; i++) {\n if (_.setByIndex(i, values[i]))\n changed = true;\n }\n return changed;\n });\n }\n setValues(...values) {\n return this.importValues(values);\n }\n removeByIndex(index) {\n return this.setByIndex(index, VOID0);\n }\n getKeys() {\n var _ = this, o = _._order;\n return o.length && o.filter(key => _.containsKey(key)) || [];\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = OrderedStringKeyDictionary;\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Dictionaries/OrderedStringKeyDictionary.js","System/Collections/Dictionaries/OrderedStringKeyDictionary.ts"],"names":[],"mappings":";;;;AAIA;;;;;;;;;;;;ACCA,IAAY,eAAY,QAAM,kBAAN,CAAZ;AACZ,IAAA,wBAAA,QAAkC,uBAAlC,CAAA;AACA,IAAA,gCAAA,QAA0C,8CAA1C,CAAA;AAGA,IAAM,QAAY,KAAK,CAAL;;IAElB;;;AAOC,aAPD,0BAOC,GAAA;8BAPD,4BAOC;;2EAPD,wCAOC;;AAFQ,cAAA,MAAA,GAAkB,EAAlB,CAER;;KAAA;;iBAPD;;mCAYY,KAAU;AAEpB,gBAAI,IAAI,KAAK,MAAL,CAFY;AAGpB,mBAAO,EAAE,MAAF,GAAW,EAAE,OAAF,CAAU,GAAV,EAAe,CAAf,CAAX,GAA+B,CAAC,CAAD,CAHlB;;;;wCAML,OAAY;AAE3B,gBAAI,IAAI,KAAK,MAAL,CAFmB;AAG3B,mBAAO,QAAM,EAAE,MAAF,GAAW,KAAK,QAAL,CAAc,EAAE,KAAF,CAAd,CAAjB,GAA2C,KAA3C,CAHoB;;;;iCAOnB,KAAY,OAAc,WAAkB;AAGpD,gBAAI,IAAI,IAAJ;gBAAU,SAAS,EAAE,UAAF,CAAa,GAAb,KAAoB,CAAC,CAAD,CAHS;AAIpD,gBAAG,CAAC,MAAD,KAAY,UAAQ,KAAR,IAAiB,SAAjB,CAAZ,EACF,EAAE,MAAF,CAAS,IAAT,CAAc,GAAd,EADD,KAEK,IAAG,UAAU,UAAQ,KAAR,IAAiB,CAAC,SAAD,EAClC,aAAa,MAAb,CAAoB,EAAE,MAAF,EAAU,GAA9B,EADI;AAGL,8CAlCF,oEAkCwB,KAAK,MAA3B,CAToD;;;;mCAY1C,OAAc,OAAY;AAEpC,gBAAI,IAAI,IAAJ;gBAAU,QAAQ,EAAE,MAAF,CAFc;AAGpC,gBAAG,QAAM,CAAN,EACF,MAAM,IAAI,8BAAA,2BAAA,CAA4B,OAAhC,EAAyC,KAAzC,EAAgD,oBAAhD,CAAN,CADD;AAEA,gBAAG,SAAO,MAAM,MAAN,EACT,MAAM,IAAI,8BAAA,2BAAA,CAA4B,OAAhC,EAAyC,KAAzC,EAAgD,4BAAhD,CAAN,CADD;AAEA,mBAAO,EAAE,QAAF,CAAW,MAAM,KAAN,CAAX,EAAyB,KAAzB,CAAP,CAPoC;;;;qCAWxB,QAAe;AAE3B,gBAAI,IAAI,IAAJ,CAFuB;AAG3B,mBAAO,EAAE,YAAF,CACN,YAAA;AAEC,oBAAI,UAAkB,KAAlB,CAFL;AAGC,qBAAI,IAAI,IAAI,CAAJ,EAAO,IAAE,OAAO,MAAP,EAAe,GAAhC,EACA;AACC,wBAAG,EAAE,UAAF,CAAa,CAAb,EAAgB,OAAO,CAAP,CAAhB,CAAH,EACC,UAAU,IAAV,CADD;iBAFD;AAKA,uBAAO,OAAP,CARD;aAAA,CADD,CAH2B;;;;oCAmBA;8CAAf;;aAAe;;AAE3B,mBAAO,KAAK,YAAL,CAAkB,MAAlB,CAAP,CAF2B;;;;sCAKd,OAAY;AAEzB,mBAAO,KAAK,UAAL,CAAgB,KAAhB,EAAuB,KAAvB,CAAP,CAFyB;;;;kCAKT;AAEhB,gBAAI,IAAI,IAAJ;gBAAU,IAAI,EAAE,MAAF,CAFF;AAGhB,mBAAO,EAAE,MAAF,IAAY,EAAE,MAAF,CAAS;uBAAM,EAAE,WAAF,CAAc,GAAd;aAAN,CAArB,IAAkD,EAAlD,CAHS;;;;WA7ElB;EACQ,sBAAA,mBAAA;;AADK,QAAA,0BAAA,GAA0B,0BAA1B;AAqFb,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADnCA,QAAQ,OAAR,GCmCe,0BDnCf","file":"System/Collections/Dictionaries/OrderedStringKeyDictionary.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst ArrayUtility = require(\"../Array/Utility\");\nconst StringKeyDictionary_1 = require(\"./StringKeyDictionary\");\nconst ArgumentOutOfRangeException_1 = require(\"../../Exceptions/ArgumentOutOfRangeException\");\nconst VOID0 = void 0;\nclass OrderedStringKeyDictionary extends StringKeyDictionary_1.StringKeyDictionary {\n constructor() {\n super();\n this._order = [];\n }\n indexOfKey(key) {\n var o = this._order;\n return o.length ? o.indexOf(key, 0) : -1;\n }\n getValueByIndex(index) {\n var o = this._order;\n return index < o.length ? this.getValue(o[index]) : VOID0;\n }\n setValue(key, value, keepIndex) {\n var _ = this, exists = _.indexOfKey(key) != -1;\n if (!exists && (value !== VOID0 || keepIndex))\n _._order.push(key);\n else if (exists && value === VOID0 && !keepIndex)\n ArrayUtility.remove(_._order, key);\n return super.setValue(key, value);\n }\n setByIndex(index, value) {\n var _ = this, order = _._order;\n if (index < 0)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('index', index, 'Is less than zero.');\n if (index >= order.length)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('index', index, 'Is greater than the count.');\n return _.setValue(order[index], value);\n }\n importValues(values) {\n var _ = this;\n return _.handleUpdate(() => {\n var changed = false;\n for (let i = 0; i < values.length; i++) {\n if (_.setByIndex(i, values[i]))\n changed = true;\n }\n return changed;\n });\n }\n setValues(...values) {\n return this.importValues(values);\n }\n removeByIndex(index) {\n return this.setByIndex(index, VOID0);\n }\n getKeys() {\n var _ = this, o = _._order;\n return o.length && o.filter(key => _.containsKey(key)) || [];\n }\n}\nexports.OrderedStringKeyDictionary = OrderedStringKeyDictionary;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = OrderedStringKeyDictionary;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport * as ArrayUtility from \"../Array/Utility\";\r\nimport {StringKeyDictionary} from \"./StringKeyDictionary\";\r\nimport {ArgumentOutOfRangeException} from \"../../Exceptions/ArgumentOutOfRangeException\";\r\nimport {IOrderedDictionary} from \"./IDictionary\";\r\n\r\nconst VOID0:any = void 0;\r\n\r\nexport class OrderedStringKeyDictionary\r\nextends StringKeyDictionary implements IOrderedDictionary\r\n{\r\n\r\n\t// noinspection JSMismatchedCollectionQueryUpdate\r\n\tprivate _order:string[] = []; // Maintains indexes.\r\n\r\n\tconstructor()\r\n\t{\r\n\t\tsuper();\r\n\t}\r\n\r\n\tindexOfKey(key:string):number\r\n\t{\r\n\t\tvar o = this._order;\r\n\t\treturn o.length ? o.indexOf(key, 0) : -1;\r\n\t}\r\n\r\n\tgetValueByIndex(index:number):TValue\r\n\t{\r\n\t\tvar o = this._order;\r\n\t\treturn index=order.length)\r\n\t\t\tthrow new ArgumentOutOfRangeException('index', index, 'Is greater than the count.');\r\n\t\treturn _.setValue(order[index], value);\r\n\t}\r\n\r\n\t// importValues([x,y,z]);\r\n\timportValues(values:TValue[]):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn _.handleUpdate(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar changed:boolean = false;\r\n\t\t\t\tfor(let i = 0; i _.containsKey(key)) || [];\r\n\t}\r\n\r\n}\r\n\r\nexport default OrderedStringKeyDictionary;\r\n"]} \ No newline at end of file diff --git a/dist/commonjs/System/Collections/Dictionaries/StringKeyDictionary.d.ts b/dist/commonjs/System/Collections/Dictionaries/StringKeyDictionary.d.ts index 15152615..2b7c006a 100644 --- a/dist/commonjs/System/Collections/Dictionaries/StringKeyDictionary.d.ts +++ b/dist/commonjs/System/Collections/Dictionaries/StringKeyDictionary.d.ts @@ -1,10 +1,11 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import DictionaryBase from "./DictionaryBase"; -export default class StringKeyDictionary extends DictionaryBase implements IStringKeyDictionary { +import { IStringKeyDictionary, IMap } from "./IDictionary"; +import { IKeyValuePair } from "../../KeyValuePair"; +import { DictionaryBase } from "./DictionaryBase"; +export declare class StringKeyDictionary extends DictionaryBase implements IStringKeyDictionary { private _count; private _map; protected _getEntry(key: string): IKeyValuePair; @@ -18,3 +19,4 @@ export default class StringKeyDictionary extends DictionaryBase\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport {areEqual} from \"../../Compare\";\r\nimport DictionaryBase from \"./DictionaryBase\";\r\n\r\nconst VOID0:any = void 0;\r\n\r\nexport default\r\nclass StringKeyDictionary\r\nextends DictionaryBase implements IStringKeyDictionary\r\n{\r\n\r\n\tprivate _count:number = 0;\r\n\tprivate _map:IMap = {};\r\n\r\n\tprotected _getEntry(key:string):IKeyValuePair\r\n\t{\r\n\t\treturn !this.containsKey(key)\r\n\t\t\t? null : {\r\n\t\t\tkey: key,\r\n\t\t\tvalue: this.getValue(key)\r\n\t\t}\r\n\t}\r\n\r\n\tcontainsKey(key:string):boolean\r\n\t{\r\n\t\tif(key===null || key===VOID0 || !this._count) return false;\r\n\t\treturn (key) in (this._map);\r\n\t}\r\n\r\n\tcontainsValue(value:TValue):boolean\r\n\t{\r\n\t\tif(!this._count) return false;\r\n\t\tvar map = this._map, equal:(a:any, b:any, strict?:boolean) => boolean = areEqual;\r\n\t\tfor(let key in map)\r\n\t\t{\r\n\t\t\tif(map.hasOwnProperty(key) && equal(map[key], value))\r\n\t\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\r\n\tgetValue(key:string):TValue\r\n\t{\r\n\t\tif(key===null || key===VOID0 || !this._count) return VOID0;\r\n\t\treturn this._map[key];\r\n\t}\r\n\r\n\tprotected _setValueInternal(key:string, value:TValue):boolean\r\n\t{\r\n\t\tvar _ = this, map = _._map, old = map[key];\r\n\t\tif(old!==value)\r\n\t\t{\r\n\r\n\t\t\tif(value===VOID0)\r\n\t\t\t{\r\n\t\t\t\tif((key) in (map))\r\n\t\t\t\t{\r\n\t\t\t\t\tdelete map[key];\r\n\t\t\t\t\t_._count--;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tif(!map.hasOwnProperty(key))\r\n\t\t\t\t\t_._count++;\r\n\t\t\t\tmap[key] = value;\r\n\t\t\t}\r\n\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t// Returns true if any value is updated...\r\n\timportMap(values:IMap):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn _.handleUpdate(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar changed:boolean = false;\r\n\t\t\t\tfor(let key in values)\r\n\t\t\t\t{\r\n\t\t\t\t\tif(values.hasOwnProperty(key) && _.setValue(key, values[key]))\r\n\t\t\t\t\t\tchanged = true;\r\n\t\t\t\t}\r\n\t\t\t\treturn changed;\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\ttoMap(selector?:(key:string, value:TValue) => TValue):IMap\r\n\t{\r\n\t\tvar _ = this, result:IMap = {};\r\n\t\tif(_._count) for(let key in _._map)\r\n\t\t{\r\n\t\t\tif(_._map.hasOwnProperty(key)) // This simply satisfies inspection.\r\n\t\t\t{\r\n\t\t\t\tvar value = _._map[key];\r\n\t\t\t\tif(selector)\r\n\t\t\t\t\tvalue = selector(key, value);\r\n\t\t\t\tif(value!==VOID0)\r\n\t\t\t\t\tresult[key] = value;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn result;\r\n\t}\r\n\r\n\tprotected getKeys():string[]\r\n\t{\r\n\t\treturn Object.keys(this._map);\r\n\t}\r\n\r\n\tprotected getValues():TValue[]\r\n\t{\r\n\t\tif(!this._count) return [];\r\n\t\tvar result:any[] = Object.keys(this._map);\r\n\t\tfor(let i = 0, len = result.length; i {\n var changed = false;\n for (let key in values) {\n if (values.hasOwnProperty(key) && _.setValue(key, values[key]))\n changed = true;\n }\n return changed;\n });\n }\n toMap(selector) {\n var _ = this, result = {};\n if (_._count)\n for (let key in _._map) {\n if (_._map.hasOwnProperty(key)) {\n var value = _._map[key];\n if (selector)\n value = selector(key, value);\n if (value !== VOID0)\n result[key] = value;\n }\n }\n return result;\n }\n getKeys() {\n return Object.keys(this._map);\n }\n getValues() {\n if (!this._count)\n return [];\n var result = Object.keys(this._map);\n for (let i = 0, len = result.length; i < len; i++) {\n result[i] = this._map[result[i]];\n }\n return result;\n }\n getCount() {\n return this._count;\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = StringKeyDictionary;\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Dictionaries/StringKeyDictionary.js","System/Collections/Dictionaries/StringKeyDictionary.ts"],"names":[],"mappings":"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","file":"System/Collections/Dictionaries/StringKeyDictionary.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst Compare_1 = require(\"../../Compare\");\nconst DictionaryBase_1 = require(\"./DictionaryBase\");\nconst VOID0 = void 0;\nclass StringKeyDictionary extends DictionaryBase_1.DictionaryBase {\n constructor(...args) {\n super(...args);\n this._count = 0;\n this._map = {};\n }\n _getEntry(key) {\n return !this.containsKey(key)\n ? null : {\n key: key,\n value: this.getValue(key)\n };\n }\n containsKey(key) {\n if (key === null || key === VOID0 || !this._count)\n return false;\n return (key) in (this._map);\n }\n containsValue(value) {\n if (!this._count)\n return false;\n var map = this._map, equal = Compare_1.areEqual;\n for (let key in map) {\n if (map.hasOwnProperty(key) && equal(map[key], value))\n return true;\n }\n return false;\n }\n getValue(key) {\n if (key === null || key === VOID0 || !this._count)\n return VOID0;\n return this._map[key];\n }\n _setValueInternal(key, value) {\n var _ = this, map = _._map, old = map[key];\n if (old !== value) {\n if (value === VOID0) {\n if ((key) in (map)) {\n delete map[key];\n _._count--;\n }\n }\n else {\n if (!map.hasOwnProperty(key))\n _._count++;\n map[key] = value;\n }\n return true;\n }\n return false;\n }\n importMap(values) {\n var _ = this;\n return _.handleUpdate(() => {\n var changed = false;\n for (let key in values) {\n if (values.hasOwnProperty(key) && _.setValue(key, values[key]))\n changed = true;\n }\n return changed;\n });\n }\n toMap(selector) {\n var _ = this, result = {};\n if (_._count)\n for (let key in _._map) {\n if (_._map.hasOwnProperty(key)) {\n var value = _._map[key];\n if (selector)\n value = selector(key, value);\n if (value !== VOID0)\n result[key] = value;\n }\n }\n return result;\n }\n getKeys() {\n return Object.keys(this._map);\n }\n getValues() {\n if (!this._count)\n return [];\n var result = Object.keys(this._map);\n for (let i = 0, len = result.length; i < len; i++) {\n result[i] = this._map[result[i]];\n }\n return result;\n }\n getCount() {\n return this._count;\n }\n}\nexports.StringKeyDictionary = StringKeyDictionary;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = StringKeyDictionary;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {areEqual} from \"../../Compare\";\r\nimport {IStringKeyDictionary, IMap} from \"./IDictionary\";\r\nimport {IKeyValuePair} from \"../../KeyValuePair\";\r\nimport {DictionaryBase} from \"./DictionaryBase\";\r\n\r\nconst VOID0:any = void 0;\r\n\r\nexport class StringKeyDictionary\r\nextends DictionaryBase implements IStringKeyDictionary\r\n{\r\n\r\n\tprivate _count:number = 0;\r\n\tprivate _map:IMap = {};\r\n\r\n\tprotected _getEntry(key:string):IKeyValuePair\r\n\t{\r\n\t\treturn !this.containsKey(key)\r\n\t\t\t? null : {\r\n\t\t\tkey: key,\r\n\t\t\tvalue: this.getValue(key)\r\n\t\t}\r\n\t}\r\n\r\n\tcontainsKey(key:string):boolean\r\n\t{\r\n\t\tif(key===null || key===VOID0 || !this._count) return false;\r\n\t\treturn (key) in (this._map);\r\n\t}\r\n\r\n\tcontainsValue(value:TValue):boolean\r\n\t{\r\n\t\tif(!this._count) return false;\r\n\t\tvar map = this._map, equal:(a:any, b:any, strict?:boolean) => boolean = areEqual;\r\n\t\tfor(let key in map)\r\n\t\t{\r\n\t\t\tif(map.hasOwnProperty(key) && equal(map[key], value))\r\n\t\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\r\n\tgetValue(key:string):TValue\r\n\t{\r\n\t\tif(key===null || key===VOID0 || !this._count) return VOID0;\r\n\t\treturn this._map[key];\r\n\t}\r\n\r\n\tprotected _setValueInternal(key:string, value:TValue):boolean\r\n\t{\r\n\t\tvar _ = this, map = _._map, old = map[key];\r\n\t\tif(old!==value)\r\n\t\t{\r\n\r\n\t\t\tif(value===VOID0)\r\n\t\t\t{\r\n\t\t\t\tif((key) in (map))\r\n\t\t\t\t{\r\n\t\t\t\t\tdelete map[key];\r\n\t\t\t\t\t_._count--;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tif(!map.hasOwnProperty(key))\r\n\t\t\t\t\t_._count++;\r\n\t\t\t\tmap[key] = value;\r\n\t\t\t}\r\n\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t// Returns true if any value is updated...\r\n\timportMap(values:IMap):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn _.handleUpdate(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar changed:boolean = false;\r\n\t\t\t\tfor(let key in values)\r\n\t\t\t\t{\r\n\t\t\t\t\tif(values.hasOwnProperty(key) && _.setValue(key, values[key]))\r\n\t\t\t\t\t\tchanged = true;\r\n\t\t\t\t}\r\n\t\t\t\treturn changed;\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\ttoMap(selector?:(key:string, value:TValue) => TValue):IMap\r\n\t{\r\n\t\tvar _ = this, result:IMap = {};\r\n\t\tif(_._count) for(let key in _._map)\r\n\t\t{\r\n\t\t\tif(_._map.hasOwnProperty(key)) // This simply satisfies inspection.\r\n\t\t\t{\r\n\t\t\t\tvar value = _._map[key];\r\n\t\t\t\tif(selector)\r\n\t\t\t\t\tvalue = selector(key, value);\r\n\t\t\t\tif(value!==VOID0)\r\n\t\t\t\t\tresult[key] = value;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn result;\r\n\t}\r\n\r\n\tprotected getKeys():string[]\r\n\t{\r\n\t\treturn Object.keys(this._map);\r\n\t}\r\n\r\n\tprotected getValues():TValue[]\r\n\t{\r\n\t\tif(!this._count) return [];\r\n\t\tvar result:any[] = Object.keys(this._map);\r\n\t\tfor(let i = 0, len = result.length; i /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import IndexEnumerator from "./IndexEnumerator"; -export default class ArrayEnumerator extends IndexEnumerator { +import { IndexEnumerator } from "./IndexEnumerator"; +import { IArray } from "../Array/IArray"; +export declare class ArrayEnumerator extends IndexEnumerator { constructor(arrayFactory: () => IArray, start?: number, step?: number); constructor(array: IArray, start?: number, step?: number); } +export default ArrayEnumerator; diff --git a/dist/commonjs/System/Collections/Enumeration/ArrayEnumerator.js b/dist/commonjs/System/Collections/Enumeration/ArrayEnumerator.js index 2c82b7ce..8c373211 100644 --- a/dist/commonjs/System/Collections/Enumeration/ArrayEnumerator.js +++ b/dist/commonjs/System/Collections/Enumeration/ArrayEnumerator.js @@ -2,7 +2,7 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; +"use strict"; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } @@ -13,8 +13,8 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function" var IndexEnumerator_1 = require("./IndexEnumerator"); var Types_1 = require("../../Types"); -var ArrayEnumerator = function (_IndexEnumerator_1$de) { - _inherits(ArrayEnumerator, _IndexEnumerator_1$de); +var ArrayEnumerator = function (_IndexEnumerator_1$In) { + _inherits(ArrayEnumerator, _IndexEnumerator_1$In); function ArrayEnumerator(arrayOrFactory) { var start = arguments.length <= 1 || arguments[1] === undefined ? 0 : arguments[1]; @@ -23,14 +23,20 @@ var ArrayEnumerator = function (_IndexEnumerator_1$de) { _classCallCheck(this, ArrayEnumerator); return _possibleConstructorReturn(this, Object.getPrototypeOf(ArrayEnumerator).call(this, function () { - var array = Types_1.default.isFunction(arrayOrFactory) ? arrayOrFactory() : arrayOrFactory; - return { source: array, pointer: start, length: array ? array.length : 0, step: step }; + var array = Types_1.Type.isFunction(arrayOrFactory) ? arrayOrFactory() : arrayOrFactory; + return { + source: array, + pointer: start, + length: array ? array.length : 0, + step: step + }; })); } return ArrayEnumerator; -}(IndexEnumerator_1.default); +}(IndexEnumerator_1.IndexEnumerator); +exports.ArrayEnumerator = ArrayEnumerator; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = ArrayEnumerator; //# sourceMappingURL=ArrayEnumerator.js.map diff --git a/dist/commonjs/System/Collections/Enumeration/ArrayEnumerator.js.map b/dist/commonjs/System/Collections/Enumeration/ArrayEnumerator.js.map index 01ae025f..7a0b7508 100644 --- a/dist/commonjs/System/Collections/Enumeration/ArrayEnumerator.js.map +++ b/dist/commonjs/System/Collections/Enumeration/ArrayEnumerator.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Enumeration/ArrayEnumerator.ts","System/Collections/Enumeration/ArrayEnumerator.js"],"names":[],"mappings":";;;;AAMA;;;;;;;;AAEA,IAAA,oBAAA,QAA4B,mBAA5B,CAAA;AACA,IAAA,UAAA,QAAiB,aAAjB,CAAA;;IAEA;;;AAKC,aALD,eAKC,CAAY,cAAZ,EAAiE;YAAjC,8DAAe,iBAAkB;YAAf,6DAAc,iBAAC;;8BALlE,iBAKkE;;sEALlE,4BAQG,YAAA;AAEC,gBAAI,QAAQ,QAAA,OAAA,CAAK,UAAL,CAAgB,cAAhB,IAAkC,gBAAlC,GAAqD,cAArD,CAFb;AAGC,mBAAO,EAAC,QAAQ,KAAR,EAAe,SAAS,KAAT,EAAgB,QAAQ,QAAQ,MAAM,MAAN,GAAe,CAAvB,EAA0B,MAAM,IAAN,EAAzE,CAHD;SAAA,GAH+D;KAAjE;;WALD;EACiC,kBAAA,OAAA;;AADjC,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ACKA,QAAQ,OAAR,GAAkB,eAAlB","file":"System/Collections/Enumeration/ArrayEnumerator.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport IndexEnumerator from \"./IndexEnumerator\";\r\nimport Type from \"../../Types\";\r\n\r\nexport default\r\nclass ArrayEnumerator extends IndexEnumerator\r\n{\r\n\tconstructor(arrayFactory:() => IArray, start?:number, step?:number);\r\n\tconstructor(array:IArray, start?:number, step?:number);\r\n\tconstructor(arrayOrFactory:any, start:number = 0, step:number = 1)\r\n\t{\r\n\t\tsuper(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar array = Type.isFunction(arrayOrFactory) ? arrayOrFactory() : arrayOrFactory;\r\n\t\t\t\treturn {source: array, pointer: start, length: array ? array.length : 0, step: step};\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n}\r\n\r\n","/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n'use strict';\nconst IndexEnumerator_1 = require(\"./IndexEnumerator\");\nconst Types_1 = require(\"../../Types\");\nclass ArrayEnumerator extends IndexEnumerator_1.default {\n constructor(arrayOrFactory, start = 0, step = 1) {\n super(() => {\n var array = Types_1.default.isFunction(arrayOrFactory) ? arrayOrFactory() : arrayOrFactory;\n return { source: array, pointer: start, length: array ? array.length : 0, step: step };\n });\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = ArrayEnumerator;\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Enumeration/ArrayEnumerator.js","System/Collections/Enumeration/ArrayEnumerator.ts"],"names":[],"mappings":";;;;AAIA;;;;;;;;ACEA,IAAA,oBAAA,QAA8B,mBAA9B,CAAA;AACA,IAAA,UAAA,QAAmB,aAAnB,CAAA;;IAGA;;;AAIC,aAJD,eAIC,CAAY,cAAZ,EAAiE;YAAjC,8DAAe,iBAAkB;YAAf,6DAAc,iBAAC;;8BAJlE,iBAIkE;;sEAJlE,4BAOG,YAAA;AAEC,gBAAI,QAAQ,QAAA,IAAA,CAAK,UAAL,CAAgB,cAAhB,IAAkC,gBAAlC,GAAqD,cAArD,CAFb;AAGC,mBAAO;AACN,wBAAQ,KAAR;AACA,yBAAS,KAAT;AACA,wBAAQ,QAAQ,MAAM,MAAN,GAAe,CAAvB;AACR,sBAAM,IAAN;aAJD,CAHD;SAAA,GAH+D;KAAjE;;WAJD;EAAwC,kBAAA,eAAA;;AAA3B,QAAA,eAAA,GAAe,eAAf;AAqBb,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADTA,QAAQ,OAAR,GCSe,eDTf","file":"System/Collections/Enumeration/ArrayEnumerator.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst IndexEnumerator_1 = require(\"./IndexEnumerator\");\nconst Types_1 = require(\"../../Types\");\nclass ArrayEnumerator extends IndexEnumerator_1.IndexEnumerator {\n constructor(arrayOrFactory, start = 0, step = 1) {\n super(() => {\n var array = Types_1.Type.isFunction(arrayOrFactory) ? arrayOrFactory() : arrayOrFactory;\n return {\n source: array,\n pointer: start,\n length: array ? array.length : 0,\n step: step\n };\n });\n }\n}\nexports.ArrayEnumerator = ArrayEnumerator;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = ArrayEnumerator;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {IndexEnumerator} from \"./IndexEnumerator\";\r\nimport {Type} from \"../../Types\";\r\nimport {IArray} from \"../Array/IArray\";\r\n\r\nexport class ArrayEnumerator extends IndexEnumerator\r\n{\r\n\tconstructor(arrayFactory:() => IArray, start?:number, step?:number);\r\n\tconstructor(array:IArray, start?:number, step?:number);\r\n\tconstructor(arrayOrFactory:any, start:number = 0, step:number = 1)\r\n\t{\r\n\t\tsuper(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar array = Type.isFunction(arrayOrFactory) ? arrayOrFactory() : arrayOrFactory;\r\n\t\t\t\treturn {\r\n\t\t\t\t\tsource: array,\r\n\t\t\t\t\tpointer: start,\r\n\t\t\t\t\tlength: array ? array.length : 0,\r\n\t\t\t\t\tstep: step\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n}\r\n\r\nexport default ArrayEnumerator;"]} \ No newline at end of file diff --git a/dist/commonjs/System/Collections/Enumeration/Enumerator.d.ts b/dist/commonjs/System/Collections/Enumeration/Enumerator.d.ts index 4001711b..b0c4a155 100644 --- a/dist/commonjs/System/Collections/Enumeration/Enumerator.d.ts +++ b/dist/commonjs/System/Collections/Enumeration/Enumerator.d.ts @@ -1,13 +1,11 @@ -/// -/// -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { Selector } from "../../FunctionTypes"; +import { IEnumerator } from "./IEnumerator"; +import { IEnumerable } from "./IEnumerable"; +import { IEnumerableOrArray } from "../IEnumerableOrArray"; export declare function throwIfEndless(isEndless: boolean): void; export declare const empty: IEnumerator; export declare function from(source: IEnumerableOrArray): IEnumerator; diff --git a/dist/commonjs/System/Collections/Enumeration/Enumerator.js b/dist/commonjs/System/Collections/Enumeration/Enumerator.js index c1e486d7..d94486dd 100644 --- a/dist/commonjs/System/Collections/Enumeration/Enumerator.js +++ b/dist/commonjs/System/Collections/Enumeration/Enumerator.js @@ -2,7 +2,7 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; +"use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); @@ -17,11 +17,11 @@ var VOID0 = void 0, STRING_EMPTY = "", ENDLESS_EXCEPTION_MESSAGE = 'Cannot call forEach on an endless enumerable. ' + 'Would result in an infinite loop that could hang the current process.'; function throwIfEndless(isEndless) { - if (isEndless) throw new UnsupportedEnumerableException_1.default(ENDLESS_EXCEPTION_MESSAGE); + if (isEndless) throw new UnsupportedEnumerableException_1.UnsupportedEnumerableException(ENDLESS_EXCEPTION_MESSAGE); } exports.throwIfEndless = throwIfEndless; function initArrayFrom(source) { - if (Array.isArray(source) || Types_1.default.isString(source)) { + if (Array.isArray(source) || Types_1.Type.isString(source)) { var len = source.length; if (isFinite(len)) { if (len > 65535) return new Array(len); @@ -82,9 +82,9 @@ Object.freeze(Empty); exports.empty = Empty; function from(source) { if (!source) return Empty; - if (Array.isArray(source)) return new ArrayEnumerator_1.default(source); - if (Types_1.default.isArrayLike(source)) { - return new IndexEnumerator_1.default(function () { + if (Array.isArray(source)) return new ArrayEnumerator_1.ArrayEnumerator(source); + if (Types_1.Type.isArrayLike(source)) { + return new IndexEnumerator_1.IndexEnumerator(function () { return { source: source, length: source.length, @@ -93,27 +93,27 @@ function from(source) { }; }); } - if (!Types_1.default.isPrimitive(source)) { + if (!Types_1.Type.isPrimitive(source)) { if (isEnumerable(source)) return source.getEnumerator(); } throw new Error("Unknown enumerable."); } exports.from = from; function isEnumerable(instance) { - return Types_1.default.hasMemberOfType(instance, "getEnumerator", Types_1.default.FUNCTION); + return Types_1.Type.hasMemberOfType(instance, "getEnumerator", Types_1.Type.FUNCTION); } exports.isEnumerable = isEnumerable; function isEnumerableOrArrayLike(instance) { - return Types_1.default.isArrayLike(instance) || isEnumerable(instance); + return Types_1.Type.isArrayLike(instance) || isEnumerable(instance); } exports.isEnumerableOrArrayLike = isEnumerableOrArrayLike; function isEnumerator(instance) { - return Types_1.default.hasMemberOfType(instance, "moveNext", Types_1.default.FUNCTION); + return Types_1.Type.hasMemberOfType(instance, "moveNext", Types_1.Type.FUNCTION); } exports.isEnumerator = isEnumerator; function forEach(e, action) { if (e !== VOID0 && e !== null) { - if (Types_1.default.isArrayLike(e)) { + if (Types_1.Type.isArrayLike(e)) { throwIfEndless(!isFinite(e.length)); for (var i = 0; i < e.length; i++) { if (action(e[i], i) === false) break; @@ -145,7 +145,7 @@ function toArray(source) { var result = initArrayFrom(source); if (!forEach(source, function (e, i) { result[i] = e; - })) throw new UnsupportedEnumerableException_1.default(); + })) throw new UnsupportedEnumerableException_1.UnsupportedEnumerableException(); return result; } exports.toArray = toArray; @@ -153,7 +153,7 @@ function map(source, selector) { var result = initArrayFrom(source); if (!forEach(source, function (e, i) { result[i] = selector(e); - })) throw new UnsupportedEnumerableException_1.default(); + })) throw new UnsupportedEnumerableException_1.UnsupportedEnumerableException(); return result; } exports.map = map; diff --git a/dist/commonjs/System/Collections/Enumeration/Enumerator.js.map b/dist/commonjs/System/Collections/Enumeration/Enumerator.js.map index b8994dec..82cb1b46 100644 --- a/dist/commonjs/System/Collections/Enumeration/Enumerator.js.map +++ b/dist/commonjs/System/Collections/Enumeration/Enumerator.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Enumeration/Enumerator.ts"],"names":[],"mappings":"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","file":"System/Collections/Enumeration/Enumerator.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport {using} from \"../../Disposable/dispose\";\r\nimport Type from \"../../Types\";\r\nimport ArrayEnumerator from \"./ArrayEnumerator\";\r\nimport IndexEnumerator from \"./IndexEnumerator\";\r\nimport UnsupportedEnumerableException from \"./UnsupportedEnumerableException\";\r\n\r\nconst\r\n\tVOID0:any = void(0),\r\n\tSTRING_EMPTY:string = \"\",\r\n\tENDLESS_EXCEPTION_MESSAGE =\r\n\t\t'Cannot call forEach on an endless enumerable. '+\r\n\t\t'Would result in an infinite loop that could hang the current process.';\r\n\r\nexport function throwIfEndless(isEndless:boolean):void {\r\n\tif(isEndless) throw new UnsupportedEnumerableException(ENDLESS_EXCEPTION_MESSAGE);\r\n}\r\n\r\nfunction initArrayFrom(source:IEnumerableOrArray|IEnumerator):any[] {\r\n\tif(Array.isArray(source) || Type.isString(source)) {\r\n\t\tvar len = source.length;\r\n\t\tif(isFinite(len))\r\n\t\t{\r\n\t\t\tif(len>65535) return new Array(len);\r\n\t\t\tvar result:any[] = [];\r\n\t\t\tresult.length = len;\r\n\t\t\treturn result;\r\n\t\t}\r\n\t}\r\n\treturn [];\r\n}\r\n\r\nclass EmptyEnumerator implements IEnumerator\r\n{\r\n\tget current():any\r\n\t{\r\n\t\treturn VOID0;\r\n\t}\r\n\r\n\tmoveNext():boolean\r\n\t{\r\n\t\treturn false;\r\n\t}\r\n\r\n\tnextValue():any\r\n\t{\r\n\t\treturn VOID0;\r\n\t}\r\n\r\n\tnext():IIteratorResult\r\n\t{\r\n\t\treturn {\r\n\t\t\tvalue: VOID0,\r\n\t\t\tdone: true\r\n\t\t}\r\n\t}\r\n\r\n\treset():void { }\r\n\r\n\tdispose():void { }\r\n\r\n\tget isEndless():boolean {\r\n\t\treturn false;\r\n\t}\r\n}\r\n\r\nconst Empty = new EmptyEnumerator();\r\nObject.freeze(Empty);\r\n\r\nexport const empty:IEnumerator = Empty;\r\n\r\n// Could be array, or IEnumerable...\r\nexport function from(source:IEnumerableOrArray):IEnumerator\r\n{\r\n\t// To simplify and prevent null reference exceptions:\r\n\tif(!source)\r\n\t\treturn Empty;\r\n\r\n\tif(Array.isArray(source))\r\n\t\treturn new ArrayEnumerator(source);\r\n\r\n\tif(Type.isArrayLike(source))\r\n\t{\r\n\t\treturn new IndexEnumerator(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\treturn {\r\n\t\t\t\t\tsource: source,\r\n\t\t\t\t\tlength: source.length,\r\n\t\t\t\t\tpointer: 0,\r\n\t\t\t\t\tstep: 1\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tif(!Type.isPrimitive(source))\r\n\t{\r\n\t\tif(isEnumerable(source))\r\n\t\t\treturn source.getEnumerator();\r\n\r\n\t}\r\n\r\n\tthrow new Error(\"Unknown enumerable.\");\r\n}\r\n\r\nexport function isEnumerable(instance:any):instance is IEnumerable\r\n{\r\n\treturn Type.hasMemberOfType>(instance, \"getEnumerator\", Type.FUNCTION);\r\n}\r\n\r\nexport function isEnumerableOrArrayLike(instance:any):instance is IEnumerableOrArray\r\n{\r\n\treturn Type.isArrayLike(instance) || isEnumerable(instance);\r\n}\r\n\r\n\r\nexport function isEnumerator(instance:any):instance is IEnumerator\r\n{\r\n\treturn Type.hasMemberOfType>(instance, \"moveNext\", Type.FUNCTION);\r\n}\r\n\r\n/**\r\n * Flexible method for iterating any enumerable, enumerable, array, or array-like object.\r\n * @param e\r\n * @param action\r\n * @returns true if enumerated, false if null or unrecognized enumerable, void if nothing done\r\n */\r\nexport function forEach(\r\n\te:IEnumerableOrArray|IEnumerator,\r\n\taction:(element:T, index?:number) => any):boolean|void\r\n{\r\n\tif(e!==VOID0 && e!==null) // Allow for empty string.\r\n\t{\r\n\t\tif(Type.isArrayLike(e))\r\n\t\t{\r\n\t\t\t// Assume e.length is constant or at least doesn't deviate to infinite or NaN.\r\n\t\t\tthrowIfEndless(!isFinite(e.length));\r\n\r\n\t\t\tfor(let i = 0; i(e))\r\n\t\t{\r\n\t\t\tthrowIfEndless(e.isEndless);\r\n\r\n\t\t\tvar index = 0;\r\n\t\t\t// Return value of action can be anything, but if it is (===) false then the forEach will discontinue.\r\n\t\t\twhile(e.moveNext())\r\n\t\t\t{\r\n\t\t\t\tif(action(e.current, index++)===false)\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tif(isEnumerable(e))\r\n\t\t{\r\n\t\t\tthrowIfEndless(e.isEndless);\r\n\r\n\t\t\t// For enumerators that aren't EnumerableBase, ensure dispose is called.\r\n\t\t\tusing(\r\n\t\t\t\t(>e).getEnumerator(),\r\n\t\t\t\tf=>forEach(f, action)\r\n\t\t\t);\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n}\r\n\r\n/**\r\n * Converts any enumerable to an array.\r\n * @param source\r\n * @returns {any}\r\n */\r\nexport function toArray(\r\n\tsource:IEnumerableOrArray|IEnumerator):T[]\r\n{\r\n\tif(source===STRING_EMPTY) return [];\r\n\r\n\tif(Array.isArray(source))\r\n\t\treturn source.slice();\r\n\r\n\tvar result:T[] = initArrayFrom(source);\r\n\tif(!forEach(source,(e, i) => { result[i] = e; }))\r\n\t\tthrow new UnsupportedEnumerableException();\r\n\r\n\treturn result;\r\n}\r\n\r\n/**\r\n * Converts any enumerable to an array of selected values.\r\n * @param source\r\n * @param selector\r\n * @returns {TResult[]}\r\n */\r\nexport function map(\r\n\tsource:IEnumerableOrArray|IEnumerator,\r\n\tselector:Selector):TResult[]\r\n{\r\n\tvar result:TResult[] = initArrayFrom(source);\r\n\tif(!forEach(source,(e, i) => { result[i] = selector(e); }))\r\n\t\tthrow new UnsupportedEnumerableException();\r\n\r\n\treturn result;\r\n}"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Enumeration/Enumerator.js","System/Collections/Enumeration/Enumerator.ts"],"names":[],"mappings":";;;;AAIA;;;;;;ACEA,IAAA,YAAA,QAAoB,0BAApB,CAAA;AACA,IAAA,UAAA,QAAmB,aAAnB,CAAA;AACA,IAAA,oBAAA,QAA8B,mBAA9B,CAAA;AACA,IAAA,oBAAA,QAA8B,mBAA9B,CAAA;AACA,IAAA,mCAAA,QAA6C,kCAA7C,CAAA;AAOA,IACC,QAA4B,KAAK,CAAL;IAC5B,eAA4B,EAA5B;IACA,4BACC,mDACA,uEADA;AAGF,SAAA,cAAA,CAA+B,SAA/B,EAAgD;AAE/C,QAAG,SAAH,EAAc,MAAM,IAAI,iCAAA,8BAAA,CAA+B,yBAAnC,CAAN,CAAd;CAFD;AAAgB,QAAA,cAAA,GAAc,cAAd;AAKhB,SAAA,aAAA,CAAuB,MAAvB,EAAsE;AAErE,QAAG,MAAM,OAAN,CAAc,MAAd,KAAyB,QAAA,IAAA,CAAK,QAAL,CAAc,MAAd,CAAzB,EACH;AACC,YAAI,MAAM,OAAO,MAAP,CADX;AAEC,YAAG,SAAS,GAAT,CAAH,EACA;AACC,gBAAG,MAAI,KAAJ,EAAW,OAAO,IAAI,KAAJ,CAAU,GAAV,CAAP,CAAd;AACA,gBAAI,SAAe,EAAf,CAFL;AAGC,mBAAO,MAAP,GAAgB,GAAhB,CAHD;AAIC,mBAAO,MAAP,CAJD;SADA;KAHD;AAWA,WAAO,EAAP,CAbqE;CAAtE;;IAgBA;;;;;;;mCAOS;AAEP,mBAAO,KAAP,CAFO;;;;oCAKC;AAER,mBAAO,KAAP,CAFQ;;;;+BAKL;AAEH,mBAAO;AACN,uBAAO,KAAP;AACA,sBAAM,IAAN;aAFD,CAFG;;;;gCAQC;;;kCAEE;;;4BAzBI;AAEV,mBAAO,KAAP,CAFU;;;;4BA2BE;AAEZ,mBAAO,KAAP,CAFY;;;;WA7Bd;;;AAmCA,IAAM,QAAQ,IAAI,eAAJ,EAAR;AACN,OAAO,MAAP,CAAc,KAAd;AAEa,QAAA,KAAA,GAAyB,KAAzB;AAGb,SAAA,IAAA,CAAwB,MAAxB,EAAoD;AAGnD,QAAG,CAAC,MAAD,EACF,OAAO,KAAP,CADD;AAGA,QAAG,MAAM,OAAN,CAAc,MAAd,CAAH,EACC,OAAO,IAAI,kBAAA,eAAA,CAAwB,MAA5B,CAAP,CADD;AAGA,QAAG,QAAA,IAAA,CAAK,WAAL,CAAoB,MAApB,CAAH,EACA;AACC,eAAO,IAAI,kBAAA,eAAA,CACV,YAAA;AAEC,mBAAO;AACN,wBAAQ,MAAR;AACA,wBAAQ,OAAO,MAAP;AACR,yBAAS,CAAT;AACA,sBAAM,CAAN;aAJD,CAFD;SAAA,CADD,CADD;KADA;AAeA,QAAG,CAAC,QAAA,IAAA,CAAK,WAAL,CAAiB,MAAjB,CAAD,EACH;AACC,YAAG,aAAgB,MAAhB,CAAH,EACC,OAAO,OAAO,aAAP,EAAP,CADD;KAFD;AAOA,UAAM,IAAI,KAAJ,CAAU,qBAAV,CAAN,CA/BmD;CAApD;AAAgB,QAAA,IAAA,GAAI,IAAJ;AAkChB,SAAA,YAAA,CAAgC,QAAhC,EAA4C;AAE3C,WAAO,QAAA,IAAA,CAAK,eAAL,CAAqC,QAArC,EAA+C,eAA/C,EAAgE,QAAA,IAAA,CAAK,QAAL,CAAvE,CAF2C;CAA5C;AAAgB,QAAA,YAAA,GAAY,YAAZ;AAKhB,SAAA,uBAAA,CAA2C,QAA3C,EAAuD;AAEtD,WAAO,QAAA,IAAA,CAAK,WAAL,CAAiB,QAAjB,KAA8B,aAAa,QAAb,CAA9B,CAF+C;CAAvD;AAAgB,QAAA,uBAAA,GAAuB,uBAAvB;AAMhB,SAAA,YAAA,CAAgC,QAAhC,EAA4C;AAE3C,WAAO,QAAA,IAAA,CAAK,eAAL,CAAqC,QAArC,EAA+C,UAA/C,EAA2D,QAAA,IAAA,CAAK,QAAL,CAAlE,CAF2C;CAA5C;AAAgB,QAAA,YAAA,GAAY,YAAZ;AAWhB,SAAA,OAAA,CACC,CADD,EAEC,MAFD,EAEyC;AAExC,QAAG,MAAI,KAAJ,IAAa,MAAI,IAAJ,EAChB;AACC,YAAG,QAAA,IAAA,CAAK,WAAL,CAAoB,CAApB,CAAH,EACA;AAEC,2BAAe,CAAC,SAAS,EAAE,MAAF,CAAV,CAAf,CAFD;AAIC,iBAAI,IAAI,IAAI,CAAJ,EAAO,IAAE,EAAE,MAAF,EAAU,GAA3B,EACA;AACC,oBAAG,OAAO,EAAE,CAAF,CAAP,EAAa,CAAb,MAAkB,KAAlB,EACF,MADD;aAFD;AAKA,mBAAO,IAAP,CATD;SADA;AAaA,YAAG,aAAgB,CAAhB,CAAH,EACA;AACC,2BAAe,EAAE,SAAF,CAAf,CADD;AAGC,gBAAI,QAAQ,CAAR,CAHL;AAKC,mBAAM,EAAE,QAAF,EAAN,EACA;AACC,oBAAG,OAAO,EAAE,OAAF,EAAW,OAAlB,MAA6B,KAA7B,EACF,MADD;aAFD;AAKA,mBAAO,IAAP,CAVD;SADA;AAcA,YAAG,aAAgB,CAAhB,CAAH,EACA;AACC,2BAAe,EAAE,SAAF,CAAf,CADD;AAIC,sBAAA,KAAA,CACkB,EAAG,aAAH,EADlB,EAEC;uBAAG,QAAQ,CAAR,EAAW,MAAX;aAAH,CAFD,CAJD;AAQC,mBAAO,IAAP,CARD;SADA;AAYA,eAAO,KAAP,CAxCD;KADA;CAJD;AAAgB,QAAA,OAAA,GAAO,OAAP;AAsDhB,SAAA,OAAA,CACC,MADD,EAC4C;AAE3C,QAAQ,WAAS,YAAT,EAAuB,OAAO,EAAP,CAA/B;AAEA,QAAG,MAAM,OAAN,CAAc,MAAd,CAAH,EACC,OAAO,OAAO,KAAP,EAAP,CADD;AAGA,QAAI,SAAa,cAAc,MAAd,CAAb,CAPuC;AAQ3C,QAAG,CAAC,QAAQ,MAAR,EAAgB,UAAC,CAAD,EAAI,CAAJ,EAAK;AAAO,eAAO,CAAP,IAAY,CAAZ,CAAP;KAAL,CAAjB,EACF,MAAM,IAAI,iCAAA,8BAAA,EAAV,CADD;AAGA,WAAO,MAAP,CAX2C;CAD5C;AAAgB,QAAA,OAAA,GAAO,OAAP;AAqBhB,SAAA,GAAA,CACC,MADD,EAEC,QAFD,EAE6B;AAE5B,QAAI,SAAmB,cAAc,MAAd,CAAnB,CAFwB;AAG5B,QAAG,CAAC,QAAQ,MAAR,EAAgB,UAAC,CAAD,EAAI,CAAJ,EAAK;AAAO,eAAO,CAAP,IAAY,SAAS,CAAT,CAAZ,CAAP;KAAL,CAAjB,EACF,MAAM,IAAI,iCAAA,8BAAA,EAAV,CADD;AAGA,WAAO,MAAP,CAN4B;CAF7B;AAAgB,QAAA,GAAA,GAAG,GAAH","file":"System/Collections/Enumeration/Enumerator.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst dispose_1 = require(\"../../Disposable/dispose\");\nconst Types_1 = require(\"../../Types\");\nconst ArrayEnumerator_1 = require(\"./ArrayEnumerator\");\nconst IndexEnumerator_1 = require(\"./IndexEnumerator\");\nconst UnsupportedEnumerableException_1 = require(\"./UnsupportedEnumerableException\");\nconst VOID0 = void (0), STRING_EMPTY = \"\", ENDLESS_EXCEPTION_MESSAGE = 'Cannot call forEach on an endless enumerable. ' +\n 'Would result in an infinite loop that could hang the current process.';\nfunction throwIfEndless(isEndless) {\n if (isEndless)\n throw new UnsupportedEnumerableException_1.UnsupportedEnumerableException(ENDLESS_EXCEPTION_MESSAGE);\n}\nexports.throwIfEndless = throwIfEndless;\nfunction initArrayFrom(source) {\n if (Array.isArray(source) || Types_1.Type.isString(source)) {\n var len = source.length;\n if (isFinite(len)) {\n if (len > 65535)\n return new Array(len);\n var result = [];\n result.length = len;\n return result;\n }\n }\n return [];\n}\nclass EmptyEnumerator {\n get current() {\n return VOID0;\n }\n moveNext() {\n return false;\n }\n nextValue() {\n return VOID0;\n }\n next() {\n return {\n value: VOID0,\n done: true\n };\n }\n reset() { }\n dispose() { }\n get isEndless() {\n return false;\n }\n}\nconst Empty = new EmptyEnumerator();\nObject.freeze(Empty);\nexports.empty = Empty;\nfunction from(source) {\n if (!source)\n return Empty;\n if (Array.isArray(source))\n return new ArrayEnumerator_1.ArrayEnumerator(source);\n if (Types_1.Type.isArrayLike(source)) {\n return new IndexEnumerator_1.IndexEnumerator(() => {\n return {\n source: source,\n length: source.length,\n pointer: 0,\n step: 1\n };\n });\n }\n if (!Types_1.Type.isPrimitive(source)) {\n if (isEnumerable(source))\n return source.getEnumerator();\n }\n throw new Error(\"Unknown enumerable.\");\n}\nexports.from = from;\nfunction isEnumerable(instance) {\n return Types_1.Type.hasMemberOfType(instance, \"getEnumerator\", Types_1.Type.FUNCTION);\n}\nexports.isEnumerable = isEnumerable;\nfunction isEnumerableOrArrayLike(instance) {\n return Types_1.Type.isArrayLike(instance) || isEnumerable(instance);\n}\nexports.isEnumerableOrArrayLike = isEnumerableOrArrayLike;\nfunction isEnumerator(instance) {\n return Types_1.Type.hasMemberOfType(instance, \"moveNext\", Types_1.Type.FUNCTION);\n}\nexports.isEnumerator = isEnumerator;\nfunction forEach(e, action) {\n if (e !== VOID0 && e !== null) {\n if (Types_1.Type.isArrayLike(e)) {\n throwIfEndless(!isFinite(e.length));\n for (let i = 0; i < e.length; i++) {\n if (action(e[i], i) === false)\n break;\n }\n return true;\n }\n if (isEnumerator(e)) {\n throwIfEndless(e.isEndless);\n var index = 0;\n while (e.moveNext()) {\n if (action(e.current, index++) === false)\n break;\n }\n return true;\n }\n if (isEnumerable(e)) {\n throwIfEndless(e.isEndless);\n dispose_1.using(e.getEnumerator(), f => forEach(f, action));\n return true;\n }\n return false;\n }\n}\nexports.forEach = forEach;\nfunction toArray(source) {\n if (source === STRING_EMPTY)\n return [];\n if (Array.isArray(source))\n return source.slice();\n var result = initArrayFrom(source);\n if (!forEach(source, (e, i) => { result[i] = e; }))\n throw new UnsupportedEnumerableException_1.UnsupportedEnumerableException();\n return result;\n}\nexports.toArray = toArray;\nfunction map(source, selector) {\n var result = initArrayFrom(source);\n if (!forEach(source, (e, i) => { result[i] = selector(e); }))\n throw new UnsupportedEnumerableException_1.UnsupportedEnumerableException();\n return result;\n}\nexports.map = map;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {using} from \"../../Disposable/dispose\";\r\nimport {Type} from \"../../Types\";\r\nimport {ArrayEnumerator} from \"./ArrayEnumerator\";\r\nimport {IndexEnumerator} from \"./IndexEnumerator\";\r\nimport {UnsupportedEnumerableException} from \"./UnsupportedEnumerableException\";\r\nimport {Selector} from \"../../FunctionTypes\";\r\nimport {IEnumerator} from \"./IEnumerator\";\r\nimport {IEnumerable} from \"./IEnumerable\";\r\nimport {IIteratorResult} from \"./IIterator\";\r\nimport {IEnumerableOrArray} from \"../IEnumerableOrArray\";\r\n\r\nconst\r\n\tVOID0:any = void(0),\r\n\tSTRING_EMPTY:string = \"\",\r\n\tENDLESS_EXCEPTION_MESSAGE =\r\n\t\t'Cannot call forEach on an endless enumerable. ' +\r\n\t\t'Would result in an infinite loop that could hang the current process.';\r\n\r\nexport function throwIfEndless(isEndless:boolean):void\r\n{\r\n\tif(isEndless) throw new UnsupportedEnumerableException(ENDLESS_EXCEPTION_MESSAGE);\r\n}\r\n\r\nfunction initArrayFrom(source:IEnumerableOrArray|IEnumerator):any[]\r\n{\r\n\tif(Array.isArray(source) || Type.isString(source))\r\n\t{\r\n\t\tvar len = source.length;\r\n\t\tif(isFinite(len))\r\n\t\t{\r\n\t\t\tif(len>65535) return new Array(len);\r\n\t\t\tvar result:any[] = [];\r\n\t\t\tresult.length = len;\r\n\t\t\treturn result;\r\n\t\t}\r\n\t}\r\n\treturn [];\r\n}\r\n\r\nclass EmptyEnumerator implements IEnumerator\r\n{\r\n\tget current():any\r\n\t{\r\n\t\treturn VOID0;\r\n\t}\r\n\r\n\tmoveNext():boolean\r\n\t{\r\n\t\treturn false;\r\n\t}\r\n\r\n\tnextValue():any\r\n\t{\r\n\t\treturn VOID0;\r\n\t}\r\n\r\n\tnext():IIteratorResult\r\n\t{\r\n\t\treturn {\r\n\t\t\tvalue: VOID0,\r\n\t\t\tdone: true\r\n\t\t}\r\n\t}\r\n\r\n\treset():void { }\r\n\r\n\tdispose():void { }\r\n\r\n\tget isEndless():boolean\r\n\t{\r\n\t\treturn false;\r\n\t}\r\n}\r\n\r\nconst Empty = new EmptyEnumerator();\r\nObject.freeze(Empty);\r\n\r\nexport const empty:IEnumerator = Empty;\r\n\r\n// Could be array, or IEnumerable...\r\nexport function from(source:IEnumerableOrArray):IEnumerator\r\n{\r\n\t// To simplify and prevent null reference exceptions:\r\n\tif(!source)\r\n\t\treturn Empty;\r\n\r\n\tif(Array.isArray(source))\r\n\t\treturn new ArrayEnumerator(source);\r\n\r\n\tif(Type.isArrayLike(source))\r\n\t{\r\n\t\treturn new IndexEnumerator(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\treturn {\r\n\t\t\t\t\tsource: source,\r\n\t\t\t\t\tlength: source.length,\r\n\t\t\t\t\tpointer: 0,\r\n\t\t\t\t\tstep: 1\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tif(!Type.isPrimitive(source))\r\n\t{\r\n\t\tif(isEnumerable(source))\r\n\t\t\treturn source.getEnumerator();\r\n\r\n\t}\r\n\r\n\tthrow new Error(\"Unknown enumerable.\");\r\n}\r\n\r\nexport function isEnumerable(instance:any):instance is IEnumerable\r\n{\r\n\treturn Type.hasMemberOfType>(instance, \"getEnumerator\", Type.FUNCTION);\r\n}\r\n\r\nexport function isEnumerableOrArrayLike(instance:any):instance is IEnumerableOrArray\r\n{\r\n\treturn Type.isArrayLike(instance) || isEnumerable(instance);\r\n}\r\n\r\n\r\nexport function isEnumerator(instance:any):instance is IEnumerator\r\n{\r\n\treturn Type.hasMemberOfType>(instance, \"moveNext\", Type.FUNCTION);\r\n}\r\n\r\n/**\r\n * Flexible method for iterating any enumerable, enumerable, array, or array-like object.\r\n * @param e\r\n * @param action\r\n * @returns true if enumerated, false if null or unrecognized enumerable, void if nothing done\r\n */\r\nexport function forEach(\r\n\te:IEnumerableOrArray|IEnumerator,\r\n\taction:(element:T, index?:number) => any):boolean|void\r\n{\r\n\tif(e!==VOID0 && e!==null) // Allow for empty string.\r\n\t{\r\n\t\tif(Type.isArrayLike(e))\r\n\t\t{\r\n\t\t\t// Assume e.length is constant or at least doesn't deviate to infinite or NaN.\r\n\t\t\tthrowIfEndless(!isFinite(e.length));\r\n\r\n\t\t\tfor(let i = 0; i(e))\r\n\t\t{\r\n\t\t\tthrowIfEndless(e.isEndless);\r\n\r\n\t\t\tvar index = 0;\r\n\t\t\t// Return value of action can be anything, but if it is (===) false then the forEach will discontinue.\r\n\t\t\twhile(e.moveNext())\r\n\t\t\t{\r\n\t\t\t\tif(action(e.current, index++)===false)\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tif(isEnumerable(e))\r\n\t\t{\r\n\t\t\tthrowIfEndless(e.isEndless);\r\n\r\n\t\t\t// For enumerators that aren't EnumerableBase, ensure dispose is called.\r\n\t\t\tusing(\r\n\t\t\t\t(>e).getEnumerator(),\r\n\t\t\t\tf=>forEach(f, action)\r\n\t\t\t);\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n}\r\n\r\n/**\r\n * Converts any enumerable to an array.\r\n * @param source\r\n * @returns {any}\r\n */\r\nexport function toArray(\r\n\tsource:IEnumerableOrArray|IEnumerator):T[]\r\n{\r\n\tif(source===STRING_EMPTY) return [];\r\n\r\n\tif(Array.isArray(source))\r\n\t\treturn source.slice();\r\n\r\n\tvar result:T[] = initArrayFrom(source);\r\n\tif(!forEach(source, (e, i) => { result[i] = e; }))\r\n\t\tthrow new UnsupportedEnumerableException();\r\n\r\n\treturn result;\r\n}\r\n\r\n/**\r\n * Converts any enumerable to an array of selected values.\r\n * @param source\r\n * @param selector\r\n * @returns {TResult[]}\r\n */\r\nexport function map(\r\n\tsource:IEnumerableOrArray|IEnumerator,\r\n\tselector:Selector):TResult[]\r\n{\r\n\tvar result:TResult[] = initArrayFrom(source);\r\n\tif(!forEach(source, (e, i) => { result[i] = selector(e); }))\r\n\t\tthrow new UnsupportedEnumerableException();\r\n\r\n\treturn result;\r\n}"]} \ No newline at end of file diff --git a/dist/commonjs/System/Collections/Enumeration/EnumeratorBase.d.ts b/dist/commonjs/System/Collections/Enumeration/EnumeratorBase.d.ts index 8ed548b8..e86eaee3 100644 --- a/dist/commonjs/System/Collections/Enumeration/EnumeratorBase.d.ts +++ b/dist/commonjs/System/Collections/Enumeration/EnumeratorBase.d.ts @@ -1,13 +1,12 @@ -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import DisposableBase from "../../Disposable/DisposableBase"; -export default class EnumeratorBase extends DisposableBase implements IEnumerator { +import { DisposableBase } from "../../Disposable/DisposableBase"; +import { IEnumerator } from "./IEnumerator"; +import { IIteratorResult } from "./IIterator"; +import { IYield } from "./IYield"; +export declare class EnumeratorBase extends DisposableBase implements IEnumerator { private _initializer; private _tryGetNext; private _yielder; @@ -24,3 +23,4 @@ export default class EnumeratorBase extends DisposableBase implements IEnumer next(): IIteratorResult; protected _onDispose(): void; } +export default EnumeratorBase; diff --git a/dist/commonjs/System/Collections/Enumeration/EnumeratorBase.js b/dist/commonjs/System/Collections/Enumeration/EnumeratorBase.js index a2491699..c746d3cf 100644 --- a/dist/commonjs/System/Collections/Enumeration/EnumeratorBase.js +++ b/dist/commonjs/System/Collections/Enumeration/EnumeratorBase.js @@ -2,7 +2,7 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; +"use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); @@ -18,7 +18,7 @@ var ObjectPool_1 = require("../../Disposable/ObjectPool"); var VOID0 = void 0; var yielderPool; function yielder(recycle) { - if (!yielderPool) yielderPool = new ObjectPool_1.default(40, function () { + if (!yielderPool) yielderPool = new ObjectPool_1.ObjectPool(40, function () { return new Yielder(); }); if (!recycle) return yielderPool.take(); @@ -67,8 +67,8 @@ var EnumeratorState; EnumeratorState[EnumeratorState["After"] = 2] = "After"; })(EnumeratorState || (EnumeratorState = {})); -var EnumeratorBase = function (_DisposableBase_1$def) { - _inherits(EnumeratorBase, _DisposableBase_1$def); +var EnumeratorBase = function (_DisposableBase_1$Dis) { + _inherits(EnumeratorBase, _DisposableBase_1$Dis); function EnumeratorBase(_initializer, _tryGetNext, disposer, isEndless) { _classCallCheck(this, EnumeratorBase); @@ -78,8 +78,8 @@ var EnumeratorBase = function (_DisposableBase_1$def) { _this._initializer = _initializer; _this._tryGetNext = _tryGetNext; _this.reset(); - if (Types_1.default.isBoolean(isEndless)) _this._isEndless = isEndless;else if (Types_1.default.isBoolean(disposer)) _this._isEndless = disposer; - if (Types_1.default.isFunction(disposer)) _this._disposer = disposer; + if (Types_1.Type.isBoolean(isEndless)) _this._isEndless = isEndless;else if (Types_1.Type.isBoolean(disposer)) _this._isEndless = disposer; + if (Types_1.Type.isFunction(disposer)) _this._disposer = disposer; return _this; } @@ -162,8 +162,9 @@ var EnumeratorBase = function (_DisposableBase_1$def) { }]); return EnumeratorBase; -}(DisposableBase_1.default); +}(DisposableBase_1.DisposableBase); +exports.EnumeratorBase = EnumeratorBase; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = EnumeratorBase; //# sourceMappingURL=EnumeratorBase.js.map diff --git a/dist/commonjs/System/Collections/Enumeration/EnumeratorBase.js.map b/dist/commonjs/System/Collections/Enumeration/EnumeratorBase.js.map index 4ec85284..2e956c45 100644 --- a/dist/commonjs/System/Collections/Enumeration/EnumeratorBase.js.map +++ b/dist/commonjs/System/Collections/Enumeration/EnumeratorBase.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Enumeration/EnumeratorBase.ts","System/Collections/Enumeration/EnumeratorBase.js"],"names":[],"mappings":"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","file":"System/Collections/Enumeration/EnumeratorBase.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport Type from \"../../Types\";\r\nimport DisposableBase from \"../../Disposable/DisposableBase\";\r\nimport ObjectPool from \"../../Disposable/ObjectPool\";\r\n\r\nconst VOID0:any = void(0);\r\n\r\nvar yielderPool:ObjectPool>;\r\nfunction yielder():Yielder;\r\nfunction yielder(recycle?:Yielder):void;\r\nfunction yielder(recycle?:Yielder):Yielder\r\n{\r\n\tif(!yielderPool)\r\n\t\tyielderPool\r\n\t\t\t= new ObjectPool>(40, ()=>new Yielder());\r\n\tif(!recycle) return yielderPool.take();\r\n\trecycle.yieldBreak();\r\n\tyielderPool.add(recycle);\r\n}\r\n\r\nclass Yielder implements IYield, IDisposable\r\n{\r\n\tprivate _current:T = VOID0;\r\n\tget current():T { return this._current; }\r\n\r\n\tyieldReturn(value:T):boolean\r\n\t{\r\n\t\tthis._current = value;\r\n\t\treturn true;\r\n\t}\r\n\r\n\tyieldBreak():boolean\r\n\t{\r\n\t\tthis._current = VOID0;\r\n\t\treturn false;\r\n\t}\r\n\r\n\tdispose():void\r\n\t{\r\n\t\tthis.yieldBreak();\r\n\t}\r\n}\r\n\r\ntype ActionVoid = ()=>void;\r\n\r\n// IEnumerator State\r\nenum EnumeratorState { Before, Running, After }\r\n\r\n// \"Enumerator\" is conflict JScript's \"Enumerator\"\r\n// Naming this class EnumeratorBase to avoid collision with IE.\r\nexport default\r\nclass EnumeratorBase extends DisposableBase implements IEnumerator\r\n{\r\n\r\n\tprivate _yielder:Yielder;\r\n\tprivate _state:EnumeratorState;\r\n\tprivate _disposer:()=>void;\r\n\r\n\tget current():T\r\n\t{\r\n\t\treturn this._yielder.current;\r\n\t}\r\n\r\n\tconstructor(\r\n\t\tinitializer:() => void,\r\n\t\ttryGetNext:(yielder:IYield) => boolean,\r\n\t\tisEndless?:boolean);\r\n\tconstructor(\r\n\t\tinitializer:() => void,\r\n\t\ttryGetNext:(yielder:IYield) => boolean,\r\n\t\tdisposer?:()=>void,\r\n\t\tisEndless?:boolean);\r\n\tconstructor(\r\n\t\tprivate _initializer:() => void,\r\n\t\tprivate _tryGetNext:(yielder:IYield) => boolean,\r\n\t\tdisposer?:ActionVoid|boolean,\r\n\t\tisEndless?:boolean)\r\n\t{\r\n\t\tsuper();\r\n\t\tthis.reset();\r\n\t\tif(Type.isBoolean(isEndless))\r\n\t\t\tthis._isEndless = isEndless;\r\n\t\telse if(Type.isBoolean(disposer))\r\n\t\t\tthis._isEndless = disposer;\r\n\r\n\t\tif(Type.isFunction(disposer))\r\n\t\t\tthis._disposer = disposer;\r\n\t}\r\n\r\n\tprotected _isEndless:boolean;\r\n\t/*\r\n\t * Provides a mechanism to indicate if this enumerable never ends.\r\n\t * If set to true, some operations that expect a finite result may throw.\r\n\t * Explicit false means it has an end.\r\n\t * Implicit void means unknown.\r\n\t */\r\n\tget isEndless():boolean {\r\n\t\treturn this._isEndless;\r\n\t}\r\n\r\n\treset():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\tvar y = _._yielder;\r\n\t\tif(y) y.yieldBreak(); // Already exists? Reset.\r\n\t\telse _._yielder = yielder(); // New? Get one from the object pool.\r\n\t\t_._state = EnumeratorState.Before;\r\n\t}\r\n\r\n\tmoveNext():boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\ttry\r\n\t\t{\r\n\t\t\tswitch(_._state)\r\n\t\t\t{\r\n\t\t\t\tcase EnumeratorState.Before:\r\n\t\t\t\t\t_._state = EnumeratorState.Running;\r\n\t\t\t\t\tvar initializer = _._initializer;\r\n\t\t\t\t\tif(initializer)\r\n\t\t\t\t\t\tinitializer();\r\n\t\t\t\t// fall through\r\n\t\t\t\tcase EnumeratorState.Running:\r\n\t\t\t\t\tif(_._tryGetNext(_._yielder))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthis.dispose();\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\tcase EnumeratorState.After:\r\n\t\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\t\tcatch(e)\r\n\t\t{\r\n\t\t\tthis.dispose();\r\n\t\t\tthrow e;\r\n\t\t}\r\n\t}\r\n\r\n\tnextValue():T\r\n\t{\r\n\t\treturn this.moveNext()\r\n\t\t\t? this._yielder.current\r\n\t\t\t: VOID0;\r\n\t}\r\n\r\n\t/**\r\n\t * Exposed for compatibility with generators.\r\n\t */\r\n\tnext():IIteratorResult\r\n\t{\r\n\t\treturn this.moveNext() ?\r\n\t\t{\r\n\t\t\tvalue: this._yielder.current,\r\n\t\t\tdone: false\r\n\t\t} : {\r\n\t\t\tvalue: VOID0,\r\n\t\t\tdone: true\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tvar _ = this, disposer = _._disposer;\r\n\r\n\t\t_._initializer = null;\r\n\t\t_._disposer = null;\r\n\r\n\r\n\t\tvar y = _._yielder;\r\n\t\t_._yielder = null;\r\n\t\tyielder(y);\r\n\r\n\t\ttry\r\n\t\t{\r\n\t\t\tif(disposer)\r\n\t\t\t\tdisposer();\r\n\t\t}\r\n\t\tfinally\r\n\t\t{\r\n\t\t\t//if(this._state==EnumeratorState.Running)\r\n\t\t\tthis._state = EnumeratorState.After;\r\n\t\t}\r\n\t}\r\n\r\n}\r\n","/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n'use strict';\nconst Types_1 = require(\"../../Types\");\nconst DisposableBase_1 = require(\"../../Disposable/DisposableBase\");\nconst ObjectPool_1 = require(\"../../Disposable/ObjectPool\");\nconst VOID0 = void (0);\nvar yielderPool;\nfunction yielder(recycle) {\n if (!yielderPool)\n yielderPool\n = new ObjectPool_1.default(40, () => new Yielder());\n if (!recycle)\n return yielderPool.take();\n recycle.yieldBreak();\n yielderPool.add(recycle);\n}\nclass Yielder {\n constructor() {\n this._current = VOID0;\n }\n get current() { return this._current; }\n yieldReturn(value) {\n this._current = value;\n return true;\n }\n yieldBreak() {\n this._current = VOID0;\n return false;\n }\n dispose() {\n this.yieldBreak();\n }\n}\nvar EnumeratorState;\n(function (EnumeratorState) {\n EnumeratorState[EnumeratorState[\"Before\"] = 0] = \"Before\";\n EnumeratorState[EnumeratorState[\"Running\"] = 1] = \"Running\";\n EnumeratorState[EnumeratorState[\"After\"] = 2] = \"After\";\n})(EnumeratorState || (EnumeratorState = {}));\nclass EnumeratorBase extends DisposableBase_1.default {\n constructor(_initializer, _tryGetNext, disposer, isEndless) {\n super();\n this._initializer = _initializer;\n this._tryGetNext = _tryGetNext;\n this.reset();\n if (Types_1.default.isBoolean(isEndless))\n this._isEndless = isEndless;\n else if (Types_1.default.isBoolean(disposer))\n this._isEndless = disposer;\n if (Types_1.default.isFunction(disposer))\n this._disposer = disposer;\n }\n get current() {\n return this._yielder.current;\n }\n get isEndless() {\n return this._isEndless;\n }\n reset() {\n var _ = this;\n _.throwIfDisposed();\n var y = _._yielder;\n if (y)\n y.yieldBreak();\n else\n _._yielder = yielder();\n _._state = EnumeratorState.Before;\n }\n moveNext() {\n var _ = this;\n try {\n switch (_._state) {\n case EnumeratorState.Before:\n _._state = EnumeratorState.Running;\n var initializer = _._initializer;\n if (initializer)\n initializer();\n case EnumeratorState.Running:\n if (_._tryGetNext(_._yielder)) {\n return true;\n }\n else {\n this.dispose();\n return false;\n }\n case EnumeratorState.After:\n return false;\n }\n }\n catch (e) {\n this.dispose();\n throw e;\n }\n }\n nextValue() {\n return this.moveNext()\n ? this._yielder.current\n : VOID0;\n }\n next() {\n return this.moveNext() ?\n {\n value: this._yielder.current,\n done: false\n } : {\n value: VOID0,\n done: true\n };\n }\n _onDispose() {\n var _ = this, disposer = _._disposer;\n _._initializer = null;\n _._disposer = null;\n var y = _._yielder;\n _._yielder = null;\n yielder(y);\n try {\n if (disposer)\n disposer();\n }\n finally {\n this._state = EnumeratorState.After;\n }\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = EnumeratorBase;\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Enumeration/EnumeratorBase.js","System/Collections/Enumeration/EnumeratorBase.ts"],"names":[],"mappings":"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","file":"System/Collections/Enumeration/EnumeratorBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst Types_1 = require(\"../../Types\");\nconst DisposableBase_1 = require(\"../../Disposable/DisposableBase\");\nconst ObjectPool_1 = require(\"../../Disposable/ObjectPool\");\nconst VOID0 = void (0);\nvar yielderPool;\nfunction yielder(recycle) {\n if (!yielderPool)\n yielderPool\n = new ObjectPool_1.ObjectPool(40, () => new Yielder());\n if (!recycle)\n return yielderPool.take();\n recycle.yieldBreak();\n yielderPool.add(recycle);\n}\nclass Yielder {\n constructor() {\n this._current = VOID0;\n }\n get current() { return this._current; }\n yieldReturn(value) {\n this._current = value;\n return true;\n }\n yieldBreak() {\n this._current = VOID0;\n return false;\n }\n dispose() {\n this.yieldBreak();\n }\n}\nvar EnumeratorState;\n(function (EnumeratorState) {\n EnumeratorState[EnumeratorState[\"Before\"] = 0] = \"Before\";\n EnumeratorState[EnumeratorState[\"Running\"] = 1] = \"Running\";\n EnumeratorState[EnumeratorState[\"After\"] = 2] = \"After\";\n})(EnumeratorState || (EnumeratorState = {}));\nclass EnumeratorBase extends DisposableBase_1.DisposableBase {\n constructor(_initializer, _tryGetNext, disposer, isEndless) {\n super();\n this._initializer = _initializer;\n this._tryGetNext = _tryGetNext;\n this.reset();\n if (Types_1.Type.isBoolean(isEndless))\n this._isEndless = isEndless;\n else if (Types_1.Type.isBoolean(disposer))\n this._isEndless = disposer;\n if (Types_1.Type.isFunction(disposer))\n this._disposer = disposer;\n }\n get current() {\n return this._yielder.current;\n }\n get isEndless() {\n return this._isEndless;\n }\n reset() {\n var _ = this;\n _.throwIfDisposed();\n var y = _._yielder;\n if (y)\n y.yieldBreak();\n else\n _._yielder = yielder();\n _._state = EnumeratorState.Before;\n }\n moveNext() {\n var _ = this;\n try {\n switch (_._state) {\n case EnumeratorState.Before:\n _._state = EnumeratorState.Running;\n var initializer = _._initializer;\n if (initializer)\n initializer();\n case EnumeratorState.Running:\n if (_._tryGetNext(_._yielder)) {\n return true;\n }\n else {\n this.dispose();\n return false;\n }\n case EnumeratorState.After:\n return false;\n }\n }\n catch (e) {\n this.dispose();\n throw e;\n }\n }\n nextValue() {\n return this.moveNext()\n ? this._yielder.current\n : VOID0;\n }\n next() {\n return this.moveNext() ?\n {\n value: this._yielder.current,\n done: false\n } : {\n value: VOID0,\n done: true\n };\n }\n _onDispose() {\n var _ = this, disposer = _._disposer;\n _._initializer = null;\n _._disposer = null;\n var y = _._yielder;\n _._yielder = null;\n yielder(y);\n try {\n if (disposer)\n disposer();\n }\n finally {\n this._state = EnumeratorState.After;\n }\n }\n}\nexports.EnumeratorBase = EnumeratorBase;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = EnumeratorBase;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {Type} from \"../../Types\";\r\nimport {DisposableBase} from \"../../Disposable/DisposableBase\";\r\nimport {ObjectPool} from \"../../Disposable/ObjectPool\";\r\nimport {IDisposable} from \"../../Disposable/IDisposable\";\r\nimport {IEnumerator} from \"./IEnumerator\";\r\nimport {IIteratorResult} from \"./IIterator\";\r\nimport {IYield} from \"./IYield\";\r\n\r\nconst VOID0:any = void(0);\r\n\r\nvar yielderPool:ObjectPool>;\r\nfunction yielder():Yielder;\r\nfunction yielder(recycle?:Yielder):void;\r\nfunction yielder(recycle?:Yielder):Yielder\r\n{\r\n\tif(!yielderPool)\r\n\t\tyielderPool\r\n\t\t\t= new ObjectPool>(40, ()=>new Yielder());\r\n\tif(!recycle) return yielderPool.take();\r\n\trecycle.yieldBreak();\r\n\tyielderPool.add(recycle);\r\n}\r\n\r\nclass Yielder implements IYield, IDisposable\r\n{\r\n\tprivate _current:T = VOID0;\r\n\tget current():T { return this._current; }\r\n\r\n\tyieldReturn(value:T):boolean\r\n\t{\r\n\t\tthis._current = value;\r\n\t\treturn true;\r\n\t}\r\n\r\n\tyieldBreak():boolean\r\n\t{\r\n\t\tthis._current = VOID0;\r\n\t\treturn false;\r\n\t}\r\n\r\n\tdispose():void\r\n\t{\r\n\t\tthis.yieldBreak();\r\n\t}\r\n}\r\n\r\ntype ActionVoid = ()=>void;\r\n\r\n// IEnumerator State\r\nenum EnumeratorState { Before, Running, After }\r\n\r\n// \"Enumerator\" is conflict JScript's \"Enumerator\"\r\n// Naming this class EnumeratorBase to avoid collision with IE.\r\nexport class EnumeratorBase extends DisposableBase implements IEnumerator\r\n{\r\n\r\n\tprivate _yielder:Yielder;\r\n\tprivate _state:EnumeratorState;\r\n\tprivate _disposer:()=>void;\r\n\r\n\tget current():T\r\n\t{\r\n\t\treturn this._yielder.current;\r\n\t}\r\n\r\n\tconstructor(\r\n\t\tinitializer:() => void,\r\n\t\ttryGetNext:(yielder:IYield) => boolean,\r\n\t\tisEndless?:boolean);\r\n\tconstructor(\r\n\t\tinitializer:() => void,\r\n\t\ttryGetNext:(yielder:IYield) => boolean,\r\n\t\tdisposer?:()=>void,\r\n\t\tisEndless?:boolean);\r\n\tconstructor(\r\n\t\tprivate _initializer:() => void,\r\n\t\tprivate _tryGetNext:(yielder:IYield) => boolean,\r\n\t\tdisposer?:ActionVoid|boolean,\r\n\t\tisEndless?:boolean)\r\n\t{\r\n\t\tsuper();\r\n\t\tthis.reset();\r\n\t\tif(Type.isBoolean(isEndless))\r\n\t\t\tthis._isEndless = isEndless;\r\n\t\telse if(Type.isBoolean(disposer))\r\n\t\t\tthis._isEndless = disposer;\r\n\r\n\t\tif(Type.isFunction(disposer))\r\n\t\t\tthis._disposer = disposer;\r\n\t}\r\n\r\n\tprotected _isEndless:boolean;\r\n\t/*\r\n\t * Provides a mechanism to indicate if this enumerable never ends.\r\n\t * If set to true, some operations that expect a finite result may throw.\r\n\t * Explicit false means it has an end.\r\n\t * Implicit void means unknown.\r\n\t */\r\n\tget isEndless():boolean {\r\n\t\treturn this._isEndless;\r\n\t}\r\n\r\n\treset():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\tvar y = _._yielder;\r\n\t\tif(y) y.yieldBreak(); // Already exists? Reset.\r\n\t\telse _._yielder = yielder(); // New? Get one from the object pool.\r\n\t\t_._state = EnumeratorState.Before;\r\n\t}\r\n\r\n\tmoveNext():boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\ttry\r\n\t\t{\r\n\t\t\tswitch(_._state)\r\n\t\t\t{\r\n\t\t\t\tcase EnumeratorState.Before:\r\n\t\t\t\t\t_._state = EnumeratorState.Running;\r\n\t\t\t\t\tvar initializer = _._initializer;\r\n\t\t\t\t\tif(initializer)\r\n\t\t\t\t\t\tinitializer();\r\n\t\t\t\t// fall through\r\n\t\t\t\tcase EnumeratorState.Running:\r\n\t\t\t\t\tif(_._tryGetNext(_._yielder))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthis.dispose();\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\tcase EnumeratorState.After:\r\n\t\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\t\tcatch(e)\r\n\t\t{\r\n\t\t\tthis.dispose();\r\n\t\t\tthrow e;\r\n\t\t}\r\n\t}\r\n\r\n\tnextValue():T\r\n\t{\r\n\t\treturn this.moveNext()\r\n\t\t\t? this._yielder.current\r\n\t\t\t: VOID0;\r\n\t}\r\n\r\n\t/**\r\n\t * Exposed for compatibility with generators.\r\n\t */\r\n\tnext():IIteratorResult\r\n\t{\r\n\t\treturn this.moveNext() ?\r\n\t\t{\r\n\t\t\tvalue: this._yielder.current,\r\n\t\t\tdone: false\r\n\t\t} : {\r\n\t\t\tvalue: VOID0,\r\n\t\t\tdone: true\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tvar _ = this, disposer = _._disposer;\r\n\r\n\t\t_._initializer = null;\r\n\t\t_._disposer = null;\r\n\r\n\r\n\t\tvar y = _._yielder;\r\n\t\t_._yielder = null;\r\n\t\tyielder(y);\r\n\r\n\t\ttry\r\n\t\t{\r\n\t\t\tif(disposer)\r\n\t\t\t\tdisposer();\r\n\t\t}\r\n\t\tfinally\r\n\t\t{\r\n\t\t\t//if(this._state==EnumeratorState.Running)\r\n\t\t\tthis._state = EnumeratorState.After;\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\nexport default EnumeratorBase;\r\n"]} \ No newline at end of file diff --git a/dist/commonjs/System/Collections/Enumeration/IndexEnumerator.d.ts b/dist/commonjs/System/Collections/Enumeration/IndexEnumerator.d.ts index e85a88be..d5df161c 100644 --- a/dist/commonjs/System/Collections/Enumeration/IndexEnumerator.d.ts +++ b/dist/commonjs/System/Collections/Enumeration/IndexEnumerator.d.ts @@ -2,8 +2,8 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import EnumeratorBase from "./EnumeratorBase"; -export default class IndexEnumerator extends EnumeratorBase { +import { EnumeratorBase } from "./EnumeratorBase"; +export declare class IndexEnumerator extends EnumeratorBase { constructor(sourceFactory: () => { source: { [index: number]: T; @@ -13,3 +13,4 @@ export default class IndexEnumerator extends EnumeratorBase { step?: number; }); } +export default IndexEnumerator; diff --git a/dist/commonjs/System/Collections/Enumeration/IndexEnumerator.js b/dist/commonjs/System/Collections/Enumeration/IndexEnumerator.js index a0a0d9a4..eaf5314e 100644 --- a/dist/commonjs/System/Collections/Enumeration/IndexEnumerator.js +++ b/dist/commonjs/System/Collections/Enumeration/IndexEnumerator.js @@ -2,7 +2,7 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; +"use strict"; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } @@ -12,8 +12,8 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function" var EnumeratorBase_1 = require("./EnumeratorBase"); -var IndexEnumerator = function (_EnumeratorBase_1$def) { - _inherits(IndexEnumerator, _EnumeratorBase_1$def); +var IndexEnumerator = function (_EnumeratorBase_1$Enu) { + _inherits(IndexEnumerator, _EnumeratorBase_1$Enu); function IndexEnumerator(sourceFactory) { _classCallCheck(this, IndexEnumerator); @@ -51,8 +51,9 @@ var IndexEnumerator = function (_EnumeratorBase_1$def) { } return IndexEnumerator; -}(EnumeratorBase_1.default); +}(EnumeratorBase_1.EnumeratorBase); +exports.IndexEnumerator = IndexEnumerator; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = IndexEnumerator; //# sourceMappingURL=IndexEnumerator.js.map diff --git a/dist/commonjs/System/Collections/Enumeration/IndexEnumerator.js.map b/dist/commonjs/System/Collections/Enumeration/IndexEnumerator.js.map index 84dc0e55..586b8787 100644 --- a/dist/commonjs/System/Collections/Enumeration/IndexEnumerator.js.map +++ b/dist/commonjs/System/Collections/Enumeration/IndexEnumerator.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Enumeration/IndexEnumerator.ts","System/Collections/Enumeration/IndexEnumerator.js"],"names":[],"mappings":";;;;AAKA;;;;;;;;AAEA,IAAA,mBAAA,QAA2B,kBAA3B,CAAA;;IAEA;;;AAIC,aAJD,eAIC,CACC,aADD,EACwG;8BALzG,iBAKyG;;AAGvG,YAAI,MAAJ,CAHuG;;2EALzG,4BAUG,YAAA;AAEC,qBAAS,eAAT,CAFD;AAGC,gBAAG,UAAU,OAAO,MAAP,EACb;AACC,oBAAI,MAAM,OAAO,MAAP,CADX;AAEC,oBAAG,MAAI,CAAJ,EACF,MAAM,IAAI,KAAJ,CAAU,gCAAV,CAAN,CADD;AAGA,oBAAG,CAAC,SAAS,GAAT,CAAD,EACF,MAAM,IAAI,KAAJ,CAAU,2BAAV,CAAN,CADD;AAGA,oBAAG,OAAO,OAAO,IAAP,KAAc,CAAd,EACT,MAAM,IAAI,KAAJ,CAAU,yCAAV,CAAN,CADD;AAEA,oBAAI,UAAU,OAAO,OAAP,CAVf;AAWC,oBAAG,CAAC,OAAD,EACF,UAAU,CAAV,CADD,KAEK,IAAG,WAAS,KAAK,KAAL,CAAW,OAAX,CAAT,EACP,MAAM,IAAI,KAAJ,CAAU,4CAA4C,OAA5C,GAAsD,gBAAtD,CAAhB,CADI;AAEL,uBAAO,OAAP,GAAiB,OAAjB,CAfD;AAiBC,oBAAI,OAAO,OAAO,IAAP,CAjBZ;AAkBC,oBAAG,CAAC,IAAD,EACF,OAAO,CAAP,CADD,KAEK,IAAG,QAAM,KAAK,KAAL,CAAW,IAAX,CAAN,EACP,MAAM,IAAI,KAAJ,CAAU,yCAAyC,IAAzC,GAAgD,gBAAhD,CAAhB,CADI;AAEL,uBAAO,IAAP,GAAc,IAAd,CAtBD;aADA;SAHD,EA8BA,UAAC,OAAD,EAAQ;AAEP,gBAAI,MAAM,MAAC,IAAU,OAAO,MAAP,GAAiB,OAAO,MAAP,GAAgB,CAA5C,CAFH;AAGP,gBAAG,CAAC,GAAD,IAAQ,MAAM,GAAN,CAAR,EACF,OAAO,QAAQ,UAAR,EAAP,CADD;AAEA,gBAAI,UAAU,OAAO,OAAP,CALP;AAMP,mBAAO,OAAP,IAAkB,OAAO,IAAP,CANX;AAOP,mBAAO,OAAC,GAAQ,GAAR,IAAe,WAAS,CAAT,GACpB,QAAQ,WAAR,CAAoB,OAAO,MAAP,CAAc,OAAd,CAApB,CADI,GAEJ,QAAQ,UAAR,EAFI,CAPA;SAAR,EAYA,YAAA;AAEC,gBAAG,MAAH,EACA;AACC,uBAAO,MAAP,GAAgB,IAAhB,CADD;aADA;SAFD,GA/CsG;;AAuDvG,cAAK,UAAL,GAAkB,KAAlB,CAvDuG;;KADxG;;WAJD;EACiC,iBAAA,OAAA;;AADjC,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ACyCA,QAAQ,OAAR,GAAkB,eAAlB","file":"System/Collections/Enumeration/IndexEnumerator.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport EnumeratorBase from \"./EnumeratorBase\";\r\n\r\nexport default\r\nclass IndexEnumerator extends EnumeratorBase\r\n{\r\n\r\n\tconstructor(\r\n\t\tsourceFactory:() => { source: { [index: number]: T }; pointer?: number; length: number; step?: number })\r\n\t{\r\n\r\n\t\tvar source:{ source: { [index: number]: T }; pointer?: number; length: number; step?: number };\r\n\t\tsuper(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tsource = sourceFactory();\r\n\t\t\t\tif(source && source.source)\r\n\t\t\t\t{\r\n\t\t\t\t\tvar len = source.length;\r\n\t\t\t\t\tif(len<0) // Null is allowed but will exit immediately.\r\n\t\t\t\t\t\tthrow new Error(\"length must be zero or greater\");\r\n\r\n\t\t\t\t\tif(!isFinite(len))\r\n\t\t\t\t\t\tthrow new Error(\"length must finite number\");\r\n\r\n\t\t\t\t\tif(len && source.step===0)\r\n\t\t\t\t\t\tthrow new Error(\"Invalid IndexEnumerator step value (0).\");\r\n\t\t\t\t\tvar pointer = source.pointer;\r\n\t\t\t\t\tif(!pointer)\r\n\t\t\t\t\t\tpointer = 0;\r\n\t\t\t\t\telse if(pointer!=Math.floor(pointer))\r\n\t\t\t\t\t\tthrow new Error(\"Invalid IndexEnumerator pointer value (\" + pointer + \") has decimal.\");\r\n\t\t\t\t\tsource.pointer = pointer;\r\n\r\n\t\t\t\t\tvar step = source.step;\r\n\t\t\t\t\tif(!step)\r\n\t\t\t\t\t\tstep = 1;\r\n\t\t\t\t\telse if(step!=Math.floor(step))\r\n\t\t\t\t\t\tthrow new Error(\"Invalid IndexEnumerator step value (\" + step + \") has decimal.\");\r\n\t\t\t\t\tsource.step = step;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\t\t\t\tvar len = (source && source.source) ? source.length : 0;\r\n\t\t\t\tif(!len || isNaN(len))\r\n\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\tvar current = source.pointer;\r\n\t\t\t\tsource.pointer += source.step;\r\n\t\t\t\treturn (current=0)\r\n\t\t\t\t\t? yielder.yieldReturn(source.source[current])\r\n\t\t\t\t\t: yielder.yieldBreak();\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tif(source)\r\n\t\t\t\t{\r\n\t\t\t\t\tsource.source = null;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\t\tthis._isEndless = false;\r\n\t}\r\n}\r\n","/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n'use strict';\nconst EnumeratorBase_1 = require(\"./EnumeratorBase\");\nclass IndexEnumerator extends EnumeratorBase_1.default {\n constructor(sourceFactory) {\n var source;\n super(() => {\n source = sourceFactory();\n if (source && source.source) {\n var len = source.length;\n if (len < 0)\n throw new Error(\"length must be zero or greater\");\n if (!isFinite(len))\n throw new Error(\"length must finite number\");\n if (len && source.step === 0)\n throw new Error(\"Invalid IndexEnumerator step value (0).\");\n var pointer = source.pointer;\n if (!pointer)\n pointer = 0;\n else if (pointer != Math.floor(pointer))\n throw new Error(\"Invalid IndexEnumerator pointer value (\" + pointer + \") has decimal.\");\n source.pointer = pointer;\n var step = source.step;\n if (!step)\n step = 1;\n else if (step != Math.floor(step))\n throw new Error(\"Invalid IndexEnumerator step value (\" + step + \") has decimal.\");\n source.step = step;\n }\n }, (yielder) => {\n var len = (source && source.source) ? source.length : 0;\n if (!len || isNaN(len))\n return yielder.yieldBreak();\n var current = source.pointer;\n source.pointer += source.step;\n return (current < len && current >= 0)\n ? yielder.yieldReturn(source.source[current])\n : yielder.yieldBreak();\n }, () => {\n if (source) {\n source.source = null;\n }\n });\n this._isEndless = false;\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = IndexEnumerator;\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Enumeration/IndexEnumerator.js","System/Collections/Enumeration/IndexEnumerator.ts"],"names":[],"mappings":";;;;AAIA;;;;;;;;ACCA,IAAA,mBAAA,QAA6B,kBAA7B,CAAA;;IAEA;;;AAGC,aAHD,eAGC,CACC,aADD,EACwG;8BAJzG,iBAIyG;;AAGvG,YAAI,MAAJ,CAHuG;;2EAJzG,4BASG,YAAA;AAEC,qBAAS,eAAT,CAFD;AAGC,gBAAG,UAAU,OAAO,MAAP,EACb;AACC,oBAAI,MAAM,OAAO,MAAP,CADX;AAEC,oBAAG,MAAI,CAAJ,EACF,MAAM,IAAI,KAAJ,CAAU,gCAAV,CAAN,CADD;AAGA,oBAAG,CAAC,SAAS,GAAT,CAAD,EACF,MAAM,IAAI,KAAJ,CAAU,2BAAV,CAAN,CADD;AAGA,oBAAG,OAAO,OAAO,IAAP,KAAc,CAAd,EACT,MAAM,IAAI,KAAJ,CAAU,yCAAV,CAAN,CADD;AAEA,oBAAI,UAAU,OAAO,OAAP,CAVf;AAWC,oBAAG,CAAC,OAAD,EACF,UAAU,CAAV,CADD,KAEK,IAAG,WAAS,KAAK,KAAL,CAAW,OAAX,CAAT,EACP,MAAM,IAAI,KAAJ,CAAU,4CAA4C,OAA5C,GAAsD,gBAAtD,CAAhB,CADI;AAEL,uBAAO,OAAP,GAAiB,OAAjB,CAfD;AAiBC,oBAAI,OAAO,OAAO,IAAP,CAjBZ;AAkBC,oBAAG,CAAC,IAAD,EACF,OAAO,CAAP,CADD,KAEK,IAAG,QAAM,KAAK,KAAL,CAAW,IAAX,CAAN,EACP,MAAM,IAAI,KAAJ,CAAU,yCAAyC,IAAzC,GAAgD,gBAAhD,CAAhB,CADI;AAEL,uBAAO,IAAP,GAAc,IAAd,CAtBD;aADA;SAHD,EA8BA,UAAC,OAAD,EAAQ;AAEP,gBAAI,MAAM,MAAC,IAAU,OAAO,MAAP,GAAiB,OAAO,MAAP,GAAgB,CAA5C,CAFH;AAGP,gBAAG,CAAC,GAAD,IAAQ,MAAM,GAAN,CAAR,EACF,OAAO,QAAQ,UAAR,EAAP,CADD;AAEA,gBAAI,UAAU,OAAO,OAAP,CALP;AAMP,mBAAO,OAAP,IAAkB,OAAO,IAAP,CANX;AAOP,mBAAO,OAAC,GAAQ,GAAR,IAAe,WAAS,CAAT,GACpB,QAAQ,WAAR,CAAoB,OAAO,MAAP,CAAc,OAAd,CAApB,CADI,GAEJ,QAAQ,UAAR,EAFI,CAPA;SAAR,EAYA,YAAA;AAEC,gBAAG,MAAH,EACA;AACC,uBAAO,MAAP,GAAgB,IAAhB,CADD;aADA;SAFD,GA/CsG;;AAuDvG,cAAK,UAAL,GAAkB,KAAlB,CAvDuG;;KADxG;;WAHD;EAAwC,iBAAA,cAAA;;AAA3B,QAAA,eAAA,GAAe,eAAf;AA+Db,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADnBA,QAAQ,OAAR,GCmBe,eDnBf","file":"System/Collections/Enumeration/IndexEnumerator.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst EnumeratorBase_1 = require(\"./EnumeratorBase\");\nclass IndexEnumerator extends EnumeratorBase_1.EnumeratorBase {\n constructor(sourceFactory) {\n var source;\n super(() => {\n source = sourceFactory();\n if (source && source.source) {\n var len = source.length;\n if (len < 0)\n throw new Error(\"length must be zero or greater\");\n if (!isFinite(len))\n throw new Error(\"length must finite number\");\n if (len && source.step === 0)\n throw new Error(\"Invalid IndexEnumerator step value (0).\");\n var pointer = source.pointer;\n if (!pointer)\n pointer = 0;\n else if (pointer != Math.floor(pointer))\n throw new Error(\"Invalid IndexEnumerator pointer value (\" + pointer + \") has decimal.\");\n source.pointer = pointer;\n var step = source.step;\n if (!step)\n step = 1;\n else if (step != Math.floor(step))\n throw new Error(\"Invalid IndexEnumerator step value (\" + step + \") has decimal.\");\n source.step = step;\n }\n }, (yielder) => {\n var len = (source && source.source) ? source.length : 0;\n if (!len || isNaN(len))\n return yielder.yieldBreak();\n var current = source.pointer;\n source.pointer += source.step;\n return (current < len && current >= 0)\n ? yielder.yieldReturn(source.source[current])\n : yielder.yieldBreak();\n }, () => {\n if (source) {\n source.source = null;\n }\n });\n this._isEndless = false;\n }\n}\nexports.IndexEnumerator = IndexEnumerator;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = IndexEnumerator;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {EnumeratorBase} from \"./EnumeratorBase\";\r\n\r\nexport class IndexEnumerator extends EnumeratorBase\r\n{\r\n\r\n\tconstructor(\r\n\t\tsourceFactory:() => { source: { [index: number]: T }; pointer?: number; length: number; step?: number })\r\n\t{\r\n\r\n\t\tvar source:{ source: { [index: number]: T }; pointer?: number; length: number; step?: number };\r\n\t\tsuper(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tsource = sourceFactory();\r\n\t\t\t\tif(source && source.source)\r\n\t\t\t\t{\r\n\t\t\t\t\tvar len = source.length;\r\n\t\t\t\t\tif(len<0) // Null is allowed but will exit immediately.\r\n\t\t\t\t\t\tthrow new Error(\"length must be zero or greater\");\r\n\r\n\t\t\t\t\tif(!isFinite(len))\r\n\t\t\t\t\t\tthrow new Error(\"length must finite number\");\r\n\r\n\t\t\t\t\tif(len && source.step===0)\r\n\t\t\t\t\t\tthrow new Error(\"Invalid IndexEnumerator step value (0).\");\r\n\t\t\t\t\tvar pointer = source.pointer;\r\n\t\t\t\t\tif(!pointer)\r\n\t\t\t\t\t\tpointer = 0;\r\n\t\t\t\t\telse if(pointer!=Math.floor(pointer))\r\n\t\t\t\t\t\tthrow new Error(\"Invalid IndexEnumerator pointer value (\" + pointer + \") has decimal.\");\r\n\t\t\t\t\tsource.pointer = pointer;\r\n\r\n\t\t\t\t\tvar step = source.step;\r\n\t\t\t\t\tif(!step)\r\n\t\t\t\t\t\tstep = 1;\r\n\t\t\t\t\telse if(step!=Math.floor(step))\r\n\t\t\t\t\t\tthrow new Error(\"Invalid IndexEnumerator step value (\" + step + \") has decimal.\");\r\n\t\t\t\t\tsource.step = step;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\t\t\t\tvar len = (source && source.source) ? source.length : 0;\r\n\t\t\t\tif(!len || isNaN(len))\r\n\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\tvar current = source.pointer;\r\n\t\t\t\tsource.pointer += source.step;\r\n\t\t\t\treturn (current=0)\r\n\t\t\t\t\t? yielder.yieldReturn(source.source[current])\r\n\t\t\t\t\t: yielder.yieldBreak();\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tif(source)\r\n\t\t\t\t{\r\n\t\t\t\t\tsource.source = null;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\t\tthis._isEndless = false;\r\n\t}\r\n}\r\n\r\nexport default IndexEnumerator;"]} \ No newline at end of file diff --git a/dist/commonjs/System/Collections/Enumeration/UnsupportedEnumerableException.d.ts b/dist/commonjs/System/Collections/Enumeration/UnsupportedEnumerableException.d.ts index b966255b..fc268ec1 100644 --- a/dist/commonjs/System/Collections/Enumeration/UnsupportedEnumerableException.d.ts +++ b/dist/commonjs/System/Collections/Enumeration/UnsupportedEnumerableException.d.ts @@ -3,8 +3,9 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -import SystemException from "../../Exceptions/SystemException"; -export default class UnsupportedEnumerableException extends SystemException { +import { SystemException } from "../../Exceptions/SystemException"; +export declare class UnsupportedEnumerableException extends SystemException { constructor(message?: string); protected getName(): string; } +export default UnsupportedEnumerableException; diff --git a/dist/commonjs/System/Collections/Enumeration/UnsupportedEnumerableException.js b/dist/commonjs/System/Collections/Enumeration/UnsupportedEnumerableException.js index 98d5aff6..f086cd9c 100644 --- a/dist/commonjs/System/Collections/Enumeration/UnsupportedEnumerableException.js +++ b/dist/commonjs/System/Collections/Enumeration/UnsupportedEnumerableException.js @@ -3,7 +3,7 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -'use strict'; +"use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); @@ -16,8 +16,8 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function" var SystemException_1 = require("../../Exceptions/SystemException"); var NAME = 'UnsupportedEnumerableException'; -var UnsupportedEnumerableException = function (_SystemException_1$de) { - _inherits(UnsupportedEnumerableException, _SystemException_1$de); +var UnsupportedEnumerableException = function (_SystemException_1$Sy) { + _inherits(UnsupportedEnumerableException, _SystemException_1$Sy); function UnsupportedEnumerableException(message) { _classCallCheck(this, UnsupportedEnumerableException); @@ -26,15 +26,16 @@ var UnsupportedEnumerableException = function (_SystemException_1$de) { } _createClass(UnsupportedEnumerableException, [{ - key: 'getName', + key: "getName", value: function getName() { return NAME; } }]); return UnsupportedEnumerableException; -}(SystemException_1.default); +}(SystemException_1.SystemException); +exports.UnsupportedEnumerableException = UnsupportedEnumerableException; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = UnsupportedEnumerableException; //# sourceMappingURL=UnsupportedEnumerableException.js.map diff --git a/dist/commonjs/System/Collections/Enumeration/UnsupportedEnumerableException.js.map b/dist/commonjs/System/Collections/Enumeration/UnsupportedEnumerableException.js.map index 92ad9eeb..6cecf55f 100644 --- a/dist/commonjs/System/Collections/Enumeration/UnsupportedEnumerableException.js.map +++ b/dist/commonjs/System/Collections/Enumeration/UnsupportedEnumerableException.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Enumeration/UnsupportedEnumerableException.ts","System/Collections/Enumeration/UnsupportedEnumerableException.js"],"names":[],"mappings":";;;;;AAMA;;;;;;;;;;AAEA,IAAA,oBAAA,QAA4B,kCAA5B,CAAA;AAEA,IAAM,OAAc,gCAAd;;IAEN;;;AAGC,aAHD,8BAGC,CAAY,OAAZ,EAA2B;8BAH5B,gCAG4B;;sEAH5B,2CAIQ,WAAW,yBAAX,GADoB;KAA3B;;iBAHD;;kCAOkB;AAEhB,mBAAO,IAAP,CAFgB;;;;WAPlB;EAC6C,kBAAA,OAAA;;AAD7C,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ACKA,QAAQ,OAAR,GAAkB,8BAAlB","file":"System/Collections/Enumeration/UnsupportedEnumerableException.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport SystemException from \"../../Exceptions/SystemException\";\r\n\r\nconst NAME:string = 'UnsupportedEnumerableException';\r\n\r\nexport default\r\nclass UnsupportedEnumerableException extends SystemException {\r\n\r\n\tconstructor(message?:string){\r\n\t\tsuper(message || \"Unsupported enumerable.\");\r\n\t}\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n}\r\n","/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\n'use strict';\nconst SystemException_1 = require(\"../../Exceptions/SystemException\");\nconst NAME = 'UnsupportedEnumerableException';\nclass UnsupportedEnumerableException extends SystemException_1.default {\n constructor(message) {\n super(message || \"Unsupported enumerable.\");\n }\n getName() {\n return NAME;\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = UnsupportedEnumerableException;\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Enumeration/UnsupportedEnumerableException.js","System/Collections/Enumeration/UnsupportedEnumerableException.ts"],"names":[],"mappings":";;;;;AAKA;;;;;;;;;;ACCA,IAAA,oBAAA,QAA8B,kCAA9B,CAAA;AAEA,IAAM,OAAc,gCAAd;;IAEN;;;AAGC,aAHD,8BAGC,CAAY,OAAZ,EAA2B;8BAH5B,gCAG4B;;sEAH5B,2CAKQ,WAAW,yBAAX,GAFoB;KAA3B;;iBAHD;;kCAQkB;AAEhB,mBAAO,IAAP,CAFgB;;;;WARlB;EAAoD,kBAAA,eAAA;;AAAvC,QAAA,8BAAA,GAA8B,8BAA9B;AAcb,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADNA,QAAQ,OAAR,GCMe,8BDNf","file":"System/Collections/Enumeration/UnsupportedEnumerableException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\n\"use strict\";\nconst SystemException_1 = require(\"../../Exceptions/SystemException\");\nconst NAME = 'UnsupportedEnumerableException';\nclass UnsupportedEnumerableException extends SystemException_1.SystemException {\n constructor(message) {\n super(message || \"Unsupported enumerable.\");\n }\n getName() {\n return NAME;\n }\n}\nexports.UnsupportedEnumerableException = UnsupportedEnumerableException;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = UnsupportedEnumerableException;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\nimport {SystemException} from \"../../Exceptions/SystemException\";\r\n\r\nconst NAME:string = 'UnsupportedEnumerableException';\r\n\r\nexport class UnsupportedEnumerableException extends SystemException\r\n{\r\n\r\n\tconstructor(message?:string)\r\n\t{\r\n\t\tsuper(message || \"Unsupported enumerable.\");\r\n\t}\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n}\r\n\r\nexport default UnsupportedEnumerableException;"]} \ No newline at end of file diff --git a/dist/commonjs/System/Collections/LinkedList.d.ts b/dist/commonjs/System/Collections/LinkedList.d.ts index 6de7a80e..b3fef8d7 100644 --- a/dist/commonjs/System/Collections/LinkedList.d.ts +++ b/dist/commonjs/System/Collections/LinkedList.d.ts @@ -1,12 +1,14 @@ -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Based Upon: http://msdn.microsoft.com/en-us/library/he2s3bh7%28v=vs.110%29.aspx * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import CollectionBase from "./CollectionBase"; +import { CollectionBase } from "./CollectionBase"; +import { ILinkedListNode } from "./ILinkedListNode"; +import { IEnumerator } from "./Enumeration/IEnumerator"; +import { Predicate, Action, EqualityComparison } from "../FunctionTypes"; +import { ILinkedList } from "./ILinkedList"; +import { IEnumerableOrArray } from "./IEnumerableOrArray"; export default class LinkedList extends CollectionBase implements ILinkedList { private _listInternal; constructor(source?: IEnumerableOrArray, equalityComparer?: EqualityComparison); diff --git a/dist/commonjs/System/Collections/LinkedList.js b/dist/commonjs/System/Collections/LinkedList.js index 73f51d3f..5acfaa9d 100644 --- a/dist/commonjs/System/Collections/LinkedList.js +++ b/dist/commonjs/System/Collections/LinkedList.js @@ -3,7 +3,7 @@ * Based Upon: http://msdn.microsoft.com/en-us/library/he2s3bh7%28v=vs.110%29.aspx * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; +"use strict"; var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; @@ -33,7 +33,7 @@ var InternalNode = function () { _createClass(InternalNode, [{ key: "assertDetached", value: function assertDetached() { - if (this.next || this.previous) throw new InvalidOperationException_1.default("Adding a node that is already placed."); + if (this.next || this.previous) throw new InvalidOperationException_1.InvalidOperationException("Adding a node that is already placed."); } }]); @@ -42,22 +42,22 @@ var InternalNode = function () { function ensureExternal(node, list) { if (!node) return null; - if (!list) throw new ArgumentNullException_1.default("list"); + if (!list) throw new ArgumentNullException_1.ArgumentNullException("list"); var external = node.external; if (!external) node.external = external = new LinkedListNode(list, node); return external; } function getInternal(node, list) { - if (!node) throw new ArgumentNullException_1.default("node"); - if (!list) throw new ArgumentNullException_1.default("list"); - if (node.list != list) throw new InvalidOperationException_1.default("Provided node does not belong to this list."); + if (!node) throw new ArgumentNullException_1.ArgumentNullException("node"); + if (!list) throw new ArgumentNullException_1.ArgumentNullException("list"); + if (node.list != list) throw new InvalidOperationException_1.InvalidOperationException("Provided node does not belong to this list."); var n = node._nodeInternal; - if (!n) throw new InvalidOperationException_1.default("Provided node is not valid."); + if (!n) throw new InvalidOperationException_1.InvalidOperationException("Provided node is not valid."); return n; } -var LinkedList = function (_CollectionBase_1$def) { - _inherits(LinkedList, _CollectionBase_1$def); +var LinkedList = function (_CollectionBase_1$Col) { + _inherits(LinkedList, _CollectionBase_1$Col); function LinkedList(source) { var equalityComparer = arguments.length <= 1 || arguments[1] === undefined ? Compare_1.areEqual : arguments[1]; @@ -67,7 +67,7 @@ var LinkedList = function (_CollectionBase_1$def) { var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(LinkedList).call(this, null, equalityComparer)); var _ = _this; - _._listInternal = new LinkedNodeList_1.default(); + _._listInternal = new LinkedNodeList_1.LinkedNodeList(); _._importEntries(source); return _this; } @@ -115,7 +115,7 @@ var LinkedList = function (_CollectionBase_1$def) { }, { key: "getEnumerator", value: function getEnumerator() { - return LinkedNodeList_1.default.valueEnumeratorFrom(this._listInternal); + return LinkedNodeList_1.LinkedNodeList.valueEnumeratorFrom(this._listInternal); } }, { key: "_findFirst", @@ -243,7 +243,7 @@ var LinkedList = function (_CollectionBase_1$def) { }]); return LinkedList; -}(CollectionBase_1.default); +}(CollectionBase_1.CollectionBase); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = LinkedList; diff --git a/dist/commonjs/System/Collections/LinkedList.js.map b/dist/commonjs/System/Collections/LinkedList.js.map index fe26efff..b7910a9b 100644 --- a/dist/commonjs/System/Collections/LinkedList.js.map +++ b/dist/commonjs/System/Collections/LinkedList.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/LinkedList.ts","System/Collections/LinkedList.js"],"names":[],"mappings":"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","file":"System/Collections/LinkedList.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based Upon: http://msdn.microsoft.com/en-us/library/he2s3bh7%28v=vs.110%29.aspx\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport {areEqual} from \"../Compare\";\r\nimport LinkedNodeList from \"./LinkedNodeList\";\r\nimport InvalidOperationException from \"../Exceptions/InvalidOperationException\";\r\nimport ArgumentNullException from \"../Exceptions/ArgumentNullException\";\r\nimport CollectionBase from \"./CollectionBase\";\r\n\r\n\r\n/*****************************\r\n * IMPORTANT NOTES ABOUT PERFORMANCE:\r\n * http://jsperf.com/simulating-a-queue\r\n *\r\n * Adding to an array is very fast, but modifying is slow.\r\n * LinkedList wins when modifying contents.\r\n * http://stackoverflow.com/questions/166884/array-versus-linked-list\r\n *****************************/\r\n\r\n/*\r\n * An internal node is used to manage the order without exposing underlying link chain to the consumer.\r\n */\r\nclass InternalNode\r\nimplements ILinkedNode>, INodeWithValue\r\n{\r\n\tconstructor(\r\n\t\tpublic value?:T,\r\n\t\tpublic previous?:InternalNode,\r\n\t\tpublic next?:InternalNode)\r\n\t{\r\n\t}\r\n\r\n\texternal:ILinkedListNode;\r\n\r\n\tassertDetached():void\r\n\t{\r\n\t\tif(this.next || this.previous)\r\n\t\t\tthrow new InvalidOperationException(\r\n\t\t\t\t\"Adding a node that is already placed.\");\r\n\t}\r\n\r\n}\r\n\r\nfunction ensureExternal(node:InternalNode, list:LinkedList):ILinkedListNode\r\n{\r\n\tif(!node)\r\n\t\treturn null;\r\n\tif(!list)\r\n\t\tthrow new ArgumentNullException(\"list\");\r\n\r\n\tvar external:ILinkedListNode = node.external;\r\n\tif(!external)\r\n\t\tnode.external = external = new LinkedListNode(list, node);\r\n\r\n\treturn external;\r\n}\r\n\r\nfunction getInternal(node:ILinkedListNode, list:LinkedList):InternalNode\r\n{\r\n\tif(!node)\r\n\t\tthrow new ArgumentNullException(\"node\");\r\n\tif(!list)\r\n\t\tthrow new ArgumentNullException(\"list\");\r\n\r\n\tif(node.list!=list)\r\n\t\tthrow new InvalidOperationException(\r\n\t\t\t\"Provided node does not belong to this list.\");\r\n\r\n\tvar n:InternalNode = (node)._nodeInternal;\r\n\tif(!n)\r\n\t\tthrow new InvalidOperationException(\r\n\t\t\t\"Provided node is not valid.\");\r\n\r\n\treturn n;\r\n}\r\n\r\nexport default\r\nclass LinkedList\r\nextends CollectionBase implements ILinkedList\r\n{\r\n\tprivate _listInternal:LinkedNodeList>;\r\n\r\n\tconstructor(\r\n\t\tsource?:IEnumerableOrArray,\r\n\t\tequalityComparer:EqualityComparison = areEqual)\r\n\t{\r\n\t\tsuper(null, equalityComparer);\r\n\t\tvar _ = this;\r\n\t\t_._listInternal = new LinkedNodeList>();\r\n\t\t_._importEntries(source);\r\n\t}\r\n\r\n\tprotected getCount():number\r\n\t{\r\n\t\treturn this._listInternal.unsafeCount;\r\n\t}\r\n\r\n\tprotected _addInternal(entry:T):boolean\r\n\t{\r\n\t\tthis._listInternal.addNode(new InternalNode(entry));\r\n\t\treturn true;\r\n\t}\r\n\r\n\tprotected _removeInternal(entry:T, max:number = Infinity):number\r\n\t{\r\n\t\tvar _ = this,\r\n\t\t equals = _._equalityComparer,\r\n\t\t list = _._listInternal,\r\n\t\t removedCount = 0;\r\n\r\n\t\tlist.forEach(node=>\r\n\t\t{\r\n\t\t\tif(equals(entry, node.value) && list.removeNode(node))\r\n\t\t\t\tremovedCount++;\r\n\r\n\t\t\treturn removedCount | Action,\r\n\t\tuseCopy:boolean = false):void\r\n\t{\r\n\t\tif(useCopy) super.forEach(action, useCopy);\r\n\t\telse this._listInternal.forEach((node, i)=>action(node.value, i));\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\t// #region IEnumerable\r\n\tgetEnumerator():IEnumerator\r\n\t{\r\n\t\treturn LinkedNodeList.valueEnumeratorFrom(this._listInternal);\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\tprivate _findFirst(entry:T):InternalNode\r\n\t{\r\n\t\t//noinspection UnnecessaryLocalVariableJS\r\n\t\tvar _ = this,\r\n\t\t equals = _._equalityComparer,\r\n\t\t next = _._listInternal.first;\r\n\t\twhile(next)\r\n\t\t{\r\n\t\t\tif(equals(entry, next.value))\r\n\t\t\t\treturn next;\r\n\t\t\tnext = next.next;\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\tprivate _findLast(entry:T):InternalNode\r\n\t{\r\n\t\t//noinspection UnnecessaryLocalVariableJS\r\n\t\tvar _ = this,\r\n\t\t equals = _._equalityComparer,\r\n\t\t prev = _._listInternal.last;\r\n\t\twhile(prev)\r\n\t\t{\r\n\t\t\tif(equals(entry, prev.value))\r\n\t\t\t\treturn prev;\r\n\t\t\tprev = prev.previous;\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\tremoveOnce(entry:T):boolean\r\n\t{\r\n\t\treturn this.remove(entry, 1)!==0;\r\n\t}\r\n\r\n\tget first():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._listInternal.first, this);\r\n\t}\r\n\r\n\tget last():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._listInternal.last, this);\r\n\t}\r\n\r\n\t// get methods are available for convenience but is an n*index operation.\r\n\r\n\r\n\tgetValueAt(index:number):T\r\n\t{\r\n\t\tvar node = this._listInternal.getNodeAt(index);\r\n\t\tif(!node)\r\n\t\t\treturn node && node.value || void(0);\r\n\t}\r\n\r\n\tgetNodeAt(index:number):ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._listInternal.getNodeAt(index), this);\r\n\t}\r\n\r\n\tfind(entry:T):ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._findFirst(entry), this);\r\n\t}\r\n\r\n\tfindLast(entry:T):ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._findLast(entry), this);\r\n\t}\r\n\r\n\taddFirst(entry:T):void\r\n\t{\r\n\t\tthis._listInternal.addNodeBefore(new InternalNode(entry));\r\n\t\tthis._signalModification(true);\r\n\t}\r\n\r\n\taddLast(entry:T):void\r\n\t{\r\n\t\tthis.add(entry);\r\n\t}\r\n\r\n\tremoveFirst():void\r\n\t{\r\n\t\tvar _ = this, first = _._listInternal.first;\r\n\t\tif(first && _._listInternal.removeNode(first))\r\n\t\t\t_._signalModification(true);\r\n\t}\r\n\r\n\tremoveLast():void\r\n\t{\r\n\t\tvar _ = this, last = _._listInternal.last;\r\n\t\tif(last && _._listInternal.removeNode(last))\r\n\t\t\t_._signalModification(true);\r\n\t}\r\n\r\n\t// Returns true if successful and false if not found (already removed).\r\n\tremoveNode(node:ILinkedListNode):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\tif(_._listInternal.removeNode(getInternal(node, _)))\r\n\t\t{\r\n\t\t\t_._signalModification(true);\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\taddBefore(before:ILinkedListNode, entry:T):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_._listInternal.addNodeBefore(\r\n\t\t\tnew InternalNode(entry),\r\n\t\t\tgetInternal(before, _)\r\n\t\t);\r\n\r\n\t\t_._signalModification(true);\r\n\t}\r\n\r\n\taddAfter(after:ILinkedListNode, entry:T):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_._listInternal.addNodeAfter(\r\n\t\t\tnew InternalNode(entry),\r\n\t\t\tgetInternal(after, _)\r\n\t\t);\r\n\r\n\t\t_._signalModification(true);\r\n\t}\r\n\r\n\taddNodeBefore(node:ILinkedListNode, before:ILinkedListNode):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_._listInternal.addNodeBefore(\r\n\t\t\tgetInternal(before, _),\r\n\t\t\tgetInternal(node, _)\r\n\t\t);\r\n\r\n\t\t_._signalModification(true);\r\n\t}\r\n\r\n\taddNodeAfter(node:ILinkedListNode, after:ILinkedListNode):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tthis._listInternal.addNodeAfter(\r\n\t\t\tgetInternal(after, _),\r\n\t\t\tgetInternal(node, _)\r\n\t\t);\r\n\r\n\t\t_._signalModification(true);\r\n\t}\r\n\r\n\r\n}\r\n\r\n// Use an internal node class to prevent mucking up the LinkedList.\r\nclass LinkedListNode implements ILinkedListNode\r\n{\r\n\tconstructor(\r\n\t\tprivate _list:LinkedList,\r\n\t\tprivate _nodeInternal:InternalNode)\r\n\t{\r\n\t}\r\n\r\n\tget list():LinkedList\r\n\t{\r\n\t\treturn this._list;\r\n\t}\r\n\r\n\tget previous():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._nodeInternal.previous, this._list);\r\n\t}\r\n\r\n\tget next():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._nodeInternal.next, this._list);\r\n\t}\r\n\r\n\tget value():T\r\n\t{\r\n\t\treturn this._nodeInternal.value;\r\n\t}\r\n\r\n\tset value(v:T)\r\n\t{\r\n\t\tthis._nodeInternal.value = v;\r\n\t}\r\n\r\n\taddBefore(entry:T):void\r\n\t{\r\n\t\tthis._list.addBefore(this, entry);\r\n\t}\r\n\r\n\taddAfter(entry:T):void\r\n\t{\r\n\t\tthis._list.addAfter(this, entry);\r\n\t}\r\n\r\n\taddNodeBefore(before:ILinkedListNode):void\r\n\t{\r\n\t\tthis._list.addNodeBefore(this, before);\r\n\t}\r\n\r\n\taddNodeAfter(after:ILinkedListNode):void\r\n\t{\r\n\t\tthis._list.addNodeAfter(this, after);\r\n\t}\r\n\r\n\tremove():void\r\n\t{\r\n\t\tthis._list.removeNode(this);\r\n\t}\r\n\r\n}\r\n\r\n","/*!\n * @author electricessence / https://github.com/electricessence/\n * Based Upon: http://msdn.microsoft.com/en-us/library/he2s3bh7%28v=vs.110%29.aspx\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n'use strict';\nconst Compare_1 = require(\"../Compare\");\nconst LinkedNodeList_1 = require(\"./LinkedNodeList\");\nconst InvalidOperationException_1 = require(\"../Exceptions/InvalidOperationException\");\nconst ArgumentNullException_1 = require(\"../Exceptions/ArgumentNullException\");\nconst CollectionBase_1 = require(\"./CollectionBase\");\nclass InternalNode {\n constructor(value, previous, next) {\n this.value = value;\n this.previous = previous;\n this.next = next;\n }\n assertDetached() {\n if (this.next || this.previous)\n throw new InvalidOperationException_1.default(\"Adding a node that is already placed.\");\n }\n}\nfunction ensureExternal(node, list) {\n if (!node)\n return null;\n if (!list)\n throw new ArgumentNullException_1.default(\"list\");\n var external = node.external;\n if (!external)\n node.external = external = new LinkedListNode(list, node);\n return external;\n}\nfunction getInternal(node, list) {\n if (!node)\n throw new ArgumentNullException_1.default(\"node\");\n if (!list)\n throw new ArgumentNullException_1.default(\"list\");\n if (node.list != list)\n throw new InvalidOperationException_1.default(\"Provided node does not belong to this list.\");\n var n = node._nodeInternal;\n if (!n)\n throw new InvalidOperationException_1.default(\"Provided node is not valid.\");\n return n;\n}\nclass LinkedList extends CollectionBase_1.default {\n constructor(source, equalityComparer = Compare_1.areEqual) {\n super(null, equalityComparer);\n var _ = this;\n _._listInternal = new LinkedNodeList_1.default();\n _._importEntries(source);\n }\n getCount() {\n return this._listInternal.unsafeCount;\n }\n _addInternal(entry) {\n this._listInternal.addNode(new InternalNode(entry));\n return true;\n }\n _removeInternal(entry, max = Infinity) {\n var _ = this, equals = _._equalityComparer, list = _._listInternal, removedCount = 0;\n list.forEach(node => {\n if (equals(entry, node.value) && list.removeNode(node))\n removedCount++;\n return removedCount < max;\n });\n return removedCount;\n }\n _clearInternal() {\n return this._listInternal.clear();\n }\n forEach(action, useCopy = false) {\n if (useCopy)\n super.forEach(action, useCopy);\n else\n this._listInternal.forEach((node, i) => action(node.value, i));\n }\n getEnumerator() {\n return LinkedNodeList_1.default.valueEnumeratorFrom(this._listInternal);\n }\n _findFirst(entry) {\n var _ = this, equals = _._equalityComparer, next = _._listInternal.first;\n while (next) {\n if (equals(entry, next.value))\n return next;\n next = next.next;\n }\n return null;\n }\n _findLast(entry) {\n var _ = this, equals = _._equalityComparer, prev = _._listInternal.last;\n while (prev) {\n if (equals(entry, prev.value))\n return prev;\n prev = prev.previous;\n }\n return null;\n }\n removeOnce(entry) {\n return this.remove(entry, 1) !== 0;\n }\n get first() {\n return ensureExternal(this._listInternal.first, this);\n }\n get last() {\n return ensureExternal(this._listInternal.last, this);\n }\n getValueAt(index) {\n var node = this._listInternal.getNodeAt(index);\n if (!node)\n return node && node.value || void (0);\n }\n getNodeAt(index) {\n return ensureExternal(this._listInternal.getNodeAt(index), this);\n }\n find(entry) {\n return ensureExternal(this._findFirst(entry), this);\n }\n findLast(entry) {\n return ensureExternal(this._findLast(entry), this);\n }\n addFirst(entry) {\n this._listInternal.addNodeBefore(new InternalNode(entry));\n this._signalModification(true);\n }\n addLast(entry) {\n this.add(entry);\n }\n removeFirst() {\n var _ = this, first = _._listInternal.first;\n if (first && _._listInternal.removeNode(first))\n _._signalModification(true);\n }\n removeLast() {\n var _ = this, last = _._listInternal.last;\n if (last && _._listInternal.removeNode(last))\n _._signalModification(true);\n }\n removeNode(node) {\n var _ = this;\n if (_._listInternal.removeNode(getInternal(node, _))) {\n _._signalModification(true);\n return true;\n }\n return false;\n }\n addBefore(before, entry) {\n var _ = this;\n _._listInternal.addNodeBefore(new InternalNode(entry), getInternal(before, _));\n _._signalModification(true);\n }\n addAfter(after, entry) {\n var _ = this;\n _._listInternal.addNodeAfter(new InternalNode(entry), getInternal(after, _));\n _._signalModification(true);\n }\n addNodeBefore(node, before) {\n var _ = this;\n _._listInternal.addNodeBefore(getInternal(before, _), getInternal(node, _));\n _._signalModification(true);\n }\n addNodeAfter(node, after) {\n var _ = this;\n this._listInternal.addNodeAfter(getInternal(after, _), getInternal(node, _));\n _._signalModification(true);\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = LinkedList;\nclass LinkedListNode {\n constructor(_list, _nodeInternal) {\n this._list = _list;\n this._nodeInternal = _nodeInternal;\n }\n get list() {\n return this._list;\n }\n get previous() {\n return ensureExternal(this._nodeInternal.previous, this._list);\n }\n get next() {\n return ensureExternal(this._nodeInternal.next, this._list);\n }\n get value() {\n return this._nodeInternal.value;\n }\n set value(v) {\n this._nodeInternal.value = v;\n }\n addBefore(entry) {\n this._list.addBefore(this, entry);\n }\n addAfter(entry) {\n this._list.addAfter(this, entry);\n }\n addNodeBefore(before) {\n this._list.addNodeBefore(this, before);\n }\n addNodeAfter(after) {\n this._list.addNodeAfter(this, after);\n }\n remove() {\n this._list.removeNode(this);\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/LinkedList.js","System/Collections/LinkedList.ts"],"names":[],"mappings":"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","file":"System/Collections/LinkedList.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based Upon: http://msdn.microsoft.com/en-us/library/he2s3bh7%28v=vs.110%29.aspx\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst Compare_1 = require(\"../Compare\");\nconst LinkedNodeList_1 = require(\"./LinkedNodeList\");\nconst InvalidOperationException_1 = require(\"../Exceptions/InvalidOperationException\");\nconst ArgumentNullException_1 = require(\"../Exceptions/ArgumentNullException\");\nconst CollectionBase_1 = require(\"./CollectionBase\");\nclass InternalNode {\n constructor(value, previous, next) {\n this.value = value;\n this.previous = previous;\n this.next = next;\n }\n assertDetached() {\n if (this.next || this.previous)\n throw new InvalidOperationException_1.InvalidOperationException(\"Adding a node that is already placed.\");\n }\n}\nfunction ensureExternal(node, list) {\n if (!node)\n return null;\n if (!list)\n throw new ArgumentNullException_1.ArgumentNullException(\"list\");\n var external = node.external;\n if (!external)\n node.external = external = new LinkedListNode(list, node);\n return external;\n}\nfunction getInternal(node, list) {\n if (!node)\n throw new ArgumentNullException_1.ArgumentNullException(\"node\");\n if (!list)\n throw new ArgumentNullException_1.ArgumentNullException(\"list\");\n if (node.list != list)\n throw new InvalidOperationException_1.InvalidOperationException(\"Provided node does not belong to this list.\");\n var n = node._nodeInternal;\n if (!n)\n throw new InvalidOperationException_1.InvalidOperationException(\"Provided node is not valid.\");\n return n;\n}\nclass LinkedList extends CollectionBase_1.CollectionBase {\n constructor(source, equalityComparer = Compare_1.areEqual) {\n super(null, equalityComparer);\n var _ = this;\n _._listInternal = new LinkedNodeList_1.LinkedNodeList();\n _._importEntries(source);\n }\n getCount() {\n return this._listInternal.unsafeCount;\n }\n _addInternal(entry) {\n this._listInternal.addNode(new InternalNode(entry));\n return true;\n }\n _removeInternal(entry, max = Infinity) {\n var _ = this, equals = _._equalityComparer, list = _._listInternal, removedCount = 0;\n list.forEach(node => {\n if (equals(entry, node.value) && list.removeNode(node))\n removedCount++;\n return removedCount < max;\n });\n return removedCount;\n }\n _clearInternal() {\n return this._listInternal.clear();\n }\n forEach(action, useCopy = false) {\n if (useCopy)\n super.forEach(action, useCopy);\n else\n this._listInternal.forEach((node, i) => action(node.value, i));\n }\n getEnumerator() {\n return LinkedNodeList_1.LinkedNodeList.valueEnumeratorFrom(this._listInternal);\n }\n _findFirst(entry) {\n var _ = this, equals = _._equalityComparer, next = _._listInternal.first;\n while (next) {\n if (equals(entry, next.value))\n return next;\n next = next.next;\n }\n return null;\n }\n _findLast(entry) {\n var _ = this, equals = _._equalityComparer, prev = _._listInternal.last;\n while (prev) {\n if (equals(entry, prev.value))\n return prev;\n prev = prev.previous;\n }\n return null;\n }\n removeOnce(entry) {\n return this.remove(entry, 1) !== 0;\n }\n get first() {\n return ensureExternal(this._listInternal.first, this);\n }\n get last() {\n return ensureExternal(this._listInternal.last, this);\n }\n getValueAt(index) {\n var node = this._listInternal.getNodeAt(index);\n if (!node)\n return node && node.value || void (0);\n }\n getNodeAt(index) {\n return ensureExternal(this._listInternal.getNodeAt(index), this);\n }\n find(entry) {\n return ensureExternal(this._findFirst(entry), this);\n }\n findLast(entry) {\n return ensureExternal(this._findLast(entry), this);\n }\n addFirst(entry) {\n this._listInternal.addNodeBefore(new InternalNode(entry));\n this._signalModification(true);\n }\n addLast(entry) {\n this.add(entry);\n }\n removeFirst() {\n var _ = this, first = _._listInternal.first;\n if (first && _._listInternal.removeNode(first))\n _._signalModification(true);\n }\n removeLast() {\n var _ = this, last = _._listInternal.last;\n if (last && _._listInternal.removeNode(last))\n _._signalModification(true);\n }\n removeNode(node) {\n var _ = this;\n if (_._listInternal.removeNode(getInternal(node, _))) {\n _._signalModification(true);\n return true;\n }\n return false;\n }\n addBefore(before, entry) {\n var _ = this;\n _._listInternal.addNodeBefore(new InternalNode(entry), getInternal(before, _));\n _._signalModification(true);\n }\n addAfter(after, entry) {\n var _ = this;\n _._listInternal.addNodeAfter(new InternalNode(entry), getInternal(after, _));\n _._signalModification(true);\n }\n addNodeBefore(node, before) {\n var _ = this;\n _._listInternal.addNodeBefore(getInternal(before, _), getInternal(node, _));\n _._signalModification(true);\n }\n addNodeAfter(node, after) {\n var _ = this;\n this._listInternal.addNodeAfter(getInternal(after, _), getInternal(node, _));\n _._signalModification(true);\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = LinkedList;\nclass LinkedListNode {\n constructor(_list, _nodeInternal) {\n this._list = _list;\n this._nodeInternal = _nodeInternal;\n }\n get list() {\n return this._list;\n }\n get previous() {\n return ensureExternal(this._nodeInternal.previous, this._list);\n }\n get next() {\n return ensureExternal(this._nodeInternal.next, this._list);\n }\n get value() {\n return this._nodeInternal.value;\n }\n set value(v) {\n this._nodeInternal.value = v;\n }\n addBefore(entry) {\n this._list.addBefore(this, entry);\n }\n addAfter(entry) {\n this._list.addAfter(this, entry);\n }\n addNodeBefore(before) {\n this._list.addNodeBefore(this, before);\n }\n addNodeAfter(after) {\n this._list.addNodeAfter(this, after);\n }\n remove() {\n this._list.removeNode(this);\n }\n}\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based Upon: http://msdn.microsoft.com/en-us/library/he2s3bh7%28v=vs.110%29.aspx\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {areEqual} from \"../Compare\";\r\nimport {LinkedNodeList} from \"./LinkedNodeList\";\r\nimport {InvalidOperationException} from \"../Exceptions/InvalidOperationException\";\r\nimport {ArgumentNullException} from \"../Exceptions/ArgumentNullException\";\r\nimport {CollectionBase} from \"./CollectionBase\";\r\nimport {ILinkedListNode, ILinkedNode, INodeWithValue} from \"./ILinkedListNode\";\r\nimport {IEnumerator} from \"./Enumeration/IEnumerator\";\r\nimport {Predicate, Action, EqualityComparison} from \"../FunctionTypes\";\r\nimport {ILinkedList} from \"./ILinkedList\";\r\nimport {IEnumerableOrArray} from \"./IEnumerableOrArray\";\r\n\r\n/*****************************\r\n * IMPORTANT NOTES ABOUT PERFORMANCE:\r\n * http://jsperf.com/simulating-a-queue\r\n *\r\n * Adding to an array is very fast, but modifying is slow.\r\n * LinkedList wins when modifying contents.\r\n * http://stackoverflow.com/questions/166884/array-versus-linked-list\r\n *****************************/\r\n\r\n/*\r\n * An internal node is used to manage the order without exposing underlying link chain to the consumer.\r\n */\r\nclass InternalNode\r\nimplements ILinkedNode>, INodeWithValue\r\n{\r\n\tconstructor(\r\n\t\tpublic value?:T,\r\n\t\tpublic previous?:InternalNode,\r\n\t\tpublic next?:InternalNode)\r\n\t{\r\n\t}\r\n\r\n\texternal:ILinkedListNode;\r\n\r\n\tassertDetached():void\r\n\t{\r\n\t\tif(this.next || this.previous)\r\n\t\t\tthrow new InvalidOperationException(\r\n\t\t\t\t\"Adding a node that is already placed.\");\r\n\t}\r\n\r\n}\r\n\r\nfunction ensureExternal(node:InternalNode, list:LinkedList):ILinkedListNode\r\n{\r\n\tif(!node)\r\n\t\treturn null;\r\n\tif(!list)\r\n\t\tthrow new ArgumentNullException(\"list\");\r\n\r\n\tvar external:ILinkedListNode = node.external;\r\n\tif(!external)\r\n\t\tnode.external = external = new LinkedListNode(list, node);\r\n\r\n\treturn external;\r\n}\r\n\r\nfunction getInternal(node:ILinkedListNode, list:LinkedList):InternalNode\r\n{\r\n\tif(!node)\r\n\t\tthrow new ArgumentNullException(\"node\");\r\n\tif(!list)\r\n\t\tthrow new ArgumentNullException(\"list\");\r\n\r\n\tif(node.list!=list)\r\n\t\tthrow new InvalidOperationException(\r\n\t\t\t\"Provided node does not belong to this list.\");\r\n\r\n\tvar n:InternalNode = (node)._nodeInternal;\r\n\tif(!n)\r\n\t\tthrow new InvalidOperationException(\r\n\t\t\t\"Provided node is not valid.\");\r\n\r\n\treturn n;\r\n}\r\n\r\nexport default\r\nclass LinkedList\r\nextends CollectionBase implements ILinkedList\r\n{\r\n\tprivate _listInternal:LinkedNodeList>;\r\n\r\n\tconstructor(\r\n\t\tsource?:IEnumerableOrArray,\r\n\t\tequalityComparer:EqualityComparison = areEqual)\r\n\t{\r\n\t\tsuper(null, equalityComparer);\r\n\t\tvar _ = this;\r\n\t\t_._listInternal = new LinkedNodeList>();\r\n\t\t_._importEntries(source);\r\n\t}\r\n\r\n\tprotected getCount():number\r\n\t{\r\n\t\treturn this._listInternal.unsafeCount;\r\n\t}\r\n\r\n\tprotected _addInternal(entry:T):boolean\r\n\t{\r\n\t\tthis._listInternal.addNode(new InternalNode(entry));\r\n\t\treturn true;\r\n\t}\r\n\r\n\tprotected _removeInternal(entry:T, max:number = Infinity):number\r\n\t{\r\n\t\tvar _ = this,\r\n\t\t equals = _._equalityComparer,\r\n\t\t list = _._listInternal,\r\n\t\t removedCount = 0;\r\n\r\n\t\tlist.forEach(node=>\r\n\t\t{\r\n\t\t\tif(equals(entry, node.value) && list.removeNode(node))\r\n\t\t\t\tremovedCount++;\r\n\r\n\t\t\treturn removedCount | Action,\r\n\t\tuseCopy:boolean = false):void\r\n\t{\r\n\t\tif(useCopy) super.forEach(action, useCopy);\r\n\t\telse this._listInternal.forEach((node, i)=>action(node.value, i));\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\t// #region IEnumerable\r\n\tgetEnumerator():IEnumerator\r\n\t{\r\n\t\treturn LinkedNodeList.valueEnumeratorFrom(this._listInternal);\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\tprivate _findFirst(entry:T):InternalNode\r\n\t{\r\n\t\t//noinspection UnnecessaryLocalVariableJS\r\n\t\tvar _ = this,\r\n\t\t equals = _._equalityComparer,\r\n\t\t next = _._listInternal.first;\r\n\t\twhile(next)\r\n\t\t{\r\n\t\t\tif(equals(entry, next.value))\r\n\t\t\t\treturn next;\r\n\t\t\tnext = next.next;\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\tprivate _findLast(entry:T):InternalNode\r\n\t{\r\n\t\t//noinspection UnnecessaryLocalVariableJS\r\n\t\tvar _ = this,\r\n\t\t equals = _._equalityComparer,\r\n\t\t prev = _._listInternal.last;\r\n\t\twhile(prev)\r\n\t\t{\r\n\t\t\tif(equals(entry, prev.value))\r\n\t\t\t\treturn prev;\r\n\t\t\tprev = prev.previous;\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\tremoveOnce(entry:T):boolean\r\n\t{\r\n\t\treturn this.remove(entry, 1)!==0;\r\n\t}\r\n\r\n\tget first():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._listInternal.first, this);\r\n\t}\r\n\r\n\tget last():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._listInternal.last, this);\r\n\t}\r\n\r\n\t// get methods are available for convenience but is an n*index operation.\r\n\r\n\r\n\tgetValueAt(index:number):T\r\n\t{\r\n\t\tvar node = this._listInternal.getNodeAt(index);\r\n\t\tif(!node)\r\n\t\t\treturn node && node.value || void(0);\r\n\t}\r\n\r\n\tgetNodeAt(index:number):ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._listInternal.getNodeAt(index), this);\r\n\t}\r\n\r\n\tfind(entry:T):ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._findFirst(entry), this);\r\n\t}\r\n\r\n\tfindLast(entry:T):ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._findLast(entry), this);\r\n\t}\r\n\r\n\taddFirst(entry:T):void\r\n\t{\r\n\t\tthis._listInternal.addNodeBefore(new InternalNode(entry));\r\n\t\tthis._signalModification(true);\r\n\t}\r\n\r\n\taddLast(entry:T):void\r\n\t{\r\n\t\tthis.add(entry);\r\n\t}\r\n\r\n\tremoveFirst():void\r\n\t{\r\n\t\tvar _ = this, first = _._listInternal.first;\r\n\t\tif(first && _._listInternal.removeNode(first))\r\n\t\t\t_._signalModification(true);\r\n\t}\r\n\r\n\tremoveLast():void\r\n\t{\r\n\t\tvar _ = this, last = _._listInternal.last;\r\n\t\tif(last && _._listInternal.removeNode(last))\r\n\t\t\t_._signalModification(true);\r\n\t}\r\n\r\n\t// Returns true if successful and false if not found (already removed).\r\n\tremoveNode(node:ILinkedListNode):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\tif(_._listInternal.removeNode(getInternal(node, _)))\r\n\t\t{\r\n\t\t\t_._signalModification(true);\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\taddBefore(before:ILinkedListNode, entry:T):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_._listInternal.addNodeBefore(\r\n\t\t\tnew InternalNode(entry),\r\n\t\t\tgetInternal(before, _)\r\n\t\t);\r\n\r\n\t\t_._signalModification(true);\r\n\t}\r\n\r\n\taddAfter(after:ILinkedListNode, entry:T):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_._listInternal.addNodeAfter(\r\n\t\t\tnew InternalNode(entry),\r\n\t\t\tgetInternal(after, _)\r\n\t\t);\r\n\r\n\t\t_._signalModification(true);\r\n\t}\r\n\r\n\taddNodeBefore(node:ILinkedListNode, before:ILinkedListNode):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_._listInternal.addNodeBefore(\r\n\t\t\tgetInternal(before, _),\r\n\t\t\tgetInternal(node, _)\r\n\t\t);\r\n\r\n\t\t_._signalModification(true);\r\n\t}\r\n\r\n\taddNodeAfter(node:ILinkedListNode, after:ILinkedListNode):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tthis._listInternal.addNodeAfter(\r\n\t\t\tgetInternal(after, _),\r\n\t\t\tgetInternal(node, _)\r\n\t\t);\r\n\r\n\t\t_._signalModification(true);\r\n\t}\r\n\r\n\r\n}\r\n\r\n// Use an internal node class to prevent mucking up the LinkedList.\r\nclass LinkedListNode implements ILinkedListNode\r\n{\r\n\tconstructor(\r\n\t\tprivate _list:LinkedList,\r\n\t\tprivate _nodeInternal:InternalNode)\r\n\t{\r\n\t}\r\n\r\n\tget list():LinkedList\r\n\t{\r\n\t\treturn this._list;\r\n\t}\r\n\r\n\tget previous():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._nodeInternal.previous, this._list);\r\n\t}\r\n\r\n\tget next():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._nodeInternal.next, this._list);\r\n\t}\r\n\r\n\tget value():T\r\n\t{\r\n\t\treturn this._nodeInternal.value;\r\n\t}\r\n\r\n\tset value(v:T)\r\n\t{\r\n\t\tthis._nodeInternal.value = v;\r\n\t}\r\n\r\n\taddBefore(entry:T):void\r\n\t{\r\n\t\tthis._list.addBefore(this, entry);\r\n\t}\r\n\r\n\taddAfter(entry:T):void\r\n\t{\r\n\t\tthis._list.addAfter(this, entry);\r\n\t}\r\n\r\n\taddNodeBefore(before:ILinkedListNode):void\r\n\t{\r\n\t\tthis._list.addNodeBefore(this, before);\r\n\t}\r\n\r\n\taddNodeAfter(after:ILinkedListNode):void\r\n\t{\r\n\t\tthis._list.addNodeAfter(this, after);\r\n\t}\r\n\r\n\tremove():void\r\n\t{\r\n\t\tthis._list.removeNode(this);\r\n\t}\r\n\r\n}\r\n\r\n"]} \ No newline at end of file diff --git a/dist/commonjs/System/Collections/LinkedNodeList.d.ts b/dist/commonjs/System/Collections/LinkedNodeList.d.ts index 2f91455d..2baad203 100644 --- a/dist/commonjs/System/Collections/LinkedNodeList.d.ts +++ b/dist/commonjs/System/Collections/LinkedNodeList.d.ts @@ -1,9 +1,15 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -export default class LinkedNodeList> implements ILinkedNodeList, IEnumerateEach, IDisposable { +import { ILinkedNode, ILinkedNodeWithValue } from "./ILinkedListNode"; +import { IEnumerateEach } from "./Enumeration/IEnumerateEach"; +import { IDisposable } from "../Disposable/IDisposable"; +import { ILinkedNodeList } from "./ILinkedList"; +import { IEnumerator } from "./Enumeration/IEnumerator"; +import { Predicate, Selector, Action } from "../FunctionTypes"; +import { IArray } from "./Array/IArray"; +export declare class LinkedNodeList> implements ILinkedNodeList, IEnumerateEach, IDisposable { private _first; private _last; unsafeCount: number; @@ -29,3 +35,4 @@ export default class LinkedNodeList> implements static valueEnumeratorFrom(list: LinkedNodeList>): IEnumerator; static copyValues>(list: LinkedNodeList>, array: TDestination, index?: number): TDestination; } +export default LinkedNodeList; diff --git a/dist/commonjs/System/Collections/LinkedNodeList.js b/dist/commonjs/System/Collections/LinkedNodeList.js index 2f44b2fa..17494735 100644 --- a/dist/commonjs/System/Collections/LinkedNodeList.js +++ b/dist/commonjs/System/Collections/LinkedNodeList.js @@ -2,7 +2,7 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; +"use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); @@ -37,7 +37,7 @@ var LinkedNodeList = function () { }, { key: "map", value: function map(selector) { - if (!selector) throw new ArgumentNullException_1.default('selector'); + if (!selector) throw new ArgumentNullException_1.ArgumentNullException('selector'); var result = []; this.forEach(function (node) { result.push(selector(node)); @@ -132,7 +132,7 @@ var LinkedNodeList = function () { }, { key: "removeNode", value: function removeNode(node) { - if (node == null) throw new ArgumentNullException_1.default('node'); + if (node == null) throw new ArgumentNullException_1.ArgumentNullException('node'); var _ = this; var prev = node.previous, next = node.next, @@ -141,7 +141,7 @@ var LinkedNodeList = function () { if (prev) prev.next = next;else if (_._first == node) _._first = next;else a = true; if (next) next.previous = prev;else if (_._last == node) _._last = prev;else b = true; if (a !== b) { - throw new ArgumentException_1.default('node', TextUtility.format("Provided node is has no {0} reference but is not the {1} node!", a ? "previous" : "next", a ? "first" : "last")); + throw new ArgumentException_1.ArgumentException('node', TextUtility.format("Provided node is has no {0} reference but is not the {1} node!", a ? "previous" : "next", a ? "first" : "last")); } var removed = !a && !b; if (removed) _.unsafeCount--; @@ -195,7 +195,7 @@ var LinkedNodeList = function () { }, { key: "replace", value: function replace(node, replacement) { - if (node == null) throw new ArgumentNullException_1.default('node'); + if (node == null) throw new ArgumentNullException_1.ArgumentNullException('node'); assertValidDetached(replacement, 'replacement'); var _ = this; replacement.previous = node.previous; @@ -229,11 +229,11 @@ var LinkedNodeList = function () { }], [{ key: "valueEnumeratorFrom", value: function valueEnumeratorFrom(list) { - if (!list) throw new ArgumentNullException_1.default('list'); + if (!list) throw new ArgumentNullException_1.ArgumentNullException('list'); var _ = this, current, next; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { current = null; next = list.first; }, function (yielder) { @@ -251,7 +251,7 @@ var LinkedNodeList = function () { var index = arguments.length <= 2 || arguments[2] === undefined ? 0 : arguments[2]; if (list && list.first) { - if (!array) throw new ArgumentNullException_1.default('array'); + if (!array) throw new ArgumentNullException_1.ArgumentNullException('array'); list.forEach(function (node, i) { array[index + i] = node.value; }); @@ -263,12 +263,13 @@ var LinkedNodeList = function () { return LinkedNodeList; }(); -Object.defineProperty(exports, "__esModule", { value: true }); -exports.default = LinkedNodeList; +exports.LinkedNodeList = LinkedNodeList; function assertValidDetached(node) { var propName = arguments.length <= 1 || arguments[1] === undefined ? 'node' : arguments[1]; - if (node == null) throw new ArgumentNullException_1.default(propName); - if (node.next || node.previous) throw new InvalidOperationException_1.default("Cannot add a node to a LinkedNodeList that is already linked."); + if (node == null) throw new ArgumentNullException_1.ArgumentNullException(propName); + if (node.next || node.previous) throw new InvalidOperationException_1.InvalidOperationException("Cannot add a node to a LinkedNodeList that is already linked."); } +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = LinkedNodeList; //# sourceMappingURL=LinkedNodeList.js.map diff --git a/dist/commonjs/System/Collections/LinkedNodeList.js.map b/dist/commonjs/System/Collections/LinkedNodeList.js.map index 6c368d62..12259d66 100644 --- a/dist/commonjs/System/Collections/LinkedNodeList.js.map +++ b/dist/commonjs/System/Collections/LinkedNodeList.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/LinkedNodeList.ts","System/Collections/LinkedNodeList.js"],"names":[],"mappings":"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","file":"System/Collections/LinkedNodeList.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport * as TextUtility from \"../Text/Utility\";\r\nimport InvalidOperationException from \"../Exceptions/InvalidOperationException\";\r\nimport ArgumentException from \"../Exceptions/ArgumentException\";\r\nimport ArgumentNullException from \"../Exceptions/ArgumentNullException\";\r\nimport EnumeratorBase from \"./Enumeration/EnumeratorBase\";\r\n\r\n\r\n/*****************************\r\n * IMPORTANT NOTES ABOUT PERFORMANCE:\r\n * http://jsperf.com/simulating-a-queue\r\n *\r\n * Adding to an array is very fast, but modifying is slow.\r\n * LinkedList wins when modifying contents.\r\n * http://stackoverflow.com/questions/166884/array-versus-linked-list\r\n *****************************/\r\n\r\n/**\r\n * This class is useful for managing a list of linked nodes, but it does not protect against modifying individual links.\r\n * If the consumer modifies a link (sets the previous or next value) it will effectively break the collection.\r\n *\r\n * It is possible to declare a node type of any kind as long as it contains a previous and next value that can reference another node.\r\n * Although not as safe as the included LinkedList, this class has less overhead and is more flexible.\r\n *\r\n * The count (or length) of this LinkedNodeList is not tracked since it could be corrupted at any time.\r\n */\r\nexport default\r\nclass LinkedNodeList>\r\nimplements ILinkedNodeList, IEnumerateEach, IDisposable\r\n{\r\n\r\n\tprivate _first:TNode;\r\n\tprivate _last:TNode;\r\n\tunsafeCount:number;\r\n\r\n\tconstructor()\r\n\t{\r\n\t\tthis._first = null;\r\n\t\tthis._last = null;\r\n\t\tthis.unsafeCount = 0;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * The first node. Will be null if the collection is empty.\r\n\t */\r\n\tget first():TNode\r\n\t{\r\n\t\treturn this._first;\r\n\t}\r\n\r\n\t/**\r\n\t * The last node.\r\n\t */\r\n\tget last():TNode\r\n\t{\r\n\t\treturn this._last;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Iteratively counts the number of linked nodes and returns the value.\r\n\t * @returns {number}\r\n\t */\r\n\tget count():number\r\n\t{\r\n\r\n\t\tvar next = this._first, i:number = 0;\r\n\t\twhile(next)\r\n\t\t{\r\n\t\t\ti++;\r\n\t\t\tnext = next.next;\r\n\t\t}\r\n\r\n\t\treturn i;\r\n\t}\r\n\r\n\t// Note, no need for 'useCopy' since this avoids any modification conflict.\r\n\t// If iterating over a copy is necessary, a copy should be made manually.\r\n\tforEach(\r\n\t\taction:Predicate | Action):void\r\n\t{\r\n\t\tvar current:TNode = null,\r\n\t\t next:TNode = this.first, // Be sure to track the next node so if current node is removed.\r\n\t\t index:number = 0;\r\n\r\n\t\tdo {\r\n\t\t\tcurrent = next;\r\n\t\t\tnext = current && current.next;\r\n\t\t}\r\n\t\twhile(current\r\n\t\t&& action(current, index++)!==false);\r\n\t}\r\n\r\n\tmap(selector:Selector):T[]\r\n\t{\r\n\t\tif(!selector) throw new ArgumentNullException('selector');\r\n\r\n\t\tvar result:T[] = [];\r\n\t\tthis.forEach(node=>\r\n\t\t{\r\n\t\t\tresult.push(selector(node));\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\r\n\t/**\r\n\t * Erases the linked node's references to each other and returns the number of nodes.\r\n\t * @returns {number}\r\n\t */\r\n\tclear():number\r\n\t{\r\n\t\tvar _ = this, n:TNode, cF:number = 0, cL:number = 0;\r\n\r\n\t\t// First, clear in the forward direction.\r\n\t\tn = _._first;\r\n\t\t_._first = null;\r\n\r\n\t\twhile(n)\r\n\t\t{\r\n\t\t\tcF++;\r\n\t\t\tlet current = n;\r\n\t\t\tn = n.next;\r\n\t\t\tcurrent.next = null;\r\n\t\t}\r\n\r\n\t\t// Last, clear in the reverse direction.\r\n\t\tn = _._last;\r\n\t\t_._last = null;\r\n\r\n\t\twhile(n)\r\n\t\t{\r\n\t\t\tcL++;\r\n\t\t\tlet current = n;\r\n\t\t\tn = n.previous;\r\n\t\t\tcurrent.previous = null;\r\n\t\t}\r\n\r\n\t\tif(cF!==cL) console.warn('LinkedNodeList: Forward versus reverse count does not match when clearing. Forward: ' + cF + \", Reverse: \" + cL);\r\n\r\n\t\t_.unsafeCount = 0;\r\n\r\n\t\treturn cF;\r\n\t}\r\n\r\n\t/**\r\n\t * Clears the list.\r\n\t */\r\n\tdispose():void\r\n\t{\r\n\t\tthis.clear();\r\n\t}\r\n\r\n\t/**\r\n\t * Iterates the list to see if a node exists.\r\n\t * @param node\r\n\t * @returns {boolean}\r\n\t */\r\n\tcontains(node:TNode):boolean\r\n\t{\r\n\t\treturn this.indexOf(node)!= -1;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Gets the index of a particular node.\r\n\t * @param index\r\n\t */\r\n\tgetNodeAt(index:number):TNode\r\n\t{\r\n\t\tif(index<0)\r\n\t\t\treturn null;\r\n\r\n\t\tvar next = this._first, i:number = 0;\r\n\t\twhile(next && index):TNode {\r\n\t\tvar node:TNode = null;\r\n\t\tthis.forEach((n,i)=>{\r\n\t\t\tif(condition(n,i)) {\r\n\t\t\t\tnode = n;\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn node;\r\n\t}\r\n\r\n\t/**\r\n\t * Iterates the list to find the specified node and returns its index.\r\n\t * @param node\r\n\t * @returns {boolean}\r\n\t */\r\n\tindexOf(node:TNode):number\r\n\t{\r\n\t\tif(node && (node.previous || node.next))\r\n\t\t{\r\n\r\n\t\t\tvar index = 0;\r\n\t\t\tvar c:TNode, n:TNode = this._first;\r\n\t\t\tdo {\r\n\t\t\t\tc = n;\r\n\t\t\t\tif(c===node) return index;\r\n\t\t\t\tindex++;\r\n\t\t\t}\r\n\t\t\twhile((n = c && c.next));\r\n\t\t}\r\n\r\n\t\treturn -1;\r\n\t}\r\n\r\n\t/**\r\n\t * Removes the first node and returns true if successful.\r\n\t * @returns {boolean}\r\n\t */\r\n\tremoveFirst():boolean\r\n\t{\r\n\t\treturn this.removeNode(this._first);\r\n\t}\r\n\r\n\t/**\r\n\t * Removes the last node and returns true if successful.\r\n\t * @returns {boolean}\r\n\t */\r\n\tremoveLast():boolean\r\n\t{\r\n\t\treturn this.removeNode(this._last);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Removes the specified node.\r\n\t * Returns true if successful and false if not found (already removed).\r\n\t * @param node\r\n\t * @returns {boolean}\r\n\t */\r\n\tremoveNode(node:TNode):boolean\r\n\t{\r\n\t\tif(node==null)\r\n\t\t\tthrow new ArgumentNullException('node');\r\n\r\n\t\tvar _ = this;\r\n\t\tvar prev = node.previous, next = node.next, a:boolean = false, b:boolean = false;\r\n\r\n\t\tif(prev) prev.next = next;\r\n\t\telse if(_._first==node) _._first = next;\r\n\t\telse a = true;\r\n\r\n\t\tif(next) next.previous = prev;\r\n\t\telse if(_._last==node) _._last = prev;\r\n\t\telse b = true;\r\n\r\n\t\tif(a!==b)\r\n\t\t{\r\n\t\t\tthrow new ArgumentException(\r\n\t\t\t\t'node', TextUtility.format(\r\n\t\t\t\t\t\"Provided node is has no {0} reference but is not the {1} node!\",\r\n\t\t\t\t\ta ? \"previous\" : \"next\", a ? \"first\" : \"last\"\r\n\t\t\t\t)\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tvar removed = !a && !b;\r\n\t\tif(removed) _.unsafeCount--;\r\n\t\treturn removed;\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Adds a node to the end of the list.\r\n\t * @param node\r\n\t */\r\n\taddNode(node:TNode):void\r\n\t{\r\n\t\tthis.addNodeAfter(node);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Inserts a node before the specified 'before' node.\r\n\t * If no 'before' node is specified, it inserts it as the first node.\r\n\t * @param node\r\n\t * @param before\r\n\t */\r\n\taddNodeBefore(node:TNode, before?:TNode):void\r\n\t{\r\n\t\tassertValidDetached(node);\r\n\r\n\t\tvar _ = this;\r\n\r\n\t\tif(!before)\r\n\t\t{\r\n\t\t\tbefore = _._first;\r\n\t\t}\r\n\r\n\t\tif(before)\r\n\t\t{\r\n\t\t\tlet prev = before.previous;\r\n\t\t\tnode.previous = prev;\r\n\t\t\tnode.next = before;\r\n\r\n\t\t\tbefore.previous = node;\r\n\t\t\tif(prev) prev.next = node;\r\n\t\t\tif(before==_._first) _._last = node;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t_._first = _._last = node;\r\n\t\t}\r\n\r\n\t\t_.unsafeCount++;\r\n\t}\r\n\r\n\t/**\r\n\t * Inserts a node after the specified 'after' node.\r\n\t * If no 'after' node is specified, it appends it as the last node.\r\n\t * @param node\r\n\t * @param after\r\n\t */\r\n\taddNodeAfter(node:TNode, after?:TNode):void\r\n\t{\r\n\t\tassertValidDetached(node);\r\n\r\n\t\tvar _ = this;\r\n\r\n\t\tif(!after)\r\n\t\t{\r\n\t\t\tafter = _._last;\r\n\t\t}\r\n\r\n\t\tif(after)\r\n\t\t{\r\n\t\t\tlet next = after.next;\r\n\t\t\tnode.next = next;\r\n\t\t\tnode.previous = after;\r\n\r\n\t\t\tafter.next = node;\r\n\t\t\tif(next) next.previous = node;\r\n\t\t\tif(after==_._last) _._last = node;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t_._first = _._last = node;\r\n\t\t}\r\n\r\n\t\t_.unsafeCount++;\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Takes and existing node and replaces it.\r\n\t * @param node\r\n\t * @param replacement\r\n\t */\r\n\treplace(node:TNode, replacement:TNode):void\r\n\t{\r\n\r\n\t\tif(node==null)\r\n\t\t\tthrow new ArgumentNullException('node');\r\n\r\n\t\tassertValidDetached(replacement, 'replacement');\r\n\r\n\t\tvar _ = this;\r\n\t\treplacement.previous = node.previous;\r\n\t\treplacement.next = node.next;\r\n\r\n\t\tif(node.previous) node.previous.next = replacement;\r\n\t\tif(node.next) node.next.previous = replacement;\r\n\r\n\t\tif(node==_._first) _._first = replacement;\r\n\t\tif(node==_._last) _._last = replacement;\r\n\t}\r\n\r\n\tstatic valueEnumeratorFrom(list:LinkedNodeList>):IEnumerator {\r\n\r\n\t\tif(!list) throw new ArgumentNullException('list');\r\n\r\n\t\tvar _ = this,\r\n\t\t current:ILinkedNodeWithValue,\r\n\t\t next:ILinkedNodeWithValue;\r\n\r\n\t\treturn new EnumeratorBase(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\t// Initialize anchor...\r\n\t\t\t\tcurrent = null;\r\n\t\t\t\tnext = list.first;\r\n\t\t\t},\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\r\n\t\t\t\tif(next)\r\n\t\t\t\t{\r\n\t\t\t\t\tcurrent = next;\r\n\t\t\t\t\tnext = current && current.next;\r\n\t\t\t\t\treturn yielder.yieldReturn(current.value);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic copyValues>(\r\n\t\tlist:LinkedNodeList>,\r\n\t\tarray:TDestination,\r\n\t\tindex:number = 0):TDestination\r\n\t{\r\n\t\tif(list && list.first)\r\n\t\t{\r\n\t\t\tif(!array) throw new ArgumentNullException('array');\r\n\r\n\t\t\tlist.forEach(\r\n\t\t\t\t(node, i) =>\r\n\t\t\t\t{\r\n\t\t\t\t\tarray[index + i] = node.value;\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\treturn array;\r\n\t}\r\n\r\n}\r\n\r\nfunction assertValidDetached>(node:TNode, propName:string = 'node')\r\n{\r\n\r\n\tif(node==null)\r\n\t\tthrow new ArgumentNullException(propName);\r\n\r\n\tif(node.next || node.previous)\r\n\t\tthrow new InvalidOperationException(\"Cannot add a node to a LinkedNodeList that is already linked.\");\r\n\r\n}","/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n'use strict';\nconst TextUtility = require(\"../Text/Utility\");\nconst InvalidOperationException_1 = require(\"../Exceptions/InvalidOperationException\");\nconst ArgumentException_1 = require(\"../Exceptions/ArgumentException\");\nconst ArgumentNullException_1 = require(\"../Exceptions/ArgumentNullException\");\nconst EnumeratorBase_1 = require(\"./Enumeration/EnumeratorBase\");\nclass LinkedNodeList {\n constructor() {\n this._first = null;\n this._last = null;\n this.unsafeCount = 0;\n }\n get first() {\n return this._first;\n }\n get last() {\n return this._last;\n }\n get count() {\n var next = this._first, i = 0;\n while (next) {\n i++;\n next = next.next;\n }\n return i;\n }\n forEach(action) {\n var current = null, next = this.first, index = 0;\n do {\n current = next;\n next = current && current.next;\n } while (current\n && action(current, index++) !== false);\n }\n map(selector) {\n if (!selector)\n throw new ArgumentNullException_1.default('selector');\n var result = [];\n this.forEach(node => {\n result.push(selector(node));\n });\n return result;\n }\n clear() {\n var _ = this, n, cF = 0, cL = 0;\n n = _._first;\n _._first = null;\n while (n) {\n cF++;\n let current = n;\n n = n.next;\n current.next = null;\n }\n n = _._last;\n _._last = null;\n while (n) {\n cL++;\n let current = n;\n n = n.previous;\n current.previous = null;\n }\n if (cF !== cL)\n console.warn('LinkedNodeList: Forward versus reverse count does not match when clearing. Forward: ' + cF + \", Reverse: \" + cL);\n _.unsafeCount = 0;\n return cF;\n }\n dispose() {\n this.clear();\n }\n contains(node) {\n return this.indexOf(node) != -1;\n }\n getNodeAt(index) {\n if (index < 0)\n return null;\n var next = this._first, i = 0;\n while (next && index < i++) {\n next = next.next;\n }\n return next;\n }\n find(condition) {\n var node = null;\n this.forEach((n, i) => {\n if (condition(n, i)) {\n node = n;\n return false;\n }\n });\n return node;\n }\n indexOf(node) {\n if (node && (node.previous || node.next)) {\n var index = 0;\n var c, n = this._first;\n do {\n c = n;\n if (c === node)\n return index;\n index++;\n } while ((n = c && c.next));\n }\n return -1;\n }\n removeFirst() {\n return this.removeNode(this._first);\n }\n removeLast() {\n return this.removeNode(this._last);\n }\n removeNode(node) {\n if (node == null)\n throw new ArgumentNullException_1.default('node');\n var _ = this;\n var prev = node.previous, next = node.next, a = false, b = false;\n if (prev)\n prev.next = next;\n else if (_._first == node)\n _._first = next;\n else\n a = true;\n if (next)\n next.previous = prev;\n else if (_._last == node)\n _._last = prev;\n else\n b = true;\n if (a !== b) {\n throw new ArgumentException_1.default('node', TextUtility.format(\"Provided node is has no {0} reference but is not the {1} node!\", a ? \"previous\" : \"next\", a ? \"first\" : \"last\"));\n }\n var removed = !a && !b;\n if (removed)\n _.unsafeCount--;\n return removed;\n }\n addNode(node) {\n this.addNodeAfter(node);\n }\n addNodeBefore(node, before) {\n assertValidDetached(node);\n var _ = this;\n if (!before) {\n before = _._first;\n }\n if (before) {\n let prev = before.previous;\n node.previous = prev;\n node.next = before;\n before.previous = node;\n if (prev)\n prev.next = node;\n if (before == _._first)\n _._last = node;\n }\n else {\n _._first = _._last = node;\n }\n _.unsafeCount++;\n }\n addNodeAfter(node, after) {\n assertValidDetached(node);\n var _ = this;\n if (!after) {\n after = _._last;\n }\n if (after) {\n let next = after.next;\n node.next = next;\n node.previous = after;\n after.next = node;\n if (next)\n next.previous = node;\n if (after == _._last)\n _._last = node;\n }\n else {\n _._first = _._last = node;\n }\n _.unsafeCount++;\n }\n replace(node, replacement) {\n if (node == null)\n throw new ArgumentNullException_1.default('node');\n assertValidDetached(replacement, 'replacement');\n var _ = this;\n replacement.previous = node.previous;\n replacement.next = node.next;\n if (node.previous)\n node.previous.next = replacement;\n if (node.next)\n node.next.previous = replacement;\n if (node == _._first)\n _._first = replacement;\n if (node == _._last)\n _._last = replacement;\n }\n static valueEnumeratorFrom(list) {\n if (!list)\n throw new ArgumentNullException_1.default('list');\n var _ = this, current, next;\n return new EnumeratorBase_1.default(() => {\n current = null;\n next = list.first;\n }, (yielder) => {\n if (next) {\n current = next;\n next = current && current.next;\n return yielder.yieldReturn(current.value);\n }\n return yielder.yieldBreak();\n });\n }\n static copyValues(list, array, index = 0) {\n if (list && list.first) {\n if (!array)\n throw new ArgumentNullException_1.default('array');\n list.forEach((node, i) => {\n array[index + i] = node.value;\n });\n }\n return array;\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = LinkedNodeList;\nfunction assertValidDetached(node, propName = 'node') {\n if (node == null)\n throw new ArgumentNullException_1.default(propName);\n if (node.next || node.previous)\n throw new InvalidOperationException_1.default(\"Cannot add a node to a LinkedNodeList that is already linked.\");\n}\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/LinkedNodeList.js","System/Collections/LinkedNodeList.ts"],"names":[],"mappings":"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","file":"System/Collections/LinkedNodeList.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst TextUtility = require(\"../Text/Utility\");\nconst InvalidOperationException_1 = require(\"../Exceptions/InvalidOperationException\");\nconst ArgumentException_1 = require(\"../Exceptions/ArgumentException\");\nconst ArgumentNullException_1 = require(\"../Exceptions/ArgumentNullException\");\nconst EnumeratorBase_1 = require(\"./Enumeration/EnumeratorBase\");\nclass LinkedNodeList {\n constructor() {\n this._first = null;\n this._last = null;\n this.unsafeCount = 0;\n }\n get first() {\n return this._first;\n }\n get last() {\n return this._last;\n }\n get count() {\n var next = this._first, i = 0;\n while (next) {\n i++;\n next = next.next;\n }\n return i;\n }\n forEach(action) {\n var current = null, next = this.first, index = 0;\n do {\n current = next;\n next = current && current.next;\n } while (current\n && action(current, index++) !== false);\n }\n map(selector) {\n if (!selector)\n throw new ArgumentNullException_1.ArgumentNullException('selector');\n var result = [];\n this.forEach(node => {\n result.push(selector(node));\n });\n return result;\n }\n clear() {\n var _ = this, n, cF = 0, cL = 0;\n n = _._first;\n _._first = null;\n while (n) {\n cF++;\n let current = n;\n n = n.next;\n current.next = null;\n }\n n = _._last;\n _._last = null;\n while (n) {\n cL++;\n let current = n;\n n = n.previous;\n current.previous = null;\n }\n if (cF !== cL)\n console.warn('LinkedNodeList: Forward versus reverse count does not match when clearing. Forward: ' + cF + \", Reverse: \" + cL);\n _.unsafeCount = 0;\n return cF;\n }\n dispose() {\n this.clear();\n }\n contains(node) {\n return this.indexOf(node) != -1;\n }\n getNodeAt(index) {\n if (index < 0)\n return null;\n var next = this._first, i = 0;\n while (next && index < i++) {\n next = next.next;\n }\n return next;\n }\n find(condition) {\n var node = null;\n this.forEach((n, i) => {\n if (condition(n, i)) {\n node = n;\n return false;\n }\n });\n return node;\n }\n indexOf(node) {\n if (node && (node.previous || node.next)) {\n var index = 0;\n var c, n = this._first;\n do {\n c = n;\n if (c === node)\n return index;\n index++;\n } while ((n = c && c.next));\n }\n return -1;\n }\n removeFirst() {\n return this.removeNode(this._first);\n }\n removeLast() {\n return this.removeNode(this._last);\n }\n removeNode(node) {\n if (node == null)\n throw new ArgumentNullException_1.ArgumentNullException('node');\n var _ = this;\n var prev = node.previous, next = node.next, a = false, b = false;\n if (prev)\n prev.next = next;\n else if (_._first == node)\n _._first = next;\n else\n a = true;\n if (next)\n next.previous = prev;\n else if (_._last == node)\n _._last = prev;\n else\n b = true;\n if (a !== b) {\n throw new ArgumentException_1.ArgumentException('node', TextUtility.format(\"Provided node is has no {0} reference but is not the {1} node!\", a ? \"previous\" : \"next\", a ? \"first\" : \"last\"));\n }\n var removed = !a && !b;\n if (removed)\n _.unsafeCount--;\n return removed;\n }\n addNode(node) {\n this.addNodeAfter(node);\n }\n addNodeBefore(node, before) {\n assertValidDetached(node);\n var _ = this;\n if (!before) {\n before = _._first;\n }\n if (before) {\n let prev = before.previous;\n node.previous = prev;\n node.next = before;\n before.previous = node;\n if (prev)\n prev.next = node;\n if (before == _._first)\n _._last = node;\n }\n else {\n _._first = _._last = node;\n }\n _.unsafeCount++;\n }\n addNodeAfter(node, after) {\n assertValidDetached(node);\n var _ = this;\n if (!after) {\n after = _._last;\n }\n if (after) {\n let next = after.next;\n node.next = next;\n node.previous = after;\n after.next = node;\n if (next)\n next.previous = node;\n if (after == _._last)\n _._last = node;\n }\n else {\n _._first = _._last = node;\n }\n _.unsafeCount++;\n }\n replace(node, replacement) {\n if (node == null)\n throw new ArgumentNullException_1.ArgumentNullException('node');\n assertValidDetached(replacement, 'replacement');\n var _ = this;\n replacement.previous = node.previous;\n replacement.next = node.next;\n if (node.previous)\n node.previous.next = replacement;\n if (node.next)\n node.next.previous = replacement;\n if (node == _._first)\n _._first = replacement;\n if (node == _._last)\n _._last = replacement;\n }\n static valueEnumeratorFrom(list) {\n if (!list)\n throw new ArgumentNullException_1.ArgumentNullException('list');\n var _ = this, current, next;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n current = null;\n next = list.first;\n }, (yielder) => {\n if (next) {\n current = next;\n next = current && current.next;\n return yielder.yieldReturn(current.value);\n }\n return yielder.yieldBreak();\n });\n }\n static copyValues(list, array, index = 0) {\n if (list && list.first) {\n if (!array)\n throw new ArgumentNullException_1.ArgumentNullException('array');\n list.forEach((node, i) => {\n array[index + i] = node.value;\n });\n }\n return array;\n }\n}\nexports.LinkedNodeList = LinkedNodeList;\nfunction assertValidDetached(node, propName = 'node') {\n if (node == null)\n throw new ArgumentNullException_1.ArgumentNullException(propName);\n if (node.next || node.previous)\n throw new InvalidOperationException_1.InvalidOperationException(\"Cannot add a node to a LinkedNodeList that is already linked.\");\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = LinkedNodeList;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport * as TextUtility from \"../Text/Utility\";\r\nimport {InvalidOperationException} from \"../Exceptions/InvalidOperationException\";\r\nimport {ArgumentException} from \"../Exceptions/ArgumentException\";\r\nimport {ArgumentNullException} from \"../Exceptions/ArgumentNullException\";\r\nimport {EnumeratorBase} from \"./Enumeration/EnumeratorBase\";\r\nimport {ILinkedNode, ILinkedNodeWithValue} from \"./ILinkedListNode\";\r\nimport {IEnumerateEach} from \"./Enumeration/IEnumerateEach\";\r\nimport {IDisposable} from \"../Disposable/IDisposable\";\r\nimport {ILinkedNodeList} from \"./ILinkedList\";\r\nimport {IEnumerator} from \"./Enumeration/IEnumerator\";\r\nimport {Predicate, Selector, Action} from \"../FunctionTypes\";\r\nimport {IArray} from \"./Array/IArray\";\r\n\r\n\r\n/*****************************\r\n * IMPORTANT NOTES ABOUT PERFORMANCE:\r\n * http://jsperf.com/simulating-a-queue\r\n *\r\n * Adding to an array is very fast, but modifying is slow.\r\n * LinkedList wins when modifying contents.\r\n * http://stackoverflow.com/questions/166884/array-versus-linked-list\r\n *****************************/\r\n\r\n/**\r\n * This class is useful for managing a list of linked nodes, but it does not protect against modifying individual links.\r\n * If the consumer modifies a link (sets the previous or next value) it will effectively break the collection.\r\n *\r\n * It is possible to declare a node type of any kind as long as it contains a previous and next value that can reference another node.\r\n * Although not as safe as the included LinkedList, this class has less overhead and is more flexible.\r\n *\r\n * The count (or length) of this LinkedNodeList is not tracked since it could be corrupted at any time.\r\n */\r\nexport class LinkedNodeList>\r\nimplements ILinkedNodeList, IEnumerateEach, IDisposable\r\n{\r\n\r\n\tprivate _first:TNode;\r\n\tprivate _last:TNode;\r\n\tunsafeCount:number;\r\n\r\n\tconstructor()\r\n\t{\r\n\t\tthis._first = null;\r\n\t\tthis._last = null;\r\n\t\tthis.unsafeCount = 0;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * The first node. Will be null if the collection is empty.\r\n\t */\r\n\tget first():TNode\r\n\t{\r\n\t\treturn this._first;\r\n\t}\r\n\r\n\t/**\r\n\t * The last node.\r\n\t */\r\n\tget last():TNode\r\n\t{\r\n\t\treturn this._last;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Iteratively counts the number of linked nodes and returns the value.\r\n\t * @returns {number}\r\n\t */\r\n\tget count():number\r\n\t{\r\n\r\n\t\tvar next = this._first, i:number = 0;\r\n\t\twhile(next)\r\n\t\t{\r\n\t\t\ti++;\r\n\t\t\tnext = next.next;\r\n\t\t}\r\n\r\n\t\treturn i;\r\n\t}\r\n\r\n\t// Note, no need for 'useCopy' since this avoids any modification conflict.\r\n\t// If iterating over a copy is necessary, a copy should be made manually.\r\n\tforEach(\r\n\t\taction:Predicate | Action):void\r\n\t{\r\n\t\tvar current:TNode = null,\r\n\t\t next:TNode = this.first, // Be sure to track the next node so if current node is removed.\r\n\t\t index:number = 0;\r\n\r\n\t\tdo {\r\n\t\t\tcurrent = next;\r\n\t\t\tnext = current && current.next;\r\n\t\t}\r\n\t\twhile(current\r\n\t\t&& action(current, index++)!==false);\r\n\t}\r\n\r\n\tmap(selector:Selector):T[]\r\n\t{\r\n\t\tif(!selector) throw new ArgumentNullException('selector');\r\n\r\n\t\tvar result:T[] = [];\r\n\t\tthis.forEach(node=>\r\n\t\t{\r\n\t\t\tresult.push(selector(node));\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\r\n\t/**\r\n\t * Erases the linked node's references to each other and returns the number of nodes.\r\n\t * @returns {number}\r\n\t */\r\n\tclear():number\r\n\t{\r\n\t\tvar _ = this, n:TNode, cF:number = 0, cL:number = 0;\r\n\r\n\t\t// First, clear in the forward direction.\r\n\t\tn = _._first;\r\n\t\t_._first = null;\r\n\r\n\t\twhile(n)\r\n\t\t{\r\n\t\t\tcF++;\r\n\t\t\tlet current = n;\r\n\t\t\tn = n.next;\r\n\t\t\tcurrent.next = null;\r\n\t\t}\r\n\r\n\t\t// Last, clear in the reverse direction.\r\n\t\tn = _._last;\r\n\t\t_._last = null;\r\n\r\n\t\twhile(n)\r\n\t\t{\r\n\t\t\tcL++;\r\n\t\t\tlet current = n;\r\n\t\t\tn = n.previous;\r\n\t\t\tcurrent.previous = null;\r\n\t\t}\r\n\r\n\t\tif(cF!==cL) console.warn('LinkedNodeList: Forward versus reverse count does not match when clearing. Forward: ' + cF + \", Reverse: \" + cL);\r\n\r\n\t\t_.unsafeCount = 0;\r\n\r\n\t\treturn cF;\r\n\t}\r\n\r\n\t/**\r\n\t * Clears the list.\r\n\t */\r\n\tdispose():void\r\n\t{\r\n\t\tthis.clear();\r\n\t}\r\n\r\n\t/**\r\n\t * Iterates the list to see if a node exists.\r\n\t * @param node\r\n\t * @returns {boolean}\r\n\t */\r\n\tcontains(node:TNode):boolean\r\n\t{\r\n\t\treturn this.indexOf(node)!= -1;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Gets the index of a particular node.\r\n\t * @param index\r\n\t */\r\n\tgetNodeAt(index:number):TNode\r\n\t{\r\n\t\tif(index<0)\r\n\t\t\treturn null;\r\n\r\n\t\tvar next = this._first, i:number = 0;\r\n\t\twhile(next && index):TNode {\r\n\t\tvar node:TNode = null;\r\n\t\tthis.forEach((n,i)=>{\r\n\t\t\tif(condition(n,i)) {\r\n\t\t\t\tnode = n;\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn node;\r\n\t}\r\n\r\n\t/**\r\n\t * Iterates the list to find the specified node and returns its index.\r\n\t * @param node\r\n\t * @returns {boolean}\r\n\t */\r\n\tindexOf(node:TNode):number\r\n\t{\r\n\t\tif(node && (node.previous || node.next))\r\n\t\t{\r\n\r\n\t\t\tvar index = 0;\r\n\t\t\tvar c:TNode, n:TNode = this._first;\r\n\t\t\tdo {\r\n\t\t\t\tc = n;\r\n\t\t\t\tif(c===node) return index;\r\n\t\t\t\tindex++;\r\n\t\t\t}\r\n\t\t\twhile((n = c && c.next));\r\n\t\t}\r\n\r\n\t\treturn -1;\r\n\t}\r\n\r\n\t/**\r\n\t * Removes the first node and returns true if successful.\r\n\t * @returns {boolean}\r\n\t */\r\n\tremoveFirst():boolean\r\n\t{\r\n\t\treturn this.removeNode(this._first);\r\n\t}\r\n\r\n\t/**\r\n\t * Removes the last node and returns true if successful.\r\n\t * @returns {boolean}\r\n\t */\r\n\tremoveLast():boolean\r\n\t{\r\n\t\treturn this.removeNode(this._last);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Removes the specified node.\r\n\t * Returns true if successful and false if not found (already removed).\r\n\t * @param node\r\n\t * @returns {boolean}\r\n\t */\r\n\tremoveNode(node:TNode):boolean\r\n\t{\r\n\t\tif(node==null)\r\n\t\t\tthrow new ArgumentNullException('node');\r\n\r\n\t\tvar _ = this;\r\n\t\tvar prev = node.previous, next = node.next, a:boolean = false, b:boolean = false;\r\n\r\n\t\tif(prev) prev.next = next;\r\n\t\telse if(_._first==node) _._first = next;\r\n\t\telse a = true;\r\n\r\n\t\tif(next) next.previous = prev;\r\n\t\telse if(_._last==node) _._last = prev;\r\n\t\telse b = true;\r\n\r\n\t\tif(a!==b)\r\n\t\t{\r\n\t\t\tthrow new ArgumentException(\r\n\t\t\t\t'node', TextUtility.format(\r\n\t\t\t\t\t\"Provided node is has no {0} reference but is not the {1} node!\",\r\n\t\t\t\t\ta ? \"previous\" : \"next\", a ? \"first\" : \"last\"\r\n\t\t\t\t)\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tvar removed = !a && !b;\r\n\t\tif(removed) _.unsafeCount--;\r\n\t\treturn removed;\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Adds a node to the end of the list.\r\n\t * @param node\r\n\t */\r\n\taddNode(node:TNode):void\r\n\t{\r\n\t\tthis.addNodeAfter(node);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Inserts a node before the specified 'before' node.\r\n\t * If no 'before' node is specified, it inserts it as the first node.\r\n\t * @param node\r\n\t * @param before\r\n\t */\r\n\taddNodeBefore(node:TNode, before?:TNode):void\r\n\t{\r\n\t\tassertValidDetached(node);\r\n\r\n\t\tvar _ = this;\r\n\r\n\t\tif(!before)\r\n\t\t{\r\n\t\t\tbefore = _._first;\r\n\t\t}\r\n\r\n\t\tif(before)\r\n\t\t{\r\n\t\t\tlet prev = before.previous;\r\n\t\t\tnode.previous = prev;\r\n\t\t\tnode.next = before;\r\n\r\n\t\t\tbefore.previous = node;\r\n\t\t\tif(prev) prev.next = node;\r\n\t\t\tif(before==_._first) _._last = node;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t_._first = _._last = node;\r\n\t\t}\r\n\r\n\t\t_.unsafeCount++;\r\n\t}\r\n\r\n\t/**\r\n\t * Inserts a node after the specified 'after' node.\r\n\t * If no 'after' node is specified, it appends it as the last node.\r\n\t * @param node\r\n\t * @param after\r\n\t */\r\n\taddNodeAfter(node:TNode, after?:TNode):void\r\n\t{\r\n\t\tassertValidDetached(node);\r\n\r\n\t\tvar _ = this;\r\n\r\n\t\tif(!after)\r\n\t\t{\r\n\t\t\tafter = _._last;\r\n\t\t}\r\n\r\n\t\tif(after)\r\n\t\t{\r\n\t\t\tlet next = after.next;\r\n\t\t\tnode.next = next;\r\n\t\t\tnode.previous = after;\r\n\r\n\t\t\tafter.next = node;\r\n\t\t\tif(next) next.previous = node;\r\n\t\t\tif(after==_._last) _._last = node;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t_._first = _._last = node;\r\n\t\t}\r\n\r\n\t\t_.unsafeCount++;\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Takes and existing node and replaces it.\r\n\t * @param node\r\n\t * @param replacement\r\n\t */\r\n\treplace(node:TNode, replacement:TNode):void\r\n\t{\r\n\r\n\t\tif(node==null)\r\n\t\t\tthrow new ArgumentNullException('node');\r\n\r\n\t\tassertValidDetached(replacement, 'replacement');\r\n\r\n\t\tvar _ = this;\r\n\t\treplacement.previous = node.previous;\r\n\t\treplacement.next = node.next;\r\n\r\n\t\tif(node.previous) node.previous.next = replacement;\r\n\t\tif(node.next) node.next.previous = replacement;\r\n\r\n\t\tif(node==_._first) _._first = replacement;\r\n\t\tif(node==_._last) _._last = replacement;\r\n\t}\r\n\r\n\tstatic valueEnumeratorFrom(list:LinkedNodeList>):IEnumerator {\r\n\r\n\t\tif(!list) throw new ArgumentNullException('list');\r\n\r\n\t\tvar _ = this,\r\n\t\t current:ILinkedNodeWithValue,\r\n\t\t next:ILinkedNodeWithValue;\r\n\r\n\t\treturn new EnumeratorBase(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\t// Initialize anchor...\r\n\t\t\t\tcurrent = null;\r\n\t\t\t\tnext = list.first;\r\n\t\t\t},\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\r\n\t\t\t\tif(next)\r\n\t\t\t\t{\r\n\t\t\t\t\tcurrent = next;\r\n\t\t\t\t\tnext = current && current.next;\r\n\t\t\t\t\treturn yielder.yieldReturn(current.value);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic copyValues>(\r\n\t\tlist:LinkedNodeList>,\r\n\t\tarray:TDestination,\r\n\t\tindex:number = 0):TDestination\r\n\t{\r\n\t\tif(list && list.first)\r\n\t\t{\r\n\t\t\tif(!array) throw new ArgumentNullException('array');\r\n\r\n\t\t\tlist.forEach(\r\n\t\t\t\t(node, i) =>\r\n\t\t\t\t{\r\n\t\t\t\t\tarray[index + i] = node.value;\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\treturn array;\r\n\t}\r\n\r\n}\r\n\r\nfunction assertValidDetached>(node:TNode, propName:string = 'node')\r\n{\r\n\r\n\tif(node==null)\r\n\t\tthrow new ArgumentNullException(propName);\r\n\r\n\tif(node.next || node.previous)\r\n\t\tthrow new InvalidOperationException(\"Cannot add a node to a LinkedNodeList that is already linked.\");\r\n\r\n}\r\n\r\nexport default LinkedNodeList;"]} \ No newline at end of file diff --git a/dist/commonjs/System/Collections/List.d.ts b/dist/commonjs/System/Collections/List.d.ts index 39f8549b..4841979b 100644 --- a/dist/commonjs/System/Collections/List.d.ts +++ b/dist/commonjs/System/Collections/List.d.ts @@ -1,10 +1,15 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import CollectionBase from "./CollectionBase"; -export default class List extends CollectionBase implements IList, IEnumerateEach { +import { CollectionBase } from "./CollectionBase"; +import { Predicate, Action, EqualityComparison } from "../FunctionTypes"; +import { IEnumerator } from "./Enumeration/IEnumerator"; +import { IList } from "./IList"; +import { IEnumerateEach } from "./Enumeration/IEnumerateEach"; +import { IEnumerableOrArray } from "./IEnumerableOrArray"; +import { IArray } from "./Array/IArray"; +export declare class List extends CollectionBase implements IList, IEnumerateEach { protected _source: T[]; constructor(source?: IEnumerableOrArray, equalityComparer?: EqualityComparison); protected getCount(): number; @@ -22,3 +27,4 @@ export default class List extends CollectionBase implements IList, IEnu getEnumerator(): IEnumerator; forEach(action: Predicate | Action, useCopy?: boolean): void; } +export default List; diff --git a/dist/commonjs/System/Collections/List.js b/dist/commonjs/System/Collections/List.js index 64b8c0bf..c0572895 100644 --- a/dist/commonjs/System/Collections/List.js +++ b/dist/commonjs/System/Collections/List.js @@ -21,8 +21,8 @@ var Types_1 = require("../Types"); var ArrayEnumerator_1 = require("./Enumeration/ArrayEnumerator"); var CollectionBase_1 = require("./CollectionBase"); -var List = function (_CollectionBase_1$def) { - _inherits(List, _CollectionBase_1$def); +var List = function (_CollectionBase_1$Col) { + _inherits(List, _CollectionBase_1$Col); function List(source) { var equalityComparer = arguments.length <= 1 || arguments[1] === undefined ? Compare_1.areEqual : arguments[1]; @@ -69,7 +69,7 @@ var List = function (_CollectionBase_1$def) { }, { key: "_importEntries", value: function _importEntries(entries) { - if (Types_1.default.isArrayLike(entries)) { + if (Types_1.Type.isArrayLike(entries)) { var len = entries.length; if (!len) return 0; var s = this._source; @@ -135,7 +135,7 @@ var List = function (_CollectionBase_1$def) { }, { key: "getEnumerator", value: function getEnumerator() { - return new ArrayEnumerator_1.default(this._source); + return new ArrayEnumerator_1.ArrayEnumerator(this._source); } }, { key: "forEach", @@ -146,8 +146,9 @@ var List = function (_CollectionBase_1$def) { }]); return List; -}(CollectionBase_1.default); +}(CollectionBase_1.CollectionBase); +exports.List = List; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = List; //# sourceMappingURL=List.js.map diff --git a/dist/commonjs/System/Collections/List.js.map b/dist/commonjs/System/Collections/List.js.map index 83a6f1c4..9ab243ac 100644 --- a/dist/commonjs/System/Collections/List.js.map +++ b/dist/commonjs/System/Collections/List.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/List.js","System/Collections/List.ts"],"names":[],"mappings":"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","file":"System/Collections/List.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst Compare_1 = require(\"../Compare\");\nconst Utility_1 = require(\"./Array/Utility\");\nconst Enumerator_1 = require(\"./Enumeration/Enumerator\");\nconst Types_1 = require(\"../Types\");\nconst ArrayEnumerator_1 = require(\"./Enumeration/ArrayEnumerator\");\nconst CollectionBase_1 = require(\"./CollectionBase\");\nclass List extends CollectionBase_1.default {\n constructor(source, equalityComparer = Compare_1.areEqual) {\n super(null, equalityComparer);\n var _ = this;\n if (Array.isArray(source)) {\n _._source = source.slice();\n }\n else {\n _._source = [];\n _._importEntries(source);\n }\n }\n getCount() {\n return this._source.length;\n }\n _addInternal(entry) {\n this._source.push(entry);\n return true;\n }\n _removeInternal(entry, max = Infinity) {\n return Utility_1.remove(this._source, entry, max, this._equalityComparer);\n }\n _clearInternal() {\n var len = this._source.length;\n this._source.length = 0;\n return len;\n }\n _importEntries(entries) {\n if (Types_1.default.isArrayLike(entries)) {\n var len = entries.length;\n if (!len)\n return 0;\n var s = this._source;\n var first = s.length;\n s.length += len;\n for (let i = 0; i < len; i++) {\n s[i + first] = entries[i];\n }\n return len;\n }\n else {\n return super._importEntries(entries);\n }\n }\n get(index) {\n return this._source[index];\n }\n set(index, value) {\n var s = this._source;\n if (index < s.length && Compare_1.areEqual(value, s[index]))\n return false;\n s[index] = value;\n this._onModified();\n return true;\n }\n indexOf(item) {\n return Utility_1.indexOf(this._source, item, this._equalityComparer);\n }\n insert(index, value) {\n var s = this._source;\n if (index < s.length) {\n this._source.splice(index, 0, value);\n }\n else {\n this._source[index] = value;\n }\n this._onModified();\n }\n removeAt(index) {\n if (Utility_1.removeIndex(this._source, index)) {\n this._onModified();\n return true;\n }\n return false;\n }\n contains(item) {\n return Utility_1.contains(this._source, item, this._equalityComparer);\n }\n copyTo(target, index) {\n return Utility_1.copyTo(this._source, target, 0, index);\n }\n getEnumerator() {\n return new ArrayEnumerator_1.default(this._source);\n }\n forEach(action, useCopy) {\n var s = this._source;\n Enumerator_1.forEach(useCopy ? s.slice() : s, action);\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = List;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n\r\n// A means for interfacing an array with ICollection and for use as a base class.\r\nimport {areEqual} from \"../Compare\";\r\nimport {remove, indexOf, contains, copyTo, removeIndex} from \"./Array/Utility\";\r\nimport {forEach} from \"./Enumeration/Enumerator\";\r\nimport Type from \"../Types\";\r\nimport ArrayEnumerator from \"./Enumeration/ArrayEnumerator\";\r\nimport CollectionBase from \"./CollectionBase\";\r\nexport default class List\r\nextends CollectionBase\r\nimplements IList, IEnumerateEach\r\n{\r\n\r\n\tprotected _source:T[];\r\n\r\n\tconstructor(\r\n\t\tsource?:IEnumerableOrArray,\r\n\t\tequalityComparer:EqualityComparison = areEqual)\r\n\t{\r\n\t\tsuper(null,equalityComparer);\r\n\t\tvar _ = this;\r\n\t\tif(Array.isArray(source))\r\n\t\t{\r\n\t\t\t_._source = source.slice();\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t_._source = [];\r\n\t\t\t_._importEntries(source);\r\n\t\t}\r\n\t}\r\n\r\n\tprotected getCount():number\r\n\t{\r\n\t\treturn this._source.length;\r\n\t}\r\n\r\n\tprotected _addInternal(entry:T):boolean\r\n\t{\r\n\t\tthis._source.push(entry);\r\n\t\treturn true;\r\n\t}\r\n\r\n\tprotected _removeInternal(entry:T, max:number = Infinity):number\r\n\t{\r\n\t\treturn remove(\r\n\t\t\tthis._source, entry, max,\r\n\t\t\tthis._equalityComparer);\r\n\t}\r\n\r\n\tprotected _clearInternal():number\r\n\t{\r\n\t\tvar len = this._source.length;\r\n\t\tthis._source.length = 0;\r\n\t\treturn len;\t}\r\n\r\n\tprotected _importEntries(entries:IEnumerableOrArray):number\r\n\t{\r\n\t\tif(Type.isArrayLike(entries))\r\n\t\t{\r\n\t\t\tvar len = entries.length;\r\n\t\t\tif(!len) return 0;\r\n\t\t\tvar s = this._source;\r\n\r\n\t\t\tvar first = s.length;\r\n\t\t\ts.length += len;\r\n\t\t\tfor(let i = 0;i>(target:TTarget, index?:number):TTarget\r\n\t{\r\n\t\treturn copyTo(this._source, target, 0, index);\r\n\t}\r\n\t\r\n\tgetEnumerator():IEnumerator\r\n\t{\r\n\t\treturn new ArrayEnumerator(this._source);\r\n\t}\r\n\r\n\tforEach(action:Predicate|Action, useCopy?:boolean):void\r\n\t{\r\n\t\tvar s = this._source;\r\n\t\tforEach(useCopy ? s.slice() : s, action);\r\n\t}\r\n\r\n}"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/List.js","System/Collections/List.ts"],"names":[],"mappings":"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","file":"System/Collections/List.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst Compare_1 = require(\"../Compare\");\nconst Utility_1 = require(\"./Array/Utility\");\nconst Enumerator_1 = require(\"./Enumeration/Enumerator\");\nconst Types_1 = require(\"../Types\");\nconst ArrayEnumerator_1 = require(\"./Enumeration/ArrayEnumerator\");\nconst CollectionBase_1 = require(\"./CollectionBase\");\nclass List extends CollectionBase_1.CollectionBase {\n constructor(source, equalityComparer = Compare_1.areEqual) {\n super(null, equalityComparer);\n var _ = this;\n if (Array.isArray(source)) {\n _._source = source.slice();\n }\n else {\n _._source = [];\n _._importEntries(source);\n }\n }\n getCount() {\n return this._source.length;\n }\n _addInternal(entry) {\n this._source.push(entry);\n return true;\n }\n _removeInternal(entry, max = Infinity) {\n return Utility_1.remove(this._source, entry, max, this._equalityComparer);\n }\n _clearInternal() {\n var len = this._source.length;\n this._source.length = 0;\n return len;\n }\n _importEntries(entries) {\n if (Types_1.Type.isArrayLike(entries)) {\n var len = entries.length;\n if (!len)\n return 0;\n var s = this._source;\n var first = s.length;\n s.length += len;\n for (let i = 0; i < len; i++) {\n s[i + first] = entries[i];\n }\n return len;\n }\n else {\n return super._importEntries(entries);\n }\n }\n get(index) {\n return this._source[index];\n }\n set(index, value) {\n var s = this._source;\n if (index < s.length && Compare_1.areEqual(value, s[index]))\n return false;\n s[index] = value;\n this._onModified();\n return true;\n }\n indexOf(item) {\n return Utility_1.indexOf(this._source, item, this._equalityComparer);\n }\n insert(index, value) {\n var s = this._source;\n if (index < s.length) {\n this._source.splice(index, 0, value);\n }\n else {\n this._source[index] = value;\n }\n this._onModified();\n }\n removeAt(index) {\n if (Utility_1.removeIndex(this._source, index)) {\n this._onModified();\n return true;\n }\n return false;\n }\n contains(item) {\n return Utility_1.contains(this._source, item, this._equalityComparer);\n }\n copyTo(target, index) {\n return Utility_1.copyTo(this._source, target, 0, index);\n }\n getEnumerator() {\n return new ArrayEnumerator_1.ArrayEnumerator(this._source);\n }\n forEach(action, useCopy) {\n var s = this._source;\n Enumerator_1.forEach(useCopy ? s.slice() : s, action);\n }\n}\nexports.List = List;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = List;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {areEqual} from \"../Compare\";\r\nimport {remove, indexOf, contains, copyTo, removeIndex} from \"./Array/Utility\";\r\nimport {forEach} from \"./Enumeration/Enumerator\";\r\nimport {Type} from \"../Types\";\r\nimport {ArrayEnumerator} from \"./Enumeration/ArrayEnumerator\";\r\nimport {CollectionBase} from \"./CollectionBase\";\r\nimport {Predicate, Action, EqualityComparison} from \"../FunctionTypes\";\r\nimport {IEnumerator} from \"./Enumeration/IEnumerator\";\r\nimport {IList} from \"./IList\";\r\nimport {IEnumerateEach} from \"./Enumeration/IEnumerateEach\";\r\nimport {IEnumerableOrArray} from \"./IEnumerableOrArray\";\r\nimport {IArray} from \"./Array/IArray\";\r\n\r\nexport class List\r\nextends CollectionBase implements IList, IEnumerateEach\r\n{\r\n\r\n\tprotected _source:T[];\r\n\r\n\tconstructor(\r\n\t\tsource?:IEnumerableOrArray,\r\n\t\tequalityComparer:EqualityComparison = areEqual)\r\n\t{\r\n\t\tsuper(null, equalityComparer);\r\n\t\tvar _ = this;\r\n\t\tif(Array.isArray(source))\r\n\t\t{\r\n\t\t\t_._source = source.slice();\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t_._source = [];\r\n\t\t\t_._importEntries(source);\r\n\t\t}\r\n\t}\r\n\r\n\tprotected getCount():number\r\n\t{\r\n\t\treturn this._source.length;\r\n\t}\r\n\r\n\tprotected _addInternal(entry:T):boolean\r\n\t{\r\n\t\tthis._source.push(entry);\r\n\t\treturn true;\r\n\t}\r\n\r\n\tprotected _removeInternal(entry:T, max:number = Infinity):number\r\n\t{\r\n\t\treturn remove(\r\n\t\t\tthis._source, entry, max,\r\n\t\t\tthis._equalityComparer);\r\n\t}\r\n\r\n\tprotected _clearInternal():number\r\n\t{\r\n\t\tvar len = this._source.length;\r\n\t\tthis._source.length = 0;\r\n\t\treturn len;\r\n\t}\r\n\r\n\tprotected _importEntries(entries:IEnumerableOrArray):number\r\n\t{\r\n\t\tif(Type.isArrayLike(entries))\r\n\t\t{\r\n\t\t\tvar len = entries.length;\r\n\t\t\tif(!len) return 0;\r\n\t\t\tvar s = this._source;\r\n\r\n\t\t\tvar first = s.length;\r\n\t\t\ts.length += len;\r\n\t\t\tfor(let i = 0; i>(target:TTarget, index?:number):TTarget\r\n\t{\r\n\t\treturn copyTo(this._source, target, 0, index);\r\n\t}\r\n\r\n\tgetEnumerator():IEnumerator\r\n\t{\r\n\t\treturn new ArrayEnumerator(this._source);\r\n\t}\r\n\r\n\tforEach(action:Predicate|Action, useCopy?:boolean):void\r\n\t{\r\n\t\tvar s = this._source;\r\n\t\tforEach(useCopy ? s.slice() : s, action);\r\n\t}\r\n\r\n}\r\n\r\nexport default List;"]} \ No newline at end of file diff --git a/dist/commonjs/System/Collections/Queue.d.ts b/dist/commonjs/System/Collections/Queue.d.ts index e634439d..818016a6 100644 --- a/dist/commonjs/System/Collections/Queue.d.ts +++ b/dist/commonjs/System/Collections/Queue.d.ts @@ -1,15 +1,13 @@ -/// -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Based Upon: http://referencesource.microsoft.com/#System/CompMod/system/collections/generic/queue.cs * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import CollectionBase from "./CollectionBase"; -export default class Queue extends CollectionBase { +import { CollectionBase } from "./CollectionBase"; +import { EqualityComparison, Predicate, Action } from "../FunctionTypes"; +import { IEnumerator } from "./Enumeration/IEnumerator"; +import { IEnumerableOrArray } from "./IEnumerableOrArray"; +export declare class Queue extends CollectionBase { private _array; private _head; private _tail; @@ -33,3 +31,4 @@ export default class Queue extends CollectionBase { trimExcess(threshold?: number): void; getEnumerator(): IEnumerator; } +export default Queue; diff --git a/dist/commonjs/System/Collections/Queue.js b/dist/commonjs/System/Collections/Queue.js index 6fe966f4..64522e0d 100644 --- a/dist/commonjs/System/Collections/Queue.js +++ b/dist/commonjs/System/Collections/Queue.js @@ -3,7 +3,7 @@ * Based Upon: http://referencesource.microsoft.com/#System/CompMod/system/collections/generic/queue.cs * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; +"use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); @@ -30,8 +30,8 @@ var GROW_FACTOR_HALF = 100; var DEFAULT_CAPACITY = MINIMUM_GROW; var emptyArray = []; -var Queue = function (_CollectionBase_1$def) { - _inherits(Queue, _CollectionBase_1$def); +var Queue = function (_CollectionBase_1$Col) { + _inherits(Queue, _CollectionBase_1$Col); function Queue(source) { var equalityComparer = arguments.length <= 1 || arguments[1] === undefined ? Compare_1.areEqual : arguments[1]; @@ -45,13 +45,13 @@ var Queue = function (_CollectionBase_1$def) { _._tail = 0; _._size = 0; if (!source) _._array = emptyArray;else { - if (Types_1.default.isNumber(source)) { + if (Types_1.Type.isNumber(source)) { var capacity = source; assertIntegerZeroOrGreater(capacity, "capacity"); _._array = capacity ? AU.initialize(capacity) : emptyArray; } else { var se = source; - _._array = AU.initialize(Types_1.default.isArrayLike(se) ? se.length : DEFAULT_CAPACITY); + _._array = AU.initialize(Types_1.Type.isArrayLike(se) ? se.length : DEFAULT_CAPACITY); _._importEntries(se); } } @@ -87,7 +87,7 @@ var Queue = function (_CollectionBase_1$def) { }, { key: "_removeInternal", value: function _removeInternal(item, max) { - throw new NotImplementedException_1.default("ICollection\.remove is not implemented in Queue\" + " since it would require destroying the underlying array to remove the item."); + throw new NotImplementedException_1.NotImplementedException("ICollection\.remove is not implemented in Queue\" + " since it would require destroying the underlying array to remove the item."); } }, { key: "_clearInternal", @@ -125,7 +125,7 @@ var Queue = function (_CollectionBase_1$def) { var _ = this, result = []; if (isFinite(max)) { - Integer_1.default.assertZeroOrGreater(max); + Integer_1.Integer.assertZeroOrGreater(max); if (max !== 0) { while (max-- && _._size) { result.push(_._dequeueInternal()); @@ -188,7 +188,7 @@ var Queue = function (_CollectionBase_1$def) { var _ = this; if (_._size == 0) { - if (throwIfEmpty) throw new InvalidOperationException_1.default("Cannot dequeue an empty queue."); + if (throwIfEmpty) throw new InvalidOperationException_1.InvalidOperationException("Cannot dequeue an empty queue."); return void 0; } var array = _._array, @@ -231,7 +231,7 @@ var Queue = function (_CollectionBase_1$def) { }, { key: "peek", value: function peek() { - if (this._size == 0) throw new InvalidOperationException_1.default("Cannot call peek on an empty queue."); + if (this._size == 0) throw new InvalidOperationException_1.InvalidOperationException("Cannot call peek on an empty queue."); return this._array[this._head]; } }, { @@ -247,7 +247,7 @@ var Queue = function (_CollectionBase_1$def) { var _ = this; var index; var version; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { version = _._version; index = 0; }, function (yielder) { @@ -259,15 +259,16 @@ var Queue = function (_CollectionBase_1$def) { }]); return Queue; -}(CollectionBase_1.default); +}(CollectionBase_1.CollectionBase); -Object.defineProperty(exports, "__esModule", { value: true }); -exports.default = Queue; +exports.Queue = Queue; function assertZeroOrGreater(value, property) { - if (value < 0) throw new ArgumentOutOfRangeException_1.default(property, value, "Must be greater than zero"); + if (value < 0) throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(property, value, "Must be greater than zero"); } function assertIntegerZeroOrGreater(value, property) { - Integer_1.default.assert(value, property); + Integer_1.Integer.assert(value, property); assertZeroOrGreater(value, property); } +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = Queue; //# sourceMappingURL=Queue.js.map diff --git a/dist/commonjs/System/Collections/Queue.js.map b/dist/commonjs/System/Collections/Queue.js.map index 39046815..7f463d52 100644 --- a/dist/commonjs/System/Collections/Queue.js.map +++ b/dist/commonjs/System/Collections/Queue.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Queue.ts","System/Collections/Queue.js"],"names":[],"mappings":"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","file":"System/Collections/Queue.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based Upon: http://referencesource.microsoft.com/#System/CompMod/system/collections/generic/queue.cs\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport {areEqual} from \"../Compare\";\r\nimport * as AU from \"./Array/Utility\";\r\nimport Type from \"../Types\";\r\nimport Integer from \"../Integer\";\r\nimport EnumeratorBase from \"./Enumeration/EnumeratorBase\";\r\nimport NotImplementedException from \"../Exceptions/NotImplementedException\";\r\nimport InvalidOperationException from \"../Exceptions/InvalidOperationException\";\r\nimport ArgumentOutOfRangeException from \"../Exceptions/ArgumentOutOfRangeException\";\r\nimport CollectionBase from \"./CollectionBase\";\r\n\r\nconst MINIMUM_GROW:number = 4;\r\nconst SHRINK_THRESHOLD:number = 32; // Unused?\r\n// var GROW_FACTOR: number = 200; // double each time\r\nconst GROW_FACTOR_HALF:number = 100;\r\nconst DEFAULT_CAPACITY:number = MINIMUM_GROW;\r\nvar emptyArray:any[] = [];\r\n\r\nexport default\r\nclass Queue\r\nextends CollectionBase\r\n{\r\n\r\n\tprivate _array:T[];\r\n\tprivate _head:number; // First valid element in the queue\r\n\tprivate _tail:number; // Last valid element in the queue\r\n\tprivate _size:number; // Number of elements.\r\n\tprivate _capacity:number; // Maps to _array.length;\r\n\r\n\tconstructor(\r\n\t\tsource?:IEnumerableOrArray | number,\r\n\t\tequalityComparer:EqualityComparison = areEqual)\r\n\t{\r\n\t\tsuper(null,equalityComparer);\r\n\t\tvar _ = this;\r\n\t\t_._head = 0;\r\n\t\t_._tail = 0;\r\n\t\t_._size = 0;\r\n\r\n\t\tif(!source)\r\n\t\t\t_._array = emptyArray;\r\n\t\telse\r\n\t\t{\r\n\t\t\tif(Type.isNumber(source))\r\n\t\t\t{\r\n\t\t\t\tvar capacity = source;\r\n\t\t\t\tassertIntegerZeroOrGreater(capacity, \"capacity\");\r\n\r\n\t\t\t\t_._array = capacity\r\n\t\t\t\t\t? AU.initialize(capacity)\r\n\t\t\t\t\t: emptyArray;\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tvar se = > source;\r\n\t\t\t\t_._array = AU.initialize(\r\n\t\t\t\t\tType.isArrayLike(se)\r\n\t\t\t\t\t\t? se.length\r\n\t\t\t\t\t\t: DEFAULT_CAPACITY\r\n\t\t\t\t);\r\n\r\n\t\t\t\t_._importEntries(se);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t_._capacity = _._array.length;\r\n\t}\r\n\r\n\tprotected getCount():number\r\n\t{\r\n\t\treturn this._size;\r\n\t}\r\n\r\n\tprotected _addInternal(item:T):boolean\r\n\t{\r\n\t\tvar _ = this, array = _._array, size = _._size, len = _._capacity;\r\n\t\tif(size==len)\r\n\t\t{\r\n\t\t\tvar newCapacity = len*GROW_FACTOR_HALF;\r\n\t\t\tif(newCapacity.remove is not implemented in Queue\\\" +\r\n\t\t\t\" since it would require destroying the underlying array to remove the item.\"\r\n\t\t);\r\n\t}\r\n\r\n\tprotected _clearInternal():number\r\n\t{\r\n\t\tvar _ = this, array = _._array, head = _._head, tail = _._tail, size = _._size;\r\n\t\tif(head | Action):void\r\n\t{\r\n\t\tsuper.forEach(action,true);\r\n\t}\r\n\r\n\tsetCapacity(capacity:number):void\r\n\t{\r\n\r\n\t\tassertIntegerZeroOrGreater(capacity, \"capacity\");\r\n\r\n\t\tvar _ = this, array = _._array, len = _._capacity;\r\n\r\n\t\tif(capacity==len)\r\n\t\t\treturn;\r\n\r\n\t\tvar head = _._head, tail = _._tail, size = _._size;\r\n\r\n\t\t// Special case where we can simply extend the length of the array. (JavaScript only)\r\n\t\tif(array!=emptyArray && capacity>len && head(capacity);\r\n\t\tif(size>0)\r\n\t\t{\r\n\t\t\tif(headvoid):boolean\r\n\t{\r\n\t\tif(!this._size) return false;\r\n\t\tvar d = this.dequeue();\r\n\t\tif(out) out(d);\r\n\t\treturn true;\r\n\t}\r\n\r\n\tprivate _getElement(index:number):T\r\n\t{\r\n\t\tassertIntegerZeroOrGreater(index, \"index\");\r\n\r\n\t\tvar _ = this;\r\n\t\treturn _._array[(_._head + index)%_._capacity];\r\n\t}\r\n\r\n\tpeek():T\r\n\t{\r\n\t\tif(this._size==0)\r\n\t\t\tthrow new InvalidOperationException(\"Cannot call peek on an empty queue.\");\r\n\r\n\t\treturn this._array[this._head];\r\n\t}\r\n\r\n\ttrimExcess(threshold?:number):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar size = _._size;\r\n\t\tif(size\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar index:number;\r\n\t\tvar version:number;\r\n\t\treturn new EnumeratorBase(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tversion = _._version;\r\n\t\t\t\tindex = 0;\r\n\t\t\t},\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\t\t\t\t_.assertVersion(version);\r\n\r\n\t\t\t\tif(index==_._size)\r\n\t\t\t\t\treturn yielder.yieldBreak();\r\n\r\n\t\t\t\treturn yielder.yieldReturn(_._getElement(index++));\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n}\r\n\r\nfunction assertZeroOrGreater(value:number, property:string):void\r\n{\r\n\tif(value<0)\r\n\t\tthrow new ArgumentOutOfRangeException(property, value, \"Must be greater than zero\");\r\n\r\n}\r\n\r\nfunction assertIntegerZeroOrGreater(value:number, property:string):void\r\n{\r\n\tInteger.assert(value, property);\r\n\tassertZeroOrGreater(value, property);\r\n}\r\n","/*!\n * @author electricessence / https://github.com/electricessence/\n * Based Upon: http://referencesource.microsoft.com/#System/CompMod/system/collections/generic/queue.cs\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n'use strict';\nconst Compare_1 = require(\"../Compare\");\nconst AU = require(\"./Array/Utility\");\nconst Types_1 = require(\"../Types\");\nconst Integer_1 = require(\"../Integer\");\nconst EnumeratorBase_1 = require(\"./Enumeration/EnumeratorBase\");\nconst NotImplementedException_1 = require(\"../Exceptions/NotImplementedException\");\nconst InvalidOperationException_1 = require(\"../Exceptions/InvalidOperationException\");\nconst ArgumentOutOfRangeException_1 = require(\"../Exceptions/ArgumentOutOfRangeException\");\nconst CollectionBase_1 = require(\"./CollectionBase\");\nconst MINIMUM_GROW = 4;\nconst SHRINK_THRESHOLD = 32;\nconst GROW_FACTOR_HALF = 100;\nconst DEFAULT_CAPACITY = MINIMUM_GROW;\nvar emptyArray = [];\nclass Queue extends CollectionBase_1.default {\n constructor(source, equalityComparer = Compare_1.areEqual) {\n super(null, equalityComparer);\n var _ = this;\n _._head = 0;\n _._tail = 0;\n _._size = 0;\n if (!source)\n _._array = emptyArray;\n else {\n if (Types_1.default.isNumber(source)) {\n var capacity = source;\n assertIntegerZeroOrGreater(capacity, \"capacity\");\n _._array = capacity\n ? AU.initialize(capacity)\n : emptyArray;\n }\n else {\n var se = source;\n _._array = AU.initialize(Types_1.default.isArrayLike(se)\n ? se.length\n : DEFAULT_CAPACITY);\n _._importEntries(se);\n }\n }\n _._capacity = _._array.length;\n }\n getCount() {\n return this._size;\n }\n _addInternal(item) {\n var _ = this, array = _._array, size = _._size, len = _._capacity;\n if (size == len) {\n var newCapacity = len * GROW_FACTOR_HALF;\n if (newCapacity < len + MINIMUM_GROW)\n newCapacity = len + MINIMUM_GROW;\n _.setCapacity(newCapacity);\n array = _._array;\n len = _._capacity;\n }\n var tail = _._tail;\n array[tail] = item;\n _._tail = (tail + 1) % len;\n _._size = size + 1;\n return true;\n }\n _removeInternal(item, max) {\n throw new NotImplementedException_1.default(\"ICollection\\.remove is not implemented in Queue\\\" +\n \" since it would require destroying the underlying array to remove the item.\");\n }\n _clearInternal() {\n var _ = this, array = _._array, head = _._head, tail = _._tail, size = _._size;\n if (head < tail)\n AU.clear(array, head, tail);\n else {\n AU.clear(array, head, array.length - head);\n AU.clear(array, 0, tail);\n }\n _._head = 0;\n _._tail = 0;\n _._size = 0;\n _.trimExcess();\n return size;\n }\n _onDispose() {\n super._onDispose();\n var _ = this;\n if (_._array != emptyArray) {\n _._array.length = _._capacity = 0;\n _._array = emptyArray;\n }\n }\n dump(max = Infinity) {\n var _ = this, result = [];\n if (isFinite(max)) {\n Integer_1.default.assertZeroOrGreater(max);\n if (max !== 0) {\n while (max-- && _._size) {\n result.push(_._dequeueInternal());\n }\n }\n }\n else {\n while (_._size) {\n result.push(_._dequeueInternal());\n }\n }\n _.trimExcess();\n _._signalModification();\n return result;\n }\n forEach(action) {\n super.forEach(action, true);\n }\n setCapacity(capacity) {\n assertIntegerZeroOrGreater(capacity, \"capacity\");\n var _ = this, array = _._array, len = _._capacity;\n if (capacity == len)\n return;\n var head = _._head, tail = _._tail, size = _._size;\n if (array != emptyArray && capacity > len && head < tail) {\n array.length = _._capacity = capacity;\n _._version++;\n return;\n }\n var newArray = AU.initialize(capacity);\n if (size > 0) {\n if (head < tail) {\n AU.copyTo(array, newArray, head, 0, size);\n }\n else {\n AU.copyTo(array, newArray, head, 0, len - head);\n AU.copyTo(array, newArray, 0, len - head, tail);\n }\n }\n _._array = newArray;\n _._capacity = capacity;\n _._head = 0;\n _._tail = (size == capacity) ? 0 : size;\n _._signalModification(true);\n }\n enqueue(item) {\n this.add(item);\n }\n _dequeueInternal(throwIfEmpty = false) {\n var _ = this;\n if (_._size == 0) {\n if (throwIfEmpty)\n throw new InvalidOperationException_1.default(\"Cannot dequeue an empty queue.\");\n return void 0;\n }\n var array = _._array, head = _._head;\n var removed = _._array[head];\n array[head] = null;\n _._head = (head + 1) % _._capacity;\n _._size--;\n _._incrementModified();\n return removed;\n }\n dequeue(throwIfEmpty = false) {\n var _ = this;\n _.assertModifiable();\n var modified = !!_._size;\n var v = this._dequeueInternal(throwIfEmpty);\n if (modified && _._size < _._capacity / 2)\n _.trimExcess(SHRINK_THRESHOLD);\n _._signalModification();\n return v;\n }\n tryDequeue(out) {\n if (!this._size)\n return false;\n var d = this.dequeue();\n if (out)\n out(d);\n return true;\n }\n _getElement(index) {\n assertIntegerZeroOrGreater(index, \"index\");\n var _ = this;\n return _._array[(_._head + index) % _._capacity];\n }\n peek() {\n if (this._size == 0)\n throw new InvalidOperationException_1.default(\"Cannot call peek on an empty queue.\");\n return this._array[this._head];\n }\n trimExcess(threshold) {\n var _ = this;\n var size = _._size;\n if (size < Math.floor(_._capacity * 0.9) && (isNaN(threshold) || threshold < size))\n _.setCapacity(size);\n }\n getEnumerator() {\n var _ = this;\n var index;\n var version;\n return new EnumeratorBase_1.default(() => {\n version = _._version;\n index = 0;\n }, (yielder) => {\n _.assertVersion(version);\n if (index == _._size)\n return yielder.yieldBreak();\n return yielder.yieldReturn(_._getElement(index++));\n });\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Queue;\nfunction assertZeroOrGreater(value, property) {\n if (value < 0)\n throw new ArgumentOutOfRangeException_1.default(property, value, \"Must be greater than zero\");\n}\nfunction assertIntegerZeroOrGreater(value, property) {\n Integer_1.default.assert(value, property);\n assertZeroOrGreater(value, property);\n}\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Queue.js","System/Collections/Queue.ts"],"names":[],"mappings":";;;;;AAKA;;;;;;;;;;;;ACCA,IAAA,YAAA,QAAuB,YAAvB,CAAA;AACA,IAAY,KAAE,QAAM,iBAAN,CAAF;AACZ,IAAA,UAAA,QAAmB,UAAnB,CAAA;AACA,IAAA,YAAA,QAAsB,YAAtB,CAAA;AACA,IAAA,mBAAA,QAA6B,8BAA7B,CAAA;AACA,IAAA,4BAAA,QAAsC,uCAAtC,CAAA;AACA,IAAA,8BAAA,QAAwC,yCAAxC,CAAA;AACA,IAAA,gCAAA,QAA0C,2CAA1C,CAAA;AACA,IAAA,mBAAA,QAA6B,kBAA7B,CAAA;AAKA,IAAM,eAAsB,CAAtB;AACN,IAAM,mBAA0B,EAA1B;AAEN,IAAM,mBAA0B,GAA1B;AACN,IAAM,mBAA0B,YAA1B;AACN,IAAI,aAAmB,EAAnB;;IAEJ;;;AAUC,aAVD,KAUC,CACC,MADD,EAEkD;YAAjD,yEAAyC,UAAA,QAAA,gBAAQ;;8BAZnD,OAYmD;;2EAZnD,kBAcQ,MAAM,mBAFqC;;AAGjD,YAAI,SAAJ,CAHiD;AAIjD,UAAE,KAAF,GAAU,CAAV,CAJiD;AAKjD,UAAE,KAAF,GAAU,CAAV,CALiD;AAMjD,UAAE,KAAF,GAAU,CAAV,CANiD;AAQjD,YAAG,CAAC,MAAD,EACF,EAAE,MAAF,GAAW,UAAX,CADD,KAGA;AACC,gBAAG,QAAA,IAAA,CAAK,QAAL,CAAc,MAAd,CAAH,EACA;AACC,oBAAI,WAAmB,MAAnB,CADL;AAEC,2CAA2B,QAA3B,EAAqC,UAArC,EAFD;AAIC,kBAAE,MAAF,GAAW,WACR,GAAG,UAAH,CAAiB,QAAjB,CADQ,GAER,UAFQ,CAJZ;aADA,MAUA;AACC,oBAAI,KAA6B,MAA7B,CADL;AAEC,kBAAE,MAAF,GAAW,GAAG,UAAH,CACV,QAAA,IAAA,CAAK,WAAL,CAAiB,EAAjB,IACG,GAAG,MAAH,GACA,gBAFH,CADD,CAFD;AAQC,kBAAE,cAAF,CAAiB,EAAjB,EARD;aAVA;SAJD;AA0BA,UAAE,SAAF,GAAc,EAAE,MAAF,CAAS,MAAT,CAlCmC;;KAFlD;;iBAVD;;mCAiDmB;AAEjB,mBAAO,KAAK,KAAL,CAFU;;;;qCAKK,MAAM;AAE5B,gBAAI,IAAI,IAAJ;gBAAU,QAAQ,EAAE,MAAF;gBAAU,OAAO,EAAE,KAAF;gBAAS,MAAM,EAAE,SAAF,CAF1B;AAG5B,gBAAG,QAAM,GAAN,EACH;AACC,oBAAI,cAAc,MAAI,gBAAJ,CADnB;AAEC,oBAAG,cAAY,MAAM,YAAN,EACd,cAAc,MAAM,YAAN,CADf;AAGA,kBAAE,WAAF,CAAc,WAAd,EALD;AAMC,wBAAQ,EAAE,MAAF,CANT;AAOC,sBAAM,EAAE,SAAF,CAPP;aADA;AAWA,gBAAI,OAAO,EAAE,KAAF,CAdiB;AAe5B,kBAAM,IAAN,IAAc,IAAd,CAf4B;AAgB5B,cAAE,KAAF,GAAU,CAAC,OAAO,CAAP,CAAD,GAAW,GAAX,CAhBkB;AAiB5B,cAAE,KAAF,GAAU,OAAO,CAAP,CAjBkB;AAkB5B,mBAAO,IAAP,CAlB4B;;;;wCAqBH,MAAQ,KAAW;AAE5C,kBAAM,IAAI,0BAAA,uBAAA,CACT,6DACA,6EADA,CADD,CAF4C;;;;yCAQrB;AAEvB,gBAAI,IAAI,IAAJ;gBAAU,QAAQ,EAAE,MAAF;gBAAU,OAAO,EAAE,KAAF;gBAAS,OAAO,EAAE,KAAF;gBAAS,OAAO,EAAE,KAAF,CAFhD;AAGvB,gBAAG,OAAK,IAAL,EACF,GAAG,KAAH,CAAS,KAAT,EAAgB,IAAhB,EAAsB,IAAtB,EADD,KAGA;AACC,mBAAG,KAAH,CAAS,KAAT,EAAgB,IAAhB,EAAsB,MAAM,MAAN,GAAe,IAAf,CAAtB,CADD;AAEC,mBAAG,KAAH,CAAS,KAAT,EAAgB,CAAhB,EAAmB,IAAnB,EAFD;aAHA;AAQA,cAAE,KAAF,GAAU,CAAV,CAXuB;AAYvB,cAAE,KAAF,GAAU,CAAV,CAZuB;AAavB,cAAE,KAAF,GAAU,CAAV,CAbuB;AAevB,cAAE,UAAF,GAfuB;AAiBvB,mBAAO,IAAP,CAjBuB;;;;qCAoBJ;AAEnB,uCAzGF,gDAyGE,CAFmB;AAGnB,gBAAI,IAAI,IAAJ,CAHe;AAInB,gBAAG,EAAE,MAAF,IAAU,UAAV,EACH;AACC,kBAAE,MAAF,CAAS,MAAT,GAAkB,EAAE,SAAF,GAAc,CAAd,CADnB;AAEC,kBAAE,MAAF,GAAW,UAAX,CAFD;aADA;;;;+BAWyB;gBAArB,4DAAa,wBAAQ;;AAEzB,gBAAI,IAAI,IAAJ;gBAAU,SAAa,EAAb,CAFW;AAIzB,gBAAG,SAAS,GAAT,CAAH,EACA;AACC,0BAAA,OAAA,CAAQ,mBAAR,CAA4B,GAA5B,EADD;AAEC,oBAAG,QAAM,CAAN,EACH;AACC,2BAAM,SAAS,EAAE,KAAF,EACf;AACC,+BAAO,IAAP,CAAY,EAAE,gBAAF,EAAZ,EADD;qBADA;iBAFD;aAHD,MAYA;AACC,uBAAM,EAAE,KAAF,EACN;AACC,2BAAO,IAAP,CAAY,EAAE,gBAAF,EAAZ,EADD;iBADA;aAbD;AAmBA,cAAE,UAAF,GAvByB;AAwBzB,cAAE,mBAAF,GAxByB;AA0BzB,mBAAO,MAAP,CA1ByB;;;;gCA6BlB,QAA+B;AAEtC,uCArJF,8CAqJgB,QAAQ,KAAtB,CAFsC;;;;oCAK3B,UAAe;AAG1B,uCAA2B,QAA3B,EAAqC,UAArC,EAH0B;AAK1B,gBAAI,IAAI,IAAJ;gBAAU,QAAQ,EAAE,MAAF;gBAAU,MAAM,EAAE,SAAF,CALZ;AAO1B,gBAAG,YAAU,GAAV,EACF,OADD;AAGA,gBAAI,OAAO,EAAE,KAAF;gBAAS,OAAO,EAAE,KAAF;gBAAS,OAAO,EAAE,KAAF,CAVjB;AAa1B,gBAAG,SAAO,UAAP,IAAqB,WAAS,GAAT,IAAgB,OAAK,IAAL,EACxC;AACC,sBAAM,MAAN,GAAe,EAAE,SAAF,GAAc,QAAd,CADhB;AAEC,kBAAE,QAAF,GAFD;AAGC,uBAHD;aADA;AAQA,gBAAI,WAAe,GAAG,UAAH,CAAiB,QAAjB,CAAf,CArBsB;AAsB1B,gBAAG,OAAK,CAAL,EACH;AACC,oBAAG,OAAK,IAAL,EACH;AACC,uBAAG,MAAH,CAAU,KAAV,EAAiB,QAAjB,EAA2B,IAA3B,EAAiC,CAAjC,EAAoC,IAApC,EADD;iBADA,MAKA;AACC,uBAAG,MAAH,CAAU,KAAV,EAAiB,QAAjB,EAA2B,IAA3B,EAAiC,CAAjC,EAAoC,MAAM,IAAN,CAApC,CADD;AAEC,uBAAG,MAAH,CAAU,KAAV,EAAiB,QAAjB,EAA2B,CAA3B,EAA8B,MAAM,IAAN,EAAY,IAA1C,EAFD;iBALA;aAFD;AAaA,cAAE,MAAF,GAAW,QAAX,CAnC0B;AAoC1B,cAAE,SAAF,GAAc,QAAd,CApC0B;AAqC1B,cAAE,KAAF,GAAU,CAAV,CArC0B;AAsC1B,cAAE,KAAF,GAAU,IAAC,IAAM,QAAN,GAAkB,CAAnB,GAAuB,IAAvB,CAtCgB;AAwC1B,cAAE,mBAAF,CAAsB,IAAtB,EAxC0B;;;;gCA2CnB,MAAM;AAEb,iBAAK,GAAL,CAAS,IAAT,EAFa;;;;2CAMyC;gBAA5B,qEAAuB,qBAAK;;AAEtD,gBAAI,IAAI,IAAJ,CAFkD;AAGtD,gBAAG,EAAE,KAAF,IAAS,CAAT,EACH;AACC,oBAAG,YAAH,EACC,MAAM,IAAI,4BAAA,yBAAA,CAA0B,gCAA9B,CAAN,CADD;AAEA,uBAAO,KAAK,CAAL,CAHR;aADA;AAOA,gBAAI,QAAQ,EAAE,MAAF;gBAAU,OAAO,EAAE,KAAF,CAVyB;AAYtD,gBAAI,UAAU,EAAE,MAAF,CAAS,IAAT,CAAV,CAZkD;AAatD,kBAAM,IAAN,IAAc,IAAd,CAbsD;AActD,cAAE,KAAF,GAAU,CAAC,OAAO,CAAP,CAAD,GAAW,EAAE,SAAF,CAdiC;AAgBtD,cAAE,KAAF,GAhBsD;AAkBtD,cAAE,kBAAF,GAlBsD;AAoBtD,mBAAO,OAAP,CApBsD;;;;kCAuBnB;gBAA5B,qEAAuB,qBAAK;;AAEnC,gBAAI,IAAI,IAAJ,CAF+B;AAGnC,cAAE,gBAAF,GAHmC;AAMnC,gBAAI,WAAW,CAAC,CAAC,EAAE,KAAF,CANkB;AAOnC,gBAAI,IAAI,KAAK,gBAAL,CAAsB,YAAtB,CAAJ,CAP+B;AAUnC,gBAAG,YAAY,EAAE,KAAF,GAAQ,EAAE,SAAF,GAAY,CAAZ,EACtB,EAAE,UAAF,CAAa,gBAAb,EADD;AAGA,cAAE,mBAAF,GAbmC;AAcnC,mBAAO,CAAP,CAdmC;;;;mCAkBzB,KAAmB;AAE7B,gBAAG,CAAC,KAAK,KAAL,EAAY,OAAO,KAAP,CAAhB;AACA,gBAAI,IAAI,KAAK,OAAL,EAAJ,CAHyB;AAI7B,gBAAG,GAAH,EAAQ,IAAI,CAAJ,EAAR;AACA,mBAAO,IAAP,CAL6B;;;;oCAQV,OAAY;AAE/B,uCAA2B,KAA3B,EAAkC,OAAlC,EAF+B;AAI/B,gBAAI,IAAI,IAAJ,CAJ2B;AAK/B,mBAAO,EAAE,MAAF,CAAS,CAAC,EAAE,KAAF,GAAU,KAAV,CAAD,GAAkB,EAAE,SAAF,CAAlC,CAL+B;;;;+BAQ5B;AAEH,gBAAG,KAAK,KAAL,IAAY,CAAZ,EACF,MAAM,IAAI,4BAAA,yBAAA,CAA0B,qCAA9B,CAAN,CADD;AAGA,mBAAO,KAAK,MAAL,CAAY,KAAK,KAAL,CAAnB,CALG;;;;mCAQO,WAAiB;AAE3B,gBAAI,IAAI,IAAJ,CAFuB;AAG3B,gBAAI,OAAO,EAAE,KAAF,CAHgB;AAI3B,gBAAG,OAAK,KAAK,KAAL,CAAW,EAAE,SAAF,GAAY,GAAZ,CAAhB,KAAqC,MAAM,SAAN,KAAoB,YAAU,IAAV,CAAzD,EACF,EAAE,WAAF,CAAc,IAAd,EADD;;;;wCAIY;AAEZ,gBAAI,IAAI,IAAJ,CAFQ;AAGZ,gBAAI,KAAJ,CAHY;AAIZ,gBAAI,OAAJ,CAJY;AAKZ,mBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAEC,0BAAU,EAAE,QAAF,CAFX;AAGC,wBAAQ,CAAR,CAHD;aAAA,EAKA,UAAC,OAAD,EAAQ;AAEP,kBAAE,aAAF,CAAgB,OAAhB,EAFO;AAIP,oBAAG,SAAO,EAAE,KAAF,EACT,OAAO,QAAQ,UAAR,EAAP,CADD;AAGA,uBAAO,QAAQ,WAAR,CAAoB,EAAE,WAAF,CAAc,OAAd,CAApB,CAAP,CAPO;aAAR,CAND,CALY;;;;WAlRd;EACQ,iBAAA,cAAA;;AADK,QAAA,KAAA,GAAK,KAAL;AA0Sb,SAAA,mBAAA,CAA6B,KAA7B,EAA2C,QAA3C,EAA0D;AAEzD,QAAG,QAAM,CAAN,EACF,MAAM,IAAI,8BAAA,2BAAA,CAA4B,QAAhC,EAA0C,KAA1C,EAAiD,2BAAjD,CAAN,CADD;CAFD;AAOA,SAAA,0BAAA,CAAoC,KAApC,EAAkD,QAAlD,EAAiE;AAEhE,cAAA,OAAA,CAAQ,MAAR,CAAe,KAAf,EAAsB,QAAtB,EAFgE;AAGhE,wBAAoB,KAApB,EAA2B,QAA3B,EAHgE;CAAjE;AAMA,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADvHA,QAAQ,OAAR,GCuHe,KDvHf","file":"System/Collections/Queue.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based Upon: http://referencesource.microsoft.com/#System/CompMod/system/collections/generic/queue.cs\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst Compare_1 = require(\"../Compare\");\nconst AU = require(\"./Array/Utility\");\nconst Types_1 = require(\"../Types\");\nconst Integer_1 = require(\"../Integer\");\nconst EnumeratorBase_1 = require(\"./Enumeration/EnumeratorBase\");\nconst NotImplementedException_1 = require(\"../Exceptions/NotImplementedException\");\nconst InvalidOperationException_1 = require(\"../Exceptions/InvalidOperationException\");\nconst ArgumentOutOfRangeException_1 = require(\"../Exceptions/ArgumentOutOfRangeException\");\nconst CollectionBase_1 = require(\"./CollectionBase\");\nconst MINIMUM_GROW = 4;\nconst SHRINK_THRESHOLD = 32;\nconst GROW_FACTOR_HALF = 100;\nconst DEFAULT_CAPACITY = MINIMUM_GROW;\nvar emptyArray = [];\nclass Queue extends CollectionBase_1.CollectionBase {\n constructor(source, equalityComparer = Compare_1.areEqual) {\n super(null, equalityComparer);\n var _ = this;\n _._head = 0;\n _._tail = 0;\n _._size = 0;\n if (!source)\n _._array = emptyArray;\n else {\n if (Types_1.Type.isNumber(source)) {\n var capacity = source;\n assertIntegerZeroOrGreater(capacity, \"capacity\");\n _._array = capacity\n ? AU.initialize(capacity)\n : emptyArray;\n }\n else {\n var se = source;\n _._array = AU.initialize(Types_1.Type.isArrayLike(se)\n ? se.length\n : DEFAULT_CAPACITY);\n _._importEntries(se);\n }\n }\n _._capacity = _._array.length;\n }\n getCount() {\n return this._size;\n }\n _addInternal(item) {\n var _ = this, array = _._array, size = _._size, len = _._capacity;\n if (size == len) {\n var newCapacity = len * GROW_FACTOR_HALF;\n if (newCapacity < len + MINIMUM_GROW)\n newCapacity = len + MINIMUM_GROW;\n _.setCapacity(newCapacity);\n array = _._array;\n len = _._capacity;\n }\n var tail = _._tail;\n array[tail] = item;\n _._tail = (tail + 1) % len;\n _._size = size + 1;\n return true;\n }\n _removeInternal(item, max) {\n throw new NotImplementedException_1.NotImplementedException(\"ICollection\\.remove is not implemented in Queue\\\" +\n \" since it would require destroying the underlying array to remove the item.\");\n }\n _clearInternal() {\n var _ = this, array = _._array, head = _._head, tail = _._tail, size = _._size;\n if (head < tail)\n AU.clear(array, head, tail);\n else {\n AU.clear(array, head, array.length - head);\n AU.clear(array, 0, tail);\n }\n _._head = 0;\n _._tail = 0;\n _._size = 0;\n _.trimExcess();\n return size;\n }\n _onDispose() {\n super._onDispose();\n var _ = this;\n if (_._array != emptyArray) {\n _._array.length = _._capacity = 0;\n _._array = emptyArray;\n }\n }\n dump(max = Infinity) {\n var _ = this, result = [];\n if (isFinite(max)) {\n Integer_1.Integer.assertZeroOrGreater(max);\n if (max !== 0) {\n while (max-- && _._size) {\n result.push(_._dequeueInternal());\n }\n }\n }\n else {\n while (_._size) {\n result.push(_._dequeueInternal());\n }\n }\n _.trimExcess();\n _._signalModification();\n return result;\n }\n forEach(action) {\n super.forEach(action, true);\n }\n setCapacity(capacity) {\n assertIntegerZeroOrGreater(capacity, \"capacity\");\n var _ = this, array = _._array, len = _._capacity;\n if (capacity == len)\n return;\n var head = _._head, tail = _._tail, size = _._size;\n if (array != emptyArray && capacity > len && head < tail) {\n array.length = _._capacity = capacity;\n _._version++;\n return;\n }\n var newArray = AU.initialize(capacity);\n if (size > 0) {\n if (head < tail) {\n AU.copyTo(array, newArray, head, 0, size);\n }\n else {\n AU.copyTo(array, newArray, head, 0, len - head);\n AU.copyTo(array, newArray, 0, len - head, tail);\n }\n }\n _._array = newArray;\n _._capacity = capacity;\n _._head = 0;\n _._tail = (size == capacity) ? 0 : size;\n _._signalModification(true);\n }\n enqueue(item) {\n this.add(item);\n }\n _dequeueInternal(throwIfEmpty = false) {\n var _ = this;\n if (_._size == 0) {\n if (throwIfEmpty)\n throw new InvalidOperationException_1.InvalidOperationException(\"Cannot dequeue an empty queue.\");\n return void 0;\n }\n var array = _._array, head = _._head;\n var removed = _._array[head];\n array[head] = null;\n _._head = (head + 1) % _._capacity;\n _._size--;\n _._incrementModified();\n return removed;\n }\n dequeue(throwIfEmpty = false) {\n var _ = this;\n _.assertModifiable();\n var modified = !!_._size;\n var v = this._dequeueInternal(throwIfEmpty);\n if (modified && _._size < _._capacity / 2)\n _.trimExcess(SHRINK_THRESHOLD);\n _._signalModification();\n return v;\n }\n tryDequeue(out) {\n if (!this._size)\n return false;\n var d = this.dequeue();\n if (out)\n out(d);\n return true;\n }\n _getElement(index) {\n assertIntegerZeroOrGreater(index, \"index\");\n var _ = this;\n return _._array[(_._head + index) % _._capacity];\n }\n peek() {\n if (this._size == 0)\n throw new InvalidOperationException_1.InvalidOperationException(\"Cannot call peek on an empty queue.\");\n return this._array[this._head];\n }\n trimExcess(threshold) {\n var _ = this;\n var size = _._size;\n if (size < Math.floor(_._capacity * 0.9) && (isNaN(threshold) || threshold < size))\n _.setCapacity(size);\n }\n getEnumerator() {\n var _ = this;\n var index;\n var version;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n version = _._version;\n index = 0;\n }, (yielder) => {\n _.assertVersion(version);\n if (index == _._size)\n return yielder.yieldBreak();\n return yielder.yieldReturn(_._getElement(index++));\n });\n }\n}\nexports.Queue = Queue;\nfunction assertZeroOrGreater(value, property) {\n if (value < 0)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(property, value, \"Must be greater than zero\");\n}\nfunction assertIntegerZeroOrGreater(value, property) {\n Integer_1.Integer.assert(value, property);\n assertZeroOrGreater(value, property);\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Queue;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based Upon: http://referencesource.microsoft.com/#System/CompMod/system/collections/generic/queue.cs\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {areEqual} from \"../Compare\";\r\nimport * as AU from \"./Array/Utility\";\r\nimport {Type} from \"../Types\";\r\nimport {Integer} from \"../Integer\";\r\nimport {EnumeratorBase} from \"./Enumeration/EnumeratorBase\";\r\nimport {NotImplementedException} from \"../Exceptions/NotImplementedException\";\r\nimport {InvalidOperationException} from \"../Exceptions/InvalidOperationException\";\r\nimport {ArgumentOutOfRangeException} from \"../Exceptions/ArgumentOutOfRangeException\";\r\nimport {CollectionBase} from \"./CollectionBase\";\r\nimport {EqualityComparison, Predicate, Action} from \"../FunctionTypes\";\r\nimport {IEnumerator} from \"./Enumeration/IEnumerator\";\r\nimport {IEnumerableOrArray} from \"./IEnumerableOrArray\";\r\n\r\nconst MINIMUM_GROW:number = 4;\r\nconst SHRINK_THRESHOLD:number = 32; // Unused?\r\n// var GROW_FACTOR: number = 200; // double each time\r\nconst GROW_FACTOR_HALF:number = 100;\r\nconst DEFAULT_CAPACITY:number = MINIMUM_GROW;\r\nvar emptyArray:any[] = [];\r\n\r\nexport class Queue\r\nextends CollectionBase\r\n{\r\n\r\n\tprivate _array:T[];\r\n\tprivate _head:number; // First valid element in the queue\r\n\tprivate _tail:number; // Last valid element in the queue\r\n\tprivate _size:number; // Number of elements.\r\n\tprivate _capacity:number; // Maps to _array.length;\r\n\r\n\tconstructor(\r\n\t\tsource?:IEnumerableOrArray | number,\r\n\t\tequalityComparer:EqualityComparison = areEqual)\r\n\t{\r\n\t\tsuper(null, equalityComparer);\r\n\t\tvar _ = this;\r\n\t\t_._head = 0;\r\n\t\t_._tail = 0;\r\n\t\t_._size = 0;\r\n\r\n\t\tif(!source)\r\n\t\t\t_._array = emptyArray;\r\n\t\telse\r\n\t\t{\r\n\t\t\tif(Type.isNumber(source))\r\n\t\t\t{\r\n\t\t\t\tvar capacity = source;\r\n\t\t\t\tassertIntegerZeroOrGreater(capacity, \"capacity\");\r\n\r\n\t\t\t\t_._array = capacity\r\n\t\t\t\t\t? AU.initialize(capacity)\r\n\t\t\t\t\t: emptyArray;\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tvar se = > source;\r\n\t\t\t\t_._array = AU.initialize(\r\n\t\t\t\t\tType.isArrayLike(se)\r\n\t\t\t\t\t\t? se.length\r\n\t\t\t\t\t\t: DEFAULT_CAPACITY\r\n\t\t\t\t);\r\n\r\n\t\t\t\t_._importEntries(se);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t_._capacity = _._array.length;\r\n\t}\r\n\r\n\tprotected getCount():number\r\n\t{\r\n\t\treturn this._size;\r\n\t}\r\n\r\n\tprotected _addInternal(item:T):boolean\r\n\t{\r\n\t\tvar _ = this, array = _._array, size = _._size, len = _._capacity;\r\n\t\tif(size==len)\r\n\t\t{\r\n\t\t\tvar newCapacity = len*GROW_FACTOR_HALF;\r\n\t\t\tif(newCapacity.remove is not implemented in Queue\\\" +\r\n\t\t\t\" since it would require destroying the underlying array to remove the item.\"\r\n\t\t);\r\n\t}\r\n\r\n\tprotected _clearInternal():number\r\n\t{\r\n\t\tvar _ = this, array = _._array, head = _._head, tail = _._tail, size = _._size;\r\n\t\tif(head | Action):void\r\n\t{\r\n\t\tsuper.forEach(action, true);\r\n\t}\r\n\r\n\tsetCapacity(capacity:number):void\r\n\t{\r\n\r\n\t\tassertIntegerZeroOrGreater(capacity, \"capacity\");\r\n\r\n\t\tvar _ = this, array = _._array, len = _._capacity;\r\n\r\n\t\tif(capacity==len)\r\n\t\t\treturn;\r\n\r\n\t\tvar head = _._head, tail = _._tail, size = _._size;\r\n\r\n\t\t// Special case where we can simply extend the length of the array. (JavaScript only)\r\n\t\tif(array!=emptyArray && capacity>len && head(capacity);\r\n\t\tif(size>0)\r\n\t\t{\r\n\t\t\tif(headvoid):boolean\r\n\t{\r\n\t\tif(!this._size) return false;\r\n\t\tvar d = this.dequeue();\r\n\t\tif(out) out(d);\r\n\t\treturn true;\r\n\t}\r\n\r\n\tprivate _getElement(index:number):T\r\n\t{\r\n\t\tassertIntegerZeroOrGreater(index, \"index\");\r\n\r\n\t\tvar _ = this;\r\n\t\treturn _._array[(_._head + index)%_._capacity];\r\n\t}\r\n\r\n\tpeek():T\r\n\t{\r\n\t\tif(this._size==0)\r\n\t\t\tthrow new InvalidOperationException(\"Cannot call peek on an empty queue.\");\r\n\r\n\t\treturn this._array[this._head];\r\n\t}\r\n\r\n\ttrimExcess(threshold?:number):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar size = _._size;\r\n\t\tif(size\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar index:number;\r\n\t\tvar version:number;\r\n\t\treturn new EnumeratorBase(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tversion = _._version;\r\n\t\t\t\tindex = 0;\r\n\t\t\t},\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\t\t\t\t_.assertVersion(version);\r\n\r\n\t\t\t\tif(index==_._size)\r\n\t\t\t\t\treturn yielder.yieldBreak();\r\n\r\n\t\t\t\treturn yielder.yieldReturn(_._getElement(index++));\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n}\r\n\r\nfunction assertZeroOrGreater(value:number, property:string):void\r\n{\r\n\tif(value<0)\r\n\t\tthrow new ArgumentOutOfRangeException(property, value, \"Must be greater than zero\");\r\n\r\n}\r\n\r\nfunction assertIntegerZeroOrGreater(value:number, property:string):void\r\n{\r\n\tInteger.assert(value, property);\r\n\tassertZeroOrGreater(value, property);\r\n}\r\n\r\nexport default Queue;\r\n"]} \ No newline at end of file diff --git a/dist/commonjs/System/Collections/ReadOnlyCollectionBase.d.ts b/dist/commonjs/System/Collections/ReadOnlyCollectionBase.d.ts index 5633231c..2553028b 100644 --- a/dist/commonjs/System/Collections/ReadOnlyCollectionBase.d.ts +++ b/dist/commonjs/System/Collections/ReadOnlyCollectionBase.d.ts @@ -1,11 +1,10 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import CollectionBase from "./CollectionBase"; -declare abstract class ReadOnlyCollectionBase extends CollectionBase { +import { CollectionBase } from "./CollectionBase"; +import { IEnumerator } from "./Enumeration/IEnumerator"; +export declare abstract class ReadOnlyCollectionBase extends CollectionBase { protected _getCount: () => number; protected getCount(): number; protected getIsReadOnly(): boolean; diff --git a/dist/commonjs/System/Collections/ReadOnlyCollectionBase.js b/dist/commonjs/System/Collections/ReadOnlyCollectionBase.js index 509e112c..1e7a3126 100644 --- a/dist/commonjs/System/Collections/ReadOnlyCollectionBase.js +++ b/dist/commonjs/System/Collections/ReadOnlyCollectionBase.js @@ -14,8 +14,8 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function" var CollectionBase_1 = require("./CollectionBase"); -var ReadOnlyCollectionBase = function (_CollectionBase_1$def) { - _inherits(ReadOnlyCollectionBase, _CollectionBase_1$def); +var ReadOnlyCollectionBase = function (_CollectionBase_1$Col) { + _inherits(ReadOnlyCollectionBase, _CollectionBase_1$Col); function ReadOnlyCollectionBase() { _classCallCheck(this, ReadOnlyCollectionBase); @@ -56,8 +56,9 @@ var ReadOnlyCollectionBase = function (_CollectionBase_1$def) { }]); return ReadOnlyCollectionBase; -}(CollectionBase_1.default); +}(CollectionBase_1.CollectionBase); +exports.ReadOnlyCollectionBase = ReadOnlyCollectionBase; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = ReadOnlyCollectionBase; //# sourceMappingURL=ReadOnlyCollectionBase.js.map diff --git a/dist/commonjs/System/Collections/ReadOnlyCollectionBase.js.map b/dist/commonjs/System/Collections/ReadOnlyCollectionBase.js.map index dffaff5a..88752381 100644 --- a/dist/commonjs/System/Collections/ReadOnlyCollectionBase.js.map +++ b/dist/commonjs/System/Collections/ReadOnlyCollectionBase.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/ReadOnlyCollectionBase.js","System/Collections/ReadOnlyCollectionBase.ts"],"names":[],"mappings":";;;;AAIA;;;;;;;;;;ACIA,IAAA,mBAAA,QAA2B,kBAA3B,CAAA;;IAEA;;;;;;;;;;;mCAKmB;AAEjB,mBAAO,KAAK,SAAL,EAAP,CAFiB;;;;wCAKK;AAEtB,mBAAO,IAAP,CAFsB;;;;qCAKA,OAAO;AAE7B,mBAAO,KAAP,CAF6B;;;;wCAKJ,OAAS,KAAW;AAE7C,mBAAO,CAAP,CAF6C;;;;yCAKtB;AAEvB,mBAAO,CAAP,CAFuB;;;;wCAMX;AACZ,mBAAO,KAAK,cAAL,EAAP,CADY;;;;WA/Bd;EACQ,iBAAA,OAAA;;AAoCR,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADpBA,QAAQ,OAAR,GCoBe,sBDpBf","file":"System/Collections/ReadOnlyCollectionBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst CollectionBase_1 = require(\"./CollectionBase\");\nclass ReadOnlyCollectionBase extends CollectionBase_1.default {\n getCount() {\n return this._getCount();\n }\n getIsReadOnly() {\n return true;\n }\n _addInternal(entry) {\n return false;\n }\n _removeInternal(entry, max) {\n return 0;\n }\n _clearInternal() {\n return 0;\n }\n getEnumerator() {\n return this._getEnumerator();\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = ReadOnlyCollectionBase;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n\r\nimport CollectionBase from \"./CollectionBase\";\r\n\r\nabstract class ReadOnlyCollectionBase\r\nextends CollectionBase\r\n{\r\n\r\n\tprotected _getCount:()=>number;\r\n\tprotected getCount():number\r\n\t{\r\n\t\treturn this._getCount();\r\n\t}\r\n\r\n\tprotected getIsReadOnly():boolean\r\n\t{\r\n\t\treturn true;\r\n\t}\r\n\r\n\tprotected _addInternal(entry:T):boolean\r\n\t{\r\n\t\treturn false;\r\n\t}\r\n\r\n\tprotected _removeInternal(entry:T, max?:number):number\r\n\t{\r\n\t\treturn 0;\r\n\t}\r\n\r\n\tprotected _clearInternal():number\r\n\t{\r\n\t\treturn 0;\r\n\t}\r\n\r\n\tprotected _getEnumerator:()=>IEnumerator;\r\n\tgetEnumerator():IEnumerator {\r\n\t\treturn this._getEnumerator();\r\n\t}\r\n\r\n}\r\n\r\nexport default ReadOnlyCollectionBase;"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/ReadOnlyCollectionBase.js","System/Collections/ReadOnlyCollectionBase.ts"],"names":[],"mappings":";;;;AAIA;;;;;;;;;;ACCA,IAAA,mBAAA,QAA6B,kBAA7B,CAAA;;IAGA;;;;;;;;;;;mCAMmB;AAEjB,mBAAO,KAAK,SAAL,EAAP,CAFiB;;;;wCAKK;AAEtB,mBAAO,IAAP,CAFsB;;;;qCAKA,OAAO;AAE7B,mBAAO,KAAP,CAF6B;;;;wCAKJ,OAAS,KAAW;AAE7C,mBAAO,CAAP,CAF6C;;;;yCAKtB;AAEvB,mBAAO,CAAP,CAFuB;;;;wCAOX;AAEZ,mBAAO,KAAK,cAAL,EAAP,CAFY;;;;WAjCd;EACQ,iBAAA,cAAA;;AADc,QAAA,sBAAA,GAAsB,sBAAtB;AAwCtB,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADpBA,QAAQ,OAAR,GCoBe,sBDpBf","file":"System/Collections/ReadOnlyCollectionBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst CollectionBase_1 = require(\"./CollectionBase\");\nclass ReadOnlyCollectionBase extends CollectionBase_1.CollectionBase {\n getCount() {\n return this._getCount();\n }\n getIsReadOnly() {\n return true;\n }\n _addInternal(entry) {\n return false;\n }\n _removeInternal(entry, max) {\n return 0;\n }\n _clearInternal() {\n return 0;\n }\n getEnumerator() {\n return this._getEnumerator();\n }\n}\nexports.ReadOnlyCollectionBase = ReadOnlyCollectionBase;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = ReadOnlyCollectionBase;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {CollectionBase} from \"./CollectionBase\";\r\nimport {IEnumerator} from \"./Enumeration/IEnumerator\";\r\n\r\nexport abstract class ReadOnlyCollectionBase\r\nextends CollectionBase\r\n{\r\n\r\n\tprotected _getCount:()=>number;\r\n\r\n\tprotected getCount():number\r\n\t{\r\n\t\treturn this._getCount();\r\n\t}\r\n\r\n\tprotected getIsReadOnly():boolean\r\n\t{\r\n\t\treturn true;\r\n\t}\r\n\r\n\tprotected _addInternal(entry:T):boolean\r\n\t{\r\n\t\treturn false;\r\n\t}\r\n\r\n\tprotected _removeInternal(entry:T, max?:number):number\r\n\t{\r\n\t\treturn 0;\r\n\t}\r\n\r\n\tprotected _clearInternal():number\r\n\t{\r\n\t\treturn 0;\r\n\t}\r\n\r\n\tprotected _getEnumerator:()=>IEnumerator;\r\n\r\n\tgetEnumerator():IEnumerator\r\n\t{\r\n\t\treturn this._getEnumerator();\r\n\t}\r\n\r\n}\r\n\r\nexport default ReadOnlyCollectionBase;"]} \ No newline at end of file diff --git a/dist/commonjs/System/Collections/ReadOnlyCollectionWrapper.d.ts b/dist/commonjs/System/Collections/ReadOnlyCollectionWrapper.d.ts index 4b2dbde9..3bd3b498 100644 --- a/dist/commonjs/System/Collections/ReadOnlyCollectionWrapper.d.ts +++ b/dist/commonjs/System/Collections/ReadOnlyCollectionWrapper.d.ts @@ -2,7 +2,8 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import ReadOnlyCollection from "./ReadOnlyCollectionBase"; -export default class ReadOnlyCollectionWrapper extends ReadOnlyCollection { +import { ReadOnlyCollectionBase } from "./ReadOnlyCollectionBase"; +import { ICollection } from "./ICollection"; +export default class ReadOnlyCollectionWrapper extends ReadOnlyCollectionBase { constructor(c: ICollection); } diff --git a/dist/commonjs/System/Collections/ReadOnlyCollectionWrapper.js b/dist/commonjs/System/Collections/ReadOnlyCollectionWrapper.js index 9e6c677a..e29d6cfa 100644 --- a/dist/commonjs/System/Collections/ReadOnlyCollectionWrapper.js +++ b/dist/commonjs/System/Collections/ReadOnlyCollectionWrapper.js @@ -21,7 +21,7 @@ var ReadOnlyCollectionWrapper = function (_ReadOnlyCollectionBa) { var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(ReadOnlyCollectionWrapper).call(this)); - if (!c) throw new ArgumentNullException_1.default('collection'); + if (!c) throw new ArgumentNullException_1.ArgumentNullException('collection'); var _ = _this; _._getCount = function () { return c.count; @@ -33,7 +33,7 @@ var ReadOnlyCollectionWrapper = function (_ReadOnlyCollectionBa) { } return ReadOnlyCollectionWrapper; -}(ReadOnlyCollectionBase_1.default); +}(ReadOnlyCollectionBase_1.ReadOnlyCollectionBase); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = ReadOnlyCollectionWrapper; diff --git a/dist/commonjs/System/Collections/ReadOnlyCollectionWrapper.js.map b/dist/commonjs/System/Collections/ReadOnlyCollectionWrapper.js.map index 589a8dd1..d3605d4c 100644 --- a/dist/commonjs/System/Collections/ReadOnlyCollectionWrapper.js.map +++ b/dist/commonjs/System/Collections/ReadOnlyCollectionWrapper.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/ReadOnlyCollectionWrapper.js","System/Collections/ReadOnlyCollectionWrapper.ts"],"names":[],"mappings":";;;;AAIA;;;;;;;;ACCA,IAAA,0BAAA,QAAkC,qCAAlC,CAAA;AACA,IAAA,2BAAA,QAA+B,0BAA/B,CAAA;;IAEA;;;AAEC,aAFD,yBAEC,CAAY,CAAZ,EAA4B;8BAF7B,2BAE6B;;2EAF7B,uCAE6B;;AAI3B,YAAG,CAAC,CAAD,EACF,MAAM,IAAI,wBAAA,OAAA,CAAsB,YAA1B,CAAN,CADD;AAGA,YAAI,SAAJ,CAP2B;AAQ3B,UAAE,SAAF,GAAc;mBAAI,EAAE,KAAF;SAAJ,CARa;AAS3B,UAAE,aAAF,GAAkB;mBAAK,EAAE,aAAF;SAAL,CATS;;KAA5B;;WAFD;EAA0D,yBAAA,OAAA;;AAA1D,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADUA,QAAQ,OAAR,GAAkB,yBAAlB","file":"System/Collections/ReadOnlyCollectionWrapper.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst ArgumentNullException_1 = require(\"../Exceptions/ArgumentNullException\");\nconst ReadOnlyCollectionBase_1 = require(\"./ReadOnlyCollectionBase\");\nclass ReadOnlyCollectionWrapper extends ReadOnlyCollectionBase_1.default {\n constructor(c) {\n super();\n if (!c)\n throw new ArgumentNullException_1.default('collection');\n var _ = this;\n _._getCount = () => c.count;\n _.getEnumerator = () => c.getEnumerator();\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = ReadOnlyCollectionWrapper;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport ArgumentNullException from \"../Exceptions/ArgumentNullException\";\r\nimport ReadOnlyCollection from \"./ReadOnlyCollectionBase\";\r\n\r\nexport default class ReadOnlyCollectionWrapper extends ReadOnlyCollection\r\n{\r\n\tconstructor(c:ICollection)\r\n\t{\r\n\t\tsuper();\r\n\r\n\t\tif(!c)\r\n\t\t\tthrow new ArgumentNullException('collection');\r\n\r\n\t\tvar _ = this;\r\n\t\t_._getCount = ()=>c.count;\r\n\t\t_.getEnumerator = ()=> c.getEnumerator();\r\n\t}\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/ReadOnlyCollectionWrapper.js","System/Collections/ReadOnlyCollectionWrapper.ts"],"names":[],"mappings":";;;;AAIA;;;;;;;;ACCA,IAAA,0BAAA,QAAoC,qCAApC,CAAA;AACA,IAAA,2BAAA,QAAqC,0BAArC,CAAA;;IAGA;;;AAEC,aAFD,yBAEC,CAAY,CAAZ,EAA4B;8BAF7B,2BAE6B;;2EAF7B,uCAE6B;;AAI3B,YAAG,CAAC,CAAD,EACF,MAAM,IAAI,wBAAA,qBAAA,CAAsB,YAA1B,CAAN,CADD;AAGA,YAAI,SAAJ,CAP2B;AAQ3B,UAAE,SAAF,GAAc;mBAAI,EAAE,KAAF;SAAJ,CARa;AAS3B,UAAE,aAAF,GAAkB;mBAAK,EAAE,aAAF;SAAL,CATS;;KAA5B;;WAFD;EAA0D,yBAAA,sBAAA;;AAA1D,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADSA,QAAQ,OAAR,GAAkB,yBAAlB","file":"System/Collections/ReadOnlyCollectionWrapper.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst ArgumentNullException_1 = require(\"../Exceptions/ArgumentNullException\");\nconst ReadOnlyCollectionBase_1 = require(\"./ReadOnlyCollectionBase\");\nclass ReadOnlyCollectionWrapper extends ReadOnlyCollectionBase_1.ReadOnlyCollectionBase {\n constructor(c) {\n super();\n if (!c)\n throw new ArgumentNullException_1.ArgumentNullException('collection');\n var _ = this;\n _._getCount = () => c.count;\n _.getEnumerator = () => c.getEnumerator();\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = ReadOnlyCollectionWrapper;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {ArgumentNullException} from \"../Exceptions/ArgumentNullException\";\r\nimport {ReadOnlyCollectionBase} from \"./ReadOnlyCollectionBase\";\r\nimport {ICollection} from \"./ICollection\";\r\n\r\nexport default class ReadOnlyCollectionWrapper extends ReadOnlyCollectionBase\r\n{\r\n\tconstructor(c:ICollection)\r\n\t{\r\n\t\tsuper();\r\n\r\n\t\tif(!c)\r\n\t\t\tthrow new ArgumentNullException('collection');\r\n\r\n\t\tvar _ = this;\r\n\t\t_._getCount = ()=>c.count;\r\n\t\t_.getEnumerator = ()=> c.getEnumerator();\r\n\t}\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/commonjs/System/Collections/Set.d.ts b/dist/commonjs/System/Collections/Set.d.ts index b44c6c2d..9d80d8ae 100644 --- a/dist/commonjs/System/Collections/Set.d.ts +++ b/dist/commonjs/System/Collections/Set.d.ts @@ -1,12 +1,12 @@ -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import SetBase from "./SetBase"; -export default class Set extends SetBase { +import { SetBase } from "./SetBase"; +import { ILinkedNodeWithValue } from "./ILinkedListNode"; +import { Primitive } from "../Primitive"; +import { IEnumerableOrArray } from "./IEnumerableOrArray"; +export declare class Set extends SetBase { protected newUsing(source?: IEnumerableOrArray): Set; private _registry; protected _addInternal(item: T): boolean; @@ -15,3 +15,4 @@ export default class Set extends SetBase { protected _getNode(item: T): ILinkedNodeWithValue; protected _removeInternal(item: T, max?: number): number; } +export default Set; diff --git a/dist/commonjs/System/Collections/Set.js b/dist/commonjs/System/Collections/Set.js index 4371b7b6..00a66dd2 100644 --- a/dist/commonjs/System/Collections/Set.js +++ b/dist/commonjs/System/Collections/Set.js @@ -21,8 +21,8 @@ var ArgumentException_1 = require("../Exceptions/ArgumentException"); var SetBase_1 = require("./SetBase"); var OTHER = 'other'; -var Set = function (_SetBase_1$default) { - _inherits(Set, _SetBase_1$default); +var Set = function (_SetBase_1$SetBase) { + _inherits(Set, _SetBase_1$SetBase); function Set() { _classCallCheck(this, Set); @@ -41,7 +41,7 @@ var Set = function (_SetBase_1$default) { var _ = this; if (!_.contains(item)) { var type = typeof item === "undefined" ? "undefined" : _typeof(item); - if (!Types_1.default.isPrimitive(type)) throw new ArgumentException_1.default("item", "A Set can only index primitives. Complex objects require a HashSet."); + if (!Types_1.Type.isPrimitive(type)) throw new ArgumentException_1.ArgumentException("item", "A Set can only index primitives. Complex objects require a HashSet."); var r = _._registry; var t = r && r[type]; if (!r) _._registry = r = {}; @@ -93,10 +93,9 @@ var Set = function (_SetBase_1$default) { }]); return Set; -}(SetBase_1.default); +}(SetBase_1.SetBase); -Object.defineProperty(exports, "__esModule", { value: true }); -exports.default = Set; +exports.Set = Set; function wipe(map) { var depth = arguments.length <= 1 || arguments[1] === undefined ? 1 : arguments[1]; @@ -129,4 +128,6 @@ function wipe(map) { } } } +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = Set; //# sourceMappingURL=Set.js.map diff --git a/dist/commonjs/System/Collections/Set.js.map b/dist/commonjs/System/Collections/Set.js.map index f1932b51..1610015c 100644 --- a/dist/commonjs/System/Collections/Set.js.map +++ b/dist/commonjs/System/Collections/Set.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Set.js","System/Collections/Set.ts"],"names":[],"mappings":";;;;AAIA;;;;;;;;;;;;;;ACIA,IAAA,UAAA,QAAiB,UAAjB,CAAA;AACA,IAAA,sBAAA,QAA8B,iCAA9B,CAAA;AACA,IAAA,YAAA,QAAoB,WAApB,CAAA;AAEA,IAAM,QAAQ,OAAR;;IAEN;;;;;;;;;;;iCAGoB,QAA6B;AAE/C,mBAAO,IAAI,GAAJ,CAAQ,MAAR,CAAP,CAF+C;;;;qCAOzB,MAAM;AAE5B,gBAAI,IAAI,IAAJ,CAFwB;AAG5B,gBAAG,CAAC,EAAE,QAAF,CAAW,IAAX,CAAD,EACH;AACC,oBAAI,cAAc,kDAAd,CADL;AAEC,oBAAG,CAAC,QAAA,OAAA,CAAK,WAAL,CAAiB,IAAjB,CAAD,EACF,MAAM,IAAI,oBAAA,OAAA,CAAkB,MAAtB,EAA8B,sEAA9B,CAAN,CADD;AAGA,oBAAI,IAAI,EAAE,SAAF,CALT;AAMC,oBAAI,IAAI,KAAK,EAAE,IAAF,CAAL,CANT;AAOC,oBAAG,CAAC,CAAD,EAAI,EAAE,SAAF,GAAc,IAAI,EAAJ,CAArB;AACA,oBAAG,CAAC,CAAD,EAAI,EAAE,IAAF,IAAU,IAAI,EAAJ,CAAjB;AACA,oBAAI,OAA+B,EAAC,OAAO,IAAP,EAAhC,CATL;AAUC,kBAAE,OAAF,GAAY,OAAZ,CAAoB,IAApB,EAVD;AAWC,kBAAO,IAAP,IAAe,IAAf,CAXD;AAYC,uBAAO,IAAP,CAZD;aADA;AAeA,mBAAO,KAAP,CAlB4B;;;;yCAqBL;AAEvB,iBAAK,KAAK,SAAL,EAAgB,CAArB,EAFuB;AAGvB,8CAlCF,kDAkCE,CAHuB;;;;qCAMJ;AAEnB,uCAvCF,8CAuCE,CAFmB;AAGnB,iBAAK,SAAL,GAAiB,IAAjB,CAHmB;;;;iCAMD,MAAM;AAExB,gBAAI,IAAI,KAAK,SAAL;gBAAgB,IAAI,KAAK,SAAS,kDAAT,CAAL,CAFJ;AAIxB,mBAAO,KAAK,EAAO,IAAP,CAAL,CAJiB;;;;wCAOC,MAA6B;gBAArB,4DAAa,wBAAQ;;AAEtD,gBAAG,QAAM,CAAN,EAAS,OAAO,CAAP,CAAZ;AAEA,gBAAI,IAAO,KAAK,SAAL;gBACP,IAAO,KAAK,SAAS,kDAAT,CAAL;gBACP,OAAO,KAAK,EAAO,IAAP,CAAL,CAN2C;AAQtD,gBAAG,IAAH,EACA;AACC,uBAAO,EAAO,IAAP,CAAP,CADD;AAEC,oBAAI,IAAI,KAAK,IAAL,CAFT;AAGC,oBAAG,KAAK,EAAE,UAAF,CAAa,IAAb,CAAL,EACH;AACC,2BAAO,CAAP,CADD;iBADA;aAJD;AAUA,mBAAO,CAAP,CAlBsD;;;;WAlDxD;EACQ,UAAA,OAAA;;AADR,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;AD6CA,QAAQ,OAAR,GAAkB,GAAlB;AC4BA,SAAA,IAAA,CAAc,GAAd,EAA6C;QAAhB,8DAAe,iBAAC;;AAE5C,QAAG,OAAO,KAAP,EACH;;;;;;AACC,iCAAe,OAAO,IAAP,CAAY,GAAZ,2BAAf,oGACA;oBADQ,kBACR;;AACC,oBAAI,IAAI,IAAI,GAAJ,CAAJ,CADL;AAEC,uBAAO,IAAI,GAAJ,CAAP,CAFD;AAGC,qBAAK,CAAL,EAAQ,QAAQ,CAAR,CAAR,CAHD;aADA;;;;;;;;;;;;;;SADD;KADA;CAFD","file":"System/Collections/Set.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst Types_1 = require(\"../Types\");\nconst ArgumentException_1 = require(\"../Exceptions/ArgumentException\");\nconst SetBase_1 = require(\"./SetBase\");\nconst OTHER = 'other';\nclass Set extends SetBase_1.default {\n newUsing(source) {\n return new Set(source);\n }\n _addInternal(item) {\n var _ = this;\n if (!_.contains(item)) {\n var type = typeof item;\n if (!Types_1.default.isPrimitive(type))\n throw new ArgumentException_1.default(\"item\", \"A Set can only index primitives. Complex objects require a HashSet.\");\n var r = _._registry;\n var t = r && r[type];\n if (!r)\n _._registry = r = {};\n if (!t)\n r[type] = t = {};\n var node = { value: item };\n _._getSet().addNode(node);\n t[item] = node;\n return true;\n }\n return false;\n }\n _clearInternal() {\n wipe(this._registry, 2);\n return super._clearInternal();\n }\n _onDispose() {\n super._onDispose();\n this._registry = null;\n }\n _getNode(item) {\n var r = this._registry, t = r && r[typeof item];\n return t && t[item];\n }\n _removeInternal(item, max = Infinity) {\n if (max === 0)\n return 0;\n var r = this._registry, t = r && r[typeof item], node = t && t[item];\n if (node) {\n delete t[item];\n var s = this._set;\n if (s && s.removeNode(node)) {\n return 1;\n }\n }\n return 0;\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Set;\nfunction wipe(map, depth = 1) {\n if (map && depth) {\n for (var key of Object.keys(map)) {\n var v = map[key];\n delete map[key];\n wipe(v, depth - 1);\n }\n }\n}\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\nimport Type from \"../Types\";\r\nimport ArgumentException from \"../Exceptions/ArgumentException\";\r\nimport SetBase from \"./SetBase\";\r\n\r\nconst OTHER = 'other';\r\n\r\nexport default class Set\r\nextends SetBase\r\n{\r\n\tprotected newUsing(source?:IEnumerableOrArray):Set\r\n\t{\r\n\t\treturn new Set(source);\r\n\t}\r\n\r\n\tprivate _registry:IMap>>;\r\n\r\n\tprotected _addInternal(item:T):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(!_.contains(item))\r\n\t\t{\r\n\t\t\tvar type = typeof item;\r\n\t\t\tif(!Type.isPrimitive(type))\r\n\t\t\t\tthrow new ArgumentException(\"item\", \"A Set can only index primitives. Complex objects require a HashSet.\");\r\n\r\n\t\t\tvar r = _._registry;\r\n\t\t\tvar t = r && r[type];\r\n\t\t\tif(!r) _._registry = r = {};\r\n\t\t\tif(!t) r[type] = t = {};\r\n\t\t\tvar node:ILinkedNodeWithValue = {value: item};\r\n\t\t\t_._getSet().addNode(node);\r\n\t\t\tt[item] = node;\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tprotected _clearInternal():number\r\n\t{\r\n\t\twipe(this._registry, 2);\r\n\t\treturn super._clearInternal();\r\n\t}\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis._registry = null;\r\n\t}\r\n\r\n\tprotected _getNode(item:T):ILinkedNodeWithValue\r\n\t{\r\n\t\tvar r = this._registry, t = r && r[typeof item];\r\n\r\n\t\treturn t && t[item];\r\n\t}\r\n\r\n\tprotected _removeInternal(item:T, max:number = Infinity):number\r\n\t{\r\n\t\tif(max===0) return 0;\r\n\r\n\t\tvar r = this._registry,\r\n\t\t t = r && r[typeof item],\r\n\t\t node = t && t[item];\r\n\r\n\t\tif(node)\r\n\t\t{\r\n\t\t\tdelete t[item];\r\n\t\t\tvar s = this._set;\r\n\t\t\tif(s && s.removeNode(node))\r\n\t\t\t{\r\n\t\t\t\treturn 1;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn 0;\r\n\t}\r\n\t\r\n}\r\n\r\nfunction wipe(map:IMap, depth:number = 1):void\r\n{\r\n\tif(map && depth)\r\n\t{\r\n\t\tfor(var key of Object.keys(map))\r\n\t\t{\r\n\t\t\tvar v = map[key];\r\n\t\t\tdelete map[key];\r\n\t\t\twipe(v, depth - 1);\r\n\t\t}\r\n\t}\r\n}"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Set.js","System/Collections/Set.ts"],"names":[],"mappings":";;;;AAIA;;;;;;;;;;;;;;ACEA,IAAA,UAAA,QAAmB,UAAnB,CAAA;AACA,IAAA,sBAAA,QAAgC,iCAAhC,CAAA;AACA,IAAA,YAAA,QAAsB,WAAtB,CAAA;AAMA,IAAM,QAAQ,OAAR;;IAEN;;;;;;;;;;;iCAGoB,QAA6B;AAE/C,mBAAO,IAAI,GAAJ,CAAW,MAAX,CAAP,CAF+C;;;;qCAOzB,MAAM;AAE5B,gBAAI,IAAI,IAAJ,CAFwB;AAG5B,gBAAG,CAAC,EAAE,QAAF,CAAW,IAAX,CAAD,EACH;AACC,oBAAI,cAAc,kDAAd,CADL;AAEC,oBAAG,CAAC,QAAA,IAAA,CAAK,WAAL,CAAiB,IAAjB,CAAD,EACF,MAAM,IAAI,oBAAA,iBAAA,CAAkB,MAAtB,EAA8B,sEAA9B,CAAN,CADD;AAGA,oBAAI,IAAI,EAAE,SAAF,CALT;AAMC,oBAAI,IAAI,KAAK,EAAE,IAAF,CAAL,CANT;AAOC,oBAAG,CAAC,CAAD,EAAI,EAAE,SAAF,GAAc,IAAI,EAAJ,CAArB;AACA,oBAAG,CAAC,CAAD,EAAI,EAAE,IAAF,IAAU,IAAI,EAAJ,CAAjB;AACA,oBAAI,OAA+B,EAAC,OAAO,IAAP,EAAhC,CATL;AAUC,kBAAE,OAAF,GAAY,OAAZ,CAAoB,IAApB,EAVD;AAWC,kBAAO,IAAP,IAAe,IAAf,CAXD;AAYC,uBAAO,IAAP,CAZD;aADA;AAeA,mBAAO,KAAP,CAlB4B;;;;yCAqBL;AAEvB,iBAAK,KAAK,SAAL,EAAgB,CAArB,EAFuB;AAGvB,8CAlCF,kDAkCE,CAHuB;;;;qCAMJ;AAEnB,uCAvCF,8CAuCE,CAFmB;AAGnB,iBAAK,SAAL,GAAiB,IAAjB,CAHmB;;;;iCAMD,MAAM;AAExB,gBAAI,IAAI,KAAK,SAAL;gBAAgB,IAAI,KAAK,SAAS,kDAAT,CAAL,CAFJ;AAIxB,mBAAO,KAAK,EAAO,IAAP,CAAL,CAJiB;;;;wCAOC,MAA6B;gBAArB,4DAAa,wBAAQ;;AAEtD,gBAAG,QAAM,CAAN,EAAS,OAAO,CAAP,CAAZ;AAEA,gBAAI,IAAO,KAAK,SAAL;gBACP,IAAO,KAAK,SAAS,kDAAT,CAAL;gBACP,OAAO,KAAK,EAAO,IAAP,CAAL,CAN2C;AAQtD,gBAAG,IAAH,EACA;AACC,uBAAO,EAAO,IAAP,CAAP,CADD;AAEC,oBAAI,IAAI,KAAK,IAAL,CAFT;AAGC,oBAAG,KAAK,EAAE,UAAF,CAAa,IAAb,CAAL,EACH;AACC,2BAAO,CAAP,CADD;iBADA;aAJD;AAUA,mBAAO,CAAP,CAlBsD;;;;WAlDxD;EACQ,UAAA,OAAA;;AADK,QAAA,GAAA,GAAG,GAAH;AAyEb,SAAA,IAAA,CAAc,GAAd,EAA6C;QAAhB,8DAAe,iBAAC;;AAE5C,QAAG,OAAO,KAAP,EACH;;;;;;AACC,iCAAe,OAAO,IAAP,CAAY,GAAZ,2BAAf,oGACA;oBADQ,kBACR;;AACC,oBAAI,IAAI,IAAI,GAAJ,CAAJ,CADL;AAEC,uBAAO,IAAI,GAAJ,CAAP,CAFD;AAGC,qBAAK,CAAL,EAAQ,QAAQ,CAAR,CAAR,CAHD;aADA;;;;;;;;;;;;;;SADD;KADA;CAFD;AAaA,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADjCA,QAAQ,OAAR,GCiCe,GDjCf","file":"System/Collections/Set.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst Types_1 = require(\"../Types\");\nconst ArgumentException_1 = require(\"../Exceptions/ArgumentException\");\nconst SetBase_1 = require(\"./SetBase\");\nconst OTHER = 'other';\nclass Set extends SetBase_1.SetBase {\n newUsing(source) {\n return new Set(source);\n }\n _addInternal(item) {\n var _ = this;\n if (!_.contains(item)) {\n var type = typeof item;\n if (!Types_1.Type.isPrimitive(type))\n throw new ArgumentException_1.ArgumentException(\"item\", \"A Set can only index primitives. Complex objects require a HashSet.\");\n var r = _._registry;\n var t = r && r[type];\n if (!r)\n _._registry = r = {};\n if (!t)\n r[type] = t = {};\n var node = { value: item };\n _._getSet().addNode(node);\n t[item] = node;\n return true;\n }\n return false;\n }\n _clearInternal() {\n wipe(this._registry, 2);\n return super._clearInternal();\n }\n _onDispose() {\n super._onDispose();\n this._registry = null;\n }\n _getNode(item) {\n var r = this._registry, t = r && r[typeof item];\n return t && t[item];\n }\n _removeInternal(item, max = Infinity) {\n if (max === 0)\n return 0;\n var r = this._registry, t = r && r[typeof item], node = t && t[item];\n if (node) {\n delete t[item];\n var s = this._set;\n if (s && s.removeNode(node)) {\n return 1;\n }\n }\n return 0;\n }\n}\nexports.Set = Set;\nfunction wipe(map, depth = 1) {\n if (map && depth) {\n for (var key of Object.keys(map)) {\n var v = map[key];\n delete map[key];\n wipe(v, depth - 1);\n }\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Set;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {Type} from \"../Types\";\r\nimport {ArgumentException} from \"../Exceptions/ArgumentException\";\r\nimport {SetBase} from \"./SetBase\";\r\nimport {IMap} from \"./Dictionaries/IDictionary\";\r\nimport {ILinkedNodeWithValue} from \"./ILinkedListNode\";\r\nimport {Primitive} from \"../Primitive\";\r\nimport {IEnumerableOrArray} from \"./IEnumerableOrArray\";\r\n\r\nconst OTHER = 'other';\r\n\r\nexport class Set\r\nextends SetBase\r\n{\r\n\tprotected newUsing(source?:IEnumerableOrArray):Set\r\n\t{\r\n\t\treturn new Set(source);\r\n\t}\r\n\r\n\tprivate _registry:IMap>>;\r\n\r\n\tprotected _addInternal(item:T):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(!_.contains(item))\r\n\t\t{\r\n\t\t\tvar type = typeof item;\r\n\t\t\tif(!Type.isPrimitive(type))\r\n\t\t\t\tthrow new ArgumentException(\"item\", \"A Set can only index primitives. Complex objects require a HashSet.\");\r\n\r\n\t\t\tvar r = _._registry;\r\n\t\t\tvar t = r && r[type];\r\n\t\t\tif(!r) _._registry = r = {};\r\n\t\t\tif(!t) r[type] = t = {};\r\n\t\t\tvar node:ILinkedNodeWithValue = {value: item};\r\n\t\t\t_._getSet().addNode(node);\r\n\t\t\tt[item] = node;\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tprotected _clearInternal():number\r\n\t{\r\n\t\twipe(this._registry, 2);\r\n\t\treturn super._clearInternal();\r\n\t}\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis._registry = null;\r\n\t}\r\n\r\n\tprotected _getNode(item:T):ILinkedNodeWithValue\r\n\t{\r\n\t\tvar r = this._registry, t = r && r[typeof item];\r\n\r\n\t\treturn t && t[item];\r\n\t}\r\n\r\n\tprotected _removeInternal(item:T, max:number = Infinity):number\r\n\t{\r\n\t\tif(max===0) return 0;\r\n\r\n\t\tvar r = this._registry,\r\n\t\t t = r && r[typeof item],\r\n\t\t node = t && t[item];\r\n\r\n\t\tif(node)\r\n\t\t{\r\n\t\t\tdelete t[item];\r\n\t\t\tvar s = this._set;\r\n\t\t\tif(s && s.removeNode(node))\r\n\t\t\t{\r\n\t\t\t\treturn 1;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn 0;\r\n\t}\r\n\r\n}\r\n\r\nfunction wipe(map:IMap, depth:number = 1):void\r\n{\r\n\tif(map && depth)\r\n\t{\r\n\t\tfor(var key of Object.keys(map))\r\n\t\t{\r\n\t\t\tvar v = map[key];\r\n\t\t\tdelete map[key];\r\n\t\t\twipe(v, depth - 1);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default Set;"]} \ No newline at end of file diff --git a/dist/commonjs/System/Collections/SetBase.d.ts b/dist/commonjs/System/Collections/SetBase.d.ts index 1b129395..efd9f1c3 100644 --- a/dist/commonjs/System/Collections/SetBase.d.ts +++ b/dist/commonjs/System/Collections/SetBase.d.ts @@ -1,13 +1,16 @@ -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import LinkedNodeList from "./LinkedNodeList"; -import CollectionBase from "./CollectionBase"; -declare abstract class SetBase extends CollectionBase implements ISet, IDisposable { +import { LinkedNodeList } from "./LinkedNodeList"; +import { CollectionBase } from "./CollectionBase"; +import { IDisposable } from "../Disposable/IDisposable"; +import { ILinkedNodeWithValue } from "./ILinkedListNode"; +import { Predicate, Action } from "../FunctionTypes"; +import { IEnumerator } from "./Enumeration/IEnumerator"; +import { IEnumerableOrArray } from "./IEnumerableOrArray"; +import { ISet } from "./ISet"; +export declare abstract class SetBase extends CollectionBase implements ISet, IDisposable { constructor(source?: IEnumerableOrArray); protected abstract newUsing(source?: IEnumerableOrArray): SetBase; protected _set: LinkedNodeList>; diff --git a/dist/commonjs/System/Collections/SetBase.js b/dist/commonjs/System/Collections/SetBase.js index 6c268c15..20e685c6 100644 --- a/dist/commonjs/System/Collections/SetBase.js +++ b/dist/commonjs/System/Collections/SetBase.js @@ -22,8 +22,8 @@ var Compare_1 = require("../Compare"); var CollectionBase_1 = require("./CollectionBase"); var OTHER = 'other'; -var SetBase = function (_CollectionBase_1$def) { - _inherits(SetBase, _CollectionBase_1$def); +var SetBase = function (_CollectionBase_1$Col) { + _inherits(SetBase, _CollectionBase_1$Col); function SetBase(source) { _classCallCheck(this, SetBase); @@ -38,7 +38,7 @@ var SetBase = function (_CollectionBase_1$def) { key: "_getSet", value: function _getSet() { var s = this._set; - if (!s) this._set = s = new LinkedNodeList_1.default(); + if (!s) this._set = s = new LinkedNodeList_1.LinkedNodeList(); return s; } }, { @@ -50,7 +50,7 @@ var SetBase = function (_CollectionBase_1$def) { key: "exceptWith", value: function exceptWith(other) { var _ = this; - if (!other) throw new ArgumentNullException_1.default(OTHER); + if (!other) throw new ArgumentNullException_1.ArgumentNullException(OTHER); Enumerator_1.forEach(other, function (v) { if (_._removeInternal(v)) _._incrementModified(); }); @@ -59,7 +59,7 @@ var SetBase = function (_CollectionBase_1$def) { }, { key: "intersectWith", value: function intersectWith(other) { - if (!other) throw new ArgumentNullException_1.default(OTHER); + if (!other) throw new ArgumentNullException_1.ArgumentNullException(OTHER); var _ = this; if (other instanceof SetBase) { var s = _._set; @@ -78,7 +78,7 @@ var SetBase = function (_CollectionBase_1$def) { value: function isProperSubsetOf(other) { var _this2 = this; - if (!other) throw new ArgumentNullException_1.default(OTHER); + if (!other) throw new ArgumentNullException_1.ArgumentNullException(OTHER); return other instanceof SetBase ? other.isProperSupersetOf(this) : dispose_1.using(this.newUsing(other), function (o) { return o.isProperSupersetOf(_this2); }); @@ -88,7 +88,7 @@ var SetBase = function (_CollectionBase_1$def) { value: function isProperSupersetOf(other) { var _this3 = this; - if (!other) throw new ArgumentNullException_1.default(OTHER); + if (!other) throw new ArgumentNullException_1.ArgumentNullException(OTHER); var result = true, count; if (other instanceof SetBase) { @@ -110,7 +110,7 @@ var SetBase = function (_CollectionBase_1$def) { value: function isSubsetOf(other) { var _this4 = this; - if (!other) throw new ArgumentNullException_1.default(OTHER); + if (!other) throw new ArgumentNullException_1.ArgumentNullException(OTHER); return other instanceof SetBase ? other.isSupersetOf(this) : dispose_1.using(this.newUsing(other), function (o) { return o.isSupersetOf(_this4); }); @@ -120,7 +120,7 @@ var SetBase = function (_CollectionBase_1$def) { value: function isSupersetOf(other) { var _this5 = this; - if (!other) throw new ArgumentNullException_1.default(OTHER); + if (!other) throw new ArgumentNullException_1.ArgumentNullException(OTHER); var result = true; Enumerator_1.forEach(other, function (v) { return result = _this5.contains(v); @@ -132,7 +132,7 @@ var SetBase = function (_CollectionBase_1$def) { value: function overlaps(other) { var _this6 = this; - if (!other) throw new ArgumentNullException_1.default(OTHER); + if (!other) throw new ArgumentNullException_1.ArgumentNullException(OTHER); var result = false; Enumerator_1.forEach(other, function (v) { return !(result = _this6.contains(v)); @@ -142,7 +142,7 @@ var SetBase = function (_CollectionBase_1$def) { }, { key: "setEquals", value: function setEquals(other) { - if (!other) throw new ArgumentNullException_1.default(OTHER); + if (!other) throw new ArgumentNullException_1.ArgumentNullException(OTHER); return this.getCount() == (other instanceof SetBase ? other.getCount() : dispose_1.using(this.newUsing(other), function (o) { return o.getCount(); })) && this.isSubsetOf(other); @@ -150,7 +150,7 @@ var SetBase = function (_CollectionBase_1$def) { }, { key: "symmetricExceptWith", value: function symmetricExceptWith(other) { - if (!other) throw new ArgumentNullException_1.default(OTHER); + if (!other) throw new ArgumentNullException_1.ArgumentNullException(OTHER); var _ = this; if (other instanceof SetBase) { Enumerator_1.forEach(other, function (v) { @@ -193,7 +193,7 @@ var SetBase = function (_CollectionBase_1$def) { key: "getEnumerator", value: function getEnumerator() { var s = this._set; - return s && this.getCount() ? LinkedNodeList_1.default.valueEnumeratorFrom(s) : Enumerator_1.empty; + return s && this.getCount() ? LinkedNodeList_1.LinkedNodeList.valueEnumeratorFrom(s) : Enumerator_1.empty; } }, { key: "forEach", @@ -225,8 +225,9 @@ var SetBase = function (_CollectionBase_1$def) { }]); return SetBase; -}(CollectionBase_1.default); +}(CollectionBase_1.CollectionBase); +exports.SetBase = SetBase; function wipe(map) { var depth = arguments.length <= 1 || arguments[1] === undefined ? 1 : arguments[1]; diff --git a/dist/commonjs/System/Collections/SetBase.js.map b/dist/commonjs/System/Collections/SetBase.js.map index cecd913b..7b10ece2 100644 --- a/dist/commonjs/System/Collections/SetBase.js.map +++ b/dist/commonjs/System/Collections/SetBase.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/SetBase.js","System/Collections/SetBase.ts"],"names":[],"mappings":"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","file":"System/Collections/SetBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst LinkedNodeList_1 = require(\"./LinkedNodeList\");\nconst ArgumentNullException_1 = require(\"../Exceptions/ArgumentNullException\");\nconst Enumerator_1 = require(\"./Enumeration/Enumerator\");\nconst dispose_1 = require(\"../Disposable/dispose\");\nconst Compare_1 = require(\"../Compare\");\nconst CollectionBase_1 = require(\"./CollectionBase\");\nconst OTHER = 'other';\nclass SetBase extends CollectionBase_1.default {\n constructor(source) {\n super(null, Compare_1.areEqual);\n this._importEntries(source);\n }\n _getSet() {\n var s = this._set;\n if (!s)\n this._set = s = new LinkedNodeList_1.default();\n return s;\n }\n getCount() {\n return this._set ? this._set.unsafeCount : 0;\n }\n exceptWith(other) {\n var _ = this;\n if (!other)\n throw new ArgumentNullException_1.default(OTHER);\n Enumerator_1.forEach(other, v => {\n if (_._removeInternal(v))\n _._incrementModified();\n });\n _._signalModification();\n }\n intersectWith(other) {\n if (!other)\n throw new ArgumentNullException_1.default(OTHER);\n var _ = this;\n if (other instanceof SetBase) {\n let s = _._set;\n if (s)\n s.forEach(n => {\n if (!other.contains(n.value) && _._removeInternal(n.value))\n _._incrementModified();\n });\n _._signalModification();\n }\n else {\n dispose_1.using(_.newUsing(other), o => _.intersectWith(o));\n }\n }\n isProperSubsetOf(other) {\n if (!other)\n throw new ArgumentNullException_1.default(OTHER);\n return other instanceof SetBase\n ? other.isProperSupersetOf(this)\n : dispose_1.using(this.newUsing(other), o => o.isProperSupersetOf(this));\n }\n isProperSupersetOf(other) {\n if (!other)\n throw new ArgumentNullException_1.default(OTHER);\n var result = true, count;\n if (other instanceof SetBase) {\n result = this.isSupersetOf(other);\n count = other.getCount();\n }\n else {\n dispose_1.using(this.newUsing(), o => {\n Enumerator_1.forEach(other, v => {\n o.add(v);\n return result = this.contains(v);\n });\n count = o.getCount();\n });\n }\n return result && this.getCount() > count;\n }\n isSubsetOf(other) {\n if (!other)\n throw new ArgumentNullException_1.default(OTHER);\n return other instanceof SetBase\n ? other.isSupersetOf(this)\n : dispose_1.using(this.newUsing(other), o => o.isSupersetOf(this));\n }\n isSupersetOf(other) {\n if (!other)\n throw new ArgumentNullException_1.default(OTHER);\n var result = true;\n Enumerator_1.forEach(other, v => {\n return result = this.contains(v);\n });\n return result;\n }\n overlaps(other) {\n if (!other)\n throw new ArgumentNullException_1.default(OTHER);\n var result = false;\n Enumerator_1.forEach(other, v => !(result = this.contains(v)));\n return result;\n }\n setEquals(other) {\n if (!other)\n throw new ArgumentNullException_1.default(OTHER);\n return this.getCount() == (other instanceof SetBase\n ? other.getCount()\n : dispose_1.using(this.newUsing(other), o => o.getCount()))\n && this.isSubsetOf(other);\n }\n symmetricExceptWith(other) {\n if (!other)\n throw new ArgumentNullException_1.default(OTHER);\n var _ = this;\n if (other instanceof SetBase) {\n Enumerator_1.forEach(other, v => {\n if (_.contains(v)) {\n if (_._removeInternal(v))\n _._incrementModified();\n }\n else {\n if (_._addInternal(v))\n _._incrementModified();\n }\n });\n _._signalModification();\n }\n else {\n dispose_1.using(this.newUsing(other), o => _.symmetricExceptWith(o));\n }\n }\n unionWith(other) {\n this.importEntries(other);\n }\n _clearInternal() {\n var s = this._set;\n return s ? s.clear() : 0;\n }\n _onDispose() {\n super._onDispose();\n this._set = null;\n }\n contains(item) {\n return !(!this.getCount() || !this._getNode(item));\n }\n getEnumerator() {\n var s = this._set;\n return s && this.getCount()\n ? LinkedNodeList_1.default.valueEnumeratorFrom(s)\n : Enumerator_1.empty;\n }\n forEach(action, useCopy = false) {\n if (useCopy)\n super.forEach(action, useCopy);\n else\n this._set.forEach((node, i) => action(node.value, i));\n }\n _removeNode(node) {\n if (!node)\n return false;\n return this.remove(node.value) != 0;\n }\n removeFirst() {\n var s = this._set;\n return this._removeNode(s && s.first);\n }\n removeLast() {\n var s = this._set;\n return this._removeNode(s && s.last);\n }\n}\nfunction wipe(map, depth = 1) {\n if (map && depth) {\n for (var key of Object.keys(map)) {\n var v = map[key];\n delete map[key];\n wipe(v, depth - 1);\n }\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = SetBase;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\nimport LinkedNodeList from \"./LinkedNodeList\";\r\nimport ArgumentNullException from \"../Exceptions/ArgumentNullException\";\r\nimport {forEach, empty as emptyEnumerator} from \"./Enumeration/Enumerator\";\r\nimport {using} from \"../Disposable/dispose\";\r\nimport {areEqual} from \"../Compare\";\r\nimport CollectionBase from \"./CollectionBase\";\r\n\r\nconst OTHER = 'other';\r\n\r\nabstract class SetBase\r\nextends CollectionBase implements ISet, IDisposable\r\n{\r\n\r\n\tconstructor(source?:IEnumerableOrArray)\r\n\t{\r\n\t\tsuper(null, areEqual);\r\n\t\tthis._importEntries(source);\r\n\t}\r\n\r\n\tprotected abstract newUsing(source?:IEnumerableOrArray):SetBase;\r\n\r\n\tprotected _set:LinkedNodeList>;\r\n\r\n\tprotected _getSet():LinkedNodeList>\r\n\t{\r\n\t\tvar s = this._set;\r\n\t\tif(!s) this._set = s = new LinkedNodeList>();\r\n\t\treturn s;\r\n\t}\r\n\r\n\tprotected getCount():number\r\n\t{\r\n\t\treturn this._set ? this._set.unsafeCount : 0;\r\n\t}\r\n\r\n\texceptWith(other:IEnumerableOrArray):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\tforEach(other, v=>\r\n\t\t{\r\n\t\t\tif(_._removeInternal(v))\r\n\t\t\t\t_._incrementModified();\r\n\t\t});\r\n\r\n\t\t_._signalModification();\r\n\t}\r\n\r\n\tintersectWith(other:IEnumerableOrArray):void\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\tvar _ = this;\r\n\t\tif(other instanceof SetBase)\r\n\t\t{\r\n\t\t\tlet s = _._set;\r\n\t\t\tif(s) s.forEach(n=>\r\n\t\t\t{\r\n\t\t\t\tif(!other.contains(n.value) && _._removeInternal(n.value))\r\n\t\t\t\t\t_._incrementModified();\r\n\t\t\t});\r\n\r\n\t\t\t_._signalModification();\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tusing(_.newUsing(other), o=>_.intersectWith(o));\r\n\t\t}\r\n\t}\r\n\r\n\tisProperSubsetOf(other:IEnumerableOrArray):boolean\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\treturn other instanceof SetBase\r\n\t\t\t? other.isProperSupersetOf(this)\r\n\t\t\t: using(this.newUsing(other), o=> o.isProperSupersetOf(this));\r\n\t}\r\n\r\n\tisProperSupersetOf(other:IEnumerableOrArray):boolean\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\tvar result = true, count:number;\r\n\t\tif(other instanceof SetBase)\r\n\t\t{\r\n\t\t\tresult = this.isSupersetOf(other);\r\n\t\t\tcount = other.getCount();\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tusing(this.newUsing(), o=>\r\n\t\t\t{\r\n\t\t\t\tforEach(other, v=>\r\n\t\t\t\t{\r\n\t\t\t\t\to.add(v); // We have to add to another set in order to filter out duplicates.\r\n\t\t\t\t\treturn result = this.contains(v);\r\n\t\t\t\t});\r\n\t\t\t\tcount = o.getCount();\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn result && this.getCount()>count;\r\n\t}\r\n\r\n\tisSubsetOf(other:IEnumerableOrArray):boolean\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\treturn other instanceof SetBase\r\n\t\t\t? other.isSupersetOf(this)\r\n\t\t\t: using(this.newUsing(other), o=> o.isSupersetOf(this));\r\n\t}\r\n\r\n\tisSupersetOf(other:IEnumerableOrArray):boolean\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\tvar result = true;\r\n\t\tforEach(other, v=>\r\n\t\t{\r\n\t\t\treturn result = this.contains(v);\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\r\n\toverlaps(other:IEnumerableOrArray):boolean\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\tvar result = false;\r\n\t\tforEach(other, v => !(result = this.contains(v)));\r\n\t\treturn result;\r\n\t}\r\n\r\n\tsetEquals(other:IEnumerableOrArray):boolean\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\treturn this.getCount()==(\r\n\t\t\t\tother instanceof SetBase\r\n\t\t\t\t\t? other.getCount()\r\n\t\t\t\t\t: using(this.newUsing(other), o=> o.getCount()))\r\n\t\t\t&& this.isSubsetOf(other);\r\n\t}\r\n\r\n\tsymmetricExceptWith(other:IEnumerableOrArray):void\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\tvar _ = this;\r\n\t\tif(other instanceof SetBase)\r\n\t\t{\r\n\t\t\tforEach(other, v=>\r\n\t\t\t{\r\n\t\t\t\tif(_.contains(v))\r\n\t\t\t\t{\r\n\t\t\t\t\tif(_._removeInternal(v))\r\n\t\t\t\t\t\t_._incrementModified();\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tif(_._addInternal(v))\r\n\t\t\t\t\t\t_._incrementModified();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t_._signalModification();\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tusing(this.newUsing(other), o=>_.symmetricExceptWith(o));\r\n\t\t}\r\n\t}\r\n\r\n\tunionWith(other:IEnumerableOrArray):void\r\n\t{\r\n\t\tthis.importEntries(other);\r\n\t}\r\n\r\n\r\n\tprotected _clearInternal():number\r\n\t{\r\n\t\tvar s = this._set;\r\n\t\treturn s ? s.clear() : 0;\r\n\t}\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis._set = null;\r\n\t}\r\n\r\n\tprotected abstract _getNode(item:T):ILinkedNodeWithValue;\r\n\r\n\tcontains(item:T):boolean\r\n\t{\r\n\t\treturn !(!this.getCount() || !this._getNode(item));\r\n\t}\r\n\r\n\tgetEnumerator():IEnumerator\r\n\t{\r\n\t\tvar s = this._set;\r\n\t\treturn s && this.getCount()\r\n\t\t\t? LinkedNodeList.valueEnumeratorFrom(s)\r\n\t\t\t: emptyEnumerator;\r\n\t}\r\n\r\n\tforEach(\r\n\t\taction:Predicate | Action,\r\n\t\tuseCopy:boolean = false):void\r\n\t{\r\n\t\tif(useCopy) super.forEach(action, useCopy);\r\n\t\telse this._set.forEach((node, i)=>action(node.value, i));\r\n\t}\r\n\r\n\tprotected _removeNode(node:ILinkedNodeWithValue):boolean\r\n\t{\r\n\t\tif(!node) return false;\r\n\t\treturn this.remove(node.value)!=0;\r\n\t}\r\n\r\n\tremoveFirst():boolean\r\n\t{\r\n\t\tvar s = this._set;\r\n\t\treturn this._removeNode(s && s.first);\r\n\t}\r\n\r\n\tremoveLast():boolean\r\n\t{\r\n\t\tvar s = this._set;\r\n\t\treturn this._removeNode(s && s.last);\r\n\t}\r\n\r\n\r\n}\r\n\r\nfunction wipe(map:IMap, depth:number = 1):void\r\n{\r\n\tif(map && depth)\r\n\t{\r\n\t\tfor(var key of Object.keys(map))\r\n\t\t{\r\n\t\t\tvar v = map[key];\r\n\t\t\tdelete map[key];\r\n\t\t\twipe(v, depth - 1);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default SetBase;"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/SetBase.js","System/Collections/SetBase.ts"],"names":[],"mappings":"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","file":"System/Collections/SetBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst LinkedNodeList_1 = require(\"./LinkedNodeList\");\nconst ArgumentNullException_1 = require(\"../Exceptions/ArgumentNullException\");\nconst Enumerator_1 = require(\"./Enumeration/Enumerator\");\nconst dispose_1 = require(\"../Disposable/dispose\");\nconst Compare_1 = require(\"../Compare\");\nconst CollectionBase_1 = require(\"./CollectionBase\");\nconst OTHER = 'other';\nclass SetBase extends CollectionBase_1.CollectionBase {\n constructor(source) {\n super(null, Compare_1.areEqual);\n this._importEntries(source);\n }\n _getSet() {\n var s = this._set;\n if (!s)\n this._set = s = new LinkedNodeList_1.LinkedNodeList();\n return s;\n }\n getCount() {\n return this._set ? this._set.unsafeCount : 0;\n }\n exceptWith(other) {\n var _ = this;\n if (!other)\n throw new ArgumentNullException_1.ArgumentNullException(OTHER);\n Enumerator_1.forEach(other, v => {\n if (_._removeInternal(v))\n _._incrementModified();\n });\n _._signalModification();\n }\n intersectWith(other) {\n if (!other)\n throw new ArgumentNullException_1.ArgumentNullException(OTHER);\n var _ = this;\n if (other instanceof SetBase) {\n let s = _._set;\n if (s)\n s.forEach(n => {\n if (!other.contains(n.value) && _._removeInternal(n.value))\n _._incrementModified();\n });\n _._signalModification();\n }\n else {\n dispose_1.using(_.newUsing(other), o => _.intersectWith(o));\n }\n }\n isProperSubsetOf(other) {\n if (!other)\n throw new ArgumentNullException_1.ArgumentNullException(OTHER);\n return other instanceof SetBase\n ? other.isProperSupersetOf(this)\n : dispose_1.using(this.newUsing(other), o => o.isProperSupersetOf(this));\n }\n isProperSupersetOf(other) {\n if (!other)\n throw new ArgumentNullException_1.ArgumentNullException(OTHER);\n var result = true, count;\n if (other instanceof SetBase) {\n result = this.isSupersetOf(other);\n count = other.getCount();\n }\n else {\n dispose_1.using(this.newUsing(), o => {\n Enumerator_1.forEach(other, v => {\n o.add(v);\n return result = this.contains(v);\n });\n count = o.getCount();\n });\n }\n return result && this.getCount() > count;\n }\n isSubsetOf(other) {\n if (!other)\n throw new ArgumentNullException_1.ArgumentNullException(OTHER);\n return other instanceof SetBase\n ? other.isSupersetOf(this)\n : dispose_1.using(this.newUsing(other), o => o.isSupersetOf(this));\n }\n isSupersetOf(other) {\n if (!other)\n throw new ArgumentNullException_1.ArgumentNullException(OTHER);\n var result = true;\n Enumerator_1.forEach(other, v => {\n return result = this.contains(v);\n });\n return result;\n }\n overlaps(other) {\n if (!other)\n throw new ArgumentNullException_1.ArgumentNullException(OTHER);\n var result = false;\n Enumerator_1.forEach(other, v => !(result = this.contains(v)));\n return result;\n }\n setEquals(other) {\n if (!other)\n throw new ArgumentNullException_1.ArgumentNullException(OTHER);\n return this.getCount() == (other instanceof SetBase\n ? other.getCount()\n : dispose_1.using(this.newUsing(other), o => o.getCount()))\n && this.isSubsetOf(other);\n }\n symmetricExceptWith(other) {\n if (!other)\n throw new ArgumentNullException_1.ArgumentNullException(OTHER);\n var _ = this;\n if (other instanceof SetBase) {\n Enumerator_1.forEach(other, v => {\n if (_.contains(v)) {\n if (_._removeInternal(v))\n _._incrementModified();\n }\n else {\n if (_._addInternal(v))\n _._incrementModified();\n }\n });\n _._signalModification();\n }\n else {\n dispose_1.using(this.newUsing(other), o => _.symmetricExceptWith(o));\n }\n }\n unionWith(other) {\n this.importEntries(other);\n }\n _clearInternal() {\n var s = this._set;\n return s ? s.clear() : 0;\n }\n _onDispose() {\n super._onDispose();\n this._set = null;\n }\n contains(item) {\n return !(!this.getCount() || !this._getNode(item));\n }\n getEnumerator() {\n var s = this._set;\n return s && this.getCount()\n ? LinkedNodeList_1.LinkedNodeList.valueEnumeratorFrom(s)\n : Enumerator_1.empty;\n }\n forEach(action, useCopy = false) {\n if (useCopy)\n super.forEach(action, useCopy);\n else\n this._set.forEach((node, i) => action(node.value, i));\n }\n _removeNode(node) {\n if (!node)\n return false;\n return this.remove(node.value) != 0;\n }\n removeFirst() {\n var s = this._set;\n return this._removeNode(s && s.first);\n }\n removeLast() {\n var s = this._set;\n return this._removeNode(s && s.last);\n }\n}\nexports.SetBase = SetBase;\nfunction wipe(map, depth = 1) {\n if (map && depth) {\n for (var key of Object.keys(map)) {\n var v = map[key];\n delete map[key];\n wipe(v, depth - 1);\n }\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = SetBase;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {LinkedNodeList} from \"./LinkedNodeList\";\r\nimport {ArgumentNullException} from \"../Exceptions/ArgumentNullException\";\r\nimport {forEach, empty as emptyEnumerator} from \"./Enumeration/Enumerator\";\r\nimport {using} from \"../Disposable/dispose\";\r\nimport {areEqual} from \"../Compare\";\r\nimport {CollectionBase} from \"./CollectionBase\";\r\nimport {IDisposable} from \"../Disposable/IDisposable\";\r\nimport {ILinkedNodeWithValue} from \"./ILinkedListNode\";\r\nimport {Predicate, Action} from \"../FunctionTypes\";\r\nimport {IMap} from \"./Dictionaries/IDictionary\";\r\nimport {IEnumerator} from \"./Enumeration/IEnumerator\";\r\nimport {IEnumerableOrArray} from \"./IEnumerableOrArray\";\r\nimport {ISet} from \"./ISet\";\r\n\r\nconst OTHER = 'other';\r\n\r\nexport abstract class SetBase\r\nextends CollectionBase implements ISet, IDisposable\r\n{\r\n\r\n\tconstructor(source?:IEnumerableOrArray)\r\n\t{\r\n\t\tsuper(null, areEqual);\r\n\t\tthis._importEntries(source);\r\n\t}\r\n\r\n\tprotected abstract newUsing(source?:IEnumerableOrArray):SetBase;\r\n\r\n\tprotected _set:LinkedNodeList>;\r\n\r\n\tprotected _getSet():LinkedNodeList>\r\n\t{\r\n\t\tvar s = this._set;\r\n\t\tif(!s) this._set = s = new LinkedNodeList>();\r\n\t\treturn s;\r\n\t}\r\n\r\n\tprotected getCount():number\r\n\t{\r\n\t\treturn this._set ? this._set.unsafeCount : 0;\r\n\t}\r\n\r\n\texceptWith(other:IEnumerableOrArray):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\tforEach(other, v=>\r\n\t\t{\r\n\t\t\tif(_._removeInternal(v))\r\n\t\t\t\t_._incrementModified();\r\n\t\t});\r\n\r\n\t\t_._signalModification();\r\n\t}\r\n\r\n\tintersectWith(other:IEnumerableOrArray):void\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\tvar _ = this;\r\n\t\tif(other instanceof SetBase)\r\n\t\t{\r\n\t\t\tlet s = _._set;\r\n\t\t\tif(s) s.forEach(n=>\r\n\t\t\t{\r\n\t\t\t\tif(!other.contains(n.value) && _._removeInternal(n.value))\r\n\t\t\t\t\t_._incrementModified();\r\n\t\t\t});\r\n\r\n\t\t\t_._signalModification();\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tusing(_.newUsing(other), o=>_.intersectWith(o));\r\n\t\t}\r\n\t}\r\n\r\n\tisProperSubsetOf(other:IEnumerableOrArray):boolean\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\treturn other instanceof SetBase\r\n\t\t\t? other.isProperSupersetOf(this)\r\n\t\t\t: using(this.newUsing(other), o=> o.isProperSupersetOf(this));\r\n\t}\r\n\r\n\tisProperSupersetOf(other:IEnumerableOrArray):boolean\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\tvar result = true, count:number;\r\n\t\tif(other instanceof SetBase)\r\n\t\t{\r\n\t\t\tresult = this.isSupersetOf(other);\r\n\t\t\tcount = other.getCount();\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tusing(this.newUsing(), o=>\r\n\t\t\t{\r\n\t\t\t\tforEach(other, v=>\r\n\t\t\t\t{\r\n\t\t\t\t\to.add(v); // We have to add to another set in order to filter out duplicates.\r\n\t\t\t\t\treturn result = this.contains(v);\r\n\t\t\t\t});\r\n\t\t\t\tcount = o.getCount();\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn result && this.getCount()>count;\r\n\t}\r\n\r\n\tisSubsetOf(other:IEnumerableOrArray):boolean\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\treturn other instanceof SetBase\r\n\t\t\t? other.isSupersetOf(this)\r\n\t\t\t: using(this.newUsing(other), o=> o.isSupersetOf(this));\r\n\t}\r\n\r\n\tisSupersetOf(other:IEnumerableOrArray):boolean\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\tvar result = true;\r\n\t\tforEach(other, v=>\r\n\t\t{\r\n\t\t\treturn result = this.contains(v);\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\r\n\toverlaps(other:IEnumerableOrArray):boolean\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\tvar result = false;\r\n\t\tforEach(other, v => !(result = this.contains(v)));\r\n\t\treturn result;\r\n\t}\r\n\r\n\tsetEquals(other:IEnumerableOrArray):boolean\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\treturn this.getCount()==(\r\n\t\t\t\tother instanceof SetBase\r\n\t\t\t\t\t? other.getCount()\r\n\t\t\t\t\t: using(this.newUsing(other), o=> o.getCount()))\r\n\t\t\t&& this.isSubsetOf(other);\r\n\t}\r\n\r\n\tsymmetricExceptWith(other:IEnumerableOrArray):void\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\tvar _ = this;\r\n\t\tif(other instanceof SetBase)\r\n\t\t{\r\n\t\t\tforEach(other, v=>\r\n\t\t\t{\r\n\t\t\t\tif(_.contains(v))\r\n\t\t\t\t{\r\n\t\t\t\t\tif(_._removeInternal(v))\r\n\t\t\t\t\t\t_._incrementModified();\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tif(_._addInternal(v))\r\n\t\t\t\t\t\t_._incrementModified();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t_._signalModification();\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tusing(this.newUsing(other), o=>_.symmetricExceptWith(o));\r\n\t\t}\r\n\t}\r\n\r\n\tunionWith(other:IEnumerableOrArray):void\r\n\t{\r\n\t\tthis.importEntries(other);\r\n\t}\r\n\r\n\r\n\tprotected _clearInternal():number\r\n\t{\r\n\t\tvar s = this._set;\r\n\t\treturn s ? s.clear() : 0;\r\n\t}\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis._set = null;\r\n\t}\r\n\r\n\tprotected abstract _getNode(item:T):ILinkedNodeWithValue;\r\n\r\n\tcontains(item:T):boolean\r\n\t{\r\n\t\treturn !(!this.getCount() || !this._getNode(item));\r\n\t}\r\n\r\n\tgetEnumerator():IEnumerator\r\n\t{\r\n\t\tvar s = this._set;\r\n\t\treturn s && this.getCount()\r\n\t\t\t? LinkedNodeList.valueEnumeratorFrom(s)\r\n\t\t\t: emptyEnumerator;\r\n\t}\r\n\r\n\tforEach(\r\n\t\taction:Predicate | Action,\r\n\t\tuseCopy:boolean = false):void\r\n\t{\r\n\t\tif(useCopy) super.forEach(action, useCopy);\r\n\t\telse this._set.forEach((node, i)=>action(node.value, i));\r\n\t}\r\n\r\n\tprotected _removeNode(node:ILinkedNodeWithValue):boolean\r\n\t{\r\n\t\tif(!node) return false;\r\n\t\treturn this.remove(node.value)!=0;\r\n\t}\r\n\r\n\tremoveFirst():boolean\r\n\t{\r\n\t\tvar s = this._set;\r\n\t\treturn this._removeNode(s && s.first);\r\n\t}\r\n\r\n\tremoveLast():boolean\r\n\t{\r\n\t\tvar s = this._set;\r\n\t\treturn this._removeNode(s && s.last);\r\n\t}\r\n\r\n\r\n}\r\n\r\nfunction wipe(map:IMap, depth:number = 1):void\r\n{\r\n\tif(map && depth)\r\n\t{\r\n\t\tfor(var key of Object.keys(map))\r\n\t\t{\r\n\t\t\tvar v = map[key];\r\n\t\t\tdelete map[key];\r\n\t\t\twipe(v, depth - 1);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default SetBase;"]} \ No newline at end of file diff --git a/dist/commonjs/System/Collections/Sorting/KeySortedContext.d.ts b/dist/commonjs/System/Collections/Sorting/KeySortedContext.d.ts index 36822f6a..4de93bc7 100644 --- a/dist/commonjs/System/Collections/Sorting/KeySortedContext.d.ts +++ b/dist/commonjs/System/Collections/Sorting/KeySortedContext.d.ts @@ -1,16 +1,15 @@ -/// -/// -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import SortContext from "./SortContext"; -export default class KeySortedContext extends SortContext { +import { SortContext } from "./SortContext"; +import { Comparison, Selector } from "../../FunctionTypes"; +import { Comparable } from "../../IComparable"; +import { IComparer } from "../../IComparer"; +import { Order } from "./Order"; +export declare class KeySortedContext extends SortContext { protected _keySelector: Selector; constructor(next: IComparer, _keySelector: Selector, order?: Order, comparer?: Comparison); compare(a: T, b: T): number; } +export default KeySortedContext; diff --git a/dist/commonjs/System/Collections/Sorting/KeySortedContext.js b/dist/commonjs/System/Collections/Sorting/KeySortedContext.js index b3db049a..eb3d13be 100644 --- a/dist/commonjs/System/Collections/Sorting/KeySortedContext.js +++ b/dist/commonjs/System/Collections/Sorting/KeySortedContext.js @@ -2,7 +2,7 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; +"use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); @@ -18,8 +18,8 @@ var Values = require("../../Compare"); var SortContext_1 = require("./SortContext"); var Functions_1 = require("../../Functions"); -var KeySortedContext = function (_SortContext_1$defaul) { - _inherits(KeySortedContext, _SortContext_1$defaul); +var KeySortedContext = function (_SortContext_1$SortCo) { + _inherits(KeySortedContext, _SortContext_1$SortCo); function KeySortedContext(next, _keySelector) { var order = arguments.length <= 2 || arguments[2] === undefined ? 1 : arguments[2]; @@ -38,7 +38,7 @@ var KeySortedContext = function (_SortContext_1$defaul) { value: function compare(a, b) { var _ = this, ks = _._keySelector; - if (!ks || ks == Functions_1.default.Identity) return _get(Object.getPrototypeOf(KeySortedContext.prototype), "compare", this).call(this, a, b); + if (!ks || ks == Functions_1.Functions.Identity) return _get(Object.getPrototypeOf(KeySortedContext.prototype), "compare", this).call(this, a, b); var d = Values.compare(ks(a), ks(b)); if (d == 0 && _._next) return _._next.compare(a, b); return _._order * d; @@ -46,8 +46,9 @@ var KeySortedContext = function (_SortContext_1$defaul) { }]); return KeySortedContext; -}(SortContext_1.default); +}(SortContext_1.SortContext); +exports.KeySortedContext = KeySortedContext; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = KeySortedContext; //# sourceMappingURL=KeySortedContext.js.map diff --git a/dist/commonjs/System/Collections/Sorting/KeySortedContext.js.map b/dist/commonjs/System/Collections/Sorting/KeySortedContext.js.map index 123a393f..c4a9640f 100644 --- a/dist/commonjs/System/Collections/Sorting/KeySortedContext.js.map +++ b/dist/commonjs/System/Collections/Sorting/KeySortedContext.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Sorting/KeySortedContext.ts","System/Collections/Sorting/KeySortedContext.js"],"names":[],"mappings":";;;;AAWA;;;;;;;;;;;;AAEA,IAAY,SAAM,QAAM,eAAN,CAAN;AACZ,IAAA,gBAAA,QAAwB,eAAxB,CAAA;AACA,IAAA,cAAA,QAAsB,iBAAtB,CAAA;;IAEA;;;AAGC,aAHD,gBAGC,CACC,IADD,EAEW,YAFX,EAIwC;YADvC,8DAAc,iBACyB;YAAvC,iEAAyB,OAAO,OAAP,gBAAc;;8BAPzC,kBAOyC;;2EAPzC,6BASQ,MAAM,UAAU,QAFiB;;AAF7B,cAAA,YAAA,GAAA,YAAA,CAE6B;;KAJxC;;iBAHD;;gCAYS,GAAK,GAAG;AAEf,gBAAI,IAAI,IAAJ;gBAAU,KAAK,EAAE,YAAF,CAFJ;AAGf,gBAAG,CAAC,EAAD,IAAO,MAAI,YAAA,OAAA,CAAU,QAAV,EAAoB,kCAfpC,yDAeyD,GAAG,EAAxB,CAAlC;AAEA,gBAAI,IAAI,OAAO,OAAP,CAAoB,GAAG,CAAH,CAApB,EAAgC,GAAG,CAAH,CAAhC,CAAJ,CALW;AAMf,gBAAG,KAAG,CAAH,IAAQ,EAAE,KAAF,EAAS,OAAO,EAAE,KAAF,CAAQ,OAAR,CAAgB,CAAhB,EAAmB,CAAnB,CAAP,CAApB;AACA,mBAAO,EAAE,MAAF,GAAS,CAAT,CAPQ;;;;WAZjB;EAC2D,cAAA,OAAA;;AAD3D,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ACOA,QAAQ,OAAR,GAAkB,gBAAlB","file":"System/Collections/Sorting/KeySortedContext.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport * as Values from \"../../Compare\";\r\nimport SortContext from \"./SortContext\";\r\nimport Functions from \"../../Functions\";\r\n\r\nexport default\r\nclass KeySortedContext extends SortContext\r\n{\r\n\tconstructor(\r\n\t\tnext:IComparer,\r\n\t\tprotected _keySelector:Selector,\r\n\t\torder:Order = Order.Ascending,\r\n\t\tcomparer:Comparison = Values.compare)\r\n\t{\r\n\t\tsuper(next, comparer, order);\r\n\t}\r\n\r\n\tcompare(a:T, b:T):number\r\n\t{\r\n\t\tvar _ = this, ks = _._keySelector;\r\n\t\tif(!ks || ks==Functions.Identity) return super.compare(a, b);\r\n\t\t// We force here since it can be a Primitive or IComparable\r\n\t\tvar d = Values.compare(ks(a), ks(b));\r\n\t\tif(d==0 && _._next) return _._next.compare(a, b);\r\n\t\treturn _._order*d;\r\n\t}\r\n}\r\n","/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n'use strict';\nconst Values = require(\"../../Compare\");\nconst SortContext_1 = require(\"./SortContext\");\nconst Functions_1 = require(\"../../Functions\");\nclass KeySortedContext extends SortContext_1.default {\n constructor(next, _keySelector, order = 1, comparer = Values.compare) {\n super(next, comparer, order);\n this._keySelector = _keySelector;\n }\n compare(a, b) {\n var _ = this, ks = _._keySelector;\n if (!ks || ks == Functions_1.default.Identity)\n return super.compare(a, b);\n var d = Values.compare(ks(a), ks(b));\n if (d == 0 && _._next)\n return _._next.compare(a, b);\n return _._order * d;\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = KeySortedContext;\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Sorting/KeySortedContext.js","System/Collections/Sorting/KeySortedContext.ts"],"names":[],"mappings":";;;;AAIA;;;;;;;;;;;;ACCA,IAAY,SAAM,QAAM,eAAN,CAAN;AACZ,IAAA,gBAAA,QAA0B,eAA1B,CAAA;AACA,IAAA,cAAA,QAAwB,iBAAxB,CAAA;;IAMA;;;AAEC,aAFD,gBAEC,CACC,IADD,EAEW,YAFX,EAIwC;YADvC,8DAAc,iBACyB;YAAvC,iEAAyB,OAAO,OAAP,gBAAc;;8BANzC,kBAMyC;;2EANzC,6BAQQ,MAAM,UAAU,QAFiB;;AAF7B,cAAA,YAAA,GAAA,YAAA,CAE6B;;KAJxC;;iBAFD;;gCAWS,GAAK,GAAG;AAEf,gBAAI,IAAI,IAAJ;gBAAU,KAAK,EAAE,YAAF,CAFJ;AAGf,gBAAG,CAAC,EAAD,IAAO,MAAI,YAAA,SAAA,CAAU,QAAV,EAAoB,kCAdpC,yDAcyD,GAAG,EAAxB,CAAlC;AAEA,gBAAI,IAAI,OAAO,OAAP,CAAoB,GAAG,CAAH,CAApB,EAAgC,GAAG,CAAH,CAAhC,CAAJ,CALW;AAMf,gBAAG,KAAG,CAAH,IAAQ,EAAE,KAAF,EAAS,OAAO,EAAE,KAAF,CAAQ,OAAR,CAAgB,CAAhB,EAAmB,CAAnB,CAAP,CAApB;AACA,mBAAO,EAAE,MAAF,GAAS,CAAT,CAPQ;;;;WAXjB;EAAkE,cAAA,WAAA;;AAArD,QAAA,gBAAA,GAAgB,gBAAhB;AAsBb,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADVA,QAAQ,OAAR,GCUe,gBDVf","file":"System/Collections/Sorting/KeySortedContext.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst Values = require(\"../../Compare\");\nconst SortContext_1 = require(\"./SortContext\");\nconst Functions_1 = require(\"../../Functions\");\nclass KeySortedContext extends SortContext_1.SortContext {\n constructor(next, _keySelector, order = 1, comparer = Values.compare) {\n super(next, comparer, order);\n this._keySelector = _keySelector;\n }\n compare(a, b) {\n var _ = this, ks = _._keySelector;\n if (!ks || ks == Functions_1.Functions.Identity)\n return super.compare(a, b);\n var d = Values.compare(ks(a), ks(b));\n if (d == 0 && _._next)\n return _._next.compare(a, b);\n return _._order * d;\n }\n}\nexports.KeySortedContext = KeySortedContext;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = KeySortedContext;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport * as Values from \"../../Compare\";\r\nimport {SortContext} from \"./SortContext\";\r\nimport {Functions} from \"../../Functions\";\r\nimport {Comparison, Selector} from \"../../FunctionTypes\";\r\nimport {Comparable} from \"../../IComparable\";\r\nimport {IComparer} from \"../../IComparer\";\r\nimport {Order} from \"./Order\";\r\n\r\nexport class KeySortedContext extends SortContext\r\n{\r\n\tconstructor(\r\n\t\tnext:IComparer,\r\n\t\tprotected _keySelector:Selector,\r\n\t\torder:Order = Order.Ascending,\r\n\t\tcomparer:Comparison = Values.compare)\r\n\t{\r\n\t\tsuper(next, comparer, order);\r\n\t}\r\n\r\n\tcompare(a:T, b:T):number\r\n\t{\r\n\t\tvar _ = this, ks = _._keySelector;\r\n\t\tif(!ks || ks==Functions.Identity) return super.compare(a, b);\r\n\t\t// We force here since it can be a Primitive or IComparable\r\n\t\tvar d = Values.compare(ks(a), ks(b));\r\n\t\tif(d==0 && _._next) return _._next.compare(a, b);\r\n\t\treturn _._order*d;\r\n\t}\r\n}\r\n\r\nexport default KeySortedContext;"]} \ No newline at end of file diff --git a/dist/commonjs/System/Collections/Sorting/SortContext.d.ts b/dist/commonjs/System/Collections/Sorting/SortContext.d.ts index b459e302..63118bbb 100644 --- a/dist/commonjs/System/Collections/Sorting/SortContext.d.ts +++ b/dist/commonjs/System/Collections/Sorting/SortContext.d.ts @@ -1,12 +1,11 @@ -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -export default class SortContext implements IComparer { +import { Comparison } from "../../FunctionTypes"; +import { IComparer } from "../../IComparer"; +import { Order } from "./Order"; +export declare class SortContext implements IComparer { protected _next: IComparer; protected _comparer: Comparison; protected _order: Order; @@ -15,3 +14,4 @@ export default class SortContext implements IComparer { generateSortedIndexes(source: T[]): number[]; compare(a: T, b: T): number; } +export default SortContext; diff --git a/dist/commonjs/System/Collections/Sorting/SortContext.js b/dist/commonjs/System/Collections/Sorting/SortContext.js index 3fbfdbbd..4c4dc845 100644 --- a/dist/commonjs/System/Collections/Sorting/SortContext.js +++ b/dist/commonjs/System/Collections/Sorting/SortContext.js @@ -2,7 +2,7 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; +"use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); @@ -55,6 +55,7 @@ var SortContext = function () { return SortContext; }(); +exports.SortContext = SortContext; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = SortContext; //# sourceMappingURL=SortContext.js.map diff --git a/dist/commonjs/System/Collections/Sorting/SortContext.js.map b/dist/commonjs/System/Collections/Sorting/SortContext.js.map index a0814610..2c2723ca 100644 --- a/dist/commonjs/System/Collections/Sorting/SortContext.js.map +++ b/dist/commonjs/System/Collections/Sorting/SortContext.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Sorting/SortContext.ts","System/Collections/Sorting/SortContext.js"],"names":[],"mappings":";;;;AASA;;;;;;AAEA,IAAY,SAAM,QAAM,eAAN,CAAN;;IAEZ;AAWC,aAXD,WAWC,CACW,KADX,EAGyC;YAD9B,kEAA0B,OAAO,OAAP,gBACI;;YAA9B,+DAAe,iBAAe;;8BAd1C,aAc0C;;AAF9B,aAAA,KAAA,GAAA,KAAA,CAE8B;AAD9B,aAAA,SAAA,GAAA,SAAA,CAC8B;AAA9B,aAAA,MAAA,GAAA,MAAA,CAA8B;KAHzC;;iBAXD;;8CAwBuB,QAAU;;;AAE/B,gBAAG,UAAQ,IAAR,EAAc,OAAO,EAAP,CAAjB;AACA,gBAAI,SAAkB,OAAO,GAAP,CAAW,UAAC,CAAD,EAAI,CAAJ;uBAAQ;aAAR,CAA7B,CAH2B;AAI/B,mBAAO,IAAP,CAAY,UAAC,CAAD,EAAI,CAAJ;uBAAU,MAAK,OAAL,CAAa,OAAO,CAAP,CAAb,EAAwB,OAAO,CAAP,CAAxB;aAAV,CAAZ,CAJ+B;AAK/B,mBAAO,MAAP,CAL+B;;;;gCAcxB,GAAK,GAAG;AAEf,gBAAI,IAAI,IAAJ,CAFW;AAGf,gBAAI,IAAI,EAAE,SAAF,CAAY,CAAZ,EAAe,CAAf,CAAJ,CAHW;AAIf,gBAAG,KAAG,CAAH,IAAQ,EAAE,KAAF,EAAS,OAAO,EAAE,KAAF,CAAQ,OAAR,CAAgB,CAAhB,EAAmB,CAAnB,CAAP,CAApB;AACA,mBAAO,EAAE,MAAF,GAAS,CAAT,CALQ;;;;4BA9BP;AACP,mBAAO,KAAK,MAAL,CADA;;;;WARV;;;AAAA,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ACgBA,QAAQ,OAAR,GAAkB,WAAlB","file":"System/Collections/Sorting/SortContext.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport * as Values from \"../../Compare\";\r\n\r\nexport default\r\nclass SortContext implements IComparer\r\n{\r\n\r\n\t/**\r\n\t * Direction of the comparison.\r\n\t * @type {Order}\r\n\t */\r\n\tget order():Order\r\n\t{ return this._order; }\r\n\r\n\tconstructor(\r\n\t\tprotected _next:IComparer,\r\n\t\tprotected _comparer:Comparison = Values.compare,\r\n\t\tprotected _order:Order = Order.Ascending)\r\n\t{\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Generates an array of indexes from the source in order of their expected sort without modifying the source.\r\n\t * @param source\r\n\t * @returns {number[]}\r\n\t */\r\n\tgenerateSortedIndexes(source:T[]):number[]\r\n\t{\r\n\t\tif(source==null) return [];\r\n\t\tvar result:number[] = source.map((s, i)=>i);\r\n\t\tresult.sort((a, b) => this.compare(source[a], source[b]));\r\n\t\treturn result;\r\n\t}\r\n\r\n\t/**\r\n\t * Compares two values based upon SortContext parameters.\r\n\t * @param a\r\n\t * @param b\r\n\t * @returns {any}\r\n\t */\r\n\tcompare(a:T, b:T):number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar d = _._comparer(a, b);\r\n\t\tif(d==0 && _._next) return _._next.compare(a, b);\r\n\t\treturn _._order*d;\r\n\t}\r\n}\r\n","/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n'use strict';\nconst Values = require(\"../../Compare\");\nclass SortContext {\n constructor(_next, _comparer = Values.compare, _order = 1) {\n this._next = _next;\n this._comparer = _comparer;\n this._order = _order;\n }\n get order() { return this._order; }\n generateSortedIndexes(source) {\n if (source == null)\n return [];\n var result = source.map((s, i) => i);\n result.sort((a, b) => this.compare(source[a], source[b]));\n return result;\n }\n compare(a, b) {\n var _ = this;\n var d = _._comparer(a, b);\n if (d == 0 && _._next)\n return _._next.compare(a, b);\n return _._order * d;\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = SortContext;\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Sorting/SortContext.js","System/Collections/Sorting/SortContext.ts"],"names":[],"mappings":";;;;AAIA;;;;;;ACEA,IAAY,SAAM,QAAM,eAAN,CAAN;;IAKZ;AAUC,aAVD,WAUC,CACW,KADX,EAGyC;YAD9B,kEAA0B,OAAO,OAAP,gBACI;;YAA9B,+DAAe,iBAAe;;8BAb1C,aAa0C;;AAF9B,aAAA,KAAA,GAAA,KAAA,CAE8B;AAD9B,aAAA,SAAA,GAAA,SAAA,CAC8B;AAA9B,aAAA,MAAA,GAAA,MAAA,CAA8B;KAHzC;;iBAVD;;8CAuBuB,QAAU;;;AAE/B,gBAAG,UAAQ,IAAR,EAAc,OAAO,EAAP,CAAjB;AACA,gBAAI,SAAkB,OAAO,GAAP,CAAW,UAAC,CAAD,EAAI,CAAJ;uBAAQ;aAAR,CAA7B,CAH2B;AAI/B,mBAAO,IAAP,CAAY,UAAC,CAAD,EAAI,CAAJ;uBAAU,MAAK,OAAL,CAAa,OAAO,CAAP,CAAb,EAAwB,OAAO,CAAP,CAAxB;aAAV,CAAZ,CAJ+B;AAK/B,mBAAO,MAAP,CAL+B;;;;gCAcxB,GAAK,GAAG;AAEf,gBAAI,IAAI,IAAJ,CAFW;AAGf,gBAAI,IAAI,EAAE,SAAF,CAAY,CAAZ,EAAe,CAAf,CAAJ,CAHW;AAIf,gBAAG,KAAG,CAAH,IAAQ,EAAE,KAAF,EAAS,OAAO,EAAE,KAAF,CAAQ,OAAR,CAAgB,CAAhB,EAAmB,CAAnB,CAAP,CAApB;AACA,mBAAO,EAAE,MAAF,GAAS,CAAT,CALQ;;;;4BA9BP;AACP,mBAAO,KAAK,MAAL,CADA;;;;WAPV;;;AAAa,QAAA,WAAA,GAAW,WAAX;AA8Cb,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;AD3BA,QAAQ,OAAR,GC2Be,WD3Bf","file":"System/Collections/Sorting/SortContext.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst Values = require(\"../../Compare\");\nclass SortContext {\n constructor(_next, _comparer = Values.compare, _order = 1) {\n this._next = _next;\n this._comparer = _comparer;\n this._order = _order;\n }\n get order() { return this._order; }\n generateSortedIndexes(source) {\n if (source == null)\n return [];\n var result = source.map((s, i) => i);\n result.sort((a, b) => this.compare(source[a], source[b]));\n return result;\n }\n compare(a, b) {\n var _ = this;\n var d = _._comparer(a, b);\n if (d == 0 && _._next)\n return _._next.compare(a, b);\n return _._order * d;\n }\n}\nexports.SortContext = SortContext;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = SortContext;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport * as Values from \"../../Compare\";\r\nimport {Comparison} from \"../../FunctionTypes\";\r\nimport {IComparer} from \"../../IComparer\";\r\nimport {Order} from \"./Order\";\r\n\r\nexport class SortContext implements IComparer\r\n{\r\n\r\n\t/**\r\n\t * Direction of the comparison.\r\n\t * @type {Order}\r\n\t */\r\n\tget order():Order\r\n\t{ return this._order; }\r\n\r\n\tconstructor(\r\n\t\tprotected _next:IComparer,\r\n\t\tprotected _comparer:Comparison = Values.compare,\r\n\t\tprotected _order:Order = Order.Ascending)\r\n\t{\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Generates an array of indexes from the source in order of their expected sort without modifying the source.\r\n\t * @param source\r\n\t * @returns {number[]}\r\n\t */\r\n\tgenerateSortedIndexes(source:T[]):number[]\r\n\t{\r\n\t\tif(source==null) return [];\r\n\t\tvar result:number[] = source.map((s, i)=>i);\r\n\t\tresult.sort((a, b) => this.compare(source[a], source[b]));\r\n\t\treturn result;\r\n\t}\r\n\r\n\t/**\r\n\t * Compares two values based upon SortContext parameters.\r\n\t * @param a\r\n\t * @param b\r\n\t * @returns {any}\r\n\t */\r\n\tcompare(a:T, b:T):number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar d = _._comparer(a, b);\r\n\t\tif(d==0 && _._next) return _._next.compare(a, b);\r\n\t\treturn _._order*d;\r\n\t}\r\n}\r\n\r\nexport default SortContext;"]} \ No newline at end of file diff --git a/dist/commonjs/System/Compare.d.ts b/dist/commonjs/System/Compare.d.ts index 1d12a4b3..c4be772a 100644 --- a/dist/commonjs/System/Compare.d.ts +++ b/dist/commonjs/System/Compare.d.ts @@ -1,10 +1,10 @@ -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { Primitive } from "./Primitive"; +import { IComparable } from "./IComparable"; +import { CompareResult } from "./CompareResult"; export declare function areEqual(a: any, b: any, strict?: boolean): boolean; export declare function compare(a: IComparable, b: IComparable): number; export declare function compare(a: T, b: T, strict?: boolean): CompareResult; diff --git a/dist/commonjs/System/Compare.js b/dist/commonjs/System/Compare.js index e9e54aa0..c7af23a4 100644 --- a/dist/commonjs/System/Compare.js +++ b/dist/commonjs/System/Compare.js @@ -5,7 +5,7 @@ "use strict"; var Types_1 = require("./Types"); -var isTrueNaN = Types_1.default.isTrueNaN; +var isTrueNaN = Types_1.Type.isTrueNaN; var VOID0 = void 0; function areEqual(a, b) { var strict = arguments.length <= 2 || arguments[2] === undefined ? true : arguments[2]; @@ -18,7 +18,7 @@ function compare(a, b) { var strict = arguments.length <= 2 || arguments[2] === undefined ? true : arguments[2]; if (areEqual(a, b, strict)) return 0; - if (a && Types_1.default.hasMember(a, COMPARE_TO)) return a.compareTo(b);else if (b && Types_1.default.hasMember(b, COMPARE_TO)) return -b.compareTo(a); + if (a && Types_1.Type.hasMember(a, COMPARE_TO)) return a.compareTo(b);else if (b && Types_1.Type.hasMember(b, COMPARE_TO)) return -b.compareTo(a); if (a > b || strict && (a === 0 && b == 0 || a === null && b === VOID0)) return 1; if (b > a || strict && (b === 0 && a == 0 || b === null && a === VOID0)) return -1; return NaN; @@ -31,15 +31,15 @@ function areEquivalent(a, b) { if (areEqual(a, b, true)) return true; if (a === null || a === VOID0 || b == null || b === VOID0) { if (!nullEquivalency) return false; - if (Types_1.default.isObject(a)) { + if (Types_1.Type.isObject(a)) { return !Object.keys(a).length; } - if (Types_1.default.isObject(b)) { + if (Types_1.Type.isObject(b)) { return !Object.keys(b).length; } return (a === null || a === VOID0) && (b == null || b === VOID0); } - if (Types_1.default.isObject(a) && Types_1.default.isObject(b)) { + if (Types_1.Type.isObject(a) && Types_1.Type.isObject(b)) { var aKeys = Object.keys(a), bKeys = Object.keys(b), len = aKeys.length; diff --git a/dist/commonjs/System/Compare.js.map b/dist/commonjs/System/Compare.js.map index 963883ab..9a91df42 100644 --- a/dist/commonjs/System/Compare.js.map +++ b/dist/commonjs/System/Compare.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Compare.js","System/Compare.ts"],"names":[],"mappings":";;;;AAIA;;ACIA,IAAA,UAAA,QAAiB,SAAjB,CAAA;AACA,IAAO,YAAY,QAAA,OAAA,CAAK,SAAL;AAEnB,IAAM,QAAY,KAAK,CAAL;AASlB,SAAA,QAAA,CAAyB,CAAzB,EAAgC,CAAhC,EAA4D;QAArB,+DAAiB,oBAAI;;AAE3D,WAAO,MAAI,CAAJ,IACH,CAAC,MAAD,IAAW,KAAG,CAAH,IACX,UAAU,CAAV,KAAgB,UAAU,CAAV,CAAhB,CAJuD;CAA5D;AAAgB,QAAA,QAAA,GAAQ,QAAR;AAOhB,IAAM,aAAa,WAAb;AASN,SAAA,OAAA,CAAwB,CAAxB,EAA+B,CAA/B,EAA2D;QAArB,+DAAiB,oBAAI;;AAG1D,QAAG,SAAS,CAAT,EAAY,CAAZ,EAAe,MAAf,CAAH,EACC,OAAO,CAAP,CADD;AAGA,QAAG,KAAK,QAAA,OAAA,CAAK,SAAL,CAAe,CAAf,EAAkB,UAAlB,CAAL,EACF,OAAO,EAAE,SAAF,CAAY,CAAZ,CAAP,CADD,KAEK,IAAG,KAAK,QAAA,OAAA,CAAK,SAAL,CAAe,CAAf,EAAkB,UAAlB,CAAL,EACP,OAAO,CAAC,EAAE,SAAF,CAAY,CAAZ,CAAD,CADH;AAKL,QAAG,IAAE,CAAF,IAAO,WAAW,MAAI,CAAJ,IAAS,KAAG,CAAH,IAAQ,MAAI,IAAJ,IAAY,MAAI,KAAJ,CAAxC,EACT,OAAO,CAAP,CADD;AAGA,QAAG,IAAE,CAAF,IAAO,WAAW,MAAI,CAAJ,IAAS,KAAG,CAAH,IAAQ,MAAI,IAAJ,IAAY,MAAI,KAAJ,CAAxC,EACT,OAAO,CAAA,CAAA,CADR;AAGA,WAAO,GAAP,CAnB0D;CAA3D;AAAgB,QAAA,OAAA,GAAO,OAAP;AA8BhB,SAAA,aAAA,CAA8B,CAA9B,EAAqC,CAArC,EAAiG;QAArD,wEAA0B,oBAA2B;QAArB,mEAAoB,iBAAC;;AAIhG,QAAG,SAAS,CAAT,EAAY,CAAZ,EAAe,IAAf,CAAH,EAAyB,OAAO,IAAP,CAAzB;AAEA,QAAG,MAAI,IAAJ,IAAY,MAAI,KAAJ,IAAa,KAAG,IAAH,IAAW,MAAI,KAAJ,EACvC;AACC,YAAG,CAAC,eAAD,EAAkB,OAAO,KAAP,CAArB;AAEA,YAAG,QAAA,OAAA,CAAK,QAAL,CAAc,CAAd,CAAH,EACA;AACC,mBAAO,CAAC,OAAO,IAAP,CAAY,CAAZ,EAAe,MAAf,CADT;SADA;AAKA,YAAG,QAAA,OAAA,CAAK,QAAL,CAAc,CAAd,CAAH,EACA;AACC,mBAAO,CAAC,OAAO,IAAP,CAAY,CAAZ,EAAe,MAAf,CADT;SADA;AAKA,eAAO,CAAC,MAAI,IAAJ,IAAY,MAAI,KAAJ,CAAb,KAA4B,KAAG,IAAH,IAAW,MAAI,KAAJ,CAAvC,CAbR;KADA;AAiBA,QAAG,QAAA,OAAA,CAAK,QAAL,CAAc,CAAd,KAAoB,QAAA,OAAA,CAAK,QAAL,CAAc,CAAd,CAApB,EACH;AAEC,YAAI,QAAQ,OAAO,IAAP,CAAY,CAAZ,CAAR;YAAwB,QAAQ,OAAO,IAAP,CAAY,CAAZ,CAAR;YAAwB,MAAM,MAAM,MAAN,CAF3D;AAGC,YAAG,OAAK,MAAM,MAAN,EACP,OAAO,KAAP,CADD;AAGA,cAAM,IAAN,GAND;AAOC,cAAM,IAAN,GAPD;AASC,aAAI,IAAI,IAAI,CAAJ,EAAO,IAAE,GAAF,EAAO,GAAtB,EACA;AACC,gBAAI,MAAM,MAAM,CAAN,CAAN,CADL;AAEC,gBAAG,QAAM,MAAM,CAAN,CAAN,IAAkB,CAAC,SAAS,EAAE,GAAF,CAAT,EAAiB,EAAE,GAAF,CAAjB,EAAyB,IAAzB,CAAD,EAAiC,OAAO,KAAP,CAAtD;SAHD;AAOA,YAAG,aAAW,CAAX,EAAc;;;;;;AAEhB,qCAAe,+BAAf,oGAAsB;wBAAd,mBAAc;;AACrB,wBAAG,CAAC,cAAc,EAAE,IAAF,CAAd,EAAsB,EAAE,IAAF,CAAtB,EAA8B,eAA9B,EAA+C,aAAW,CAAX,CAAhD,EAA+D,OAAO,KAAP,CAAlE;iBADD;;;;;;;;;;;;;;aAFgB;SAAjB;AAOA,eAAO,IAAP,CAvBD;KADA;AA2BA,WAAO,KAAP,CAlDgG;CAAjG;AAAgB,QAAA,aAAA,GAAa,aAAb","file":"System/Compare.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst Types_1 = require(\"./Types\");\nvar isTrueNaN = Types_1.default.isTrueNaN;\nconst VOID0 = void 0;\nfunction areEqual(a, b, strict = true) {\n return a === b\n || !strict && a == b\n || isTrueNaN(a) && isTrueNaN(b);\n}\nexports.areEqual = areEqual;\nconst COMPARE_TO = \"compareTo\";\nfunction compare(a, b, strict = true) {\n if (areEqual(a, b, strict))\n return 0;\n if (a && Types_1.default.hasMember(a, COMPARE_TO))\n return a.compareTo(b);\n else if (b && Types_1.default.hasMember(b, COMPARE_TO))\n return -b.compareTo(a);\n if (a > b || strict && (a === 0 && b == 0 || a === null && b === VOID0))\n return 1;\n if (b > a || strict && (b === 0 && a == 0 || b === null && a === VOID0))\n return -1;\n return NaN;\n}\nexports.compare = compare;\nfunction areEquivalent(a, b, nullEquivalency = true, extraDepth = 0) {\n if (areEqual(a, b, true))\n return true;\n if (a === null || a === VOID0 || b == null || b === VOID0) {\n if (!nullEquivalency)\n return false;\n if (Types_1.default.isObject(a)) {\n return !Object.keys(a).length;\n }\n if (Types_1.default.isObject(b)) {\n return !Object.keys(b).length;\n }\n return (a === null || a === VOID0) && (b == null || b === VOID0);\n }\n if (Types_1.default.isObject(a) && Types_1.default.isObject(b)) {\n var aKeys = Object.keys(a), bKeys = Object.keys(b), len = aKeys.length;\n if (len != bKeys.length)\n return false;\n aKeys.sort();\n bKeys.sort();\n for (let i = 0; i < len; i++) {\n let key = aKeys[i];\n if (key !== bKeys[i] || !areEqual(a[key], b[key], true))\n return false;\n }\n if (extraDepth > 0) {\n for (let key of aKeys) {\n if (!areEquivalent(a[key], b[key], nullEquivalency, extraDepth - 1))\n return false;\n }\n }\n return true;\n }\n return false;\n}\nexports.areEquivalent = areEquivalent;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\nimport Type from \"./Types\";\r\nimport isTrueNaN = Type.isTrueNaN;\r\n\r\nconst VOID0:any = void 0;\r\n\r\n/**\r\n * Used for special comparison including NaN.\r\n * @param a\r\n * @param b\r\n * @param strict\r\n * @returns {boolean|any}\r\n */\r\nexport function areEqual(a:any, b:any, strict:boolean = true):boolean\r\n{\r\n\treturn a===b\r\n\t\t|| !strict && a==b\r\n\t\t|| isTrueNaN(a) && isTrueNaN(b);\r\n}\r\n\r\nconst COMPARE_TO = \"compareTo\";\r\n\r\n/**\r\n * Compares two comparable objects or primitives.\r\n * @param a\r\n * @param b\r\n */\r\nexport function compare(a:IComparable, b:IComparable):number;\r\nexport function compare(a:T, b:T, strict?:boolean):CompareResult;\r\nexport function compare(a:any, b:any, strict:boolean = true):CompareResult\r\n{\r\n\r\n\tif(areEqual(a, b, strict))\r\n\t\treturn CompareResult.Equal;\r\n\r\n\tif(a && Type.hasMember(a, COMPARE_TO))\r\n\t\treturn a.compareTo(b); // If a has compareTo, use it.\r\n\telse if(b && Type.hasMember(b, COMPARE_TO))\r\n\t\treturn -b.compareTo(a); // a doesn't have compareTo? check if b does and invert.\r\n\r\n\t// Allow for special inequality..\r\n\r\n\tif(a>b || strict && (a===0 && b==0 || a===null && b===VOID0))\r\n\t\treturn CompareResult.Greater;\r\n\r\n\tif(b>a || strict && (b===0 && a==0 || b===null && a===VOID0))\r\n\t\treturn CompareResult.Less;\r\n\r\n\treturn NaN;\r\n}\r\n\r\n/**\r\n * Determines if two primitives are equal or if two objects have the same key/value combinations.\r\n * @param a\r\n * @param b\r\n * @param nullEquivalency If true, null/undefined will be equivalent to an empty object {}.\r\n * @param extraDepth\r\n * @returns {boolean}\r\n */\r\nexport function areEquivalent(a:any, b:any, nullEquivalency:boolean = true, extraDepth:number = 0):boolean\r\n{\r\n\r\n\t// Take a step by step approach to ensure efficiency.\r\n\tif(areEqual(a, b, true)) return true;\r\n\r\n\tif(a===null || a===VOID0 || b==null || b===VOID0)\r\n\t{\r\n\t\tif(!nullEquivalency) return false;\r\n\r\n\t\tif(Type.isObject(a))\r\n\t\t{\r\n\t\t\treturn !Object.keys(a).length;\r\n\t\t}\r\n\r\n\t\tif(Type.isObject(b))\r\n\t\t{\r\n\t\t\treturn !Object.keys(b).length;\r\n\t\t}\r\n\r\n\t\treturn (a===null || a===VOID0) && (b==null || b===VOID0);\r\n\t}\r\n\r\n\tif(Type.isObject(a) && Type.isObject(b))\r\n\t{\r\n\r\n\t\tvar aKeys = Object.keys(a), bKeys = Object.keys(b), len = aKeys.length;\r\n\t\tif(len!=bKeys.length)\r\n\t\t\treturn false;\r\n\r\n\t\taKeys.sort();\r\n\t\tbKeys.sort();\r\n\r\n\t\tfor(let i = 0; i0) {\r\n\r\n\t\t\tfor(let key of aKeys) {\r\n\t\t\t\tif(!areEquivalent(a[key], b[key], nullEquivalency, extraDepth-1)) return false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t}\r\n\r\n\treturn false;\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Compare.js","System/Compare.ts"],"names":[],"mappings":"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","file":"System/Compare.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst Types_1 = require(\"./Types\");\nvar isTrueNaN = Types_1.Type.isTrueNaN;\nconst VOID0 = void 0;\nfunction areEqual(a, b, strict = true) {\n return a === b\n || !strict && a == b\n || isTrueNaN(a) && isTrueNaN(b);\n}\nexports.areEqual = areEqual;\nconst COMPARE_TO = \"compareTo\";\nfunction compare(a, b, strict = true) {\n if (areEqual(a, b, strict))\n return 0;\n if (a && Types_1.Type.hasMember(a, COMPARE_TO))\n return a.compareTo(b);\n else if (b && Types_1.Type.hasMember(b, COMPARE_TO))\n return -b.compareTo(a);\n if (a > b || strict && (a === 0 && b == 0 || a === null && b === VOID0))\n return 1;\n if (b > a || strict && (b === 0 && a == 0 || b === null && a === VOID0))\n return -1;\n return NaN;\n}\nexports.compare = compare;\nfunction areEquivalent(a, b, nullEquivalency = true, extraDepth = 0) {\n if (areEqual(a, b, true))\n return true;\n if (a === null || a === VOID0 || b == null || b === VOID0) {\n if (!nullEquivalency)\n return false;\n if (Types_1.Type.isObject(a)) {\n return !Object.keys(a).length;\n }\n if (Types_1.Type.isObject(b)) {\n return !Object.keys(b).length;\n }\n return (a === null || a === VOID0) && (b == null || b === VOID0);\n }\n if (Types_1.Type.isObject(a) && Types_1.Type.isObject(b)) {\n var aKeys = Object.keys(a), bKeys = Object.keys(b), len = aKeys.length;\n if (len != bKeys.length)\n return false;\n aKeys.sort();\n bKeys.sort();\n for (let i = 0; i < len; i++) {\n let key = aKeys[i];\n if (key !== bKeys[i] || !areEqual(a[key], b[key], true))\n return false;\n }\n if (extraDepth > 0) {\n for (let key of aKeys) {\n if (!areEquivalent(a[key], b[key], nullEquivalency, extraDepth - 1))\n return false;\n }\n }\n return true;\n }\n return false;\n}\nexports.areEquivalent = areEquivalent;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {Type} from \"./Types\";\r\nimport {Primitive} from \"./Primitive\";\r\nimport isTrueNaN = Type.isTrueNaN;\r\nimport {IComparable} from \"./IComparable\";\r\nimport {CompareResult} from \"./CompareResult\";\r\n\r\nconst VOID0:any = void 0;\r\n\r\n/**\r\n * Used for special comparison including NaN.\r\n * @param a\r\n * @param b\r\n * @param strict\r\n * @returns {boolean|any}\r\n */\r\nexport function areEqual(a:any, b:any, strict:boolean = true):boolean\r\n{\r\n\treturn a===b\r\n\t\t|| !strict && a==b\r\n\t\t|| isTrueNaN(a) && isTrueNaN(b);\r\n}\r\n\r\nconst COMPARE_TO = \"compareTo\";\r\n\r\n/**\r\n * Compares two comparable objects or primitives.\r\n * @param a\r\n * @param b\r\n */\r\nexport function compare(a:IComparable, b:IComparable):number;\r\nexport function compare(a:T, b:T, strict?:boolean):CompareResult;\r\nexport function compare(a:any, b:any, strict:boolean = true):CompareResult\r\n{\r\n\r\n\tif(areEqual(a, b, strict))\r\n\t\treturn CompareResult.Equal;\r\n\r\n\tif(a && Type.hasMember(a, COMPARE_TO))\r\n\t\treturn a.compareTo(b); // If a has compareTo, use it.\r\n\telse if(b && Type.hasMember(b, COMPARE_TO))\r\n\t\treturn -b.compareTo(a); // a doesn't have compareTo? check if b does and invert.\r\n\r\n\t// Allow for special inequality..\r\n\r\n\tif(a>b || strict && (a===0 && b==0 || a===null && b===VOID0))\r\n\t\treturn CompareResult.Greater;\r\n\r\n\tif(b>a || strict && (b===0 && a==0 || b===null && a===VOID0))\r\n\t\treturn CompareResult.Less;\r\n\r\n\treturn NaN;\r\n}\r\n\r\n/**\r\n * Determines if two primitives are equal or if two objects have the same key/value combinations.\r\n * @param a\r\n * @param b\r\n * @param nullEquivalency If true, null/undefined will be equivalent to an empty object {}.\r\n * @param extraDepth\r\n * @returns {boolean}\r\n */\r\nexport function areEquivalent(a:any, b:any, nullEquivalency:boolean = true, extraDepth:number = 0):boolean\r\n{\r\n\r\n\t// Take a step by step approach to ensure efficiency.\r\n\tif(areEqual(a, b, true)) return true;\r\n\r\n\tif(a===null || a===VOID0 || b==null || b===VOID0)\r\n\t{\r\n\t\tif(!nullEquivalency) return false;\r\n\r\n\t\tif(Type.isObject(a))\r\n\t\t{\r\n\t\t\treturn !Object.keys(a).length;\r\n\t\t}\r\n\r\n\t\tif(Type.isObject(b))\r\n\t\t{\r\n\t\t\treturn !Object.keys(b).length;\r\n\t\t}\r\n\r\n\t\treturn (a===null || a===VOID0) && (b==null || b===VOID0);\r\n\t}\r\n\r\n\tif(Type.isObject(a) && Type.isObject(b))\r\n\t{\r\n\r\n\t\tvar aKeys = Object.keys(a), bKeys = Object.keys(b), len = aKeys.length;\r\n\t\tif(len!=bKeys.length)\r\n\t\t\treturn false;\r\n\r\n\t\taKeys.sort();\r\n\t\tbKeys.sort();\r\n\r\n\t\tfor(let i = 0; i0) {\r\n\r\n\t\t\tfor(let key of aKeys) {\r\n\t\t\t\tif(!areEquivalent(a[key], b[key], nullEquivalency, extraDepth-1)) return false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t}\r\n\r\n\treturn false;\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/commonjs/System/Diagnostics/Stopwatch.d.ts b/dist/commonjs/System/Diagnostics/Stopwatch.d.ts index b0bd97a1..e352f2e4 100644 --- a/dist/commonjs/System/Diagnostics/Stopwatch.d.ts +++ b/dist/commonjs/System/Diagnostics/Stopwatch.d.ts @@ -1,9 +1,9 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import TimeSpan from "../Time/TimeSpan"; +import { TimeSpan } from "../Time/TimeSpan"; +import { ITimer } from "../Timers/ITimer"; export default class Stopwatch implements ITimer { static getTimestampMilliseconds(): number; private _elapsed; diff --git a/dist/commonjs/System/Diagnostics/Stopwatch.js b/dist/commonjs/System/Diagnostics/Stopwatch.js index 5b87d59c..d1cb7e50 100644 --- a/dist/commonjs/System/Diagnostics/Stopwatch.js +++ b/dist/commonjs/System/Diagnostics/Stopwatch.js @@ -2,7 +2,7 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; +"use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); @@ -56,8 +56,8 @@ var Stopwatch = function () { var e = t - s; _._startTimeStamp = t; _._elapsed += e; - return new TimeSpan_1.default(e); - } else return TimeSpan_1.default.zero; + return new TimeSpan_1.TimeSpan(e); + } else return TimeSpan_1.TimeSpan.zero; } }, { key: "isRunning", @@ -72,7 +72,7 @@ var Stopwatch = function () { }, { key: "currentLap", get: function get() { - return this._isRunning ? new TimeSpan_1.default(this.currentLapMilliseconds) : TimeSpan_1.default.zero; + return this._isRunning ? new TimeSpan_1.TimeSpan(this.currentLapMilliseconds) : TimeSpan_1.TimeSpan.zero; } }, { key: "elapsedMilliseconds", @@ -85,7 +85,7 @@ var Stopwatch = function () { }, { key: "elapsed", get: function get() { - return new TimeSpan_1.default(this.elapsedMilliseconds); + return new TimeSpan_1.TimeSpan(this.elapsedMilliseconds); } }], [{ key: "getTimestampMilliseconds", @@ -104,7 +104,7 @@ var Stopwatch = function () { value: function measure(closure) { var start = _getTimestampMilliseconds(); closure(); - return new TimeSpan_1.default(_getTimestampMilliseconds() - start); + return new TimeSpan_1.TimeSpan(_getTimestampMilliseconds() - start); } }]); diff --git a/dist/commonjs/System/Diagnostics/Stopwatch.js.map b/dist/commonjs/System/Diagnostics/Stopwatch.js.map index da3983bd..33c4c8e6 100644 --- a/dist/commonjs/System/Diagnostics/Stopwatch.js.map +++ b/dist/commonjs/System/Diagnostics/Stopwatch.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Diagnostics/Stopwatch.ts","System/Diagnostics/Stopwatch.js"],"names":[],"mappings":";;;;AAOA;;;;;;AAEA,IAAA,aAAA,QAAqB,kBAArB,CAAA;AAEA,SAAA,yBAAA,GAAA;AAEC,WAAO,IAAK,IAAJ,EAAD,CAAa,OAAb,EAAP,CAFD;CAAA;;IAKA;AAkBC,aAlBD,SAkBC,GAAA;8BAlBD,WAkBC;;AAEC,aAAK,KAAL,GAFD;KAAA;;iBAlBD;;gCAqCM;AAEJ,gBAAI,IAAI,IAAJ,CAFA;AAGJ,gBAAG,CAAC,EAAE,UAAF,EAAc;AACjB,kBAAE,eAAF,GAAoB,2BAApB,CADiB;AAEjB,kBAAE,UAAF,GAAe,IAAf,CAFiB;aAAlB;;;;+BAMG;AAEH,gBAAI,IAAI,IAAJ,CAFD;AAGH,gBAAG,EAAE,UAAF,EAAc;AAChB,kBAAE,QAAF,IAAc,EAAE,sBAAF,CADE;AAEhB,kBAAE,UAAF,GAAe,KAAf,CAFgB;aAAjB;;;;gCAMI;AAEJ,gBAAI,IAAI,IAAJ,CAFA;AAGJ,cAAE,QAAF,GAAa,CAAb,CAHI;AAIJ,cAAE,UAAF,GAAe,KAAf,CAJI;AAKJ,cAAE,eAAF,GAAoB,GAApB,CALI;;;;8BAUF;AAEF,gBAAI,IAAI,IAAJ,CAFF;AAGF,gBAAG,EAAE,UAAF,EAAc;AAChB,oBAAI,IAAI,2BAAJ,CADY;AAEhB,oBAAI,IAAI,EAAE,eAAF,CAFQ;AAGhB,oBAAI,IAAI,IAAI,CAAJ,CAHQ;AAIhB,kBAAE,eAAF,GAAoB,CAApB,CAJgB;AAKhB,kBAAE,QAAF,IAAc,CAAd,CALgB;AAMhB,uBAAO,IAAI,WAAA,OAAA,CAAS,CAAb,CAAP,CANgB;aAAjB,MASC,OAAO,WAAA,OAAA,CAAS,IAAT,CATR;;;;4BAvDY;AAEZ,mBAAO,KAAK,UAAL,CAFK;;;;4BAmEa;AAEzB,mBAAO,KAAK,UAAL,GACH,8BAA6B,KAAK,eAAL,GAC9B,CAFI,CAFkB;;;;4BAOZ;AAEb,mBAAO,KAAK,UAAL,GACJ,IAAI,WAAA,OAAA,CAAS,KAAK,sBAAL,CADT,GAEJ,WAAA,OAAA,CAAS,IAAT,CAJU;;;;4BAOS;AAEtB,gBAAI,IAAI,IAAJ,CAFkB;AAGtB,gBAAI,cAAc,EAAE,QAAF,CAHI;AAKtB,gBAAG,EAAE,UAAF,EACF,eAAe,EAAE,sBAAF,CADhB;AAGA,mBAAO,WAAP,CARsB;;;;4BAWZ;AAEV,mBAAO,IAAI,WAAA,OAAA,CAAS,KAAK,mBAAL,CAApB,CAFU;;;;mDArGoB;AAE9B,mBAAO,2BAAP,CAF8B;;;;mCAmBhB;AAEd,gBAAI,IAAI,IAAI,SAAJ,EAAJ,CAFU;AAGd,cAAE,KAAF,GAHc;AAId,mBAAO,CAAP,CAJc;;;;gCAOA,SAAgB;AAE9B,gBAAI,QAAQ,2BAAR,CAF0B;AAG9B,sBAH8B;AAI9B,mBAAO,IAAI,WAAA,OAAA,CAAS,8BAA6B,KAA7B,CAApB,CAJ8B;;;;WA9BhC;;;AAAA,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ACoEA,QAAQ,OAAR,GAAkB,SAAlB","file":"System/Diagnostics/Stopwatch.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport TimeSpan from \"../Time/TimeSpan\";\r\n\r\nfunction getTimestampMilliseconds():number\r\n{\r\n\treturn (new Date()).getTime();\r\n}\r\n\r\nexport default\r\nclass Stopwatch implements ITimer\r\n{\r\n\r\n\tstatic getTimestampMilliseconds():number\r\n\t{\r\n\t\treturn getTimestampMilliseconds();\r\n\t}\r\n\r\n\tprivate _elapsed:number;\r\n\tprivate _startTimeStamp:number;\r\n\r\n\tprivate _isRunning:boolean;\r\n\tget isRunning():boolean\r\n\t{\r\n\t\treturn this._isRunning;\r\n\t}\r\n\r\n\tconstructor()\r\n\t{\r\n\t\tthis.reset();\r\n\t}\r\n\r\n\tstatic startNew():Stopwatch\r\n\t{\r\n\t\tvar s = new Stopwatch();\r\n\t\ts.start();\r\n\t\treturn s;\r\n\t}\r\n\r\n\tstatic measure(closure:()=>void):TimeSpan\r\n\t{\r\n\t\tvar start = getTimestampMilliseconds();\r\n\t\tclosure();\r\n\t\treturn new TimeSpan(getTimestampMilliseconds() - start);\r\n\t}\r\n\t\r\n\tstart():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(!_._isRunning) {\r\n\t\t\t_._startTimeStamp = getTimestampMilliseconds();\r\n\t\t\t_._isRunning = true;\r\n\t\t}\r\n\t}\r\n\r\n\tstop():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(_._isRunning) {\r\n\t\t\t_._elapsed += _.currentLapMilliseconds;\r\n\t\t\t_._isRunning = false;\r\n\t\t}\r\n\t}\r\n\r\n\treset():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_._elapsed = 0;\r\n\t\t_._isRunning = false;\r\n\t\t_._startTimeStamp = NaN;\r\n\t}\r\n\r\n\t// Effectively calls a stop start and continues timing...\r\n\t// Can also be called to effectively start a lap before calling it again to get the elapsed lap time.\r\n\tlap():TimeSpan\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(_._isRunning) {\r\n\t\t\tvar t = getTimestampMilliseconds();\r\n\t\t\tvar s = _._startTimeStamp;\r\n\t\t\tvar e = t - s;\r\n\t\t\t_._startTimeStamp = t;\r\n\t\t\t_._elapsed += e;\r\n\t\t\treturn new TimeSpan(e);\r\n\t\t}\r\n\t\telse\r\n\t\t\treturn TimeSpan.zero;\r\n\t}\r\n\r\n\tget currentLapMilliseconds():number\r\n\t{\r\n\t\treturn this._isRunning\r\n\t\t\t? (getTimestampMilliseconds() - this._startTimeStamp)\r\n\t\t\t: 0;\r\n\t}\r\n\r\n\tget currentLap():TimeSpan\r\n\t{\r\n\t\treturn this._isRunning\r\n\t\t\t? new TimeSpan(this.currentLapMilliseconds)\r\n\t\t\t: TimeSpan.zero;\r\n\t}\r\n\r\n\tget elapsedMilliseconds():number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar timeElapsed = _._elapsed;\r\n\r\n\t\tif(_._isRunning)\r\n\t\t\ttimeElapsed += _.currentLapMilliseconds;\r\n\r\n\t\treturn timeElapsed;\r\n\t}\r\n\r\n\tget elapsed():TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(this.elapsedMilliseconds);\r\n\t}\r\n\r\n}\r\n","/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n'use strict';\nconst TimeSpan_1 = require(\"../Time/TimeSpan\");\nfunction getTimestampMilliseconds() {\n return (new Date()).getTime();\n}\nclass Stopwatch {\n constructor() {\n this.reset();\n }\n static getTimestampMilliseconds() {\n return getTimestampMilliseconds();\n }\n get isRunning() {\n return this._isRunning;\n }\n static startNew() {\n var s = new Stopwatch();\n s.start();\n return s;\n }\n static measure(closure) {\n var start = getTimestampMilliseconds();\n closure();\n return new TimeSpan_1.default(getTimestampMilliseconds() - start);\n }\n start() {\n var _ = this;\n if (!_._isRunning) {\n _._startTimeStamp = getTimestampMilliseconds();\n _._isRunning = true;\n }\n }\n stop() {\n var _ = this;\n if (_._isRunning) {\n _._elapsed += _.currentLapMilliseconds;\n _._isRunning = false;\n }\n }\n reset() {\n var _ = this;\n _._elapsed = 0;\n _._isRunning = false;\n _._startTimeStamp = NaN;\n }\n lap() {\n var _ = this;\n if (_._isRunning) {\n var t = getTimestampMilliseconds();\n var s = _._startTimeStamp;\n var e = t - s;\n _._startTimeStamp = t;\n _._elapsed += e;\n return new TimeSpan_1.default(e);\n }\n else\n return TimeSpan_1.default.zero;\n }\n get currentLapMilliseconds() {\n return this._isRunning\n ? (getTimestampMilliseconds() - this._startTimeStamp)\n : 0;\n }\n get currentLap() {\n return this._isRunning\n ? new TimeSpan_1.default(this.currentLapMilliseconds)\n : TimeSpan_1.default.zero;\n }\n get elapsedMilliseconds() {\n var _ = this;\n var timeElapsed = _._elapsed;\n if (_._isRunning)\n timeElapsed += _.currentLapMilliseconds;\n return timeElapsed;\n }\n get elapsed() {\n return new TimeSpan_1.default(this.elapsedMilliseconds);\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Stopwatch;\n"]} \ No newline at end of file +{"version":3,"sources":["System/Diagnostics/Stopwatch.js","System/Diagnostics/Stopwatch.ts"],"names":[],"mappings":";;;;AAIA;;;;;;ACEA,IAAA,aAAA,QAAuB,kBAAvB,CAAA;AAGA,SAAA,yBAAA,GAAA;AAEC,WAAO,IAAK,IAAJ,EAAD,CAAa,OAAb,EAAP,CAFD;CAAA;;IAKA;AAkBC,aAlBD,SAkBC,GAAA;8BAlBD,WAkBC;;AAEC,aAAK,KAAL,GAFD;KAAA;;iBAlBD;;gCAqCM;AAEJ,gBAAI,IAAI,IAAJ,CAFA;AAGJ,gBAAG,CAAC,EAAE,UAAF,EACJ;AACC,kBAAE,eAAF,GAAoB,2BAApB,CADD;AAEC,kBAAE,UAAF,GAAe,IAAf,CAFD;aADA;;;;+BAOG;AAEH,gBAAI,IAAI,IAAJ,CAFD;AAGH,gBAAG,EAAE,UAAF,EACH;AACC,kBAAE,QAAF,IAAc,EAAE,sBAAF,CADf;AAEC,kBAAE,UAAF,GAAe,KAAf,CAFD;aADA;;;;gCAOI;AAEJ,gBAAI,IAAI,IAAJ,CAFA;AAGJ,cAAE,QAAF,GAAa,CAAb,CAHI;AAIJ,cAAE,UAAF,GAAe,KAAf,CAJI;AAKJ,cAAE,eAAF,GAAoB,GAApB,CALI;;;;8BAUF;AAEF,gBAAI,IAAI,IAAJ,CAFF;AAGF,gBAAG,EAAE,UAAF,EACH;AACC,oBAAI,IAAI,2BAAJ,CADL;AAEC,oBAAI,IAAI,EAAE,eAAF,CAFT;AAGC,oBAAI,IAAI,IAAI,CAAJ,CAHT;AAIC,kBAAE,eAAF,GAAoB,CAApB,CAJD;AAKC,kBAAE,QAAF,IAAc,CAAd,CALD;AAMC,uBAAO,IAAI,WAAA,QAAA,CAAS,CAAb,CAAP,CAND;aADA,MAUC,OAAO,WAAA,QAAA,CAAS,IAAT,CAVR;;;;4BAzDY;AAEZ,mBAAO,KAAK,UAAL,CAFK;;;;4BAsEa;AAEzB,mBAAO,KAAK,UAAL,GACH,8BAA6B,KAAK,eAAL,GAC9B,CAFI,CAFkB;;;;4BAOZ;AAEb,mBAAO,KAAK,UAAL,GACJ,IAAI,WAAA,QAAA,CAAS,KAAK,sBAAL,CADT,GAEJ,WAAA,QAAA,CAAS,IAAT,CAJU;;;;4BAOS;AAEtB,gBAAI,IAAI,IAAJ,CAFkB;AAGtB,gBAAI,cAAc,EAAE,QAAF,CAHI;AAKtB,gBAAG,EAAE,UAAF,EACF,eAAe,EAAE,sBAAF,CADhB;AAGA,mBAAO,WAAP,CARsB;;;;4BAWZ;AAEV,mBAAO,IAAI,WAAA,QAAA,CAAS,KAAK,mBAAL,CAApB,CAFU;;;;mDAxGoB;AAE9B,mBAAO,2BAAP,CAF8B;;;;mCAmBhB;AAEd,gBAAI,IAAI,IAAI,SAAJ,EAAJ,CAFU;AAGd,cAAE,KAAF,GAHc;AAId,mBAAO,CAAP,CAJc;;;;gCAOA,SAAgB;AAE9B,gBAAI,QAAQ,2BAAR,CAF0B;AAG9B,sBAH8B;AAI9B,mBAAO,IAAI,WAAA,QAAA,CAAS,8BAA6B,KAA7B,CAApB,CAJ8B;;;;WA9BhC;;;AAAA,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADsEA,QAAQ,OAAR,GAAkB,SAAlB","file":"System/Diagnostics/Stopwatch.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst TimeSpan_1 = require(\"../Time/TimeSpan\");\nfunction getTimestampMilliseconds() {\n return (new Date()).getTime();\n}\nclass Stopwatch {\n constructor() {\n this.reset();\n }\n static getTimestampMilliseconds() {\n return getTimestampMilliseconds();\n }\n get isRunning() {\n return this._isRunning;\n }\n static startNew() {\n var s = new Stopwatch();\n s.start();\n return s;\n }\n static measure(closure) {\n var start = getTimestampMilliseconds();\n closure();\n return new TimeSpan_1.TimeSpan(getTimestampMilliseconds() - start);\n }\n start() {\n var _ = this;\n if (!_._isRunning) {\n _._startTimeStamp = getTimestampMilliseconds();\n _._isRunning = true;\n }\n }\n stop() {\n var _ = this;\n if (_._isRunning) {\n _._elapsed += _.currentLapMilliseconds;\n _._isRunning = false;\n }\n }\n reset() {\n var _ = this;\n _._elapsed = 0;\n _._isRunning = false;\n _._startTimeStamp = NaN;\n }\n lap() {\n var _ = this;\n if (_._isRunning) {\n var t = getTimestampMilliseconds();\n var s = _._startTimeStamp;\n var e = t - s;\n _._startTimeStamp = t;\n _._elapsed += e;\n return new TimeSpan_1.TimeSpan(e);\n }\n else\n return TimeSpan_1.TimeSpan.zero;\n }\n get currentLapMilliseconds() {\n return this._isRunning\n ? (getTimestampMilliseconds() - this._startTimeStamp)\n : 0;\n }\n get currentLap() {\n return this._isRunning\n ? new TimeSpan_1.TimeSpan(this.currentLapMilliseconds)\n : TimeSpan_1.TimeSpan.zero;\n }\n get elapsedMilliseconds() {\n var _ = this;\n var timeElapsed = _._elapsed;\n if (_._isRunning)\n timeElapsed += _.currentLapMilliseconds;\n return timeElapsed;\n }\n get elapsed() {\n return new TimeSpan_1.TimeSpan(this.elapsedMilliseconds);\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Stopwatch;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {TimeSpan} from \"../Time/TimeSpan\";\r\nimport {ITimer} from \"../Timers/ITimer\";\r\n\r\nfunction getTimestampMilliseconds():number\r\n{\r\n\treturn (new Date()).getTime();\r\n}\r\n\r\nexport default\r\nclass Stopwatch implements ITimer\r\n{\r\n\r\n\tstatic getTimestampMilliseconds():number\r\n\t{\r\n\t\treturn getTimestampMilliseconds();\r\n\t}\r\n\r\n\tprivate _elapsed:number;\r\n\tprivate _startTimeStamp:number;\r\n\r\n\tprivate _isRunning:boolean;\r\n\tget isRunning():boolean\r\n\t{\r\n\t\treturn this._isRunning;\r\n\t}\r\n\r\n\tconstructor()\r\n\t{\r\n\t\tthis.reset();\r\n\t}\r\n\r\n\tstatic startNew():Stopwatch\r\n\t{\r\n\t\tvar s = new Stopwatch();\r\n\t\ts.start();\r\n\t\treturn s;\r\n\t}\r\n\r\n\tstatic measure(closure:()=>void):TimeSpan\r\n\t{\r\n\t\tvar start = getTimestampMilliseconds();\r\n\t\tclosure();\r\n\t\treturn new TimeSpan(getTimestampMilliseconds() - start);\r\n\t}\r\n\r\n\tstart():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(!_._isRunning)\r\n\t\t{\r\n\t\t\t_._startTimeStamp = getTimestampMilliseconds();\r\n\t\t\t_._isRunning = true;\r\n\t\t}\r\n\t}\r\n\r\n\tstop():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(_._isRunning)\r\n\t\t{\r\n\t\t\t_._elapsed += _.currentLapMilliseconds;\r\n\t\t\t_._isRunning = false;\r\n\t\t}\r\n\t}\r\n\r\n\treset():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_._elapsed = 0;\r\n\t\t_._isRunning = false;\r\n\t\t_._startTimeStamp = NaN;\r\n\t}\r\n\r\n\t// Effectively calls a stop start and continues timing...\r\n\t// Can also be called to effectively start a lap before calling it again to get the elapsed lap time.\r\n\tlap():TimeSpan\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(_._isRunning)\r\n\t\t{\r\n\t\t\tvar t = getTimestampMilliseconds();\r\n\t\t\tvar s = _._startTimeStamp;\r\n\t\t\tvar e = t - s;\r\n\t\t\t_._startTimeStamp = t;\r\n\t\t\t_._elapsed += e;\r\n\t\t\treturn new TimeSpan(e);\r\n\t\t}\r\n\t\telse\r\n\t\t\treturn TimeSpan.zero;\r\n\t}\r\n\r\n\tget currentLapMilliseconds():number\r\n\t{\r\n\t\treturn this._isRunning\r\n\t\t\t? (getTimestampMilliseconds() - this._startTimeStamp)\r\n\t\t\t: 0;\r\n\t}\r\n\r\n\tget currentLap():TimeSpan\r\n\t{\r\n\t\treturn this._isRunning\r\n\t\t\t? new TimeSpan(this.currentLapMilliseconds)\r\n\t\t\t: TimeSpan.zero;\r\n\t}\r\n\r\n\tget elapsedMilliseconds():number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar timeElapsed = _._elapsed;\r\n\r\n\t\tif(_._isRunning)\r\n\t\t\ttimeElapsed += _.currentLapMilliseconds;\r\n\r\n\t\treturn timeElapsed;\r\n\t}\r\n\r\n\tget elapsed():TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(this.elapsedMilliseconds);\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/commonjs/System/Disposable/DisposableBase.d.ts b/dist/commonjs/System/Disposable/DisposableBase.d.ts index 1acd883f..509f3cf0 100644 --- a/dist/commonjs/System/Disposable/DisposableBase.d.ts +++ b/dist/commonjs/System/Disposable/DisposableBase.d.ts @@ -1,9 +1,9 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -declare abstract class DisposableBase implements IDisposableAware { +import { IDisposableAware } from "./IDisposableAware"; +export declare abstract class DisposableBase implements IDisposableAware { private _finalizer; constructor(_finalizer?: () => void); private _wasDisposed; diff --git a/dist/commonjs/System/Disposable/DisposableBase.js b/dist/commonjs/System/Disposable/DisposableBase.js index 9bf3bab2..a697d6eb 100644 --- a/dist/commonjs/System/Disposable/DisposableBase.js +++ b/dist/commonjs/System/Disposable/DisposableBase.js @@ -2,13 +2,13 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; +"use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -var ObjectDisposedException_1 = require('./ObjectDisposedException'); +var ObjectDisposedException_1 = require("./ObjectDisposedException"); var DisposableBase = function () { function DisposableBase(_finalizer) { @@ -19,15 +19,15 @@ var DisposableBase = function () { } _createClass(DisposableBase, [{ - key: 'throwIfDisposed', + key: "throwIfDisposed", value: function throwIfDisposed(message) { var objectName = arguments.length <= 1 || arguments[1] === undefined ? this._disposableObjectName : arguments[1]; - if (this._wasDisposed) throw new ObjectDisposedException_1.default(objectName, message); + if (this._wasDisposed) throw new ObjectDisposedException_1.ObjectDisposedException(objectName, message); return true; } }, { - key: 'dispose', + key: "dispose", value: function dispose() { var _ = this; if (!_._wasDisposed) { @@ -40,10 +40,10 @@ var DisposableBase = function () { } } }, { - key: '_onDispose', + key: "_onDispose", value: function _onDispose() {} }, { - key: 'wasDisposed', + key: "wasDisposed", get: function get() { return this._wasDisposed; } @@ -52,6 +52,7 @@ var DisposableBase = function () { return DisposableBase; }(); +exports.DisposableBase = DisposableBase; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = DisposableBase; //# sourceMappingURL=DisposableBase.js.map diff --git a/dist/commonjs/System/Disposable/DisposableBase.js.map b/dist/commonjs/System/Disposable/DisposableBase.js.map index 8ea56f80..5237a2ec 100644 --- a/dist/commonjs/System/Disposable/DisposableBase.js.map +++ b/dist/commonjs/System/Disposable/DisposableBase.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Disposable/DisposableBase.ts","System/Disposable/DisposableBase.js"],"names":[],"mappings":";;;;AAMA;;;;;;AAEA,IAAA,4BAAA,QAAoC,2BAApC,CAAA;;IAEA;AAGC,aAHD,cAGC,CAAoB,UAApB,EAA0C;8BAH3C,gBAG2C;;AAAtB,aAAA,UAAA,GAAA,UAAA,CAAsB;AAIlC,aAAA,YAAA,GAAuB,KAAvB,CAJkC;KAA1C;;iBAHD;;wCAiBE,SAC8C;gBAA9C,mEAAoB,KAAK,qBAAL,gBAA0B;;AAE9C,gBAAG,KAAK,YAAL,EACF,MAAM,IAAI,0BAAA,OAAA,CAAwB,UAA5B,EAAwC,OAAxC,CAAN,CADD;AAEA,mBAAO,IAAP,CAJ8C;;;;kCAQxC;AAEN,gBAAI,IAAI,IAAJ,CAFE;AAGN,gBAAG,CAAC,EAAE,YAAF,EACJ;AAGC,kBAAE,YAAF,GAAiB,IAAjB,CAHD;AAIC,oBACA;AACC,sBAAE,UAAF,GADD;iBADA,SAKA;AACC,wBAAG,EAAE,UAAF,EACF,EAAE,UAAF,GADD;iBAND;aALD;;;;qCAkBmB;;;4BAvCL;AAEd,mBAAO,KAAK,YAAL,CAFO;;;;WARhB;;;AAmDA,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;AC1BA,QAAQ,OAAR,GD0Be,cC1Bf","file":"System/Disposable/DisposableBase.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport ObjectDisposedException from './ObjectDisposedException';\r\n\r\nabstract class DisposableBase implements IDisposableAware\r\n{\r\n\r\n\tconstructor(private _finalizer?:() => void)\r\n\t{\r\n\t}\r\n\r\n\tprivate _wasDisposed:boolean = false;\r\n\tget wasDisposed():boolean\r\n\t{\r\n\t\treturn this._wasDisposed;\r\n\t}\r\n\r\n\t// Allow for simple override of name.\r\n\tprotected _disposableObjectName:string;\r\n\r\n\tprotected throwIfDisposed(\r\n\t\tmessage?:string,\r\n\t\tobjectName:string = this._disposableObjectName):boolean\r\n\t{\r\n\t\tif(this._wasDisposed)\r\n\t\t\tthrow new ObjectDisposedException(objectName, message);\r\n\t\treturn true;\r\n\t}\r\n\r\n\r\n\tdispose():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(!_._wasDisposed)\r\n\t\t{\r\n\t\t\t// Preemptively set wasDisposed in order to prevent repeated disposing.\r\n\t\t\t// NOTE: in true multi-threaded scenarios, this needs to be synchronized.\r\n\t\t\t_._wasDisposed = true;\r\n\t\t\ttry\r\n\t\t\t{\r\n\t\t\t\t_._onDispose(); // Protected override.\r\n\t\t\t}\r\n\t\t\tfinally\r\n\t\t\t{\r\n\t\t\t\tif(_._finalizer) // Private finalizer...\r\n\t\t\t\t\t_._finalizer();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Placeholder for overrides.\r\n\tprotected _onDispose():void { }\r\n\r\n}\r\n\r\nexport default DisposableBase;","/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n'use strict';\nconst ObjectDisposedException_1 = require('./ObjectDisposedException');\nclass DisposableBase {\n constructor(_finalizer) {\n this._finalizer = _finalizer;\n this._wasDisposed = false;\n }\n get wasDisposed() {\n return this._wasDisposed;\n }\n throwIfDisposed(message, objectName = this._disposableObjectName) {\n if (this._wasDisposed)\n throw new ObjectDisposedException_1.default(objectName, message);\n return true;\n }\n dispose() {\n var _ = this;\n if (!_._wasDisposed) {\n _._wasDisposed = true;\n try {\n _._onDispose();\n }\n finally {\n if (_._finalizer)\n _._finalizer();\n }\n }\n }\n _onDispose() { }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = DisposableBase;\n"]} \ No newline at end of file +{"version":3,"sources":["System/Disposable/DisposableBase.js","System/Disposable/DisposableBase.ts"],"names":[],"mappings":";;;;AAIA;;;;;;ACCA,IAAA,4BAAA,QAAsC,2BAAtC,CAAA;;IAGA;AAGC,aAHD,cAGC,CAAoB,UAApB,EAA0C;8BAH3C,gBAG2C;;AAAtB,aAAA,UAAA,GAAA,UAAA,CAAsB;AAIlC,aAAA,YAAA,GAAuB,KAAvB,CAJkC;KAA1C;;iBAHD;;wCAiBE,SAC8C;gBAA9C,mEAAoB,KAAK,qBAAL,gBAA0B;;AAE9C,gBAAG,KAAK,YAAL,EACF,MAAM,IAAI,0BAAA,uBAAA,CAAwB,UAA5B,EAAwC,OAAxC,CAAN,CADD;AAEA,mBAAO,IAAP,CAJ8C;;;;kCAQxC;AAEN,gBAAI,IAAI,IAAJ,CAFE;AAGN,gBAAG,CAAC,EAAE,YAAF,EACJ;AAGC,kBAAE,YAAF,GAAiB,IAAjB,CAHD;AAIC,oBACA;AACC,sBAAE,UAAF,GADD;iBADA,SAKA;AACC,wBAAG,EAAE,UAAF,EACF,EAAE,UAAF,GADD;iBAND;aALD;;;;qCAkBmB;;;4BAvCL;AAEd,mBAAO,KAAK,YAAL,CAFO;;;;WARhB;;;AAAsB,QAAA,cAAA,GAAc,cAAd;AAmDtB,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADvBA,QAAQ,OAAR,GCuBe,cDvBf","file":"System/Disposable/DisposableBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst ObjectDisposedException_1 = require(\"./ObjectDisposedException\");\nclass DisposableBase {\n constructor(_finalizer) {\n this._finalizer = _finalizer;\n this._wasDisposed = false;\n }\n get wasDisposed() {\n return this._wasDisposed;\n }\n throwIfDisposed(message, objectName = this._disposableObjectName) {\n if (this._wasDisposed)\n throw new ObjectDisposedException_1.ObjectDisposedException(objectName, message);\n return true;\n }\n dispose() {\n var _ = this;\n if (!_._wasDisposed) {\n _._wasDisposed = true;\n try {\n _._onDispose();\n }\n finally {\n if (_._finalizer)\n _._finalizer();\n }\n }\n }\n _onDispose() { }\n}\nexports.DisposableBase = DisposableBase;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = DisposableBase;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {ObjectDisposedException} from \"./ObjectDisposedException\";\r\nimport {IDisposableAware} from \"./IDisposableAware\";\r\n\r\nexport abstract class DisposableBase implements IDisposableAware\r\n{\r\n\r\n\tconstructor(private _finalizer?:() => void)\r\n\t{\r\n\t}\r\n\r\n\tprivate _wasDisposed:boolean = false;\r\n\tget wasDisposed():boolean\r\n\t{\r\n\t\treturn this._wasDisposed;\r\n\t}\r\n\r\n\t// Allow for simple override of name.\r\n\tprotected _disposableObjectName:string;\r\n\r\n\tprotected throwIfDisposed(\r\n\t\tmessage?:string,\r\n\t\tobjectName:string = this._disposableObjectName):boolean\r\n\t{\r\n\t\tif(this._wasDisposed)\r\n\t\t\tthrow new ObjectDisposedException(objectName, message);\r\n\t\treturn true;\r\n\t}\r\n\r\n\r\n\tdispose():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(!_._wasDisposed)\r\n\t\t{\r\n\t\t\t// Preemptively set wasDisposed in order to prevent repeated disposing.\r\n\t\t\t// NOTE: in true multi-threaded scenarios, this needs to be synchronized.\r\n\t\t\t_._wasDisposed = true;\r\n\t\t\ttry\r\n\t\t\t{\r\n\t\t\t\t_._onDispose(); // Protected override.\r\n\t\t\t}\r\n\t\t\tfinally\r\n\t\t\t{\r\n\t\t\t\tif(_._finalizer) // Private finalizer...\r\n\t\t\t\t\t_._finalizer();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Placeholder for overrides.\r\n\tprotected _onDispose():void { }\r\n\r\n}\r\n\r\nexport default DisposableBase;"]} \ No newline at end of file diff --git a/dist/commonjs/System/Disposable/ObjectDisposedException.d.ts b/dist/commonjs/System/Disposable/ObjectDisposedException.d.ts index 66e40831..8af0e485 100644 --- a/dist/commonjs/System/Disposable/ObjectDisposedException.d.ts +++ b/dist/commonjs/System/Disposable/ObjectDisposedException.d.ts @@ -1,15 +1,16 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -import Exception from '../Exception'; -import InvalidOperationException from '../Exceptions/InvalidOperationException'; -export default class ObjectDisposedException extends InvalidOperationException { +import { Exception } from "../Exception"; +import { InvalidOperationException } from "../Exceptions/InvalidOperationException"; +import { IDisposableAware } from "./IDisposableAware"; +export declare class ObjectDisposedException extends InvalidOperationException { objectName: string; constructor(objectName: string, message?: string, innerException?: Exception); protected getName(): string; toString(): string; static throwIfDisposed(disposable: IDisposableAware, objectName?: string, message?: string): void; } +export default ObjectDisposedException; diff --git a/dist/commonjs/System/Disposable/ObjectDisposedException.js b/dist/commonjs/System/Disposable/ObjectDisposedException.js index 17dd6655..3ebc892e 100644 --- a/dist/commonjs/System/Disposable/ObjectDisposedException.js +++ b/dist/commonjs/System/Disposable/ObjectDisposedException.js @@ -3,7 +3,7 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -'use strict'; +"use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); @@ -13,7 +13,7 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } -var InvalidOperationException_1 = require('../Exceptions/InvalidOperationException'); +var InvalidOperationException_1 = require("../Exceptions/InvalidOperationException"); var NAME = 'ObjectDisposedException'; var ObjectDisposedException = function (_InvalidOperationExce) { @@ -31,12 +31,12 @@ var ObjectDisposedException = function (_InvalidOperationExce) { } _createClass(ObjectDisposedException, [{ - key: 'getName', + key: "getName", value: function getName() { return NAME; } }, { - key: 'toString', + key: "toString", value: function toString() { var _ = this, oName = _.objectName; @@ -44,15 +44,16 @@ var ObjectDisposedException = function (_InvalidOperationExce) { return '[' + _.name + ': ' + oName + _.message + ']'; } }], [{ - key: 'throwIfDisposed', + key: "throwIfDisposed", value: function throwIfDisposed(disposable, objectName, message) { if (disposable.wasDisposed) throw new ObjectDisposedException(objectName, message); } }]); return ObjectDisposedException; -}(InvalidOperationException_1.default); +}(InvalidOperationException_1.InvalidOperationException); +exports.ObjectDisposedException = ObjectDisposedException; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = ObjectDisposedException; //# sourceMappingURL=ObjectDisposedException.js.map diff --git a/dist/commonjs/System/Disposable/ObjectDisposedException.js.map b/dist/commonjs/System/Disposable/ObjectDisposedException.js.map index 6b633518..74e915a4 100644 --- a/dist/commonjs/System/Disposable/ObjectDisposedException.js.map +++ b/dist/commonjs/System/Disposable/ObjectDisposedException.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Disposable/ObjectDisposedException.ts","System/Disposable/ObjectDisposedException.js"],"names":[],"mappings":";;;;;AAOA;;;;;;;;;;AAGA,IAAA,8BAAA,QAAsC,yCAAtC,CAAA;AAGA,IAAM,OAAc,yBAAd;;IAEN;;;AAQC,aARD,uBAQC,CACC,UADD,EAGgC;YAD/B,gEAAiB,oBACc;YAA/B,uEAA2B,oBAAI;;8BAXjC,yBAWiC;;sEAXjC,oCAaQ,SAAS,gBAAgB,UAAC,CAAD,EAAE;AAChC,cAAE,UAAF,GAAe,UAAf,CADgC;SAAF,GAFA;KAHhC;;iBARD;;kCAmBkB;AAEhB,mBAAO,IAAP,CAFgB;;;;mCAKT;AAEP,gBAAI,IAAI,IAAJ;gBAAU,QAAQ,EAAE,UAAF,CAFf;AAGP,oBAAQ,QAAS,MAAM,KAAN,GAAc,IAAd,GAAsB,EAA/B,CAHD;AAKP,mBAAO,MAAM,EAAE,IAAF,GAAS,IAAf,GAAsB,KAAtB,GAA8B,EAAE,OAAF,GAAY,GAA1C,CALA;;;;wCASP,YACA,YACA,SAAe;AAEf,gBAAG,WAAW,WAAX,EACF,MAAM,IAAI,uBAAJ,CAA4B,UAA5B,EAAwC,OAAxC,CAAN,CADD;;;;WArCF;EAEQ,4BAAA,OAAA;;AAFR,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ACaA,QAAQ,OAAR,GAAkB,uBAAlB","file":"System/Disposable/ObjectDisposedException.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport Exception from '../Exception';\r\nimport InvalidOperationException from '../Exceptions/InvalidOperationException';\r\n\r\n\r\nconst NAME:string = 'ObjectDisposedException';\r\n\r\nexport default\r\nclass ObjectDisposedException\r\nextends InvalidOperationException\r\n{\r\n\r\n\tobjectName:string;\r\n\r\n\t// For simplicity and consistency, lets stick with 1 signature.\r\n\tconstructor(\r\n\t\tobjectName:string,\r\n\t\tmessage:string = null,\r\n\t\tinnerException:Exception = null)\r\n\t{\r\n\t\tsuper(message, innerException, (_)=>{\r\n\t\t\t_.objectName = objectName;\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\ttoString():string\r\n\t{\r\n\t\tvar _ = this, oName = _.objectName;\r\n\t\toName = oName ? ('{' + oName + '} ') : '';\r\n\r\n\t\treturn '[' + _.name + ': ' + oName + _.message + ']';\r\n\t}\r\n\r\n\tstatic throwIfDisposed(\r\n\t\tdisposable:IDisposableAware,\r\n\t\tobjectName?:string,\r\n\t\tmessage?:string):void\r\n\t{\r\n\t\tif(disposable.wasDisposed)\r\n\t\t\tthrow new ObjectDisposedException(objectName, message);\r\n\t}\r\n\r\n}\r\n","/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\n'use strict';\nconst InvalidOperationException_1 = require('../Exceptions/InvalidOperationException');\nconst NAME = 'ObjectDisposedException';\nclass ObjectDisposedException extends InvalidOperationException_1.default {\n constructor(objectName, message = null, innerException = null) {\n super(message, innerException, (_) => {\n _.objectName = objectName;\n });\n }\n getName() {\n return NAME;\n }\n toString() {\n var _ = this, oName = _.objectName;\n oName = oName ? ('{' + oName + '} ') : '';\n return '[' + _.name + ': ' + oName + _.message + ']';\n }\n static throwIfDisposed(disposable, objectName, message) {\n if (disposable.wasDisposed)\n throw new ObjectDisposedException(objectName, message);\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = ObjectDisposedException;\n"]} \ No newline at end of file +{"version":3,"sources":["System/Disposable/ObjectDisposedException.js","System/Disposable/ObjectDisposedException.ts"],"names":[],"mappings":";;;;;AAKA;;;;;;;;;;ACEA,IAAA,8BAAA,QAAwC,yCAAxC,CAAA;AAIA,IAAM,OAAc,yBAAd;;IAEN;;;AAOC,aAPD,uBAOC,CACC,UADD,EAGgC;YAD/B,gEAAiB,oBACc;YAA/B,uEAA2B,oBAAI;;8BAVjC,yBAUiC;;sEAVjC,oCAYQ,SAAS,gBAAgB,UAAC,CAAD,EAAE;AAChC,cAAE,UAAF,GAAe,UAAf,CADgC;SAAF,GAFA;KAHhC;;iBAPD;;kCAkBkB;AAEhB,mBAAO,IAAP,CAFgB;;;;mCAKT;AAEP,gBAAI,IAAI,IAAJ;gBAAU,QAAQ,EAAE,UAAF,CAFf;AAGP,oBAAQ,QAAS,MAAM,KAAN,GAAc,IAAd,GAAsB,EAA/B,CAHD;AAKP,mBAAO,MAAM,EAAE,IAAF,GAAS,IAAf,GAAsB,KAAtB,GAA8B,EAAE,OAAF,GAAY,GAA1C,CALA;;;;wCASP,YACA,YACA,SAAe;AAEf,gBAAG,WAAW,WAAX,EACF,MAAM,IAAI,uBAAJ,CAA4B,UAA5B,EAAwC,OAAxC,CAAN,CADD;;;;WApCF;EACQ,4BAAA,yBAAA;;AADK,QAAA,uBAAA,GAAuB,uBAAvB;AA0Cb,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;AD1BA,QAAQ,OAAR,GC0Be,uBD1Bf","file":"System/Disposable/ObjectDisposedException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\n\"use strict\";\nconst InvalidOperationException_1 = require(\"../Exceptions/InvalidOperationException\");\nconst NAME = 'ObjectDisposedException';\nclass ObjectDisposedException extends InvalidOperationException_1.InvalidOperationException {\n constructor(objectName, message = null, innerException = null) {\n super(message, innerException, (_) => {\n _.objectName = objectName;\n });\n }\n getName() {\n return NAME;\n }\n toString() {\n var _ = this, oName = _.objectName;\n oName = oName ? ('{' + oName + '} ') : '';\n return '[' + _.name + ': ' + oName + _.message + ']';\n }\n static throwIfDisposed(disposable, objectName, message) {\n if (disposable.wasDisposed)\n throw new ObjectDisposedException(objectName, message);\n }\n}\nexports.ObjectDisposedException = ObjectDisposedException;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = ObjectDisposedException;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\nimport {Exception} from \"../Exception\";\r\nimport {InvalidOperationException} from \"../Exceptions/InvalidOperationException\";\r\nimport {IDisposableAware} from \"./IDisposableAware\";\r\n\r\n\r\nconst NAME:string = 'ObjectDisposedException';\r\n\r\nexport class ObjectDisposedException\r\nextends InvalidOperationException\r\n{\r\n\r\n\tobjectName:string;\r\n\r\n\t// For simplicity and consistency, lets stick with 1 signature.\r\n\tconstructor(\r\n\t\tobjectName:string,\r\n\t\tmessage:string = null,\r\n\t\tinnerException:Exception = null)\r\n\t{\r\n\t\tsuper(message, innerException, (_)=>{\r\n\t\t\t_.objectName = objectName;\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\ttoString():string\r\n\t{\r\n\t\tvar _ = this, oName = _.objectName;\r\n\t\toName = oName ? ('{' + oName + '} ') : '';\r\n\r\n\t\treturn '[' + _.name + ': ' + oName + _.message + ']';\r\n\t}\r\n\r\n\tstatic throwIfDisposed(\r\n\t\tdisposable:IDisposableAware,\r\n\t\tobjectName?:string,\r\n\t\tmessage?:string):void\r\n\t{\r\n\t\tif(disposable.wasDisposed)\r\n\t\t\tthrow new ObjectDisposedException(objectName, message);\r\n\t}\r\n\r\n}\r\n\r\nexport default ObjectDisposedException;"]} \ No newline at end of file diff --git a/dist/commonjs/System/Disposable/ObjectPool.d.ts b/dist/commonjs/System/Disposable/ObjectPool.d.ts index af854543..1dbbcbf5 100644 --- a/dist/commonjs/System/Disposable/ObjectPool.d.ts +++ b/dist/commonjs/System/Disposable/ObjectPool.d.ts @@ -4,8 +4,8 @@ * Based upon ObjectPool from Parallel Extension Extras and other ObjectPool implementations. * Uses .add(T) and .take():T */ -import DisposableBase from "./DisposableBase"; -export default class ObjectPool extends DisposableBase { +import { DisposableBase } from "./DisposableBase"; +export declare class ObjectPool extends DisposableBase { private _maxSize; private _generator; private _pool; @@ -28,3 +28,4 @@ export default class ObjectPool extends DisposableBase { add(o: T): void; take(): T; } +export default ObjectPool; diff --git a/dist/commonjs/System/Disposable/ObjectPool.js b/dist/commonjs/System/Disposable/ObjectPool.js index bcb172c6..827a79c7 100644 --- a/dist/commonjs/System/Disposable/ObjectPool.js +++ b/dist/commonjs/System/Disposable/ObjectPool.js @@ -26,8 +26,8 @@ var OBJECT_POOL = "ObjectPool", MUST_BE_GT1 = "Must be at valid number least 1.", MUST_BE_LTM = "Must be less than or equal to " + ABSOLUTE_MAX_SIZE + "."; -var ObjectPool = function (_DisposableBase_1$def) { - _inherits(ObjectPool, _DisposableBase_1$def); +var ObjectPool = function (_DisposableBase_1$Dis) { + _inherits(ObjectPool, _DisposableBase_1$Dis); function ObjectPool(_maxSize, _generator) { _classCallCheck(this, ObjectPool); @@ -37,20 +37,20 @@ var ObjectPool = function (_DisposableBase_1$def) { _this._maxSize = _maxSize; _this._generator = _generator; _this.autoClearTimeout = 5000; - if (isNaN(_maxSize) || _maxSize < 1) throw new ArgumentOutOfRangeException_1.default(_MAX_SIZE, _maxSize, MUST_BE_GT1); - if (_maxSize > ABSOLUTE_MAX_SIZE) throw new ArgumentOutOfRangeException_1.default(_MAX_SIZE, _maxSize, MUST_BE_LTM); + if (isNaN(_maxSize) || _maxSize < 1) throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(_MAX_SIZE, _maxSize, MUST_BE_GT1); + if (_maxSize > ABSOLUTE_MAX_SIZE) throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(_MAX_SIZE, _maxSize, MUST_BE_LTM); _this._localAbsMaxSize = Math.min(_maxSize * 2, ABSOLUTE_MAX_SIZE); var _ = _this; _._disposableObjectName = OBJECT_POOL; _._pool = []; - _._trimmer = new TaskHandler_1.default(function () { + _._trimmer = new TaskHandler_1.TaskHandler(function () { return _._trim(); }); var clear = function clear() { return _._clear(); }; - _._flusher = new TaskHandler_1.default(clear); - _._autoFlusher = new TaskHandler_1.default(clear); + _._flusher = new TaskHandler_1.TaskHandler(clear); + _._autoFlusher = new TaskHandler_1.TaskHandler(clear); return _this; } @@ -59,7 +59,7 @@ var ObjectPool = function (_DisposableBase_1$def) { value: function _trim() { var pool = this._pool; while (pool.length > this._maxSize) { - dispose_1.default.withoutException(pool.pop()); + dispose_1.dispose.withoutException(pool.pop()); } } }, { @@ -76,7 +76,7 @@ var ObjectPool = function (_DisposableBase_1$def) { _._trimmer.cancel(); _._flusher.cancel(); _._autoFlusher.cancel(); - dispose_1.default.these(p, true); + dispose_1.dispose.these(p, true); p.length = 0; } }, { @@ -107,7 +107,7 @@ var ObjectPool = function (_DisposableBase_1$def) { _get(Object.getPrototypeOf(ObjectPool.prototype), "_onDispose", this).call(this); var _ = this; _._generator = null; - dispose_1.default(_._trimmer, _._flusher, _._autoFlusher); + dispose_1.dispose(_._trimmer, _._flusher, _._autoFlusher); _._trimmer = null; _._flusher = null; _._autoFlusher = null; @@ -128,7 +128,7 @@ var ObjectPool = function (_DisposableBase_1$def) { var _ = this; _.throwIfDisposed(); if (_._pool.length >= _._localAbsMaxSize) { - dispose_1.default(o); + dispose_1.dispose(o); } else { _._pool.push(o); var m = _._maxSize; @@ -161,8 +161,9 @@ var ObjectPool = function (_DisposableBase_1$def) { }]); return ObjectPool; -}(DisposableBase_1.default); +}(DisposableBase_1.DisposableBase); +exports.ObjectPool = ObjectPool; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = ObjectPool; //# sourceMappingURL=ObjectPool.js.map diff --git a/dist/commonjs/System/Disposable/ObjectPool.js.map b/dist/commonjs/System/Disposable/ObjectPool.js.map index 6b19b965..50e54d80 100644 --- a/dist/commonjs/System/Disposable/ObjectPool.js.map +++ b/dist/commonjs/System/Disposable/ObjectPool.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Disposable/ObjectPool.js","System/Disposable/ObjectPool.ts"],"names":[],"mappings":"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","file":"System/Disposable/ObjectPool.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon ObjectPool from Parallel Extension Extras and other ObjectPool implementations.\n * Uses .add(T) and .take():T\n */\n\"use strict\";\nconst dispose_1 = require(\"./dispose\");\nconst DisposableBase_1 = require(\"./DisposableBase\");\nconst TaskHandler_1 = require(\"../Tasks/TaskHandler\");\nconst ArgumentOutOfRangeException_1 = require(\"../Exceptions/ArgumentOutOfRangeException\");\nconst OBJECT_POOL = \"ObjectPool\", _MAX_SIZE = \"_maxSize\", ABSOLUTE_MAX_SIZE = 65536, MUST_BE_GT1 = \"Must be at valid number least 1.\", MUST_BE_LTM = `Must be less than or equal to ${ABSOLUTE_MAX_SIZE}.`;\nclass ObjectPool extends DisposableBase_1.default {\n constructor(_maxSize, _generator) {\n super();\n this._maxSize = _maxSize;\n this._generator = _generator;\n this.autoClearTimeout = 5000;\n if (isNaN(_maxSize) || _maxSize < 1)\n throw new ArgumentOutOfRangeException_1.default(_MAX_SIZE, _maxSize, MUST_BE_GT1);\n if (_maxSize > ABSOLUTE_MAX_SIZE)\n throw new ArgumentOutOfRangeException_1.default(_MAX_SIZE, _maxSize, MUST_BE_LTM);\n this._localAbsMaxSize = Math.min(_maxSize * 2, ABSOLUTE_MAX_SIZE);\n var _ = this;\n _._disposableObjectName = OBJECT_POOL;\n _._pool = [];\n _._trimmer = new TaskHandler_1.default(() => _._trim());\n var clear = () => _._clear();\n _._flusher = new TaskHandler_1.default(clear);\n _._autoFlusher = new TaskHandler_1.default(clear);\n }\n get maxSize() {\n return this._maxSize;\n }\n get count() {\n var p = this._pool;\n return p ? p.length : 0;\n }\n _trim() {\n var pool = this._pool;\n while (pool.length > this._maxSize) {\n dispose_1.default.withoutException(pool.pop());\n }\n }\n trim(defer) {\n this.throwIfDisposed();\n this._trimmer.execute(defer);\n }\n _clear() {\n var _ = this, p = _._pool;\n _._trimmer.cancel();\n _._flusher.cancel();\n _._autoFlusher.cancel();\n dispose_1.default.these(p, true);\n p.length = 0;\n }\n clear(defer) {\n this.throwIfDisposed();\n this._flusher.execute(defer);\n }\n toArrayAndClear() {\n var _ = this;\n _.throwIfDisposed();\n _._trimmer.cancel();\n _._flusher.cancel();\n var p = _._pool;\n _._pool = [];\n return p;\n }\n dump() {\n return this.toArrayAndClear();\n }\n _onDispose() {\n super._onDispose();\n var _ = this;\n _._generator = null;\n dispose_1.default(_._trimmer, _._flusher, _._autoFlusher);\n _._trimmer = null;\n _._flusher = null;\n _._autoFlusher = null;\n _._pool.length = 0;\n _._pool = null;\n }\n extendAutoClear() {\n var _ = this;\n _.throwIfDisposed();\n var t = _.autoClearTimeout;\n if (isFinite(t) && !_._autoFlusher.isScheduled)\n _._autoFlusher.execute(t);\n }\n add(o) {\n var _ = this;\n _.throwIfDisposed();\n if (_._pool.length >= _._localAbsMaxSize) {\n dispose_1.default(o);\n }\n else {\n _._pool.push(o);\n var m = _._maxSize;\n if (m < ABSOLUTE_MAX_SIZE && _._pool.length > m)\n _._trimmer.execute(500);\n }\n _.extendAutoClear();\n }\n take() {\n var _ = this;\n _.throwIfDisposed();\n var e = _._pool.pop() || _._generator(), len = _._pool.length;\n if (_._pool.length <= _._maxSize)\n _._trimmer.cancel();\n if (len)\n _.extendAutoClear();\n return e;\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = ObjectPool;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon ObjectPool from Parallel Extension Extras and other ObjectPool implementations.\r\n * Uses .add(T) and .take():T\r\n */\r\n\r\nimport dispose from \"./dispose\";\r\nimport DisposableBase from \"./DisposableBase\";\r\nimport TaskHandler from \"../Tasks/TaskHandler\";\r\nimport ArgumentOutOfRangeException from \"../Exceptions/ArgumentOutOfRangeException\";\r\n\r\nconst\r\n\tOBJECT_POOL = \"ObjectPool\",\r\n\t_MAX_SIZE = \"_maxSize\",\r\n\tABSOLUTE_MAX_SIZE = 65536,\r\n\tMUST_BE_GT1 = \"Must be at valid number least 1.\",\r\n\tMUST_BE_LTM = `Must be less than or equal to ${ABSOLUTE_MAX_SIZE}.`;\r\n\r\nexport default class ObjectPool extends DisposableBase\r\n{\r\n\r\n\tprivate _pool:T[];\r\n\tprivate _trimmer:TaskHandler;\r\n\tprivate _flusher:TaskHandler;\r\n\tprivate _autoFlusher:TaskHandler;\r\n\r\n\t/**\r\n\t * A transient amount of object to exist over _maxSize until trim() is called.\r\n\t * But any added objects over _localAbsMaxSize will be disposed immediately.\r\n\t */\r\n\tprivate _localAbsMaxSize:number;\r\n\r\n\t/**\r\n\t * By default will clear after 5 seconds of non-use.\r\n\t */\r\n\tautoClearTimeout:number = 5000;\r\n\r\n\tconstructor(\r\n\t\tprivate _maxSize:number,\r\n\t\tprivate _generator:()=>T)\r\n\t{\r\n\t\tsuper();\r\n\t\tif(isNaN(_maxSize) || _maxSize<1)\r\n\t\t\tthrow new ArgumentOutOfRangeException(_MAX_SIZE, _maxSize, MUST_BE_GT1);\r\n\t\tif(_maxSize>ABSOLUTE_MAX_SIZE)\r\n\t\t\tthrow new ArgumentOutOfRangeException(_MAX_SIZE, _maxSize, MUST_BE_LTM);\r\n\r\n\t\tthis._localAbsMaxSize = Math.min(_maxSize*2, ABSOLUTE_MAX_SIZE);\r\n\r\n\t\tvar _ = this;\r\n\t\t_._disposableObjectName = OBJECT_POOL;\r\n\t\t_._pool = [];\r\n\t\t_._trimmer = new TaskHandler(()=>_._trim());\r\n\t\tvar clear = ()=>_._clear();\r\n\t\t_._flusher = new TaskHandler(clear);\r\n\t\t_._autoFlusher = new TaskHandler(clear);\r\n\t}\r\n\r\n\t/**\r\n\t * Defines the maximum at which trimming should allow.\r\n\t * @returns {number}\r\n\t */\r\n\tget maxSize():number\r\n\t{\r\n\t\treturn this._maxSize;\r\n\t}\r\n\r\n\t/**\r\n\t * Current number of objects in pool.\r\n\t * @returns {number}\r\n\t */\r\n\tget count():number\r\n\t{\r\n\t\tvar p = this._pool;\r\n\t\treturn p ? p.length : 0;\r\n\t}\r\n\r\n\tprotected _trim():void\r\n\t{\r\n\t\tvar pool = this._pool;\r\n\t\twhile(pool.length>this._maxSize)\r\n\t\t{\r\n\t\t\tdispose.withoutException(pool.pop());\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Will trim ensure the pool is less than the maxSize.\r\n\t * @param defer A delay before trimming. Will be overridden by later calls.\r\n\t */\r\n\ttrim(defer?:number):void\r\n\t{\r\n\t\tthis.throwIfDisposed();\r\n\t\tthis._trimmer.execute(defer);\r\n\t}\r\n\r\n\tprotected _clear():void\r\n\t{\r\n\t\tvar _ = this, p = _._pool;\r\n\t\t_._trimmer.cancel();\r\n\t\t_._flusher.cancel();\r\n\t\t_._autoFlusher.cancel();\r\n\t\tdispose.these(p, true);\r\n\t\tp.length = 0;\r\n\t}\r\n\r\n\t/**\r\n\t * Will clear out the pool.\r\n\t * Cancels any scheduled trims when executed.\r\n\t * @param defer A delay before clearing. Will be overridden by later calls.\r\n\t */\r\n\tclear(defer?:number):void\r\n\t{\r\n\t\tthis.throwIfDisposed();\r\n\t\tthis._flusher.execute(defer);\r\n\t}\r\n\r\n\ttoArrayAndClear():T[]\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\t_._trimmer.cancel();\r\n\t\t_._flusher.cancel();\r\n\t\tvar p = _._pool;\r\n\t\t_._pool = [];\r\n\t\treturn p;\r\n\t}\r\n\r\n\t/**\r\n\t * Shortcut for toArrayAndClear();\r\n\t */\r\n\tdump():T[]\r\n\t{\r\n\t\treturn this.toArrayAndClear();\r\n\t}\r\n\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tvar _ = this;\r\n\t\t_._generator = null;\r\n\t\tdispose(\r\n\t\t\t_._trimmer,\r\n\t\t\t_._flusher,\r\n\t\t\t_._autoFlusher\r\n\t\t);\r\n\t\t_._trimmer = null;\r\n\t\t_._flusher = null;\r\n\t\t_._autoFlusher = null;\r\n\r\n\t\t_._pool.length = 0;\r\n\t\t_._pool = null;\r\n\t}\r\n\r\n\textendAutoClear():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\tvar t = _.autoClearTimeout;\r\n\t\tif(isFinite(t) && !_._autoFlusher.isScheduled)\r\n\t\t\t_._autoFlusher.execute(t);\r\n\t}\r\n\r\n\tadd(o:T):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\tif(_._pool.length>=_._localAbsMaxSize)\r\n\t\t{\r\n\t\t\t// Getting too big, dispose immediately...\r\n\t\t\tdispose(o);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t_._pool.push(o);\r\n\t\t\tvar m = _._maxSize;\r\n\t\t\tif(mm)\r\n\t\t\t\t_._trimmer.execute(500);\r\n\t\t}\r\n\t\t_.extendAutoClear();\r\n\r\n\t}\r\n\r\n\ttake():T\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar e = _._pool.pop() || _._generator(),\r\n\t\t len = _._pool.length;\r\n\r\n\t\tif(_._pool.length<=_._maxSize)\r\n\t\t\t_._trimmer.cancel();\r\n\t\tif(len)\r\n\t\t\t_.extendAutoClear();\r\n\r\n\t\treturn e;\r\n\t}\r\n\r\n\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Disposable/ObjectPool.js","System/Disposable/ObjectPool.ts"],"names":[],"mappings":"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","file":"System/Disposable/ObjectPool.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon ObjectPool from Parallel Extension Extras and other ObjectPool implementations.\n * Uses .add(T) and .take():T\n */\n\"use strict\";\nconst dispose_1 = require(\"./dispose\");\nconst DisposableBase_1 = require(\"./DisposableBase\");\nconst TaskHandler_1 = require(\"../Tasks/TaskHandler\");\nconst ArgumentOutOfRangeException_1 = require(\"../Exceptions/ArgumentOutOfRangeException\");\nconst OBJECT_POOL = \"ObjectPool\", _MAX_SIZE = \"_maxSize\", ABSOLUTE_MAX_SIZE = 65536, MUST_BE_GT1 = \"Must be at valid number least 1.\", MUST_BE_LTM = `Must be less than or equal to ${ABSOLUTE_MAX_SIZE}.`;\nclass ObjectPool extends DisposableBase_1.DisposableBase {\n constructor(_maxSize, _generator) {\n super();\n this._maxSize = _maxSize;\n this._generator = _generator;\n this.autoClearTimeout = 5000;\n if (isNaN(_maxSize) || _maxSize < 1)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(_MAX_SIZE, _maxSize, MUST_BE_GT1);\n if (_maxSize > ABSOLUTE_MAX_SIZE)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(_MAX_SIZE, _maxSize, MUST_BE_LTM);\n this._localAbsMaxSize = Math.min(_maxSize * 2, ABSOLUTE_MAX_SIZE);\n var _ = this;\n _._disposableObjectName = OBJECT_POOL;\n _._pool = [];\n _._trimmer = new TaskHandler_1.TaskHandler(() => _._trim());\n var clear = () => _._clear();\n _._flusher = new TaskHandler_1.TaskHandler(clear);\n _._autoFlusher = new TaskHandler_1.TaskHandler(clear);\n }\n get maxSize() {\n return this._maxSize;\n }\n get count() {\n var p = this._pool;\n return p ? p.length : 0;\n }\n _trim() {\n var pool = this._pool;\n while (pool.length > this._maxSize) {\n dispose_1.dispose.withoutException(pool.pop());\n }\n }\n trim(defer) {\n this.throwIfDisposed();\n this._trimmer.execute(defer);\n }\n _clear() {\n var _ = this, p = _._pool;\n _._trimmer.cancel();\n _._flusher.cancel();\n _._autoFlusher.cancel();\n dispose_1.dispose.these(p, true);\n p.length = 0;\n }\n clear(defer) {\n this.throwIfDisposed();\n this._flusher.execute(defer);\n }\n toArrayAndClear() {\n var _ = this;\n _.throwIfDisposed();\n _._trimmer.cancel();\n _._flusher.cancel();\n var p = _._pool;\n _._pool = [];\n return p;\n }\n dump() {\n return this.toArrayAndClear();\n }\n _onDispose() {\n super._onDispose();\n var _ = this;\n _._generator = null;\n dispose_1.dispose(_._trimmer, _._flusher, _._autoFlusher);\n _._trimmer = null;\n _._flusher = null;\n _._autoFlusher = null;\n _._pool.length = 0;\n _._pool = null;\n }\n extendAutoClear() {\n var _ = this;\n _.throwIfDisposed();\n var t = _.autoClearTimeout;\n if (isFinite(t) && !_._autoFlusher.isScheduled)\n _._autoFlusher.execute(t);\n }\n add(o) {\n var _ = this;\n _.throwIfDisposed();\n if (_._pool.length >= _._localAbsMaxSize) {\n dispose_1.dispose(o);\n }\n else {\n _._pool.push(o);\n var m = _._maxSize;\n if (m < ABSOLUTE_MAX_SIZE && _._pool.length > m)\n _._trimmer.execute(500);\n }\n _.extendAutoClear();\n }\n take() {\n var _ = this;\n _.throwIfDisposed();\n var e = _._pool.pop() || _._generator(), len = _._pool.length;\n if (_._pool.length <= _._maxSize)\n _._trimmer.cancel();\n if (len)\n _.extendAutoClear();\n return e;\n }\n}\nexports.ObjectPool = ObjectPool;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = ObjectPool;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon ObjectPool from Parallel Extension Extras and other ObjectPool implementations.\r\n * Uses .add(T) and .take():T\r\n */\r\n\r\nimport {dispose} from \"./dispose\";\r\nimport {DisposableBase} from \"./DisposableBase\";\r\nimport {TaskHandler} from \"../Tasks/TaskHandler\";\r\nimport {ArgumentOutOfRangeException} from \"../Exceptions/ArgumentOutOfRangeException\";\r\n\r\nconst\r\n\tOBJECT_POOL = \"ObjectPool\",\r\n\t_MAX_SIZE = \"_maxSize\",\r\n\tABSOLUTE_MAX_SIZE = 65536,\r\n\tMUST_BE_GT1 = \"Must be at valid number least 1.\",\r\n\tMUST_BE_LTM = `Must be less than or equal to ${ABSOLUTE_MAX_SIZE}.`;\r\n\r\nexport class ObjectPool extends DisposableBase\r\n{\r\n\r\n\tprivate _pool:T[];\r\n\tprivate _trimmer:TaskHandler;\r\n\tprivate _flusher:TaskHandler;\r\n\tprivate _autoFlusher:TaskHandler;\r\n\r\n\t/**\r\n\t * A transient amount of object to exist over _maxSize until trim() is called.\r\n\t * But any added objects over _localAbsMaxSize will be disposed immediately.\r\n\t */\r\n\tprivate _localAbsMaxSize:number;\r\n\r\n\t/**\r\n\t * By default will clear after 5 seconds of non-use.\r\n\t */\r\n\tautoClearTimeout:number = 5000;\r\n\r\n\tconstructor(\r\n\t\tprivate _maxSize:number,\r\n\t\tprivate _generator:()=>T)\r\n\t{\r\n\t\tsuper();\r\n\t\tif(isNaN(_maxSize) || _maxSize<1)\r\n\t\t\tthrow new ArgumentOutOfRangeException(_MAX_SIZE, _maxSize, MUST_BE_GT1);\r\n\t\tif(_maxSize>ABSOLUTE_MAX_SIZE)\r\n\t\t\tthrow new ArgumentOutOfRangeException(_MAX_SIZE, _maxSize, MUST_BE_LTM);\r\n\r\n\t\tthis._localAbsMaxSize = Math.min(_maxSize*2, ABSOLUTE_MAX_SIZE);\r\n\r\n\t\tvar _ = this;\r\n\t\t_._disposableObjectName = OBJECT_POOL;\r\n\t\t_._pool = [];\r\n\t\t_._trimmer = new TaskHandler(()=>_._trim());\r\n\t\tvar clear = ()=>_._clear();\r\n\t\t_._flusher = new TaskHandler(clear);\r\n\t\t_._autoFlusher = new TaskHandler(clear);\r\n\t}\r\n\r\n\t/**\r\n\t * Defines the maximum at which trimming should allow.\r\n\t * @returns {number}\r\n\t */\r\n\tget maxSize():number\r\n\t{\r\n\t\treturn this._maxSize;\r\n\t}\r\n\r\n\t/**\r\n\t * Current number of objects in pool.\r\n\t * @returns {number}\r\n\t */\r\n\tget count():number\r\n\t{\r\n\t\tvar p = this._pool;\r\n\t\treturn p ? p.length : 0;\r\n\t}\r\n\r\n\tprotected _trim():void\r\n\t{\r\n\t\tvar pool = this._pool;\r\n\t\twhile(pool.length>this._maxSize)\r\n\t\t{\r\n\t\t\tdispose.withoutException(pool.pop());\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Will trim ensure the pool is less than the maxSize.\r\n\t * @param defer A delay before trimming. Will be overridden by later calls.\r\n\t */\r\n\ttrim(defer?:number):void\r\n\t{\r\n\t\tthis.throwIfDisposed();\r\n\t\tthis._trimmer.execute(defer);\r\n\t}\r\n\r\n\tprotected _clear():void\r\n\t{\r\n\t\tvar _ = this, p = _._pool;\r\n\t\t_._trimmer.cancel();\r\n\t\t_._flusher.cancel();\r\n\t\t_._autoFlusher.cancel();\r\n\t\tdispose.these(p, true);\r\n\t\tp.length = 0;\r\n\t}\r\n\r\n\t/**\r\n\t * Will clear out the pool.\r\n\t * Cancels any scheduled trims when executed.\r\n\t * @param defer A delay before clearing. Will be overridden by later calls.\r\n\t */\r\n\tclear(defer?:number):void\r\n\t{\r\n\t\tthis.throwIfDisposed();\r\n\t\tthis._flusher.execute(defer);\r\n\t}\r\n\r\n\ttoArrayAndClear():T[]\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\t_._trimmer.cancel();\r\n\t\t_._flusher.cancel();\r\n\t\tvar p = _._pool;\r\n\t\t_._pool = [];\r\n\t\treturn p;\r\n\t}\r\n\r\n\t/**\r\n\t * Shortcut for toArrayAndClear();\r\n\t */\r\n\tdump():T[]\r\n\t{\r\n\t\treturn this.toArrayAndClear();\r\n\t}\r\n\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tvar _ = this;\r\n\t\t_._generator = null;\r\n\t\tdispose(\r\n\t\t\t_._trimmer,\r\n\t\t\t_._flusher,\r\n\t\t\t_._autoFlusher\r\n\t\t);\r\n\t\t_._trimmer = null;\r\n\t\t_._flusher = null;\r\n\t\t_._autoFlusher = null;\r\n\r\n\t\t_._pool.length = 0;\r\n\t\t_._pool = null;\r\n\t}\r\n\r\n\textendAutoClear():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\tvar t = _.autoClearTimeout;\r\n\t\tif(isFinite(t) && !_._autoFlusher.isScheduled)\r\n\t\t\t_._autoFlusher.execute(t);\r\n\t}\r\n\r\n\tadd(o:T):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\tif(_._pool.length>=_._localAbsMaxSize)\r\n\t\t{\r\n\t\t\t// Getting too big, dispose immediately...\r\n\t\t\tdispose(o);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t_._pool.push(o);\r\n\t\t\tvar m = _._maxSize;\r\n\t\t\tif(mm)\r\n\t\t\t\t_._trimmer.execute(500);\r\n\t\t}\r\n\t\t_.extendAutoClear();\r\n\r\n\t}\r\n\r\n\ttake():T\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar e = _._pool.pop() || _._generator(),\r\n\t\t len = _._pool.length;\r\n\r\n\t\tif(_._pool.length<=_._maxSize)\r\n\t\t\t_._trimmer.cancel();\r\n\t\tif(len)\r\n\t\t\t_.extendAutoClear();\r\n\r\n\t\treturn e;\r\n\t}\r\n\r\n\r\n}\r\n\r\nexport default ObjectPool;\r\n"]} \ No newline at end of file diff --git a/dist/commonjs/System/Disposable/dispose.d.ts b/dist/commonjs/System/Disposable/dispose.d.ts index ea01844c..e1a6bf42 100644 --- a/dist/commonjs/System/Disposable/dispose.d.ts +++ b/dist/commonjs/System/Disposable/dispose.d.ts @@ -1,9 +1,8 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { IDisposable } from "./IDisposable"; export declare function dispose(...disposables: IDisposable[]): void; export declare module dispose { function deferred(...disposables: IDisposable[]): void; diff --git a/dist/commonjs/System/Disposable/dispose.js b/dist/commonjs/System/Disposable/dispose.js index 52ed59d9..e8253366 100644 --- a/dist/commonjs/System/Disposable/dispose.js +++ b/dist/commonjs/System/Disposable/dispose.js @@ -2,7 +2,7 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; +"use strict"; var Types_1 = require("../Types"); function dispose() { @@ -57,7 +57,7 @@ function using(disposable, closure) { } exports.using = using; function disposeSingle(disposable, trapExceptions) { - if (disposable && Types_1.default.of(disposable).member('dispose').isFunction) { + if (disposable && Types_1.Type.of(disposable).member('dispose').isFunction) { if (trapExceptions) { try { disposable.dispose(); diff --git a/dist/commonjs/System/Disposable/dispose.js.map b/dist/commonjs/System/Disposable/dispose.js.map index c71b0a49..db483103 100644 --- a/dist/commonjs/System/Disposable/dispose.js.map +++ b/dist/commonjs/System/Disposable/dispose.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Disposable/dispose.ts","System/Disposable/dispose.js"],"names":[],"mappings":"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","file":"System/Disposable/dispose.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport Type from \"../Types\";\r\n\r\n/**\r\n * Takes any number of disposables as arguments and attempts to dispose them.\r\n * Any exceptions thrown within a dispose are not trapped.\r\n * Use 'disposeWithoutException' to automatically trap exceptions.\r\n *\r\n * Can accept and will ignore objects that don't have a dispose() method.\r\n * @param disposables\r\n */\r\nexport function dispose(...disposables:IDisposable[]):void\r\n{\r\n\t// The disposables arguments array is effectively localized so it's safe.\r\n\tdisposeTheseInternal(disposables, false);\r\n}\r\n\r\nexport module dispose {\r\n\r\n\texport function deferred(...disposables:IDisposable[]):void {\r\n\t\tthese.deferred(disposables);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Takes any number of disposables and traps any errors that occur when disposing.\r\n\t * Returns an array of the exceptions thrown.\r\n\t * @param disposables\r\n\t * @returns {any[]} Returns an array of exceptions that occurred, if there are any.\r\n\t */\r\n\texport function withoutException(...disposables:IDisposable[]):any[]\r\n\t{\r\n\t\t// The disposables arguments array is effectively localized so it's safe.\r\n\t\treturn disposeTheseInternal(disposables, true);\r\n\t}\r\n\r\n\t/**\r\n\t * Takes an array of disposable objects and ensures they are disposed.\r\n\t * @param disposables\r\n\t * @param trapExceptions If true, prevents exceptions from being thrown when disposing.\r\n\t * @returns {any[]} If 'trapExceptions' is true, returns an array of exceptions that occurred, if there are any.\r\n\t */\r\n\texport function these(disposables:IDisposable[], trapExceptions?:boolean):any[]\r\n\t{\r\n\t\treturn disposables && disposables.length\r\n\t\t\t? disposeTheseInternal(disposables.slice(), trapExceptions)\r\n\t\t\t: null;\r\n\t}\r\n\r\n\texport module these {\r\n\t\texport function deferred(disposables:IDisposable[], delay:number = 0):void {\r\n\t\t\tif(disposables && disposables.length) {\r\n\t\t\t\tif(!(delay>=0)) delay = 0;\r\n\t\t\t\tsetTimeout(disposeTheseInternal,delay,disposables.slice(), true);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Just like in C# this 'using' function will ensure the passed disposable is disposed when the closure has finished.\r\n *\r\n * Usage:\r\n * ```typescript\r\n * using(new DisposableObject(),(myObj)=>{\r\n * // do work with myObj\r\n * });\r\n * // myObj automatically has it's dispose method called.\r\n * ```\r\n *\r\n * @param disposable Object to be disposed.\r\n * @param closure Function call to execute.\r\n * @returns {TReturn} Returns whatever the closure's return value is.\r\n */\r\nexport function using(\r\n\tdisposable:TDisposable,\r\n\tclosure:(disposable:TDisposable) => TReturn):TReturn\r\n{\r\n\ttry\r\n\t{\r\n\t\treturn closure(disposable);\r\n\t}\r\n\tfinally\r\n\t{\r\n\t\tdisposeSingle(disposable, false);\r\n\t}\r\n}\r\n\r\n\r\n/**\r\n * This private function makes disposing more robust for when there's no type checking.\r\n * If trapExceptions is 'true' it catches and returns any exception instead of throwing.\r\n */\r\nfunction disposeSingle(\r\n\tdisposable:IDisposable,\r\n\ttrapExceptions:boolean):any\r\n{\r\n\tif(disposable && Type.of(disposable).member('dispose').isFunction)\r\n\t{\r\n\t\tif(trapExceptions)\r\n\t\t{\r\n\t\t\ttry\r\n\t\t\t{\r\n\t\t\t\tdisposable.dispose();\r\n\t\t\t}\r\n\t\t\tcatch(ex)\r\n\t\t\t{\r\n\t\t\t\treturn ex;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse\r\n\t\t\tdisposable.dispose();\r\n\t}\r\n\r\n\treturn null;\r\n}\r\n\r\n/**\r\n * This dispose method assumes it's working on a local copy and is unsafe for external use.\r\n */\r\nfunction disposeTheseInternal(\r\n\tdisposables:IDisposable[],\r\n\ttrapExceptions:boolean,\r\n\tindex:number = 0):any[]\r\n{\r\n\tvar exceptions:any[];\r\n\tvar len = disposables.length;\r\n\r\n\tfor(; index= 0))\n delay = 0;\n setTimeout(disposeTheseInternal, delay, disposables.slice(), true);\n }\n }\n these.deferred = deferred;\n })(these = dispose.these || (dispose.these = {}));\n})(dispose = exports.dispose || (exports.dispose = {}));\nfunction using(disposable, closure) {\n try {\n return closure(disposable);\n }\n finally {\n disposeSingle(disposable, false);\n }\n}\nexports.using = using;\nfunction disposeSingle(disposable, trapExceptions) {\n if (disposable && Types_1.default.of(disposable).member('dispose').isFunction) {\n if (trapExceptions) {\n try {\n disposable.dispose();\n }\n catch (ex) {\n return ex;\n }\n }\n else\n disposable.dispose();\n }\n return null;\n}\nfunction disposeTheseInternal(disposables, trapExceptions, index = 0) {\n var exceptions;\n var len = disposables.length;\n for (; index < len; index++) {\n var next = disposables[index];\n if (!next)\n continue;\n if (trapExceptions) {\n var ex = disposeSingle(next, true);\n if (ex) {\n if (!exceptions)\n exceptions = [];\n exceptions.push(ex);\n }\n }\n else {\n var success = false;\n try {\n disposeSingle(next, false);\n success = true;\n }\n finally {\n if (!success && index + 1 < len) {\n disposeTheseInternal(disposables, false, index + 1);\n }\n }\n if (!success)\n break;\n }\n }\n return exceptions;\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = dispose;\n"]} \ No newline at end of file +{"version":3,"sources":["System/Disposable/dispose.js","System/Disposable/dispose.ts"],"names":[],"mappings":"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","file":"System/Disposable/dispose.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst Types_1 = require(\"../Types\");\nfunction dispose(...disposables) {\n disposeTheseInternal(disposables, false);\n}\nexports.dispose = dispose;\nvar dispose;\n(function (dispose) {\n function deferred(...disposables) {\n these.deferred(disposables);\n }\n dispose.deferred = deferred;\n function withoutException(...disposables) {\n return disposeTheseInternal(disposables, true);\n }\n dispose.withoutException = withoutException;\n function these(disposables, trapExceptions) {\n return disposables && disposables.length\n ? disposeTheseInternal(disposables.slice(), trapExceptions)\n : null;\n }\n dispose.these = these;\n var these;\n (function (these) {\n function deferred(disposables, delay = 0) {\n if (disposables && disposables.length) {\n if (!(delay >= 0))\n delay = 0;\n setTimeout(disposeTheseInternal, delay, disposables.slice(), true);\n }\n }\n these.deferred = deferred;\n })(these = dispose.these || (dispose.these = {}));\n})(dispose = exports.dispose || (exports.dispose = {}));\nfunction using(disposable, closure) {\n try {\n return closure(disposable);\n }\n finally {\n disposeSingle(disposable, false);\n }\n}\nexports.using = using;\nfunction disposeSingle(disposable, trapExceptions) {\n if (disposable && Types_1.Type.of(disposable).member('dispose').isFunction) {\n if (trapExceptions) {\n try {\n disposable.dispose();\n }\n catch (ex) {\n return ex;\n }\n }\n else\n disposable.dispose();\n }\n return null;\n}\nfunction disposeTheseInternal(disposables, trapExceptions, index = 0) {\n var exceptions;\n var len = disposables.length;\n for (; index < len; index++) {\n var next = disposables[index];\n if (!next)\n continue;\n if (trapExceptions) {\n var ex = disposeSingle(next, true);\n if (ex) {\n if (!exceptions)\n exceptions = [];\n exceptions.push(ex);\n }\n }\n else {\n var success = false;\n try {\n disposeSingle(next, false);\n success = true;\n }\n finally {\n if (!success && index + 1 < len) {\n disposeTheseInternal(disposables, false, index + 1);\n }\n }\n if (!success)\n break;\n }\n }\n return exceptions;\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = dispose;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {Type} from \"../Types\";\r\nimport {IDisposable} from \"./IDisposable\";\r\n\r\n/**\r\n * Takes any number of disposables as arguments and attempts to dispose them.\r\n * Any exceptions thrown within a dispose are not trapped.\r\n * Use 'disposeWithoutException' to automatically trap exceptions.\r\n *\r\n * Can accept and will ignore objects that don't have a dispose() method.\r\n * @param disposables\r\n */\r\nexport function dispose(...disposables:IDisposable[]):void\r\n{\r\n\t// The disposables arguments array is effectively localized so it's safe.\r\n\tdisposeTheseInternal(disposables, false);\r\n}\r\n\r\nexport module dispose {\r\n\r\n\texport function deferred(...disposables:IDisposable[]):void {\r\n\t\tthese.deferred(disposables);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Takes any number of disposables and traps any errors that occur when disposing.\r\n\t * Returns an array of the exceptions thrown.\r\n\t * @param disposables\r\n\t * @returns {any[]} Returns an array of exceptions that occurred, if there are any.\r\n\t */\r\n\texport function withoutException(...disposables:IDisposable[]):any[]\r\n\t{\r\n\t\t// The disposables arguments array is effectively localized so it's safe.\r\n\t\treturn disposeTheseInternal(disposables, true);\r\n\t}\r\n\r\n\t/**\r\n\t * Takes an array of disposable objects and ensures they are disposed.\r\n\t * @param disposables\r\n\t * @param trapExceptions If true, prevents exceptions from being thrown when disposing.\r\n\t * @returns {any[]} If 'trapExceptions' is true, returns an array of exceptions that occurred, if there are any.\r\n\t */\r\n\texport function these(disposables:IDisposable[], trapExceptions?:boolean):any[]\r\n\t{\r\n\t\treturn disposables && disposables.length\r\n\t\t\t? disposeTheseInternal(disposables.slice(), trapExceptions)\r\n\t\t\t: null;\r\n\t}\r\n\r\n\texport module these {\r\n\t\texport function deferred(disposables:IDisposable[], delay:number = 0):void {\r\n\t\t\tif(disposables && disposables.length) {\r\n\t\t\t\tif(!(delay>=0)) delay = 0;\r\n\t\t\t\tsetTimeout(disposeTheseInternal,delay,disposables.slice(), true);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Just like in C# this 'using' function will ensure the passed disposable is disposed when the closure has finished.\r\n *\r\n * Usage:\r\n * ```typescript\r\n * using(new DisposableObject(),(myObj)=>{\r\n * // do work with myObj\r\n * });\r\n * // myObj automatically has it's dispose method called.\r\n * ```\r\n *\r\n * @param disposable Object to be disposed.\r\n * @param closure Function call to execute.\r\n * @returns {TReturn} Returns whatever the closure's return value is.\r\n */\r\nexport function using(\r\n\tdisposable:TDisposable,\r\n\tclosure:(disposable:TDisposable) => TReturn):TReturn\r\n{\r\n\ttry\r\n\t{\r\n\t\treturn closure(disposable);\r\n\t}\r\n\tfinally\r\n\t{\r\n\t\tdisposeSingle(disposable, false);\r\n\t}\r\n}\r\n\r\n\r\n/**\r\n * This private function makes disposing more robust for when there's no type checking.\r\n * If trapExceptions is 'true' it catches and returns any exception instead of throwing.\r\n */\r\nfunction disposeSingle(\r\n\tdisposable:IDisposable,\r\n\ttrapExceptions:boolean):any\r\n{\r\n\tif(disposable && Type.of(disposable).member('dispose').isFunction)\r\n\t{\r\n\t\tif(trapExceptions)\r\n\t\t{\r\n\t\t\ttry\r\n\t\t\t{\r\n\t\t\t\tdisposable.dispose();\r\n\t\t\t}\r\n\t\t\tcatch(ex)\r\n\t\t\t{\r\n\t\t\t\treturn ex;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse\r\n\t\t\tdisposable.dispose();\r\n\t}\r\n\r\n\treturn null;\r\n}\r\n\r\n/**\r\n * This dispose method assumes it's working on a local copy and is unsafe for external use.\r\n */\r\nfunction disposeTheseInternal(\r\n\tdisposables:IDisposable[],\r\n\ttrapExceptions:boolean,\r\n\tindex:number = 0):any[]\r\n{\r\n\tvar exceptions:any[];\r\n\tvar len = disposables.length;\r\n\r\n\tfor(; index -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import DisposableBase from "../Disposable/DisposableBase"; -import EventDispatcherEntry from "./EventDispatcherEntry"; +import { DisposableBase } from "../Disposable/DisposableBase"; +import { IEventListener } from "./IEventListener"; +import { EventDispatcherEntry } from "./EventDispatcherEntry"; +import { IEventDispatcher } from "./IEventDispatcher"; export interface IEventBase { type: string; target: TTarget; diff --git a/dist/commonjs/System/Events/EventDispatcherBase.js b/dist/commonjs/System/Events/EventDispatcherBase.js index 123a7a12..81f52d69 100644 --- a/dist/commonjs/System/Events/EventDispatcherBase.js +++ b/dist/commonjs/System/Events/EventDispatcherBase.js @@ -2,7 +2,7 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; +"use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); @@ -14,11 +14,11 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } +var AU = require("../Collections/Array/Utility"); var shallowCopy_1 = require("../Utility/shallowCopy"); var DisposableBase_1 = require("../Disposable/DisposableBase"); -var AU = require("../Collections/Array/Utility"); -var EventDispatcherEntry_1 = require("./EventDispatcherEntry"); var dispose_1 = require("../Disposable/dispose"); +var EventDispatcherEntry_1 = require("./EventDispatcherEntry"); var DISPOSING = 'disposing', DISPOSED = 'disposed'; function entryFinalizer() { @@ -27,8 +27,8 @@ function entryFinalizer() { p.dispatcher = null; } -var EventDispatcherBase = function (_DisposableBase_1$def) { - _inherits(EventDispatcherBase, _DisposableBase_1$def); +var EventDispatcherBase = function (_DisposableBase_1$Dis) { + _inherits(EventDispatcherBase, _DisposableBase_1$Dis); function EventDispatcherBase() { var _Object$getPrototypeO; @@ -52,7 +52,7 @@ var EventDispatcherBase = function (_DisposableBase_1$def) { var e = this._entries; if (!e) this._entries = e = []; - e.push(new EventDispatcherEntry_1.default(type, listener, { + e.push(new EventDispatcherEntry_1.EventDispatcherEntry(type, listener, { priority: priority || 0, dispatcher: this }, entryFinalizer)); @@ -80,7 +80,7 @@ var EventDispatcherBase = function (_DisposableBase_1$def) { }, { key: "removeEventListener", value: function removeEventListener(type, listener) { - dispose_1.default.these(this._entries.filter(function (entry) { + dispose_1.dispose.these(this._entries.filter(function (entry) { return entry.matches(type, listener); })); } @@ -110,7 +110,7 @@ var EventDispatcherBase = function (_DisposableBase_1$def) { }); entries.forEach(function (entry) { var newEvent = Object.create(Event); - shallowCopy_1.default(event, newEvent); + shallowCopy_1.shallowCopy(event, newEvent); newEvent.target = _this2; entry.dispatch(newEvent); }); @@ -152,7 +152,7 @@ var EventDispatcherBase = function (_DisposableBase_1$def) { }]); return EventDispatcherBase; -}(DisposableBase_1.default); +}(DisposableBase_1.DisposableBase); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = EventDispatcherBase; diff --git a/dist/commonjs/System/Events/EventDispatcherBase.js.map b/dist/commonjs/System/Events/EventDispatcherBase.js.map index b005291f..e1dd3d03 100644 --- a/dist/commonjs/System/Events/EventDispatcherBase.js.map +++ b/dist/commonjs/System/Events/EventDispatcherBase.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Events/EventDispatcherBase.ts","System/Events/EventDispatcherBase.js"],"names":[],"mappings":"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","file":"System/Events/EventDispatcherBase.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n\r\nimport shallowCopy from \"../Utility/shallowCopy\";\r\nimport DisposableBase from \"../Disposable/DisposableBase\";\r\nimport * as AU from \"../Collections/Array/Utility\";\r\nimport EventDispatcherEntry from \"./EventDispatcherEntry\";\r\nimport dispose from \"../Disposable/dispose\";\r\n\r\nconst DISPOSING:string = 'disposing',\r\n DISPOSED:string = 'disposed';\r\n\r\n// The following interfaces are exported for sub class implementation.\r\n\r\nexport interface IEventBase {\r\n\ttype: string;\r\n\ttarget: TTarget;\r\n}\r\n\r\nexport interface IEvent extends IEventBase {\r\n\r\n}\r\n\r\nexport interface IEntryParams\r\n{\r\n\tpriority:number;\r\n\tdispatcher:EventDispatcherBase;\r\n}\r\n\r\nfunction entryFinalizer()\r\n{\r\n\tvar p:IEntryParams = this.params;\r\n\tp.dispatcher.removeEntry(this);\r\n\tp.dispatcher = null;\r\n}\r\n\r\nexport default\r\nclass EventDispatcherBase extends DisposableBase implements IEventDispatcher\r\n{\r\n\r\n\tprotected _entries:EventDispatcherEntry[];\r\n\r\n\taddEventListener(\r\n\t\ttype:string,\r\n\t\tlistener:IEventListener,\r\n\t\tpriority:number = 0):void\r\n\t{\r\n\t\tvar e = this._entries;\r\n\t\tif(!e) this._entries = e = [];\r\n\r\n\t\t// flash/vibe.js means of adding is indiscriminate and will double add listeners...\r\n\t\t// we can then avoid double adds by including a 'registerEventListener' method.\r\n\t\te.push(\r\n\t\t\tnew EventDispatcherEntry(type, listener, {\r\n\t\t\t\t\tpriority: priority || 0,\r\n\t\t\t\t\tdispatcher: this\r\n\t\t\t\t},\r\n\t\t\t\tentryFinalizer));\r\n\t}\r\n\r\n\tremoveEntry(entry:EventDispatcherEntry):boolean\r\n\t{\r\n\t\treturn !!this._entries && AU.remove(this._entries, entry)!=0;\r\n\t}\r\n\r\n\t// Allow for simple add once mechanism.\r\n\tregisterEventListener(\r\n\t\ttype:string,\r\n\t\tlistener:IEventListener,\r\n\t\tpriority:number = 0):void//, useWeakReference: boolean= false)\r\n\t{\r\n\t\tif(!this.hasEventListener(type, listener))\r\n\t\t\tthis.addEventListener(type, listener, priority);\r\n\t}\r\n\r\n\thasEventListener(type:string, listener?:IEventListener):boolean\r\n\t{\r\n\t\tvar e = this._entries;\r\n\t\treturn e && e.some(\r\n\t\t\t\t(value:EventDispatcherEntry):boolean =>\r\n\t\t\t\ttype==value.type && (!listener || listener==value.listener)\r\n\t\t\t);\r\n\t}\r\n\r\n\tremoveEventListener(\r\n\t\ttype:string,\r\n\t\tlistener:IEventListener):void\r\n\t{\r\n\t\tdispose.these(this._entries.filter(entry=> entry.matches(type, listener)));\r\n\t}\r\n\r\n\tdispatchEvent(type:string, params?:any):boolean;\r\n\tdispatchEvent(event:IEvent):boolean;\r\n\tdispatchEvent(e:any, params?:any):boolean\r\n\t{\r\n\r\n\t\tvar _ = this, l = _._entries;\r\n\t\tif(!l || !l.length)\r\n\t\t\treturn false;\r\n\r\n\t\tvar event:IEventBase;\r\n\r\n\t\tif(typeof e==\"string\")\r\n\t\t{\r\n\t\t\tevent = Event && Object.create(Event) || {};\r\n\t\t\tif(!params)\r\n\t\t\t\tparams = {};\r\n\t\t\tif(params['cancellable'])\r\n\t\t\t\t(event).cancellable = true;\r\n\t\t\tevent.target = _;\r\n\t\t\tevent.type = e;\r\n\t\t}\r\n\t\telse\r\n\t\t\tevent = e;\r\n\r\n\t\tvar type = event.type;\r\n\r\n\t\t// noinspection JSMismatchedCollectionQueryUpdate\r\n\t\tvar entries:EventDispatcherEntry[] = l.filter(e=>e.type==type);//, propagate = true, prevent = false;\r\n\t\tif(!entries.length)\r\n\t\t\treturn false;\r\n\r\n\t\tentries.sort((a, b)=> b.params.priority - a.params.priority);\r\n\r\n\t\t// For now... Just use simple...\r\n\t\tentries.forEach(\r\n\t\t\tentry=>\r\n\t\t\t{\r\n\t\t\t\tvar newEvent = Object.create(Event);\r\n\t\t\t\tshallowCopy(event, newEvent);\r\n\t\t\t\tnewEvent.target = this;\r\n\t\t\t\tentry.dispatch(newEvent);\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\treturn true;\r\n\r\n\t}\r\n\r\n\tstatic get DISPOSING() { return DISPOSING; }\r\n\r\n\tstatic get DISPOSED() { return DISPOSED; }\r\n\r\n\t// When dispatching events, we need a way to prevent recursion when disposing.\r\n\tprivate _isDisposing:boolean = false;\r\n\tget isDisposing():boolean\r\n\t{\r\n\t\treturn this._isDisposing;\r\n\t}\r\n\r\n\t// Override the public method here since EventDispatcher will end up doing things a bit differently from here on.\r\n\tpublic dispose()\r\n\t{\r\n\r\n\t\t// Having a disposing event can allow for child objects to automatically release themselves when their parent is disposed.\r\n\t\tvar _ = this;\r\n\t\tif(!_.wasDisposed && !_._isDisposing)\r\n\t\t{\r\n\t\t\t_._isDisposing = true;\r\n\t\t\t_.dispatchEvent(DISPOSING);\r\n\r\n\t\t\tsuper.dispose();\r\n\r\n\t\t\t_.dispatchEvent(DISPOSED);\r\n\r\n\t\t\tvar l = _._entries;\r\n\t\t\tif(l)\r\n\t\t\t{\r\n\t\t\t\tthis._entries = null;\r\n\t\t\t\tl.forEach(e=> e.dispose());\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n}\r\n\r\n","/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n'use strict';\nconst shallowCopy_1 = require(\"../Utility/shallowCopy\");\nconst DisposableBase_1 = require(\"../Disposable/DisposableBase\");\nconst AU = require(\"../Collections/Array/Utility\");\nconst EventDispatcherEntry_1 = require(\"./EventDispatcherEntry\");\nconst dispose_1 = require(\"../Disposable/dispose\");\nconst DISPOSING = 'disposing', DISPOSED = 'disposed';\nfunction entryFinalizer() {\n var p = this.params;\n p.dispatcher.removeEntry(this);\n p.dispatcher = null;\n}\nclass EventDispatcherBase extends DisposableBase_1.default {\n constructor(...args) {\n super(...args);\n this._isDisposing = false;\n }\n addEventListener(type, listener, priority = 0) {\n var e = this._entries;\n if (!e)\n this._entries = e = [];\n e.push(new EventDispatcherEntry_1.default(type, listener, {\n priority: priority || 0,\n dispatcher: this\n }, entryFinalizer));\n }\n removeEntry(entry) {\n return !!this._entries && AU.remove(this._entries, entry) != 0;\n }\n registerEventListener(type, listener, priority = 0) {\n if (!this.hasEventListener(type, listener))\n this.addEventListener(type, listener, priority);\n }\n hasEventListener(type, listener) {\n var e = this._entries;\n return e && e.some((value) => type == value.type && (!listener || listener == value.listener));\n }\n removeEventListener(type, listener) {\n dispose_1.default.these(this._entries.filter(entry => entry.matches(type, listener)));\n }\n dispatchEvent(e, params) {\n var _ = this, l = _._entries;\n if (!l || !l.length)\n return false;\n var event;\n if (typeof e == \"string\") {\n event = Event && Object.create(Event) || {};\n if (!params)\n params = {};\n if (params['cancellable'])\n event.cancellable = true;\n event.target = _;\n event.type = e;\n }\n else\n event = e;\n var type = event.type;\n var entries = l.filter(e => e.type == type);\n if (!entries.length)\n return false;\n entries.sort((a, b) => b.params.priority - a.params.priority);\n entries.forEach(entry => {\n var newEvent = Object.create(Event);\n shallowCopy_1.default(event, newEvent);\n newEvent.target = this;\n entry.dispatch(newEvent);\n });\n return true;\n }\n static get DISPOSING() { return DISPOSING; }\n static get DISPOSED() { return DISPOSED; }\n get isDisposing() {\n return this._isDisposing;\n }\n dispose() {\n var _ = this;\n if (!_.wasDisposed && !_._isDisposing) {\n _._isDisposing = true;\n _.dispatchEvent(DISPOSING);\n super.dispose();\n _.dispatchEvent(DISPOSED);\n var l = _._entries;\n if (l) {\n this._entries = null;\n l.forEach(e => e.dispose());\n }\n }\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = EventDispatcherBase;\n"]} \ No newline at end of file +{"version":3,"sources":["System/Events/EventDispatcherBase.js","System/Events/EventDispatcherBase.ts"],"names":[],"mappings":"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","file":"System/Events/EventDispatcherBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst AU = require(\"../Collections/Array/Utility\");\nconst shallowCopy_1 = require(\"../Utility/shallowCopy\");\nconst DisposableBase_1 = require(\"../Disposable/DisposableBase\");\nconst dispose_1 = require(\"../Disposable/dispose\");\nconst EventDispatcherEntry_1 = require(\"./EventDispatcherEntry\");\nconst DISPOSING = 'disposing', DISPOSED = 'disposed';\nfunction entryFinalizer() {\n var p = this.params;\n p.dispatcher.removeEntry(this);\n p.dispatcher = null;\n}\nclass EventDispatcherBase extends DisposableBase_1.DisposableBase {\n constructor(...args) {\n super(...args);\n this._isDisposing = false;\n }\n addEventListener(type, listener, priority = 0) {\n var e = this._entries;\n if (!e)\n this._entries = e = [];\n e.push(new EventDispatcherEntry_1.EventDispatcherEntry(type, listener, {\n priority: priority || 0,\n dispatcher: this\n }, entryFinalizer));\n }\n removeEntry(entry) {\n return !!this._entries && AU.remove(this._entries, entry) != 0;\n }\n registerEventListener(type, listener, priority = 0) {\n if (!this.hasEventListener(type, listener))\n this.addEventListener(type, listener, priority);\n }\n hasEventListener(type, listener) {\n var e = this._entries;\n return e && e.some((value) => type == value.type && (!listener || listener == value.listener));\n }\n removeEventListener(type, listener) {\n dispose_1.dispose.these(this._entries.filter(entry => entry.matches(type, listener)));\n }\n dispatchEvent(e, params) {\n var _ = this, l = _._entries;\n if (!l || !l.length)\n return false;\n var event;\n if (typeof e == \"string\") {\n event = Event && Object.create(Event) || {};\n if (!params)\n params = {};\n if (params['cancellable'])\n event.cancellable = true;\n event.target = _;\n event.type = e;\n }\n else\n event = e;\n var type = event.type;\n var entries = l.filter(e => e.type == type);\n if (!entries.length)\n return false;\n entries.sort((a, b) => b.params.priority - a.params.priority);\n entries.forEach(entry => {\n var newEvent = Object.create(Event);\n shallowCopy_1.shallowCopy(event, newEvent);\n newEvent.target = this;\n entry.dispatch(newEvent);\n });\n return true;\n }\n static get DISPOSING() { return DISPOSING; }\n static get DISPOSED() { return DISPOSED; }\n get isDisposing() {\n return this._isDisposing;\n }\n dispose() {\n var _ = this;\n if (!_.wasDisposed && !_._isDisposing) {\n _._isDisposing = true;\n _.dispatchEvent(DISPOSING);\n super.dispose();\n _.dispatchEvent(DISPOSED);\n var l = _._entries;\n if (l) {\n this._entries = null;\n l.forEach(e => e.dispose());\n }\n }\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = EventDispatcherBase;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport * as AU from \"../Collections/Array/Utility\";\r\nimport {shallowCopy} from \"../Utility/shallowCopy\";\r\nimport {DisposableBase} from \"../Disposable/DisposableBase\";\r\nimport {dispose} from \"../Disposable/dispose\";\r\nimport {IEventListener} from \"./IEventListener\";\r\nimport {EventDispatcherEntry} from \"./EventDispatcherEntry\";\r\nimport {IEventDispatcher} from \"./IEventDispatcher\";\r\n\r\nconst DISPOSING:string = 'disposing',\r\n DISPOSED:string = 'disposed';\r\n\r\n// The following interfaces are exported for sub class implementation.\r\n\r\nexport interface IEventBase\r\n{\r\n\ttype:string;\r\n\ttarget:TTarget;\r\n}\r\n\r\nexport interface IEvent extends IEventBase\r\n{\r\n\r\n}\r\n\r\nexport interface IEntryParams\r\n{\r\n\tpriority:number;\r\n\tdispatcher:EventDispatcherBase;\r\n}\r\n\r\nfunction entryFinalizer()\r\n{\r\n\tvar p:IEntryParams = this.params;\r\n\tp.dispatcher.removeEntry(this);\r\n\tp.dispatcher = null;\r\n}\r\n\r\nexport default\r\nclass EventDispatcherBase extends DisposableBase implements IEventDispatcher\r\n{\r\n\r\n\tprotected _entries:EventDispatcherEntry[];\r\n\r\n\taddEventListener(\r\n\t\ttype:string,\r\n\t\tlistener:IEventListener,\r\n\t\tpriority:number = 0):void\r\n\t{\r\n\t\tvar e = this._entries;\r\n\t\tif(!e) this._entries = e = [];\r\n\r\n\t\t// flash/vibe.js means of adding is indiscriminate and will double add listeners...\r\n\t\t// we can then avoid double adds by including a 'registerEventListener' method.\r\n\t\te.push(\r\n\t\t\tnew EventDispatcherEntry(type, listener, {\r\n\t\t\t\t\tpriority: priority || 0,\r\n\t\t\t\t\tdispatcher: this\r\n\t\t\t\t},\r\n\t\t\t\tentryFinalizer));\r\n\t}\r\n\r\n\tremoveEntry(entry:EventDispatcherEntry):boolean\r\n\t{\r\n\t\treturn !!this._entries && AU.remove(this._entries, entry)!=0;\r\n\t}\r\n\r\n\t// Allow for simple add once mechanism.\r\n\tregisterEventListener(\r\n\t\ttype:string,\r\n\t\tlistener:IEventListener,\r\n\t\tpriority:number = 0):void//, useWeakReference: boolean= false)\r\n\t{\r\n\t\tif(!this.hasEventListener(type, listener))\r\n\t\t\tthis.addEventListener(type, listener, priority);\r\n\t}\r\n\r\n\thasEventListener(type:string, listener?:IEventListener):boolean\r\n\t{\r\n\t\tvar e = this._entries;\r\n\t\treturn e && e.some(\r\n\t\t\t\t(value:EventDispatcherEntry):boolean =>\r\n\t\t\t\ttype==value.type && (!listener || listener==value.listener)\r\n\t\t\t);\r\n\t}\r\n\r\n\tremoveEventListener(\r\n\t\ttype:string,\r\n\t\tlistener:IEventListener):void\r\n\t{\r\n\t\tdispose.these(this._entries.filter(entry=> entry.matches(type, listener)));\r\n\t}\r\n\r\n\tdispatchEvent(type:string, params?:any):boolean;\r\n\tdispatchEvent(event:IEvent):boolean;\r\n\tdispatchEvent(e:any, params?:any):boolean\r\n\t{\r\n\r\n\t\tvar _ = this, l = _._entries;\r\n\t\tif(!l || !l.length)\r\n\t\t\treturn false;\r\n\r\n\t\tvar event:IEventBase;\r\n\r\n\t\tif(typeof e==\"string\")\r\n\t\t{\r\n\t\t\tevent = Event && Object.create(Event) || {};\r\n\t\t\tif(!params)\r\n\t\t\t\tparams = {};\r\n\t\t\tif(params['cancellable'])\r\n\t\t\t\t(event).cancellable = true;\r\n\t\t\tevent.target = _;\r\n\t\t\tevent.type = e;\r\n\t\t}\r\n\t\telse\r\n\t\t\tevent = e;\r\n\r\n\t\tvar type = event.type;\r\n\r\n\t\t// noinspection JSMismatchedCollectionQueryUpdate\r\n\t\tvar entries:EventDispatcherEntry[] = l.filter(e=>e.type==type);//, propagate = true, prevent = false;\r\n\t\tif(!entries.length)\r\n\t\t\treturn false;\r\n\r\n\t\tentries.sort((a, b)=> b.params.priority - a.params.priority);\r\n\r\n\t\t// For now... Just use simple...\r\n\t\tentries.forEach(\r\n\t\t\tentry=>\r\n\t\t\t{\r\n\t\t\t\tvar newEvent = Object.create(Event);\r\n\t\t\t\tshallowCopy(event, newEvent);\r\n\t\t\t\tnewEvent.target = this;\r\n\t\t\t\tentry.dispatch(newEvent);\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\treturn true;\r\n\r\n\t}\r\n\r\n\tstatic get DISPOSING() { return DISPOSING; }\r\n\r\n\tstatic get DISPOSED() { return DISPOSED; }\r\n\r\n\t// When dispatching events, we need a way to prevent recursion when disposing.\r\n\tprivate _isDisposing:boolean = false;\r\n\tget isDisposing():boolean\r\n\t{\r\n\t\treturn this._isDisposing;\r\n\t}\r\n\r\n\t// Override the public method here since EventDispatcher will end up doing things a bit differently from here on.\r\n\tpublic dispose()\r\n\t{\r\n\r\n\t\t// Having a disposing event can allow for child objects to automatically release themselves when their parent is disposed.\r\n\t\tvar _ = this;\r\n\t\tif(!_.wasDisposed && !_._isDisposing)\r\n\t\t{\r\n\t\t\t_._isDisposing = true;\r\n\t\t\t_.dispatchEvent(DISPOSING);\r\n\r\n\t\t\tsuper.dispose();\r\n\r\n\t\t\t_.dispatchEvent(DISPOSED);\r\n\r\n\t\t\tvar l = _._entries;\r\n\t\t\tif(l)\r\n\t\t\t{\r\n\t\t\t\tthis._entries = null;\r\n\t\t\t\tl.forEach(e=> e.dispose());\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n}\r\n\r\n"]} \ No newline at end of file diff --git a/dist/commonjs/System/Events/EventDispatcherEntry.d.ts b/dist/commonjs/System/Events/EventDispatcherEntry.d.ts index 73b2f602..b7248a12 100644 --- a/dist/commonjs/System/Events/EventDispatcherEntry.d.ts +++ b/dist/commonjs/System/Events/EventDispatcherEntry.d.ts @@ -1,10 +1,11 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import DisposableBase from "../Disposable/DisposableBase"; -export default class EventDispatcherEntry extends DisposableBase implements IEquatable> { +import { DisposableBase } from "../Disposable/DisposableBase"; +import { IEventListener } from "./IEventListener"; +import { IEquatable } from "../IEquatable"; +export declare class EventDispatcherEntry extends DisposableBase implements IEquatable> { type: string; listener: IEventListener; params: TParams; @@ -14,3 +15,4 @@ export default class EventDispatcherEntry extends DisposableBase implem matches(type: string, listener: IEventListener): boolean; equals(other: EventDispatcherEntry): boolean; } +export default EventDispatcherEntry; diff --git a/dist/commonjs/System/Events/EventDispatcherEntry.js b/dist/commonjs/System/Events/EventDispatcherEntry.js index 9a67717d..7ad734e1 100644 --- a/dist/commonjs/System/Events/EventDispatcherEntry.js +++ b/dist/commonjs/System/Events/EventDispatcherEntry.js @@ -2,7 +2,7 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; +"use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); @@ -20,8 +20,8 @@ var ArgumentNullException_1 = require("../Exceptions/ArgumentNullException"); var ArgumentException_1 = require("../Exceptions/ArgumentException"); var Compare_1 = require("../Compare"); -var EventDispatcherEntry = function (_DisposableBase_1$def) { - _inherits(EventDispatcherEntry, _DisposableBase_1$def); +var EventDispatcherEntry = function (_DisposableBase_1$Dis) { + _inherits(EventDispatcherEntry, _DisposableBase_1$Dis); function EventDispatcherEntry(type, listener) { var params = arguments.length <= 2 || arguments[2] === undefined ? null : arguments[2]; @@ -34,8 +34,8 @@ var EventDispatcherEntry = function (_DisposableBase_1$def) { _this.type = type; _this.listener = listener; _this.params = params; - if (!listener) throw new ArgumentNullException_1.default('listener'); - if (Types_1.default.isObject(listener) && !Types_1.default.hasMemberOfType(listener, "handleEvent", Types_1.default.FUNCTION)) throw new ArgumentException_1.default('listener', "is invalid type. Must be a function or an object with 'handleEvent'."); + if (!listener) throw new ArgumentNullException_1.ArgumentNullException('listener'); + if (Types_1.Type.isObject(listener) && !Types_1.Type.hasMemberOfType(listener, "handleEvent", Types_1.Type.FUNCTION)) throw new ArgumentException_1.ArgumentException('listener', "is invalid type. Must be a function or an object with 'handleEvent'."); var _ = _this; _.type = type; _.listener = listener; @@ -58,7 +58,7 @@ var EventDispatcherEntry = function (_DisposableBase_1$def) { var l = _.listener, d = l && e.type == _.type; if (d) { - if (Types_1.default.isFunction(l)) _.listener(e);else l.handleEvent(e); + if (Types_1.Type.isFunction(l)) _.listener(e);else l.handleEvent(e); } return d; } @@ -77,8 +77,9 @@ var EventDispatcherEntry = function (_DisposableBase_1$def) { }]); return EventDispatcherEntry; -}(DisposableBase_1.default); +}(DisposableBase_1.DisposableBase); +exports.EventDispatcherEntry = EventDispatcherEntry; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = EventDispatcherEntry; //# sourceMappingURL=EventDispatcherEntry.js.map diff --git a/dist/commonjs/System/Events/EventDispatcherEntry.js.map b/dist/commonjs/System/Events/EventDispatcherEntry.js.map index a5fa487a..ed7a61c9 100644 --- a/dist/commonjs/System/Events/EventDispatcherEntry.js.map +++ b/dist/commonjs/System/Events/EventDispatcherEntry.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Events/EventDispatcherEntry.ts","System/Events/EventDispatcherEntry.js"],"names":[],"mappings":";;;;AAMA;;;;;;;;;;;;AAEA,IAAA,UAAA,QAAiB,UAAjB,CAAA;AACA,IAAA,mBAAA,QAA2B,8BAA3B,CAAA;AACA,IAAA,0BAAA,QAAkC,qCAAlC,CAAA;AACA,IAAA,sBAAA,QAA8B,iCAA9B,CAAA;AACA,IAAA,YAAA,QAA4B,YAA5B,CAAA;;IAEA;;;AAKC,aALD,oBAKC,CACQ,IADR,EAEQ,QAFR,EAIsB;YADd,+DAAiB,oBACH;YAArB,yBAAqB;;8BATvB,sBASuB;;2EATvB,iCAWQ,YAFe;;AAHd,cAAA,IAAA,GAAA,IAAA,CAGc;AAFd,cAAA,QAAA,GAAA,QAAA,CAEc;AADd,cAAA,MAAA,GAAA,MAAA,CACc;AAIrB,YAAG,CAAC,QAAD,EACF,MAAM,IAAI,wBAAA,OAAA,CAAsB,UAA1B,CAAN,CADD;AAEA,YAAG,QAAA,OAAA,CAAK,QAAL,CAAc,QAAd,KAA2B,CAAC,QAAA,OAAA,CAAK,eAAL,CAAqB,QAArB,EAA+B,aAA/B,EAA8C,QAAA,OAAA,CAAK,QAAL,CAA/C,EAC7B,MAAM,IAAI,oBAAA,OAAA,CAAkB,UAAtB,EAAkC,uEAAlC,CAAN,CADD;AAGA,YAAI,SAAJ,CATqB;AAUrB,UAAE,IAAF,GAAS,IAAT,CAVqB;AAWrB,UAAE,QAAF,GAAa,QAAb,CAXqB;AAYrB,UAAE,MAAF,GAAW,MAAX,CAZqB;AAarB,UAAE,qBAAF,GAA0B,sBAA1B,CAbqB;;KAJtB;;iBALD;;qCAyBqB;AAEnB,uCA3BF,+DA2BE,CAFmB;AAGnB,iBAAK,QAAL,GAAgB,IAAhB,CAHmB;;;;iCAWX,GAAO;AAEf,gBAAI,IAAI,IAAJ,CAFW;AAGf,gBAAG,EAAE,WAAF,EAAe,OAAO,KAAP,CAAlB;AAEA,gBAAI,IAAI,EAAE,QAAF;gBAAY,IAAI,KAAK,EAAE,IAAF,IAAQ,EAAE,IAAF,CALtB;AAMf,gBAAG,CAAH,EACA;AACC,oBAAG,QAAA,OAAA,CAAK,UAAL,CAAgB,CAAhB,CAAH,EACO,EAAG,QAAH,CAAY,CAAZ,EADP,KAGuB,EAAG,WAAH,CAAe,CAAf,EAHvB;aAFD;AAOA,mBAAO,CAAP,CAbe;;;;gCAsBR,MAAa,UAAuB;AAE3C,gBAAI,IAAI,IAAJ,CAFuC;AAG3C,mBAAO,EAAE,IAAF,IAAQ,IAAR,IACH,EAAE,QAAF,IAAY,QAAZ,CAJuC;;;;+BAYrC,OAAmC;AAEzC,gBAAI,IAAI,IAAJ,CAFqC;AAGzC,mBAAO,EAAE,OAAF,CAAU,MAAM,IAAN,EAAW,MAAM,QAAN,CAArB,IACH,UAAA,aAAA,CAAc,EAAE,MAAF,EAAU,MAAM,MAAN,EAAc,KAAtC,CADG,CAHkC;;;;WAtE3C;EAEQ,iBAAA,OAAA;;AAFR,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ACyCA,QAAQ,OAAR,GAAkB,oBAAlB","file":"System/Events/EventDispatcherEntry.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport Type from \"../Types\";\r\nimport DisposableBase from \"../Disposable/DisposableBase\";\r\nimport ArgumentNullException from \"../Exceptions/ArgumentNullException\";\r\nimport ArgumentException from \"../Exceptions/ArgumentException\";\r\nimport {areEquivalent} from \"../Compare\";\r\n\r\nexport default\r\nclass EventDispatcherEntry\r\nextends DisposableBase implements IEquatable>\r\n{\r\n\r\n\tconstructor(\r\n\t\tpublic type:string,\r\n\t\tpublic listener:IEventListener,\r\n\t\tpublic params:TParams = null,\r\n\t\tfinalizer?:() => void)//, useWeakReference: boolean = false)\r\n\t{\r\n\t\tsuper(finalizer);\r\n\r\n\t\tif(!listener)\r\n\t\t\tthrow new ArgumentNullException('listener');\r\n\t\tif(Type.isObject(listener) && !Type.hasMemberOfType(listener, \"handleEvent\", Type.FUNCTION))\r\n\t\t\tthrow new ArgumentException('listener', \"is invalid type. Must be a function or an object with 'handleEvent'.\");\r\n\r\n\t\tvar _ = this;\r\n\t\t_.type = type;\r\n\t\t_.listener = listener;\r\n\t\t_.params = params;\r\n\t\t_._disposableObjectName = \"EventDispatcherEntry\";\r\n\t}\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis.listener = null;\r\n\t}\r\n\r\n\t/**\r\n\t * Safely dispatches an event if entry is not disposed and type matches.\r\n\t * @param e\r\n\t * @returns {IEventListener|boolean}\r\n\t */\r\n\tdispatch(e:Event):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(_.wasDisposed) return false;\r\n\r\n\t\tvar l = _.listener, d = l && e.type==_.type;\r\n\t\tif(d)\r\n\t\t{\r\n\t\t\tif(Type.isFunction(l))\r\n\t\t\t\t(_).listener(e); // Use 'this' to ensure call reference.\r\n\t\t\telse\r\n\t\t\t\t(l).handleEvent(e);\r\n\t\t}\r\n\t\treturn d;\r\n\t}\r\n\r\n\t/**\r\n\t * Compares type and listener object only.\r\n\t * @param type\r\n\t * @param listener\r\n\t * @returns {boolean}\r\n\t */\r\n\tmatches(type:string, listener:IEventListener):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn _.type==type\r\n\t\t\t&& _.listener==listener;\r\n\t}\r\n\r\n\t/**\r\n\t * Compares type, listener, and priority.\r\n\t * @param other\r\n\t * @returns {boolean}\r\n\t */\r\n\tequals(other:EventDispatcherEntry):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn _.matches(other.type,other.listener)\r\n\t\t\t&& areEquivalent(_.params, other.params, false);\r\n\t}\r\n}","/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n'use strict';\nconst Types_1 = require(\"../Types\");\nconst DisposableBase_1 = require(\"../Disposable/DisposableBase\");\nconst ArgumentNullException_1 = require(\"../Exceptions/ArgumentNullException\");\nconst ArgumentException_1 = require(\"../Exceptions/ArgumentException\");\nconst Compare_1 = require(\"../Compare\");\nclass EventDispatcherEntry extends DisposableBase_1.default {\n constructor(type, listener, params = null, finalizer) {\n super(finalizer);\n this.type = type;\n this.listener = listener;\n this.params = params;\n if (!listener)\n throw new ArgumentNullException_1.default('listener');\n if (Types_1.default.isObject(listener) && !Types_1.default.hasMemberOfType(listener, \"handleEvent\", Types_1.default.FUNCTION))\n throw new ArgumentException_1.default('listener', \"is invalid type. Must be a function or an object with 'handleEvent'.\");\n var _ = this;\n _.type = type;\n _.listener = listener;\n _.params = params;\n _._disposableObjectName = \"EventDispatcherEntry\";\n }\n _onDispose() {\n super._onDispose();\n this.listener = null;\n }\n dispatch(e) {\n var _ = this;\n if (_.wasDisposed)\n return false;\n var l = _.listener, d = l && e.type == _.type;\n if (d) {\n if (Types_1.default.isFunction(l))\n _.listener(e);\n else\n l.handleEvent(e);\n }\n return d;\n }\n matches(type, listener) {\n var _ = this;\n return _.type == type\n && _.listener == listener;\n }\n equals(other) {\n var _ = this;\n return _.matches(other.type, other.listener)\n && Compare_1.areEquivalent(_.params, other.params, false);\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = EventDispatcherEntry;\n"]} \ No newline at end of file +{"version":3,"sources":["System/Events/EventDispatcherEntry.js","System/Events/EventDispatcherEntry.ts"],"names":[],"mappings":";;;;AAIA;;;;;;;;;;;;ACCA,IAAA,UAAA,QAAmB,UAAnB,CAAA;AACA,IAAA,mBAAA,QAA6B,8BAA7B,CAAA;AACA,IAAA,0BAAA,QAAoC,qCAApC,CAAA;AACA,IAAA,sBAAA,QAAgC,iCAAhC,CAAA;AACA,IAAA,YAAA,QAA4B,YAA5B,CAAA;;IAIA;;;AAIC,aAJD,oBAIC,CACQ,IADR,EAEQ,QAFR,EAIsB;YADd,+DAAiB,oBACH;YAArB,yBAAqB;;8BARvB,sBAQuB;;2EARvB,iCAUQ,YAFe;;AAHd,cAAA,IAAA,GAAA,IAAA,CAGc;AAFd,cAAA,QAAA,GAAA,QAAA,CAEc;AADd,cAAA,MAAA,GAAA,MAAA,CACc;AAIrB,YAAG,CAAC,QAAD,EACF,MAAM,IAAI,wBAAA,qBAAA,CAAsB,UAA1B,CAAN,CADD;AAEA,YAAG,QAAA,IAAA,CAAK,QAAL,CAAc,QAAd,KAA2B,CAAC,QAAA,IAAA,CAAK,eAAL,CAAqB,QAArB,EAA+B,aAA/B,EAA8C,QAAA,IAAA,CAAK,QAAL,CAA/C,EAC7B,MAAM,IAAI,oBAAA,iBAAA,CAAkB,UAAtB,EAAkC,uEAAlC,CAAN,CADD;AAGA,YAAI,SAAJ,CATqB;AAUrB,UAAE,IAAF,GAAS,IAAT,CAVqB;AAWrB,UAAE,QAAF,GAAa,QAAb,CAXqB;AAYrB,UAAE,MAAF,GAAW,MAAX,CAZqB;AAarB,UAAE,qBAAF,GAA0B,sBAA1B,CAbqB;;KAJtB;;iBAJD;;qCAwBqB;AAEnB,uCA1BF,+DA0BE,CAFmB;AAGnB,iBAAK,QAAL,GAAgB,IAAhB,CAHmB;;;;iCAWX,GAAO;AAEf,gBAAI,IAAI,IAAJ,CAFW;AAGf,gBAAG,EAAE,WAAF,EAAe,OAAO,KAAP,CAAlB;AAEA,gBAAI,IAAI,EAAE,QAAF;gBAAY,IAAI,KAAK,EAAE,IAAF,IAAQ,EAAE,IAAF,CALtB;AAMf,gBAAG,CAAH,EACA;AACC,oBAAG,QAAA,IAAA,CAAK,UAAL,CAAgB,CAAhB,CAAH,EACO,EAAG,QAAH,CAAY,CAAZ,EADP,KAGuB,EAAG,WAAH,CAAe,CAAf,EAHvB;aAFD;AAOA,mBAAO,CAAP,CAbe;;;;gCAsBR,MAAa,UAAuB;AAE3C,gBAAI,IAAI,IAAJ,CAFuC;AAG3C,mBAAO,EAAE,IAAF,IAAQ,IAAR,IACH,EAAE,QAAF,IAAY,QAAZ,CAJuC;;;;+BAYrC,OAAmC;AAEzC,gBAAI,IAAI,IAAJ,CAFqC;AAGzC,mBAAO,EAAE,OAAF,CAAU,MAAM,IAAN,EAAY,MAAM,QAAN,CAAtB,IACH,UAAA,aAAA,CAAc,EAAE,MAAF,EAAU,MAAM,MAAN,EAAc,KAAtC,CADG,CAHkC;;;;WArE3C;EACQ,iBAAA,cAAA;;AADK,QAAA,oBAAA,GAAoB,oBAApB;AA6Eb,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADlCA,QAAQ,OAAR,GCkCe,oBDlCf","file":"System/Events/EventDispatcherEntry.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst Types_1 = require(\"../Types\");\nconst DisposableBase_1 = require(\"../Disposable/DisposableBase\");\nconst ArgumentNullException_1 = require(\"../Exceptions/ArgumentNullException\");\nconst ArgumentException_1 = require(\"../Exceptions/ArgumentException\");\nconst Compare_1 = require(\"../Compare\");\nclass EventDispatcherEntry extends DisposableBase_1.DisposableBase {\n constructor(type, listener, params = null, finalizer) {\n super(finalizer);\n this.type = type;\n this.listener = listener;\n this.params = params;\n if (!listener)\n throw new ArgumentNullException_1.ArgumentNullException('listener');\n if (Types_1.Type.isObject(listener) && !Types_1.Type.hasMemberOfType(listener, \"handleEvent\", Types_1.Type.FUNCTION))\n throw new ArgumentException_1.ArgumentException('listener', \"is invalid type. Must be a function or an object with 'handleEvent'.\");\n var _ = this;\n _.type = type;\n _.listener = listener;\n _.params = params;\n _._disposableObjectName = \"EventDispatcherEntry\";\n }\n _onDispose() {\n super._onDispose();\n this.listener = null;\n }\n dispatch(e) {\n var _ = this;\n if (_.wasDisposed)\n return false;\n var l = _.listener, d = l && e.type == _.type;\n if (d) {\n if (Types_1.Type.isFunction(l))\n _.listener(e);\n else\n l.handleEvent(e);\n }\n return d;\n }\n matches(type, listener) {\n var _ = this;\n return _.type == type\n && _.listener == listener;\n }\n equals(other) {\n var _ = this;\n return _.matches(other.type, other.listener)\n && Compare_1.areEquivalent(_.params, other.params, false);\n }\n}\nexports.EventDispatcherEntry = EventDispatcherEntry;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = EventDispatcherEntry;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {Type} from \"../Types\";\r\nimport {DisposableBase} from \"../Disposable/DisposableBase\";\r\nimport {ArgumentNullException} from \"../Exceptions/ArgumentNullException\";\r\nimport {ArgumentException} from \"../Exceptions/ArgumentException\";\r\nimport {areEquivalent} from \"../Compare\";\r\nimport {IEventListener} from \"./IEventListener\";\r\nimport {IEquatable} from \"../IEquatable\";\r\n\r\nexport class EventDispatcherEntry\r\nextends DisposableBase implements IEquatable>\r\n{\r\n\r\n\tconstructor(\r\n\t\tpublic type:string,\r\n\t\tpublic listener:IEventListener,\r\n\t\tpublic params:TParams = null,\r\n\t\tfinalizer?:() => void)//, useWeakReference: boolean = false)\r\n\t{\r\n\t\tsuper(finalizer);\r\n\r\n\t\tif(!listener)\r\n\t\t\tthrow new ArgumentNullException('listener');\r\n\t\tif(Type.isObject(listener) && !Type.hasMemberOfType(listener, \"handleEvent\", Type.FUNCTION))\r\n\t\t\tthrow new ArgumentException('listener', \"is invalid type. Must be a function or an object with 'handleEvent'.\");\r\n\r\n\t\tvar _ = this;\r\n\t\t_.type = type;\r\n\t\t_.listener = listener;\r\n\t\t_.params = params;\r\n\t\t_._disposableObjectName = \"EventDispatcherEntry\";\r\n\t}\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis.listener = null;\r\n\t}\r\n\r\n\t/**\r\n\t * Safely dispatches an event if entry is not disposed and type matches.\r\n\t * @param e\r\n\t * @returns {IEventListener|boolean}\r\n\t */\r\n\tdispatch(e:Event):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(_.wasDisposed) return false;\r\n\r\n\t\tvar l = _.listener, d = l && e.type==_.type;\r\n\t\tif(d)\r\n\t\t{\r\n\t\t\tif(Type.isFunction(l))\r\n\t\t\t\t(_).listener(e); // Use 'this' to ensure call reference.\r\n\t\t\telse\r\n\t\t\t\t(l).handleEvent(e);\r\n\t\t}\r\n\t\treturn d;\r\n\t}\r\n\r\n\t/**\r\n\t * Compares type and listener object only.\r\n\t * @param type\r\n\t * @param listener\r\n\t * @returns {boolean}\r\n\t */\r\n\tmatches(type:string, listener:IEventListener):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn _.type==type\r\n\t\t\t&& _.listener==listener;\r\n\t}\r\n\r\n\t/**\r\n\t * Compares type, listener, and priority.\r\n\t * @param other\r\n\t * @returns {boolean}\r\n\t */\r\n\tequals(other:EventDispatcherEntry):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn _.matches(other.type, other.listener)\r\n\t\t\t&& areEquivalent(_.params, other.params, false);\r\n\t}\r\n}\r\n\r\nexport default EventDispatcherEntry;"]} \ No newline at end of file diff --git a/dist/commonjs/System/Events/EventSimple.d.ts b/dist/commonjs/System/Events/EventSimple.d.ts index f4fd3db2..58e86841 100644 --- a/dist/commonjs/System/Events/EventSimple.d.ts +++ b/dist/commonjs/System/Events/EventSimple.d.ts @@ -3,6 +3,7 @@ * Based on Netjs mscorlib.ts * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { IDisposable } from "../Disposable/IDisposable"; export default class EventSimple implements IDisposable { private _listeners; add(listener: T): void; diff --git a/dist/commonjs/System/Events/EventSimple.js.map b/dist/commonjs/System/Events/EventSimple.js.map index d8b40496..921b0421 100644 --- a/dist/commonjs/System/Events/EventSimple.js.map +++ b/dist/commonjs/System/Events/EventSimple.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Events/EventSimple.js","System/Events/EventSimple.ts"],"names":[],"mappings":";;;;;AAKA;;;;;;ICKA;AAAA,aAAA,WAAA,GAAA;8BAAA,aAAA;;AAES,aAAA,UAAA,GAAiB,EAAjB,CAFT;KAAA;;iBAAA;;4BAIK,UAAU;AAEb,iBAAK,UAAL,CAAgB,IAAhB,CAAqB,QAArB,EAFa;;;;+BAKP,UAAU;AAEhB,gBAAI,QAAQ,KAAK,UAAL,CAAgB,OAAhB,CAAwB,QAAxB,CAAR,CAFY;AAGhB,gBAAG,QAAM,CAAN,EAAS,OAAZ;AACA,iBAAK,UAAL,CAAgB,MAAhB,CAAuB,KAAvB,EAA8B,CAA9B,EAJgB;;;;mCAOO;AAEvB,gBAAI,YAAY,KAAK,UAAL,CAFO;;8CAAZ;;aAAY;;;;;;;AAGvB,qCAAa,mCAAb,oGACA;wBADQ,gBACR;;AACC,sBAAE,IAAF,CAAO,MAAP,EADD;iBADA;;;;;;;;;;;;;;aAHuB;;;;8CASL;AAElB,gBAAI,YAAY,KAAK,UAAL,CAFE;AAGlB,mBAAO,YAAA;;;;;;AAEN,0CAAa,oCAAb,wGACA;4BADQ,iBACR;;AACC,0BAAE,IAAF,CAAO,SAAP,EADD;qBADA;;;;;;;;;;;;;;iBAFM;aAAA,CAHW;;;;kCAYZ;AAEN,iBAAK,UAAL,CAAgB,MAAhB,GAAyB,CAAzB,CAFM;;;;WArCR;;;AAAA,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;AD4BA,QAAQ,OAAR,GAAkB,WAAlB","file":"System/Events/EventSimple.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based on Netjs mscorlib.ts\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nclass EventSimple {\n constructor() {\n this._listeners = [];\n }\n add(listener) {\n this._listeners.push(listener);\n }\n remove(listener) {\n var index = this._listeners.indexOf(listener);\n if (index < 0)\n return;\n this._listeners.splice(index, 1);\n }\n dispatch(...params) {\n var listeners = this._listeners;\n for (var f of listeners) {\n f.call(params);\n }\n }\n toMulticastFunction() {\n var listeners = this._listeners;\n return function () {\n for (var f of listeners) {\n f.call(arguments);\n }\n };\n }\n dispose() {\n this._listeners.length = 0;\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = EventSimple;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based on Netjs mscorlib.ts\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n/**\r\n * A simple event dispatcher provided as an alternative to built-in event.\r\n * If just dispatching a payload to a uniform set of functions, it may be better to just use the utilities in System/Collections/Array/Dispatch.\r\n */\r\nexport default class EventSimple implements IDisposable\r\n{\r\n\tprivate _listeners:T[] = [];\r\n\r\n\tadd(listener:T):void\r\n\t{\r\n\t\tthis._listeners.push(listener);\r\n\t}\r\n\r\n\tremove(listener:T):void\r\n\t{\r\n\t\tvar index = this._listeners.indexOf(listener);\r\n\t\tif(index<0) return;\r\n\t\tthis._listeners.splice(index, 1);\r\n\t}\r\n\r\n\tdispatch(...params:any[]):void\r\n\t{\r\n\t\tvar listeners = this._listeners;\r\n\t\tfor(var f of listeners)\r\n\t\t{\r\n\t\t\tf.call(params);\r\n\t\t}\r\n\t}\r\n\r\n\ttoMulticastFunction():Function\r\n\t{\r\n\t\tvar listeners = this._listeners;\r\n\t\treturn function()\r\n\t\t{\r\n\t\t\tfor(var f of listeners)\r\n\t\t\t{\r\n\t\t\t\tf.call(arguments);\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tdispose():void\r\n\t{\r\n\t\tthis._listeners.length = 0;\r\n\t}\r\n}"]} \ No newline at end of file +{"version":3,"sources":["System/Events/EventSimple.js","System/Events/EventSimple.ts"],"names":[],"mappings":";;;;;AAKA;;;;;;ICQA;AAAA,aAAA,WAAA,GAAA;8BAAA,aAAA;;AAES,aAAA,UAAA,GAAiB,EAAjB,CAFT;KAAA;;iBAAA;;4BAIK,UAAU;AAEb,iBAAK,UAAL,CAAgB,IAAhB,CAAqB,QAArB,EAFa;;;;+BAKP,UAAU;AAEhB,gBAAI,QAAQ,KAAK,UAAL,CAAgB,OAAhB,CAAwB,QAAxB,CAAR,CAFY;AAGhB,gBAAG,QAAM,CAAN,EAAS,OAAZ;AACA,iBAAK,UAAL,CAAgB,MAAhB,CAAuB,KAAvB,EAA8B,CAA9B,EAJgB;;;;mCAOO;AAEvB,gBAAI,YAAY,KAAK,UAAL,CAFO;;8CAAZ;;aAAY;;;;;;;AAGvB,qCAAa,mCAAb,oGACA;wBADQ,gBACR;;AACC,sBAAE,IAAF,CAAO,MAAP,EADD;iBADA;;;;;;;;;;;;;;aAHuB;;;;8CASL;AAElB,gBAAI,YAAY,KAAK,UAAL,CAFE;AAGlB,mBAAO,YAAA;;;;;;AAEN,0CAAa,oCAAb,wGACA;4BADQ,iBACR;;AACC,0BAAE,IAAF,CAAO,SAAP,EADD;qBADA;;;;;;;;;;;;;;iBAFM;aAAA,CAHW;;;;kCAYZ;AAEN,iBAAK,UAAL,CAAgB,MAAhB,GAAyB,CAAzB,CAFM;;;;WArCR;;;AAAA,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADyBA,QAAQ,OAAR,GAAkB,WAAlB","file":"System/Events/EventSimple.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based on Netjs mscorlib.ts\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nclass EventSimple {\n constructor() {\n this._listeners = [];\n }\n add(listener) {\n this._listeners.push(listener);\n }\n remove(listener) {\n var index = this._listeners.indexOf(listener);\n if (index < 0)\n return;\n this._listeners.splice(index, 1);\n }\n dispatch(...params) {\n var listeners = this._listeners;\n for (var f of listeners) {\n f.call(params);\n }\n }\n toMulticastFunction() {\n var listeners = this._listeners;\n return function () {\n for (var f of listeners) {\n f.call(arguments);\n }\n };\n }\n dispose() {\n this._listeners.length = 0;\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = EventSimple;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based on Netjs mscorlib.ts\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {IDisposable} from \"../Disposable/IDisposable\";\r\n\r\n/**\r\n * A simple event dispatcher provided as an alternative to built-in event.\r\n * If just dispatching a payload to a uniform set of functions, it may be better to just use the utilities in System/Collections/Array/Dispatch.\r\n */\r\nexport default class EventSimple implements IDisposable\r\n{\r\n\tprivate _listeners:T[] = [];\r\n\r\n\tadd(listener:T):void\r\n\t{\r\n\t\tthis._listeners.push(listener);\r\n\t}\r\n\r\n\tremove(listener:T):void\r\n\t{\r\n\t\tvar index = this._listeners.indexOf(listener);\r\n\t\tif(index<0) return;\r\n\t\tthis._listeners.splice(index, 1);\r\n\t}\r\n\r\n\tdispatch(...params:any[]):void\r\n\t{\r\n\t\tvar listeners = this._listeners;\r\n\t\tfor(var f of listeners)\r\n\t\t{\r\n\t\t\tf.call(params);\r\n\t\t}\r\n\t}\r\n\r\n\ttoMulticastFunction():Function\r\n\t{\r\n\t\tvar listeners = this._listeners;\r\n\t\treturn function()\r\n\t\t{\r\n\t\t\tfor(var f of listeners)\r\n\t\t\t{\r\n\t\t\t\tf.call(arguments);\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tdispose():void\r\n\t{\r\n\t\tthis._listeners.length = 0;\r\n\t}\r\n}"]} \ No newline at end of file diff --git a/dist/commonjs/System/Exception.d.ts b/dist/commonjs/System/Exception.d.ts index dce52d48..418b2f8f 100644 --- a/dist/commonjs/System/Exception.d.ts +++ b/dist/commonjs/System/Exception.d.ts @@ -1,11 +1,11 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -export default class Exception implements Error, IDisposable { +import { IDisposable } from "./Disposable/IDisposable"; +import { IMap } from "./Collections/Dictionaries/IDictionary"; +export declare class Exception implements Error, IDisposable { message: string; name: string; constructor(message?: string, innerException?: Error, beforeSealing?: (ex: any) => void); @@ -16,3 +16,4 @@ export default class Exception implements Error, IDisposable { protected toStringWithoutBrackets(): string; dispose(): void; } +export default Exception; diff --git a/dist/commonjs/System/Exception.js b/dist/commonjs/System/Exception.js index 08825517..75318629 100644 --- a/dist/commonjs/System/Exception.js +++ b/dist/commonjs/System/Exception.js @@ -3,7 +3,7 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -'use strict'; +"use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); @@ -63,6 +63,7 @@ var Exception = function () { return Exception; }(); +exports.Exception = Exception; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = Exception; //# sourceMappingURL=Exception.js.map diff --git a/dist/commonjs/System/Exception.js.map b/dist/commonjs/System/Exception.js.map index 28990225..5f39a711 100644 --- a/dist/commonjs/System/Exception.js.map +++ b/dist/commonjs/System/Exception.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Exception.ts","System/Exception.js"],"names":[],"mappings":";;;;;AAQA;;;;;;AAEA,IAAM,OAAc,WAAd;;IAKN;AAeC,aAfD,SAeC,GAG8B;YAFtB,gEAAiB,oBAEK;YAD7B,uEAAuB,oBACM;YAA7B,6BAA6B;;8BAlB/B,WAkB+B;;AAFtB,aAAA,OAAA,GAAA,OAAA,CAEsB;AAE7B,YAAI,IAAI,IAAJ,CAFyB;AAI7B,UAAE,IAAF,GAAS,EAAE,OAAF,EAAT,CAJ6B;AAK7B,UAAE,IAAF,GAAS,EAAT,CAL6B;AAM7B,YAAG,cAAH,EACC,EAAE,IAAF,CAAO,gBAAP,IAA2B,cAA3B,CADD;AAQA,YAAG,aAAH,EAAkB,cAAc,CAAd,EAAlB;AAGA,YAAI;AACH,gBAAI,QAAe,IAAU,KAAJ,EAAN,CAAmB,KAAnB,CADhB;AAEH,oBAAQ,SAAS,MAAM,OAAN,CAAc,UAAd,EAAyB,EAAzB,EAA6B,OAA7B,CAAqC,oBAArC,EAA0D,EAA1D,CAAT,IAA0E,EAA1E,CAFL;AAGH,iBAAK,KAAL,GAAa,EAAE,uBAAF,KAA8B,KAA9B,CAHV;SAAJ,CAIE,OAAM,EAAN,EAAU,EAAV;AAEF,eAAO,MAAP,CAAc,CAAd,EAvB6B;KAH9B;;iBAfD;;kCAoDkB;AACf,mBAAO,IAAP,CADe;;;;mCAMT;AAEP,yBAAW,KAAK,uBAAL,QAAX,CAFO;;;;kDAKyB;AAChC,gBAAI,IAAI,IAAJ;gBAAU,IAAI,EAAE,OAAF,CADc;AAEhC,mBAAO,EAAE,IAAF,IAAU,IAAK,OAAO,CAAP,GAAY,EAAjB,CAAV,CAFyB;;;;kCAQ1B;AAEN,gBAAI,OAAO,KAAK,IAAL,CAFL;AAGN,iBAAI,IAAI,CAAJ,IAAS,IAAb,EACA;AACC,oBAAG,KAAK,cAAL,CAAoB,CAApB,CAAH,EACC,OAAO,KAAK,CAAL,CAAP,CADD;aAFD;;;;WA1EF;;;AAAA,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;AC2BA,QAAQ,OAAR,GAAkB,SAAlB","file":"System/Exception.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nconst NAME:string = 'Exception';\r\n\r\n/**\r\n * Represents errors that occur during application execution.\r\n */\r\nexport default\r\nclass Exception implements Error, IDisposable\r\n{\r\n\t/**\r\n\t * A string representation of the error type.\r\n\t * The default is 'Error'.\r\n\t */\r\n\tname:string;\r\n\r\n\t/**\r\n\t * Initializes a new instance of the Exception class with a specified error message and optionally a reference to the inner exception that is the cause of this exception.\r\n\t * @param message\r\n\t * @param innerException\r\n\t * @param beforeSealing This delegate is used to allow actions to occur just before this constructor finishes. Since some compilers do not allow the use of 'this' before super.\r\n\t */\r\n\tconstructor(\r\n\t\tpublic message:string = null,\r\n\t\tinnerException:Error = null,\r\n\t\tbeforeSealing?:(ex:any)=>void)\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\t_.name = _.getName();\r\n\t\t_.data = {};\r\n\t\tif(innerException)\r\n\t\t\t_.data['innerException'] = innerException;\r\n\r\n\t\t/* Originally intended to use 'get' accessors for properties,\r\n\t\t * But debuggers don't display these readily yet.\r\n\t\t * Object.freeze has to be used carefully, but will prevent overriding values.\r\n\t\t */\r\n\r\n\t\tif(beforeSealing) beforeSealing(_);\r\n\r\n\t\t// Node has a .stack, let's use it...\r\n\t\ttry {\r\n\t\t\tvar stack:string = (new Error()).stack;\r\n\t\t\tstack = stack && stack.replace(/^Error\\n/,'').replace(/(.|\\n)+\\s+at new.+/,'') || '';\r\n\t\t\tthis.stack = _.toStringWithoutBrackets() + stack;\r\n\t\t} catch(ex) {}\r\n\r\n\t\tObject.freeze(_);\r\n\t}\r\n\r\n\tstack:string;\r\n\r\n\tdata:IMap;\r\n\r\n\t/**\r\n\t * A string representation of the error type.\r\n\t * The default is 'Error'.\r\n\t */\r\n\tprotected getName():string\r\n\t{ return NAME; }\r\n\r\n\t/**\r\n\t * The string representation of the Exception instance.\r\n\t */\r\n\ttoString():string\r\n\t{\r\n\t\treturn `[${this.toStringWithoutBrackets()}]`;\r\n\t}\r\n\r\n\tprotected toStringWithoutBrackets():string {\r\n\t\tvar _ = this, m = _.message;\r\n\t\treturn _.name + (m ? (': ' + m) : '');\r\n\t}\r\n\r\n\t/**\r\n\t * Clears the data object.\r\n\t */\r\n\tdispose():void\r\n\t{\r\n\t\tvar data = this.data;\r\n\t\tfor(let k in data)\r\n\t\t{\r\n\t\t\tif(data.hasOwnProperty(k))\r\n\t\t\t\tdelete data[k];\r\n\t\t}\r\n\t}\r\n}\r\n","/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\n'use strict';\nconst NAME = 'Exception';\nclass Exception {\n constructor(message = null, innerException = null, beforeSealing) {\n this.message = message;\n var _ = this;\n _.name = _.getName();\n _.data = {};\n if (innerException)\n _.data['innerException'] = innerException;\n if (beforeSealing)\n beforeSealing(_);\n try {\n var stack = (new Error()).stack;\n stack = stack && stack.replace(/^Error\\n/, '').replace(/(.|\\n)+\\s+at new.+/, '') || '';\n this.stack = _.toStringWithoutBrackets() + stack;\n }\n catch (ex) { }\n Object.freeze(_);\n }\n getName() { return NAME; }\n toString() {\n return `[${this.toStringWithoutBrackets()}]`;\n }\n toStringWithoutBrackets() {\n var _ = this, m = _.message;\n return _.name + (m ? (': ' + m) : '');\n }\n dispose() {\n var data = this.data;\n for (let k in data) {\n if (data.hasOwnProperty(k))\n delete data[k];\n }\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Exception;\n"]} \ No newline at end of file +{"version":3,"sources":["System/Exception.js","System/Exception.ts"],"names":[],"mappings":";;;;;AAKA;;;;;;ACGA,IAAM,OAAc,WAAd;;IAKN;AAcC,aAdD,SAcC,GAG8B;YAFtB,gEAAiB,oBAEK;YAD7B,uEAAuB,oBACM;YAA7B,6BAA6B;;8BAjB/B,WAiB+B;;AAFtB,aAAA,OAAA,GAAA,OAAA,CAEsB;AAE7B,YAAI,IAAI,IAAJ,CAFyB;AAI7B,UAAE,IAAF,GAAS,EAAE,OAAF,EAAT,CAJ6B;AAK7B,UAAE,IAAF,GAAS,EAAT,CAL6B;AAM7B,YAAG,cAAH,EACC,EAAE,IAAF,CAAO,gBAAP,IAA2B,cAA3B,CADD;AAQA,YAAG,aAAH,EAAkB,cAAc,CAAd,EAAlB;AAGA,YAAI;AACH,gBAAI,QAAe,IAAU,KAAJ,EAAN,CAAmB,KAAnB,CADhB;AAEH,oBAAQ,SAAS,MAAM,OAAN,CAAc,UAAd,EAAyB,EAAzB,EAA6B,OAA7B,CAAqC,oBAArC,EAA0D,EAA1D,CAAT,IAA0E,EAA1E,CAFL;AAGH,iBAAK,KAAL,GAAa,EAAE,uBAAF,KAA8B,KAA9B,CAHV;SAAJ,CAIE,OAAM,EAAN,EAAU,EAAV;AAEF,eAAO,MAAP,CAAc,CAAd,EAvB6B;KAH9B;;iBAdD;;kCAmDkB;AACf,mBAAO,IAAP,CADe;;;;mCAMT;AAEP,yBAAW,KAAK,uBAAL,QAAX,CAFO;;;;kDAKyB;AAChC,gBAAI,IAAI,IAAJ;gBAAU,IAAI,EAAE,OAAF,CADc;AAEhC,mBAAO,EAAE,IAAF,IAAU,IAAK,OAAO,CAAP,GAAY,EAAjB,CAAV,CAFyB;;;;kCAQ1B;AAEN,gBAAI,OAAO,KAAK,IAAL,CAFL;AAGN,iBAAI,IAAI,CAAJ,IAAS,IAAb,EACA;AACC,oBAAG,KAAK,cAAL,CAAoB,CAApB,CAAH,EACC,OAAO,KAAK,CAAL,CAAP,CADD;aAFD;;;;WAzEF;;;AAAa,QAAA,SAAA,GAAS,SAAT;AAiFb,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADnDA,QAAQ,OAAR,GCmDe,SDnDf","file":"System/Exception.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\n\"use strict\";\nconst NAME = 'Exception';\nclass Exception {\n constructor(message = null, innerException = null, beforeSealing) {\n this.message = message;\n var _ = this;\n _.name = _.getName();\n _.data = {};\n if (innerException)\n _.data['innerException'] = innerException;\n if (beforeSealing)\n beforeSealing(_);\n try {\n var stack = (new Error()).stack;\n stack = stack && stack.replace(/^Error\\n/, '').replace(/(.|\\n)+\\s+at new.+/, '') || '';\n this.stack = _.toStringWithoutBrackets() + stack;\n }\n catch (ex) { }\n Object.freeze(_);\n }\n getName() { return NAME; }\n toString() {\n return `[${this.toStringWithoutBrackets()}]`;\n }\n toStringWithoutBrackets() {\n var _ = this, m = _.message;\n return _.name + (m ? (': ' + m) : '');\n }\n dispose() {\n var data = this.data;\n for (let k in data) {\n if (data.hasOwnProperty(k))\n delete data[k];\n }\n }\n}\nexports.Exception = Exception;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Exception;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\nimport {IDisposable} from \"./Disposable/IDisposable\";\r\nimport {IMap} from \"./Collections/Dictionaries/IDictionary\";\r\nconst NAME:string = 'Exception';\r\n\r\n/**\r\n * Represents errors that occur during application execution.\r\n */\r\nexport class Exception implements Error, IDisposable\r\n{\r\n\t/**\r\n\t * A string representation of the error type.\r\n\t * The default is 'Error'.\r\n\t */\r\n\tname:string;\r\n\r\n\t/**\r\n\t * Initializes a new instance of the Exception class with a specified error message and optionally a reference to the inner exception that is the cause of this exception.\r\n\t * @param message\r\n\t * @param innerException\r\n\t * @param beforeSealing This delegate is used to allow actions to occur just before this constructor finishes. Since some compilers do not allow the use of 'this' before super.\r\n\t */\r\n\tconstructor(\r\n\t\tpublic message:string = null,\r\n\t\tinnerException:Error = null,\r\n\t\tbeforeSealing?:(ex:any)=>void)\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\t_.name = _.getName();\r\n\t\t_.data = {};\r\n\t\tif(innerException)\r\n\t\t\t_.data['innerException'] = innerException;\r\n\r\n\t\t/* Originally intended to use 'get' accessors for properties,\r\n\t\t * But debuggers don't display these readily yet.\r\n\t\t * Object.freeze has to be used carefully, but will prevent overriding values.\r\n\t\t */\r\n\r\n\t\tif(beforeSealing) beforeSealing(_);\r\n\r\n\t\t// Node has a .stack, let's use it...\r\n\t\ttry {\r\n\t\t\tvar stack:string = (new Error()).stack;\r\n\t\t\tstack = stack && stack.replace(/^Error\\n/,'').replace(/(.|\\n)+\\s+at new.+/,'') || '';\r\n\t\t\tthis.stack = _.toStringWithoutBrackets() + stack;\r\n\t\t} catch(ex) {}\r\n\r\n\t\tObject.freeze(_);\r\n\t}\r\n\r\n\tstack:string;\r\n\r\n\tdata:IMap;\r\n\r\n\t/**\r\n\t * A string representation of the error type.\r\n\t * The default is 'Error'.\r\n\t */\r\n\tprotected getName():string\r\n\t{ return NAME; }\r\n\r\n\t/**\r\n\t * The string representation of the Exception instance.\r\n\t */\r\n\ttoString():string\r\n\t{\r\n\t\treturn `[${this.toStringWithoutBrackets()}]`;\r\n\t}\r\n\r\n\tprotected toStringWithoutBrackets():string {\r\n\t\tvar _ = this, m = _.message;\r\n\t\treturn _.name + (m ? (': ' + m) : '');\r\n\t}\r\n\r\n\t/**\r\n\t * Clears the data object.\r\n\t */\r\n\tdispose():void\r\n\t{\r\n\t\tvar data = this.data;\r\n\t\tfor(let k in data)\r\n\t\t{\r\n\t\t\tif(data.hasOwnProperty(k))\r\n\t\t\t\tdelete data[k];\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default Exception;\r\n"]} \ No newline at end of file diff --git a/dist/commonjs/System/Exceptions/ArgumentException.d.ts b/dist/commonjs/System/Exceptions/ArgumentException.d.ts index eac4232c..59bd91e1 100644 --- a/dist/commonjs/System/Exceptions/ArgumentException.d.ts +++ b/dist/commonjs/System/Exceptions/ArgumentException.d.ts @@ -3,9 +3,10 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -import SystemException from "./SystemException"; -export default class ArgumentException extends SystemException { +import { SystemException } from "./SystemException"; +export declare class ArgumentException extends SystemException { paramName: string; constructor(paramName: string, message?: string, innerException?: Error, beforeSealing?: (ex: any) => void); protected getName(): string; } +export default ArgumentException; diff --git a/dist/commonjs/System/Exceptions/ArgumentException.js b/dist/commonjs/System/Exceptions/ArgumentException.js index 68a3ca5b..a6dbbc83 100644 --- a/dist/commonjs/System/Exceptions/ArgumentException.js +++ b/dist/commonjs/System/Exceptions/ArgumentException.js @@ -3,7 +3,7 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -'use strict'; +"use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); @@ -17,8 +17,8 @@ var SystemException_1 = require("./SystemException"); var Utility_1 = require("../Text/Utility"); var NAME = 'ArgumentException'; -var ArgumentException = function (_SystemException_1$de) { - _inherits(ArgumentException, _SystemException_1$de); +var ArgumentException = function (_SystemException_1$Sy) { + _inherits(ArgumentException, _SystemException_1$Sy); function ArgumentException(paramName) { var message = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1]; @@ -42,8 +42,9 @@ var ArgumentException = function (_SystemException_1$de) { }]); return ArgumentException; -}(SystemException_1.default); +}(SystemException_1.SystemException); +exports.ArgumentException = ArgumentException; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = ArgumentException; //# sourceMappingURL=ArgumentException.js.map diff --git a/dist/commonjs/System/Exceptions/ArgumentException.js.map b/dist/commonjs/System/Exceptions/ArgumentException.js.map index 991bc791..b978dfa8 100644 --- a/dist/commonjs/System/Exceptions/ArgumentException.js.map +++ b/dist/commonjs/System/Exceptions/ArgumentException.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Exceptions/ArgumentException.ts","System/Exceptions/ArgumentException.js"],"names":[],"mappings":";;;;;AAMA;;;;;;;;;;AAEA,IAAA,oBAAA,QAA4B,mBAA5B,CAAA;AACA,IAAA,YAAA,QAAmB,iBAAnB,CAAA;AAGA,IAAM,OAAc,mBAAd;;IAEN;;;AAOC,aAPD,iBAOC,CACC,SADD,EAI8B;YAF7B,gEAAiB,oBAEY;YAD7B,uEAAuB,oBACM;YAA7B,6BAA6B;;8BAX/B,mBAW+B;;AAE7B,YAAI,KAAK,YAAa,MAAM,SAAN,GAAkB,IAAlB,GAA0B,EAAvC,CAFoB;sEAX/B,8BAcQ,UAAA,IAAA,CAAK,MAAM,WAAS,EAAT,CAAN,GAAqB,gBAAgB,UAAC,CAAD,EAAE;AACjD,cAAE,SAAF,GAAc,SAAd,CADiD;AAEjD,gBAAG,aAAH,EAAkB,cAAc,CAAd,EAAlB;SAF+C,GAHnB;KAJ9B;;iBAPD;;kCAqBkB;AAEhB,mBAAO,IAAP,CAFgB;;;;WArBlB;EACgC,kBAAA,OAAA;;AADhC,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ACSA,QAAQ,OAAR,GAAkB,iBAAlB","file":"System/Exceptions/ArgumentException.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport SystemException from \"./SystemException\";\r\nimport {trim} from \"../Text/Utility\";\r\n\r\n\r\nconst NAME:string = 'ArgumentException';\r\n\r\nexport default\r\nclass ArgumentException extends SystemException\r\n{\r\n\r\n\tparamName:string;\r\n\r\n\t// For simplicity and consistency, lets stick with 1 signature.\r\n\tconstructor(\r\n\t\tparamName:string,\r\n\t\tmessage:string = null,\r\n\t\tinnerException:Error = null,\r\n\t\tbeforeSealing?:(ex:any)=>void)\r\n\t{\r\n\t\tvar pn = paramName ? ('{' + paramName + '} ') : '';\r\n\t\tsuper(trim(pn + (message||'')), innerException, (_)=>{\r\n\t\t\t_.paramName = paramName;\r\n\t\t\tif(beforeSealing) beforeSealing(_);\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n\r\n}\r\n","/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\n'use strict';\nconst SystemException_1 = require(\"./SystemException\");\nconst Utility_1 = require(\"../Text/Utility\");\nconst NAME = 'ArgumentException';\nclass ArgumentException extends SystemException_1.default {\n constructor(paramName, message = null, innerException = null, beforeSealing) {\n var pn = paramName ? ('{' + paramName + '} ') : '';\n super(Utility_1.trim(pn + (message || '')), innerException, (_) => {\n _.paramName = paramName;\n if (beforeSealing)\n beforeSealing(_);\n });\n }\n getName() {\n return NAME;\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = ArgumentException;\n"]} \ No newline at end of file +{"version":3,"sources":["System/Exceptions/ArgumentException.js","System/Exceptions/ArgumentException.ts"],"names":[],"mappings":";;;;;AAKA;;;;;;;;;;ACEA,IAAA,oBAAA,QAA8B,mBAA9B,CAAA;AACA,IAAA,YAAA,QAAmB,iBAAnB,CAAA;AAGA,IAAM,OAAc,mBAAd;;IAEN;;;AAMC,aAND,iBAMC,CACC,SADD,EAI8B;YAF7B,gEAAiB,oBAEY;YAD7B,uEAAuB,oBACM;YAA7B,6BAA6B;;8BAV/B,mBAU+B;;AAE7B,YAAI,KAAK,YAAa,MAAM,SAAN,GAAkB,IAAlB,GAA0B,EAAvC,CAFoB;sEAV/B,8BAaQ,UAAA,IAAA,CAAK,MAAM,WAAS,EAAT,CAAN,GAAqB,gBAAgB,UAAC,CAAD,EAAE;AACjD,cAAE,SAAF,GAAc,SAAd,CADiD;AAEjD,gBAAG,aAAH,EAAkB,cAAc,CAAd,EAAlB;SAF+C,GAHnB;KAJ9B;;iBAND;;kCAoBkB;AAEhB,mBAAO,IAAP,CAFgB;;;;WApBlB;EAAuC,kBAAA,eAAA;;AAA1B,QAAA,iBAAA,GAAiB,iBAAjB;AA2Bb,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADhBA,QAAQ,OAAR,GCgBe,iBDhBf","file":"System/Exceptions/ArgumentException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\n\"use strict\";\nconst SystemException_1 = require(\"./SystemException\");\nconst Utility_1 = require(\"../Text/Utility\");\nconst NAME = 'ArgumentException';\nclass ArgumentException extends SystemException_1.SystemException {\n constructor(paramName, message = null, innerException = null, beforeSealing) {\n var pn = paramName ? ('{' + paramName + '} ') : '';\n super(Utility_1.trim(pn + (message || '')), innerException, (_) => {\n _.paramName = paramName;\n if (beforeSealing)\n beforeSealing(_);\n });\n }\n getName() {\n return NAME;\n }\n}\nexports.ArgumentException = ArgumentException;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = ArgumentException;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\n\r\nimport {SystemException} from \"./SystemException\";\r\nimport {trim} from \"../Text/Utility\";\r\n\r\n\r\nconst NAME:string = 'ArgumentException';\r\n\r\nexport class ArgumentException extends SystemException\r\n{\r\n\r\n\tparamName:string;\r\n\r\n\t// For simplicity and consistency, lets stick with 1 signature.\r\n\tconstructor(\r\n\t\tparamName:string,\r\n\t\tmessage:string = null,\r\n\t\tinnerException:Error = null,\r\n\t\tbeforeSealing?:(ex:any)=>void)\r\n\t{\r\n\t\tvar pn = paramName ? ('{' + paramName + '} ') : '';\r\n\t\tsuper(trim(pn + (message||'')), innerException, (_)=>{\r\n\t\t\t_.paramName = paramName;\r\n\t\t\tif(beforeSealing) beforeSealing(_);\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n\r\n}\r\n\r\nexport default ArgumentException;"]} \ No newline at end of file diff --git a/dist/commonjs/System/Exceptions/ArgumentNullException.d.ts b/dist/commonjs/System/Exceptions/ArgumentNullException.d.ts index 5cc13038..5d73f022 100644 --- a/dist/commonjs/System/Exceptions/ArgumentNullException.d.ts +++ b/dist/commonjs/System/Exceptions/ArgumentNullException.d.ts @@ -3,8 +3,9 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -import ArgumentException from './ArgumentException'; -export default class ArgumentNullException extends ArgumentException { +import { ArgumentException } from "./ArgumentException"; +export declare class ArgumentNullException extends ArgumentException { constructor(paramName: string, message?: string, innerException?: Error); protected getName(): string; } +export default ArgumentNullException; diff --git a/dist/commonjs/System/Exceptions/ArgumentNullException.js b/dist/commonjs/System/Exceptions/ArgumentNullException.js index 4bfae352..063aa597 100644 --- a/dist/commonjs/System/Exceptions/ArgumentNullException.js +++ b/dist/commonjs/System/Exceptions/ArgumentNullException.js @@ -3,7 +3,7 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -'use strict'; +"use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); @@ -13,7 +13,7 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } -var ArgumentException_1 = require('./ArgumentException'); +var ArgumentException_1 = require("./ArgumentException"); var NAME = 'ArgumentNullException'; var ArgumentNullException = function (_ArgumentException_1$) { @@ -29,15 +29,16 @@ var ArgumentNullException = function (_ArgumentException_1$) { } _createClass(ArgumentNullException, [{ - key: 'getName', + key: "getName", value: function getName() { return NAME; } }]); return ArgumentNullException; -}(ArgumentException_1.default); +}(ArgumentException_1.ArgumentException); +exports.ArgumentNullException = ArgumentNullException; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = ArgumentNullException; //# sourceMappingURL=ArgumentNullException.js.map diff --git a/dist/commonjs/System/Exceptions/ArgumentNullException.js.map b/dist/commonjs/System/Exceptions/ArgumentNullException.js.map index df6c39c2..a646ff07 100644 --- a/dist/commonjs/System/Exceptions/ArgumentNullException.js.map +++ b/dist/commonjs/System/Exceptions/ArgumentNullException.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Exceptions/ArgumentNullException.ts","System/Exceptions/ArgumentNullException.js"],"names":[],"mappings":";;;;;AAMA;;;;;;;;;;AAEA,IAAA,sBAAA,QAA8B,qBAA9B,CAAA;AAGA,IAAM,OAAc,uBAAd;;IAEN;;;AAGC,aAHD,qBAGC,CACC,SADD,EAG4B;YAD3B,gEAAiB,kBACU;YAA3B,uEAAuB,oBAAI;;8BAN7B,uBAM6B;;sEAN7B,kCAQQ,WAAW,SAAS,iBAFC;KAH5B;;iBAHD;;kCAWkB;AAEhB,mBAAO,IAAP,CAFgB;;;;WAXlB;EACoC,oBAAA,OAAA;;AADpC,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ACIA,QAAQ,OAAR,GAAkB,qBAAlB","file":"System/Exceptions/ArgumentNullException.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport ArgumentException from './ArgumentException';\r\n\r\n\r\nconst NAME:string = 'ArgumentNullException';\r\n\r\nexport default\r\nclass ArgumentNullException extends ArgumentException\r\n{\r\n\tconstructor(\r\n\t\tparamName:string,\r\n\t\tmessage:string = '',\r\n\t\tinnerException:Error = null)\r\n\t{\r\n\t\tsuper(paramName, message, innerException);\r\n\t}\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n\r\n}\r\n","/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\n'use strict';\nconst ArgumentException_1 = require('./ArgumentException');\nconst NAME = 'ArgumentNullException';\nclass ArgumentNullException extends ArgumentException_1.default {\n constructor(paramName, message = '', innerException = null) {\n super(paramName, message, innerException);\n }\n getName() {\n return NAME;\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = ArgumentNullException;\n"]} \ No newline at end of file +{"version":3,"sources":["System/Exceptions/ArgumentNullException.js","System/Exceptions/ArgumentNullException.ts"],"names":[],"mappings":";;;;;AAKA;;;;;;;;;;ACCA,IAAA,sBAAA,QAAgC,qBAAhC,CAAA;AAEA,IAAM,OAAc,uBAAd;;IAEN;;;AAEC,aAFD,qBAEC,CACC,SADD,EAG4B;YAD3B,gEAAiB,kBACU;YAA3B,uEAAuB,oBAAI;;8BAL7B,uBAK6B;;sEAL7B,kCAOQ,WAAW,SAAS,iBAFC;KAH5B;;iBAFD;;kCAUkB;AAEhB,mBAAO,IAAP,CAFgB;;;;WAVlB;EAA2C,oBAAA,iBAAA;;AAA9B,QAAA,qBAAA,GAAqB,qBAArB;AAiBb,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADTA,QAAQ,OAAR,GCSe,qBDTf","file":"System/Exceptions/ArgumentNullException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\n\"use strict\";\nconst ArgumentException_1 = require(\"./ArgumentException\");\nconst NAME = 'ArgumentNullException';\nclass ArgumentNullException extends ArgumentException_1.ArgumentException {\n constructor(paramName, message = '', innerException = null) {\n super(paramName, message, innerException);\n }\n getName() {\n return NAME;\n }\n}\nexports.ArgumentNullException = ArgumentNullException;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = ArgumentNullException;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\nimport {ArgumentException} from \"./ArgumentException\";\r\n\r\nconst NAME:string = 'ArgumentNullException';\r\n\r\nexport class ArgumentNullException extends ArgumentException\r\n{\r\n\tconstructor(\r\n\t\tparamName:string,\r\n\t\tmessage:string = '',\r\n\t\tinnerException:Error = null)\r\n\t{\r\n\t\tsuper(paramName, message, innerException);\r\n\t}\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n\r\n}\r\n\r\nexport default ArgumentNullException;"]} \ No newline at end of file diff --git a/dist/commonjs/System/Exceptions/ArgumentOutOfRangeException.d.ts b/dist/commonjs/System/Exceptions/ArgumentOutOfRangeException.d.ts index 4fd62443..83d0e92b 100644 --- a/dist/commonjs/System/Exceptions/ArgumentOutOfRangeException.d.ts +++ b/dist/commonjs/System/Exceptions/ArgumentOutOfRangeException.d.ts @@ -3,10 +3,11 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -import Exception from "../Exception"; -import ArgumentException from "./ArgumentException"; -export default class ArgumentOutOfRangeException extends ArgumentException { +import { Exception } from "../Exception"; +import { ArgumentException } from "./ArgumentException"; +export declare class ArgumentOutOfRangeException extends ArgumentException { actualValue: string | number | boolean; constructor(paramName: string, actualValue: string | number | boolean, message?: string, innerException?: Exception); protected getName(): string; } +export default ArgumentOutOfRangeException; diff --git a/dist/commonjs/System/Exceptions/ArgumentOutOfRangeException.js b/dist/commonjs/System/Exceptions/ArgumentOutOfRangeException.js index 4605caf8..77cac689 100644 --- a/dist/commonjs/System/Exceptions/ArgumentOutOfRangeException.js +++ b/dist/commonjs/System/Exceptions/ArgumentOutOfRangeException.js @@ -14,7 +14,6 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var ArgumentException_1 = require("./ArgumentException"); -'use strict'; var NAME = 'ArgumentOutOfRangeException'; var ArgumentOutOfRangeException = function (_ArgumentException_1$) { @@ -39,8 +38,9 @@ var ArgumentOutOfRangeException = function (_ArgumentException_1$) { }]); return ArgumentOutOfRangeException; -}(ArgumentException_1.default); +}(ArgumentException_1.ArgumentException); +exports.ArgumentOutOfRangeException = ArgumentOutOfRangeException; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = ArgumentOutOfRangeException; //# sourceMappingURL=ArgumentOutOfRangeException.js.map diff --git a/dist/commonjs/System/Exceptions/ArgumentOutOfRangeException.js.map b/dist/commonjs/System/Exceptions/ArgumentOutOfRangeException.js.map index 401e1324..df1f7063 100644 --- a/dist/commonjs/System/Exceptions/ArgumentOutOfRangeException.js.map +++ b/dist/commonjs/System/Exceptions/ArgumentOutOfRangeException.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Exceptions/ArgumentOutOfRangeException.js","System/Exceptions/ArgumentOutOfRangeException.ts"],"names":[],"mappings":";;;;;AAKA;;;;;;;;;;ACEA,IAAA,sBAAA,QAA8B,qBAA9B,CAAA;AACA;AAGA,IAAM,OAAc,6BAAd;;IAEN;;;AAKC,aALD,2BAKC,CACC,SADD,EAEC,WAFD,EAIgC;YAD/B,gEAAiB,mBACc;YAA/B,uEAA2B,oBAAI;;8BATjC,6BASiC;;sEATjC,wCAWQ,WAAW,QAAM,mBAAN,GAAwB,OAAxB,EAAkC,gBAAgB,UAAC,CAAD,EAAE;AACpE,cAAE,WAAF,GAAgB,WAAhB,CADoE;SAAF,GAFpC;KAJhC;;iBALD;;kCAiBkB;AAEhB,mBAAO,IAAP,CAFgB;;;;WAjBlB;EAC0C,oBAAA,OAAA;;AAD1C,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADOA,QAAQ,OAAR,GAAkB,2BAAlB","file":"System/Exceptions/ArgumentOutOfRangeException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\n\"use strict\";\nconst ArgumentException_1 = require(\"./ArgumentException\");\n'use strict';\nconst NAME = 'ArgumentOutOfRangeException';\nclass ArgumentOutOfRangeException extends ArgumentException_1.default {\n constructor(paramName, actualValue, message = ' ', innerException = null) {\n super(paramName, +`(${actualValue}) ` + message, innerException, (_) => {\n _.actualValue = actualValue;\n });\n }\n getName() {\n return NAME;\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = ArgumentOutOfRangeException;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\nimport Exception from \"../Exception\";\r\nimport ArgumentException from \"./ArgumentException\";\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n\r\nconst NAME:string = 'ArgumentOutOfRangeException';\r\n\r\nexport default\r\nclass ArgumentOutOfRangeException extends ArgumentException\r\n{\r\n\tactualValue:string|number|boolean;\r\n\r\n\tconstructor(\r\n\t\tparamName:string,\r\n\t\tactualValue:string|number|boolean,\r\n\t\tmessage:string = ' ',\r\n\t\tinnerException:Exception = null)\r\n\t{\r\n\t\tsuper(paramName, + `(${actualValue}) ` + message , innerException, (_)=>{\r\n\t\t\t_.actualValue = actualValue;\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Exceptions/ArgumentOutOfRangeException.js","System/Exceptions/ArgumentOutOfRangeException.ts"],"names":[],"mappings":";;;;;AAKA;;;;;;;;;;ACGA,IAAA,sBAAA,QAAgC,qBAAhC,CAAA;AAEA,IAAM,OAAc,6BAAd;;IAEN;;;AAIC,aAJD,2BAIC,CACC,SADD,EAEC,WAFD,EAIgC;YAD/B,gEAAiB,mBACc;YAA/B,uEAA2B,oBAAI;;8BARjC,6BAQiC;;sEARjC,wCAUQ,WAAW,QAAM,mBAAN,GAAwB,OAAxB,EAAkC,gBAAgB,UAAC,CAAD,EAAE;AACpE,cAAE,WAAF,GAAgB,WAAhB,CADoE;SAAF,GAFpC;KAJhC;;iBAJD;;kCAgBkB;AAEhB,mBAAO,IAAP,CAFgB;;;;WAhBlB;EAAiD,oBAAA,iBAAA;;AAApC,QAAA,2BAAA,GAA2B,2BAA3B;AAuBb,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADfA,QAAQ,OAAR,GCee,2BDff","file":"System/Exceptions/ArgumentOutOfRangeException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\n\"use strict\";\nconst ArgumentException_1 = require(\"./ArgumentException\");\nconst NAME = 'ArgumentOutOfRangeException';\nclass ArgumentOutOfRangeException extends ArgumentException_1.ArgumentException {\n constructor(paramName, actualValue, message = ' ', innerException = null) {\n super(paramName, +`(${actualValue}) ` + message, innerException, (_) => {\n _.actualValue = actualValue;\n });\n }\n getName() {\n return NAME;\n }\n}\nexports.ArgumentOutOfRangeException = ArgumentOutOfRangeException;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = ArgumentOutOfRangeException;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\n\r\nimport {Exception} from \"../Exception\";\r\nimport {ArgumentException} from \"./ArgumentException\";\r\n\r\nconst NAME:string = 'ArgumentOutOfRangeException';\r\n\r\nexport class ArgumentOutOfRangeException extends ArgumentException\r\n{\r\n\tactualValue:string|number|boolean;\r\n\r\n\tconstructor(\r\n\t\tparamName:string,\r\n\t\tactualValue:string|number|boolean,\r\n\t\tmessage:string = ' ',\r\n\t\tinnerException:Exception = null)\r\n\t{\r\n\t\tsuper(paramName, + `(${actualValue}) ` + message , innerException, (_)=>{\r\n\t\t\t_.actualValue = actualValue;\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n\r\n}\r\n\r\nexport default ArgumentOutOfRangeException;"]} \ No newline at end of file diff --git a/dist/commonjs/System/Exceptions/InvalidOperationException.d.ts b/dist/commonjs/System/Exceptions/InvalidOperationException.d.ts index 4f422d04..a39ff871 100644 --- a/dist/commonjs/System/Exceptions/InvalidOperationException.d.ts +++ b/dist/commonjs/System/Exceptions/InvalidOperationException.d.ts @@ -3,7 +3,8 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -import SystemException from './SystemException'; -export default class InvalidOperationException extends SystemException { +import { SystemException } from "./SystemException"; +export declare class InvalidOperationException extends SystemException { protected getName(): string; } +export default InvalidOperationException; diff --git a/dist/commonjs/System/Exceptions/InvalidOperationException.js b/dist/commonjs/System/Exceptions/InvalidOperationException.js index 864a21de..0c027bef 100644 --- a/dist/commonjs/System/Exceptions/InvalidOperationException.js +++ b/dist/commonjs/System/Exceptions/InvalidOperationException.js @@ -3,7 +3,7 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -'use strict'; +"use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); @@ -13,11 +13,11 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } -var SystemException_1 = require('./SystemException'); +var SystemException_1 = require("./SystemException"); var NAME = 'InvalidOperationException'; -var InvalidOperationException = function (_SystemException_1$de) { - _inherits(InvalidOperationException, _SystemException_1$de); +var InvalidOperationException = function (_SystemException_1$Sy) { + _inherits(InvalidOperationException, _SystemException_1$Sy); function InvalidOperationException() { _classCallCheck(this, InvalidOperationException); @@ -26,15 +26,16 @@ var InvalidOperationException = function (_SystemException_1$de) { } _createClass(InvalidOperationException, [{ - key: 'getName', + key: "getName", value: function getName() { return NAME; } }]); return InvalidOperationException; -}(SystemException_1.default); +}(SystemException_1.SystemException); +exports.InvalidOperationException = InvalidOperationException; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = InvalidOperationException; //# sourceMappingURL=InvalidOperationException.js.map diff --git a/dist/commonjs/System/Exceptions/InvalidOperationException.js.map b/dist/commonjs/System/Exceptions/InvalidOperationException.js.map index 7725dd3a..363460fd 100644 --- a/dist/commonjs/System/Exceptions/InvalidOperationException.js.map +++ b/dist/commonjs/System/Exceptions/InvalidOperationException.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Exceptions/InvalidOperationException.ts","System/Exceptions/InvalidOperationException.js"],"names":[],"mappings":";;;;;AAMA;;;;;;;;;;AAEA,IAAA,oBAAA,QAA4B,mBAA5B,CAAA;AAGA,IAAM,OAAc,2BAAd;;IAEN;;;;;;;;;;;kCAGkB;AAEhB,mBAAO,IAAP,CAFgB;;;;WAHlB;EACwC,kBAAA,OAAA;;AADxC,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ACCA,QAAQ,OAAR,GAAkB,yBAAlB","file":"System/Exceptions/InvalidOperationException.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport SystemException from './SystemException';\r\n\r\n\r\nconst NAME:string = 'InvalidOperationException';\r\n\r\nexport default\r\nclass InvalidOperationException extends SystemException {\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n\r\n}\r\n","/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\n'use strict';\nconst SystemException_1 = require('./SystemException');\nconst NAME = 'InvalidOperationException';\nclass InvalidOperationException extends SystemException_1.default {\n getName() {\n return NAME;\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = InvalidOperationException;\n"]} \ No newline at end of file +{"version":3,"sources":["System/Exceptions/InvalidOperationException.js","System/Exceptions/InvalidOperationException.ts"],"names":[],"mappings":";;;;;AAKA;;;;;;;;;;ACCA,IAAA,oBAAA,QAA8B,mBAA9B,CAAA;AAEA,IAAM,OAAc,2BAAd;;IAEN;;;;;;;;;;;kCAGkB;AAEhB,mBAAO,IAAP,CAFgB;;;;WAHlB;EAA+C,kBAAA,eAAA;;AAAlC,QAAA,yBAAA,GAAyB,yBAAzB;AAUb,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADLA,QAAQ,OAAR,GCKe,yBDLf","file":"System/Exceptions/InvalidOperationException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\n\"use strict\";\nconst SystemException_1 = require(\"./SystemException\");\nconst NAME = 'InvalidOperationException';\nclass InvalidOperationException extends SystemException_1.SystemException {\n getName() {\n return NAME;\n }\n}\nexports.InvalidOperationException = InvalidOperationException;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = InvalidOperationException;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\nimport {SystemException} from \"./SystemException\";\r\n\r\nconst NAME:string = 'InvalidOperationException';\r\n\r\nexport class InvalidOperationException extends SystemException\r\n{\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n\r\n}\r\n\r\nexport default InvalidOperationException;\r\n"]} \ No newline at end of file diff --git a/dist/commonjs/System/Exceptions/NotImplementedException.d.ts b/dist/commonjs/System/Exceptions/NotImplementedException.d.ts index 0225eeb8..a52e3a18 100644 --- a/dist/commonjs/System/Exceptions/NotImplementedException.d.ts +++ b/dist/commonjs/System/Exceptions/NotImplementedException.d.ts @@ -3,7 +3,8 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -import SystemException from './SystemException'; -export default class NotImplementedException extends SystemException { +import { SystemException } from "./SystemException"; +export declare class NotImplementedException extends SystemException { protected getName(): string; } +export default NotImplementedException; diff --git a/dist/commonjs/System/Exceptions/NotImplementedException.js b/dist/commonjs/System/Exceptions/NotImplementedException.js index 120fe9dd..dc1a6faa 100644 --- a/dist/commonjs/System/Exceptions/NotImplementedException.js +++ b/dist/commonjs/System/Exceptions/NotImplementedException.js @@ -3,7 +3,7 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -'use strict'; +"use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); @@ -13,11 +13,11 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } -var SystemException_1 = require('./SystemException'); +var SystemException_1 = require("./SystemException"); var NAME = 'NotImplementedException'; -var NotImplementedException = function (_SystemException_1$de) { - _inherits(NotImplementedException, _SystemException_1$de); +var NotImplementedException = function (_SystemException_1$Sy) { + _inherits(NotImplementedException, _SystemException_1$Sy); function NotImplementedException() { _classCallCheck(this, NotImplementedException); @@ -26,15 +26,16 @@ var NotImplementedException = function (_SystemException_1$de) { } _createClass(NotImplementedException, [{ - key: 'getName', + key: "getName", value: function getName() { return NAME; } }]); return NotImplementedException; -}(SystemException_1.default); +}(SystemException_1.SystemException); +exports.NotImplementedException = NotImplementedException; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = NotImplementedException; //# sourceMappingURL=NotImplementedException.js.map diff --git a/dist/commonjs/System/Exceptions/NotImplementedException.js.map b/dist/commonjs/System/Exceptions/NotImplementedException.js.map index 7bb37473..3df47c6f 100644 --- a/dist/commonjs/System/Exceptions/NotImplementedException.js.map +++ b/dist/commonjs/System/Exceptions/NotImplementedException.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Exceptions/NotImplementedException.ts","System/Exceptions/NotImplementedException.js"],"names":[],"mappings":";;;;;AAMA;;;;;;;;;;AAEA,IAAA,oBAAA,QAA4B,mBAA5B,CAAA;AAGA,IAAM,OAAc,yBAAd;;IAEN;;;;;;;;;;;kCAGkB;AAEhB,mBAAO,IAAP,CAFgB;;;;WAHlB;EACsC,kBAAA,OAAA;;AADtC,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ACCA,QAAQ,OAAR,GAAkB,uBAAlB","file":"System/Exceptions/NotImplementedException.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport SystemException from './SystemException';\r\n\r\n\r\nconst NAME:string = 'NotImplementedException';\r\n\r\nexport default\r\nclass NotImplementedException extends SystemException {\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n\r\n}\r\n","/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\n'use strict';\nconst SystemException_1 = require('./SystemException');\nconst NAME = 'NotImplementedException';\nclass NotImplementedException extends SystemException_1.default {\n getName() {\n return NAME;\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = NotImplementedException;\n"]} \ No newline at end of file +{"version":3,"sources":["System/Exceptions/NotImplementedException.js","System/Exceptions/NotImplementedException.ts"],"names":[],"mappings":";;;;;AAKA;;;;;;;;;;ACCA,IAAA,oBAAA,QAA8B,mBAA9B,CAAA;AAEA,IAAM,OAAc,yBAAd;;IAEN;;;;;;;;;;;kCAGkB;AAEhB,mBAAO,IAAP,CAFgB;;;;WAHlB;EAA6C,kBAAA,eAAA;;AAAhC,QAAA,uBAAA,GAAuB,uBAAvB;AAUb,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADLA,QAAQ,OAAR,GCKe,uBDLf","file":"System/Exceptions/NotImplementedException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\n\"use strict\";\nconst SystemException_1 = require(\"./SystemException\");\nconst NAME = 'NotImplementedException';\nclass NotImplementedException extends SystemException_1.SystemException {\n getName() {\n return NAME;\n }\n}\nexports.NotImplementedException = NotImplementedException;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = NotImplementedException;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\nimport {SystemException} from \"./SystemException\";\r\n\r\nconst NAME:string = 'NotImplementedException';\r\n\r\nexport class NotImplementedException extends SystemException\r\n{\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n\r\n}\r\n\r\nexport default NotImplementedException"]} \ No newline at end of file diff --git a/dist/commonjs/System/Exceptions/NullReferenceException.d.ts b/dist/commonjs/System/Exceptions/NullReferenceException.d.ts index 780b64a6..42c3373b 100644 --- a/dist/commonjs/System/Exceptions/NullReferenceException.d.ts +++ b/dist/commonjs/System/Exceptions/NullReferenceException.d.ts @@ -3,7 +3,7 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -import SystemException from './SystemException'; +import { SystemException } from "./SystemException"; export default class NullReferenceException extends SystemException { protected getName(): string; } diff --git a/dist/commonjs/System/Exceptions/NullReferenceException.js b/dist/commonjs/System/Exceptions/NullReferenceException.js index 38cbcd16..ea50bff3 100644 --- a/dist/commonjs/System/Exceptions/NullReferenceException.js +++ b/dist/commonjs/System/Exceptions/NullReferenceException.js @@ -3,7 +3,7 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -'use strict'; +"use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); @@ -13,11 +13,11 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } -var SystemException_1 = require('./SystemException'); +var SystemException_1 = require("./SystemException"); var NAME = 'NullReferenceException'; -var NullReferenceException = function (_SystemException_1$de) { - _inherits(NullReferenceException, _SystemException_1$de); +var NullReferenceException = function (_SystemException_1$Sy) { + _inherits(NullReferenceException, _SystemException_1$Sy); function NullReferenceException() { _classCallCheck(this, NullReferenceException); @@ -26,14 +26,14 @@ var NullReferenceException = function (_SystemException_1$de) { } _createClass(NullReferenceException, [{ - key: 'getName', + key: "getName", value: function getName() { return NAME; } }]); return NullReferenceException; -}(SystemException_1.default); +}(SystemException_1.SystemException); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = NullReferenceException; diff --git a/dist/commonjs/System/Exceptions/NullReferenceException.js.map b/dist/commonjs/System/Exceptions/NullReferenceException.js.map index 6c42033d..b99e0270 100644 --- a/dist/commonjs/System/Exceptions/NullReferenceException.js.map +++ b/dist/commonjs/System/Exceptions/NullReferenceException.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Exceptions/NullReferenceException.ts","System/Exceptions/NullReferenceException.js"],"names":[],"mappings":";;;;;AAMA;;;;;;;;;;AAEA,IAAA,oBAAA,QAA4B,mBAA5B,CAAA;AAGA,IAAM,OAAc,wBAAd;;IAEN;;;;;;;;;;;kCAGkB;AAEhB,mBAAO,IAAP,CAFgB;;;;WAHlB;EACqC,kBAAA,OAAA;;AADrC,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ACCA,QAAQ,OAAR,GAAkB,sBAAlB","file":"System/Exceptions/NullReferenceException.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport SystemException from './SystemException';\r\n\r\n\r\nconst NAME:string = 'NullReferenceException';\r\n\r\nexport default\r\nclass NullReferenceException extends SystemException {\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n\r\n}\r\n","/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\n'use strict';\nconst SystemException_1 = require('./SystemException');\nconst NAME = 'NullReferenceException';\nclass NullReferenceException extends SystemException_1.default {\n getName() {\n return NAME;\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = NullReferenceException;\n"]} \ No newline at end of file +{"version":3,"sources":["System/Exceptions/NullReferenceException.js","System/Exceptions/NullReferenceException.ts"],"names":[],"mappings":";;;;;AAKA;;;;;;;;;;ACEA,IAAA,oBAAA,QAA8B,mBAA9B,CAAA;AAEA,IAAM,OAAc,wBAAd;;IAEN;;;;;;;;;;;kCAGkB;AAEhB,mBAAO,IAAP,CAFgB;;;;WAHlB;EACqC,kBAAA,eAAA;;AADrC,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADGA,QAAQ,OAAR,GAAkB,sBAAlB","file":"System/Exceptions/NullReferenceException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\n\"use strict\";\nconst SystemException_1 = require(\"./SystemException\");\nconst NAME = 'NullReferenceException';\nclass NullReferenceException extends SystemException_1.SystemException {\n getName() {\n return NAME;\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = NullReferenceException;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\n\r\nimport {SystemException} from \"./SystemException\";\r\n\r\nconst NAME:string = 'NullReferenceException';\r\n\r\nexport default\r\nclass NullReferenceException extends SystemException {\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/commonjs/System/Exceptions/SystemException.d.ts b/dist/commonjs/System/Exceptions/SystemException.d.ts index 239bfbef..12f92b06 100644 --- a/dist/commonjs/System/Exceptions/SystemException.d.ts +++ b/dist/commonjs/System/Exceptions/SystemException.d.ts @@ -3,7 +3,8 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/system.systemexception%28v=vs.110%29.aspx */ -import Exception from '../Exception'; -export default class SystemException extends Exception { +import { Exception } from "../Exception"; +export declare class SystemException extends Exception { protected getName(): string; } +export default SystemException; diff --git a/dist/commonjs/System/Exceptions/SystemException.js b/dist/commonjs/System/Exceptions/SystemException.js index a5b9368d..64c13efd 100644 --- a/dist/commonjs/System/Exceptions/SystemException.js +++ b/dist/commonjs/System/Exceptions/SystemException.js @@ -3,7 +3,7 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/system.systemexception%28v=vs.110%29.aspx */ -'use strict'; +"use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); @@ -13,11 +13,11 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } -var Exception_1 = require('../Exception'); +var Exception_1 = require("../Exception"); var NAME = 'SystemException'; -var SystemException = function (_Exception_1$default) { - _inherits(SystemException, _Exception_1$default); +var SystemException = function (_Exception_1$Exceptio) { + _inherits(SystemException, _Exception_1$Exceptio); function SystemException() { _classCallCheck(this, SystemException); @@ -26,15 +26,16 @@ var SystemException = function (_Exception_1$default) { } _createClass(SystemException, [{ - key: 'getName', + key: "getName", value: function getName() { return NAME; } }]); return SystemException; -}(Exception_1.default); +}(Exception_1.Exception); +exports.SystemException = SystemException; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = SystemException; //# sourceMappingURL=SystemException.js.map diff --git a/dist/commonjs/System/Exceptions/SystemException.js.map b/dist/commonjs/System/Exceptions/SystemException.js.map index aea7524d..91da3a5a 100644 --- a/dist/commonjs/System/Exceptions/SystemException.js.map +++ b/dist/commonjs/System/Exceptions/SystemException.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Exceptions/SystemException.ts","System/Exceptions/SystemException.js"],"names":[],"mappings":";;;;;AAMA;;;;;;;;;;AAEA,IAAA,cAAA,QAAsB,cAAtB,CAAA;AAGA,IAAM,OAAc,iBAAd;;IAEN;;;;;;;;;;;kCAakB;AAEhB,mBAAO,IAAP,CAFgB;;;;WAblB;EAC8B,YAAA,OAAA;;AAD9B,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ACCA,QAAQ,OAAR,GAAkB,eAAlB","file":"System/Exceptions/SystemException.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/system.systemexception%28v=vs.110%29.aspx\r\n */\r\n\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport Exception from '../Exception';\r\n\r\n\r\nconst NAME:string = 'SystemException';\r\n\r\nexport default\r\nclass SystemException extends Exception\r\n{\r\n/*\r\n\tconstructor(\r\n\t\tmessage:string = null,\r\n\t\tinnerException:Error = null,\r\n\t\tbeforeSealing?:(ex:any)=>void)\r\n\t{\r\n\t\tsuper(message, innerException, beforeSealing);\r\n\t}\r\n*/\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n}\r\n","/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/system.systemexception%28v=vs.110%29.aspx\n */\n'use strict';\nconst Exception_1 = require('../Exception');\nconst NAME = 'SystemException';\nclass SystemException extends Exception_1.default {\n getName() {\n return NAME;\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = SystemException;\n"]} \ No newline at end of file +{"version":3,"sources":["System/Exceptions/SystemException.js","System/Exceptions/SystemException.ts"],"names":[],"mappings":";;;;;AAKA;;;;;;;;;;ACCA,IAAA,cAAA,QAAwB,cAAxB,CAAA;AAEA,IAAM,OAAc,iBAAd;;IAEN;;;;;;;;;;;kCAYkB;AAEhB,mBAAO,IAAP,CAFgB;;;;WAZlB;EAAqC,YAAA,SAAA;;AAAxB,QAAA,eAAA,GAAe,eAAf;AAkBb,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADbA,QAAQ,OAAR,GCae,eDbf","file":"System/Exceptions/SystemException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/system.systemexception%28v=vs.110%29.aspx\n */\n\"use strict\";\nconst Exception_1 = require(\"../Exception\");\nconst NAME = 'SystemException';\nclass SystemException extends Exception_1.Exception {\n getName() {\n return NAME;\n }\n}\nexports.SystemException = SystemException;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = SystemException;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/system.systemexception%28v=vs.110%29.aspx\r\n */\r\n\r\nimport {Exception} from \"../Exception\";\r\n\r\nconst NAME:string = 'SystemException';\r\n\r\nexport class SystemException extends Exception\r\n{\r\n\t/*\r\n\t\tconstructor(\r\n\t\t\tmessage:string = null,\r\n\t\t\tinnerException:Error = null,\r\n\t\t\tbeforeSealing?:(ex:any)=>void)\r\n\t\t{\r\n\t\t\tsuper(message, innerException, beforeSealing);\r\n\t\t}\r\n\t*/\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n}\r\n\r\nexport default SystemException;"]} \ No newline at end of file diff --git a/dist/commonjs/System/Functions.d.ts b/dist/commonjs/System/Functions.d.ts index 0262bc62..ecd9b0e2 100644 --- a/dist/commonjs/System/Functions.d.ts +++ b/dist/commonjs/System/Functions.d.ts @@ -2,13 +2,13 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -declare class Functions { +export declare class Functions { Identity(x: T): T; True(): boolean; False(): boolean; Blank(): void; } -declare module Functions { +export declare module Functions { var Identity: (x: T) => T; var True: () => boolean; var False: () => boolean; diff --git a/dist/commonjs/System/Functions.js b/dist/commonjs/System/Functions.js index d043e6c8..adb5d52a 100644 --- a/dist/commonjs/System/Functions.js +++ b/dist/commonjs/System/Functions.js @@ -2,7 +2,7 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; +"use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); @@ -36,13 +36,14 @@ var Functions = function () { return Functions; }(); +exports.Functions = Functions; var rootFunctions = new Functions(); (function (Functions) { Functions.Identity = rootFunctions.Identity; Functions.True = rootFunctions.True; Functions.False = rootFunctions.False; Functions.Blank = rootFunctions.Blank; -})(Functions || (Functions = {})); +})(Functions = exports.Functions || (exports.Functions = {})); Object.freeze(Functions); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = Functions; diff --git a/dist/commonjs/System/Functions.js.map b/dist/commonjs/System/Functions.js.map index 45e3eedf..5a1449a3 100644 --- a/dist/commonjs/System/Functions.js.map +++ b/dist/commonjs/System/Functions.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Functions.ts","System/Functions.js"],"names":[],"mappings":";;;;AAKA;;;;;;IAKA;;;;;;;iCAOa,GAAG;AACb,mBAAO,CAAP,CADa;;;;+BAOX;AACF,mBAAO,IAAP,CADE;;;;gCAOC;AACH,mBAAO,KAAP,CADG;;;;gCAMA;;;WA3BN;;;AA+BA,IAAM,gBAA0B,IAAI,SAAJ,EAA1B;AAIN,CAAA,UAAO,SAAP,EACA;AAKY,cAAA,QAAA,GACR,cAAc,QAAd,CANJ;AAYY,cAAA,IAAA,GACR,cAAc,IAAd,CAbJ;AAmBY,cAAA,KAAA,GACR,cAAc,KAAd,CApBJ;AAyBY,cAAA,KAAA,GACR,cAAc,KAAd,CA1BJ;CADA,CAAA,CAAO,cAAA,YAAS,EAAT,CAAA,CAAP;AA+BA,OAAO,MAAP,CAAc,SAAd;AAEA,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;AC1DA,QAAQ,OAAR,GD0De,SC1Df","file":"System/Functions.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n/**\r\n * Can be used statically or extended for varying different reusable function signatures.\r\n */\r\nclass Functions\r\n{\r\n\r\n\t/**\r\n\t * A typed method for use with simple selection of the parameter.\r\n\t * @returns {T}\r\n\t */\r\n\tIdentity(x:T):T\r\n\t{ return x; }\r\n\r\n\t/**\r\n\t * Returns true.\r\n\t * @returns {boolean}\r\n\t */\r\n\tTrue():boolean\r\n\t{ return true; }\r\n\r\n\t/**\r\n\t * Returns false.\r\n\t * @returns {boolean}\r\n\t */\r\n\tFalse():boolean\r\n\t{ return false; }\r\n\r\n\t/**\r\n\t * Does nothing.\r\n\t */\r\n\tBlank():void\r\n\t{ }\r\n}\r\n\r\nconst rootFunctions:Functions = new Functions();\r\n\r\n// Expose static versions.\r\n\r\nmodule Functions\r\n{\r\n\t/**\r\n\t * A typed method for use with simple selection of the parameter.\r\n\t * @returns {boolean}\r\n\t */\r\n\texport var Identity:(x:T) => T\r\n\t\t= rootFunctions.Identity;\r\n\r\n\t/**\r\n\t * Returns false.\r\n\t * @returns {boolean}\r\n\t */\r\n\texport var True:() => boolean\r\n\t\t= rootFunctions.True;\r\n\r\n\t/**\r\n\t * Returns false.\r\n\t * @returns {boolean}\r\n\t */\r\n\texport var False:() => boolean\r\n\t\t= rootFunctions.False;\r\n\r\n\t/**\r\n\t * Does nothing.\r\n\t */\r\n\texport var Blank:() => void\r\n\t\t= rootFunctions.Blank;\r\n}\r\n\r\n// Make this read only. Should still allow for sub-classing since extra methods are added to prototype.\r\nObject.freeze(Functions);\r\n\r\nexport default Functions;\r\n\r\n","/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n'use strict';\nclass Functions {\n Identity(x) { return x; }\n True() { return true; }\n False() { return false; }\n Blank() { }\n}\nconst rootFunctions = new Functions();\n(function (Functions) {\n Functions.Identity = rootFunctions.Identity;\n Functions.True = rootFunctions.True;\n Functions.False = rootFunctions.False;\n Functions.Blank = rootFunctions.Blank;\n})(Functions || (Functions = {}));\nObject.freeze(Functions);\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Functions;\n"]} \ No newline at end of file +{"version":3,"sources":["System/Functions.js","System/Functions.ts"],"names":[],"mappings":";;;;AAIA;;;;;;ICIA;;;;;;;iCAOa,GAAG;AACb,mBAAO,CAAP,CADa;;;;+BAOX;AACF,mBAAO,IAAP,CADE;;;;gCAOC;AACH,mBAAO,KAAP,CADG;;;;gCAMA;;;WA3BN;;;AAAa,QAAA,SAAA,GAAS,SAAT;AA+Bb,IAAM,gBAA0B,IAAI,SAAJ,EAA1B;AAIN,CAAA,UAAc,SAAd,EACA;AAKY,cAAA,QAAA,GACR,cAAc,QAAd,CANJ;AAYY,cAAA,IAAA,GACR,cAAc,IAAd,CAbJ;AAmBY,cAAA,KAAA,GACR,cAAc,KAAd,CApBJ;AAyBY,cAAA,KAAA,GACR,cAAc,KAAd,CA1BJ;CADA,CAAA,CAAc,YAAA,QAAA,SAAA,KAAA,QAAA,SAAA,GAAS,EAAT,CAAA,CAAd;AA+BA,OAAO,MAAP,CAAc,SAAd;AAEA,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADvDA,QAAQ,OAAR,GCuDe,SDvDf","file":"System/Functions.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nclass Functions {\n Identity(x) { return x; }\n True() { return true; }\n False() { return false; }\n Blank() { }\n}\nexports.Functions = Functions;\nconst rootFunctions = new Functions();\n(function (Functions) {\n Functions.Identity = rootFunctions.Identity;\n Functions.True = rootFunctions.True;\n Functions.False = rootFunctions.False;\n Functions.Blank = rootFunctions.Blank;\n})(Functions = exports.Functions || (exports.Functions = {}));\nObject.freeze(Functions);\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Functions;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n/**\r\n * Can be used statically or extended for varying different reusable function signatures.\r\n */\r\nexport class Functions\r\n{\r\n\r\n\t/**\r\n\t * A typed method for use with simple selection of the parameter.\r\n\t * @returns {T}\r\n\t */\r\n\tIdentity(x:T):T\r\n\t{ return x; }\r\n\r\n\t/**\r\n\t * Returns true.\r\n\t * @returns {boolean}\r\n\t */\r\n\tTrue():boolean\r\n\t{ return true; }\r\n\r\n\t/**\r\n\t * Returns false.\r\n\t * @returns {boolean}\r\n\t */\r\n\tFalse():boolean\r\n\t{ return false; }\r\n\r\n\t/**\r\n\t * Does nothing.\r\n\t */\r\n\tBlank():void\r\n\t{ }\r\n}\r\n\r\nconst rootFunctions:Functions = new Functions();\r\n\r\n// Expose static versions.\r\n\r\nexport module Functions\r\n{\r\n\t/**\r\n\t * A typed method for use with simple selection of the parameter.\r\n\t * @returns {boolean}\r\n\t */\r\n\texport var Identity:(x:T) => T\r\n\t\t= rootFunctions.Identity;\r\n\r\n\t/**\r\n\t * Returns false.\r\n\t * @returns {boolean}\r\n\t */\r\n\texport var True:() => boolean\r\n\t\t= rootFunctions.True;\r\n\r\n\t/**\r\n\t * Returns false.\r\n\t * @returns {boolean}\r\n\t */\r\n\texport var False:() => boolean\r\n\t\t= rootFunctions.False;\r\n\r\n\t/**\r\n\t * Does nothing.\r\n\t */\r\n\texport var Blank:() => void\r\n\t\t= rootFunctions.Blank;\r\n}\r\n\r\n// Make this read only. Should still allow for sub-classing since extra methods are added to prototype.\r\nObject.freeze(Functions);\r\n\r\nexport default Functions;\r\n\r\n"]} \ No newline at end of file diff --git a/dist/commonjs/System/Integer.d.ts b/dist/commonjs/System/Integer.d.ts index 04881834..a6de2daf 100644 --- a/dist/commonjs/System/Integer.d.ts +++ b/dist/commonjs/System/Integer.d.ts @@ -3,6 +3,7 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { IArray } from "./Collections/Array/IArray"; export declare function Integer(n: number): number; export declare module Integer { const MAX_32_BIT: number; diff --git a/dist/commonjs/System/Integer.js b/dist/commonjs/System/Integer.js index ea348adf..af0da31d 100644 --- a/dist/commonjs/System/Integer.js +++ b/dist/commonjs/System/Integer.js @@ -69,19 +69,19 @@ var Integer; Integer.is32Bit = is32Bit; function assert(n, argumentName) { var i = is(n); - if (!i) throw new ArgumentException_1.default(argumentName || 'n', "Must be a integer."); + if (!i) throw new ArgumentException_1.ArgumentException(argumentName || 'n', "Must be a integer."); return i; } Integer.assert = assert; function assertZeroOrGreater(n, argumentName) { var i = assert(n, argumentName) && n >= 0; - if (!i) throw new ArgumentOutOfRangeException_1.default(argumentName || 'n', n, "Must be a valid integer greater than or equal to zero."); + if (!i) throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(argumentName || 'n', n, "Must be a valid integer greater than or equal to zero."); return i; } Integer.assertZeroOrGreater = assertZeroOrGreater; function assertPositive(n, argumentName) { var i = assert(n, argumentName) && n > 0; - if (!i) throw new ArgumentOutOfRangeException_1.default(argumentName || 'n', n, "Must be greater than zero."); + if (!i) throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(argumentName || 'n', n, "Must be greater than zero."); return i; } Integer.assertPositive = assertPositive; diff --git a/dist/commonjs/System/Integer.js.map b/dist/commonjs/System/Integer.js.map index ed2de40e..99a2e506 100644 --- a/dist/commonjs/System/Integer.js.map +++ b/dist/commonjs/System/Integer.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Integer.js","System/Integer.ts"],"names":[],"mappings":";;;;AAIA;;;;ACEA,IAAA,sBAAA,QAA8B,gCAA9B,CAAA;AACA,IAAA,gCAAA,QAAwC,0CAAxC,CAAA;AAEA,SAAA,OAAA,CAAwB,CAAxB,EAAgC;AAE/B,WAAO,KAAK,KAAL,CAAW,CAAX,CAAP,CAF+B;CAAhC;AAAgB,QAAA,OAAA,GAAO,OAAP;AAKhB,IAAc,OAAd;AAAA,CAAA,UAAc,OAAd,EACA;AACc,YAAA,UAAA,GAAoB,UAApB,CADd;AAGC,aAAA,CAAA,CAAW,YAAX,EAA8B;AAE7B,eAAO,IAAC,CAAK,MAAL,KAAc,YAAd,GAA8B,CAA/B,CAFsB;KAA9B;AAaA,aAAA,MAAA,CAAuB,YAAvB,EAA0C;AAEzC,eAAO,YAAP,EAAqB,cAArB,EAFyC;AAGzC,eAAO,EAAE,YAAF,CAAP,CAHyC;KAA1C;AAAgB,YAAA,MAAA,GAAM,MAAN,CAhBjB;AAsBC,QAAc,MAAd,CAtBD;AAsBC,KAAA,UAAc,MAAd,EACA;AACC,iBAAA,IAAA,CACC,QADD,EAEC,SAFD,EAEmB;AAElB,mBAAO,QAAP,EAAiB,KAAjB,EAFkB;AAGlB,gBAAG,aAAW,CAAX,EAAc,OAAO,CAAP,CAAjB;AACA,gBAAG,SAAH,EAAc,YAAY,WAAS,KAAK,GAAL,CAAS,QAAT,CAAT,CAA1B;AACA,mBAAO,EAAE,QAAF,CAAP,CALkB;SAFnB;AAAgB,eAAA,IAAA,GAAI,IAAJ,CADjB;AAWC,iBAAA,WAAA,CACC,GADD,EAEC,GAFD,EAGC,SAHD,EAGmB;AAElB,mBAAO,GAAP,EAAY,KAAZ,EAFkB;AAGlB,mBAAO,GAAP,EAAY,KAAZ,EAHkB;AAIlB,gBAAI,QAAQ,MAAM,GAAN,CAJM;AAKlB,gBAAG,UAAQ,CAAR,EAAW,OAAO,GAAP,CAAd;AACA,gBAAG,SAAH,EAAc,SAAS,QAAM,KAAK,GAAL,CAAS,KAAT,CAAN,CAAvB;AACA,mBAAO,MAAM,KAAK,KAAL,CAAN,CAPW;SAHnB;AAAgB,eAAA,WAAA,GAAW,WAAX,CAXjB;AAwBC,iBAAA,MAAA,CAA0B,MAA1B,EAA0C;AAEzC,mBAAO,UAAU,OAAO,MAAP,GACd,OAAO,EAAE,OAAO,MAAP,CAAT,CADI,GAEJ,KAAK,CAAL,CAJsC;SAA1C;AAAgB,eAAA,MAAA,GAAM,MAAN,CAxBjB;AA+BC,YAAc,MAAd,CA/BD;AA+BC,SAAA,UAAc,MAAd,EACA;AACC,qBAAA,GAAA,CAAuB,MAAvB,EAAuC;AAEtC,uBAAO,OAAO,MAAP,CAAc,MAAd,CAAP,CAFsC;aAAvC;AAAgB,mBAAA,GAAA,GAAG,GAAH,CADjB;SADA,CAAA,CAAc,SAAA,OAAA,MAAA,KAAA,OAAA,MAAA,GAAM,EAAN,CAAA,CAAd,CA/BD;KADA,CAAA,CAAc,SAAA,QAAA,MAAA,KAAA,QAAA,MAAA,GAAM,EAAN,CAAA,CAAd,CAtBD;AAgEC,aAAA,OAAA,CAAwB,CAAxB,EAAgC;AAE/B,YAAI,SAAS,IAAI,CAAJ,CAFkB;AAG/B,eAAO,CAAC,KAAI,CAAC,CAAD,IAAM,WAAS,CAAC,CAAD,GAAM,MAA1B,GAAmC,IAAnC,CAHwB;KAAhC;AAAgB,YAAA,OAAA,GAAO,OAAP,CAhEjB;AAsEC,QAAM,SAAgB,QAAhB,CAtEP;AAwEC,aAAA,EAAA,CAAmB,CAAnB,EAA2B;AAE1B,eAAO,QAAO,6CAAP,KAAW,MAAX,IAAqB,SAAS,CAAT,CAArB,IAAoC,MAAI,KAAK,KAAL,CAAW,CAAX,CAAJ,CAFjB;KAA3B;AAAgB,YAAA,EAAA,GAAE,EAAF,CAxEjB;AA6EC,aAAA,OAAA,CAAwB,CAAxB,EAAgC;AAE/B,eAAO,OAAK,IAAI,CAAJ,CAAL,CAFwB;KAAhC;AAAgB,YAAA,OAAA,GAAO,OAAP,CA7EjB;AAmFC,aAAA,MAAA,CAAuB,CAAvB,EAAiC,YAAjC,EAAqD;AAEpD,YAAI,IAAI,GAAG,CAAH,CAAJ,CAFgD;AAGpD,YAAG,CAAC,CAAD,EACF,MAAM,IAAI,oBAAA,OAAA,CAAkB,gBAAgB,GAAhB,EAAqB,oBAA3C,CAAN,CADD;AAEA,eAAO,CAAP,CALoD;KAArD;AAAgB,YAAA,MAAA,GAAM,MAAN,CAnFjB;AA2FC,aAAA,mBAAA,CAAoC,CAApC,EAA8C,YAA9C,EAAkE;AAEjE,YAAI,IAAI,OAAO,CAAP,EAAU,YAAV,KAA2B,KAAG,CAAH,CAF8B;AAGjE,YAAG,CAAC,CAAD,EACF,MAAM,IAAI,8BAAA,OAAA,CAA4B,gBAAgB,GAAhB,EAAqB,CAArD,EAAwD,wDAAxD,CAAN,CADD;AAEA,eAAO,CAAP,CALiE;KAAlE;AAAgB,YAAA,mBAAA,GAAmB,mBAAnB,CA3FjB;AAmGC,aAAA,cAAA,CAA+B,CAA/B,EAAyC,YAAzC,EAA6D;AAE5D,YAAI,IAAI,OAAO,CAAP,EAAU,YAAV,KAA2B,IAAE,CAAF,CAFyB;AAG5D,YAAG,CAAC,CAAD,EACF,MAAM,IAAI,8BAAA,OAAA,CAA4B,gBAAgB,GAAhB,EAAqB,CAArD,EAAwD,4BAAxD,CAAN,CADD;AAEA,eAAO,CAAP,CAL4D;KAA7D;AAAgB,YAAA,cAAA,GAAc,cAAd,CAnGjB;CADA,CAAA,CAAc,UAAA,QAAA,OAAA,KAAA,QAAA,OAAA,GAAO,EAAP,CAAA,CAAd;AA8GA,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;AD7BA,QAAQ,OAAR,GC6Be,OD7Bf","file":"System/Integer.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst ArgumentException_1 = require(\"./Exceptions/ArgumentException\");\nconst ArgumentOutOfRangeException_1 = require(\"./Exceptions/ArgumentOutOfRangeException\");\nfunction Integer(n) {\n return Math.floor(n);\n}\nexports.Integer = Integer;\nvar Integer;\n(function (Integer) {\n Integer.MAX_32_BIT = 2147483647;\n function r(maxExclusive) {\n return (Math.random() * maxExclusive) | 0;\n }\n function random(maxExclusive) {\n assert(maxExclusive, 'maxExclusive');\n return r(maxExclusive);\n }\n Integer.random = random;\n var random;\n (function (random) {\n function next(boundary, inclusive) {\n assert(boundary, 'max');\n if (boundary === 0)\n return 0;\n if (inclusive)\n boundary += boundary / Math.abs(boundary);\n return r(boundary);\n }\n random.next = next;\n function nextInRange(min, max, inclusive) {\n assert(min, 'min');\n assert(max, 'max');\n var range = max - min;\n if (range === 0)\n return min;\n if (inclusive)\n range += range / Math.abs(range);\n return min + next(range);\n }\n random.nextInRange = nextInRange;\n function select(source) {\n return source && source.length\n ? source[r(source.length)]\n : void (0);\n }\n random.select = select;\n var select;\n (function (select) {\n function one(source) {\n return random.select(source);\n }\n select.one = one;\n })(select = random.select || (random.select = {}));\n })(random = Integer.random || (Integer.random = {}));\n function as32Bit(n) {\n var result = n | 0;\n return (n === -1 || result !== -1) ? result : null;\n }\n Integer.as32Bit = as32Bit;\n const NUMBER = \"number\";\n function is(n) {\n return typeof n === NUMBER && isFinite(n) && n === Math.floor(n);\n }\n Integer.is = is;\n function is32Bit(n) {\n return n === (n | 0);\n }\n Integer.is32Bit = is32Bit;\n function assert(n, argumentName) {\n var i = is(n);\n if (!i)\n throw new ArgumentException_1.default(argumentName || 'n', \"Must be a integer.\");\n return i;\n }\n Integer.assert = assert;\n function assertZeroOrGreater(n, argumentName) {\n var i = assert(n, argumentName) && n >= 0;\n if (!i)\n throw new ArgumentOutOfRangeException_1.default(argumentName || 'n', n, \"Must be a valid integer greater than or equal to zero.\");\n return i;\n }\n Integer.assertZeroOrGreater = assertZeroOrGreater;\n function assertPositive(n, argumentName) {\n var i = assert(n, argumentName) && n > 0;\n if (!i)\n throw new ArgumentOutOfRangeException_1.default(argumentName || 'n', n, \"Must be greater than zero.\");\n return i;\n }\n Integer.assertPositive = assertPositive;\n})(Integer = exports.Integer || (exports.Integer = {}));\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Integer;\n","///\r\n/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport ArgumentException from \"./Exceptions/ArgumentException\";\r\nimport ArgumentOutOfRangeException from \"./Exceptions/ArgumentOutOfRangeException\";\r\n\r\nexport function Integer(n:number):number\r\n{\r\n\treturn Math.floor(n);\r\n}\r\n\r\nexport module Integer\r\n{\r\n\texport const MAX_32_BIT:number = 2147483647;\r\n\r\n\tfunction r(maxExclusive:number):number\r\n\t{\r\n\t\treturn (Math.random()*maxExclusive) | 0;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Returns a random integer from minInclusive to the maxExclusive.\r\n\t * Negative numbers are allowed.\r\n\t *\r\n\t * @param maxExclusive\r\n\t * @returns {number}\r\n\t */\r\n\texport function random(maxExclusive:number):number\r\n\t{\r\n\t\tassert(maxExclusive, 'maxExclusive');\r\n\t\treturn r(maxExclusive);\r\n\t}\r\n\r\n\texport module random\r\n\t{\r\n\t\texport function next(\r\n\t\t\tboundary:number,\r\n\t\t\tinclusive?:boolean):number\r\n\t\t{\r\n\t\t\tassert(boundary, 'max');\r\n\t\t\tif(boundary===0) return 0;\r\n\t\t\tif(inclusive) boundary += boundary/Math.abs(boundary);\r\n\t\t\treturn r(boundary);\r\n\t\t}\r\n\r\n\t\texport function nextInRange(\r\n\t\t\tmin:number,\r\n\t\t\tmax:number,\r\n\t\t\tinclusive?:boolean):number\r\n\t\t{\r\n\t\t\tassert(min, 'min');\r\n\t\t\tassert(max, 'max');\r\n\t\t\tvar range = max - min;\r\n\t\t\tif(range===0) return min;\r\n\t\t\tif(inclusive) range += range/Math.abs(range);\r\n\t\t\treturn min + next(range);\r\n\t\t}\r\n\r\n\t\texport function select(source:IArray):T\r\n\t\t{\r\n\t\t\treturn source && source.length\r\n\t\t\t\t? source[r(source.length)]\r\n\t\t\t\t: void(0);\r\n\t\t}\r\n\r\n\t\texport module select\r\n\t\t{\r\n\t\t\texport function one(source:IArray):T\r\n\t\t\t{\r\n\t\t\t\treturn random.select(source);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\texport function as32Bit(n:number):number\r\n\t{\r\n\t\tvar result = n | 0;\r\n\t\treturn (n===-1 || result!==-1) ? result : null;\r\n\t}\r\n\r\n\tconst NUMBER:string = \"number\";\r\n\r\n\texport function is(n:number):boolean\r\n\t{\r\n\t\treturn typeof n===NUMBER && isFinite(n) && n===Math.floor(n);\r\n\t}\r\n\r\n\texport function is32Bit(n:number):boolean\r\n\t{\r\n\t\treturn n===(n | 0);\r\n\t}\r\n\r\n\r\n\texport function assert(n:number, argumentName?:string):boolean\r\n\t{\r\n\t\tvar i = is(n);\r\n\t\tif(!i)\r\n\t\t\tthrow new ArgumentException(argumentName || 'n', \"Must be a integer.\");\r\n\t\treturn i;\r\n\t}\r\n\r\n\texport function assertZeroOrGreater(n:number, argumentName?:string):boolean\r\n\t{\r\n\t\tvar i = assert(n, argumentName) && n>=0;\r\n\t\tif(!i)\r\n\t\t\tthrow new ArgumentOutOfRangeException(argumentName || 'n', n, \"Must be a valid integer greater than or equal to zero.\");\r\n\t\treturn i;\r\n\t}\r\n\r\n\texport function assertPositive(n:number, argumentName?:string):boolean\r\n\t{\r\n\t\tvar i = assert(n, argumentName) && n>0;\r\n\t\tif(!i)\r\n\t\t\tthrow new ArgumentOutOfRangeException(argumentName || 'n', n, \"Must be greater than zero.\");\r\n\t\treturn i;\r\n\t}\r\n\r\n}\r\n\r\nexport default Integer;\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Integer.js","System/Integer.ts"],"names":[],"mappings":"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","file":"System/Integer.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst ArgumentException_1 = require(\"./Exceptions/ArgumentException\");\nconst ArgumentOutOfRangeException_1 = require(\"./Exceptions/ArgumentOutOfRangeException\");\nfunction Integer(n) {\n return Math.floor(n);\n}\nexports.Integer = Integer;\nvar Integer;\n(function (Integer) {\n Integer.MAX_32_BIT = 2147483647;\n function r(maxExclusive) {\n return (Math.random() * maxExclusive) | 0;\n }\n function random(maxExclusive) {\n assert(maxExclusive, 'maxExclusive');\n return r(maxExclusive);\n }\n Integer.random = random;\n var random;\n (function (random) {\n function next(boundary, inclusive) {\n assert(boundary, 'max');\n if (boundary === 0)\n return 0;\n if (inclusive)\n boundary += boundary / Math.abs(boundary);\n return r(boundary);\n }\n random.next = next;\n function nextInRange(min, max, inclusive) {\n assert(min, 'min');\n assert(max, 'max');\n var range = max - min;\n if (range === 0)\n return min;\n if (inclusive)\n range += range / Math.abs(range);\n return min + next(range);\n }\n random.nextInRange = nextInRange;\n function select(source) {\n return source && source.length\n ? source[r(source.length)]\n : void (0);\n }\n random.select = select;\n var select;\n (function (select) {\n function one(source) {\n return random.select(source);\n }\n select.one = one;\n })(select = random.select || (random.select = {}));\n })(random = Integer.random || (Integer.random = {}));\n function as32Bit(n) {\n var result = n | 0;\n return (n === -1 || result !== -1) ? result : null;\n }\n Integer.as32Bit = as32Bit;\n const NUMBER = \"number\";\n function is(n) {\n return typeof n === NUMBER && isFinite(n) && n === Math.floor(n);\n }\n Integer.is = is;\n function is32Bit(n) {\n return n === (n | 0);\n }\n Integer.is32Bit = is32Bit;\n function assert(n, argumentName) {\n var i = is(n);\n if (!i)\n throw new ArgumentException_1.ArgumentException(argumentName || 'n', \"Must be a integer.\");\n return i;\n }\n Integer.assert = assert;\n function assertZeroOrGreater(n, argumentName) {\n var i = assert(n, argumentName) && n >= 0;\n if (!i)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(argumentName || 'n', n, \"Must be a valid integer greater than or equal to zero.\");\n return i;\n }\n Integer.assertZeroOrGreater = assertZeroOrGreater;\n function assertPositive(n, argumentName) {\n var i = assert(n, argumentName) && n > 0;\n if (!i)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(argumentName || 'n', n, \"Must be greater than zero.\");\n return i;\n }\n Integer.assertPositive = assertPositive;\n})(Integer = exports.Integer || (exports.Integer = {}));\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Integer;\n","///\r\n/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {ArgumentException} from \"./Exceptions/ArgumentException\";\r\nimport {ArgumentOutOfRangeException} from \"./Exceptions/ArgumentOutOfRangeException\";\r\nimport {IArray} from \"./Collections/Array/IArray\";\r\n\r\nexport function Integer(n:number):number\r\n{\r\n\treturn Math.floor(n);\r\n}\r\n\r\nexport module Integer\r\n{\r\n\texport const MAX_32_BIT:number = 2147483647;\r\n\r\n\tfunction r(maxExclusive:number):number\r\n\t{\r\n\t\treturn (Math.random()*maxExclusive) | 0;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Returns a random integer from minInclusive to the maxExclusive.\r\n\t * Negative numbers are allowed.\r\n\t *\r\n\t * @param maxExclusive\r\n\t * @returns {number}\r\n\t */\r\n\texport function random(maxExclusive:number):number\r\n\t{\r\n\t\tassert(maxExclusive, 'maxExclusive');\r\n\t\treturn r(maxExclusive);\r\n\t}\r\n\r\n\texport module random\r\n\t{\r\n\t\texport function next(\r\n\t\t\tboundary:number,\r\n\t\t\tinclusive?:boolean):number\r\n\t\t{\r\n\t\t\tassert(boundary, 'max');\r\n\t\t\tif(boundary===0) return 0;\r\n\t\t\tif(inclusive) boundary += boundary/Math.abs(boundary);\r\n\t\t\treturn r(boundary);\r\n\t\t}\r\n\r\n\t\texport function nextInRange(\r\n\t\t\tmin:number,\r\n\t\t\tmax:number,\r\n\t\t\tinclusive?:boolean):number\r\n\t\t{\r\n\t\t\tassert(min, 'min');\r\n\t\t\tassert(max, 'max');\r\n\t\t\tvar range = max - min;\r\n\t\t\tif(range===0) return min;\r\n\t\t\tif(inclusive) range += range/Math.abs(range);\r\n\t\t\treturn min + next(range);\r\n\t\t}\r\n\r\n\t\texport function select(source:IArray):T\r\n\t\t{\r\n\t\t\treturn source && source.length\r\n\t\t\t\t? source[r(source.length)]\r\n\t\t\t\t: void(0);\r\n\t\t}\r\n\r\n\t\texport module select\r\n\t\t{\r\n\t\t\texport function one(source:IArray):T\r\n\t\t\t{\r\n\t\t\t\treturn random.select(source);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\texport function as32Bit(n:number):number\r\n\t{\r\n\t\tvar result = n | 0;\r\n\t\treturn (n===-1 || result!==-1) ? result : null;\r\n\t}\r\n\r\n\tconst NUMBER:string = \"number\";\r\n\r\n\texport function is(n:number):boolean\r\n\t{\r\n\t\treturn typeof n===NUMBER && isFinite(n) && n===Math.floor(n);\r\n\t}\r\n\r\n\texport function is32Bit(n:number):boolean\r\n\t{\r\n\t\treturn n===(n | 0);\r\n\t}\r\n\r\n\r\n\texport function assert(n:number, argumentName?:string):boolean\r\n\t{\r\n\t\tvar i = is(n);\r\n\t\tif(!i)\r\n\t\t\tthrow new ArgumentException(argumentName || 'n', \"Must be a integer.\");\r\n\t\treturn i;\r\n\t}\r\n\r\n\texport function assertZeroOrGreater(n:number, argumentName?:string):boolean\r\n\t{\r\n\t\tvar i = assert(n, argumentName) && n>=0;\r\n\t\tif(!i)\r\n\t\t\tthrow new ArgumentOutOfRangeException(argumentName || 'n', n, \"Must be a valid integer greater than or equal to zero.\");\r\n\t\treturn i;\r\n\t}\r\n\r\n\texport function assertPositive(n:number, argumentName?:string):boolean\r\n\t{\r\n\t\tvar i = assert(n, argumentName) && n>0;\r\n\t\tif(!i)\r\n\t\t\tthrow new ArgumentOutOfRangeException(argumentName || 'n', n, \"Must be greater than zero.\");\r\n\t\treturn i;\r\n\t}\r\n\r\n}\r\n\r\nexport default Integer;\r\n"]} \ No newline at end of file diff --git a/dist/commonjs/System/KeyValueExtract.d.ts b/dist/commonjs/System/KeyValueExtract.d.ts index cfe473b9..8a23ab82 100644 --- a/dist/commonjs/System/KeyValueExtract.d.ts +++ b/dist/commonjs/System/KeyValueExtract.d.ts @@ -2,8 +2,11 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { KeyValuePair, IKeyValuePair } from "./KeyValuePair"; +import { IArray } from "./Collections/Array/IArray"; export declare function isKeyValuePair(kvp: any): kvp is IKeyValuePair; export declare function assertKey(key: TKey, name?: string): TKey; export declare function assertTuple(tuple: IArray, name?: string): void; export declare function assertNotUndefined(value: T, name: string): T; -export default function extractKeyValue(item: KeyValuePair, to: (key: TKey, value: TValue) => TResult): TResult; +export declare function extractKeyValue(item: KeyValuePair, to: (key: TKey, value: TValue) => TResult): TResult; +export default extractKeyValue; diff --git a/dist/commonjs/System/KeyValueExtract.js b/dist/commonjs/System/KeyValueExtract.js index c7dab7c0..71b408d7 100644 --- a/dist/commonjs/System/KeyValueExtract.js +++ b/dist/commonjs/System/KeyValueExtract.js @@ -24,19 +24,19 @@ function assertKey(key) { var name = arguments.length <= 1 || arguments[1] === undefined ? ITEM : arguments[1]; assertNotUndefined(key, name + DOT + KEY); - if (key === null) throw new ArgumentNullException_1.default(name + DOT + KEY); + if (key === null) throw new ArgumentNullException_1.ArgumentNullException(name + DOT + KEY); return key; } exports.assertKey = assertKey; function assertTuple(tuple) { var name = arguments.length <= 1 || arguments[1] === undefined ? ITEM : arguments[1]; - if (tuple.length != 2) throw new ArgumentException_1.default(name, 'KeyValuePair tuples must be of length 2.'); + if (tuple.length != 2) throw new ArgumentException_1.ArgumentException(name, 'KeyValuePair tuples must be of length 2.'); assertKey(tuple[0], name); } exports.assertTuple = assertTuple; function assertNotUndefined(value, name) { - if (value === VOID0) throw new ArgumentException_1.default(name, CANNOT_BE_UNDEFINED); + if (value === VOID0) throw new ArgumentException_1.ArgumentException(name, CANNOT_BE_UNDEFINED); return value; } exports.assertNotUndefined = assertNotUndefined; @@ -52,10 +52,11 @@ function extractKeyValue(item, to) { key = assertKey(item.key); value = assertNotUndefined(item.value, ITEM_VALUE); } else { - throw new ArgumentException_1.default(ITEM, INVALID_KVP_MESSAGE); + throw new ArgumentException_1.ArgumentException(ITEM, INVALID_KVP_MESSAGE); } return to(key, value); } +exports.extractKeyValue = extractKeyValue; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = extractKeyValue; //# sourceMappingURL=KeyValueExtract.js.map diff --git a/dist/commonjs/System/KeyValueExtract.js.map b/dist/commonjs/System/KeyValueExtract.js.map index 3050fb2b..5e115185 100644 --- a/dist/commonjs/System/KeyValueExtract.js.map +++ b/dist/commonjs/System/KeyValueExtract.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/KeyValueExtract.js","System/KeyValueExtract.ts"],"names":[],"mappings":";;;;AAIA;;ACCA,IAAA,sBAAA,QAA8B,gCAA9B,CAAA;AACA,IAAA,0BAAA,QAAkC,oCAAlC,CAAA;AAEA,IACC,QAA6B,KAAK,CAAL;IAC7B,MAA6B,GAA7B;IACA,MAA6B,KAA7B;IACA,QAA6B,OAA7B;IACA,OAA6B,MAA7B;IACA,SAA6B,OAAO,KAAP;IAC7B,WAA6B,OAAO,GAAP,GAAa,GAAb;IAC7B,aAA6B,OAAO,GAAP,GAAa,KAAb;IAC7B,sBAA6B,6DAA7B;IACA,sBAA6B,yBAA7B;AAED,SAAA,cAAA,CAA4C,GAA5C,EAAmD;AAElD,WAAO,OAAO,IAAI,cAAJ,CAAmB,GAAnB,CAAP,IAAkC,IAAI,cAAJ,CAAmB,KAAnB,CAAlC,CAF2C;CAAnD;AAAgB,QAAA,cAAA,GAAc,cAAd;AAKhB,SAAA,SAAA,CAAgC,GAAhC,EAA4D;QAAlB,6DAAc,oBAAI;;AAE3D,uBAAmB,GAAnB,EAAwB,OAAO,GAAP,GAAa,GAAb,CAAxB,CAF2D;AAG3D,QAAG,QAAM,IAAN,EACF,MAAM,IAAI,wBAAA,OAAA,CAAsB,OAAO,GAAP,GAAa,GAAb,CAAhC,CADD;AAGA,WAAO,GAAP,CAN2D;CAA5D;AAAgB,QAAA,SAAA,GAAS,SAAT;AAUhB,SAAA,WAAA,CAA4B,KAA5B,EAAiE;QAAlB,6DAAc,oBAAI;;AAEhE,QAAG,MAAM,MAAN,IAAc,CAAd,EACF,MAAM,IAAI,oBAAA,OAAA,CAAkB,IAAtB,EAA4B,0CAA5B,CAAN,CADD;AAGA,cAAU,MAAM,CAAN,CAAV,EAAoB,IAApB,EALgE;CAAjE;AAAgB,QAAA,WAAA,GAAW,WAAX;AAShB,SAAA,kBAAA,CAAsC,KAAtC,EAA+C,IAA/C,EAA0D;AAEzD,QAAG,UAAQ,KAAR,EACF,MAAM,IAAI,oBAAA,OAAA,CAAkB,IAAtB,EAA4B,mBAA5B,CAAN,CADD;AAGA,WAAO,KAAP,CALyD;CAA1D;AAAgB,QAAA,kBAAA,GAAkB,kBAAlB;AAShB,SAAA,eAAA,CACC,IADD,EAEC,EAFD,EAEqC;AAGpC,QAAI,IAAI,IAAJ;QAAU,GAAd;QAAwB,KAAxB,CAHoC;AAIpC,QAAG,gBAAgB,KAAhB,EACH;AACC,oBAAY,IAAZ,EADD;AAEC,cAAM,KAAK,CAAL,CAAN,CAFD;AAGC,gBAAQ,mBAAmB,KAAK,CAAL,CAAnB,EAA4B,MAA5B,CAAR,CAHD;KADA,MAMK,IAAG,eAA4B,IAA5B,CAAH,EACL;AACC,cAAM,UAAU,KAAK,GAAL,CAAhB,CADD;AAEC,gBAAQ,mBAAmB,KAAK,KAAL,EAAY,UAA/B,CAAR,CAFD;KADK,MAML;AACC,cAAM,IAAI,oBAAA,OAAA,CAAkB,IAAtB,EAA4B,mBAA5B,CAAN,CADD;KANK;AAUL,WAAO,GAAG,GAAH,EAAQ,KAAR,CAAP,CApBoC;CAFrC;AAAA,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADLA,QAAQ,OAAR,GAAkB,eAAlB","file":"System/KeyValueExtract.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst ArgumentException_1 = require(\"./Exceptions/ArgumentException\");\nconst ArgumentNullException_1 = require(\"./Exceptions/ArgumentNullException\");\nconst VOID0 = void 0, DOT = '.', KEY = 'key', VALUE = 'value', ITEM = 'item', ITEM_1 = ITEM + '[1]', ITEM_KEY = ITEM + DOT + KEY, ITEM_VALUE = ITEM + DOT + VALUE, INVALID_KVP_MESSAGE = 'Invalid type. Must be a KeyValuePair or Tuple of length 2.', CANNOT_BE_UNDEFINED = 'Cannot equal undefined.';\nfunction isKeyValuePair(kvp) {\n return kvp && kvp.hasOwnProperty(KEY) && kvp.hasOwnProperty(VALUE);\n}\nexports.isKeyValuePair = isKeyValuePair;\nfunction assertKey(key, name = ITEM) {\n assertNotUndefined(key, name + DOT + KEY);\n if (key === null)\n throw new ArgumentNullException_1.default(name + DOT + KEY);\n return key;\n}\nexports.assertKey = assertKey;\nfunction assertTuple(tuple, name = ITEM) {\n if (tuple.length != 2)\n throw new ArgumentException_1.default(name, 'KeyValuePair tuples must be of length 2.');\n assertKey(tuple[0], name);\n}\nexports.assertTuple = assertTuple;\nfunction assertNotUndefined(value, name) {\n if (value === VOID0)\n throw new ArgumentException_1.default(name, CANNOT_BE_UNDEFINED);\n return value;\n}\nexports.assertNotUndefined = assertNotUndefined;\nfunction extractKeyValue(item, to) {\n var _ = this, key, value;\n if (item instanceof Array) {\n assertTuple(item);\n key = item[0];\n value = assertNotUndefined(item[1], ITEM_1);\n }\n else if (isKeyValuePair(item)) {\n key = assertKey(item.key);\n value = assertNotUndefined(item.value, ITEM_VALUE);\n }\n else {\n throw new ArgumentException_1.default(ITEM, INVALID_KVP_MESSAGE);\n }\n return to(key, value);\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = extractKeyValue;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport ArgumentException from \"./Exceptions/ArgumentException\";\r\nimport ArgumentNullException from \"./Exceptions/ArgumentNullException\";\r\n\r\nconst\r\n\tVOID0:any = void 0,\r\n\tDOT:string = '.',\r\n\tKEY:string = 'key',\r\n\tVALUE:string = 'value',\r\n\tITEM:string = 'item',\r\n\tITEM_1:string = ITEM + '[1]',\r\n\tITEM_KEY:string = ITEM + DOT + KEY,\r\n\tITEM_VALUE:string = ITEM + DOT + VALUE,\r\n\tINVALID_KVP_MESSAGE:string = 'Invalid type. Must be a KeyValuePair or Tuple of length 2.',\r\n\tCANNOT_BE_UNDEFINED:string = 'Cannot equal undefined.';\r\n\r\nexport function isKeyValuePair(kvp:any):kvp is IKeyValuePair\r\n{\r\n\treturn kvp && kvp.hasOwnProperty(KEY) && kvp.hasOwnProperty(VALUE);\r\n}\r\n\r\nexport function assertKey(key:TKey, name:string = ITEM):TKey\r\n{\r\n\tassertNotUndefined(key, name + DOT + KEY);\r\n\tif(key===null)\r\n\t\tthrow new ArgumentNullException(name + DOT + KEY);\r\n\r\n\treturn key;\r\n}\r\n\r\n\r\nexport function assertTuple(tuple:IArray, name:string = ITEM):void\r\n{\r\n\tif(tuple.length!=2)\r\n\t\tthrow new ArgumentException(name, 'KeyValuePair tuples must be of length 2.');\r\n\r\n\tassertKey(tuple[0], name);\r\n}\r\n\r\n\r\nexport function assertNotUndefined(value:T, name:string):T\r\n{\r\n\tif(value===VOID0)\r\n\t\tthrow new ArgumentException(name, CANNOT_BE_UNDEFINED);\r\n\r\n\treturn value;\r\n}\r\n\r\n\r\nexport default function extractKeyValue(\r\n\titem:KeyValuePair,\r\n\tto:(key:TKey, value:TValue)=>TResult):TResult\r\n{\r\n\r\n\tvar _ = this, key:TKey, value:TValue;\r\n\tif(item instanceof Array)\r\n\t{\r\n\t\tassertTuple(item);\r\n\t\tkey = item[0];\r\n\t\tvalue = assertNotUndefined(item[1], ITEM_1);\r\n\t}\r\n\telse if(isKeyValuePair(item))\r\n\t{\r\n\t\tkey = assertKey(item.key);\r\n\t\tvalue = assertNotUndefined(item.value, ITEM_VALUE);\r\n\t}\r\n\telse\r\n\t{\r\n\t\tthrow new ArgumentException(ITEM, INVALID_KVP_MESSAGE);\r\n\t}\r\n\r\n\treturn to(key, value);\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/KeyValueExtract.js","System/KeyValueExtract.ts"],"names":[],"mappings":";;;;AAIA;;ACCA,IAAA,sBAAA,QAAgC,gCAAhC,CAAA;AACA,IAAA,0BAAA,QAAoC,oCAApC,CAAA;AAIA,IACC,QAA6B,KAAK,CAAL;IAC7B,MAA6B,GAA7B;IACA,MAA6B,KAA7B;IACA,QAA6B,OAA7B;IACA,OAA6B,MAA7B;IACA,SAA6B,OAAO,KAAP;IAC7B,WAA6B,OAAO,GAAP,GAAa,GAAb;IAC7B,aAA6B,OAAO,GAAP,GAAa,KAAb;IAC7B,sBAA6B,6DAA7B;IACA,sBAA6B,yBAA7B;AAED,SAAA,cAAA,CAA4C,GAA5C,EAAmD;AAElD,WAAO,OAAO,IAAI,cAAJ,CAAmB,GAAnB,CAAP,IAAkC,IAAI,cAAJ,CAAmB,KAAnB,CAAlC,CAF2C;CAAnD;AAAgB,QAAA,cAAA,GAAc,cAAd;AAKhB,SAAA,SAAA,CAAgC,GAAhC,EAA4D;QAAlB,6DAAc,oBAAI;;AAE3D,uBAAmB,GAAnB,EAAwB,OAAO,GAAP,GAAa,GAAb,CAAxB,CAF2D;AAG3D,QAAG,QAAM,IAAN,EACF,MAAM,IAAI,wBAAA,qBAAA,CAAsB,OAAO,GAAP,GAAa,GAAb,CAAhC,CADD;AAGA,WAAO,GAAP,CAN2D;CAA5D;AAAgB,QAAA,SAAA,GAAS,SAAT;AAUhB,SAAA,WAAA,CAA4B,KAA5B,EAAiE;QAAlB,6DAAc,oBAAI;;AAEhE,QAAG,MAAM,MAAN,IAAc,CAAd,EACF,MAAM,IAAI,oBAAA,iBAAA,CAAkB,IAAtB,EAA4B,0CAA5B,CAAN,CADD;AAGA,cAAU,MAAM,CAAN,CAAV,EAAoB,IAApB,EALgE;CAAjE;AAAgB,QAAA,WAAA,GAAW,WAAX;AAShB,SAAA,kBAAA,CAAsC,KAAtC,EAA+C,IAA/C,EAA0D;AAEzD,QAAG,UAAQ,KAAR,EACF,MAAM,IAAI,oBAAA,iBAAA,CAAkB,IAAtB,EAA4B,mBAA5B,CAAN,CADD;AAGA,WAAO,KAAP,CALyD;CAA1D;AAAgB,QAAA,kBAAA,GAAkB,kBAAlB;AAShB,SAAA,eAAA,CACC,IADD,EAEC,EAFD,EAEqC;AAGpC,QAAI,IAAI,IAAJ;QAAU,GAAd;QAAwB,KAAxB,CAHoC;AAIpC,QAAG,gBAAgB,KAAhB,EACH;AACC,oBAAY,IAAZ,EADD;AAEC,cAAM,KAAK,CAAL,CAAN,CAFD;AAGC,gBAAQ,mBAAmB,KAAK,CAAL,CAAnB,EAA4B,MAA5B,CAAR,CAHD;KADA,MAMK,IAAG,eAA4B,IAA5B,CAAH,EACL;AACC,cAAM,UAAU,KAAK,GAAL,CAAhB,CADD;AAEC,gBAAQ,mBAAmB,KAAK,KAAL,EAAY,UAA/B,CAAR,CAFD;KADK,MAML;AACC,cAAM,IAAI,oBAAA,iBAAA,CAAkB,IAAtB,EAA4B,mBAA5B,CAAN,CADD;KANK;AAUL,WAAO,GAAG,GAAH,EAAQ,KAAR,CAAP,CApBoC;CAFrC;AAAgB,QAAA,eAAA,GAAe,eAAf;AAyBhB,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;AD/BA,QAAQ,OAAR,GC+Be,eD/Bf","file":"System/KeyValueExtract.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst ArgumentException_1 = require(\"./Exceptions/ArgumentException\");\nconst ArgumentNullException_1 = require(\"./Exceptions/ArgumentNullException\");\nconst VOID0 = void 0, DOT = '.', KEY = 'key', VALUE = 'value', ITEM = 'item', ITEM_1 = ITEM + '[1]', ITEM_KEY = ITEM + DOT + KEY, ITEM_VALUE = ITEM + DOT + VALUE, INVALID_KVP_MESSAGE = 'Invalid type. Must be a KeyValuePair or Tuple of length 2.', CANNOT_BE_UNDEFINED = 'Cannot equal undefined.';\nfunction isKeyValuePair(kvp) {\n return kvp && kvp.hasOwnProperty(KEY) && kvp.hasOwnProperty(VALUE);\n}\nexports.isKeyValuePair = isKeyValuePair;\nfunction assertKey(key, name = ITEM) {\n assertNotUndefined(key, name + DOT + KEY);\n if (key === null)\n throw new ArgumentNullException_1.ArgumentNullException(name + DOT + KEY);\n return key;\n}\nexports.assertKey = assertKey;\nfunction assertTuple(tuple, name = ITEM) {\n if (tuple.length != 2)\n throw new ArgumentException_1.ArgumentException(name, 'KeyValuePair tuples must be of length 2.');\n assertKey(tuple[0], name);\n}\nexports.assertTuple = assertTuple;\nfunction assertNotUndefined(value, name) {\n if (value === VOID0)\n throw new ArgumentException_1.ArgumentException(name, CANNOT_BE_UNDEFINED);\n return value;\n}\nexports.assertNotUndefined = assertNotUndefined;\nfunction extractKeyValue(item, to) {\n var _ = this, key, value;\n if (item instanceof Array) {\n assertTuple(item);\n key = item[0];\n value = assertNotUndefined(item[1], ITEM_1);\n }\n else if (isKeyValuePair(item)) {\n key = assertKey(item.key);\n value = assertNotUndefined(item.value, ITEM_VALUE);\n }\n else {\n throw new ArgumentException_1.ArgumentException(ITEM, INVALID_KVP_MESSAGE);\n }\n return to(key, value);\n}\nexports.extractKeyValue = extractKeyValue;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = extractKeyValue;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {ArgumentException} from \"./Exceptions/ArgumentException\";\r\nimport {ArgumentNullException} from \"./Exceptions/ArgumentNullException\";\r\nimport {KeyValuePair, IKeyValuePair} from \"./KeyValuePair\";\r\nimport {IArray} from \"./Collections/Array/IArray\";\r\n\r\nconst\r\n\tVOID0:any = void 0,\r\n\tDOT:string = '.',\r\n\tKEY:string = 'key',\r\n\tVALUE:string = 'value',\r\n\tITEM:string = 'item',\r\n\tITEM_1:string = ITEM + '[1]',\r\n\tITEM_KEY:string = ITEM + DOT + KEY,\r\n\tITEM_VALUE:string = ITEM + DOT + VALUE,\r\n\tINVALID_KVP_MESSAGE:string = 'Invalid type. Must be a KeyValuePair or Tuple of length 2.',\r\n\tCANNOT_BE_UNDEFINED:string = 'Cannot equal undefined.';\r\n\r\nexport function isKeyValuePair(kvp:any):kvp is IKeyValuePair\r\n{\r\n\treturn kvp && kvp.hasOwnProperty(KEY) && kvp.hasOwnProperty(VALUE);\r\n}\r\n\r\nexport function assertKey(key:TKey, name:string = ITEM):TKey\r\n{\r\n\tassertNotUndefined(key, name + DOT + KEY);\r\n\tif(key===null)\r\n\t\tthrow new ArgumentNullException(name + DOT + KEY);\r\n\r\n\treturn key;\r\n}\r\n\r\n\r\nexport function assertTuple(tuple:IArray, name:string = ITEM):void\r\n{\r\n\tif(tuple.length!=2)\r\n\t\tthrow new ArgumentException(name, 'KeyValuePair tuples must be of length 2.');\r\n\r\n\tassertKey(tuple[0], name);\r\n}\r\n\r\n\r\nexport function assertNotUndefined(value:T, name:string):T\r\n{\r\n\tif(value===VOID0)\r\n\t\tthrow new ArgumentException(name, CANNOT_BE_UNDEFINED);\r\n\r\n\treturn value;\r\n}\r\n\r\n\r\nexport function extractKeyValue(\r\n\titem:KeyValuePair,\r\n\tto:(key:TKey, value:TValue)=>TResult):TResult\r\n{\r\n\r\n\tvar _ = this, key:TKey, value:TValue;\r\n\tif(item instanceof Array)\r\n\t{\r\n\t\tassertTuple(item);\r\n\t\tkey = item[0];\r\n\t\tvalue = assertNotUndefined(item[1], ITEM_1);\r\n\t}\r\n\telse if(isKeyValuePair(item))\r\n\t{\r\n\t\tkey = assertKey(item.key);\r\n\t\tvalue = assertNotUndefined(item.value, ITEM_VALUE);\r\n\t}\r\n\telse\r\n\t{\r\n\t\tthrow new ArgumentException(ITEM, INVALID_KVP_MESSAGE);\r\n\t}\r\n\r\n\treturn to(key, value);\r\n}\r\n\r\nexport default extractKeyValue;"]} \ No newline at end of file diff --git a/dist/commonjs/System/Lazy.d.ts b/dist/commonjs/System/Lazy.d.ts index de32b287..c682318e 100644 --- a/dist/commonjs/System/Lazy.d.ts +++ b/dist/commonjs/System/Lazy.d.ts @@ -1,11 +1,11 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import DisposableBase from './Disposable/DisposableBase'; -export default class Lazy extends DisposableBase implements ILazy { +import { DisposableBase } from "./Disposable/DisposableBase"; +import { ILazy } from "./ILazy"; +import { Func } from "./FunctionTypes"; +export declare class Lazy extends DisposableBase implements ILazy { private _closure; private _isValueCreated; private _value; @@ -19,3 +19,4 @@ export default class Lazy extends DisposableBase implements ILazy { equals(other: Lazy): boolean; valueEquals(other: Lazy): boolean; } +export default Lazy; diff --git a/dist/commonjs/System/Lazy.js b/dist/commonjs/System/Lazy.js index 81bc0996..c2432ca1 100644 --- a/dist/commonjs/System/Lazy.js +++ b/dist/commonjs/System/Lazy.js @@ -2,7 +2,7 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; +"use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); @@ -12,10 +12,10 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } -var DisposableBase_1 = require('./Disposable/DisposableBase'); +var DisposableBase_1 = require("./Disposable/DisposableBase"); -var Lazy = function (_DisposableBase_1$def) { - _inherits(Lazy, _DisposableBase_1$def); +var Lazy = function (_DisposableBase_1$Dis) { + _inherits(Lazy, _DisposableBase_1$Dis); function Lazy(_closure) { _classCallCheck(this, Lazy); @@ -28,7 +28,7 @@ var Lazy = function (_DisposableBase_1$def) { } _createClass(Lazy, [{ - key: 'reset', + key: "reset", value: function reset(throwIfCannotReset) { var _ = this; if (throwIfCannotReset) _.throwIfDisposed(); @@ -42,7 +42,7 @@ var Lazy = function (_DisposableBase_1$def) { } } }, { - key: 'getValue', + key: "getValue", value: function getValue(clearClosureReference) { var _ = this; _.throwIfDisposed(); @@ -59,41 +59,42 @@ var Lazy = function (_DisposableBase_1$def) { return _._value; } }, { - key: '_onDispose', + key: "_onDispose", value: function _onDispose() { this._closure = null; this._value = null; } }, { - key: 'equals', + key: "equals", value: function equals(other) { return this == other; } }, { - key: 'valueEquals', + key: "valueEquals", value: function valueEquals(other) { return this.equals(other) || this.value === other.value; } }, { - key: 'isValueCreated', + key: "isValueCreated", get: function get() { return this._isValueCreated; } }, { - key: 'canReset', + key: "canReset", get: function get() { return !this.wasDisposed && !!this._closure; } }, { - key: 'value', + key: "value", get: function get() { return this.getValue(); } }]); return Lazy; -}(DisposableBase_1.default); +}(DisposableBase_1.DisposableBase); +exports.Lazy = Lazy; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = Lazy; //# sourceMappingURL=Lazy.js.map diff --git a/dist/commonjs/System/Lazy.js.map b/dist/commonjs/System/Lazy.js.map index b8913fb9..432d77de 100644 --- a/dist/commonjs/System/Lazy.js.map +++ b/dist/commonjs/System/Lazy.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Lazy.ts","System/Lazy.js"],"names":[],"mappings":";;;;AAOA;;;;;;;;;;AAEA,IAAA,mBAAA,QAA2B,6BAA3B,CAAA;;IAEA;;;AAOC,aAPD,IAOC,CAAoB,QAApB,EAAoC;8BAPrC,MAOqC;;2EAPrC,kBAOqC;;AAAhB,cAAA,QAAA,GAAA,QAAA,CAAgB;AAGnC,cAAK,qBAAL,GAA6B,MAA7B,CAHmC;;KAApC;;iBAPD;;8BAyBO,oBAA2B;AAChC,gBAAI,IAAI,IAAJ,CAD4B;AAGhC,gBAAG,kBAAH,EACC,EAAE,eAAF,GADD;AAGA,gBAAG,CAAC,EAAE,QAAF,EAAY;AACf,oBAAG,kBAAH,EACC,MAAM,IAAI,KAAJ,CAAU,iEAAV,CAAN,CADD;AAEA,uBAAO,KAAP,CAHe;aAAhB,MAKK;AACJ,kBAAE,eAAF,GAAoB,KAApB,CADI;AAEJ,kBAAE,MAAF,GAAW,IAAX,CAFI;AAGJ,uBAAO,IAAP,CAHI;aALL;;;;iCAiBQ,uBAA8B;AAEtC,gBAAI,IAAI,IAAJ,CAFkC;AAItC,cAAE,eAAF,GAJsC;AAMtC,gBAAI;AACH,oBAAG,CAAC,EAAE,eAAF,IAAqB,EAAE,QAAF,EAAY;AACpC,wBAAI,IAAI,EAAE,QAAF,EAAJ,CADgC;AAEpC,sBAAE,MAAF,GAAW,CAAX,CAFoC;AAGpC,sBAAE,eAAF,GAAoB,IAApB,CAHoC;AAIpC,2BAAO,CAAP,CAJoC;iBAArC;aADD,SAQQ;AACP,oBAAG,qBAAH,EACC,EAAE,QAAF,GAAa,IAAb,CADD;aATD;AAaA,mBAAO,EAAE,MAAF,CAnB+B;;;;qCAwBnB;AACnB,iBAAK,QAAL,GAAgB,IAAhB,CADmB;AAEnB,iBAAK,MAAL,GAAc,IAAd,CAFmB;;;;+BAKb,OAAa;AAEnB,mBAAO,QAAM,KAAN,CAFY;;;;oCAKR,OAAa;AAExB,mBAAO,KAAK,MAAL,CAAY,KAAZ,KAAsB,KAAK,KAAL,KAAa,MAAM,KAAN,CAFlB;;;;4BArEP;AAEjB,mBAAO,KAAK,eAAL,CAFU;;;;4BAMN;AAEX,mBAAO,CAAC,KAAK,WAAL,IAAoB,CAAC,CAAE,KAAK,QAAL,CAFpB;;;;4BAwBH;AAER,mBAAO,KAAK,QAAL,EAAP,CAFQ;;;;WA3CV;EACsB,iBAAA,OAAA;;AADtB,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ACsDA,QAAQ,OAAR,GAAkB,IAAlB","file":"System/Lazy.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport DisposableBase from './Disposable/DisposableBase';\r\n\r\nexport default\r\nclass Lazy extends DisposableBase implements ILazy\r\n{\r\n\r\n\tprivate _isValueCreated:boolean;\r\n\tprivate _value:T;\r\n\r\n\tconstructor(private _closure:Func)\r\n\t{\r\n\t\tsuper();\r\n\t\tthis._disposableObjectName = 'Lazy';\r\n\t}\r\n\r\n\tget isValueCreated():boolean\r\n\t{\r\n\t\treturn this._isValueCreated;\r\n\t}\r\n\r\n\t// Adding a 'resettable' mechanism allows for simply resetting a lazy instead of re-instantiating a new one.\r\n\tget canReset():boolean\r\n\t{\r\n\t\treturn !this.wasDisposed && !!(this._closure);\r\n\t}\r\n\r\n\t// Returns true if successfully reset.\r\n\treset(throwIfCannotReset?:boolean):boolean {\r\n\t\tvar _ = this;\r\n\r\n\t\tif(throwIfCannotReset)\r\n\t\t\t_.throwIfDisposed();\r\n\r\n\t\tif(!_._closure) {\r\n\t\t\tif(throwIfCannotReset)\r\n\t\t\t\tthrow new Error(\"Cannot reset. This Lazy has already de-referenced its closure.\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\telse {\r\n\t\t\t_._isValueCreated = false;\r\n\t\t\t_._value = null;\r\n\t\t\treturn true;\r\n\t\t}\r\n\t}\r\n\r\n\tget value():T\r\n\t{\r\n\t\treturn this.getValue();\r\n\t}\r\n\r\n\tgetValue(clearClosureReference?:boolean):T {\r\n\r\n\t\tvar _ = this;\r\n\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\ttry {\r\n\t\t\tif(!_._isValueCreated && _._closure) {\r\n\t\t\t\tvar v = _._closure();\r\n\t\t\t\t_._value = v;\r\n\t\t\t\t_._isValueCreated = true;\r\n\t\t\t\treturn v;\r\n\t\t\t}\r\n\t\t}\r\n\t\tfinally {\r\n\t\t\tif(clearClosureReference)\r\n\t\t\t\t_._closure = null;\r\n\t\t}\r\n\r\n\t\treturn _._value;\r\n\r\n\t}\r\n\r\n\r\n\tprotected _onDispose():void {\r\n\t\tthis._closure = null;\r\n\t\tthis._value = null;\r\n\t}\r\n\r\n\tequals(other:Lazy):boolean\r\n\t{\r\n\t\treturn this==other;\r\n\t}\r\n\r\n\tvalueEquals(other:Lazy):boolean\r\n\t{\r\n\t\treturn this.equals(other) || this.value===other.value;\r\n\t}\r\n}\r\n\r\n","/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n'use strict';\nconst DisposableBase_1 = require('./Disposable/DisposableBase');\nclass Lazy extends DisposableBase_1.default {\n constructor(_closure) {\n super();\n this._closure = _closure;\n this._disposableObjectName = 'Lazy';\n }\n get isValueCreated() {\n return this._isValueCreated;\n }\n get canReset() {\n return !this.wasDisposed && !!(this._closure);\n }\n reset(throwIfCannotReset) {\n var _ = this;\n if (throwIfCannotReset)\n _.throwIfDisposed();\n if (!_._closure) {\n if (throwIfCannotReset)\n throw new Error(\"Cannot reset. This Lazy has already de-referenced its closure.\");\n return false;\n }\n else {\n _._isValueCreated = false;\n _._value = null;\n return true;\n }\n }\n get value() {\n return this.getValue();\n }\n getValue(clearClosureReference) {\n var _ = this;\n _.throwIfDisposed();\n try {\n if (!_._isValueCreated && _._closure) {\n var v = _._closure();\n _._value = v;\n _._isValueCreated = true;\n return v;\n }\n }\n finally {\n if (clearClosureReference)\n _._closure = null;\n }\n return _._value;\n }\n _onDispose() {\n this._closure = null;\n this._value = null;\n }\n equals(other) {\n return this == other;\n }\n valueEquals(other) {\n return this.equals(other) || this.value === other.value;\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Lazy;\n"]} \ No newline at end of file +{"version":3,"sources":["System/Lazy.js","System/Lazy.ts"],"names":[],"mappings":";;;;AAIA;;;;;;;;;;ACCA,IAAA,mBAAA,QAA6B,6BAA7B,CAAA;;IAIA;;;AAMC,aAND,IAMC,CAAoB,QAApB,EAAoC;8BANrC,MAMqC;;2EANrC,kBAMqC;;AAAhB,cAAA,QAAA,GAAA,QAAA,CAAgB;AAGnC,cAAK,qBAAL,GAA6B,MAA7B,CAHmC;;KAApC;;iBAND;;8BAwBO,oBAA2B;AAChC,gBAAI,IAAI,IAAJ,CAD4B;AAGhC,gBAAG,kBAAH,EACC,EAAE,eAAF,GADD;AAGA,gBAAG,CAAC,EAAE,QAAF,EAAY;AACf,oBAAG,kBAAH,EACC,MAAM,IAAI,KAAJ,CAAU,iEAAV,CAAN,CADD;AAEA,uBAAO,KAAP,CAHe;aAAhB,MAKK;AACJ,kBAAE,eAAF,GAAoB,KAApB,CADI;AAEJ,kBAAE,MAAF,GAAW,IAAX,CAFI;AAGJ,uBAAO,IAAP,CAHI;aALL;;;;iCAiBQ,uBAA8B;AAEtC,gBAAI,IAAI,IAAJ,CAFkC;AAItC,cAAE,eAAF,GAJsC;AAMtC,gBAAI;AACH,oBAAG,CAAC,EAAE,eAAF,IAAqB,EAAE,QAAF,EAAY;AACpC,wBAAI,IAAI,EAAE,QAAF,EAAJ,CADgC;AAEpC,sBAAE,MAAF,GAAW,CAAX,CAFoC;AAGpC,sBAAE,eAAF,GAAoB,IAApB,CAHoC;AAIpC,2BAAO,CAAP,CAJoC;iBAArC;aADD,SAQQ;AACP,oBAAG,qBAAH,EACC,EAAE,QAAF,GAAa,IAAb,CADD;aATD;AAaA,mBAAO,EAAE,MAAF,CAnB+B;;;;qCAwBnB;AACnB,iBAAK,QAAL,GAAgB,IAAhB,CADmB;AAEnB,iBAAK,MAAL,GAAc,IAAd,CAFmB;;;;+BAKb,OAAa;AAEnB,mBAAO,QAAM,KAAN,CAFY;;;;oCAKR,OAAa;AAExB,mBAAO,KAAK,MAAL,CAAY,KAAZ,KAAsB,KAAK,KAAL,KAAa,MAAM,KAAN,CAFlB;;;;4BArEP;AAEjB,mBAAO,KAAK,eAAL,CAFU;;;;4BAMN;AAEX,mBAAO,CAAC,KAAK,WAAL,IAAoB,CAAC,CAAE,KAAK,QAAL,CAFpB;;;;4BAwBH;AAER,mBAAO,KAAK,QAAL,EAAP,CAFQ;;;;WA1CV;EAA6B,iBAAA,cAAA;;AAAhB,QAAA,IAAA,GAAI,IAAJ;AAuFb,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;AD9BA,QAAQ,OAAR,GC8Be,ID9Bf","file":"System/Lazy.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst DisposableBase_1 = require(\"./Disposable/DisposableBase\");\nclass Lazy extends DisposableBase_1.DisposableBase {\n constructor(_closure) {\n super();\n this._closure = _closure;\n this._disposableObjectName = 'Lazy';\n }\n get isValueCreated() {\n return this._isValueCreated;\n }\n get canReset() {\n return !this.wasDisposed && !!(this._closure);\n }\n reset(throwIfCannotReset) {\n var _ = this;\n if (throwIfCannotReset)\n _.throwIfDisposed();\n if (!_._closure) {\n if (throwIfCannotReset)\n throw new Error(\"Cannot reset. This Lazy has already de-referenced its closure.\");\n return false;\n }\n else {\n _._isValueCreated = false;\n _._value = null;\n return true;\n }\n }\n get value() {\n return this.getValue();\n }\n getValue(clearClosureReference) {\n var _ = this;\n _.throwIfDisposed();\n try {\n if (!_._isValueCreated && _._closure) {\n var v = _._closure();\n _._value = v;\n _._isValueCreated = true;\n return v;\n }\n }\n finally {\n if (clearClosureReference)\n _._closure = null;\n }\n return _._value;\n }\n _onDispose() {\n this._closure = null;\n this._value = null;\n }\n equals(other) {\n return this == other;\n }\n valueEquals(other) {\n return this.equals(other) || this.value === other.value;\n }\n}\nexports.Lazy = Lazy;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Lazy;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {DisposableBase} from \"./Disposable/DisposableBase\";\r\nimport {ILazy} from \"./ILazy\";\r\nimport {Func} from \"./FunctionTypes\";\r\n\r\nexport class Lazy extends DisposableBase implements ILazy\r\n{\r\n\r\n\tprivate _isValueCreated:boolean;\r\n\tprivate _value:T;\r\n\r\n\tconstructor(private _closure:Func)\r\n\t{\r\n\t\tsuper();\r\n\t\tthis._disposableObjectName = 'Lazy';\r\n\t}\r\n\r\n\tget isValueCreated():boolean\r\n\t{\r\n\t\treturn this._isValueCreated;\r\n\t}\r\n\r\n\t// Adding a 'resettable' mechanism allows for simply resetting a lazy instead of re-instantiating a new one.\r\n\tget canReset():boolean\r\n\t{\r\n\t\treturn !this.wasDisposed && !!(this._closure);\r\n\t}\r\n\r\n\t// Returns true if successfully reset.\r\n\treset(throwIfCannotReset?:boolean):boolean {\r\n\t\tvar _ = this;\r\n\r\n\t\tif(throwIfCannotReset)\r\n\t\t\t_.throwIfDisposed();\r\n\r\n\t\tif(!_._closure) {\r\n\t\t\tif(throwIfCannotReset)\r\n\t\t\t\tthrow new Error(\"Cannot reset. This Lazy has already de-referenced its closure.\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\telse {\r\n\t\t\t_._isValueCreated = false;\r\n\t\t\t_._value = null;\r\n\t\t\treturn true;\r\n\t\t}\r\n\t}\r\n\r\n\tget value():T\r\n\t{\r\n\t\treturn this.getValue();\r\n\t}\r\n\r\n\tgetValue(clearClosureReference?:boolean):T {\r\n\r\n\t\tvar _ = this;\r\n\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\ttry {\r\n\t\t\tif(!_._isValueCreated && _._closure) {\r\n\t\t\t\tvar v = _._closure();\r\n\t\t\t\t_._value = v;\r\n\t\t\t\t_._isValueCreated = true;\r\n\t\t\t\treturn v;\r\n\t\t\t}\r\n\t\t}\r\n\t\tfinally {\r\n\t\t\tif(clearClosureReference)\r\n\t\t\t\t_._closure = null;\r\n\t\t}\r\n\r\n\t\treturn _._value;\r\n\r\n\t}\r\n\r\n\r\n\tprotected _onDispose():void {\r\n\t\tthis._closure = null;\r\n\t\tthis._value = null;\r\n\t}\r\n\r\n\tequals(other:Lazy):boolean\r\n\t{\r\n\t\treturn this==other;\r\n\t}\r\n\r\n\tvalueEquals(other:Lazy):boolean\r\n\t{\r\n\t\treturn this.equals(other) || this.value===other.value;\r\n\t}\r\n}\r\n\r\nexport default Lazy;"]} \ No newline at end of file diff --git a/dist/commonjs/System/Net/Http/HttpMethod.d.ts b/dist/commonjs/System/Net/Http/HttpMethod.d.ts index d70dbbd8..b9f17ab0 100644 --- a/dist/commonjs/System/Net/Http/HttpMethod.d.ts +++ b/dist/commonjs/System/Net/Http/HttpMethod.d.ts @@ -1,7 +1,7 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based on: https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html */ -export declare const OPTIONS: HttpMethodValue, HEAD: HttpMethodValue, GET: HttpMethodValue, PUT: HttpMethodValue, POST: HttpMethodValue, DELETE: HttpMethodValue, TRACE: HttpMethodValue, CONNECT: HttpMethodValue; +import * as HttpMethod from "./HttpMethodValue"; +export declare const OPTIONS: HttpMethod.Options, HEAD: HttpMethod.Head, GET: HttpMethod.Get, PUT: HttpMethod.Put, POST: HttpMethod.Post, DELETE: HttpMethod.Delete, TRACE: HttpMethod.Trace, CONNECT: HttpMethod.Connect; diff --git a/dist/commonjs/System/Net/Http/HttpMethod.js.map b/dist/commonjs/System/Net/Http/HttpMethod.js.map index 0f9aeee4..76517083 100644 --- a/dist/commonjs/System/Net/Http/HttpMethod.js.map +++ b/dist/commonjs/System/Net/Http/HttpMethod.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Net/Http/HttpMethod.js","System/Net/Http/HttpMethod.ts"],"names":[],"mappings":";;;;;AAKA;;ACIC,QAAA,OAAA,GAA0B,SAA1B,EACA,QAAA,IAAA,GAA0B,MAA1B,EACA,QAAA,GAAA,GAA0B,KAA1B,EACA,QAAA,GAAA,GAA0B,KAA1B,EACA,QAAA,IAAA,GAA0B,MAA1B,EACA,QAAA,MAAA,GAA0B,QAA1B,EACA,QAAA,KAAA,GAA0B,OAA1B,EACA,QAAA,OAAA,GAA0B,SAA1B","file":"System/Net/Http/HttpMethod.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based on: https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html\n */\n\"use strict\";\nexports.OPTIONS = 'OPTIONS', exports.HEAD = 'HEAD', exports.GET = 'GET', exports.PUT = 'PUT', exports.POST = 'POST', exports.DELETE = 'DELETE', exports.TRACE = 'TRACE', exports.CONNECT = 'CONNECT';\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based on: https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html\r\n */\r\n\r\n///\r\n\r\nexport const\r\n\tOPTIONS:HttpMethodValue = 'OPTIONS',\r\n\tHEAD:HttpMethodValue = 'HEAD',\r\n\tGET:HttpMethodValue = 'GET',\r\n\tPUT:HttpMethodValue = 'PUT',\r\n\tPOST:HttpMethodValue = 'POST',\r\n\tDELETE:HttpMethodValue = 'DELETE',\r\n\tTRACE:HttpMethodValue = 'TRACE',\r\n\tCONNECT:HttpMethodValue = 'CONNECT';\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Net/Http/HttpMethod.js","System/Net/Http/HttpMethod.ts"],"names":[],"mappings":";;;;;AAKA;;ACKC,QAAA,OAAA,GAA6B,SAA7B,EACA,QAAA,IAAA,GAA6B,MAA7B,EACA,QAAA,GAAA,GAA6B,KAA7B,EACA,QAAA,GAAA,GAA6B,KAA7B,EACA,QAAA,IAAA,GAA6B,MAA7B,EACA,QAAA,MAAA,GAA6B,QAA7B,EACA,QAAA,KAAA,GAA6B,OAA7B,EACA,QAAA,OAAA,GAA6B,SAA7B","file":"System/Net/Http/HttpMethod.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based on: https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html\n */\n\"use strict\";\nexports.OPTIONS = 'OPTIONS', exports.HEAD = 'HEAD', exports.GET = 'GET', exports.PUT = 'PUT', exports.POST = 'POST', exports.DELETE = 'DELETE', exports.TRACE = 'TRACE', exports.CONNECT = 'CONNECT';\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based on: https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html\r\n */\r\n\r\n\r\nimport * as HttpMethod from \"./HttpMethodValue\";\r\n\r\nexport const\r\n\tOPTIONS:HttpMethod.Options = 'OPTIONS',\r\n\tHEAD:HttpMethod.Head = 'HEAD',\r\n\tGET:HttpMethod.Get = 'GET',\r\n\tPUT:HttpMethod.Put = 'PUT',\r\n\tPOST:HttpMethod.Post = 'POST',\r\n\tDELETE:HttpMethod.Delete = 'DELETE',\r\n\tTRACE:HttpMethod.Trace = 'TRACE',\r\n\tCONNECT:HttpMethod.Connect = 'CONNECT';\r\n"]} \ No newline at end of file diff --git a/dist/commonjs/System/Net/Http/HttpRequestFactory.d.ts b/dist/commonjs/System/Net/Http/HttpRequestFactory.d.ts index 212c88af..87b2581d 100644 --- a/dist/commonjs/System/Net/Http/HttpRequestFactory.d.ts +++ b/dist/commonjs/System/Net/Http/HttpRequestFactory.d.ts @@ -1,19 +1,21 @@ -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import Uri from "../../Uri/Uri"; -import DisposableBase from "../../Disposable/DisposableBase"; +import * as QueryParam from "../../Uri/QueryParam"; +import { DisposableBase } from "../../Disposable/DisposableBase"; +import { HttpMethodValue } from "./HttpMethodValue"; +import { Uri } from "../../Uri/Uri"; +import { IUri } from "../../Uri/IUri"; +import { IHttpRequestAdapter } from "./IHttpRequestAdapter"; +import { IPromise } from "../../Promises/IPromise"; export default class HttpRequestFactory extends DisposableBase { private _http; protected _uriDefaults: Uri; constructor(_http: IHttpRequestAdapter, uriDefaults?: string | IUri); protected _onDispose(): void; uri(uri: string | IUri): HttpRequestFactory; - params(params: QueryParamsConvertible): HttpRequestFactory; + params(params: QueryParam.Convertible): HttpRequestFactory; request(method: HttpMethodValue, data?: any): IPromise; get(): IPromise; put(): IPromise; diff --git a/dist/commonjs/System/Net/Http/HttpRequestFactory.js b/dist/commonjs/System/Net/Http/HttpRequestFactory.js index 14355fb3..14157b53 100644 --- a/dist/commonjs/System/Net/Http/HttpRequestFactory.js +++ b/dist/commonjs/System/Net/Http/HttpRequestFactory.js @@ -2,7 +2,7 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; +"use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); @@ -13,12 +13,12 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var ArgumentNullException_1 = require("../../Exceptions/ArgumentNullException"); -var Uri_1 = require("../../Uri/Uri"); var DisposableBase_1 = require("../../Disposable/DisposableBase"); var HttpMethod_1 = require("./HttpMethod"); +var Uri_1 = require("../../Uri/Uri"); -var HttpRequestFactory = function (_DisposableBase_1$def) { - _inherits(HttpRequestFactory, _DisposableBase_1$def); +var HttpRequestFactory = function (_DisposableBase_1$Dis) { + _inherits(HttpRequestFactory, _DisposableBase_1$Dis); function HttpRequestFactory(_http, uriDefaults) { _classCallCheck(this, HttpRequestFactory); @@ -27,8 +27,8 @@ var HttpRequestFactory = function (_DisposableBase_1$def) { _this._http = _http; _this._disposableObjectName = 'HttpRequestFactory'; - if (!_http) throw new ArgumentNullException_1.default('_http'); - _this._uriDefaults = Uri_1.default.from(uriDefaults); + if (!_http) throw new ArgumentNullException_1.ArgumentNullException('_http'); + _this._uriDefaults = Uri_1.Uri.from(uriDefaults); return _this; } @@ -43,7 +43,7 @@ var HttpRequestFactory = function (_DisposableBase_1$def) { value: function uri(_uri) { var _ = this; _.throwIfDisposed(); - var u = Uri_1.default.from(_uri, _._uriDefaults); + var u = Uri_1.Uri.from(_uri, _._uriDefaults); return _._uriDefaults.equals(u) ? _ : new HttpRequestFactory(_._http, u); } }, { @@ -87,7 +87,7 @@ var HttpRequestFactory = function (_DisposableBase_1$def) { }]); return HttpRequestFactory; -}(DisposableBase_1.default); +}(DisposableBase_1.DisposableBase); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = HttpRequestFactory; diff --git a/dist/commonjs/System/Net/Http/HttpRequestFactory.js.map b/dist/commonjs/System/Net/Http/HttpRequestFactory.js.map index fb73ab87..d3761edb 100644 --- a/dist/commonjs/System/Net/Http/HttpRequestFactory.js.map +++ b/dist/commonjs/System/Net/Http/HttpRequestFactory.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Net/Http/HttpRequestFactory.ts","System/Net/Http/HttpRequestFactory.js"],"names":[],"mappings":";;;;AAQA;;;;;;;;;;AAEA,IAAA,0BAAA,QAAkC,wCAAlC,CAAA;AACA,IAAA,QAAA,QAAgB,eAAhB,CAAA;AACA,IAAA,mBAAA,QAA2B,iCAA3B,CAAA;AACA,IAAA,eAAA,QAAqC,cAArC,CAAA;;IAKA;;;AAKC,aALD,kBAKC,CACS,KADT,EAEC,WAFD,EAEyB;8BAP1B,oBAO0B;;2EAP1B,gCAO0B;;AADhB,cAAA,KAAA,GAAA,KAAA,CACgB;AAIxB,cAAK,qBAAL,GAA6B,oBAA7B,CAJwB;AAMxB,YAAG,CAAC,KAAD,EACF,MAAM,IAAI,wBAAA,OAAA,CAAsB,OAA1B,CAAN,CADD;AAGA,cAAK,YAAL,GAAoB,MAAA,OAAA,CAAI,IAAJ,CAAS,WAAT,CAApB,CATwB;;KAFzB;;iBALD;;qCAmBqB;AAGnB,iBAAK,KAAL,GAAa,IAAb,CAHmB;AAInB,iBAAK,YAAL,GAAoB,IAApB,CAJmB;;;;4BAOhB,MAAe;AAGlB,gBAAI,IAAI,IAAJ,CAHc;AAIlB,cAAE,eAAF,GAJkB;AAKlB,gBAAI,IAAI,MAAA,OAAA,CAAI,IAAJ,CAAS,IAAT,EAAc,EAAE,YAAF,CAAlB,CALc;AAMlB,mBAAO,EAAE,YAAF,CAAe,MAAf,CAAsB,CAAtB,IACJ,CADI,GAEJ,IAAI,kBAAJ,CAAuB,EAAE,KAAF,EAAS,CAAhC,CAFI,CANW;;;;+BAWZ,SAA6B;AAEnC,gBAAI,IAAI,IAAJ,CAF+B;AAGnC,cAAE,eAAF,GAHmC;AAInC,mBAAO,EAAE,GAAF,CAAM,EAAE,YAAF,CAAe,WAAf,CAA2B,OAA3B,CAAN,CAAP,CAJmC;;;;gCAOnB,QAAwB,MAAS;AAEjD,gBAAI,IAAI,IAAJ,CAF6C;AAGjD,cAAE,eAAF,GAHiD;AAIjD,mBAAO,EAAE,KAAF,CAAQ,OAAR,CAAgB;AACtB,wBAAQ,MAAR;AACA,qBAAK,EAAE,YAAF;AACL,sBAAM,IAAN;aAHM,CAAP,CAJiD;;;;8BAY/C;AAEF,mBAAO,KAAK,OAAL,CAAsB,aAAA,GAAA,CAA7B,CAFE;;;;8BAKA;AAEF,mBAAO,KAAK,OAAL,CAAsB,aAAA,GAAA,CAA7B,CAFE;;;;6BAKW,MAAQ;AAErB,mBAAO,KAAK,OAAL,CAAsB,aAAA,IAAA,EAAM,IAA5B,CAAP,CAFqB;;;aAKtB;kCAAQ;AAEP,mBAAO,KAAK,OAAL,CAAsB,aAAA,MAAA,CAA7B,CAFO;;;;WAvET;EAAgD,iBAAA,OAAA;;AAAhD,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ACwCA,QAAQ,OAAR,GAAkB,kBAAlB","file":"System/Net/Http/HttpRequestFactory.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport ArgumentNullException from \"../../Exceptions/ArgumentNullException\";\r\nimport Uri from \"../../Uri/Uri\";\r\nimport DisposableBase from \"../../Disposable/DisposableBase\";\r\nimport {GET, PUT, POST, DELETE} from \"./HttpMethod\";\r\n\r\n/**\r\n * This class exposes a factory for making requests to prepared uri and params.\r\n */\r\nexport default class HttpRequestFactory extends DisposableBase\r\n{\r\n\r\n\tprotected _uriDefaults:Uri;\r\n\r\n\tconstructor(\r\n\t\tprivate _http:IHttpRequestAdapter,\r\n\t\turiDefaults?:string|IUri)\r\n\t{\r\n\t\tsuper();\r\n\r\n\t\tthis._disposableObjectName = 'HttpRequestFactory';\r\n\r\n\t\tif(!_http)\r\n\t\t\tthrow new ArgumentNullException('_http');\r\n\r\n\t\tthis._uriDefaults = Uri.from(uriDefaults);\r\n\t}\r\n\r\n\tprotected _onDispose()\r\n\t{\r\n\t\t// super._onDispose(); // Not required for first level inheritance.\r\n\t\tthis._http = null;\r\n\t\tthis._uriDefaults = null;\r\n\t}\r\n\r\n\turi(uri:string|IUri):HttpRequestFactory\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\tvar u = Uri.from(uri, _._uriDefaults);\r\n\t\treturn _._uriDefaults.equals(u)\r\n\t\t\t? _\r\n\t\t\t: new HttpRequestFactory(_._http, u);\r\n\t}\r\n\r\n\tparams(params:QueryParamsConvertible):HttpRequestFactory\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\treturn _.uri(_._uriDefaults.updateQuery(params));\r\n\t}\r\n\r\n\trequest(method:HttpMethodValue, data?:any):IPromise\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\treturn _._http.request({\r\n\t\t\tmethod: method,\r\n\t\t\turi: _._uriDefaults,\r\n\t\t\tdata: data\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tget():IPromise\r\n\t{\r\n\t\treturn this.request(GET);\r\n\t}\r\n\r\n\tput():IPromise\r\n\t{\r\n\t\treturn this.request(PUT);\r\n\t}\r\n\r\n\tpost(data:any):IPromise\r\n\t{\r\n\t\treturn this.request(POST, data);\r\n\t}\r\n\r\n\t'delete'():IPromise\r\n\t{\r\n\t\treturn this.request(DELETE);\r\n\t}\r\n\r\n}\r\n","/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n'use strict';\nconst ArgumentNullException_1 = require(\"../../Exceptions/ArgumentNullException\");\nconst Uri_1 = require(\"../../Uri/Uri\");\nconst DisposableBase_1 = require(\"../../Disposable/DisposableBase\");\nconst HttpMethod_1 = require(\"./HttpMethod\");\nclass HttpRequestFactory extends DisposableBase_1.default {\n constructor(_http, uriDefaults) {\n super();\n this._http = _http;\n this._disposableObjectName = 'HttpRequestFactory';\n if (!_http)\n throw new ArgumentNullException_1.default('_http');\n this._uriDefaults = Uri_1.default.from(uriDefaults);\n }\n _onDispose() {\n this._http = null;\n this._uriDefaults = null;\n }\n uri(uri) {\n var _ = this;\n _.throwIfDisposed();\n var u = Uri_1.default.from(uri, _._uriDefaults);\n return _._uriDefaults.equals(u)\n ? _\n : new HttpRequestFactory(_._http, u);\n }\n params(params) {\n var _ = this;\n _.throwIfDisposed();\n return _.uri(_._uriDefaults.updateQuery(params));\n }\n request(method, data) {\n var _ = this;\n _.throwIfDisposed();\n return _._http.request({\n method: method,\n uri: _._uriDefaults,\n data: data\n });\n }\n get() {\n return this.request(HttpMethod_1.GET);\n }\n put() {\n return this.request(HttpMethod_1.PUT);\n }\n post(data) {\n return this.request(HttpMethod_1.POST, data);\n }\n 'delete'() {\n return this.request(HttpMethod_1.DELETE);\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = HttpRequestFactory;\n"]} \ No newline at end of file +{"version":3,"sources":["System/Net/Http/HttpRequestFactory.js","System/Net/Http/HttpRequestFactory.ts"],"names":[],"mappings":";;;;AAIA;;;;;;;;;;ACGA,IAAA,0BAAA,QAAoC,wCAApC,CAAA;AACA,IAAA,mBAAA,QAA6B,iCAA7B,CAAA;AAEA,IAAA,eAAA,QAAqC,cAArC,CAAA;AACA,IAAA,QAAA,QAAkB,eAAlB,CAAA;;IAQA;;;AAKC,aALD,kBAKC,CACS,KADT,EAEC,WAFD,EAEyB;8BAP1B,oBAO0B;;2EAP1B,gCAO0B;;AADhB,cAAA,KAAA,GAAA,KAAA,CACgB;AAIxB,cAAK,qBAAL,GAA6B,oBAA7B,CAJwB;AAMxB,YAAG,CAAC,KAAD,EACF,MAAM,IAAI,wBAAA,qBAAA,CAAsB,OAA1B,CAAN,CADD;AAGA,cAAK,YAAL,GAAoB,MAAA,GAAA,CAAI,IAAJ,CAAS,WAAT,CAApB,CATwB;;KAFzB;;iBALD;;qCAmBqB;AAGnB,iBAAK,KAAL,GAAa,IAAb,CAHmB;AAInB,iBAAK,YAAL,GAAoB,IAApB,CAJmB;;;;4BAOhB,MAAe;AAGlB,gBAAI,IAAI,IAAJ,CAHc;AAIlB,cAAE,eAAF,GAJkB;AAKlB,gBAAI,IAAI,MAAA,GAAA,CAAI,IAAJ,CAAS,IAAT,EAAc,EAAE,YAAF,CAAlB,CALc;AAMlB,mBAAO,EAAE,YAAF,CAAe,MAAf,CAAsB,CAAtB,IACJ,CADI,GAEJ,IAAI,kBAAJ,CAAuB,EAAE,KAAF,EAAS,CAAhC,CAFI,CANW;;;;+BAWZ,SAA6B;AAEnC,gBAAI,IAAI,IAAJ,CAF+B;AAGnC,cAAE,eAAF,GAHmC;AAInC,mBAAO,EAAE,GAAF,CAAM,EAAE,YAAF,CAAe,WAAf,CAA2B,OAA3B,CAAN,CAAP,CAJmC;;;;gCAOnB,QAAwB,MAAS;AAEjD,gBAAI,IAAI,IAAJ,CAF6C;AAGjD,cAAE,eAAF,GAHiD;AAIjD,mBAAO,EAAE,KAAF,CAAQ,OAAR,CAAgB;AACtB,wBAAQ,MAAR;AACA,qBAAK,EAAE,YAAF;AACL,sBAAM,IAAN;aAHM,CAAP,CAJiD;;;;8BAY/C;AAEF,mBAAO,KAAK,OAAL,CAAsB,aAAA,GAAA,CAA7B,CAFE;;;;8BAKA;AAEF,mBAAO,KAAK,OAAL,CAAsB,aAAA,GAAA,CAA7B,CAFE;;;;6BAKW,MAAQ;AAErB,mBAAO,KAAK,OAAL,CAAsB,aAAA,IAAA,EAAM,IAA5B,CAAP,CAFqB;;;aAKtB;kCAAQ;AAEP,mBAAO,KAAK,OAAL,CAAsB,aAAA,MAAA,CAA7B,CAFO;;;;WAvET;EAAgD,iBAAA,cAAA;;AAAhD,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADuCA,QAAQ,OAAR,GAAkB,kBAAlB","file":"System/Net/Http/HttpRequestFactory.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst ArgumentNullException_1 = require(\"../../Exceptions/ArgumentNullException\");\nconst DisposableBase_1 = require(\"../../Disposable/DisposableBase\");\nconst HttpMethod_1 = require(\"./HttpMethod\");\nconst Uri_1 = require(\"../../Uri/Uri\");\nclass HttpRequestFactory extends DisposableBase_1.DisposableBase {\n constructor(_http, uriDefaults) {\n super();\n this._http = _http;\n this._disposableObjectName = 'HttpRequestFactory';\n if (!_http)\n throw new ArgumentNullException_1.ArgumentNullException('_http');\n this._uriDefaults = Uri_1.Uri.from(uriDefaults);\n }\n _onDispose() {\n this._http = null;\n this._uriDefaults = null;\n }\n uri(uri) {\n var _ = this;\n _.throwIfDisposed();\n var u = Uri_1.Uri.from(uri, _._uriDefaults);\n return _._uriDefaults.equals(u)\n ? _\n : new HttpRequestFactory(_._http, u);\n }\n params(params) {\n var _ = this;\n _.throwIfDisposed();\n return _.uri(_._uriDefaults.updateQuery(params));\n }\n request(method, data) {\n var _ = this;\n _.throwIfDisposed();\n return _._http.request({\n method: method,\n uri: _._uriDefaults,\n data: data\n });\n }\n get() {\n return this.request(HttpMethod_1.GET);\n }\n put() {\n return this.request(HttpMethod_1.PUT);\n }\n post(data) {\n return this.request(HttpMethod_1.POST, data);\n }\n 'delete'() {\n return this.request(HttpMethod_1.DELETE);\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = HttpRequestFactory;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport * as QueryParam from \"../../Uri/QueryParam\";\r\nimport {ArgumentNullException} from \"../../Exceptions/ArgumentNullException\";\r\nimport {DisposableBase} from \"../../Disposable/DisposableBase\";\r\nimport {HttpMethodValue} from \"./HttpMethodValue\";\r\nimport {GET, PUT, POST, DELETE} from \"./HttpMethod\";\r\nimport {Uri} from \"../../Uri/Uri\";\r\nimport {IUri} from \"../../Uri/IUri\";\r\nimport {IHttpRequestAdapter} from \"./IHttpRequestAdapter\";\r\nimport {IPromise} from \"../../Promises/IPromise\";\r\n\r\n/**\r\n * This class exposes a factory for making requests to prepared uri and params.\r\n */\r\nexport default class HttpRequestFactory extends DisposableBase\r\n{\r\n\r\n\tprotected _uriDefaults:Uri;\r\n\r\n\tconstructor(\r\n\t\tprivate _http:IHttpRequestAdapter,\r\n\t\turiDefaults?:string|IUri)\r\n\t{\r\n\t\tsuper();\r\n\r\n\t\tthis._disposableObjectName = 'HttpRequestFactory';\r\n\r\n\t\tif(!_http)\r\n\t\t\tthrow new ArgumentNullException('_http');\r\n\r\n\t\tthis._uriDefaults = Uri.from(uriDefaults);\r\n\t}\r\n\r\n\tprotected _onDispose()\r\n\t{\r\n\t\t// super._onDispose(); // Not required for first level inheritance.\r\n\t\tthis._http = null;\r\n\t\tthis._uriDefaults = null;\r\n\t}\r\n\r\n\turi(uri:string|IUri):HttpRequestFactory\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\tvar u = Uri.from(uri, _._uriDefaults);\r\n\t\treturn _._uriDefaults.equals(u)\r\n\t\t\t? _\r\n\t\t\t: new HttpRequestFactory(_._http, u);\r\n\t}\r\n\r\n\tparams(params:QueryParam.Convertible):HttpRequestFactory\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\treturn _.uri(_._uriDefaults.updateQuery(params));\r\n\t}\r\n\r\n\trequest(method:HttpMethodValue, data?:any):IPromise\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\treturn _._http.request({\r\n\t\t\tmethod: method,\r\n\t\t\turi: _._uriDefaults,\r\n\t\t\tdata: data\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tget():IPromise\r\n\t{\r\n\t\treturn this.request(GET);\r\n\t}\r\n\r\n\tput():IPromise\r\n\t{\r\n\t\treturn this.request(PUT);\r\n\t}\r\n\r\n\tpost(data:any):IPromise\r\n\t{\r\n\t\treturn this.request(POST, data);\r\n\t}\r\n\r\n\t'delete'():IPromise\r\n\t{\r\n\t\treturn this.request(DELETE);\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/commonjs/System/Observable/ObservableBase.d.ts b/dist/commonjs/System/Observable/ObservableBase.d.ts index 050d9f79..e45e3351 100644 --- a/dist/commonjs/System/Observable/ObservableBase.d.ts +++ b/dist/commonjs/System/Observable/ObservableBase.d.ts @@ -1,13 +1,13 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Based upon .NET source. * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ -import SubscribableBase from "./SubscribableBase"; -declare abstract class ObservableBase extends SubscribableBase> implements IObservable { +import { SubscribableBase } from "./SubscribableBase"; +import { IObservable } from "./IObservable"; +import { IObserver } from "./IObserver"; +export declare abstract class ObservableBase extends SubscribableBase> implements IObservable { protected _onNext(value: T): void; protected _onError(error: Error): void; protected _onCompleted(): void; diff --git a/dist/commonjs/System/Observable/ObservableBase.js b/dist/commonjs/System/Observable/ObservableBase.js index 867abb66..fb4a9cae 100644 --- a/dist/commonjs/System/Observable/ObservableBase.js +++ b/dist/commonjs/System/Observable/ObservableBase.js @@ -4,7 +4,7 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ -'use strict'; +"use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); @@ -16,8 +16,8 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function" var SubscribableBase_1 = require("./SubscribableBase"); -var ObservableBase = function (_SubscribableBase_1$d) { - _inherits(ObservableBase, _SubscribableBase_1$d); +var ObservableBase = function (_SubscribableBase_1$S) { + _inherits(ObservableBase, _SubscribableBase_1$S); function ObservableBase() { _classCallCheck(this, ObservableBase); @@ -26,21 +26,21 @@ var ObservableBase = function (_SubscribableBase_1$d) { } _createClass(ObservableBase, [{ - key: '_onNext', + key: "_onNext", value: function _onNext(value) { processAction(this._getSubscribers(), function (s) { s.onNext && s.onNext(value); }); } }, { - key: '_onError', + key: "_onError", value: function _onError(error) { processAction(this._getSubscribers(), function (s) { s.onError && s.onError(error); }); } }, { - key: '_onCompleted', + key: "_onCompleted", value: function _onCompleted() { processAction(this._unsubscribeAll(true), function (s) { s.onCompleted && s.onCompleted(); @@ -49,8 +49,9 @@ var ObservableBase = function (_SubscribableBase_1$d) { }]); return ObservableBase; -}(SubscribableBase_1.default); +}(SubscribableBase_1.SubscribableBase); +exports.ObservableBase = ObservableBase; var OBSERVER_ERROR_MESSAGE = 'One or more observers had errors when attempting to pass information.'; function processAction(observers, handler) { var observersErrors = null; diff --git a/dist/commonjs/System/Observable/ObservableBase.js.map b/dist/commonjs/System/Observable/ObservableBase.js.map index 3700d10a..75bd1ef0 100644 --- a/dist/commonjs/System/Observable/ObservableBase.js.map +++ b/dist/commonjs/System/Observable/ObservableBase.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Observable/ObservableBase.ts","System/Observable/ObservableBase.js"],"names":[],"mappings":";;;;;;AASA;;;;;;;;;;AAEA,IAAA,qBAAA,QAA6B,oBAA7B,CAAA;;IAIA;;;;;;;;;;;gCAKmB,OAAO;AAExB,0BACC,KAAK,eAAL,EADD,EAEC,aAAC;AAAM,kBAAE,MAAF,IAAY,EAAE,MAAF,CAAS,KAAT,CAAZ,CAAN;aAAD,CAFD,CAFwB;;;;iCAQN,OAAW;AAE7B,0BACC,KAAK,eAAL,EADD,EAEC,aAAC;AAAM,kBAAE,OAAF,IAAa,EAAE,OAAF,CAAU,KAAV,CAAb,CAAN;aAAD,CAFD,CAF6B;;;;uCAQR;AAErB,0BACC,KAAK,eAAL,CAAqB,IAArB,CADD,EAEC,aAAC;AAAM,kBAAE,WAAF,IAAiB,EAAE,WAAF,EAAjB,CAAN;aAAD,CAFD,CAFqB;;;;WArBvB;EACQ,mBAAA,OAAA;;AA6BR,IAAM,yBAAgC,uEAAhC;AAEN,SAAA,aAAA,CACC,SADD,EAEC,OAFD,EAE+B;AAE9B,QAAI,kBAAmD,IAAnD,CAF0B;;;;;;AAI9B,6BAAa,mCAAb,oGACA;gBADQ,gBACR;;AACC,gBACA;AACC,wBAAQ,CAAR,EADD;aADA,CAIA,OAAM,EAAN,EACA;AACC,kCAAkB,mBAAmB,EAAnB,CADnB;AAGC,gCAAgB,IAAhB,CAAqB,EAAC,UAAU,CAAV,EAAa,IAAI,EAAJ,EAAnC,EAHD;aADA;SAND;;;;;;;;;;;;;;KAJ8B;;AAkB9B,cAAU,MAAV,GAAmB,CAAnB,CAlB8B;AAoB9B,QAAG,mBAAmB,gBAAgB,MAAhB,EACtB;AACC,YAAG,WAAW,QAAQ,KAAR,EACb,QAAQ,KAAR,CAAc,sBAAd,EAAsC,eAAtC,EADD,KAEK,MAAM;AACV,qBAAS,sBAAT;AACA,oBAAQ,eAAR;SAFI,CAFL;KAFD;CAtBD;AAkCA,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ACtCA,QAAQ,OAAR,GDsCe,cCtCf","file":"System/Observable/ObservableBase.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based upon .NET source.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\r\n */\r\n\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport SubscribableBase from \"./SubscribableBase\";\r\n\r\n// Can be used as a base class, mixin, or simply reference on how to implement the pattern.\r\n\r\nabstract class ObservableBase\r\nextends SubscribableBase>\r\nimplements IObservable\r\n{\r\n\r\n\tprotected _onNext(value:T):void\r\n\t{\r\n\t\tprocessAction(\r\n\t\t\tthis._getSubscribers(),\r\n\t\t\ts => { s.onNext && s.onNext(value); }\r\n\t\t);\r\n\t}\r\n\r\n\tprotected _onError(error:Error):void\r\n\t{\r\n\t\tprocessAction(\r\n\t\t\tthis._getSubscribers(),\r\n\t\t\ts => { s.onError && s.onError(error); }\r\n\t\t);\r\n\t}\r\n\r\n\tprotected _onCompleted():void\r\n\t{\r\n\t\tprocessAction(\r\n\t\t\tthis._unsubscribeAll(true),\r\n\t\t\ts => { s.onCompleted && s.onCompleted(); }\r\n\t\t);\r\n\t}\r\n}\r\n\r\nconst OBSERVER_ERROR_MESSAGE:string = 'One or more observers had errors when attempting to pass information.';\r\n\r\nfunction processAction(\r\n\tobservers:IObserver[],\r\n\thandler:(s:IObserver)=>void)\r\n{\r\n\tvar observersErrors:{observer:IObserver,ex:any}[] = null;\r\n\r\n\tfor(let s of observers)\r\n\t{\r\n\t\ttry\r\n\t\t{\r\n\t\t\thandler(s);\r\n\t\t}\r\n\t\tcatch(ex)\r\n\t\t{\r\n\t\t\tobserversErrors = observersErrors || [];\r\n\t\t\t// Don't let one error prevent others from recieving information.\r\n\t\t\tobserversErrors.push({observer: s, ex: ex});\r\n\t\t}\r\n\t}\r\n\r\n\tobservers.length = 0;\r\n\r\n\tif(observersErrors && observersErrors.length)\r\n\t{\r\n\t\tif(console && console.error)\r\n\t\t\tconsole.error(OBSERVER_ERROR_MESSAGE, observersErrors);\r\n\t\telse throw {\r\n\t\t\tmessage: OBSERVER_ERROR_MESSAGE,\r\n\t\t\terrors: observersErrors\r\n\t\t};\r\n\t}\r\n\r\n}\r\n\r\nexport default ObservableBase;","/*!\n * @author electricessence / https://github.com/electricessence/\n * Based upon .NET source.\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\n */\n'use strict';\nconst SubscribableBase_1 = require(\"./SubscribableBase\");\nclass ObservableBase extends SubscribableBase_1.default {\n _onNext(value) {\n processAction(this._getSubscribers(), s => { s.onNext && s.onNext(value); });\n }\n _onError(error) {\n processAction(this._getSubscribers(), s => { s.onError && s.onError(error); });\n }\n _onCompleted() {\n processAction(this._unsubscribeAll(true), s => { s.onCompleted && s.onCompleted(); });\n }\n}\nconst OBSERVER_ERROR_MESSAGE = 'One or more observers had errors when attempting to pass information.';\nfunction processAction(observers, handler) {\n var observersErrors = null;\n for (let s of observers) {\n try {\n handler(s);\n }\n catch (ex) {\n observersErrors = observersErrors || [];\n observersErrors.push({ observer: s, ex: ex });\n }\n }\n observers.length = 0;\n if (observersErrors && observersErrors.length) {\n if (console && console.error)\n console.error(OBSERVER_ERROR_MESSAGE, observersErrors);\n else\n throw {\n message: OBSERVER_ERROR_MESSAGE,\n errors: observersErrors\n };\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = ObservableBase;\n"]} \ No newline at end of file +{"version":3,"sources":["System/Observable/ObservableBase.js","System/Observable/ObservableBase.ts"],"names":[],"mappings":";;;;;;AAMA;;;;;;;;;;ACEA,IAAA,qBAAA,QAA+B,oBAA/B,CAAA;;IAMA;;;;;;;;;;;gCAImB,OAAO;AAExB,0BACC,KAAK,eAAL,EADD,EAEC,aAAC;AAAM,kBAAE,MAAF,IAAY,EAAE,MAAF,CAAS,KAAT,CAAZ,CAAN;aAAD,CAFD,CAFwB;;;;iCAQN,OAAW;AAE7B,0BACC,KAAK,eAAL,EADD,EAEC,aAAC;AAAM,kBAAE,OAAF,IAAa,EAAE,OAAF,CAAU,KAAV,CAAb,CAAN;aAAD,CAFD,CAF6B;;;;uCAQR;AAErB,0BACC,KAAK,eAAL,CAAqB,IAArB,CADD,EAEC,aAAC;AAAM,kBAAE,WAAF,IAAiB,EAAE,WAAF,EAAjB,CAAN;aAAD,CAFD,CAFqB;;;;WApBvB;EACQ,mBAAA,gBAAA;;AADc,QAAA,cAAA,GAAc,cAAd;AA6BtB,IAAM,yBAAgC,uEAAhC;AAEN,SAAA,aAAA,CACC,SADD,EAEC,OAFD,EAE+B;AAE9B,QAAI,kBAAmD,IAAnD,CAF0B;;;;;;AAI9B,6BAAa,mCAAb,oGACA;gBADQ,gBACR;;AACC,gBACA;AACC,wBAAQ,CAAR,EADD;aADA,CAIA,OAAM,EAAN,EACA;AACC,kCAAkB,mBAAmB,EAAnB,CADnB;AAGC,gCAAgB,IAAhB,CAAqB,EAAC,UAAU,CAAV,EAAa,IAAI,EAAJ,EAAnC,EAHD;aADA;SAND;;;;;;;;;;;;;;KAJ8B;;AAkB9B,cAAU,MAAV,GAAmB,CAAnB,CAlB8B;AAoB9B,QAAG,mBAAmB,gBAAgB,MAAhB,EACtB;AACC,YAAG,WAAW,QAAQ,KAAR,EACb,QAAQ,KAAR,CAAc,sBAAd,EAAsC,eAAtC,EADD,KAEK,MAAM;AACV,qBAAS,sBAAT;AACA,oBAAQ,eAAR;SAFI,CAFL;KAFD;CAtBD;AAkCA,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADnCA,QAAQ,OAAR,GCmCe,cDnCf","file":"System/Observable/ObservableBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based upon .NET source.\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\n */\n\"use strict\";\nconst SubscribableBase_1 = require(\"./SubscribableBase\");\nclass ObservableBase extends SubscribableBase_1.SubscribableBase {\n _onNext(value) {\n processAction(this._getSubscribers(), s => { s.onNext && s.onNext(value); });\n }\n _onError(error) {\n processAction(this._getSubscribers(), s => { s.onError && s.onError(error); });\n }\n _onCompleted() {\n processAction(this._unsubscribeAll(true), s => { s.onCompleted && s.onCompleted(); });\n }\n}\nexports.ObservableBase = ObservableBase;\nconst OBSERVER_ERROR_MESSAGE = 'One or more observers had errors when attempting to pass information.';\nfunction processAction(observers, handler) {\n var observersErrors = null;\n for (let s of observers) {\n try {\n handler(s);\n }\n catch (ex) {\n observersErrors = observersErrors || [];\n observersErrors.push({ observer: s, ex: ex });\n }\n }\n observers.length = 0;\n if (observersErrors && observersErrors.length) {\n if (console && console.error)\n console.error(OBSERVER_ERROR_MESSAGE, observersErrors);\n else\n throw {\n message: OBSERVER_ERROR_MESSAGE,\n errors: observersErrors\n };\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = ObservableBase;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based upon .NET source.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\r\n */\r\n\r\n\r\nimport {SubscribableBase} from \"./SubscribableBase\";\r\nimport {IObservable} from \"./IObservable\";\r\nimport {IObserver} from \"./IObserver\";\r\n\r\n// Can be used as a base class, mixin, or simply reference on how to implement the pattern.\r\n\r\nexport abstract class ObservableBase\r\nextends SubscribableBase> implements IObservable\r\n{\r\n\r\n\tprotected _onNext(value:T):void\r\n\t{\r\n\t\tprocessAction(\r\n\t\t\tthis._getSubscribers(),\r\n\t\t\ts => { s.onNext && s.onNext(value); }\r\n\t\t);\r\n\t}\r\n\r\n\tprotected _onError(error:Error):void\r\n\t{\r\n\t\tprocessAction(\r\n\t\t\tthis._getSubscribers(),\r\n\t\t\ts => { s.onError && s.onError(error); }\r\n\t\t);\r\n\t}\r\n\r\n\tprotected _onCompleted():void\r\n\t{\r\n\t\tprocessAction(\r\n\t\t\tthis._unsubscribeAll(true),\r\n\t\t\ts => { s.onCompleted && s.onCompleted(); }\r\n\t\t);\r\n\t}\r\n}\r\n\r\nconst OBSERVER_ERROR_MESSAGE:string = 'One or more observers had errors when attempting to pass information.';\r\n\r\nfunction processAction(\r\n\tobservers:IObserver[],\r\n\thandler:(s:IObserver)=>void)\r\n{\r\n\tvar observersErrors:{observer:IObserver,ex:any}[] = null;\r\n\r\n\tfor(let s of observers)\r\n\t{\r\n\t\ttry\r\n\t\t{\r\n\t\t\thandler(s);\r\n\t\t}\r\n\t\tcatch(ex)\r\n\t\t{\r\n\t\t\tobserversErrors = observersErrors || [];\r\n\t\t\t// Don't let one error prevent others from recieving information.\r\n\t\t\tobserversErrors.push({observer: s, ex: ex});\r\n\t\t}\r\n\t}\r\n\r\n\tobservers.length = 0;\r\n\r\n\tif(observersErrors && observersErrors.length)\r\n\t{\r\n\t\tif(console && console.error)\r\n\t\t\tconsole.error(OBSERVER_ERROR_MESSAGE, observersErrors);\r\n\t\telse throw {\r\n\t\t\tmessage: OBSERVER_ERROR_MESSAGE,\r\n\t\t\terrors: observersErrors\r\n\t\t};\r\n\t}\r\n\r\n}\r\n\r\nexport default ObservableBase;"]} \ No newline at end of file diff --git a/dist/commonjs/System/Observable/ObservableNodeBase.d.ts b/dist/commonjs/System/Observable/ObservableNodeBase.d.ts index 420a0dbc..25d83469 100644 --- a/dist/commonjs/System/Observable/ObservableNodeBase.d.ts +++ b/dist/commonjs/System/Observable/ObservableNodeBase.d.ts @@ -1,5 +1,3 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Based upon .NET source. @@ -7,8 +5,10 @@ * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ import ObservableBase from "./ObservableBase"; -export default class ObservableNodeBase extends ObservableBase implements IObserver { +import { IObserver } from "./IObserver"; +export declare class ObservableNodeBase extends ObservableBase implements IObserver { onNext(value: T): void; onError(error: Error): void; onCompleted(): void; } +export default ObservableNodeBase; diff --git a/dist/commonjs/System/Observable/ObservableNodeBase.js b/dist/commonjs/System/Observable/ObservableNodeBase.js index ea495627..24dfcda1 100644 --- a/dist/commonjs/System/Observable/ObservableNodeBase.js +++ b/dist/commonjs/System/Observable/ObservableNodeBase.js @@ -4,7 +4,7 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ -'use strict'; +"use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); @@ -45,6 +45,7 @@ var ObservableNodeBase = function (_ObservableBase_1$def) { return ObservableNodeBase; }(ObservableBase_1.default); +exports.ObservableNodeBase = ObservableNodeBase; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = ObservableNodeBase; //# sourceMappingURL=ObservableNodeBase.js.map diff --git a/dist/commonjs/System/Observable/ObservableNodeBase.js.map b/dist/commonjs/System/Observable/ObservableNodeBase.js.map index d76498d9..91d5d990 100644 --- a/dist/commonjs/System/Observable/ObservableNodeBase.js.map +++ b/dist/commonjs/System/Observable/ObservableNodeBase.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Observable/ObservableNodeBase.ts","System/Observable/ObservableNodeBase.js"],"names":[],"mappings":";;;;;;AASA;;;;;;;;;;AAEA,IAAA,mBAAA,QAA2B,kBAA3B,CAAA;;IAGA;;;;;;;;;;;+BAMQ,OAAO;AAEb,iBAAK,OAAL,CAAa,KAAb,EAFa;;;;gCAKN,OAAW;AAElB,iBAAK,QAAL,CAAc,KAAd,EAFkB;;;;sCAKR;AAEV,iBAAK,YAAL,GAFU;;;;WAhBZ;EAEQ,iBAAA,OAAA;;AAFR,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ACMA,QAAQ,OAAR,GAAkB,kBAAlB","file":"System/Observable/ObservableNodeBase.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based upon .NET source.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\r\n */\r\n\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport ObservableBase from \"./ObservableBase\";\r\n\r\n// Can be used as a base class, mixin, or simply reference on how to implement the pattern.\r\nexport default\r\nclass ObservableNodeBase\r\nextends ObservableBase\r\nimplements IObserver\r\n{\r\n\r\n\tonNext(value:T):void\r\n\t{\r\n\t\tthis._onNext(value);\r\n\t}\r\n\r\n\tonError(error:Error):void\r\n\t{\r\n\t\tthis._onError(error);\r\n\t}\r\n\r\n\tonCompleted():void\r\n\t{\r\n\t\tthis._onCompleted();\r\n\t}\r\n}\r\n","/*!\n * @author electricessence / https://github.com/electricessence/\n * Based upon .NET source.\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\n */\n'use strict';\nconst ObservableBase_1 = require(\"./ObservableBase\");\nclass ObservableNodeBase extends ObservableBase_1.default {\n onNext(value) {\n this._onNext(value);\n }\n onError(error) {\n this._onError(error);\n }\n onCompleted() {\n this._onCompleted();\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = ObservableNodeBase;\n"]} \ No newline at end of file +{"version":3,"sources":["System/Observable/ObservableNodeBase.js","System/Observable/ObservableNodeBase.ts"],"names":[],"mappings":";;;;;;AAMA;;;;;;;;;;ACEA,IAAA,mBAAA,QAA2B,kBAA3B,CAAA;;IAGA;;;;;;;;;;;+BAKQ,OAAO;AAEb,iBAAK,OAAL,CAAa,KAAb,EAFa;;;;gCAKN,OAAW;AAElB,iBAAK,QAAL,CAAc,KAAd,EAFkB;;;;sCAKR;AAEV,iBAAK,YAAL,GAFU;;;;WAfZ;EACQ,iBAAA,OAAA;;AADK,QAAA,kBAAA,GAAkB,kBAAlB;AAqBb,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADXA,QAAQ,OAAR,GCWe,kBDXf","file":"System/Observable/ObservableNodeBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based upon .NET source.\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\n */\n\"use strict\";\nconst ObservableBase_1 = require(\"./ObservableBase\");\nclass ObservableNodeBase extends ObservableBase_1.default {\n onNext(value) {\n this._onNext(value);\n }\n onError(error) {\n this._onError(error);\n }\n onCompleted() {\n this._onCompleted();\n }\n}\nexports.ObservableNodeBase = ObservableNodeBase;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = ObservableNodeBase;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based upon .NET source.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\r\n */\r\n\r\n// Can be used as a base class, mixin, or simply reference on how to implement the pattern.\r\nimport ObservableBase from \"./ObservableBase\";\r\nimport {IObserver} from \"./IObserver\";\r\n\r\nexport class ObservableNodeBase\r\nextends ObservableBase\r\nimplements IObserver\r\n{\r\n\r\n\tonNext(value:T):void\r\n\t{\r\n\t\tthis._onNext(value);\r\n\t}\r\n\r\n\tonError(error:Error):void\r\n\t{\r\n\t\tthis._onError(error);\r\n\t}\r\n\r\n\tonCompleted():void\r\n\t{\r\n\t\tthis._onCompleted();\r\n\t}\r\n}\r\n\r\nexport default ObservableNodeBase;"]} \ No newline at end of file diff --git a/dist/commonjs/System/Observable/SubscribableBase.d.ts b/dist/commonjs/System/Observable/SubscribableBase.d.ts index 5de54bfc..a292656a 100644 --- a/dist/commonjs/System/Observable/SubscribableBase.d.ts +++ b/dist/commonjs/System/Observable/SubscribableBase.d.ts @@ -1,12 +1,11 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Based upon .NET source. * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ -export default class SubscribableBase implements IDisposable { +import { IDisposable } from "../Disposable/IDisposable"; +export declare class SubscribableBase implements IDisposable { private __subscriptions; protected _getSubscribers(): TSubscriber[]; constructor(); @@ -17,3 +16,4 @@ export default class SubscribableBase implements IDisposable { unsubscribeAll(): void; dispose(): void; } +export default SubscribableBase; diff --git a/dist/commonjs/System/Observable/SubscribableBase.js b/dist/commonjs/System/Observable/SubscribableBase.js index d96f4544..fc6c127e 100644 --- a/dist/commonjs/System/Observable/SubscribableBase.js +++ b/dist/commonjs/System/Observable/SubscribableBase.js @@ -4,7 +4,7 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ -'use strict'; +"use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); @@ -18,7 +18,7 @@ var SubscribableBase = function () { function SubscribableBase() { _classCallCheck(this, SubscribableBase); - this.__subscriptions = new LinkedNodeList_1.default(); + this.__subscriptions = new LinkedNodeList_1.LinkedNodeList(); } _createClass(SubscribableBase, [{ @@ -41,7 +41,7 @@ var SubscribableBase = function () { var _ = this; var n = _._findEntryNode(subscriber); if (n) return n.value; - var s = new Subscription_1.default(_, subscriber); + var s = new Subscription_1.Subscription(_, subscriber); _.__subscriptions.addNode({ value: s }); return s; } @@ -70,7 +70,7 @@ var SubscribableBase = function () { return o.subscriber; }) : null; _s.clear(); - dispose_1.default.these(s); + dispose_1.dispose.these(s); return u; } }, { @@ -88,6 +88,7 @@ var SubscribableBase = function () { return SubscribableBase; }(); +exports.SubscribableBase = SubscribableBase; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = SubscribableBase; //# sourceMappingURL=SubscribableBase.js.map diff --git a/dist/commonjs/System/Observable/SubscribableBase.js.map b/dist/commonjs/System/Observable/SubscribableBase.js.map index d5e66507..cdae80a0 100644 --- a/dist/commonjs/System/Observable/SubscribableBase.js.map +++ b/dist/commonjs/System/Observable/SubscribableBase.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Observable/SubscribableBase.ts","System/Observable/SubscribableBase.js"],"names":[],"mappings":";;;;;;AASA;;;;;;AAEA,IAAA,mBAAA,QAA2B,+BAA3B,CAAA;AACA,IAAA,YAAA,QAAoB,uBAApB,CAAA;AACA,IAAA,iBAAA,QAAyB,gBAAzB,CAAA;;IAIA;AAeC,aAfD,gBAeC,GAAA;8BAfD,kBAeC;;AAEC,aAAK,eAAL,GACG,IAAI,iBAAA,OAAA,EADP,CAFD;KAAA;;iBAfD;;0CAQ0B;AAExB,mBAAO,KACL,eADK,CAEL,GAFK,CAED;uBAAM,KAAK,KAAL,IAAc,KAAK,KAAL,CAAW,UAAX;aAApB,CAFN,CAFwB;;;;uCAcxB,YAAsB;AAEtB,mBAAO,KACL,eADK,CAEL,IAFK,CAEA;uBAAG,EAAE,KAAF,CAAQ,UAAR,KAAqB,UAArB;aAAH,CAFP,CAFsB;;;;kCAQb,YAAsB;AAE/B,gBAAI,IAAI,IAAJ,CAF2B;AAG/B,gBAAI,IAAI,EAAE,cAAF,CAAiB,UAAjB,CAAJ,CAH2B;AAI/B,gBAAG,CAAH,EACC,OAAO,EAAE,KAAF,CADR;AAGA,gBAAI,IAAI,IAAI,eAAA,OAAA,CAAa,CAAjB,EAAoB,UAApB,CAAJ,CAP2B;AAQ/B,cAAE,eAAF,CAAkB,OAAlB,CAA0B,EAAC,OAAO,CAAP,EAA3B,EAR+B;AAU/B,mBAAO,CAAP,CAV+B;;;;oCAapB,YAAsB;AAEjC,gBAAI,IAAI,IAAJ,CAF6B;AAGjC,gBAAI,IAAI,EAAE,cAAF,CAAiB,UAAjB,CAAJ,CAH6B;AAIjC,gBAAG,CAAH,EACA;AACC,oBAAI,IAAI,EAAE,KAAF,CADT;AAEC,kBAAE,eAAF,CAAkB,UAAlB,CAA6B,CAA7B,EAFD;AAGC,kBAAE,OAAF,GAHD;aADA;;;;0CAQ0D;gBAAjC,0EAA4B,qBAAK;;AAE1D,gBAAI,IAAI,IAAJ;gBAAU,KAAK,EAAE,eAAF,CAFuC;AAG1D,gBAAI,IAAI,GAAG,GAAH,CAAO;uBAAG,EAAE,KAAF;aAAH,CAAX,CAHsD;AAI1D,gBAAI,IAAI,oBAAoB,EAAE,GAAF,CAAM;uBAAG,EAAE,UAAF;aAAH,CAA1B,GAA6C,IAA7C,CAJkD;AAK1D,eAAG,KAAH,GAL0D;AAO1D,sBAAA,OAAA,CAAQ,KAAR,CAAc,CAAd,EAP0D;AAS1D,mBAAO,CAAP,CAT0D;;;;yCAY7C;AAEb,iBAAK,eAAL,GAFa;;;;kCAKP;AAEN,iBAAK,eAAL,GAFM;;;;WAxER;;;AAAA,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;AC0CA,QAAQ,OAAR,GAAkB,gBAAlB","file":"System/Observable/SubscribableBase.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based upon .NET source.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\r\n */\r\n\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport LinkedNodeList from \"../Collections/LinkedNodeList\";\r\nimport dispose from \"../Disposable/dispose\";\r\nimport Subscription from \"./Subscription\";\r\n\r\n// This class is very much akin to a registry or 'Set' but uses an intermediary (Subscription) for releasing the registration.\r\n\r\nexport default\r\nclass SubscribableBase\r\nimplements IDisposable\r\n{\r\n\r\n\t// Use a linked list since it's much easier to remove a subscriber from anywhere in the list.\r\n\tprivate __subscriptions:LinkedNodeList>>;\r\n\r\n\tprotected _getSubscribers():TSubscriber[]\r\n\t{\r\n\t\treturn this\r\n\t\t\t.__subscriptions\r\n\t\t\t.map(node=>node.value && node.value.subscriber);\r\n\t}\r\n\r\n\tconstructor()\r\n\t{\r\n\t\tthis.__subscriptions\r\n\t\t\t= new LinkedNodeList>>();\r\n\t}\r\n\r\n\tprivate _findEntryNode(\r\n\t\tsubscriber:TSubscriber):ILinkedNodeWithValue>\r\n\t{\r\n\t\treturn this\r\n\t\t\t.__subscriptions\r\n\t\t\t.find(n=>n.value.subscriber===subscriber);\r\n\t}\r\n\r\n\t// It is possible that the same observer could call subscribe more than once and therefore we need to retain a single instance of the subscriber.\r\n\tsubscribe(subscriber:TSubscriber):IDisposable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar n = _._findEntryNode(subscriber);\r\n\t\tif(n) // Ensure only one instance of the existing subscription exists.\r\n\t\t\treturn n.value;\r\n\r\n\t\tvar s = new Subscription(_, subscriber);\r\n\t\t_.__subscriptions.addNode({value: s});\r\n\r\n\t\treturn s;\r\n\t}\r\n\r\n\tunsubscribe(subscriber:TSubscriber):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar n = _._findEntryNode(subscriber);\r\n\t\tif(n)\r\n\t\t{\r\n\t\t\tvar s = n.value;\r\n\t\t\t_.__subscriptions.removeNode(n);\r\n\t\t\ts.dispose(); // Prevent further usage of a dead subscription.\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _unsubscribeAll(returnSubscribers:boolean = false):TSubscriber[]\r\n\t{\r\n\t\tvar _ = this, _s = _.__subscriptions;\r\n\t\tvar s = _s.map(n=>n.value);\r\n\t\tvar u = returnSubscribers ? s.map(o=>o.subscriber) : null;\r\n\t\t_s.clear(); // Reset...\r\n\r\n\t\tdispose.these(s);\r\n\r\n\t\treturn u;\r\n\t}\r\n\r\n\tunsubscribeAll():void\r\n\t{\r\n\t\tthis._unsubscribeAll();\r\n\t}\r\n\r\n\tdispose()\r\n\t{\r\n\t\tthis._unsubscribeAll();\r\n\t}\r\n\r\n}\r\n","/*!\n * @author electricessence / https://github.com/electricessence/\n * Based upon .NET source.\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\n */\n'use strict';\nconst LinkedNodeList_1 = require(\"../Collections/LinkedNodeList\");\nconst dispose_1 = require(\"../Disposable/dispose\");\nconst Subscription_1 = require(\"./Subscription\");\nclass SubscribableBase {\n constructor() {\n this.__subscriptions\n = new LinkedNodeList_1.default();\n }\n _getSubscribers() {\n return this\n .__subscriptions\n .map(node => node.value && node.value.subscriber);\n }\n _findEntryNode(subscriber) {\n return this\n .__subscriptions\n .find(n => n.value.subscriber === subscriber);\n }\n subscribe(subscriber) {\n var _ = this;\n var n = _._findEntryNode(subscriber);\n if (n)\n return n.value;\n var s = new Subscription_1.default(_, subscriber);\n _.__subscriptions.addNode({ value: s });\n return s;\n }\n unsubscribe(subscriber) {\n var _ = this;\n var n = _._findEntryNode(subscriber);\n if (n) {\n var s = n.value;\n _.__subscriptions.removeNode(n);\n s.dispose();\n }\n }\n _unsubscribeAll(returnSubscribers = false) {\n var _ = this, _s = _.__subscriptions;\n var s = _s.map(n => n.value);\n var u = returnSubscribers ? s.map(o => o.subscriber) : null;\n _s.clear();\n dispose_1.default.these(s);\n return u;\n }\n unsubscribeAll() {\n this._unsubscribeAll();\n }\n dispose() {\n this._unsubscribeAll();\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = SubscribableBase;\n"]} \ No newline at end of file +{"version":3,"sources":["System/Observable/SubscribableBase.js","System/Observable/SubscribableBase.ts"],"names":[],"mappings":";;;;;;AAMA;;;;;;ACEA,IAAA,mBAAA,QAA6B,+BAA7B,CAAA;AACA,IAAA,YAAA,QAAsB,uBAAtB,CAAA;AACA,IAAA,iBAAA,QAA2B,gBAA3B,CAAA;;IAKA;AAcC,aAdD,gBAcC,GAAA;8BAdD,kBAcC;;AAEC,aAAK,eAAL,GACG,IAAI,iBAAA,cAAA,EADP,CAFD;KAAA;;iBAdD;;0CAO0B;AAExB,mBAAO,KACL,eADK,CAEL,GAFK,CAED;uBAAM,KAAK,KAAL,IAAc,KAAK,KAAL,CAAW,UAAX;aAApB,CAFN,CAFwB;;;;uCAcxB,YAAsB;AAEtB,mBAAO,KACL,eADK,CAEL,IAFK,CAEA;uBAAG,EAAE,KAAF,CAAQ,UAAR,KAAqB,UAArB;aAAH,CAFP,CAFsB;;;;kCAQb,YAAsB;AAE/B,gBAAI,IAAI,IAAJ,CAF2B;AAG/B,gBAAI,IAAI,EAAE,cAAF,CAAiB,UAAjB,CAAJ,CAH2B;AAI/B,gBAAG,CAAH,EACC,OAAO,EAAE,KAAF,CADR;AAGA,gBAAI,IAAI,IAAI,eAAA,YAAA,CAAa,CAAjB,EAAoB,UAApB,CAAJ,CAP2B;AAQ/B,cAAE,eAAF,CAAkB,OAAlB,CAA0B,EAAC,OAAO,CAAP,EAA3B,EAR+B;AAU/B,mBAAO,CAAP,CAV+B;;;;oCAapB,YAAsB;AAEjC,gBAAI,IAAI,IAAJ,CAF6B;AAGjC,gBAAI,IAAI,EAAE,cAAF,CAAiB,UAAjB,CAAJ,CAH6B;AAIjC,gBAAG,CAAH,EACA;AACC,oBAAI,IAAI,EAAE,KAAF,CADT;AAEC,kBAAE,eAAF,CAAkB,UAAlB,CAA6B,CAA7B,EAFD;AAGC,kBAAE,OAAF,GAHD;aADA;;;;0CAQ0D;gBAAjC,0EAA4B,qBAAK;;AAE1D,gBAAI,IAAI,IAAJ;gBAAU,KAAK,EAAE,eAAF,CAFuC;AAG1D,gBAAI,IAAI,GAAG,GAAH,CAAO;uBAAG,EAAE,KAAF;aAAH,CAAX,CAHsD;AAI1D,gBAAI,IAAI,oBAAoB,EAAE,GAAF,CAAM;uBAAG,EAAE,UAAF;aAAH,CAA1B,GAA6C,IAA7C,CAJkD;AAK1D,eAAG,KAAH,GAL0D;AAO1D,sBAAA,OAAA,CAAQ,KAAR,CAAc,CAAd,EAP0D;AAS1D,mBAAO,CAAP,CAT0D;;;;yCAY7C;AAEb,iBAAK,eAAL,GAFa;;;;kCAKP;AAEN,iBAAK,eAAL,GAFM;;;;WAvER;;;AAAa,QAAA,gBAAA,GAAgB,gBAAhB;AA8Eb,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADjCA,QAAQ,OAAR,GCiCe,gBDjCf","file":"System/Observable/SubscribableBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based upon .NET source.\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\n */\n\"use strict\";\nconst LinkedNodeList_1 = require(\"../Collections/LinkedNodeList\");\nconst dispose_1 = require(\"../Disposable/dispose\");\nconst Subscription_1 = require(\"./Subscription\");\nclass SubscribableBase {\n constructor() {\n this.__subscriptions\n = new LinkedNodeList_1.LinkedNodeList();\n }\n _getSubscribers() {\n return this\n .__subscriptions\n .map(node => node.value && node.value.subscriber);\n }\n _findEntryNode(subscriber) {\n return this\n .__subscriptions\n .find(n => n.value.subscriber === subscriber);\n }\n subscribe(subscriber) {\n var _ = this;\n var n = _._findEntryNode(subscriber);\n if (n)\n return n.value;\n var s = new Subscription_1.Subscription(_, subscriber);\n _.__subscriptions.addNode({ value: s });\n return s;\n }\n unsubscribe(subscriber) {\n var _ = this;\n var n = _._findEntryNode(subscriber);\n if (n) {\n var s = n.value;\n _.__subscriptions.removeNode(n);\n s.dispose();\n }\n }\n _unsubscribeAll(returnSubscribers = false) {\n var _ = this, _s = _.__subscriptions;\n var s = _s.map(n => n.value);\n var u = returnSubscribers ? s.map(o => o.subscriber) : null;\n _s.clear();\n dispose_1.dispose.these(s);\n return u;\n }\n unsubscribeAll() {\n this._unsubscribeAll();\n }\n dispose() {\n this._unsubscribeAll();\n }\n}\nexports.SubscribableBase = SubscribableBase;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = SubscribableBase;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based upon .NET source.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\r\n */\r\n\r\n\r\nimport {LinkedNodeList} from \"../Collections/LinkedNodeList\";\r\nimport {dispose} from \"../Disposable/dispose\";\r\nimport {Subscription} from \"./Subscription\";\r\nimport {ILinkedNodeWithValue} from \"../Collections/ILinkedListNode\";\r\nimport {IDisposable} from \"../Disposable/IDisposable\";\r\n\r\n// This class is very much akin to a registry or 'Set' but uses an intermediary (Subscription) for releasing the registration.\r\nexport class SubscribableBase\r\nimplements IDisposable\r\n{\r\n\r\n\t// Use a linked list since it's much easier to remove a subscriber from anywhere in the list.\r\n\tprivate __subscriptions:LinkedNodeList>>;\r\n\r\n\tprotected _getSubscribers():TSubscriber[]\r\n\t{\r\n\t\treturn this\r\n\t\t\t.__subscriptions\r\n\t\t\t.map(node=>node.value && node.value.subscriber);\r\n\t}\r\n\r\n\tconstructor()\r\n\t{\r\n\t\tthis.__subscriptions\r\n\t\t\t= new LinkedNodeList>>();\r\n\t}\r\n\r\n\tprivate _findEntryNode(\r\n\t\tsubscriber:TSubscriber):ILinkedNodeWithValue>\r\n\t{\r\n\t\treturn this\r\n\t\t\t.__subscriptions\r\n\t\t\t.find(n=>n.value.subscriber===subscriber);\r\n\t}\r\n\r\n\t// It is possible that the same observer could call subscribe more than once and therefore we need to retain a single instance of the subscriber.\r\n\tsubscribe(subscriber:TSubscriber):IDisposable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar n = _._findEntryNode(subscriber);\r\n\t\tif(n) // Ensure only one instance of the existing subscription exists.\r\n\t\t\treturn n.value;\r\n\r\n\t\tvar s = new Subscription(_, subscriber);\r\n\t\t_.__subscriptions.addNode({value: s});\r\n\r\n\t\treturn s;\r\n\t}\r\n\r\n\tunsubscribe(subscriber:TSubscriber):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar n = _._findEntryNode(subscriber);\r\n\t\tif(n)\r\n\t\t{\r\n\t\t\tvar s = n.value;\r\n\t\t\t_.__subscriptions.removeNode(n);\r\n\t\t\ts.dispose(); // Prevent further usage of a dead subscription.\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _unsubscribeAll(returnSubscribers:boolean = false):TSubscriber[]\r\n\t{\r\n\t\tvar _ = this, _s = _.__subscriptions;\r\n\t\tvar s = _s.map(n=>n.value);\r\n\t\tvar u = returnSubscribers ? s.map(o=>o.subscriber) : null;\r\n\t\t_s.clear(); // Reset...\r\n\r\n\t\tdispose.these(s);\r\n\r\n\t\treturn u;\r\n\t}\r\n\r\n\tunsubscribeAll():void\r\n\t{\r\n\t\tthis._unsubscribeAll();\r\n\t}\r\n\r\n\tdispose()\r\n\t{\r\n\t\tthis._unsubscribeAll();\r\n\t}\r\n\r\n}\r\n\r\nexport default SubscribableBase;\r\n"]} \ No newline at end of file diff --git a/dist/commonjs/System/Observable/Subscription.d.ts b/dist/commonjs/System/Observable/Subscription.d.ts index ad70893a..d39df22c 100644 --- a/dist/commonjs/System/Observable/Subscription.d.ts +++ b/dist/commonjs/System/Observable/Subscription.d.ts @@ -1,13 +1,12 @@ -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Based upon .NET source. * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ -export default class Subscription implements IDisposableAware { +import { IDisposableAware } from "../Disposable/IDisposableAware"; +import { ISubscribable } from "./ISubscribable"; +export declare class Subscription implements IDisposableAware { private _subscribable; private _subscriber; constructor(_subscribable: ISubscribable, _subscriber: T); @@ -15,3 +14,4 @@ export default class Subscription implements IDisposableAware { wasDisposed: boolean; dispose(): void; } +export default Subscription; diff --git a/dist/commonjs/System/Observable/Subscription.js b/dist/commonjs/System/Observable/Subscription.js index d3ca0c57..a1dd1f95 100644 --- a/dist/commonjs/System/Observable/Subscription.js +++ b/dist/commonjs/System/Observable/Subscription.js @@ -4,7 +4,7 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ -'use strict'; +"use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); @@ -20,7 +20,7 @@ var Subscription = function () { } _createClass(Subscription, [{ - key: 'dispose', + key: "dispose", value: function dispose() { var subscriber = this.subscriber; var subscribable = this._subscribable; @@ -31,12 +31,12 @@ var Subscription = function () { } } }, { - key: 'subscriber', + key: "subscriber", get: function get() { return this._subscriber; } }, { - key: 'wasDisposed', + key: "wasDisposed", get: function get() { return !this._subscribable || !this._subscriber; } @@ -45,6 +45,7 @@ var Subscription = function () { return Subscription; }(); +exports.Subscription = Subscription; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = Subscription; //# sourceMappingURL=Subscription.js.map diff --git a/dist/commonjs/System/Observable/Subscription.js.map b/dist/commonjs/System/Observable/Subscription.js.map index 26295c4e..dd712dfa 100644 --- a/dist/commonjs/System/Observable/Subscription.js.map +++ b/dist/commonjs/System/Observable/Subscription.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Observable/Subscription.ts","System/Observable/Subscription.js"],"names":[],"mappings":";;;;;;AAUA;;;;;;IAKA;AAGC,aAHD,YAGC,CACS,aADT,EAES,WAFT,EAEuB;8BALxB,cAKwB;;AADd,aAAA,aAAA,GAAA,aAAA,CACc;AAAd,aAAA,WAAA,GAAA,WAAA,CAAc;AAEtB,YAAI,CAAC,aAAD,IAAkB,CAAC,WAAD,EACrB,MAAM,6CAAN,CADD;KAJD;;iBAHD;;kCAmCQ;AAEN,gBAAI,aAAa,KAAK,UAAL,CAFX;AAGN,gBAAI,eAAe,KAAK,aAAL,CAHb;AAMN,iBAAK,WAAL,GAAmB,IAAnB,CANM;AAON,iBAAK,aAAL,GAAqB,IAArB,CAPM;AAUN,gBAAI,cAAc,YAAd,EACJ;AACC,6BAAa,WAAb,CAAyB,UAAzB,EADD;aADA;;;;4BAlCa;AACb,mBAAO,KAAK,WAAL,CADM;;;;4BAmBC;AAEd,mBAAO,CAAC,KAAK,aAAL,IAAsB,CAAC,KAAK,WAAL,CAFjB;;;;WA9BhB;;;AAAA,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ACgBA,QAAQ,OAAR,GAAkB,YAAlB","file":"System/Observable/Subscription.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based upon .NET source.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\r\n */\r\n\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n/**\r\n * A registration that an IObservable returns that can be disposed in order to cancel sending data to the observer.\r\n */\r\nexport default\r\nclass Subscription implements IDisposableAware\r\n{\r\n\tconstructor(\r\n\t\tprivate _subscribable: ISubscribable,\r\n\t\tprivate _subscriber: T)\r\n\t{\r\n\t\tif (!_subscribable || !_subscriber)\r\n\t\t\tthrow 'Subscribable and subscriber cannot be null.';\r\n\t}\r\n\r\n\tget subscriber():T {\r\n\t\treturn this._subscriber;\r\n\t}\r\n\r\n\t/*\r\n\t In the case where we could possibly have the following happen:\r\n\r\n\t var u = observable.subscribe(observer);\r\n\r\n\t ...\r\n\r\n\t u.dispose(); // Should only be allowed to unsubscribe once and then it's useless.\r\n\r\n\t // Resubscribing creates a new instance.\r\n\t var x = observable.subscribe(observer);\r\n\r\n\t u.dispose(); // Calling this again should do nothing and 'x' should still work.\r\n\t */\r\n\r\n\tget wasDisposed(): boolean\r\n\t{\r\n\t\treturn !this._subscribable || !this._subscriber;\r\n\t}\r\n\r\n\tdispose(): void\r\n\t{\r\n\t\tvar subscriber = this.subscriber;\r\n\t\tvar subscribable = this._subscribable;\r\n\r\n\t\t// Release the references. Will prevent potential unwanted recursion.\r\n\t\tthis._subscriber = null;\r\n\t\tthis._subscribable = null;\r\n\r\n\r\n\t\tif (subscriber && subscribable)\r\n\t\t{\r\n\t\t\tsubscribable.unsubscribe(subscriber);\r\n\t\t}\r\n\t}\r\n}\r\n","/*!\n * @author electricessence / https://github.com/electricessence/\n * Based upon .NET source.\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\n */\n'use strict';\nclass Subscription {\n constructor(_subscribable, _subscriber) {\n this._subscribable = _subscribable;\n this._subscriber = _subscriber;\n if (!_subscribable || !_subscriber)\n throw 'Subscribable and subscriber cannot be null.';\n }\n get subscriber() {\n return this._subscriber;\n }\n get wasDisposed() {\n return !this._subscribable || !this._subscriber;\n }\n dispose() {\n var subscriber = this.subscriber;\n var subscribable = this._subscribable;\n this._subscriber = null;\n this._subscribable = null;\n if (subscriber && subscribable) {\n subscribable.unsubscribe(subscriber);\n }\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Subscription;\n"]} \ No newline at end of file +{"version":3,"sources":["System/Observable/Subscription.js","System/Observable/Subscription.ts"],"names":[],"mappings":";;;;;;AAMA;;;;;;ICQA;AAEC,aAFD,YAEC,CACS,aADT,EAES,WAFT,EAEuB;8BAJxB,cAIwB;;AADd,aAAA,aAAA,GAAA,aAAA,CACc;AAAd,aAAA,WAAA,GAAA,WAAA,CAAc;AAEtB,YAAI,CAAC,aAAD,IAAkB,CAAC,WAAD,EACrB,MAAM,6CAAN,CADD;KAJD;;iBAFD;;kCAkCQ;AAEN,gBAAI,aAAa,KAAK,UAAL,CAFX;AAGN,gBAAI,eAAe,KAAK,aAAL,CAHb;AAMN,iBAAK,WAAL,GAAmB,IAAnB,CANM;AAON,iBAAK,aAAL,GAAqB,IAArB,CAPM;AAUN,gBAAI,cAAc,YAAd,EACJ;AACC,6BAAa,WAAb,CAAyB,UAAzB,EADD;aADA;;;;4BAlCa;AACb,mBAAO,KAAK,WAAL,CADM;;;;4BAmBC;AAEd,mBAAO,CAAC,KAAK,aAAL,IAAsB,CAAC,KAAK,WAAL,CAFjB;;;;WA7BhB;;;AAAa,QAAA,YAAA,GAAY,YAAZ;AAmDb,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADjCA,QAAQ,OAAR,GCiCe,YDjCf","file":"System/Observable/Subscription.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based upon .NET source.\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\n */\n\"use strict\";\nclass Subscription {\n constructor(_subscribable, _subscriber) {\n this._subscribable = _subscribable;\n this._subscriber = _subscriber;\n if (!_subscribable || !_subscriber)\n throw 'Subscribable and subscriber cannot be null.';\n }\n get subscriber() {\n return this._subscriber;\n }\n get wasDisposed() {\n return !this._subscribable || !this._subscriber;\n }\n dispose() {\n var subscriber = this.subscriber;\n var subscribable = this._subscribable;\n this._subscriber = null;\n this._subscribable = null;\n if (subscriber && subscribable) {\n subscribable.unsubscribe(subscriber);\n }\n }\n}\nexports.Subscription = Subscription;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Subscription;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based upon .NET source.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\r\n */\r\n\r\n\r\nimport {IDisposableAware} from \"../Disposable/IDisposableAware\";\r\nimport {ISubscribable} from \"./ISubscribable\"; // For compatibility with (let, const, function, class);\r\n\r\n/**\r\n * A registration that an IObservable returns that can be disposed in order to cancel sending data to the observer.\r\n */\r\nexport class Subscription implements IDisposableAware\r\n{\r\n\tconstructor(\r\n\t\tprivate _subscribable: ISubscribable,\r\n\t\tprivate _subscriber: T)\r\n\t{\r\n\t\tif (!_subscribable || !_subscriber)\r\n\t\t\tthrow 'Subscribable and subscriber cannot be null.';\r\n\t}\r\n\r\n\tget subscriber():T {\r\n\t\treturn this._subscriber;\r\n\t}\r\n\r\n\t/*\r\n\t In the case where we could possibly have the following happen:\r\n\r\n\t var u = observable.subscribe(observer);\r\n\r\n\t ...\r\n\r\n\t u.dispose(); // Should only be allowed to unsubscribe once and then it's useless.\r\n\r\n\t // Resubscribing creates a new instance.\r\n\t var x = observable.subscribe(observer);\r\n\r\n\t u.dispose(); // Calling this again should do nothing and 'x' should still work.\r\n\t */\r\n\r\n\tget wasDisposed(): boolean\r\n\t{\r\n\t\treturn !this._subscribable || !this._subscriber;\r\n\t}\r\n\r\n\tdispose(): void\r\n\t{\r\n\t\tvar subscriber = this.subscriber;\r\n\t\tvar subscribable = this._subscribable;\r\n\r\n\t\t// Release the references. Will prevent potential unwanted recursion.\r\n\t\tthis._subscriber = null;\r\n\t\tthis._subscribable = null;\r\n\r\n\r\n\t\tif (subscriber && subscribable)\r\n\t\t{\r\n\t\t\tsubscribable.unsubscribe(subscriber);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default Subscription;\r\n"]} \ No newline at end of file diff --git a/dist/commonjs/System/Serialization/Utility.d.ts b/dist/commonjs/System/Serialization/Utility.d.ts index f53d368c..c1308794 100644 --- a/dist/commonjs/System/Serialization/Utility.d.ts +++ b/dist/commonjs/System/Serialization/Utility.d.ts @@ -1,9 +1,9 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { ISerializable } from "./ISerializable"; +import { Primitive } from "../Primitive"; export declare function toString(value: Primitive | ISerializable, defaultForUnknown?: string): string; export declare function isSerializable(instance: any): instance is ISerializable; export declare function toPrimitive(value: string, caseInsensitive?: boolean, unknownHandler?: (v: string) => string): Primitive; diff --git a/dist/commonjs/System/Serialization/Utility.js b/dist/commonjs/System/Serialization/Utility.js index 0f0fbefd..2b06eed8 100644 --- a/dist/commonjs/System/Serialization/Utility.js +++ b/dist/commonjs/System/Serialization/Utility.js @@ -6,32 +6,32 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; -var Types_1 = require('../Types'); -var InvalidOperationException_1 = require('../Exceptions/InvalidOperationException'); +var Types_1 = require("../Types"); +var InvalidOperationException_1 = require("../Exceptions/InvalidOperationException"); var EMPTY = '', TRUE = 'true', FALSE = 'false'; function toString(value, defaultForUnknown) { var v = value; - switch (typeof v === 'undefined' ? 'undefined' : _typeof(v)) { - case Types_1.default.UNDEFINED: - case Types_1.default.STRING: + switch (typeof v === "undefined" ? "undefined" : _typeof(v)) { + case Types_1.Type.UNDEFINED: + case Types_1.Type.STRING: return v; - case Types_1.default.BOOLEAN: + case Types_1.Type.BOOLEAN: return v ? TRUE : FALSE; - case Types_1.default.NUMBER: + case Types_1.Type.NUMBER: return EMPTY + v; default: if (v === null) return v; if (isSerializable(v)) return v.serialize();else if (arguments.length > 1) return defaultForUnknown; - var ex = new InvalidOperationException_1.default('Attempting to serialize unidentifiable type.'); + var ex = new InvalidOperationException_1.InvalidOperationException('Attempting to serialize unidentifiable type.'); ex.data['value'] = v; throw ex; } } exports.toString = toString; function isSerializable(instance) { - return Types_1.default.hasMemberOfType(instance, 'serialize', Types_1.default.FUNCTION); + return Types_1.Type.hasMemberOfType(instance, 'serialize', Types_1.Type.FUNCTION); } exports.isSerializable = isSerializable; function toPrimitive(value, caseInsensitive, unknownHandler) { @@ -40,7 +40,7 @@ function toPrimitive(value, caseInsensitive, unknownHandler) { switch (value) { case 'null': return null; - case Types_1.default.UNDEFINED: + case Types_1.Type.UNDEFINED: return undefined; case TRUE: return true; diff --git a/dist/commonjs/System/Serialization/Utility.js.map b/dist/commonjs/System/Serialization/Utility.js.map index c046190e..54911775 100644 --- a/dist/commonjs/System/Serialization/Utility.js.map +++ b/dist/commonjs/System/Serialization/Utility.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Serialization/Utility.js","System/Serialization/Utility.ts"],"names":[],"mappings":";;;;AAIA;;;;ACIA,IAAA,UAAA,QAAiB,UAAjB,CAAA;AACA,IAAA,8BAAA,QAAsC,yCAAtC,CAAA;AAGA,IAAM,QAAQ,EAAR;IAAY,OAAO,MAAP;IAAe,QAAQ,OAAR;AAEjC,SAAA,QAAA,CACC,KADD,EAEC,iBAFD,EAE0B;AAGzB,QAAI,IAAS,KAAT,CAHqB;AAIzB,mBAAc,4CAAd;AAEC,aAAK,QAAA,OAAA,CAAK,SAAL,CAFN;AAGC,aAAK,QAAA,OAAA,CAAK,MAAL;AACJ,mBAAO,CAAP,CADD;AAHD,aAKM,QAAA,OAAA,CAAK,OAAL;AACJ,mBAAO,IAAI,IAAJ,GAAW,KAAX,CADR;AALD,aAOM,QAAA,OAAA,CAAK,MAAL;AACJ,mBAAO,QAAQ,CAAR,CADR;AAPD;AAWE,gBAAG,MAAI,IAAJ,EACF,OAAO,CAAP,CADD;AAGA,gBAAG,eAAe,CAAf,CAAH,EACC,OAAO,EAAE,SAAF,EAAP,CADD,KAEK,IAAG,UAAU,MAAV,GAAiB,CAAjB,EACP,OAAO,iBAAP,CADI;AAGL,gBAAI,KAAK,IAAI,4BAAA,OAAA,CAA0B,8CAA9B,CAAL,CAVL;AAWC,eAAG,IAAH,CAAQ,OAAR,IAAmB,CAAnB,CAXD;AAYC,kBAAM,EAAN,CAZD;AATD,KAJyB;CAF1B;AAAgB,QAAA,QAAA,GAAQ,QAAR;AAiChB,SAAA,cAAA,CAA+B,QAA/B,EAA2C;AAC1C,WAAO,QAAA,OAAA,CAAK,eAAL,CAAoC,QAApC,EAA6C,WAA7C,EAAyD,QAAA,OAAA,CAAK,QAAL,CAAhE,CAD0C;CAA3C;AAAgB,QAAA,cAAA,GAAc,cAAd;AAIhB,SAAA,WAAA,CACC,KADD,EAEC,eAFD,EAGC,cAHD,EAGmC;AAIlC,QAAG,KAAH,EACA;AACC,YAAG,eAAH,EAAoB,QAAQ,MAAM,WAAN,EAAR,CAApB;AAEA,gBAAO,KAAP;AAEC,iBAAK,MAAL;AACC,uBAAO,IAAP,CADD;AAFD,iBAIM,QAAA,OAAA,CAAK,SAAL;AACJ,uBAAO,SAAP,CADD;AAJD,iBAMM,IAAL;AACC,uBAAO,IAAP,CADD;AAND,iBAQM,KAAL;AACC,uBAAO,KAAP,CADD;AARD;AAYE,oBAAI,UAAU,MAAM,OAAN,CAAc,cAAd,EAA6B,KAA7B,CAAV,CAFL;AAGC,oBAAG,OAAH,EAAY;AAEX,wBAAG,SAAS,IAAT,CAAc,OAAd,CAAH,EAA2B;AAC1B,4BAAI,MAAM,SAAS,OAAT,CAAN,CADsB;AAE1B,4BAAG,CAAC,MAAM,GAAN,CAAD,EAAa,OAAO,GAAP,CAAhB;qBAFD,MAGO;AACN,4BAAI,SAAS,WAAW,KAAX,CAAT,CADE;AAEN,4BAAG,CAAC,MAAM,MAAN,CAAD,EAAgB,OAAO,MAAP,CAAnB;qBALD;iBAFD;AAeA,oBAAG,cAAH,EAAmB,QAAQ,eAAe,KAAf,CAAR,CAAnB;AAEA,sBApBD;AAVD,SAHD;KADA;AAuCA,WAAO,KAAP,CA3CkC;CAHnC;AAAgB,QAAA,WAAA,GAAW,WAAX","file":"System/Serialization/Utility.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst Types_1 = require('../Types');\nconst InvalidOperationException_1 = require('../Exceptions/InvalidOperationException');\nconst EMPTY = '', TRUE = 'true', FALSE = 'false';\nfunction toString(value, defaultForUnknown) {\n var v = value;\n switch (typeof v) {\n case Types_1.default.UNDEFINED:\n case Types_1.default.STRING:\n return v;\n case Types_1.default.BOOLEAN:\n return v ? TRUE : FALSE;\n case Types_1.default.NUMBER:\n return EMPTY + v;\n default:\n if (v === null)\n return v;\n if (isSerializable(v))\n return v.serialize();\n else if (arguments.length > 1)\n return defaultForUnknown;\n var ex = new InvalidOperationException_1.default('Attempting to serialize unidentifiable type.');\n ex.data['value'] = v;\n throw ex;\n }\n}\nexports.toString = toString;\nfunction isSerializable(instance) {\n return Types_1.default.hasMemberOfType(instance, 'serialize', Types_1.default.FUNCTION);\n}\nexports.isSerializable = isSerializable;\nfunction toPrimitive(value, caseInsensitive, unknownHandler) {\n if (value) {\n if (caseInsensitive)\n value = value.toLowerCase();\n switch (value) {\n case 'null':\n return null;\n case Types_1.default.UNDEFINED:\n return undefined;\n case TRUE:\n return true;\n case FALSE:\n return false;\n default:\n var cleaned = value.replace(/^\\s+|,|\\s+$/g, EMPTY);\n if (cleaned) {\n if (/^\\d+$/g.test(cleaned)) {\n var int = parseInt(cleaned);\n if (!isNaN(int))\n return int;\n }\n else {\n var number = parseFloat(value);\n if (!isNaN(number))\n return number;\n }\n }\n if (unknownHandler)\n value = unknownHandler(value);\n break;\n }\n }\n return value;\n}\nexports.toPrimitive = toPrimitive;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n\r\nimport Type from '../Types';\r\nimport InvalidOperationException from '../Exceptions/InvalidOperationException';\r\n\r\n\r\nconst EMPTY = '', TRUE = 'true', FALSE = 'false';\r\n\r\nexport function toString(\r\n\tvalue:Primitive|ISerializable,\r\n\tdefaultForUnknown?:string):string\r\n{\r\n\r\n\tvar v = value;\r\n\tswitch(typeof v)\r\n\t{\r\n\t\tcase Type.UNDEFINED:\r\n\t\tcase Type.STRING:\r\n\t\t\treturn v;\r\n\t\tcase Type.BOOLEAN:\r\n\t\t\treturn v ? TRUE : FALSE;\r\n\t\tcase Type.NUMBER:\r\n\t\t\treturn EMPTY + v;\r\n\t\tdefault:\r\n\r\n\t\t\tif(v===null)\r\n\t\t\t\treturn v;\r\n\r\n\t\t\tif(isSerializable(v))\r\n\t\t\t\treturn v.serialize();\r\n\t\t\telse if(arguments.length>1)\r\n\t\t\t\treturn defaultForUnknown;\r\n\r\n\t\t\tvar ex = new InvalidOperationException('Attempting to serialize unidentifiable type.');\r\n\t\t\tex.data['value'] = v;\r\n\t\t\tthrow ex;\r\n\r\n\t}\r\n\r\n}\r\n\r\nexport function isSerializable(instance:any):instance is ISerializable {\r\n\treturn Type.hasMemberOfType(instance,'serialize',Type.FUNCTION);\r\n}\r\n\r\nexport function toPrimitive(\r\n\tvalue:string,\r\n\tcaseInsensitive?:boolean,\r\n\tunknownHandler?:(v:string)=>string):Primitive\r\n{\r\n\r\n\r\n\tif(value)\r\n\t{\r\n\t\tif(caseInsensitive) value = value.toLowerCase();\r\n\r\n\t\tswitch(value)\r\n\t\t{\r\n\t\t\tcase 'null':\r\n\t\t\t\treturn null;\r\n\t\t\tcase Type.UNDEFINED:\r\n\t\t\t\treturn undefined;\r\n\t\t\tcase TRUE:\r\n\t\t\t\treturn true;\r\n\t\t\tcase FALSE:\r\n\t\t\t\treturn false;\r\n\t\t\tdefault:\r\n\r\n\t\t\t\tvar cleaned = value.replace(/^\\s+|,|\\s+$/g,EMPTY);\r\n\t\t\t\tif(cleaned) {\r\n\r\n\t\t\t\t\tif(/^\\d+$/g.test(cleaned)) {\r\n\t\t\t\t\t\tvar int = parseInt(cleaned);\r\n\t\t\t\t\t\tif(!isNaN(int)) return int;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tvar number = parseFloat(value);\r\n\t\t\t\t\t\tif(!isNaN(number)) return number;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// TODO: Handle Dates... Possibly JSON?\r\n\r\n\t\t\t\t// Instead of throwing we allow for handling...\r\n\t\t\t\tif(unknownHandler) value = unknownHandler(value);\r\n\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\r\n\t}\r\n\r\n\treturn value;\r\n\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Serialization/Utility.js","System/Serialization/Utility.ts"],"names":[],"mappings":";;;;AAIA;;;;ACCA,IAAA,UAAA,QAAmB,UAAnB,CAAA;AACA,IAAA,8BAAA,QAAwC,yCAAxC,CAAA;AAKA,IAAM,QAAQ,EAAR;IAAY,OAAO,MAAP;IAAe,QAAQ,OAAR;AAEjC,SAAA,QAAA,CACC,KADD,EAEC,iBAFD,EAE0B;AAGzB,QAAI,IAAS,KAAT,CAHqB;AAIzB,mBAAc,4CAAd;AAEC,aAAK,QAAA,IAAA,CAAK,SAAL,CAFN;AAGC,aAAK,QAAA,IAAA,CAAK,MAAL;AACJ,mBAAO,CAAP,CADD;AAHD,aAKM,QAAA,IAAA,CAAK,OAAL;AACJ,mBAAO,IAAI,IAAJ,GAAW,KAAX,CADR;AALD,aAOM,QAAA,IAAA,CAAK,MAAL;AACJ,mBAAO,QAAQ,CAAR,CADR;AAPD;AAWE,gBAAG,MAAI,IAAJ,EACF,OAAO,CAAP,CADD;AAGA,gBAAG,eAAe,CAAf,CAAH,EACC,OAAO,EAAE,SAAF,EAAP,CADD,KAEK,IAAG,UAAU,MAAV,GAAiB,CAAjB,EACP,OAAO,iBAAP,CADI;AAGL,gBAAI,KAAK,IAAI,4BAAA,yBAAA,CAA0B,8CAA9B,CAAL,CAVL;AAWC,eAAG,IAAH,CAAQ,OAAR,IAAmB,CAAnB,CAXD;AAYC,kBAAM,EAAN,CAZD;AATD,KAJyB;CAF1B;AAAgB,QAAA,QAAA,GAAQ,QAAR;AAiChB,SAAA,cAAA,CAA+B,QAA/B,EAA2C;AAC1C,WAAO,QAAA,IAAA,CAAK,eAAL,CAAoC,QAApC,EAA6C,WAA7C,EAAyD,QAAA,IAAA,CAAK,QAAL,CAAhE,CAD0C;CAA3C;AAAgB,QAAA,cAAA,GAAc,cAAd;AAIhB,SAAA,WAAA,CACC,KADD,EAEC,eAFD,EAGC,cAHD,EAGmC;AAIlC,QAAG,KAAH,EACA;AACC,YAAG,eAAH,EAAoB,QAAQ,MAAM,WAAN,EAAR,CAApB;AAEA,gBAAO,KAAP;AAEC,iBAAK,MAAL;AACC,uBAAO,IAAP,CADD;AAFD,iBAIM,QAAA,IAAA,CAAK,SAAL;AACJ,uBAAO,SAAP,CADD;AAJD,iBAMM,IAAL;AACC,uBAAO,IAAP,CADD;AAND,iBAQM,KAAL;AACC,uBAAO,KAAP,CADD;AARD;AAYE,oBAAI,UAAU,MAAM,OAAN,CAAc,cAAd,EAA6B,KAA7B,CAAV,CAFL;AAGC,oBAAG,OAAH,EAAY;AAEX,wBAAG,SAAS,IAAT,CAAc,OAAd,CAAH,EAA2B;AAC1B,4BAAI,MAAM,SAAS,OAAT,CAAN,CADsB;AAE1B,4BAAG,CAAC,MAAM,GAAN,CAAD,EAAa,OAAO,GAAP,CAAhB;qBAFD,MAGO;AACN,4BAAI,SAAS,WAAW,KAAX,CAAT,CADE;AAEN,4BAAG,CAAC,MAAM,MAAN,CAAD,EAAgB,OAAO,MAAP,CAAnB;qBALD;iBAFD;AAeA,oBAAG,cAAH,EAAmB,QAAQ,eAAe,KAAf,CAAR,CAAnB;AAEA,sBApBD;AAVD,SAHD;KADA;AAuCA,WAAO,KAAP,CA3CkC;CAHnC;AAAgB,QAAA,WAAA,GAAW,WAAX","file":"System/Serialization/Utility.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst Types_1 = require(\"../Types\");\nconst InvalidOperationException_1 = require(\"../Exceptions/InvalidOperationException\");\nconst EMPTY = '', TRUE = 'true', FALSE = 'false';\nfunction toString(value, defaultForUnknown) {\n var v = value;\n switch (typeof v) {\n case Types_1.Type.UNDEFINED:\n case Types_1.Type.STRING:\n return v;\n case Types_1.Type.BOOLEAN:\n return v ? TRUE : FALSE;\n case Types_1.Type.NUMBER:\n return EMPTY + v;\n default:\n if (v === null)\n return v;\n if (isSerializable(v))\n return v.serialize();\n else if (arguments.length > 1)\n return defaultForUnknown;\n var ex = new InvalidOperationException_1.InvalidOperationException('Attempting to serialize unidentifiable type.');\n ex.data['value'] = v;\n throw ex;\n }\n}\nexports.toString = toString;\nfunction isSerializable(instance) {\n return Types_1.Type.hasMemberOfType(instance, 'serialize', Types_1.Type.FUNCTION);\n}\nexports.isSerializable = isSerializable;\nfunction toPrimitive(value, caseInsensitive, unknownHandler) {\n if (value) {\n if (caseInsensitive)\n value = value.toLowerCase();\n switch (value) {\n case 'null':\n return null;\n case Types_1.Type.UNDEFINED:\n return undefined;\n case TRUE:\n return true;\n case FALSE:\n return false;\n default:\n var cleaned = value.replace(/^\\s+|,|\\s+$/g, EMPTY);\n if (cleaned) {\n if (/^\\d+$/g.test(cleaned)) {\n var int = parseInt(cleaned);\n if (!isNaN(int))\n return int;\n }\n else {\n var number = parseFloat(value);\n if (!isNaN(number))\n return number;\n }\n }\n if (unknownHandler)\n value = unknownHandler(value);\n break;\n }\n }\n return value;\n}\nexports.toPrimitive = toPrimitive;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {Type} from \"../Types\";\r\nimport {InvalidOperationException} from \"../Exceptions/InvalidOperationException\";\r\nimport {ISerializable} from \"./ISerializable\";\r\nimport {Primitive} from \"../Primitive\";\r\n\r\n\r\nconst EMPTY = '', TRUE = 'true', FALSE = 'false';\r\n\r\nexport function toString(\r\n\tvalue:Primitive|ISerializable,\r\n\tdefaultForUnknown?:string):string\r\n{\r\n\r\n\tvar v = value;\r\n\tswitch(typeof v)\r\n\t{\r\n\t\tcase Type.UNDEFINED:\r\n\t\tcase Type.STRING:\r\n\t\t\treturn v;\r\n\t\tcase Type.BOOLEAN:\r\n\t\t\treturn v ? TRUE : FALSE;\r\n\t\tcase Type.NUMBER:\r\n\t\t\treturn EMPTY + v;\r\n\t\tdefault:\r\n\r\n\t\t\tif(v===null)\r\n\t\t\t\treturn v;\r\n\r\n\t\t\tif(isSerializable(v))\r\n\t\t\t\treturn v.serialize();\r\n\t\t\telse if(arguments.length>1)\r\n\t\t\t\treturn defaultForUnknown;\r\n\r\n\t\t\tvar ex = new InvalidOperationException('Attempting to serialize unidentifiable type.');\r\n\t\t\tex.data['value'] = v;\r\n\t\t\tthrow ex;\r\n\r\n\t}\r\n\r\n}\r\n\r\nexport function isSerializable(instance:any):instance is ISerializable {\r\n\treturn Type.hasMemberOfType(instance,'serialize',Type.FUNCTION);\r\n}\r\n\r\nexport function toPrimitive(\r\n\tvalue:string,\r\n\tcaseInsensitive?:boolean,\r\n\tunknownHandler?:(v:string)=>string):Primitive\r\n{\r\n\r\n\r\n\tif(value)\r\n\t{\r\n\t\tif(caseInsensitive) value = value.toLowerCase();\r\n\r\n\t\tswitch(value)\r\n\t\t{\r\n\t\t\tcase 'null':\r\n\t\t\t\treturn null;\r\n\t\t\tcase Type.UNDEFINED:\r\n\t\t\t\treturn undefined;\r\n\t\t\tcase TRUE:\r\n\t\t\t\treturn true;\r\n\t\t\tcase FALSE:\r\n\t\t\t\treturn false;\r\n\t\t\tdefault:\r\n\r\n\t\t\t\tvar cleaned = value.replace(/^\\s+|,|\\s+$/g,EMPTY);\r\n\t\t\t\tif(cleaned) {\r\n\r\n\t\t\t\t\tif(/^\\d+$/g.test(cleaned)) {\r\n\t\t\t\t\t\tvar int = parseInt(cleaned);\r\n\t\t\t\t\t\tif(!isNaN(int)) return int;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tvar number = parseFloat(value);\r\n\t\t\t\t\t\tif(!isNaN(number)) return number;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// TODO: Handle Dates... Possibly JSON?\r\n\r\n\t\t\t\t// Instead of throwing we allow for handling...\r\n\t\t\t\tif(unknownHandler) value = unknownHandler(value);\r\n\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\r\n\t}\r\n\r\n\treturn value;\r\n\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/commonjs/System/Tasks/TaskHandler.d.ts b/dist/commonjs/System/Tasks/TaskHandler.d.ts index 750d1dd3..c2a1037f 100644 --- a/dist/commonjs/System/Tasks/TaskHandler.d.ts +++ b/dist/commonjs/System/Tasks/TaskHandler.d.ts @@ -3,10 +3,12 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import TaskHandlerBase from "./TaskHandlerBase"; -export default class TaskHandler extends TaskHandlerBase { +import { TaskHandlerBase } from "./TaskHandlerBase"; +import { Closure } from "../FunctionTypes"; +export declare class TaskHandler extends TaskHandlerBase { private _action; constructor(_action: Closure); protected _onExecute(): void; protected _onDispose(): void; } +export default TaskHandler; diff --git a/dist/commonjs/System/Tasks/TaskHandler.js b/dist/commonjs/System/Tasks/TaskHandler.js index c10f0399..4da72f1f 100644 --- a/dist/commonjs/System/Tasks/TaskHandler.js +++ b/dist/commonjs/System/Tasks/TaskHandler.js @@ -17,8 +17,8 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function" var TaskHandlerBase_1 = require("./TaskHandlerBase"); var ArgumentNullException_1 = require("../Exceptions/ArgumentNullException"); -var TaskHandler = function (_TaskHandlerBase_1$de) { - _inherits(TaskHandler, _TaskHandlerBase_1$de); +var TaskHandler = function (_TaskHandlerBase_1$Ta) { + _inherits(TaskHandler, _TaskHandlerBase_1$Ta); function TaskHandler(_action) { _classCallCheck(this, TaskHandler); @@ -26,7 +26,7 @@ var TaskHandler = function (_TaskHandlerBase_1$de) { var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(TaskHandler).call(this)); _this._action = _action; - if (!_action) throw new ArgumentNullException_1.default('action'); + if (!_action) throw new ArgumentNullException_1.ArgumentNullException('action'); return _this; } @@ -44,8 +44,9 @@ var TaskHandler = function (_TaskHandlerBase_1$de) { }]); return TaskHandler; -}(TaskHandlerBase_1.default); +}(TaskHandlerBase_1.TaskHandlerBase); +exports.TaskHandler = TaskHandler; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = TaskHandler; //# sourceMappingURL=TaskHandler.js.map diff --git a/dist/commonjs/System/Tasks/TaskHandler.js.map b/dist/commonjs/System/Tasks/TaskHandler.js.map index ccc3246e..921111db 100644 --- a/dist/commonjs/System/Tasks/TaskHandler.js.map +++ b/dist/commonjs/System/Tasks/TaskHandler.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Tasks/TaskHandler.js","System/Tasks/TaskHandler.ts"],"names":[],"mappings":";;;;AAIA;;;;;;;;;;;;ACEA,IAAA,oBAAA,QAA4B,mBAA5B,CAAA;AACA,IAAA,0BAAA,QAAkC,qCAAlC,CAAA;;IACA;;;AAEC,aAFD,WAEC,CAAoB,OAApB,EAAmC;8BAFpC,aAEoC;;2EAFpC,yBAEoC;;AAAf,cAAA,OAAA,GAAA,OAAA,CAAe;AAElC,YAAG,CAAC,OAAD,EAAU,MAAM,IAAI,wBAAA,OAAA,CAAsB,QAA1B,CAAN,CAAb;qBAFkC;KAAnC;;iBAFD;;qCAOqB;AAEnB,iBAAK,OAAL,GAFmB;;;;qCAKA;AAEnB,uCAdF,sDAcE,CAFmB;AAGnB,iBAAK,OAAL,GAAe,IAAf,CAHmB;;;;WAZrB;EAAyC,kBAAA,OAAA;;AAAzC,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADeA,QAAQ,OAAR,GAAkB,WAAlB","file":"System/Tasks/TaskHandler.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst TaskHandlerBase_1 = require(\"./TaskHandlerBase\");\nconst ArgumentNullException_1 = require(\"../Exceptions/ArgumentNullException\");\nclass TaskHandler extends TaskHandlerBase_1.default {\n constructor(_action) {\n super();\n this._action = _action;\n if (!_action)\n throw new ArgumentNullException_1.default('action');\n }\n _onExecute() {\n this._action();\n }\n _onDispose() {\n super._onDispose();\n this._action = null;\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = TaskHandler;\n","///\r\n/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport TaskHandlerBase from \"./TaskHandlerBase\";\r\nimport ArgumentNullException from \"../Exceptions/ArgumentNullException\";\r\nexport default class TaskHandler extends TaskHandlerBase {\r\n\t\r\n\tconstructor(private _action:Closure) {\r\n\t\tsuper();\r\n\t\tif(!_action) throw new ArgumentNullException('action');\r\n\t}\r\n\t\r\n\tprotected _onExecute():void\r\n\t{\r\n\t\tthis._action();\r\n\t}\r\n\t\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis._action = null;\r\n\t}\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Tasks/TaskHandler.js","System/Tasks/TaskHandler.ts"],"names":[],"mappings":";;;;AAIA;;;;;;;;;;;;ACEA,IAAA,oBAAA,QAA8B,mBAA9B,CAAA;AACA,IAAA,0BAAA,QAAoC,qCAApC,CAAA;;IAGA;;;AAEC,aAFD,WAEC,CAAoB,OAApB,EAAmC;8BAFpC,aAEoC;;2EAFpC,yBAEoC;;AAAf,cAAA,OAAA,GAAA,OAAA,CAAe;AAElC,YAAG,CAAC,OAAD,EAAU,MAAM,IAAI,wBAAA,qBAAA,CAAsB,QAA1B,CAAN,CAAb;qBAFkC;KAAnC;;iBAFD;;qCAOqB;AAEnB,iBAAK,OAAL,GAFmB;;;;qCAKA;AAEnB,uCAdF,sDAcE,CAFmB;AAGnB,iBAAK,OAAL,GAAe,IAAf,CAHmB;;;;WAZrB;EAAiC,kBAAA,eAAA;;AAApB,QAAA,WAAA,GAAW,WAAX;AAmBb,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADLA,QAAQ,OAAR,GCKe,WDLf","file":"System/Tasks/TaskHandler.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst TaskHandlerBase_1 = require(\"./TaskHandlerBase\");\nconst ArgumentNullException_1 = require(\"../Exceptions/ArgumentNullException\");\nclass TaskHandler extends TaskHandlerBase_1.TaskHandlerBase {\n constructor(_action) {\n super();\n this._action = _action;\n if (!_action)\n throw new ArgumentNullException_1.ArgumentNullException('action');\n }\n _onExecute() {\n this._action();\n }\n _onDispose() {\n super._onDispose();\n this._action = null;\n }\n}\nexports.TaskHandler = TaskHandler;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = TaskHandler;\n","///\r\n/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {TaskHandlerBase} from \"./TaskHandlerBase\";\r\nimport {ArgumentNullException} from \"../Exceptions/ArgumentNullException\";\r\nimport {Closure} from \"../FunctionTypes\";\r\n\r\nexport class TaskHandler extends TaskHandlerBase {\r\n\t\r\n\tconstructor(private _action:Closure) {\r\n\t\tsuper();\r\n\t\tif(!_action) throw new ArgumentNullException('action');\r\n\t}\r\n\t\r\n\tprotected _onExecute():void\r\n\t{\r\n\t\tthis._action();\r\n\t}\r\n\t\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis._action = null;\r\n\t}\r\n}\r\n\r\nexport default TaskHandler;"]} \ No newline at end of file diff --git a/dist/commonjs/System/Tasks/TaskHandlerBase.d.ts b/dist/commonjs/System/Tasks/TaskHandlerBase.d.ts index c3945286..abb00e37 100644 --- a/dist/commonjs/System/Tasks/TaskHandlerBase.d.ts +++ b/dist/commonjs/System/Tasks/TaskHandlerBase.d.ts @@ -1,10 +1,10 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import DisposableBase from "../Disposable/DisposableBase"; -declare abstract class TaskHandlerBase extends DisposableBase implements ICancellable { +import { DisposableBase } from "../Disposable/DisposableBase"; +import { ICancellable } from "./ICancellable"; +export declare abstract class TaskHandlerBase extends DisposableBase implements ICancellable { constructor(); protected _id: any; isScheduled: boolean; diff --git a/dist/commonjs/System/Tasks/TaskHandlerBase.js b/dist/commonjs/System/Tasks/TaskHandlerBase.js index ff4f8a65..333c5304 100644 --- a/dist/commonjs/System/Tasks/TaskHandlerBase.js +++ b/dist/commonjs/System/Tasks/TaskHandlerBase.js @@ -14,8 +14,8 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function" var DisposableBase_1 = require("../Disposable/DisposableBase"); -var TaskHandlerBase = function (_DisposableBase_1$def) { - _inherits(TaskHandlerBase, _DisposableBase_1$def); +var TaskHandlerBase = function (_DisposableBase_1$Dis) { + _inherits(TaskHandlerBase, _DisposableBase_1$Dis); function TaskHandlerBase() { _classCallCheck(this, TaskHandlerBase); @@ -66,8 +66,9 @@ var TaskHandlerBase = function (_DisposableBase_1$def) { }]); return TaskHandlerBase; -}(DisposableBase_1.default); +}(DisposableBase_1.DisposableBase); +exports.TaskHandlerBase = TaskHandlerBase; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = TaskHandlerBase; //# sourceMappingURL=TaskHandlerBase.js.map diff --git a/dist/commonjs/System/Tasks/TaskHandlerBase.js.map b/dist/commonjs/System/Tasks/TaskHandlerBase.js.map index 78d53be3..4b436049 100644 --- a/dist/commonjs/System/Tasks/TaskHandlerBase.js.map +++ b/dist/commonjs/System/Tasks/TaskHandlerBase.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Tasks/TaskHandlerBase.js","System/Tasks/TaskHandlerBase.ts"],"names":[],"mappings":";;;;AAIA;;;;;;;;;;ACEA,IAAA,mBAAA,QAA2B,8BAA3B,CAAA;;IAKA;;;AAGC,aAHD,eAGC,GAAA;8BAHD,iBAGC;;2EAHD,6BAGC;;AAGC,cAAK,GAAL,GAAW,IAAX,CAHD;;KAAA;;iBAHD;;gCAoBS,OAAa;AAEpB,iBAAK,MAAL,GAFoB;AAGpB,gBAAG,MAAM,KAAN,KAAgB,QAAM,CAAN,EACnB;AACC,qBAAK,UAAL,GADD;aADA,MAIK,IAAG,SAAS,KAAT,CAAH,EACL;AACC,qBAAK,GAAL,GAAW,WAAW,gBAAgB,QAAhB,EAA0B,KAArC,EAA4C,IAA5C,CAAX,CADD;aADK;;;;qCAec;AAEnB,iBAAK,MAAL,GAFmB;;;;iCAKd;AAEL,gBAAI,KAAK,KAAK,GAAL,CAFJ;AAGL,gBAAG,EAAH,EACA;AACC,6BAAa,EAAb,EADD;AAEC,qBAAK,GAAL,GAAW,IAAX,CAFD;AAGC,uBAAO,IAAP,CAHD;aADA;AAMA,mBAAO,KAAP,CATK;;;;4BApCS;AACd,mBAAO,CAAC,CAAC,KAAK,GAAL,CADK;;;;iCAuBS,GAAiB;AAExC,cAAE,MAAF,GAFwC;AAGxC,cAAE,UAAF,GAHwC;;;;WAlC1C;EACQ,iBAAA,OAAA;;AA6DR,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADhCA,QAAQ,OAAR,GCgCe,eDhCf","file":"System/Tasks/TaskHandlerBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst DisposableBase_1 = require(\"../Disposable/DisposableBase\");\nclass TaskHandlerBase extends DisposableBase_1.default {\n constructor() {\n super();\n this._id = null;\n }\n get isScheduled() {\n return !!this._id;\n }\n execute(defer) {\n this.cancel();\n if (isNaN(defer) || defer < 0) {\n this._onExecute();\n }\n else if (isFinite(defer)) {\n this._id = setTimeout(TaskHandlerBase._handler, defer, this);\n }\n }\n static _handler(d) {\n d.cancel();\n d._onExecute();\n }\n _onDispose() {\n this.cancel();\n }\n cancel() {\n var id = this._id;\n if (id) {\n clearTimeout(id);\n this._id = null;\n return true;\n }\n return false;\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = TaskHandlerBase;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\nimport DisposableBase from \"../Disposable/DisposableBase\";\r\n\r\n/**\r\n * A simple class for handling potentially repeated executions either deferred or immediate.\r\n */\r\nabstract class TaskHandlerBase\r\nextends DisposableBase implements ICancellable\r\n{\r\n\tconstructor()\r\n\t{\r\n\t\tsuper();\r\n\t\tthis._id = null;\r\n\t}\r\n\r\n\tprotected _id:any;\r\n\r\n\tget isScheduled():boolean {\r\n\t\treturn !!this._id;\r\n\t}\r\n\r\n\t/**\r\n\t * Schedules/Reschedules triggering the task.\r\n\t * If defer is omitted it is called synchronously.\r\n\t * @param defer Optional time to wait until triggering.\r\n\t */\r\n\texecute(defer?:number):void\r\n\t{\r\n\t\tthis.cancel();\r\n\t\tif(isNaN(defer) || defer<0)\r\n\t\t{\r\n\t\t\tthis._onExecute();\r\n\t\t}\r\n\t\telse if(isFinite(defer))\r\n\t\t{\r\n\t\t\tthis._id = setTimeout(TaskHandlerBase._handler, defer, this);\r\n\t\t}\r\n\t}\r\n\r\n\t// Use a static function here to avoid recreating a new function every time.\r\n\tprivate static _handler(d:TaskHandlerBase):void\r\n\t{\r\n\t\td.cancel();\r\n\t\td._onExecute();\r\n\t}\r\n\r\n\tprotected abstract _onExecute():void;\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tthis.cancel();\r\n\t}\r\n\r\n\tcancel():boolean\r\n\t{\r\n\t\tvar id = this._id;\r\n\t\tif(id)\r\n\t\t{\r\n\t\t\tclearTimeout(id);\r\n\t\t\tthis._id = null;\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\r\n}\r\n\r\nexport default TaskHandlerBase;"]} \ No newline at end of file +{"version":3,"sources":["System/Tasks/TaskHandlerBase.js","System/Tasks/TaskHandlerBase.ts"],"names":[],"mappings":";;;;AAIA;;;;;;;;;;ACCA,IAAA,mBAAA,QAA6B,8BAA7B,CAAA;;IAMA;;;AAGC,aAHD,eAGC,GAAA;8BAHD,iBAGC;;2EAHD,6BAGC;;AAGC,cAAK,GAAL,GAAW,IAAX,CAHD;;KAAA;;iBAHD;;gCAoBS,OAAa;AAEpB,iBAAK,MAAL,GAFoB;AAGpB,gBAAG,MAAM,KAAN,KAAgB,QAAM,CAAN,EACnB;AACC,qBAAK,UAAL,GADD;aADA,MAIK,IAAG,SAAS,KAAT,CAAH,EACL;AACC,qBAAK,GAAL,GAAW,WAAW,gBAAgB,QAAhB,EAA0B,KAArC,EAA4C,IAA5C,CAAX,CADD;aADK;;;;qCAec;AAEnB,iBAAK,MAAL,GAFmB;;;;iCAKd;AAEL,gBAAI,KAAK,KAAK,GAAL,CAFJ;AAGL,gBAAG,EAAH,EACA;AACC,6BAAa,EAAb,EADD;AAEC,qBAAK,GAAL,GAAW,IAAX,CAFD;AAGC,uBAAO,IAAP,CAHD;aADA;AAMA,mBAAO,KAAP,CATK;;;;4BApCS;AACd,mBAAO,CAAC,CAAC,KAAK,GAAL,CADK;;;;iCAuBS,GAAiB;AAExC,cAAE,MAAF,GAFwC;AAGxC,cAAE,UAAF,GAHwC;;;;WAlC1C;EACQ,iBAAA,cAAA;;AADc,QAAA,eAAA,GAAe,eAAf;AA8DtB,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;AD/BA,QAAQ,OAAR,GC+Be,eD/Bf","file":"System/Tasks/TaskHandlerBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst DisposableBase_1 = require(\"../Disposable/DisposableBase\");\nclass TaskHandlerBase extends DisposableBase_1.DisposableBase {\n constructor() {\n super();\n this._id = null;\n }\n get isScheduled() {\n return !!this._id;\n }\n execute(defer) {\n this.cancel();\n if (isNaN(defer) || defer < 0) {\n this._onExecute();\n }\n else if (isFinite(defer)) {\n this._id = setTimeout(TaskHandlerBase._handler, defer, this);\n }\n }\n static _handler(d) {\n d.cancel();\n d._onExecute();\n }\n _onDispose() {\n this.cancel();\n }\n cancel() {\n var id = this._id;\n if (id) {\n clearTimeout(id);\n this._id = null;\n return true;\n }\n return false;\n }\n}\nexports.TaskHandlerBase = TaskHandlerBase;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = TaskHandlerBase;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {DisposableBase} from \"../Disposable/DisposableBase\";\r\nimport {ICancellable} from \"./ICancellable\";\r\n\r\n/**\r\n * A simple class for handling potentially repeated executions either deferred or immediate.\r\n */\r\nexport abstract class TaskHandlerBase\r\nextends DisposableBase implements ICancellable\r\n{\r\n\tconstructor()\r\n\t{\r\n\t\tsuper();\r\n\t\tthis._id = null;\r\n\t}\r\n\r\n\tprotected _id:any;\r\n\r\n\tget isScheduled():boolean {\r\n\t\treturn !!this._id;\r\n\t}\r\n\r\n\t/**\r\n\t * Schedules/Reschedules triggering the task.\r\n\t * If defer is omitted it is called synchronously.\r\n\t * @param defer Optional time to wait until triggering.\r\n\t */\r\n\texecute(defer?:number):void\r\n\t{\r\n\t\tthis.cancel();\r\n\t\tif(isNaN(defer) || defer<0)\r\n\t\t{\r\n\t\t\tthis._onExecute();\r\n\t\t}\r\n\t\telse if(isFinite(defer))\r\n\t\t{\r\n\t\t\tthis._id = setTimeout(TaskHandlerBase._handler, defer, this);\r\n\t\t}\r\n\t}\r\n\r\n\t// Use a static function here to avoid recreating a new function every time.\r\n\tprivate static _handler(d:TaskHandlerBase):void\r\n\t{\r\n\t\td.cancel();\r\n\t\td._onExecute();\r\n\t}\r\n\r\n\tprotected abstract _onExecute():void;\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tthis.cancel();\r\n\t}\r\n\r\n\tcancel():boolean\r\n\t{\r\n\t\tvar id = this._id;\r\n\t\tif(id)\r\n\t\t{\r\n\t\t\tclearTimeout(id);\r\n\t\t\tthis._id = null;\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\r\n}\r\n\r\nexport default TaskHandlerBase;"]} \ No newline at end of file diff --git a/dist/commonjs/System/Tasks/defer.d.ts b/dist/commonjs/System/Tasks/defer.d.ts index 2b37b77f..7552d46b 100644 --- a/dist/commonjs/System/Tasks/defer.d.ts +++ b/dist/commonjs/System/Tasks/defer.d.ts @@ -1,7 +1,8 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { ICancellable } from "./ICancellable"; +import { Closure } from "../FunctionTypes"; export default function defer(task: Closure, delay?: number): ICancellable; export declare function interval(task: Function, interval: number, count?: number): ICancellable; diff --git a/dist/commonjs/System/Tasks/defer.js.map b/dist/commonjs/System/Tasks/defer.js.map index dd0f7a2f..e6d21f6a 100644 --- a/dist/commonjs/System/Tasks/defer.js.map +++ b/dist/commonjs/System/Tasks/defer.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Tasks/defer.js","System/Tasks/defer.ts"],"names":[],"mappings":";;;;AAIA;;;;;;;;;;ICGA;;;;;;;kCAOQ;AAEN,iBAAK,MAAL,GAFM;;;;WAPR;;;IAaA;;;AAIC,aAJD,KAIC,CAAY,IAAZ,EAA0B,KAA1B,EAAuC;8BAJxC,OAIwC;;2EAJxC,mBAIwC;;AAGtC,YAAG,EAAE,SAAO,CAAP,CAAF,EAAa,QAAQ,CAAR,CAAhB;AACA,cAAK,GAAL,GAAW,WAAW,MAAM,OAAN,EAAe,KAA1B,EAAiC,IAAjC,QAAX,CAJsC;;KAAvC;;iBAJD;;iCAWO;AAEL,gBAAI,KAAK,KAAK,GAAL,CAFJ;AAGL,gBAAG,EAAH,EACA;AACC,6BAAa,EAAb,EADD;AAEC,qBAAK,GAAL,GAAW,IAAX,CAFD;AAGC,uBAAO,IAAP,CAHD;aADA;AAMA,mBAAO,KAAP,CATK;;;;gCAaiB,MAAe,GAAO;AAE5C,cAAE,MAAF,GAF4C;AAG5C,mBAH4C;;;;WAxB9C;EAAoB;;IAgCpB;;;AAIC,aAJD,aAIC,CACC,IADD,EAEC,QAFD,EAGqC;YAA5B,mEAAoB,wBAAQ;;8BAPtC,eAOsC;;4EAPtC,2BAOsC;;AAA5B,eAAA,UAAA,GAAA,UAAA,CAA4B;AAGpC,YAAG,aAAW,IAAX,IAAmB,aAAY,KAAK,CAAL,EACjC,MAAM,oCAAN,CADD;AAEA,YAAG,WAAS,CAAT,EACF,MAAM,gCAAN,CADD;AAGA,eAAK,GAAL,GAAW,YAAY,cAAc,OAAd,EAAuB,QAAnC,EAA6C,IAA7C,SAAX,CARoC;;KAHrC;;iBAJD;;iCAkBO;AAEL,gBAAI,KAAK,KAAK,GAAL,CAFJ;AAGL,gBAAG,EAAH,EACA;AACC,8BAAc,EAAd,EADD;AAEC,qBAAK,GAAL,GAAW,IAAX,CAFD;AAGC,uBAAO,IAAP,CAHD;aADA;AAMA,mBAAO,KAAP,CATK;;;;gCAYiB,MAAe,GAAe;AAEpD,gBAAG,EAAE,EAAE,EAAE,UAAF,EAAe,EAAE,MAAF,GAAtB;AACA,mBAHoD;;;;WA9BtD;EAA4B;;AAuC5B,SAAA,KAAA,CACC,IADD,EAEC,KAFD,EAEc;AAEb,WAAO,IAAI,KAAJ,CAAU,IAAV,EAAgB,KAAhB,CAAP,CAFa;CAFd;AAAA,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;AD/BA,QAAQ,OAAR,GAAkB,KAAlB;ACsCA,SAAA,QAAA,CACC,IADD,EAEC,QAFD,EAGwB;QAAvB,8DAAe,wBAAQ;;AAEvB,WAAO,IAAI,aAAJ,CAAkB,IAAlB,EAAwB,QAAxB,EAAkC,KAAlC,CAAP,CAFuB;CAHxB;AAAgB,QAAA,QAAA,GAAQ,QAAR","file":"System/Tasks/defer.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nclass DeferBase {\n dispose() {\n this.cancel();\n }\n}\nclass Defer extends DeferBase {\n constructor(task, delay) {\n super();\n if (!(delay >= 0))\n delay = 0;\n this._id = setTimeout(Defer.handler, delay, task, this);\n }\n cancel() {\n var id = this._id;\n if (id) {\n clearTimeout(id);\n this._id = null;\n return true;\n }\n return false;\n }\n static handler(task, d) {\n d.cancel();\n task();\n }\n}\nclass DeferInterval extends DeferBase {\n constructor(task, interval, _remaining = Infinity) {\n super();\n this._remaining = _remaining;\n if (interval === null || interval === void (0))\n throw \"'interval' must be a valid number.\";\n if (interval < 0)\n throw \"'interval' cannot be negative.\";\n this._id = setInterval(DeferInterval.handler, interval, task, this);\n }\n cancel() {\n var id = this._id;\n if (id) {\n clearInterval(id);\n this._id = null;\n return true;\n }\n return false;\n }\n static handler(task, d) {\n if (!(--d._remaining))\n d.cancel();\n task();\n }\n}\nfunction defer(task, delay) {\n return new Defer(task, delay);\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = defer;\nfunction interval(task, interval, count = Infinity) {\n return new DeferInterval(task, interval, count);\n}\nexports.interval = interval;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n\r\nabstract class DeferBase implements ICancellable\r\n{\r\n\t// It may be a Timer in node, should not be restricted to number.\r\n\tprotected _id:any;\r\n\r\n\tabstract cancel():boolean;\r\n\r\n\tdispose():void\r\n\t{\r\n\t\tthis.cancel();\r\n\t}\r\n}\r\n\r\nclass Defer extends DeferBase\r\n{\r\n\r\n\r\n\tconstructor(task:Closure, delay?:number)\r\n\t{\r\n\t\tsuper();\r\n\t\tif(!(delay>=0)) delay = 0;\r\n\t\tthis._id = setTimeout(Defer.handler, delay, task, this);\r\n\t}\r\n\r\n\tcancel():boolean\r\n\t{\r\n\t\tvar id = this._id;\r\n\t\tif(id)\r\n\t\t{\r\n\t\t\tclearTimeout(id);\r\n\t\t\tthis._id = null;\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t// Use a static function here to avoid recreating a new function every time.\r\n\tprivate static handler(task:Function, d:Defer):void\r\n\t{\r\n\t\td.cancel();\r\n\t\ttask();\r\n\t}\r\n\r\n}\r\n\r\nclass DeferInterval extends DeferBase\r\n{\r\n\r\n\r\n\tconstructor(\r\n\t\ttask:Function,\r\n\t\tinterval:number,\r\n\t\tprivate _remaining:number = Infinity)\r\n\t{\r\n\t\tsuper();\r\n\t\tif(interval===null || interval=== void(0))\r\n\t\t\tthrow \"'interval' must be a valid number.\";\r\n\t\tif(interval<0)\r\n\t\t\tthrow \"'interval' cannot be negative.\";\r\n\r\n\t\tthis._id = setInterval(DeferInterval.handler, interval, task, this);\r\n\t}\r\n\r\n\tcancel():boolean\r\n\t{\r\n\t\tvar id = this._id;\r\n\t\tif(id)\r\n\t\t{\r\n\t\t\tclearInterval(id);\r\n\t\t\tthis._id = null;\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tprivate static handler(task:Function, d:DeferInterval):void\r\n\t{\r\n\t\tif(!(--d._remaining)) d.cancel();\r\n\t\ttask();\r\n\t}\r\n\r\n}\r\n\r\n\r\nexport default function defer(\r\n\ttask:Closure,\r\n\tdelay?:number):ICancellable\r\n{\r\n\treturn new Defer(task, delay);\r\n}\r\n\r\nexport function interval(\r\n\ttask:Function,\r\n\tinterval:number,\r\n\tcount:number = Infinity):ICancellable\r\n{\r\n\treturn new DeferInterval(task, interval, count);\r\n}"]} \ No newline at end of file +{"version":3,"sources":["System/Tasks/defer.js","System/Tasks/defer.ts"],"names":[],"mappings":";;;;AAIA;;;;;;;;;;ICIA;;;;;;;kCAOQ;AAEN,iBAAK,MAAL,GAFM;;;;WAPR;;;IAaA;;;AAIC,aAJD,KAIC,CAAY,IAAZ,EAA0B,KAA1B,EAAuC;8BAJxC,OAIwC;;2EAJxC,mBAIwC;;AAGtC,YAAG,EAAE,SAAO,CAAP,CAAF,EAAa,QAAQ,CAAR,CAAhB;AACA,cAAK,GAAL,GAAW,WAAW,MAAM,OAAN,EAAe,KAA1B,EAAiC,IAAjC,QAAX,CAJsC;;KAAvC;;iBAJD;;iCAWO;AAEL,gBAAI,KAAK,KAAK,GAAL,CAFJ;AAGL,gBAAG,EAAH,EACA;AACC,6BAAa,EAAb,EADD;AAEC,qBAAK,GAAL,GAAW,IAAX,CAFD;AAGC,uBAAO,IAAP,CAHD;aADA;AAMA,mBAAO,KAAP,CATK;;;;gCAaiB,MAAe,GAAO;AAE5C,cAAE,MAAF,GAF4C;AAG5C,mBAH4C;;;;WAxB9C;EAAoB;;IAgCpB;;;AAIC,aAJD,aAIC,CACC,IADD,EAEC,QAFD,EAGqC;YAA5B,mEAAoB,wBAAQ;;8BAPtC,eAOsC;;4EAPtC,2BAOsC;;AAA5B,eAAA,UAAA,GAAA,UAAA,CAA4B;AAGpC,YAAG,aAAW,IAAX,IAAmB,aAAY,KAAK,CAAL,EACjC,MAAM,oCAAN,CADD;AAEA,YAAG,WAAS,CAAT,EACF,MAAM,gCAAN,CADD;AAGA,eAAK,GAAL,GAAW,YAAY,cAAc,OAAd,EAAuB,QAAnC,EAA6C,IAA7C,SAAX,CARoC;;KAHrC;;iBAJD;;iCAkBO;AAEL,gBAAI,KAAK,KAAK,GAAL,CAFJ;AAGL,gBAAG,EAAH,EACA;AACC,8BAAc,EAAd,EADD;AAEC,qBAAK,GAAL,GAAW,IAAX,CAFD;AAGC,uBAAO,IAAP,CAHD;aADA;AAMA,mBAAO,KAAP,CATK;;;;gCAYiB,MAAe,GAAe;AAEpD,gBAAG,EAAE,EAAE,EAAE,UAAF,EAAe,EAAE,MAAF,GAAtB;AACA,mBAHoD;;;;WA9BtD;EAA4B;;AAuC5B,SAAA,KAAA,CACC,IADD,EAEC,KAFD,EAEc;AAEb,WAAO,IAAI,KAAJ,CAAU,IAAV,EAAgB,KAAhB,CAAP,CAFa;CAFd;AAAA,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADhCA,QAAQ,OAAR,GAAkB,KAAlB;ACuCA,SAAA,QAAA,CACC,IADD,EAEC,QAFD,EAGwB;QAAvB,8DAAe,wBAAQ;;AAEvB,WAAO,IAAI,aAAJ,CAAkB,IAAlB,EAAwB,QAAxB,EAAkC,KAAlC,CAAP,CAFuB;CAHxB;AAAgB,QAAA,QAAA,GAAQ,QAAR","file":"System/Tasks/defer.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nclass DeferBase {\n dispose() {\n this.cancel();\n }\n}\nclass Defer extends DeferBase {\n constructor(task, delay) {\n super();\n if (!(delay >= 0))\n delay = 0;\n this._id = setTimeout(Defer.handler, delay, task, this);\n }\n cancel() {\n var id = this._id;\n if (id) {\n clearTimeout(id);\n this._id = null;\n return true;\n }\n return false;\n }\n static handler(task, d) {\n d.cancel();\n task();\n }\n}\nclass DeferInterval extends DeferBase {\n constructor(task, interval, _remaining = Infinity) {\n super();\n this._remaining = _remaining;\n if (interval === null || interval === void (0))\n throw \"'interval' must be a valid number.\";\n if (interval < 0)\n throw \"'interval' cannot be negative.\";\n this._id = setInterval(DeferInterval.handler, interval, task, this);\n }\n cancel() {\n var id = this._id;\n if (id) {\n clearInterval(id);\n this._id = null;\n return true;\n }\n return false;\n }\n static handler(task, d) {\n if (!(--d._remaining))\n d.cancel();\n task();\n }\n}\nfunction defer(task, delay) {\n return new Defer(task, delay);\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = defer;\nfunction interval(task, interval, count = Infinity) {\n return new DeferInterval(task, interval, count);\n}\nexports.interval = interval;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {ICancellable} from \"./ICancellable\";\r\nimport {Closure} from \"../FunctionTypes\";\r\nabstract class DeferBase implements ICancellable\r\n{\r\n\t// It may be a Timer in node, should not be restricted to number.\r\n\tprotected _id:any;\r\n\r\n\tabstract cancel():boolean;\r\n\r\n\tdispose():void\r\n\t{\r\n\t\tthis.cancel();\r\n\t}\r\n}\r\n\r\nclass Defer extends DeferBase\r\n{\r\n\r\n\r\n\tconstructor(task:Closure, delay?:number)\r\n\t{\r\n\t\tsuper();\r\n\t\tif(!(delay>=0)) delay = 0;\r\n\t\tthis._id = setTimeout(Defer.handler, delay, task, this);\r\n\t}\r\n\r\n\tcancel():boolean\r\n\t{\r\n\t\tvar id = this._id;\r\n\t\tif(id)\r\n\t\t{\r\n\t\t\tclearTimeout(id);\r\n\t\t\tthis._id = null;\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t// Use a static function here to avoid recreating a new function every time.\r\n\tprivate static handler(task:Function, d:Defer):void\r\n\t{\r\n\t\td.cancel();\r\n\t\ttask();\r\n\t}\r\n\r\n}\r\n\r\nclass DeferInterval extends DeferBase\r\n{\r\n\r\n\r\n\tconstructor(\r\n\t\ttask:Function,\r\n\t\tinterval:number,\r\n\t\tprivate _remaining:number = Infinity)\r\n\t{\r\n\t\tsuper();\r\n\t\tif(interval===null || interval=== void(0))\r\n\t\t\tthrow \"'interval' must be a valid number.\";\r\n\t\tif(interval<0)\r\n\t\t\tthrow \"'interval' cannot be negative.\";\r\n\r\n\t\tthis._id = setInterval(DeferInterval.handler, interval, task, this);\r\n\t}\r\n\r\n\tcancel():boolean\r\n\t{\r\n\t\tvar id = this._id;\r\n\t\tif(id)\r\n\t\t{\r\n\t\t\tclearInterval(id);\r\n\t\t\tthis._id = null;\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tprivate static handler(task:Function, d:DeferInterval):void\r\n\t{\r\n\t\tif(!(--d._remaining)) d.cancel();\r\n\t\ttask();\r\n\t}\r\n\r\n}\r\n\r\n\r\nexport default function defer(\r\n\ttask:Closure,\r\n\tdelay?:number):ICancellable\r\n{\r\n\treturn new Defer(task, delay);\r\n}\r\n\r\nexport function interval(\r\n\ttask:Function,\r\n\tinterval:number,\r\n\tcount:number = Infinity):ICancellable\r\n{\r\n\treturn new DeferInterval(task, interval, count);\r\n}"]} \ No newline at end of file diff --git a/dist/commonjs/System/Tasks/deferImmediate.d.ts b/dist/commonjs/System/Tasks/deferImmediate.d.ts index 9c479d18..7181db61 100644 --- a/dist/commonjs/System/Tasks/deferImmediate.d.ts +++ b/dist/commonjs/System/Tasks/deferImmediate.d.ts @@ -1,8 +1,9 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based on code from: https://github.com/kriskowal/q */ +import { Closure } from "../FunctionTypes"; +import { ICancellable } from "./ICancellable"; export default function deferImmediate(task: Closure): ICancellable; export declare function runAfterDeferred(task: Closure): void; diff --git a/dist/commonjs/System/Tasks/deferImmediate.js b/dist/commonjs/System/Tasks/deferImmediate.js index 5cddcc67..54857290 100644 --- a/dist/commonjs/System/Tasks/deferImmediate.js +++ b/dist/commonjs/System/Tasks/deferImmediate.js @@ -8,7 +8,6 @@ var Types_1 = require("../Types"); var LinkedNodeList_1 = require("../Collections/LinkedNodeList"); var Queue_1 = require("../Collections/Queue"); -"use strict"; var requestTick; var isNodeJS = false; var flushing = false; @@ -29,8 +28,8 @@ function flush() { } flushing = false; } -var immediateQueue = new LinkedNodeList_1.default(); -var laterQueue = new Queue_1.default(); +var immediateQueue = new LinkedNodeList_1.LinkedNodeList(); +var laterQueue = new Queue_1.Queue(); function runSingle(task, domain) { try { task(); @@ -85,7 +84,7 @@ function runAfterDeferred(task) { requestFlush(); } exports.runAfterDeferred = runAfterDeferred; -if (Types_1.default.isObject(process) && process.toString() === "[object process]" && process.nextTick) { +if (Types_1.Type.isObject(process) && process.toString() === "[object process]" && process.nextTick) { isNodeJS = true; requestTick = function requestTick() { process.nextTick(flush); diff --git a/dist/commonjs/System/Tasks/deferImmediate.js.map b/dist/commonjs/System/Tasks/deferImmediate.js.map index a8ed025b..4eb457e7 100644 --- a/dist/commonjs/System/Tasks/deferImmediate.js.map +++ b/dist/commonjs/System/Tasks/deferImmediate.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Tasks/deferImmediate.js","System/Tasks/deferImmediate.ts"],"names":[],"mappings":"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","file":"System/Tasks/deferImmediate.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based on code from: https://github.com/kriskowal/q\n */\n\"use strict\";\nconst Types_1 = require(\"../Types\");\nconst LinkedNodeList_1 = require(\"../Collections/LinkedNodeList\");\nconst Queue_1 = require(\"../Collections/Queue\");\n\"use strict\";\nvar requestTick;\nvar isNodeJS = false;\nvar flushing = false;\nfunction flush() {\n var entry;\n while (entry = immediateQueue.first) {\n let { task, domain } = entry;\n immediateQueue.removeNode(entry);\n if (domain)\n domain.enter();\n runSingle(task, domain);\n }\n let task;\n while (task = laterQueue.dequeue()) {\n runSingle(task);\n }\n flushing = false;\n}\nvar immediateQueue = new LinkedNodeList_1.default();\nvar laterQueue = new Queue_1.default();\nfunction runSingle(task, domain) {\n try {\n task();\n }\n catch (e) {\n if (isNodeJS) {\n if (domain) {\n domain.exit();\n }\n setTimeout(flush, 0);\n if (domain) {\n domain.enter();\n }\n throw e;\n }\n else {\n setTimeout(() => {\n throw e;\n }, 0);\n }\n }\n if (domain) {\n domain.exit();\n }\n}\nfunction requestFlush() {\n if (!flushing) {\n flushing = true;\n requestTick();\n }\n}\nfunction deferImmediate(task) {\n var entry = {\n task: task,\n domain: isNodeJS && process['domain']\n };\n immediateQueue.addNode(entry);\n requestFlush();\n return {\n cancel: () => !!immediateQueue.removeNode(entry),\n dispose: () => { this.cancel(); }\n };\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = deferImmediate;\nfunction runAfterDeferred(task) {\n laterQueue.enqueue(task);\n requestFlush();\n}\nexports.runAfterDeferred = runAfterDeferred;\nif (Types_1.default.isObject(process)\n && process.toString() === \"[object process]\"\n && process.nextTick) {\n isNodeJS = true;\n requestTick = () => {\n process.nextTick(flush);\n };\n}\nelse if (typeof setImmediate === \"function\") {\n if (typeof window !== \"undefined\") {\n requestTick = setImmediate.bind(window, flush);\n }\n else {\n requestTick = () => {\n setImmediate(flush);\n };\n }\n}\nelse if (typeof MessageChannel !== \"undefined\") {\n var channel = new MessageChannel();\n channel.port1.onmessage = function () {\n requestTick = requestPortTick;\n channel.port1.onmessage = flush;\n flush();\n };\n var requestPortTick = () => {\n channel.port2.postMessage(0);\n };\n requestTick = () => {\n setTimeout(flush, 0);\n requestPortTick();\n };\n}\nelse {\n requestTick = () => {\n setTimeout(flush, 0);\n };\n}\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based on code from: https://github.com/kriskowal/q\r\n */\r\n\r\n///\r\nimport Type from \"../Types\";\r\nimport LinkedNodeList from \"../Collections/LinkedNodeList\";\r\nimport Queue from \"../Collections/Queue\";\r\n\r\ndeclare module process\r\n{\r\n\texport function nextTick(callback:Closure):void;\r\n\r\n\texport function toString():string;\r\n}\r\n\r\ninterface IDomain\r\n{\r\n\tenter():void;\r\n\texit():void;\r\n}\r\n\r\ninterface ITaskQueueEntry extends ILinkedNode\r\n{\r\n\ttask:Closure;\r\n\tdomain?:IDomain;\r\n}\r\n\r\n\r\n\"use strict\";\r\n\r\nvar requestTick:()=>void;\r\nvar isNodeJS:boolean = false;\r\nvar flushing:boolean = false;\r\n\r\n// Use the fastest possible means to execute a task in a future turn\r\n// of the event loop.\r\n\r\n\r\nfunction flush():void\r\n{\r\n\t/* jshint loopfunc: true */\r\n\tvar entry:ITaskQueueEntry;\r\n\twhile(entry = immediateQueue.first)\r\n\t{\r\n\t\tlet {task, domain} = entry;\r\n\t\timmediateQueue.removeNode(entry);\r\n\t\tif(domain) domain.enter();\r\n\t\trunSingle(task, domain);\r\n\t}\r\n\r\n\tlet task:Closure;\r\n\twhile(task = laterQueue.dequeue())\r\n\t{\r\n\t\trunSingle(task);\r\n\t}\r\n\r\n\tflushing = false;\r\n}\r\n\r\n\r\n// linked list of tasks. Using a real linked list to allow for removal.\r\nvar immediateQueue = new LinkedNodeList();\r\n\r\n// queue for late tasks, used by unhandled rejection tracking\r\nvar laterQueue:Queue = new Queue();\r\n\r\nfunction runSingle(task:Closure, domain?:IDomain):void\r\n{\r\n\ttry\r\n\t{\r\n\t\ttask();\r\n\r\n\t}\r\n\tcatch(e)\r\n\t{\r\n\t\tif(isNodeJS)\r\n\t\t{\r\n\t\t\t// In node, uncaught exceptions are considered fatal errors.\r\n\t\t\t// Re-throw them synchronously to interrupt flushing!\r\n\r\n\t\t\t// Ensure continuation if the uncaught exception is suppressed\r\n\t\t\t// listening \"uncaughtException\" events (as domains does).\r\n\t\t\t// Continue in next event to avoid tick recursion.\r\n\t\t\tif(domain)\r\n\t\t\t{\r\n\t\t\t\tdomain.exit();\r\n\t\t\t}\r\n\t\t\tsetTimeout(flush, 0);\r\n\t\t\tif(domain)\r\n\t\t\t{\r\n\t\t\t\tdomain.enter();\r\n\t\t\t}\r\n\r\n\t\t\tthrow e;\r\n\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t// In browsers, uncaught exceptions are not fatal.\r\n\t\t\t// Re-throw them asynchronously to avoid slow-downs.\r\n\t\t\tsetTimeout(()=>\r\n\t\t\t{\r\n\t\t\t\tthrow e;\r\n\t\t\t}, 0);\r\n\t\t}\r\n\t}\r\n\r\n\tif(domain)\r\n\t{\r\n\t\tdomain.exit();\r\n\t}\r\n}\r\n\r\nfunction requestFlush():void\r\n{\r\n\tif(!flushing)\r\n\t{\r\n\t\tflushing = true;\r\n\t\trequestTick();\r\n\t}\r\n}\r\n\r\nexport default function deferImmediate(task:Closure):ICancellable\r\n{\r\n\tvar entry:ITaskQueueEntry = {\r\n\t\ttask: task,\r\n\t\tdomain: isNodeJS && (process)['domain']\r\n\t};\r\n\r\n\timmediateQueue.addNode(entry);\r\n\r\n\trequestFlush();\r\n\r\n\treturn {\r\n\t\tcancel:()=>!!immediateQueue.removeNode(entry),\r\n\t\tdispose:()=>{ this.cancel(); }\r\n\t}\r\n}\r\n\r\n\r\n// runs a task after all other tasks have been run\r\n// this is useful for unhandled rejection tracking that needs to happen\r\n// after all `then`d tasks have been run.\r\nexport function runAfterDeferred(task:Closure):void\r\n{\r\n\tlaterQueue.enqueue(task);\r\n\trequestFlush();\r\n}\r\n\r\n\r\nif(Type.isObject(process)\r\n\t&& process.toString()===\"[object process]\"\r\n\t&& process.nextTick)\r\n{\r\n\t/*\r\n\tEnsure is in a real Node environment, with a `process.nextTick`.\r\n\tTo see through fake Node environments:\r\n\t* Mocha test runner - exposes a `process` global without a `nextTick`\r\n\t* Browserify - exposes a `process.nexTick` function that uses\r\n\t `setTimeout`. In this case `setImmediate` is preferred because\r\n\t it is faster. Browserify's `process.toString()` yields\r\n\t \"[object Object]\", while in a real Node environment\r\n\t `process.nextTick()` yields \"[object process]\".\r\n\t*/\r\n\tisNodeJS = true;\r\n\r\n\trequestTick = ()=>\r\n\t{\r\n\t\tprocess.nextTick(flush);\r\n\t};\r\n\r\n}\r\nelse if(typeof setImmediate===\"function\")\r\n{\r\n\t// In IE10, Node.js 0.9+, or https://github.com/NobleJS/setImmediate\r\n\tif(typeof window!==\"undefined\")\r\n\t{\r\n\t\trequestTick = setImmediate.bind(window, flush);\r\n\t}\r\n\telse\r\n\t{\r\n\t\trequestTick = ()=>\r\n\t\t{\r\n\t\t\tsetImmediate(flush);\r\n\t\t};\r\n\t}\r\n\r\n}\r\nelse if(typeof MessageChannel!==\"undefined\")\r\n{\r\n\t// modern browsers\r\n\t// http://www.nonblocking.io/2011/06/windownexttick.html\r\n\tvar channel = new MessageChannel();\r\n\t// At least Safari Version 6.0.5 (8536.30.1) intermittently cannot create\r\n\t// working message ports the first time a page loads.\r\n\tchannel.port1.onmessage = function()\r\n\t{\r\n\t\trequestTick = requestPortTick;\r\n\t\tchannel.port1.onmessage = flush;\r\n\t\tflush();\r\n\t};\r\n\tvar requestPortTick = ()=>\r\n\t{\r\n\t\t// Opera requires us to provide a message payload, regardless of\r\n\t\t// whether we use it.\r\n\t\tchannel.port2.postMessage(0);\r\n\t};\r\n\trequestTick = ()=>\r\n\t{\r\n\t\tsetTimeout(flush, 0);\r\n\t\trequestPortTick();\r\n\t};\r\n\r\n}\r\nelse\r\n{\r\n\t// old browsers\r\n\trequestTick = ()=>\r\n\t{\r\n\t\tsetTimeout(flush, 0);\r\n\t};\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Tasks/deferImmediate.js","System/Tasks/deferImmediate.ts"],"names":[],"mappings":"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","file":"System/Tasks/deferImmediate.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based on code from: https://github.com/kriskowal/q\n */\n\"use strict\";\nconst Types_1 = require(\"../Types\");\nconst LinkedNodeList_1 = require(\"../Collections/LinkedNodeList\");\nconst Queue_1 = require(\"../Collections/Queue\");\nvar requestTick;\nvar isNodeJS = false;\nvar flushing = false;\nfunction flush() {\n var entry;\n while (entry = immediateQueue.first) {\n let { task, domain } = entry;\n immediateQueue.removeNode(entry);\n if (domain)\n domain.enter();\n runSingle(task, domain);\n }\n let task;\n while (task = laterQueue.dequeue()) {\n runSingle(task);\n }\n flushing = false;\n}\nvar immediateQueue = new LinkedNodeList_1.LinkedNodeList();\nvar laterQueue = new Queue_1.Queue();\nfunction runSingle(task, domain) {\n try {\n task();\n }\n catch (e) {\n if (isNodeJS) {\n if (domain) {\n domain.exit();\n }\n setTimeout(flush, 0);\n if (domain) {\n domain.enter();\n }\n throw e;\n }\n else {\n setTimeout(() => {\n throw e;\n }, 0);\n }\n }\n if (domain) {\n domain.exit();\n }\n}\nfunction requestFlush() {\n if (!flushing) {\n flushing = true;\n requestTick();\n }\n}\nfunction deferImmediate(task) {\n var entry = {\n task: task,\n domain: isNodeJS && process['domain']\n };\n immediateQueue.addNode(entry);\n requestFlush();\n return {\n cancel: () => !!immediateQueue.removeNode(entry),\n dispose: () => { this.cancel(); }\n };\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = deferImmediate;\nfunction runAfterDeferred(task) {\n laterQueue.enqueue(task);\n requestFlush();\n}\nexports.runAfterDeferred = runAfterDeferred;\nif (Types_1.Type.isObject(process)\n && process.toString() === \"[object process]\"\n && process.nextTick) {\n isNodeJS = true;\n requestTick = () => {\n process.nextTick(flush);\n };\n}\nelse if (typeof setImmediate === \"function\") {\n if (typeof window !== \"undefined\") {\n requestTick = setImmediate.bind(window, flush);\n }\n else {\n requestTick = () => {\n setImmediate(flush);\n };\n }\n}\nelse if (typeof MessageChannel !== \"undefined\") {\n var channel = new MessageChannel();\n channel.port1.onmessage = function () {\n requestTick = requestPortTick;\n channel.port1.onmessage = flush;\n flush();\n };\n var requestPortTick = () => {\n channel.port2.postMessage(0);\n };\n requestTick = () => {\n setTimeout(flush, 0);\n requestPortTick();\n };\n}\nelse {\n requestTick = () => {\n setTimeout(flush, 0);\n };\n}\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based on code from: https://github.com/kriskowal/q\r\n */\r\n\r\n\r\nimport {Type} from \"../Types\";\r\nimport {LinkedNodeList} from \"../Collections/LinkedNodeList\";\r\nimport {Queue} from \"../Collections/Queue\";\r\nimport {Closure} from \"../FunctionTypes\";\r\nimport {ILinkedNode} from \"../Collections/ILinkedListNode\";\r\nimport {ICancellable} from \"./ICancellable\";\r\n\r\ndeclare module process\r\n{\r\n\texport function nextTick(callback:Closure):void;\r\n\r\n\texport function toString():string;\r\n}\r\n\r\ninterface IDomain\r\n{\r\n\tenter():void;\r\n\texit():void;\r\n}\r\n\r\ninterface ITaskQueueEntry extends ILinkedNode\r\n{\r\n\ttask:Closure;\r\n\tdomain?:IDomain;\r\n}\r\n\r\n\r\nvar requestTick:()=>void;\r\nvar isNodeJS:boolean = false;\r\nvar flushing:boolean = false;\r\n\r\n// Use the fastest possible means to execute a task in a future turn\r\n// of the event loop.\r\n\r\n\r\nfunction flush():void\r\n{\r\n\t/* jshint loopfunc: true */\r\n\tvar entry:ITaskQueueEntry;\r\n\twhile(entry = immediateQueue.first)\r\n\t{\r\n\t\tlet {task, domain} = entry;\r\n\t\timmediateQueue.removeNode(entry);\r\n\t\tif(domain) domain.enter();\r\n\t\trunSingle(task, domain);\r\n\t}\r\n\r\n\tlet task:Closure;\r\n\twhile(task = laterQueue.dequeue())\r\n\t{\r\n\t\trunSingle(task);\r\n\t}\r\n\r\n\tflushing = false;\r\n}\r\n\r\n\r\n// linked list of tasks. Using a real linked list to allow for removal.\r\nvar immediateQueue = new LinkedNodeList();\r\n\r\n// queue for late tasks, used by unhandled rejection tracking\r\nvar laterQueue:Queue = new Queue();\r\n\r\nfunction runSingle(task:Closure, domain?:IDomain):void\r\n{\r\n\ttry\r\n\t{\r\n\t\ttask();\r\n\r\n\t}\r\n\tcatch(e)\r\n\t{\r\n\t\tif(isNodeJS)\r\n\t\t{\r\n\t\t\t// In node, uncaught exceptions are considered fatal errors.\r\n\t\t\t// Re-throw them synchronously to interrupt flushing!\r\n\r\n\t\t\t// Ensure continuation if the uncaught exception is suppressed\r\n\t\t\t// listening \"uncaughtException\" events (as domains does).\r\n\t\t\t// Continue in next event to avoid tick recursion.\r\n\t\t\tif(domain)\r\n\t\t\t{\r\n\t\t\t\tdomain.exit();\r\n\t\t\t}\r\n\t\t\tsetTimeout(flush, 0);\r\n\t\t\tif(domain)\r\n\t\t\t{\r\n\t\t\t\tdomain.enter();\r\n\t\t\t}\r\n\r\n\t\t\tthrow e;\r\n\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t// In browsers, uncaught exceptions are not fatal.\r\n\t\t\t// Re-throw them asynchronously to avoid slow-downs.\r\n\t\t\tsetTimeout(()=>\r\n\t\t\t{\r\n\t\t\t\tthrow e;\r\n\t\t\t}, 0);\r\n\t\t}\r\n\t}\r\n\r\n\tif(domain)\r\n\t{\r\n\t\tdomain.exit();\r\n\t}\r\n}\r\n\r\nfunction requestFlush():void\r\n{\r\n\tif(!flushing)\r\n\t{\r\n\t\tflushing = true;\r\n\t\trequestTick();\r\n\t}\r\n}\r\n\r\nexport default function deferImmediate(task:Closure):ICancellable\r\n{\r\n\tvar entry:ITaskQueueEntry = {\r\n\t\ttask: task,\r\n\t\tdomain: isNodeJS && (process)['domain']\r\n\t};\r\n\r\n\timmediateQueue.addNode(entry);\r\n\r\n\trequestFlush();\r\n\r\n\treturn {\r\n\t\tcancel: ()=>!!immediateQueue.removeNode(entry),\r\n\t\tdispose: ()=> { this.cancel(); }\r\n\t}\r\n}\r\n\r\n\r\n// runs a task after all other tasks have been run\r\n// this is useful for unhandled rejection tracking that needs to happen\r\n// after all `then`d tasks have been run.\r\nexport function runAfterDeferred(task:Closure):void\r\n{\r\n\tlaterQueue.enqueue(task);\r\n\trequestFlush();\r\n}\r\n\r\n\r\nif(Type.isObject(process)\r\n\t&& process.toString()===\"[object process]\"\r\n\t&& process.nextTick)\r\n{\r\n\t/*\r\n\tEnsure is in a real Node environment, with a `process.nextTick`.\r\n\tTo see through fake Node environments:\r\n\t* Mocha test runner - exposes a `process` global without a `nextTick`\r\n\t* Browserify - exposes a `process.nexTick` function that uses\r\n\t `setTimeout`. In this case `setImmediate` is preferred because\r\n\t it is faster. Browserify's `process.toString()` yields\r\n\t \"[object Object]\", while in a real Node environment\r\n\t `process.nextTick()` yields \"[object process]\".\r\n\t*/\r\n\tisNodeJS = true;\r\n\r\n\trequestTick = ()=>\r\n\t{\r\n\t\tprocess.nextTick(flush);\r\n\t};\r\n\r\n}\r\nelse if(typeof setImmediate===\"function\")\r\n{\r\n\t// In IE10, Node.js 0.9+, or https://github.com/NobleJS/setImmediate\r\n\tif(typeof window!==\"undefined\")\r\n\t{\r\n\t\trequestTick = setImmediate.bind(window, flush);\r\n\t}\r\n\telse\r\n\t{\r\n\t\trequestTick = ()=>\r\n\t\t{\r\n\t\t\tsetImmediate(flush);\r\n\t\t};\r\n\t}\r\n\r\n}\r\nelse if(typeof MessageChannel!==\"undefined\")\r\n{\r\n\t// modern browsers\r\n\t// http://www.nonblocking.io/2011/06/windownexttick.html\r\n\tvar channel = new MessageChannel();\r\n\t// At least Safari Version 6.0.5 (8536.30.1) intermittently cannot create\r\n\t// working message ports the first time a page loads.\r\n\tchannel.port1.onmessage = function()\r\n\t{\r\n\t\trequestTick = requestPortTick;\r\n\t\tchannel.port1.onmessage = flush;\r\n\t\tflush();\r\n\t};\r\n\tvar requestPortTick = ()=>\r\n\t{\r\n\t\t// Opera requires us to provide a message payload, regardless of\r\n\t\t// whether we use it.\r\n\t\tchannel.port2.postMessage(0);\r\n\t};\r\n\trequestTick = ()=>\r\n\t{\r\n\t\tsetTimeout(flush, 0);\r\n\t\trequestPortTick();\r\n\t};\r\n\r\n}\r\nelse\r\n{\r\n\t// old browsers\r\n\trequestTick = ()=>\r\n\t{\r\n\t\tsetTimeout(flush, 0);\r\n\t};\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/commonjs/System/Text/RegexMatchEnumerator.d.ts b/dist/commonjs/System/Text/RegexMatchEnumerator.d.ts index 90c0d0d9..70eb1c89 100644 --- a/dist/commonjs/System/Text/RegexMatchEnumerator.d.ts +++ b/dist/commonjs/System/Text/RegexMatchEnumerator.d.ts @@ -1,9 +1,9 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ import { Regex, Match } from "./RegularExpressions"; +import { IEnumerator } from "../Collections/Enumeration/IEnumerator"; export declare class RegexMatchEnumerator { private _pattern; constructor(pattern: string | RegExp | Regex); diff --git a/dist/commonjs/System/Text/RegexMatchEnumerator.js b/dist/commonjs/System/Text/RegexMatchEnumerator.js index 2b2a5dd5..a35202ad 100644 --- a/dist/commonjs/System/Text/RegexMatchEnumerator.js +++ b/dist/commonjs/System/Text/RegexMatchEnumerator.js @@ -29,7 +29,7 @@ var RegexMatchEnumerator = function () { var _this = this; var p; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { p = 0; }, function (yielder) { var match = _this._pattern.match(input, p); diff --git a/dist/commonjs/System/Text/RegexMatchEnumerator.js.map b/dist/commonjs/System/Text/RegexMatchEnumerator.js.map index 6c240a3f..37dbb781 100644 --- a/dist/commonjs/System/Text/RegexMatchEnumerator.js.map +++ b/dist/commonjs/System/Text/RegexMatchEnumerator.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Text/RegexMatchEnumerator.js","System/Text/RegexMatchEnumerator.ts"],"names":[],"mappings":";;;;AAIA;;;;;;ACEA,IAAA,uBAAA,QAA2B,sBAA3B,CAAA;AACA,IAAA,eAAA,QAAoB,uCAApB,CAAA;AACA,IAAA,mBAAA,QAA2B,2CAA3B,CAAA;;IACA;AAIC,aAJD,oBAIC,CAAY,OAAZ,EAAuC;8BAJxC,sBAIwC;;AAEtC,YAAG,mBAAmB,qBAAA,KAAA,EACtB;AACC,iBAAK,QAAL,GAAgB,OAAhB,CADD;SADA,MAKA;AACC,iBAAK,QAAL,GAAgB,IAAI,qBAAA,KAAA,CAAM,OAAV,CAAhB,CADD;SALA;KAFD;;iBAJD;;gCAgBS,OAAY;;;AAEnB,gBAAI,CAAJ,CAFmB;AAGnB,mBAAO,IAAI,iBAAA,OAAA,CACV,YAAA;AAEC,oBAAI,CAAJ,CAFD;aAAA,EAIA,mBAAO;AAEN,oBAAI,QAAc,MAAK,QAAL,CAAc,KAAd,CAAoB,KAApB,EAA2B,CAA3B,CAAd,CAFE;AAGN,oBAAG,MAAM,OAAN,EACH;AACC,wBAAI,MAAM,KAAN,GAAc,MAAM,MAAN,CADnB;AAEC,2BAAO,QAAQ,WAAR,CAAoB,KAApB,CAAP,CAFD;iBADA;AAMA,uBAAO,QAAQ,UAAR,EAAP,CATM;aAAP,CALD,CAHmB;;;;gCAqBL,OAAc,SAA2B;AAEvD,mBAAO,SAAS,OAAT,GACJ,IAAK,oBAAJ,CAAyB,OAAzB,CAAD,CAAoC,OAApC,CAA4C,KAA5C,CADI,GAEJ,aAAA,KAAA,CAJoD;;;;WArCzD;;;AAAa,QAAA,oBAAA,GAAoB,oBAApB;AA8Cb,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADjBA,QAAQ,OAAR,GCiBe,qBAAqB,OAArB","file":"System/Text/RegexMatchEnumerator.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst RegularExpressions_1 = require(\"./RegularExpressions\");\nconst Enumerator_1 = require(\"../Collections/Enumeration/Enumerator\");\nconst EnumeratorBase_1 = require(\"../Collections/Enumeration/EnumeratorBase\");\nclass RegexMatchEnumerator {\n constructor(pattern) {\n if (pattern instanceof RegularExpressions_1.Regex) {\n this._pattern = pattern;\n }\n else {\n this._pattern = new RegularExpressions_1.Regex(pattern);\n }\n }\n matches(input) {\n var p;\n return new EnumeratorBase_1.default(() => {\n p = 0;\n }, yielder => {\n let match = this._pattern.match(input, p);\n if (match.success) {\n p = match.index + match.length;\n return yielder.yieldReturn(match);\n }\n return yielder.yieldBreak();\n });\n }\n static matches(input, pattern) {\n return input && pattern\n ? (new RegexMatchEnumerator(pattern)).matches(input)\n : Enumerator_1.empty;\n }\n}\nexports.RegexMatchEnumerator = RegexMatchEnumerator;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = RegexMatchEnumerator.matches;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\nimport {Regex, Match} from \"./RegularExpressions\";\r\nimport {empty} from \"../Collections/Enumeration/Enumerator\";\r\nimport EnumeratorBase from \"../Collections/Enumeration/EnumeratorBase\";\r\nexport class RegexMatchEnumerator\r\n{\r\n\tprivate _pattern:Regex;\r\n\r\n\tconstructor(pattern:string|RegExp|Regex)\r\n\t{\r\n\t\tif(pattern instanceof Regex)\r\n\t\t{\r\n\t\t\tthis._pattern = pattern;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthis._pattern = new Regex(pattern);\r\n\t\t}\r\n\t}\r\n\r\n\tmatches(input:string):IEnumerator\r\n\t{\r\n\t\tvar p:number; // pointer\r\n\t\treturn new EnumeratorBase(\r\n\t\t\t()=>\r\n\t\t\t{\r\n\t\t\t\tp = 0;\r\n\t\t\t},\r\n\t\t\tyielder=>\r\n\t\t\t{\r\n\t\t\t\tlet match:Match = this._pattern.match(input, p);\r\n\t\t\t\tif(match.success)\r\n\t\t\t\t{\r\n\t\t\t\t\tp = match.index + match.length;\r\n\t\t\t\t\treturn yielder.yieldReturn(match);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t});\r\n\t}\r\n\r\n\tstatic matches(input:string, pattern:string|RegExp|Regex):IEnumerator\r\n\t{\r\n\t\treturn input && pattern\r\n\t\t\t? (new RegexMatchEnumerator(pattern)).matches(input)\r\n\t\t\t: empty;\r\n\t}\r\n\r\n}\r\n\r\nexport default RegexMatchEnumerator.matches;"]} \ No newline at end of file +{"version":3,"sources":["System/Text/RegexMatchEnumerator.js","System/Text/RegexMatchEnumerator.ts"],"names":[],"mappings":";;;;AAIA;;;;;;ACCA,IAAA,uBAAA,QAA2B,sBAA3B,CAAA;AACA,IAAA,eAAA,QAAoB,uCAApB,CAAA;AACA,IAAA,mBAAA,QAA6B,2CAA7B,CAAA;;IAGA;AAIC,aAJD,oBAIC,CAAY,OAAZ,EAAuC;8BAJxC,sBAIwC;;AAEtC,YAAG,mBAAmB,qBAAA,KAAA,EACtB;AACC,iBAAK,QAAL,GAAgB,OAAhB,CADD;SADA,MAKA;AACC,iBAAK,QAAL,GAAgB,IAAI,qBAAA,KAAA,CAAM,OAAV,CAAhB,CADD;SALA;KAFD;;iBAJD;;gCAgBS,OAAY;;;AAEnB,gBAAI,CAAJ,CAFmB;AAGnB,mBAAO,IAAI,iBAAA,cAAA,CACV,YAAA;AAEC,oBAAI,CAAJ,CAFD;aAAA,EAIA,mBAAO;AAEN,oBAAI,QAAc,MAAK,QAAL,CAAc,KAAd,CAAoB,KAApB,EAA2B,CAA3B,CAAd,CAFE;AAGN,oBAAG,MAAM,OAAN,EACH;AACC,wBAAI,MAAM,KAAN,GAAc,MAAM,MAAN,CADnB;AAEC,2BAAO,QAAQ,WAAR,CAAoB,KAApB,CAAP,CAFD;iBADA;AAMA,uBAAO,QAAQ,UAAR,EAAP,CATM;aAAP,CALD,CAHmB;;;;gCAqBL,OAAc,SAA2B;AAEvD,mBAAO,SAAS,OAAT,GACJ,IAAK,oBAAJ,CAAyB,OAAzB,CAAD,CAAoC,OAApC,CAA4C,KAA5C,CADI,GAEJ,aAAA,KAAA,CAJoD;;;;WArCzD;;;AAAa,QAAA,oBAAA,GAAoB,oBAApB;AA8Cb,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADlBA,QAAQ,OAAR,GCkBe,qBAAqB,OAArB","file":"System/Text/RegexMatchEnumerator.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst RegularExpressions_1 = require(\"./RegularExpressions\");\nconst Enumerator_1 = require(\"../Collections/Enumeration/Enumerator\");\nconst EnumeratorBase_1 = require(\"../Collections/Enumeration/EnumeratorBase\");\nclass RegexMatchEnumerator {\n constructor(pattern) {\n if (pattern instanceof RegularExpressions_1.Regex) {\n this._pattern = pattern;\n }\n else {\n this._pattern = new RegularExpressions_1.Regex(pattern);\n }\n }\n matches(input) {\n var p;\n return new EnumeratorBase_1.EnumeratorBase(() => {\n p = 0;\n }, yielder => {\n let match = this._pattern.match(input, p);\n if (match.success) {\n p = match.index + match.length;\n return yielder.yieldReturn(match);\n }\n return yielder.yieldBreak();\n });\n }\n static matches(input, pattern) {\n return input && pattern\n ? (new RegexMatchEnumerator(pattern)).matches(input)\n : Enumerator_1.empty;\n }\n}\nexports.RegexMatchEnumerator = RegexMatchEnumerator;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = RegexMatchEnumerator.matches;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {Regex, Match} from \"./RegularExpressions\";\r\nimport {empty} from \"../Collections/Enumeration/Enumerator\";\r\nimport {EnumeratorBase} from \"../Collections/Enumeration/EnumeratorBase\";\r\nimport {IEnumerator} from \"../Collections/Enumeration/IEnumerator\";\r\n\r\nexport class RegexMatchEnumerator\r\n{\r\n\tprivate _pattern:Regex;\r\n\r\n\tconstructor(pattern:string|RegExp|Regex)\r\n\t{\r\n\t\tif(pattern instanceof Regex)\r\n\t\t{\r\n\t\t\tthis._pattern = pattern;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthis._pattern = new Regex(pattern);\r\n\t\t}\r\n\t}\r\n\r\n\tmatches(input:string):IEnumerator\r\n\t{\r\n\t\tvar p:number; // pointer\r\n\t\treturn new EnumeratorBase(\r\n\t\t\t()=>\r\n\t\t\t{\r\n\t\t\t\tp = 0;\r\n\t\t\t},\r\n\t\t\tyielder=>\r\n\t\t\t{\r\n\t\t\t\tlet match:Match = this._pattern.match(input, p);\r\n\t\t\t\tif(match.success)\r\n\t\t\t\t{\r\n\t\t\t\t\tp = match.index + match.length;\r\n\t\t\t\t\treturn yielder.yieldReturn(match);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t});\r\n\t}\r\n\r\n\tstatic matches(input:string, pattern:string|RegExp|Regex):IEnumerator\r\n\t{\r\n\t\treturn input && pattern\r\n\t\t\t? (new RegexMatchEnumerator(pattern)).matches(input)\r\n\t\t\t: empty;\r\n\t}\r\n\r\n}\r\n\r\nexport default RegexMatchEnumerator.matches;"]} \ No newline at end of file diff --git a/dist/commonjs/System/Text/RegularExpressions.d.ts b/dist/commonjs/System/Text/RegularExpressions.d.ts index af3b1fbd..e3638f84 100644 --- a/dist/commonjs/System/Text/RegularExpressions.d.ts +++ b/dist/commonjs/System/Text/RegularExpressions.d.ts @@ -1,9 +1,11 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Named groups based on: http://trentrichardson.com/2011/08/02/javascript-regexp-match-named-captures/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { IMap } from "../Collections/Dictionaries/IDictionary"; +import { Primitive } from "../Primitive"; +import { Selector } from "../FunctionTypes"; export declare module RegexOptions { const IGNORE_CASE: string; const I: string; diff --git a/dist/commonjs/System/Text/RegularExpressions.js.map b/dist/commonjs/System/Text/RegularExpressions.js.map index b5ba7679..8a498ba0 100644 --- a/dist/commonjs/System/Text/RegularExpressions.js.map +++ b/dist/commonjs/System/Text/RegularExpressions.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Text/RegularExpressions.js","System/Text/RegularExpressions.ts"],"names":[],"mappings":"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","file":"System/Text/RegularExpressions.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Named groups based on: http://trentrichardson.com/2011/08/02/javascript-regexp-match-named-captures/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst EMPTY = \"\";\nconst UNDEFINED = \"undefined\";\nconst _I = 'i', _G = 'g', _M = 'm', _U = 'u', _W = 'w', _Y = 'y';\nvar RegexOptions;\n(function (RegexOptions) {\n RegexOptions.IGNORE_CASE = _I;\n RegexOptions.I = _I;\n RegexOptions.GLOBAL = _G;\n RegexOptions.G = _G;\n RegexOptions.MULTI_LINE = _M;\n RegexOptions.M = _M;\n RegexOptions.UNICODE = _U;\n RegexOptions.U = _U;\n RegexOptions.STICKY = _Y;\n RegexOptions.Y = _Y;\n RegexOptions.IGNORE_PATTERN_WHITESPACE = _W;\n RegexOptions.W = _W;\n})(RegexOptions = exports.RegexOptions || (exports.RegexOptions = {}));\nclass Regex {\n constructor(pattern, options, ...extra) {\n if (!pattern)\n throw new Error(\"'pattern' cannot be null or empty.\");\n var patternString, flags = (options && (Array.isArray(options) ? options : [options]).concat(extra) || extra)\n .join(EMPTY).toLowerCase();\n if (pattern instanceof RegExp) {\n let p = pattern;\n if (p.ignoreCase && flags.indexOf(_I) === -1)\n flags += _I;\n if (p.multiline && flags.indexOf(_M) === -1)\n flags += _M;\n patternString = p.source;\n }\n else {\n patternString = pattern;\n }\n var ignoreWhiteSpace = flags.indexOf(_W) != -1;\n flags = flags.replace(/[gw]/g, EMPTY);\n var keys = [];\n {\n let k = patternString.match(/(?!\\(\\?<)(\\w+)(?=>)/g);\n if (k) {\n for (let i = 0, len = k.length; i < len; i++) {\n keys[i + 1] = k[i];\n }\n patternString = patternString.replace(/\\?<\\w+>/g, EMPTY);\n this._keys = keys;\n }\n if (ignoreWhiteSpace)\n patternString = patternString.replace(/\\s+/g, \"\\\\s*\");\n this._re = new RegExp(patternString, flags);\n }\n Object.freeze(this);\n }\n match(input, startIndex = 0) {\n var _ = this;\n var r;\n if (!input\n || startIndex >= input.length\n || !(r = this._re.exec(input.substring(startIndex))))\n return Match.Empty;\n if (!(startIndex > 0))\n startIndex = 0;\n var first = startIndex + r.index, loc = first, groups = [], groupMap = {};\n for (let i = 0, len = r.length; i < len; ++i) {\n let text = r[i];\n let g = EmptyGroup;\n if (text !== null || text !== void 0) {\n g = new Group(text, loc);\n g.freeze();\n }\n if (i && _._keys && i < _._keys.length)\n groupMap[_._keys[i]] = g;\n groups.push(g);\n if (i !== 0)\n loc += text.length;\n }\n var m = new Match(r[0], first, groups, groupMap);\n m.freeze();\n return m;\n }\n matches(input) {\n var matches = [], m, p = 0, end = input && input.length || 0;\n while (p < end && (m = this.match(input, p)) && m.success) {\n matches.push(m);\n p = m.index + m.length;\n }\n return Object.freeze(matches);\n }\n replace(input, r, count = Infinity) {\n if (!input || r === null || r === void 0 || !(count > 0))\n return input;\n var result = [];\n var p = 0, end = input.length, isEvaluator = typeof r == \"function\";\n var m, i = 0;\n while (i < count && p < end && (m = this.match(input, p)) && m.success) {\n let { index, length } = m;\n if (p !== index)\n result.push(input.substring(p, index));\n result.push(isEvaluator ? r(m, i++) : r);\n p = index + length;\n }\n if (p < end)\n result.push(input.substring(p));\n return result.join(EMPTY);\n }\n isMatch(input) {\n return this._re.test(input);\n }\n static isMatch(input, pattern, options) {\n var r = new Regex(pattern, options);\n return r.isMatch(input);\n }\n static replace(input, pattern, e, options) {\n var r = new Regex(pattern, options);\n return r.replace(input, e);\n }\n}\nexports.Regex = Regex;\nclass Capture {\n constructor(value = EMPTY, index = -1) {\n this.value = value;\n this.index = index;\n }\n get length() {\n var v = this.value;\n return v && v.length || 0;\n }\n freeze() {\n Object.freeze(this);\n }\n}\nexports.Capture = Capture;\nclass Group extends Capture {\n constructor(value = EMPTY, index = -1) {\n super(value, index);\n }\n get success() {\n return this.index != -1;\n }\n static get Empty() {\n return EmptyGroup;\n }\n}\nexports.Group = Group;\nconst EmptyGroup = new Group();\nEmptyGroup.freeze();\nclass Match extends Group {\n constructor(value = EMPTY, index = -1, groups = [], namedGroups = {}) {\n super(value, index);\n this.groups = groups;\n this.namedGroups = namedGroups;\n }\n freeze() {\n if (!this.groups)\n throw new Error(\"'groups' cannot be null.\");\n if (!this.namedGroups)\n throw new Error(\"'groupMap' cannot be null.\");\n Object.freeze(this.groups.slice());\n Object.freeze(this.namedGroups);\n super.freeze();\n }\n static get Empty() {\n return EmptyMatch;\n }\n}\nexports.Match = Match;\nconst EmptyMatch = new Match();\nEmptyMatch.freeze();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Regex;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Named groups based on: http://trentrichardson.com/2011/08/02/javascript-regexp-match-named-captures/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n\r\n// NOTE: Avoid dependencies so this class can be used cleanly.\r\n\r\nconst EMPTY:string = \"\";\r\nconst UNDEFINED:string = \"undefined\";\r\nconst _I = 'i', _G = 'g', _M = 'm', _U = 'u', _W = 'w', _Y = 'y';\r\n\r\n\r\n/**\r\n * https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regexoptions%28v=vs.110%29.aspx\r\n */\r\nexport module RegexOptions\r\n{\r\n\t/**\r\n\t * Specifies case-insensitive matching. For more information, see the \"Case-Insensitive Matching \" section in the Regular Expression Options topic.\r\n\t */\r\n\texport const IGNORE_CASE:string = _I;\r\n\texport const I:string = _I;\r\n\r\n\t/**\r\n\t * Specifies global matching instead of single.\r\n\t */\r\n\texport const GLOBAL:string = _G;\r\n\texport const G:string = _G;\r\n\r\n\t/**\r\n\t * treat beginning and end characters (^ and $) as working over multiple lines (i.e., match the beginning or end of each line (delimited by \\n or \\r), not only the very beginning or end of the whole input string)\r\n\t */\r\n\texport const MULTI_LINE:string = _M;\r\n\texport const M:string = _M;\r\n\r\n\t/**\r\n\t * treat pattern as a sequence of unicode code points\r\n\t */\r\n\texport const UNICODE:string = _U;\r\n\texport const U:string = _U;\r\n\r\n\t/**\r\n\t * matches only from the index indicated by the lastIndex property of this regular expression in the target string (and does not attempt to match from any later indexes).\r\n\t */\r\n\texport const STICKY:string = _Y;\r\n\texport const Y:string = _Y;\r\n\r\n\t/**\r\n\t * Modifies the pattern to ignore standard whitespace characters.\r\n\t */\r\n\texport const IGNORE_PATTERN_WHITESPACE:string = _W;\r\n\texport const W:string = _W;\r\n\r\n\texport type Global = 'g';\r\n\texport type IgnoreCase = 'i';\r\n\texport type MultiLine = 'm';\r\n\texport type Unicode = 'u';\r\n\texport type Sticky = 'y';\r\n\texport type IgnorePatternWhitespace = \"w\";\r\n\r\n\texport type Literal = Global | IgnoreCase | MultiLine | Unicode | Sticky | IgnorePatternWhitespace;\r\n}\r\n\r\nexport interface MatchEvaluator extends Selector\r\n{\r\n}\r\n\r\nexport class Regex\r\n{\r\n\tprivate _re:RegExp;\r\n\tprivate _keys:string[];\r\n\r\n\tconstructor(\r\n\t\tpattern:string|RegExp,\r\n\t\toptions?:RegexOptions.Literal|RegexOptions.Literal[],\r\n\t\t...extra:RegexOptions.Literal[])\r\n\t{\r\n\t\tif(!pattern) throw new Error(\"'pattern' cannot be null or empty.\");\r\n\r\n\t\tvar patternString:string,\r\n\t\t flags:string\r\n\t\t\t = (options && (Array.isArray(options) ? options : [options]).concat(extra) || extra)\r\n\t\t\t .join(EMPTY).toLowerCase();\r\n\r\n\t\tif(pattern instanceof RegExp)\r\n\t\t{\r\n\t\t\tlet p = pattern;\r\n\t\t\tif(p.ignoreCase && flags.indexOf(_I)=== -1)\r\n\t\t\t\tflags += _I;\r\n\t\t\tif(p.multiline && flags.indexOf(_M)=== -1)\r\n\t\t\t\tflags += _M;\r\n\t\t\tpatternString = p.source;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tpatternString = pattern;\r\n\t\t}\r\n\t\tvar ignoreWhiteSpace = flags.indexOf(_W)!= -1;\r\n\r\n\t\t// For the majority of expected behavior, we need to eliminate global and whitespace ignore.\r\n\t\tflags = flags.replace(/[gw]/g, EMPTY);\r\n\r\n\t\t// find the keys inside the pattern, and place in mapping array {0:'key1', 1:'key2', ...}\r\n\t\tvar keys:string[] = [];\r\n\t\t{\r\n\t\t\tlet k = patternString.match(/(?!\\(\\?<)(\\w+)(?=>)/g);\r\n\t\t\tif(k)\r\n\t\t\t{\r\n\t\t\t\tfor(let i = 0, len = k.length; i/g, EMPTY);\r\n\t\t\t\tthis._keys = keys;\r\n\t\t\t}\r\n\r\n\t\t\tif(ignoreWhiteSpace)\r\n\t\t\t\tpatternString = patternString.replace(/\\s+/g, \"\\\\s*\");\r\n\r\n\t\t\tthis._re = new RegExp(patternString, flags);\r\n\r\n\t\t}\r\n\r\n\t\tObject.freeze(this);\r\n\t}\r\n\r\n\tmatch(input:string, startIndex:number = 0):Match\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar r:RegExpExecArray;\r\n\t\tif(!input\r\n\t\t\t|| startIndex>=input.length\r\n\t\t\t|| !(r = this._re.exec(input.substring(startIndex))))\r\n\t\t\treturn Match.Empty;\r\n\r\n\t\tif(!(startIndex>0)) startIndex = 0;\r\n\r\n\t\tvar first = startIndex + r.index,\r\n\t\t loc = first,\r\n\t\t groups:Group[] = [],\r\n\t\t groupMap:IMap = {};\r\n\r\n\t\tfor(let i = 0, len = r.length; i0)) return input;\r\n\t\tvar result:string[] = [];\r\n\t\tvar p = 0, end = input.length, isEvaluator = typeof r==\"function\";\r\n\r\n\t\tvar m:Match, i:number = 0;\r\n\t\twhile(i = {})\r\n\t{\r\n\t\tsuper(value, index);\r\n\t}\r\n\r\n\tfreeze():void\r\n\t{\r\n\t\tif(!this.groups) throw new Error(\"'groups' cannot be null.\");\r\n\t\tif(!this.namedGroups) throw new Error(\"'groupMap' cannot be null.\");\r\n\t\tObject.freeze(this.groups.slice());\r\n\t\tObject.freeze(this.namedGroups);\r\n\t\tsuper.freeze();\r\n\t}\r\n\r\n\tstatic get Empty():Match\r\n\t{\r\n\t\treturn EmptyMatch;\r\n\t}\r\n}\r\nconst EmptyMatch = new Match();\r\nEmptyMatch.freeze();\r\n\r\n\r\nexport default Regex;"]} \ No newline at end of file +{"version":3,"sources":["System/Text/RegularExpressions.js","System/Text/RegularExpressions.ts"],"names":[],"mappings":";;;;;AAKA;;;;;;;;;;;;ACMA,IAAM,QAAe,EAAf;AACN,IAAM,YAAmB,WAAnB;AACN,IAAM,KAAK,GAAL;IAAU,KAAK,GAAL;IAAU,KAAK,GAAL;IAAU,KAAK,GAAL;IAAU,KAAK,GAAL;IAAU,KAAK,GAAL;AAMxD,IAAc,YAAd;AAAA,CAAA,UAAc,YAAd,EACA;AAIc,iBAAA,WAAA,GAAqB,EAArB,CAJd;AAKc,iBAAA,CAAA,GAAW,EAAX,CALd;AAUc,iBAAA,MAAA,GAAgB,EAAhB,CAVd;AAWc,iBAAA,CAAA,GAAW,EAAX,CAXd;AAgBc,iBAAA,UAAA,GAAoB,EAApB,CAhBd;AAiBc,iBAAA,CAAA,GAAW,EAAX,CAjBd;AAsBc,iBAAA,OAAA,GAAiB,EAAjB,CAtBd;AAuBc,iBAAA,CAAA,GAAW,EAAX,CAvBd;AA4Bc,iBAAA,MAAA,GAAgB,EAAhB,CA5Bd;AA6Bc,iBAAA,CAAA,GAAW,EAAX,CA7Bd;AAkCc,iBAAA,yBAAA,GAAmC,EAAnC,CAlCd;AAmCc,iBAAA,CAAA,GAAW,EAAX,CAnCd;CADA,CAAA,CAAc,eAAA,QAAA,YAAA,KAAA,QAAA,YAAA,GAAY,EAAZ,CAAA,CAAd;;IAoDA;AAKC,aALD,KAKC,CACC,OADD,EAEC,OAFD,EAGgC;8BARjC,OAQiC;;AAE/B,YAAG,CAAC,OAAD,EAAU,MAAM,IAAI,KAAJ,CAAU,oCAAV,CAAN,CAAb;;0CAFG;;SAA4B;;AAI/B,YAAI,aAAJ;YACI,QACG,CAAC,WAAW,CAAC,MAAM,OAAN,CAAc,OAAd,IAAyB,OAAzB,GAAmC,CAAC,OAAD,CAAnC,CAAD,CAA+C,MAA/C,CAAsD,KAAtD,CAAX,IAA2E,KAA3E,CAAD,CACD,IADC,CACI,KADJ,EACW,WADX,EADH,CAL2B;AAS/B,YAAG,mBAAmB,MAAnB,EACH;AACC,gBAAI,IAAY,OAAZ,CADL;AAEC,gBAAG,EAAE,UAAF,IAAgB,MAAM,OAAN,CAAc,EAAd,MAAqB,CAAC,CAAD,EACvC,SAAS,EAAT,CADD;AAEA,gBAAG,EAAE,SAAF,IAAe,MAAM,OAAN,CAAc,EAAd,MAAqB,CAAC,CAAD,EACtC,SAAS,EAAT,CADD;AAEA,4BAAgB,EAAE,MAAF,CANjB;SADA,MAUA;AACC,4BAAgB,OAAhB,CADD;SAVA;AAaA,YAAI,mBAAmB,MAAM,OAAN,CAAc,EAAd,KAAoB,CAAC,CAAD,CAtBZ;AAyB/B,gBAAQ,MAAM,OAAN,CAAc,OAAd,EAAuB,KAAvB,CAAR,CAzB+B;AA4B/B,YAAI,OAAgB,EAAhB,CA5B2B;AA6B/B;AACC,gBAAI,IAAI,cAAc,KAAd,CAAoB,sBAApB,CAAJ,CADL;AAEC,gBAAG,CAAH,EACA;AACC,qBAAI,IAAI,IAAI,CAAJ,EAAO,MAAM,EAAE,MAAF,EAAU,IAAE,GAAF,EAAO,GAAtC,EACA;AACC,yBAAK,IAAI,CAAJ,CAAL,GAAc,EAAE,CAAF,CAAd,CADD;iBADA;AAMA,gCAAgB,cAAc,OAAd,CAAsB,UAAtB,EAAkC,KAAlC,CAAhB,CAPD;AAQC,qBAAK,KAAL,GAAa,IAAb,CARD;aADA;AAYA,gBAAG,gBAAH,EACC,gBAAgB,cAAc,OAAd,CAAsB,MAAtB,EAA8B,MAA9B,CAAhB,CADD;AAGA,iBAAK,GAAL,GAAW,IAAI,MAAJ,CAAW,aAAX,EAA0B,KAA1B,CAAX,CAjBD;SA7B+B;AAkD/B,eAAO,MAAP,CAAc,IAAd,EAlD+B;KAHhC;;iBALD;;8BA6DO,OAAmC;gBAArB,mEAAoB,iBAAC;;AAExC,gBAAI,IAAI,IAAJ,CAFoC;AAGxC,gBAAI,CAAJ,CAHwC;AAIxC,gBAAG,CAAC,KAAD,IACC,cAAY,MAAM,MAAN,IACZ,EAAE,IAAI,KAAK,GAAL,CAAS,IAAT,CAAc,MAAM,SAAN,CAAgB,UAAhB,CAAd,CAAJ,CAAF,EACH,OAAO,MAAM,KAAN,CAHR;AAKA,gBAAG,EAAE,aAAW,CAAX,CAAF,EAAiB,aAAa,CAAb,CAApB;AAEA,gBAAI,QAAuB,aAAa,EAAE,KAAF;gBACpC,MAAuB,KAAvB;gBACA,SAAuB,EAAvB;gBACA,WAAuB,EAAvB,CAdoC;AAgBxC,iBAAI,IAAI,IAAI,CAAJ,EAAO,MAAM,EAAE,MAAF,EAAU,IAAE,GAAF,EAAO,EAAE,CAAF,EACtC;AACC,oBAAI,OAAO,EAAE,CAAF,CAAP,CADL;AAEC,oBAAI,IAAI,UAAJ,CAFL;AAGC,oBAAG,SAAO,IAAP,IAAe,SAAO,KAAK,CAAL,EAAQ;AAEhC,wBAAI,IAAI,KAAJ,CAAU,IAAV,EAAgB,GAAhB,CAAJ,CAFgC;AAGhC,sBAAE,MAAF,GAHgC;iBAAjC;AAKA,oBAAG,KAAK,EAAE,KAAF,IAAW,IAAE,EAAE,KAAF,CAAQ,MAAR,EAAgB,SAAS,EAAE,KAAF,CAAQ,CAAR,CAAT,IAAuB,CAAvB,CAArC;AACA,uBAAO,IAAP,CAAY,CAAZ,EATD;AAUC,oBAAG,MAAI,CAAJ,EAAO,OAAO,KAAK,MAAL,CAAjB;aAXD;AAcA,gBAAI,IAAI,IAAI,KAAJ,CAAU,EAAE,CAAF,CAAV,EAAgB,KAAhB,EAAuB,MAAvB,EAA+B,QAA/B,CAAJ,CA9BoC;AA+BxC,cAAE,MAAF,GA/BwC;AAgCxC,mBAAO,CAAP,CAhCwC;;;;gCAmCjC,OAAY;AAEnB,gBAAI,UAAkB,EAAlB;gBAAsB,CAA1B;gBAAmC,IAAI,CAAJ;gBAAO,MAAM,SAAS,MAAM,MAAN,IAAgB,CAAzB,CAF7B;AAGnB,mBAAM,IAAE,GAAF,KAAU,IAAI,KAAK,KAAL,CAAW,KAAX,EAAkB,CAAlB,CAAJ,CAAV,IAAuC,EAAE,OAAF,EAC7C;AACC,wBAAQ,IAAR,CAAa,CAAb,EADD;AAEC,oBAAI,EAAE,KAAF,GAAU,EAAE,MAAF,CAFf;aADA;AAKA,mBAAO,OAAO,MAAP,CAAc,OAAd,CAAP,CARmB;;;;gCAsBnB,OACA,GACuB;gBAAvB,8DAAe,wBAAQ;;AAEvB,gBAAG,CAAC,KAAD,IAAU,MAAI,IAAJ,IAAY,MAAK,KAAK,CAAL,IAAU,EAAE,QAAM,CAAN,CAAF,EAAY,OAAO,KAAP,CAApD;AACA,gBAAI,SAAkB,EAAlB,CAHmB;AAIvB,gBAAI,IAAI,CAAJ;gBAAO,MAAM,MAAM,MAAN;gBAAc,cAAc,OAAO,CAAP,IAAU,UAAV,CAJtB;AAMvB,gBAAI,CAAJ;gBAAa,IAAW,CAAX,CANU;AAOvB,mBAAM,IAAE,KAAF,IAAW,IAAE,GAAF,KAAU,IAAI,KAAK,KAAL,CAAW,KAAX,EAAkB,CAAlB,CAAJ,CAArB,IAAkD,EAAE,OAAF,EACxD;yBACuB,EADvB;oBACM,iBADN;oBACa,mBADb;;AAEC,oBAAG,MAAI,KAAJ,EAAW,OAAO,IAAP,CAAY,MAAM,SAAN,CAAgB,CAAhB,EAAmB,KAAnB,CAAZ,EAAd;AACA,uBAAO,IAAP,CAAY,cAAc,EAAE,CAAF,EAAK,GAAL,CAAd,GAA0B,CAA1B,CAAZ,CAHD;AAIC,oBAAI,QAAQ,MAAR,CAJL;aADA;AAQA,gBAAG,IAAE,GAAF,EAAO,OAAO,IAAP,CAAY,MAAM,SAAN,CAAgB,CAAhB,CAAZ,EAAV;AAEA,mBAAO,OAAO,IAAP,CAAY,KAAZ,CAAP,CAjBuB;;;;gCAoBhB,OAAY;AAEnB,mBAAO,KAAK,GAAL,CAAS,IAAT,CAAc,KAAd,CAAP,CAFmB;;;;gCAMnB,OACA,SACA,SAA+B;AAE/B,gBAAI,IAAI,IAAI,KAAJ,CAAU,OAAV,EAAmB,OAAnB,CAAJ,CAF2B;AAG/B,mBAAO,EAAE,OAAF,CAAU,KAAV,CAAP,CAH+B;;;;gCAmB/B,OACA,SACA,GACA,SAA+B;AAE/B,gBAAI,IAAI,IAAI,KAAJ,CAAU,OAAV,EAAmB,OAAnB,CAAJ,CAF2B;AAG/B,mBAAO,EAAE,OAAF,CAAU,KAAV,EAAiB,CAAjB,CAAP,CAH+B;;;;WA1KjC;;;AAAa,QAAA,KAAA,GAAK,KAAL;;IAiLb;AASC,aATD,OASC,GAEyB;YADjB,8DAAe,qBACE;YAAjB,8DAAe,CAAC,CAAD,gBAAE;;8BAX1B,SAW0B;;AADjB,aAAA,KAAA,GAAA,KAAA,CACiB;AAAjB,aAAA,KAAA,GAAA,KAAA,CAAiB;KAFzB;;iBATD;;iCAeO;AAEL,mBAAO,MAAP,CAAc,IAAd,EAFK;;;;4BAZI;AAET,gBAAI,IAAI,KAAK,KAAL,CAFC;AAGT,mBAAO,KAAK,EAAE,MAAF,IAAY,CAAjB,CAHE;;;;WAHX;;;AAAa,QAAA,OAAA,GAAO,OAAP;;IAqBb;;;AAOC,aAPD,KAOC,GAEkB;YADjB,8DAAe,qBACE;YAAjB,8DAAe,CAAC,CAAD,gBAAE;;8BATnB,OASmB;;sEATnB,kBAWQ,OAAO,QAFI;KAFlB;;iBAPD;;4BAEY;AAEV,mBAAO,KAAK,KAAL,IAAa,CAAC,CAAD,CAFV;;;;4BAYK;AAEf,mBAAO,UAAP,CAFe;;;;WAdjB;EAA2B;;AAAd,QAAA,KAAA,GAAK,KAAL;AAoBb,IAAM,aAAa,IAAI,KAAJ,EAAb;AACN,WAAW,MAAX;;IAEA;;;AAGC,aAHD,KAGC,GAIoC;YAHnC,8DAAe,qBAGoB;YAFnC,8DAAe,CAAC,CAAD,gBAEoB;YAD5B,+DAAiB,kBACW;YAA5B,oEAA0B,kBAAE;;8BAPrC,OAOqC;;4EAPrC,kBASQ,OAAO,QAFsB;;AAD5B,eAAA,MAAA,GAAA,MAAA,CAC4B;AAA5B,eAAA,WAAA,GAAA,WAAA,CAA4B;;KAJpC;;iBAHD;;iCAYO;AAEL,gBAAG,CAAC,KAAK,MAAL,EAAa,MAAM,IAAI,KAAJ,CAAU,0BAAV,CAAN,CAAjB;AACA,gBAAG,CAAC,KAAK,WAAL,EAAkB,MAAM,IAAI,KAAJ,CAAU,4BAAV,CAAN,CAAtB;AACA,mBAAO,MAAP,CAAc,KAAK,MAAL,CAAY,KAAZ,EAAd,EAJK;AAKL,mBAAO,MAAP,CAAc,KAAK,WAAL,CAAd,CALK;AAML,uCAlBF,4CAkBE,CANK;;;;4BASU;AAEf,mBAAO,UAAP,CAFe;;;;WArBjB;EAA2B;;AAAd,QAAA,KAAA,GAAK,KAAL;AA0Bb,IAAM,aAAa,IAAI,KAAJ,EAAb;AACN,WAAW,MAAX;AAGA,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADnJA,QAAQ,OAAR,GCmJe,KDnJf","file":"System/Text/RegularExpressions.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Named groups based on: http://trentrichardson.com/2011/08/02/javascript-regexp-match-named-captures/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst EMPTY = \"\";\nconst UNDEFINED = \"undefined\";\nconst _I = 'i', _G = 'g', _M = 'm', _U = 'u', _W = 'w', _Y = 'y';\nvar RegexOptions;\n(function (RegexOptions) {\n RegexOptions.IGNORE_CASE = _I;\n RegexOptions.I = _I;\n RegexOptions.GLOBAL = _G;\n RegexOptions.G = _G;\n RegexOptions.MULTI_LINE = _M;\n RegexOptions.M = _M;\n RegexOptions.UNICODE = _U;\n RegexOptions.U = _U;\n RegexOptions.STICKY = _Y;\n RegexOptions.Y = _Y;\n RegexOptions.IGNORE_PATTERN_WHITESPACE = _W;\n RegexOptions.W = _W;\n})(RegexOptions = exports.RegexOptions || (exports.RegexOptions = {}));\nclass Regex {\n constructor(pattern, options, ...extra) {\n if (!pattern)\n throw new Error(\"'pattern' cannot be null or empty.\");\n var patternString, flags = (options && (Array.isArray(options) ? options : [options]).concat(extra) || extra)\n .join(EMPTY).toLowerCase();\n if (pattern instanceof RegExp) {\n let p = pattern;\n if (p.ignoreCase && flags.indexOf(_I) === -1)\n flags += _I;\n if (p.multiline && flags.indexOf(_M) === -1)\n flags += _M;\n patternString = p.source;\n }\n else {\n patternString = pattern;\n }\n var ignoreWhiteSpace = flags.indexOf(_W) != -1;\n flags = flags.replace(/[gw]/g, EMPTY);\n var keys = [];\n {\n let k = patternString.match(/(?!\\(\\?<)(\\w+)(?=>)/g);\n if (k) {\n for (let i = 0, len = k.length; i < len; i++) {\n keys[i + 1] = k[i];\n }\n patternString = patternString.replace(/\\?<\\w+>/g, EMPTY);\n this._keys = keys;\n }\n if (ignoreWhiteSpace)\n patternString = patternString.replace(/\\s+/g, \"\\\\s*\");\n this._re = new RegExp(patternString, flags);\n }\n Object.freeze(this);\n }\n match(input, startIndex = 0) {\n var _ = this;\n var r;\n if (!input\n || startIndex >= input.length\n || !(r = this._re.exec(input.substring(startIndex))))\n return Match.Empty;\n if (!(startIndex > 0))\n startIndex = 0;\n var first = startIndex + r.index, loc = first, groups = [], groupMap = {};\n for (let i = 0, len = r.length; i < len; ++i) {\n let text = r[i];\n let g = EmptyGroup;\n if (text !== null || text !== void 0) {\n g = new Group(text, loc);\n g.freeze();\n }\n if (i && _._keys && i < _._keys.length)\n groupMap[_._keys[i]] = g;\n groups.push(g);\n if (i !== 0)\n loc += text.length;\n }\n var m = new Match(r[0], first, groups, groupMap);\n m.freeze();\n return m;\n }\n matches(input) {\n var matches = [], m, p = 0, end = input && input.length || 0;\n while (p < end && (m = this.match(input, p)) && m.success) {\n matches.push(m);\n p = m.index + m.length;\n }\n return Object.freeze(matches);\n }\n replace(input, r, count = Infinity) {\n if (!input || r === null || r === void 0 || !(count > 0))\n return input;\n var result = [];\n var p = 0, end = input.length, isEvaluator = typeof r == \"function\";\n var m, i = 0;\n while (i < count && p < end && (m = this.match(input, p)) && m.success) {\n let { index, length } = m;\n if (p !== index)\n result.push(input.substring(p, index));\n result.push(isEvaluator ? r(m, i++) : r);\n p = index + length;\n }\n if (p < end)\n result.push(input.substring(p));\n return result.join(EMPTY);\n }\n isMatch(input) {\n return this._re.test(input);\n }\n static isMatch(input, pattern, options) {\n var r = new Regex(pattern, options);\n return r.isMatch(input);\n }\n static replace(input, pattern, e, options) {\n var r = new Regex(pattern, options);\n return r.replace(input, e);\n }\n}\nexports.Regex = Regex;\nclass Capture {\n constructor(value = EMPTY, index = -1) {\n this.value = value;\n this.index = index;\n }\n get length() {\n var v = this.value;\n return v && v.length || 0;\n }\n freeze() {\n Object.freeze(this);\n }\n}\nexports.Capture = Capture;\nclass Group extends Capture {\n constructor(value = EMPTY, index = -1) {\n super(value, index);\n }\n get success() {\n return this.index != -1;\n }\n static get Empty() {\n return EmptyGroup;\n }\n}\nexports.Group = Group;\nconst EmptyGroup = new Group();\nEmptyGroup.freeze();\nclass Match extends Group {\n constructor(value = EMPTY, index = -1, groups = [], namedGroups = {}) {\n super(value, index);\n this.groups = groups;\n this.namedGroups = namedGroups;\n }\n freeze() {\n if (!this.groups)\n throw new Error(\"'groups' cannot be null.\");\n if (!this.namedGroups)\n throw new Error(\"'groupMap' cannot be null.\");\n Object.freeze(this.groups.slice());\n Object.freeze(this.namedGroups);\n super.freeze();\n }\n static get Empty() {\n return EmptyMatch;\n }\n}\nexports.Match = Match;\nconst EmptyMatch = new Match();\nEmptyMatch.freeze();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Regex;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Named groups based on: http://trentrichardson.com/2011/08/02/javascript-regexp-match-named-captures/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n// NOTE: Avoid real (types/interfaces only = ok) dependencies so this class can be used cleanly.\r\nimport {IMap} from \"../Collections/Dictionaries/IDictionary\";\r\nimport {Primitive} from \"../Primitive\";\r\nimport {Selector} from \"../FunctionTypes\";\r\n\r\nconst EMPTY:string = \"\";\r\nconst UNDEFINED:string = \"undefined\";\r\nconst _I = 'i', _G = 'g', _M = 'm', _U = 'u', _W = 'w', _Y = 'y';\r\n\r\n\r\n/**\r\n * https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regexoptions%28v=vs.110%29.aspx\r\n */\r\nexport module RegexOptions\r\n{\r\n\t/**\r\n\t * Specifies case-insensitive matching. For more information, see the \"Case-Insensitive Matching \" section in the Regular Expression Options topic.\r\n\t */\r\n\texport const IGNORE_CASE:string = _I;\r\n\texport const I:string = _I;\r\n\r\n\t/**\r\n\t * Specifies global matching instead of single.\r\n\t */\r\n\texport const GLOBAL:string = _G;\r\n\texport const G:string = _G;\r\n\r\n\t/**\r\n\t * treat beginning and end characters (^ and $) as working over multiple lines (i.e., match the beginning or end of each line (delimited by \\n or \\r), not only the very beginning or end of the whole input string)\r\n\t */\r\n\texport const MULTI_LINE:string = _M;\r\n\texport const M:string = _M;\r\n\r\n\t/**\r\n\t * treat pattern as a sequence of unicode code points\r\n\t */\r\n\texport const UNICODE:string = _U;\r\n\texport const U:string = _U;\r\n\r\n\t/**\r\n\t * matches only from the index indicated by the lastIndex property of this regular expression in the target string (and does not attempt to match from any later indexes).\r\n\t */\r\n\texport const STICKY:string = _Y;\r\n\texport const Y:string = _Y;\r\n\r\n\t/**\r\n\t * Modifies the pattern to ignore standard whitespace characters.\r\n\t */\r\n\texport const IGNORE_PATTERN_WHITESPACE:string = _W;\r\n\texport const W:string = _W;\r\n\r\n\texport type Global = 'g';\r\n\texport type IgnoreCase = 'i';\r\n\texport type MultiLine = 'm';\r\n\texport type Unicode = 'u';\r\n\texport type Sticky = 'y';\r\n\texport type IgnorePatternWhitespace = \"w\";\r\n\r\n\texport type Literal = Global | IgnoreCase | MultiLine | Unicode | Sticky | IgnorePatternWhitespace;\r\n}\r\n\r\nexport interface MatchEvaluator extends Selector\r\n{\r\n}\r\n\r\nexport class Regex\r\n{\r\n\tprivate _re:RegExp;\r\n\tprivate _keys:string[];\r\n\r\n\tconstructor(\r\n\t\tpattern:string|RegExp,\r\n\t\toptions?:RegexOptions.Literal|RegexOptions.Literal[],\r\n\t\t...extra:RegexOptions.Literal[])\r\n\t{\r\n\t\tif(!pattern) throw new Error(\"'pattern' cannot be null or empty.\");\r\n\r\n\t\tvar patternString:string,\r\n\t\t flags:string\r\n\t\t\t = (options && (Array.isArray(options) ? options : [options]).concat(extra) || extra)\r\n\t\t\t .join(EMPTY).toLowerCase();\r\n\r\n\t\tif(pattern instanceof RegExp)\r\n\t\t{\r\n\t\t\tlet p = pattern;\r\n\t\t\tif(p.ignoreCase && flags.indexOf(_I)=== -1)\r\n\t\t\t\tflags += _I;\r\n\t\t\tif(p.multiline && flags.indexOf(_M)=== -1)\r\n\t\t\t\tflags += _M;\r\n\t\t\tpatternString = p.source;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tpatternString = pattern;\r\n\t\t}\r\n\t\tvar ignoreWhiteSpace = flags.indexOf(_W)!= -1;\r\n\r\n\t\t// For the majority of expected behavior, we need to eliminate global and whitespace ignore.\r\n\t\tflags = flags.replace(/[gw]/g, EMPTY);\r\n\r\n\t\t// find the keys inside the pattern, and place in mapping array {0:'key1', 1:'key2', ...}\r\n\t\tvar keys:string[] = [];\r\n\t\t{\r\n\t\t\tlet k = patternString.match(/(?!\\(\\?<)(\\w+)(?=>)/g);\r\n\t\t\tif(k)\r\n\t\t\t{\r\n\t\t\t\tfor(let i = 0, len = k.length; i/g, EMPTY);\r\n\t\t\t\tthis._keys = keys;\r\n\t\t\t}\r\n\r\n\t\t\tif(ignoreWhiteSpace)\r\n\t\t\t\tpatternString = patternString.replace(/\\s+/g, \"\\\\s*\");\r\n\r\n\t\t\tthis._re = new RegExp(patternString, flags);\r\n\r\n\t\t}\r\n\r\n\t\tObject.freeze(this);\r\n\t}\r\n\r\n\tmatch(input:string, startIndex:number = 0):Match\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar r:RegExpExecArray;\r\n\t\tif(!input\r\n\t\t\t|| startIndex>=input.length\r\n\t\t\t|| !(r = this._re.exec(input.substring(startIndex))))\r\n\t\t\treturn Match.Empty;\r\n\r\n\t\tif(!(startIndex>0)) startIndex = 0;\r\n\r\n\t\tvar first = startIndex + r.index,\r\n\t\t loc = first,\r\n\t\t groups:Group[] = [],\r\n\t\t groupMap:IMap = {};\r\n\r\n\t\tfor(let i = 0, len = r.length; i0)) return input;\r\n\t\tvar result:string[] = [];\r\n\t\tvar p = 0, end = input.length, isEvaluator = typeof r==\"function\";\r\n\r\n\t\tvar m:Match, i:number = 0;\r\n\t\twhile(i = {})\r\n\t{\r\n\t\tsuper(value, index);\r\n\t}\r\n\r\n\tfreeze():void\r\n\t{\r\n\t\tif(!this.groups) throw new Error(\"'groups' cannot be null.\");\r\n\t\tif(!this.namedGroups) throw new Error(\"'groupMap' cannot be null.\");\r\n\t\tObject.freeze(this.groups.slice());\r\n\t\tObject.freeze(this.namedGroups);\r\n\t\tsuper.freeze();\r\n\t}\r\n\r\n\tstatic get Empty():Match\r\n\t{\r\n\t\treturn EmptyMatch;\r\n\t}\r\n}\r\nconst EmptyMatch = new Match();\r\nEmptyMatch.freeze();\r\n\r\n\r\nexport default Regex;"]} \ No newline at end of file diff --git a/dist/commonjs/System/Text/StringBuilder.d.ts b/dist/commonjs/System/Text/StringBuilder.d.ts index 72f52b4c..a5ee019f 100644 --- a/dist/commonjs/System/Text/StringBuilder.d.ts +++ b/dist/commonjs/System/Text/StringBuilder.d.ts @@ -1,10 +1,10 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * .NET Reference: http://referencesource.microsoft.com/#mscorlib/system/text/StringBuilder.cs * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -export default class StringBuilder implements IDisposable { +import { IDisposable } from "../Disposable/IDisposable"; +export declare class StringBuilder implements IDisposable { private _partArray; private _latest; constructor(...initial: any[]); @@ -19,3 +19,4 @@ export default class StringBuilder implements IDisposable { clear(): void; dispose(): void; } +export default StringBuilder; diff --git a/dist/commonjs/System/Text/StringBuilder.js b/dist/commonjs/System/Text/StringBuilder.js index a3f9ea20..595fac5d 100644 --- a/dist/commonjs/System/Text/StringBuilder.js +++ b/dist/commonjs/System/Text/StringBuilder.js @@ -3,7 +3,7 @@ * .NET Reference: http://referencesource.microsoft.com/#mscorlib/system/text/StringBuilder.cs * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; +"use strict"; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; @@ -11,7 +11,7 @@ var _createClass = function () { function defineProperties(target, props) { for function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -var Types_1 = require('../Types'); +var Types_1 = require("../Types"); var VOID0 = void 0; var StringBuilder = function () { @@ -30,14 +30,14 @@ var StringBuilder = function () { } _createClass(StringBuilder, [{ - key: 'appendSingle', + key: "appendSingle", value: function appendSingle(item) { if (item !== null && item !== VOID0) { var _ = this; _._latest = null; - switch (typeof item === 'undefined' ? 'undefined' : _typeof(item)) { - case Types_1.default.OBJECT: - case Types_1.default.FUNCTION: + switch (typeof item === "undefined" ? "undefined" : _typeof(item)) { + case Types_1.Type.OBJECT: + case Types_1.Type.FUNCTION: item = item.toString(); break; } @@ -45,7 +45,7 @@ var StringBuilder = function () { } } }, { - key: 'appendThese', + key: "appendThese", value: function appendThese(items) { var _ = this; items.forEach(function (s) { @@ -54,7 +54,7 @@ var StringBuilder = function () { return _; } }, { - key: 'append', + key: "append", value: function append() { for (var _len2 = arguments.length, items = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { items[_key2] = arguments[_key2]; @@ -64,7 +64,7 @@ var StringBuilder = function () { return this; } }, { - key: 'appendLine', + key: "appendLine", value: function appendLine() { for (var _len3 = arguments.length, items = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { items[_key3] = arguments[_key3]; @@ -74,7 +74,7 @@ var StringBuilder = function () { return this; } }, { - key: 'appendLines', + key: "appendLines", value: function appendLines(items) { var _ = this; items.forEach(function (i) { @@ -86,30 +86,30 @@ var StringBuilder = function () { return _; } }, { - key: 'toString', + key: "toString", value: function toString() { var latest = this._latest; if (!latest === null) this._latest = latest = this._partArray.join(); return latest; } }, { - key: 'join', + key: "join", value: function join(delimiter) { return this._partArray.join(delimiter); } }, { - key: 'clear', + key: "clear", value: function clear() { this._partArray.length = 0; this._latest = null; } }, { - key: 'dispose', + key: "dispose", value: function dispose() { this.clear(); } }, { - key: 'isEmpty', + key: "isEmpty", get: function get() { return this._partArray.length === 0; } @@ -118,6 +118,7 @@ var StringBuilder = function () { return StringBuilder; }(); +exports.StringBuilder = StringBuilder; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = StringBuilder; //# sourceMappingURL=StringBuilder.js.map diff --git a/dist/commonjs/System/Text/StringBuilder.js.map b/dist/commonjs/System/Text/StringBuilder.js.map index e577387a..b080080c 100644 --- a/dist/commonjs/System/Text/StringBuilder.js.map +++ b/dist/commonjs/System/Text/StringBuilder.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Text/StringBuilder.ts","System/Text/StringBuilder.js"],"names":[],"mappings":";;;;;AAOA;;;;;;;;AAEA,IAAA,UAAA,QAAiB,UAAjB,CAAA;AAGA,IAAM,QAAY,KAAK,CAAL;;IAalB;AASC,aATD,aASC,GAA4B;8BAT7B,eAS6B;;AAE3B,YAAI,IAAI,IAAJ,CAFuB;AAG3B,UAAE,OAAF,GAAY,IAAZ,CAH2B;AAI3B,UAAE,UAAF,GAAe,EAAf,CAJ2B;;0CAAb;;SAAa;;AAK3B,UAAE,WAAF,CAAc,OAAd,EAL2B;KAA5B;;iBATD;;qCAiBsB,MAAQ;AAE5B,gBAAG,SAAO,IAAP,IAAe,SAAO,KAAP,EAAc;AAC/B,oBAAI,IAAI,IAAJ,CAD2B;AAE/B,kBAAE,OAAF,GAAY,IAAZ,CAF+B;AAG/B,+BAAc,kDAAd;AACC,yBAAK,QAAA,OAAA,CAAK,MAAL,CADN;AAEC,yBAAK,QAAA,OAAA,CAAK,QAAL;AACJ,+BAAO,KAAK,QAAL,EAAP,CADD;AAEC,8BAFD;AAFD,iBAH+B;AAS/B,kBAAE,UAAF,CAAa,IAAb,CAAkB,IAAlB,EAT+B;aAAhC;;;;oCAcW,OAAW;AAEtB,gBAAI,IAAI,IAAJ,CAFkB;AAGtB,kBAAM,OAAN,CAAc;uBAAI,EAAE,YAAF,CAAe,CAAf;aAAJ,CAAd,CAHsB;AAItB,mBAAO,CAAP,CAJsB;;;;iCAOF;+CAAX;;aAAW;;AAEpB,iBAAK,WAAL,CAAiB,KAAjB,EAFoB;AAGpB,mBAAO,IAAP,CAHoB;;;;qCAMI;+CAAX;;aAAW;;AAExB,iBAAK,WAAL,CAAiB,KAAjB,EAFwB;AAGxB,mBAAO,IAAP,CAHwB;;;;oCAMb,OAAW;AAEtB,gBAAI,IAAI,IAAJ,CAFkB;AAGtB,kBAAM,OAAN,CACE,aAAC;AAED,oBAAG,MAAI,IAAJ,IAAY,MAAI,KAAJ,EAAW;AACzB,sBAAE,YAAF,CAAe,CAAf,EADyB;AAEzB,sBAAE,UAAF,CAAa,IAAb,CAAkB,MAAlB,EAFyB;iBAA1B;aAFA,CADF,CAHsB;AAYtB,mBAAO,CAAP,CAZsB;;;;mCAgCf;AAEP,gBAAI,SAAS,KAAK,OAAL,CAFN;AAGP,gBAAG,CAAC,MAAD,KAAU,IAAV,EACF,KAAK,OAAL,GAAe,SAAS,KAAK,UAAL,CAAgB,IAAhB,EAAT,CADhB;AAGA,mBAAO,MAAP,CANO;;;;6BASH,WAAgB;AAEpB,mBAAO,KAAK,UAAL,CAAgB,IAAhB,CAAqB,SAArB,CAAP,CAFoB;;;;gCAKhB;AAEJ,iBAAK,UAAL,CAAgB,MAAhB,GAAyB,CAAzB,CAFI;AAGJ,iBAAK,OAAL,GAAe,IAAf,CAHI;;;;kCAME;AAEN,iBAAK,KAAL,GAFM;;;;4BAzBI;AAEV,mBAAO,KAAK,UAAL,CAAgB,MAAhB,KAAyB,CAAzB,CAFG;;;;WA/EZ;;;AAAA,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;AC+CA,QAAQ,OAAR,GAAkB,aAAlB","file":"System/Text/StringBuilder.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * .NET Reference: http://referencesource.microsoft.com/#mscorlib/system/text/StringBuilder.cs\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport Type from '../Types';\r\nimport LinkedList from '../Collections/LinkedList';\r\n\r\nconst VOID0:any = void 0;\r\n\r\n/*****************************\r\n * IMPORTANT NOTES ABOUT PERFORMANCE:\r\n * http://jsperf.com/string-concatenation-looped\r\n * http://jsperf.com/adding-strings-to-an-array\r\n * http://jsperf.com/string-concatenation-versus-array-operations-with-join\r\n *\r\n * It is clearly inefficient to use a StringBuilder or LinkedList to build a string when you have a small set of string portions.\r\n * StringBuilder will really show it's benefit likely somewhere above 1000 items.\r\n *****************************/\r\n\r\n\r\nexport default\r\nclass StringBuilder implements IDisposable\r\n\t// Adding IDisposable allows for use with System.using();\r\n\t// ... and since this may end up being a large array container, might be a good idea to allow for flexible cleanup.\r\n{\r\n\t//noinspection JSMismatchedCollectionQueryUpdate\r\n\tprivate _partArray:any[];\r\n\tprivate _latest:string; // AKA persistentString\r\n\r\n\tconstructor(...initial:any[])\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_._latest = null;\r\n\t\t_._partArray = [];\r\n\t\t_.appendThese(initial);\r\n\t}\r\n\r\n\tprivate appendSingle(item:any):void\r\n\t{\r\n\t\tif(item!==null && item!==VOID0) {\r\n\t\t\tvar _ = this;\r\n\t\t\t_._latest = null;\r\n\t\t\tswitch(typeof item) {\r\n\t\t\t\tcase Type.OBJECT:\r\n\t\t\t\tcase Type.FUNCTION:\r\n\t\t\t\t\titem = item.toString();\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\t_._partArray.push(item); // Other primitive types can keep their format since a number or boolean is a smaller footprint than a string.\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tappendThese(items:any[]):StringBuilder\r\n\t{\r\n\t\tvar _ = this;\r\n\t\titems.forEach(s=> _.appendSingle(s));\r\n\t\treturn _;\r\n\t}\r\n\r\n\tappend(...items:any[]):StringBuilder\r\n\t{\r\n\t\tthis.appendThese(items);\r\n\t\treturn this;\r\n\t}\r\n\r\n\tappendLine(...items:any[]):StringBuilder\r\n\t{\r\n\t\tthis.appendLines(items);\r\n\t\treturn this;\r\n\t}\r\n\r\n\tappendLines(items:any[]):StringBuilder\r\n\t{\r\n\t\tvar _ = this;\r\n\t\titems.forEach(\r\n\t\t\t\ti=>\r\n\t\t\t{\r\n\t\t\t\tif(i!==null && i!==VOID0) {\r\n\t\t\t\t\t_.appendSingle(i);\r\n\t\t\t\t\t_._partArray.push(\"\\r\\n\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\t\treturn _;\r\n\t}\r\n\r\n\t/** /// These methods can only efficiently be added if not using a single array.\r\n\t insert(index: number, value: string, count: number = 1): StringBuilder\r\n\t {\r\n\r\n\t}\r\n\r\n\t remove(startIndex:number, length:number): StringBuilder\r\n\t {\r\n\r\n\t}\r\n\t /**/\r\n\r\n\tget isEmpty()\r\n\t{\r\n\t\treturn this._partArray.length===0;\r\n\t}\r\n\r\n\ttoString()\r\n\t{\r\n\t\tvar latest = this._latest;\r\n\t\tif(!latest===null)\r\n\t\t\tthis._latest = latest = this._partArray.join();\r\n\r\n\t\treturn latest;\r\n\t}\r\n\r\n\tjoin(delimiter:string):string\r\n\t{\r\n\t\treturn this._partArray.join(delimiter);\r\n\t}\r\n\r\n\tclear():void\r\n\t{\r\n\t\tthis._partArray.length = 0;\r\n\t\tthis._latest = null;\r\n\t}\r\n\r\n\tdispose():void\r\n\t{\r\n\t\tthis.clear();\r\n\t}\r\n\r\n}\r\n","/*!\n * @author electricessence / https://github.com/electricessence/\n * .NET Reference: http://referencesource.microsoft.com/#mscorlib/system/text/StringBuilder.cs\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n'use strict';\nconst Types_1 = require('../Types');\nconst VOID0 = void 0;\nclass StringBuilder {\n constructor(...initial) {\n var _ = this;\n _._latest = null;\n _._partArray = [];\n _.appendThese(initial);\n }\n appendSingle(item) {\n if (item !== null && item !== VOID0) {\n var _ = this;\n _._latest = null;\n switch (typeof item) {\n case Types_1.default.OBJECT:\n case Types_1.default.FUNCTION:\n item = item.toString();\n break;\n }\n _._partArray.push(item);\n }\n }\n appendThese(items) {\n var _ = this;\n items.forEach(s => _.appendSingle(s));\n return _;\n }\n append(...items) {\n this.appendThese(items);\n return this;\n }\n appendLine(...items) {\n this.appendLines(items);\n return this;\n }\n appendLines(items) {\n var _ = this;\n items.forEach(i => {\n if (i !== null && i !== VOID0) {\n _.appendSingle(i);\n _._partArray.push(\"\\r\\n\");\n }\n });\n return _;\n }\n get isEmpty() {\n return this._partArray.length === 0;\n }\n toString() {\n var latest = this._latest;\n if (!latest === null)\n this._latest = latest = this._partArray.join();\n return latest;\n }\n join(delimiter) {\n return this._partArray.join(delimiter);\n }\n clear() {\n this._partArray.length = 0;\n this._latest = null;\n }\n dispose() {\n this.clear();\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = StringBuilder;\n"]} \ No newline at end of file +{"version":3,"sources":["System/Text/StringBuilder.js","System/Text/StringBuilder.ts"],"names":[],"mappings":";;;;;AAKA;;;;;;;;ACCA,IAAA,UAAA,QAAmB,UAAnB,CAAA;AAGA,IAAM,QAAY,KAAK,CAAL;;IAalB;AAQC,aARD,aAQC,GAA4B;8BAR7B,eAQ6B;;AAE3B,YAAI,IAAI,IAAJ,CAFuB;AAG3B,UAAE,OAAF,GAAY,IAAZ,CAH2B;AAI3B,UAAE,UAAF,GAAe,EAAf,CAJ2B;;0CAAb;;SAAa;;AAK3B,UAAE,WAAF,CAAc,OAAd,EAL2B;KAA5B;;iBARD;;qCAgBsB,MAAQ;AAE5B,gBAAG,SAAO,IAAP,IAAe,SAAO,KAAP,EAClB;AACC,oBAAI,IAAI,IAAJ,CADL;AAEC,kBAAE,OAAF,GAAY,IAAZ,CAFD;AAGC,+BAAc,kDAAd;AAEC,yBAAK,QAAA,IAAA,CAAK,MAAL,CAFN;AAGC,yBAAK,QAAA,IAAA,CAAK,QAAL;AACJ,+BAAO,KAAK,QAAL,EAAP,CADD;AAEC,8BAFD;AAHD,iBAHD;AAUC,kBAAE,UAAF,CAAa,IAAb,CAAkB,IAAlB,EAVD;aADA;;;;oCAgBW,OAAW;AAEtB,gBAAI,IAAI,IAAJ,CAFkB;AAGtB,kBAAM,OAAN,CAAc;uBAAI,EAAE,YAAF,CAAe,CAAf;aAAJ,CAAd,CAHsB;AAItB,mBAAO,CAAP,CAJsB;;;;iCAOF;+CAAX;;aAAW;;AAEpB,iBAAK,WAAL,CAAiB,KAAjB,EAFoB;AAGpB,mBAAO,IAAP,CAHoB;;;;qCAMI;+CAAX;;aAAW;;AAExB,iBAAK,WAAL,CAAiB,KAAjB,EAFwB;AAGxB,mBAAO,IAAP,CAHwB;;;;oCAMb,OAAW;AAEtB,gBAAI,IAAI,IAAJ,CAFkB;AAGtB,kBAAM,OAAN,CACC,aAAC;AAEA,oBAAG,MAAI,IAAJ,IAAY,MAAI,KAAJ,EACf;AACC,sBAAE,YAAF,CAAe,CAAf,EADD;AAEC,sBAAE,UAAF,CAAa,IAAb,CAAkB,MAAlB,EAFD;iBADA;aAFD,CADD,CAHsB;AAatB,mBAAO,CAAP,CAbsB;;;;mCAiCf;AAEP,gBAAI,SAAS,KAAK,OAAL,CAFN;AAGP,gBAAG,CAAC,MAAD,KAAU,IAAV,EACF,KAAK,OAAL,GAAe,SAAS,KAAK,UAAL,CAAgB,IAAhB,EAAT,CADhB;AAGA,mBAAO,MAAP,CANO;;;;6BASH,WAAgB;AAEpB,mBAAO,KAAK,UAAL,CAAgB,IAAhB,CAAqB,SAArB,CAAP,CAFoB;;;;gCAKhB;AAEJ,iBAAK,UAAL,CAAgB,MAAhB,GAAyB,CAAzB,CAFI;AAGJ,iBAAK,OAAL,GAAe,IAAf,CAHI;;;;kCAME;AAEN,iBAAK,KAAL,GAFM;;;;4BAzBI;AAEV,mBAAO,KAAK,UAAL,CAAgB,MAAhB,KAAyB,CAAzB,CAFG;;;;WAjFZ;;;AAAa,QAAA,aAAA,GAAa,aAAb;AAiHb,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;AD9DA,QAAQ,OAAR,GC8De,aD9Df","file":"System/Text/StringBuilder.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * .NET Reference: http://referencesource.microsoft.com/#mscorlib/system/text/StringBuilder.cs\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst Types_1 = require(\"../Types\");\nconst VOID0 = void 0;\nclass StringBuilder {\n constructor(...initial) {\n var _ = this;\n _._latest = null;\n _._partArray = [];\n _.appendThese(initial);\n }\n appendSingle(item) {\n if (item !== null && item !== VOID0) {\n var _ = this;\n _._latest = null;\n switch (typeof item) {\n case Types_1.Type.OBJECT:\n case Types_1.Type.FUNCTION:\n item = item.toString();\n break;\n }\n _._partArray.push(item);\n }\n }\n appendThese(items) {\n var _ = this;\n items.forEach(s => _.appendSingle(s));\n return _;\n }\n append(...items) {\n this.appendThese(items);\n return this;\n }\n appendLine(...items) {\n this.appendLines(items);\n return this;\n }\n appendLines(items) {\n var _ = this;\n items.forEach(i => {\n if (i !== null && i !== VOID0) {\n _.appendSingle(i);\n _._partArray.push(\"\\r\\n\");\n }\n });\n return _;\n }\n get isEmpty() {\n return this._partArray.length === 0;\n }\n toString() {\n var latest = this._latest;\n if (!latest === null)\n this._latest = latest = this._partArray.join();\n return latest;\n }\n join(delimiter) {\n return this._partArray.join(delimiter);\n }\n clear() {\n this._partArray.length = 0;\n this._latest = null;\n }\n dispose() {\n this.clear();\n }\n}\nexports.StringBuilder = StringBuilder;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = StringBuilder;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * .NET Reference: http://referencesource.microsoft.com/#mscorlib/system/text/StringBuilder.cs\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {Type} from \"../Types\";\r\nimport {IDisposable} from \"../Disposable/IDisposable\";\r\n\r\nconst VOID0:any = void 0;\r\n\r\n/*****************************\r\n * IMPORTANT NOTES ABOUT PERFORMANCE:\r\n * http://jsperf.com/string-concatenation-looped\r\n * http://jsperf.com/adding-strings-to-an-array\r\n * http://jsperf.com/string-concatenation-versus-array-operations-with-join\r\n *\r\n * It is clearly inefficient to use a StringBuilder or LinkedList to build a string when you have a small set of string portions.\r\n * StringBuilder will really show it's benefit likely somewhere above 1000 items.\r\n *****************************/\r\n\r\n\r\nexport class StringBuilder implements IDisposable\r\n\t// Adding IDisposable allows for use with System.using();\r\n\t// ... and since this may end up being a large array container, might be a good idea to allow for flexible cleanup.\r\n{\r\n\t//noinspection JSMismatchedCollectionQueryUpdate\r\n\tprivate _partArray:any[];\r\n\tprivate _latest:string; // AKA persistentString\r\n\r\n\tconstructor(...initial:any[])\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_._latest = null;\r\n\t\t_._partArray = [];\r\n\t\t_.appendThese(initial);\r\n\t}\r\n\r\n\tprivate appendSingle(item:any):void\r\n\t{\r\n\t\tif(item!==null && item!==VOID0)\r\n\t\t{\r\n\t\t\tvar _ = this;\r\n\t\t\t_._latest = null;\r\n\t\t\tswitch(typeof item)\r\n\t\t\t{\r\n\t\t\t\tcase Type.OBJECT:\r\n\t\t\t\tcase Type.FUNCTION:\r\n\t\t\t\t\titem = item.toString();\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\t_._partArray.push(item); // Other primitive types can keep their format since a number or boolean is a smaller footprint than a string.\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tappendThese(items:any[]):StringBuilder\r\n\t{\r\n\t\tvar _ = this;\r\n\t\titems.forEach(s=> _.appendSingle(s));\r\n\t\treturn _;\r\n\t}\r\n\r\n\tappend(...items:any[]):StringBuilder\r\n\t{\r\n\t\tthis.appendThese(items);\r\n\t\treturn this;\r\n\t}\r\n\r\n\tappendLine(...items:any[]):StringBuilder\r\n\t{\r\n\t\tthis.appendLines(items);\r\n\t\treturn this;\r\n\t}\r\n\r\n\tappendLines(items:any[]):StringBuilder\r\n\t{\r\n\t\tvar _ = this;\r\n\t\titems.forEach(\r\n\t\t\ti=>\r\n\t\t\t{\r\n\t\t\t\tif(i!==null && i!==VOID0)\r\n\t\t\t\t{\r\n\t\t\t\t\t_.appendSingle(i);\r\n\t\t\t\t\t_._partArray.push(\"\\r\\n\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\t\treturn _;\r\n\t}\r\n\r\n\t/** /// These methods can only efficiently be added if not using a single array.\r\n\t insert(index: number, value: string, count: number = 1): StringBuilder\r\n\t {\r\n\r\n\t}\r\n\r\n\t remove(startIndex:number, length:number): StringBuilder\r\n\t {\r\n\r\n\t}\r\n\t /**/\r\n\r\n\tget isEmpty()\r\n\t{\r\n\t\treturn this._partArray.length===0;\r\n\t}\r\n\r\n\ttoString()\r\n\t{\r\n\t\tvar latest = this._latest;\r\n\t\tif(!latest===null)\r\n\t\t\tthis._latest = latest = this._partArray.join();\r\n\r\n\t\treturn latest;\r\n\t}\r\n\r\n\tjoin(delimiter:string):string\r\n\t{\r\n\t\treturn this._partArray.join(delimiter);\r\n\t}\r\n\r\n\tclear():void\r\n\t{\r\n\t\tthis._partArray.length = 0;\r\n\t\tthis._latest = null;\r\n\t}\r\n\r\n\tdispose():void\r\n\t{\r\n\t\tthis.clear();\r\n\t}\r\n\r\n}\r\n\r\nexport default StringBuilder;"]} \ No newline at end of file diff --git a/dist/commonjs/System/Text/Utility.js b/dist/commonjs/System/Text/Utility.js index d11be614..1eee2775 100644 --- a/dist/commonjs/System/Text/Utility.js +++ b/dist/commonjs/System/Text/Utility.js @@ -96,29 +96,29 @@ function supplant(source, params) { } var r = params[n]; switch (typeof r === "undefined" ? "undefined" : _typeof(r)) { - case Types_1.default.STRING: - case Types_1.default.NUMBER: - case Types_1.default.BOOLEAN: + case Types_1.Type.STRING: + case Types_1.Type.NUMBER: + case Types_1.Type.BOOLEAN: return r; default: - return r && Types_1.default.hasMemberOfType(r, "toString", Types_1.default.FUNCTION) ? r.toString() : a; + return r && Types_1.Type.hasMemberOfType(r, "toString", Types_1.Type.FUNCTION) ? r.toString() : a; } }); } exports.supplant = supplant; function canMatch(source, match) { - if (!Types_1.default.isString(source) || !match) return false; + if (!Types_1.Type.isString(source) || !match) return false; if (source === match) return true; if (match.length < source.length) return null; } function startsWith(source, pattern) { var m = canMatch(source, pattern); - return Types_1.default.isBoolean(m) ? m : source.indexOf(pattern) == 0; + return Types_1.Type.isBoolean(m) ? m : source.indexOf(pattern) == 0; } exports.startsWith = startsWith; function endsWith(source, pattern) { var m = canMatch(source, pattern); - return Types_1.default.isBoolean(m) ? m : source.lastIndexOf(pattern) == source.length - pattern.length; + return Types_1.Type.isBoolean(m) ? m : source.lastIndexOf(pattern) == source.length - pattern.length; } exports.endsWith = endsWith; //# sourceMappingURL=Utility.js.map diff --git a/dist/commonjs/System/Text/Utility.js.map b/dist/commonjs/System/Text/Utility.js.map index cd0502ce..ee8666f1 100644 --- a/dist/commonjs/System/Text/Utility.js.map +++ b/dist/commonjs/System/Text/Utility.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Text/Utility.js","System/Text/Utility.ts"],"names":[],"mappings":"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","file":"System/Text/Utility.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst Types_1 = require(\"../Types\");\nexports.EMPTY = '';\nfunction getHashCode(source) {\n var hash = 0 | 0;\n if (source.length == 0)\n return hash;\n for (let i = 0, l = source.length; i < l; i++) {\n let ch = source.charCodeAt(i);\n hash = ((hash << 5) - hash) + ch;\n hash |= 0;\n }\n return hash;\n}\nexports.getHashCode = getHashCode;\nfunction repeat(source, count) {\n var result = exports.EMPTY;\n if (!isNaN(count)) {\n for (let i = 0; i < count; i++) {\n result += source;\n }\n }\n return result;\n}\nexports.repeat = repeat;\nfunction fromChars(chOrChars, count = 1) {\n if (Array.isArray(chOrChars)) {\n let result = exports.EMPTY;\n for (let char of chOrChars) {\n result += String.fromCharCode(char);\n }\n return result;\n }\n else {\n return repeat(String.fromCharCode(chOrChars), count);\n }\n}\nexports.fromChars = fromChars;\nfunction escapeRegExp(source) {\n return source.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, \"\\\\$&\");\n}\nexports.escapeRegExp = escapeRegExp;\nfunction trim(source, chars, ignoreCase) {\n if (chars === exports.EMPTY)\n return source;\n if (chars) {\n var escaped = escapeRegExp(Array.isArray(chars) ? chars.join() : chars);\n return source.replace(new RegExp('^[' + escaped + ']+|[' + escaped + ']+$', 'g' + (ignoreCase\n ? 'i'\n : '')), exports.EMPTY);\n }\n return source.replace(/^\\s+|\\s+$/g, exports.EMPTY);\n}\nexports.trim = trim;\nfunction format(source, ...args) {\n return supplant(source, args);\n}\nexports.format = format;\nfunction supplant(source, params) {\n var oIsArray = Array.isArray(params);\n return source.replace(/\\{([^{}]*)\\}/g, (a, b) => {\n var n = b;\n if (oIsArray) {\n let i = parseInt(b);\n if (!isNaN(i))\n n = i;\n }\n var r = params[n];\n switch (typeof r) {\n case Types_1.default.STRING:\n case Types_1.default.NUMBER:\n case Types_1.default.BOOLEAN:\n return r;\n default:\n return (r && Types_1.default.hasMemberOfType(r, \"toString\", Types_1.default.FUNCTION))\n ? r.toString()\n : a;\n }\n });\n}\nexports.supplant = supplant;\nfunction canMatch(source, match) {\n if (!Types_1.default.isString(source) || !match)\n return false;\n if (source === match)\n return true;\n if (match.length < source.length)\n return null;\n}\nfunction startsWith(source, pattern) {\n var m = canMatch(source, pattern);\n return Types_1.default.isBoolean(m) ? m : source.indexOf(pattern) == 0;\n}\nexports.startsWith = startsWith;\nfunction endsWith(source, pattern) {\n var m = canMatch(source, pattern);\n return Types_1.default.isBoolean(m) ? m : source.lastIndexOf(pattern) == (source.length - pattern.length);\n}\nexports.endsWith = endsWith;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport Type from \"../Types\";\r\n\r\nexport const EMPTY:string = '';\r\n\r\n/**\r\n * Returns a numerical (integer) hash code of the string. Can be used for identifying inequality of contents, but two different strings in rare cases will have the same hash code.\r\n * @param source\r\n * @returns {number}\r\n */\r\nexport function getHashCode(source:string):number\r\n{\r\n\tvar hash = 0 | 0;\r\n\tif(source.length==0) return hash;\r\n\tfor(let i = 0, l = source.length; ichars);\r\n\t\treturn source.replace(new RegExp('^[' + escaped + ']+|[' + escaped + ']+$', 'g' + (ignoreCase\r\n\t\t\t\t? 'i'\r\n\t\t\t\t: '')), EMPTY);\r\n\t}\r\n\r\n\treturn source.replace(/^\\s+|\\s+$/g, EMPTY);\r\n}\r\n\r\n/**\r\n * Takes any arg\r\n * @param source\r\n * @param args\r\n * @returns {string}\r\n */\r\nexport function format(source:string, ...args:any[])\r\n{\r\n\treturn supplant(source, args);\r\n}\r\n\r\n//\r\n\r\n/**\r\n * This takes a string and replaces '{string}' with the respected parameter.\r\n * Also allows for passing an array in order to use '{n}' notation.\r\n * Not limited to an array's indexes. For example, {length} is allowed.\r\n * Based upon Crockford's supplant function.\r\n * @param source\r\n * @param params\r\n * @returns {string}\r\n */\r\nexport function supplant(source:string, params:{[key:string]:any}|any[]):string\r\n{\r\n\tvar oIsArray = Array.isArray(params);\r\n\treturn source.replace(/\\{([^{}]*)\\}/g,\r\n\t\t(a:string, b:string):any=>\r\n\t\t{\r\n\t\t\tvar n:any = b;\r\n\t\t\tif(oIsArray)\r\n\t\t\t{\r\n\t\t\t\tlet i = parseInt(b);\r\n\t\t\t\tif(!isNaN(i)) n = i;\r\n\t\t\t}\r\n\r\n\t\t\tvar r = (params)[n];\r\n\t\t\tswitch(typeof r)\r\n\t\t\t{\r\n\t\t\t\tcase Type.STRING:\r\n\t\t\t\tcase Type.NUMBER:\r\n\t\t\t\tcase Type.BOOLEAN:\r\n\t\t\t\t\treturn r;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\treturn (r && Type.hasMemberOfType(r, \"toString\", Type.FUNCTION))\r\n\t\t\t\t\t\t? r.toString()\r\n\t\t\t\t\t\t: a;\r\n\t\t\t}\r\n\t\t}\r\n\t);\r\n}\r\n\r\n\r\nfunction canMatch(source:string, match:string):boolean {\r\n\tif(!Type.isString(source) || !match) return false;\r\n\tif(source===match) return true;\r\n\tif(match.length {\n var n = b;\n if (oIsArray) {\n let i = parseInt(b);\n if (!isNaN(i))\n n = i;\n }\n var r = params[n];\n switch (typeof r) {\n case Types_1.Type.STRING:\n case Types_1.Type.NUMBER:\n case Types_1.Type.BOOLEAN:\n return r;\n default:\n return (r && Types_1.Type.hasMemberOfType(r, \"toString\", Types_1.Type.FUNCTION))\n ? r.toString()\n : a;\n }\n });\n}\nexports.supplant = supplant;\nfunction canMatch(source, match) {\n if (!Types_1.Type.isString(source) || !match)\n return false;\n if (source === match)\n return true;\n if (match.length < source.length)\n return null;\n}\nfunction startsWith(source, pattern) {\n var m = canMatch(source, pattern);\n return Types_1.Type.isBoolean(m) ? m : source.indexOf(pattern) == 0;\n}\nexports.startsWith = startsWith;\nfunction endsWith(source, pattern) {\n var m = canMatch(source, pattern);\n return Types_1.Type.isBoolean(m) ? m : source.lastIndexOf(pattern) == (source.length - pattern.length);\n}\nexports.endsWith = endsWith;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {Type} from \"../Types\";\r\n\r\nexport const EMPTY:string = '';\r\n\r\n/**\r\n * Returns a numerical (integer) hash code of the string. Can be used for identifying inequality of contents, but two different strings in rare cases will have the same hash code.\r\n * @param source\r\n * @returns {number}\r\n */\r\nexport function getHashCode(source:string):number\r\n{\r\n\tvar hash = 0 | 0;\r\n\tif(source.length==0) return hash;\r\n\tfor(let i = 0, l = source.length; ichars);\r\n\t\treturn source.replace(new RegExp('^[' + escaped + ']+|[' + escaped + ']+$', 'g' + (ignoreCase\r\n\t\t\t\t? 'i'\r\n\t\t\t\t: '')), EMPTY);\r\n\t}\r\n\r\n\treturn source.replace(/^\\s+|\\s+$/g, EMPTY);\r\n}\r\n\r\n/**\r\n * Takes any arg\r\n * @param source\r\n * @param args\r\n * @returns {string}\r\n */\r\nexport function format(source:string, ...args:any[])\r\n{\r\n\treturn supplant(source, args);\r\n}\r\n\r\n//\r\n\r\n/**\r\n * This takes a string and replaces '{string}' with the respected parameter.\r\n * Also allows for passing an array in order to use '{n}' notation.\r\n * Not limited to an array's indexes. For example, {length} is allowed.\r\n * Based upon Crockford's supplant function.\r\n * @param source\r\n * @param params\r\n * @returns {string}\r\n */\r\nexport function supplant(source:string, params:{[key:string]:any}|any[]):string\r\n{\r\n\tvar oIsArray = Array.isArray(params);\r\n\treturn source.replace(/\\{([^{}]*)\\}/g,\r\n\t\t(a:string, b:string):any=>\r\n\t\t{\r\n\t\t\tvar n:any = b;\r\n\t\t\tif(oIsArray)\r\n\t\t\t{\r\n\t\t\t\tlet i = parseInt(b);\r\n\t\t\t\tif(!isNaN(i)) n = i;\r\n\t\t\t}\r\n\r\n\t\t\tvar r = (params)[n];\r\n\t\t\tswitch(typeof r)\r\n\t\t\t{\r\n\t\t\t\tcase Type.STRING:\r\n\t\t\t\tcase Type.NUMBER:\r\n\t\t\t\tcase Type.BOOLEAN:\r\n\t\t\t\t\treturn r;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\treturn (r && Type.hasMemberOfType(r, \"toString\", Type.FUNCTION))\r\n\t\t\t\t\t\t? r.toString()\r\n\t\t\t\t\t\t: a;\r\n\t\t\t}\r\n\t\t}\r\n\t);\r\n}\r\n\r\n\r\nfunction canMatch(source:string, match:string):boolean {\r\n\tif(!Type.isString(source) || !match) return false;\r\n\tif(source===match) return true;\r\n\tif(match.length -/// -/// -/// -/// -/// -/// -/// -import TimeQuantity from './TimeQuantity'; -export default class ClockTime extends TimeQuantity implements IClockTime { +/*! + * @author electricessence / https://github.com/electricessence/ + * Originally based upon .NET source but with many additions and improvements. + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +import { TimeQuantity } from "./TimeQuantity"; +import { IClockTime } from "./ITimeStamp"; +export declare class ClockTime extends TimeQuantity implements IClockTime { days: number; hour: number; minute: number; @@ -20,3 +18,4 @@ export default class ClockTime extends TimeQuantity implements IClockTime { static millisecondsFromTime(hours: number, minutes: number, seconds?: number, milliseconds?: number): number; toString(): string; } +export default ClockTime; diff --git a/dist/commonjs/System/Time/ClockTime.js b/dist/commonjs/System/Time/ClockTime.js index 8913d1da..8ad308d1 100644 --- a/dist/commonjs/System/Time/ClockTime.js +++ b/dist/commonjs/System/Time/ClockTime.js @@ -1,4 +1,9 @@ -'use strict'; +/*! + * @author electricessence / https://github.com/electricessence/ + * Originally based upon .NET source but with many additions and improvements. + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +"use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); @@ -8,10 +13,10 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } -var TimeQuantity_1 = require('./TimeQuantity'); +var TimeQuantity_1 = require("./TimeQuantity"); -var ClockTime = function (_TimeQuantity_1$defau) { - _inherits(ClockTime, _TimeQuantity_1$defau); +var ClockTime = function (_TimeQuantity_1$TimeQ) { + _inherits(ClockTime, _TimeQuantity_1$TimeQ); function ClockTime() { _classCallCheck(this, ClockTime); @@ -36,7 +41,7 @@ var ClockTime = function (_TimeQuantity_1$defau) { } _createClass(ClockTime, [{ - key: 'toString', + key: "toString", value: function toString() { var _ = this, a = []; @@ -48,7 +53,7 @@ var ClockTime = function (_TimeQuantity_1$defau) { return a.join(", ").replace(", and, ", " and "); } }], [{ - key: 'from', + key: "from", value: function from(hours, minutes) { var seconds = arguments.length <= 2 || arguments[2] === undefined ? 0 : arguments[2]; var milliseconds = arguments.length <= 3 || arguments[3] === undefined ? 0 : arguments[3]; @@ -56,7 +61,7 @@ var ClockTime = function (_TimeQuantity_1$defau) { return new ClockTime(hours, minutes, seconds, milliseconds); } }, { - key: 'millisecondsFromTime', + key: "millisecondsFromTime", value: function millisecondsFromTime(hours, minutes) { var seconds = arguments.length <= 2 || arguments[2] === undefined ? 0 : arguments[2]; var milliseconds = arguments.length <= 3 || arguments[3] === undefined ? 0 : arguments[3]; @@ -73,12 +78,13 @@ var ClockTime = function (_TimeQuantity_1$defau) { }]); return ClockTime; -}(TimeQuantity_1.default); +}(TimeQuantity_1.TimeQuantity); -Object.defineProperty(exports, "__esModule", { value: true }); -exports.default = ClockTime; +exports.ClockTime = ClockTime; function pluralize(value, label) { if (Math.abs(value) !== 1) label += "s"; return label; } +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = ClockTime; //# sourceMappingURL=ClockTime.js.map diff --git a/dist/commonjs/System/Time/ClockTime.js.map b/dist/commonjs/System/Time/ClockTime.js.map index 91566cdb..564ee3ce 100644 --- a/dist/commonjs/System/Time/ClockTime.js.map +++ b/dist/commonjs/System/Time/ClockTime.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Time/ClockTime.ts","System/Time/ClockTime.js"],"names":[],"mappings":"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","file":"System/Time/ClockTime.js","sourcesContent":["///\r\n///\r\n///\r\n///\r\n///\r\n///\r\n///\r\n///\r\n/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Originally based upon .NET source but with many additions and improvements.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport {areEqual,compare} from '../Compare';\r\nimport TimeQuantity from './TimeQuantity';\r\n\r\n\r\nexport default\r\nclass ClockTime extends TimeQuantity implements IClockTime\r\n{\r\n\r\n\tdays:number;\r\n\thour:number;\r\n\tminute:number;\r\n\tsecond:number;\r\n\tmillisecond:number;\r\n\ttick:number;\r\n\r\n\tconstructor(milliseconds:number);\r\n\tconstructor(hours:number, minutes:number, seconds?:number, milliseconds?:number);\r\n\tconstructor(...args:number[])\r\n\t{\r\n\t\tsuper(\r\n\t\t\targs.length>1\r\n\t\t\t\t? ClockTime.millisecondsFromTime(\r\n\t\t\t\targs[0] || 0,\r\n\t\t\t\targs[1] || 0,\r\n\t\t\t\targs.length>2 && args[2] || 0,\r\n\t\t\t\targs.length>3 && args[3] || 0\r\n\t\t\t)\r\n\t\t\t\t: (args.length>0 && args[0] || 0)\r\n\t\t);\r\n\r\n\t\tvar _ = this;\r\n\t\tvar ms = Math.abs(_.getTotalMilliseconds());\r\n\t\tvar msi = Math.floor(ms);\r\n\r\n\t\t_.tick = (ms - msi)*HowMany.Ticks.Per.Millisecond;\r\n\r\n\t\t_.days = (msi/HowMany.Milliseconds.Per.Day) | 0;\r\n\t\tmsi -= _.days * HowMany.Milliseconds.Per.Day;\r\n\r\n\t\t_.hour = (msi/HowMany.Milliseconds.Per.Hour) | 0;\r\n\t\tmsi -= _.hour * HowMany.Milliseconds.Per.Hour;\r\n\r\n\t\t_.minute = (msi/HowMany.Milliseconds.Per.Minute) | 0;\r\n\t\tmsi -= _.minute * HowMany.Milliseconds.Per.Minute;\r\n\r\n\t\t_.second = (msi/HowMany.Milliseconds.Per.Second) | 0;\r\n\t\tmsi -= _.second * HowMany.Milliseconds.Per.Second;\r\n\r\n\t\t_.millisecond = msi;\r\n\r\n\t\tObject.freeze(_);\r\n\t}\r\n\r\n\r\n\t// Static version for relative consistency. Constructor does allow this format.\r\n\tstatic from(hours:number, minutes:number, seconds:number = 0, milliseconds:number = 0):ClockTime\r\n\t{\r\n\t\treturn new ClockTime(hours, minutes, seconds, milliseconds);\r\n\t}\r\n\r\n\tstatic millisecondsFromTime(\r\n\t\thours:number,\r\n\t\tminutes:number,\r\n\t\tseconds:number = 0,\r\n\t\tmilliseconds:number = 0):number\r\n\t{\r\n\t\tvar value = hours;\r\n\t\tvalue *= HowMany.Minutes.Per.Hour;\r\n\t\tvalue += minutes;\r\n\t\tvalue *= HowMany.Seconds.Per.Minute;\r\n\t\tvalue += seconds;\r\n\t\tvalue *= HowMany.Milliseconds.Per.Second;\r\n\t\tvalue += milliseconds;\r\n\t\treturn value;\r\n\t}\r\n\r\n\ttoString(/*format?:string, formatProvider?:IFormatProvider*/):string\r\n\t{\r\n\t\t/* INSERT CUSTOM FORMATTING CODE HERE */\r\n\r\n\r\n\t\tvar _ = this, a:string[] = [];\r\n\r\n\t\tif(_.days)\r\n\t\t\ta.push(pluralize(_.days, \"day\"));\r\n\r\n\t\tif(_.hour)\r\n\t\t\ta.push(pluralize(_.hour, \"hour\"));\r\n\r\n\t\tif(_.minute)\r\n\t\t\ta.push(pluralize(_.minute, \"minute\"));\r\n\r\n\t\tif(_.second)\r\n\t\t\ta.push(pluralize(_.second, \"second\"));\r\n\r\n\t\tif(a.length>1)\r\n\t\t\ta.splice(a.length - 1, 0, \"and\");\r\n\r\n\t\treturn a.join(\", \").replace(\", and, \", \" and \");\r\n\t}\r\n\r\n}\r\n\r\n\r\n// Temporary until the full TimeSpanFormat is available.\r\nfunction pluralize(value:number, label:string):string\r\n{\r\n\tif(Math.abs(value)!==1)\r\n\t\tlabel += \"s\";\r\n\r\n\treturn label;\r\n}\r\n","'use strict';\nconst TimeQuantity_1 = require('./TimeQuantity');\nclass ClockTime extends TimeQuantity_1.default {\n constructor(...args) {\n super(args.length > 1\n ? ClockTime.millisecondsFromTime(args[0] || 0, args[1] || 0, args.length > 2 && args[2] || 0, args.length > 3 && args[3] || 0)\n : (args.length > 0 && args[0] || 0));\n var _ = this;\n var ms = Math.abs(_.getTotalMilliseconds());\n var msi = Math.floor(ms);\n _.tick = (ms - msi) * 10000;\n _.days = (msi / 86400000) | 0;\n msi -= _.days * 86400000;\n _.hour = (msi / 3600000) | 0;\n msi -= _.hour * 3600000;\n _.minute = (msi / 60000) | 0;\n msi -= _.minute * 60000;\n _.second = (msi / 1000) | 0;\n msi -= _.second * 1000;\n _.millisecond = msi;\n Object.freeze(_);\n }\n static from(hours, minutes, seconds = 0, milliseconds = 0) {\n return new ClockTime(hours, minutes, seconds, milliseconds);\n }\n static millisecondsFromTime(hours, minutes, seconds = 0, milliseconds = 0) {\n var value = hours;\n value *= 60;\n value += minutes;\n value *= 60;\n value += seconds;\n value *= 1000;\n value += milliseconds;\n return value;\n }\n toString() {\n var _ = this, a = [];\n if (_.days)\n a.push(pluralize(_.days, \"day\"));\n if (_.hour)\n a.push(pluralize(_.hour, \"hour\"));\n if (_.minute)\n a.push(pluralize(_.minute, \"minute\"));\n if (_.second)\n a.push(pluralize(_.second, \"second\"));\n if (a.length > 1)\n a.splice(a.length - 1, 0, \"and\");\n return a.join(\", \").replace(\", and, \", \" and \");\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = ClockTime;\nfunction pluralize(value, label) {\n if (Math.abs(value) !== 1)\n label += \"s\";\n return label;\n}\n"]} \ No newline at end of file +{"version":3,"sources":["System/Time/ClockTime.js","System/Time/ClockTime.ts"],"names":[],"mappings":"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","file":"System/Time/ClockTime.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Originally based upon .NET source but with many additions and improvements.\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst TimeQuantity_1 = require(\"./TimeQuantity\");\nclass ClockTime extends TimeQuantity_1.TimeQuantity {\n constructor(...args) {\n super(args.length > 1\n ? ClockTime.millisecondsFromTime(args[0] || 0, args[1] || 0, args.length > 2 && args[2] || 0, args.length > 3 && args[3] || 0)\n : (args.length > 0 && args[0] || 0));\n var _ = this;\n var ms = Math.abs(_.getTotalMilliseconds());\n var msi = Math.floor(ms);\n _.tick = (ms - msi) * 10000;\n _.days = (msi / 86400000) | 0;\n msi -= _.days * 86400000;\n _.hour = (msi / 3600000) | 0;\n msi -= _.hour * 3600000;\n _.minute = (msi / 60000) | 0;\n msi -= _.minute * 60000;\n _.second = (msi / 1000) | 0;\n msi -= _.second * 1000;\n _.millisecond = msi;\n Object.freeze(_);\n }\n static from(hours, minutes, seconds = 0, milliseconds = 0) {\n return new ClockTime(hours, minutes, seconds, milliseconds);\n }\n static millisecondsFromTime(hours, minutes, seconds = 0, milliseconds = 0) {\n var value = hours;\n value *= 60;\n value += minutes;\n value *= 60;\n value += seconds;\n value *= 1000;\n value += milliseconds;\n return value;\n }\n toString() {\n var _ = this, a = [];\n if (_.days)\n a.push(pluralize(_.days, \"day\"));\n if (_.hour)\n a.push(pluralize(_.hour, \"hour\"));\n if (_.minute)\n a.push(pluralize(_.minute, \"minute\"));\n if (_.second)\n a.push(pluralize(_.second, \"second\"));\n if (a.length > 1)\n a.splice(a.length - 1, 0, \"and\");\n return a.join(\", \").replace(\", and, \", \" and \");\n }\n}\nexports.ClockTime = ClockTime;\nfunction pluralize(value, label) {\n if (Math.abs(value) !== 1)\n label += \"s\";\n return label;\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = ClockTime;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Originally based upon .NET source but with many additions and improvements.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {TimeQuantity} from \"./TimeQuantity\";\r\nimport {IClockTime} from \"./ITimeStamp\";\r\nimport {Minutes, Seconds, Milliseconds, Ticks} from \"./HowMany\";\r\n\r\n\r\nexport class ClockTime extends TimeQuantity implements IClockTime\r\n{\r\n\r\n\tdays:number;\r\n\thour:number;\r\n\tminute:number;\r\n\tsecond:number;\r\n\tmillisecond:number;\r\n\ttick:number;\r\n\r\n\tconstructor(milliseconds:number);\r\n\tconstructor(hours:number, minutes:number, seconds?:number, milliseconds?:number);\r\n\tconstructor(...args:number[])\r\n\t{\r\n\t\tsuper(\r\n\t\t\targs.length>1\r\n\t\t\t\t? ClockTime.millisecondsFromTime(\r\n\t\t\t\targs[0] || 0,\r\n\t\t\t\targs[1] || 0,\r\n\t\t\t\targs.length>2 && args[2] || 0,\r\n\t\t\t\targs.length>3 && args[3] || 0\r\n\t\t\t)\r\n\t\t\t\t: (args.length>0 && args[0] || 0)\r\n\t\t);\r\n\r\n\t\tvar _ = this;\r\n\t\tvar ms = Math.abs(_.getTotalMilliseconds());\r\n\t\tvar msi = Math.floor(ms);\r\n\r\n\t\t_.tick = (ms - msi)*Ticks.Per.Millisecond;\r\n\r\n\t\t_.days = (msi/Milliseconds.Per.Day) | 0;\r\n\t\tmsi -= _.days*Milliseconds.Per.Day;\r\n\r\n\t\t_.hour = (msi/Milliseconds.Per.Hour) | 0;\r\n\t\tmsi -= _.hour*Milliseconds.Per.Hour;\r\n\r\n\t\t_.minute = (msi/Milliseconds.Per.Minute) | 0;\r\n\t\tmsi -= _.minute*Milliseconds.Per.Minute;\r\n\r\n\t\t_.second = (msi/Milliseconds.Per.Second) | 0;\r\n\t\tmsi -= _.second*Milliseconds.Per.Second;\r\n\r\n\t\t_.millisecond = msi;\r\n\r\n\t\tObject.freeze(_);\r\n\t}\r\n\r\n\r\n\t// Static version for relative consistency. Constructor does allow this format.\r\n\tstatic from(hours:number, minutes:number, seconds:number = 0, milliseconds:number = 0):ClockTime\r\n\t{\r\n\t\treturn new ClockTime(hours, minutes, seconds, milliseconds);\r\n\t}\r\n\r\n\tstatic millisecondsFromTime(\r\n\t\thours:number,\r\n\t\tminutes:number,\r\n\t\tseconds:number = 0,\r\n\t\tmilliseconds:number = 0):number\r\n\t{\r\n\t\tvar value = hours;\r\n\t\tvalue *= Minutes.Per.Hour;\r\n\t\tvalue += minutes;\r\n\t\tvalue *= Seconds.Per.Minute;\r\n\t\tvalue += seconds;\r\n\t\tvalue *= Milliseconds.Per.Second;\r\n\t\tvalue += milliseconds;\r\n\t\treturn value;\r\n\t}\r\n\r\n\ttoString(/*format?:string, formatProvider?:IFormatProvider*/):string\r\n\t{\r\n\t\t/* INSERT CUSTOM FORMATTING CODE HERE */\r\n\r\n\r\n\t\tvar _ = this, a:string[] = [];\r\n\r\n\t\tif(_.days)\r\n\t\t\ta.push(pluralize(_.days, \"day\"));\r\n\r\n\t\tif(_.hour)\r\n\t\t\ta.push(pluralize(_.hour, \"hour\"));\r\n\r\n\t\tif(_.minute)\r\n\t\t\ta.push(pluralize(_.minute, \"minute\"));\r\n\r\n\t\tif(_.second)\r\n\t\t\ta.push(pluralize(_.second, \"second\"));\r\n\r\n\t\tif(a.length>1)\r\n\t\t\ta.splice(a.length - 1, 0, \"and\");\r\n\r\n\t\treturn a.join(\", \").replace(\", and, \", \" and \");\r\n\t}\r\n\r\n}\r\n\r\n\r\n// Temporary until the full TimeSpanFormat is available.\r\nfunction pluralize(value:number, label:string):string\r\n{\r\n\tif(Math.abs(value)!==1)\r\n\t\tlabel += \"s\";\r\n\r\n\treturn label;\r\n}\r\n\r\nexport default ClockTime;"]} \ No newline at end of file diff --git a/dist/commonjs/System/Time/DateTime.d.ts b/dist/commonjs/System/Time/DateTime.d.ts index 0f637d7a..dd375441 100644 --- a/dist/commonjs/System/Time/DateTime.d.ts +++ b/dist/commonjs/System/Time/DateTime.d.ts @@ -1,16 +1,15 @@ -/// -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Based on .NET DateTime's interface. * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import ClockTime from './ClockTime'; -import TimeSpan from './TimeSpan'; -declare class DateTime implements ICalendarDate, IDateTime { +import { ICalendarDate, ITimeStamp } from "./ITimeStamp"; +import { TimeSpan } from "./TimeSpan"; +import { ClockTime } from "./ClockTime"; +import { IDateTime } from "./IDateTime"; +import { Gregorian } from "./Calendars"; +import { ITimeQuantity } from "./ITimeQuantity"; +export declare class DateTime implements ICalendarDate, IDateTime { private _value; toJsDate(): Date; private _setJsDate(value); @@ -47,7 +46,7 @@ declare class DateTime implements ICalendarDate, IDateTime { static isLeapYear(year: number): boolean; static daysInMonth(year: number, month: Gregorian.Month): number; } -declare module DateTime { +export declare module DateTime { const enum Kind { Unspecified = 0, Local = 1, diff --git a/dist/commonjs/System/Time/DateTime.js b/dist/commonjs/System/Time/DateTime.js index 46f28a99..186a7284 100644 --- a/dist/commonjs/System/Time/DateTime.js +++ b/dist/commonjs/System/Time/DateTime.js @@ -3,15 +3,15 @@ * Based on .NET DateTime's interface. * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; +"use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -var ClockTime_1 = require('./ClockTime'); -var TimeSpan_1 = require('./TimeSpan'); -var TimeStamp_1 = require('./TimeStamp'); +var TimeSpan_1 = require("./TimeSpan"); +var ClockTime_1 = require("./ClockTime"); +var TimeStamp_1 = require("./TimeStamp"); var DateTime = function () { function DateTime() { @@ -26,48 +26,48 @@ var DateTime = function () { } _createClass(DateTime, [{ - key: 'toJsDate', + key: "toJsDate", value: function toJsDate() { return new Date(this._value.getTime()); } }, { - key: '_setJsDate', + key: "_setJsDate", value: function _setJsDate(value) { this._time = null; this._value = new Date(value.getTime()); } }, { - key: 'addMilliseconds', + key: "addMilliseconds", value: function addMilliseconds(ms) { ms = ms || 0; return new DateTime(this._value.getTime() + ms, this._kind); } }, { - key: 'addSeconds', + key: "addSeconds", value: function addSeconds(seconds) { seconds = seconds || 0; return this.addMilliseconds(seconds * 1000); } }, { - key: 'addMinutes', + key: "addMinutes", value: function addMinutes(minutes) { minutes = minutes || 0; return this.addMilliseconds(minutes * 60000); } }, { - key: 'addHours', + key: "addHours", value: function addHours(hours) { hours = hours || 0; return this.addMilliseconds(hours * 3600000); } }, { - key: 'addDays', + key: "addDays", value: function addDays(days) { days = days || 0; return this.addMilliseconds(days * 86400000); } }, { - key: 'addMonths', + key: "addMonths", value: function addMonths(months) { months = months || 0; var d = this.toJsDate(); @@ -75,7 +75,7 @@ var DateTime = function () { return new DateTime(d, this._kind); } }, { - key: 'addYears', + key: "addYears", value: function addYears(years) { years = years || 0; var d = this.toJsDate(); @@ -83,69 +83,69 @@ var DateTime = function () { return new DateTime(d, this._kind); } }, { - key: 'add', + key: "add", value: function add(time) { return this.addMilliseconds(time.getTotalMilliseconds()); } }, { - key: 'subtract', + key: "subtract", value: function subtract(time) { return this.addMilliseconds(-time.getTotalMilliseconds()); } }, { - key: 'timePassedSince', + key: "timePassedSince", value: function timePassedSince(previous) { return DateTime.between(previous, this); } }, { - key: 'toTimeStamp', + key: "toTimeStamp", value: function toTimeStamp() { - return TimeStamp_1.default.from(this); + return TimeStamp_1.TimeStamp.from(this); } }, { - key: 'kind', + key: "kind", get: function get() { return this._kind; } }, { - key: 'year', + key: "year", get: function get() { return this._value.getFullYear(); } }, { - key: 'month', + key: "month", get: function get() { return this._value.getMonth(); } }, { - key: 'day', + key: "day", get: function get() { return this._value.getDate(); } }, { - key: 'dayOfWeek', + key: "dayOfWeek", get: function get() { return this._value.getDay(); } }, { - key: 'date', + key: "date", get: function get() { var _ = this; return new DateTime(new Date(_.year, _.month, _.day), _._kind); } }, { - key: 'timeOfDay', + key: "timeOfDay", get: function get() { var _ = this, t = _._time; if (!t) { var d = this._value; - _._time = t = new ClockTime_1.default(d.getHours(), d.getMinutes(), d.getSeconds(), d.getMilliseconds()); + _._time = t = new ClockTime_1.ClockTime(d.getHours(), d.getMinutes(), d.getSeconds(), d.getMilliseconds()); } return t; } }, { - key: 'toUniversalTime', + key: "toUniversalTime", get: function get() { var _ = this; if (_._kind != 1) return new DateTime(_, _._kind); @@ -153,34 +153,34 @@ var DateTime = function () { return new DateTime(new Date(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate(), d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds(), d.getUTCMilliseconds()), 2); } }], [{ - key: 'between', + key: "between", value: function between(first, last) { var f = first instanceof DateTime ? first._value : first, l = last instanceof DateTime ? last._value : last; - return new TimeSpan_1.default(f.getTime() - l.getTime()); + return new TimeSpan_1.TimeSpan(f.getTime() - l.getTime()); } }, { - key: 'isLeapYear', + key: "isLeapYear", value: function isLeapYear(year) { return year % 4 == 0 && year % 100 != 0 || year % 400 == 0; } }, { - key: 'daysInMonth', + key: "daysInMonth", value: function daysInMonth(year, month) { return new Date(year, month + 1, 0).getDate(); } }, { - key: 'now', + key: "now", get: function get() { return new DateTime(); } }, { - key: 'today', + key: "today", get: function get() { return DateTime.now.date; } }, { - key: 'tomorrow', + key: "tomorrow", get: function get() { var today = DateTime.today; return today.addDays(1); @@ -190,6 +190,7 @@ var DateTime = function () { return DateTime; }(); +exports.DateTime = DateTime; Object.freeze(DateTime); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = DateTime; diff --git a/dist/commonjs/System/Time/DateTime.js.map b/dist/commonjs/System/Time/DateTime.js.map index 856f96c3..a6a9d614 100644 --- a/dist/commonjs/System/Time/DateTime.js.map +++ b/dist/commonjs/System/Time/DateTime.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Time/DateTime.ts","System/Time/DateTime.js"],"names":[],"mappings":"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","file":"System/Time/DateTime.js","sourcesContent":["///\r\n///\r\n///\r\n///\r\n///\r\n/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based on .NET DateTime's interface.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport Type from '../Types';\r\nimport ClockTime from './ClockTime';\r\nimport TimeSpan from './TimeSpan';\r\nimport TimeStamp from './TimeStamp';\r\n\r\n\r\nclass DateTime implements ICalendarDate, IDateTime\r\n{\r\n\tprivate _value:Date;\r\n\r\n\ttoJsDate():Date\r\n\t{\r\n\t\treturn new Date(this._value.getTime()); // return a clone.\r\n\t}\r\n\r\n\tprivate _setJsDate(value:Date)\r\n\t{\r\n\t\tthis._time = null;\r\n\t\tthis._value = new Date(value.getTime());\r\n\t}\r\n\r\n\tconstructor();\r\n\tconstructor(dateString:string, kind?:DateTime.Kind);\r\n\tconstructor(milliseconds:number, kind?:DateTime.Kind);\r\n\tconstructor(source:Date, kind?:DateTime.Kind);\r\n\tconstructor(source:DateTime, kind?:DateTime.Kind);\r\n\tconstructor(value:any = new Date(), kind:DateTime.Kind = DateTime.Kind.Local)\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_._kind = kind;\r\n\t\tif(value instanceof DateTime)\r\n\t\t\t_._value = value.toJsDate();\r\n\t\telse if(value instanceof Date)\r\n\t\t\t_._setJsDate(value);\r\n\t\telse\r\n\t\t\t_._value = value===void(0)\r\n\t\t\t\t? new Date()\r\n\t\t\t\t: new Date(value);\r\n\t}\r\n\r\n\tprivate _kind:DateTime.Kind;\r\n\tget kind():DateTime.Kind\r\n\t{\r\n\t\treturn this._kind;\r\n\t}\r\n\r\n\tget year():number\r\n\t{\r\n\t\treturn this._value.getFullYear();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the Gregorian Month (zero indexed).\r\n\t * @returns {number}\r\n\t */\r\n\tget month():Gregorian.Month\r\n\t{\r\n\t\treturn this._value.getMonth();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the day of the month. An integer between 1 and 31.\r\n\t * @returns {number}\r\n\t */\r\n\tget day():number\r\n\t{\r\n\t\treturn this._value.getDate();\r\n\t}\r\n\r\n\tget dayOfWeek():Gregorian.DayOfWeek\r\n\t{\r\n\t\treturn this._value.getDay();\r\n\t}\r\n\r\n\r\n\taddMilliseconds(ms:number):DateTime\r\n\t{\r\n\t\tms = ms || 0;\r\n\t\treturn new DateTime(this._value.getTime() + ms, this._kind);\r\n\t}\r\n\r\n\taddSeconds(seconds:number):DateTime\r\n\t{\r\n\t\tseconds = seconds || 0;\r\n\t\treturn this.addMilliseconds(seconds*HowMany.Milliseconds.Per.Second);\r\n\t}\r\n\r\n\taddMinutes(minutes:number):DateTime\r\n\t{\r\n\t\tminutes = minutes || 0;\r\n\t\treturn this.addMilliseconds(minutes*HowMany.Milliseconds.Per.Minute);\r\n\t}\r\n\r\n\taddHours(hours:number):DateTime\r\n\t{\r\n\t\thours = hours || 0;\r\n\t\treturn this.addMilliseconds(hours*HowMany.Milliseconds.Per.Hour);\r\n\t}\r\n\r\n\taddDays(days:number):DateTime\r\n\t{\r\n\t\tdays = days || 0;\r\n\t\treturn this.addMilliseconds(days*HowMany.Milliseconds.Per.Day);\r\n\t}\r\n\r\n\taddMonths(months:number):DateTime\r\n\t{\r\n\t\tmonths = months || 0;\r\n\t\tvar d = this.toJsDate();\r\n\t\td.setMonth(d.getMonth()+months);\r\n\t\treturn new DateTime(d, this._kind);\r\n\t}\r\n\r\n\taddYears(years:number):DateTime\r\n\t{\r\n\t\tyears = years || 0;\r\n\t\tvar d = this.toJsDate();\r\n\t\td.setFullYear(d.getFullYear()+years);\r\n\t\treturn new DateTime(d, this._kind);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Receives an ITimeQuantity value and adds based on the total milliseconds.\r\n\t * @param {ITimeQuantity} time\r\n\t * @returns {DateTime}\r\n\t */\r\n\tadd(time:ITimeQuantity):DateTime\r\n\t{\r\n\t\treturn this.addMilliseconds(time.getTotalMilliseconds());\r\n\t}\r\n\r\n\t/**\r\n\t * Receives an ITimeQuantity value and subtracts based on the total milliseconds.\r\n\t * @param {ITimeQuantity} time\r\n\t * @returns {DateTime}\r\n\t */\r\n\tsubtract(time:ITimeQuantity):DateTime\r\n\t{\r\n\t\treturn this.addMilliseconds(-time.getTotalMilliseconds());\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a TimeSpan representing the amount of time between two dates.\r\n\t * @param previous\r\n\t * @returns {TimeSpan}\r\n\t */\r\n\ttimePassedSince(previous:Date|DateTime):TimeSpan\r\n\t{\r\n\t\treturn DateTime.between(previous, this);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a DateTime object for 00:00 of this date.\r\n\t */\r\n\tget date():DateTime\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn new DateTime(\r\n\t\t\tnew Date(\r\n\t\t\t\t_.year,\r\n\t\t\t\t_.month,\r\n\t\t\t\t_.day\r\n\t\t\t)\r\n\t\t\t, _._kind\r\n\t\t);\r\n\t}\r\n\r\n\tprivate _time:ClockTime;\r\n\r\n\t/**\r\n\t * Returns the time of day represented by a ClockTime object.\r\n\t * @returns {ClockTime}\r\n\t */\r\n\tget timeOfDay():ClockTime\r\n\t{\r\n\t\tvar _ = this, t = _._time;\r\n\t\tif(!t)\r\n\t\t{\r\n\t\t\tvar d = this._value;\r\n\t\t\t_._time = t = new ClockTime(\r\n\t\t\t\td.getHours(),\r\n\t\t\t\td.getMinutes(),\r\n\t\t\t\td.getSeconds(),\r\n\t\t\t\td.getMilliseconds());\r\n\t\t}\r\n\t\treturn t;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a readonly object which contains all the date and time components.\r\n\t */\r\n\ttoTimeStamp():ITimeStamp {\r\n\t\treturn TimeStamp.from(this);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the now local time.\r\n\t * @returns {DateTime}\r\n\t */\r\n\tstatic get now():DateTime\r\n\t{\r\n\t\treturn new DateTime();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a UTC version of this date if its kind is local.\r\n\t * @returns {DateTime}\r\n\t */\r\n\tget toUniversalTime():DateTime\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(_._kind!=DateTime.Kind.Local)\r\n\t\t\treturn new DateTime(_, _._kind);\r\n\r\n\t\tvar d = _._value;\r\n\t\treturn new DateTime(\r\n\t\t\tnew Date(\r\n\t\t\t\td.getUTCFullYear(),\r\n\t\t\t\td.getUTCMonth(),\r\n\t\t\t\td.getUTCDate(),\r\n\t\t\t\td.getUTCHours(),\r\n\t\t\t\td.getUTCMinutes(),\r\n\t\t\t\td.getUTCSeconds(),\r\n\t\t\t\td.getUTCMilliseconds()\r\n\t\t\t),\r\n\t\t\tDateTime.Kind.Utc\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * The date component for now.\r\n\t * @returns {DateTime}\r\n\t */\r\n\tstatic get today():DateTime\r\n\t{\r\n\t\treturn DateTime.now.date;\r\n\t}\r\n\r\n\t/**\r\n\t * Midnight tomorrow.\r\n\t * @returns {DateTime}\r\n\t */\r\n\tstatic get tomorrow():DateTime\r\n\t{\r\n\t\tvar today:DateTime = DateTime.today;\r\n\t\treturn today.addDays(1);\r\n\t}\r\n\r\n\t/**\r\n\t * Measures the difference between two dates as a TimeSpan.\r\n\t * @param first\r\n\t * @param last\r\n\t */\r\n\tstatic between(first:Date|DateTime, last:Date|DateTime):TimeSpan\r\n\t{\r\n\t\tvar f:Date = first instanceof DateTime ? first._value : first,\r\n\t\t l:Date = last instanceof DateTime ? last._value : last;\r\n\r\n\t\treturn new TimeSpan(f.getTime() - l.getTime());\r\n\t}\r\n\r\n\t/**\r\n\t * Calculates if the given year is a leap year using the formula:\r\n\t * ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)\r\n\t * @param year\r\n\t * @returns {boolean}\r\n\t */\r\n\tstatic isLeapYear(year:number):boolean {\r\n\t\treturn ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the number of days for the specific year and month.\r\n\t * @param year\r\n\t * @param month\r\n\t * @returns {any}\r\n\t */\r\n\tstatic daysInMonth(year:number, month:Gregorian.Month):number {\r\n\t\t// Basically, add 1 month, subtract a day... What's the date?\r\n\t\treturn (new Date(year,month+1,0)).getDate();\r\n\t}\r\n\r\n\r\n}\r\n\r\n// Extend DateTime's usefulness.\r\nmodule DateTime\r\n{\r\n\texport const enum Kind {\r\n\t\tUnspecified,\r\n\t\tLocal,\r\n\t\tUtc,\r\n\t}\r\n}\r\n\r\nObject.freeze(DateTime);\r\n\r\nexport default DateTime;\r\n","/*!\n * @author electricessence / https://github.com/electricessence/\n * Based on .NET DateTime's interface.\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n'use strict';\nconst ClockTime_1 = require('./ClockTime');\nconst TimeSpan_1 = require('./TimeSpan');\nconst TimeStamp_1 = require('./TimeStamp');\nclass DateTime {\n constructor(value = new Date(), kind = 1) {\n var _ = this;\n _._kind = kind;\n if (value instanceof DateTime)\n _._value = value.toJsDate();\n else if (value instanceof Date)\n _._setJsDate(value);\n else\n _._value = value === void (0)\n ? new Date()\n : new Date(value);\n }\n toJsDate() {\n return new Date(this._value.getTime());\n }\n _setJsDate(value) {\n this._time = null;\n this._value = new Date(value.getTime());\n }\n get kind() {\n return this._kind;\n }\n get year() {\n return this._value.getFullYear();\n }\n get month() {\n return this._value.getMonth();\n }\n get day() {\n return this._value.getDate();\n }\n get dayOfWeek() {\n return this._value.getDay();\n }\n addMilliseconds(ms) {\n ms = ms || 0;\n return new DateTime(this._value.getTime() + ms, this._kind);\n }\n addSeconds(seconds) {\n seconds = seconds || 0;\n return this.addMilliseconds(seconds * 1000);\n }\n addMinutes(minutes) {\n minutes = minutes || 0;\n return this.addMilliseconds(minutes * 60000);\n }\n addHours(hours) {\n hours = hours || 0;\n return this.addMilliseconds(hours * 3600000);\n }\n addDays(days) {\n days = days || 0;\n return this.addMilliseconds(days * 86400000);\n }\n addMonths(months) {\n months = months || 0;\n var d = this.toJsDate();\n d.setMonth(d.getMonth() + months);\n return new DateTime(d, this._kind);\n }\n addYears(years) {\n years = years || 0;\n var d = this.toJsDate();\n d.setFullYear(d.getFullYear() + years);\n return new DateTime(d, this._kind);\n }\n add(time) {\n return this.addMilliseconds(time.getTotalMilliseconds());\n }\n subtract(time) {\n return this.addMilliseconds(-time.getTotalMilliseconds());\n }\n timePassedSince(previous) {\n return DateTime.between(previous, this);\n }\n get date() {\n var _ = this;\n return new DateTime(new Date(_.year, _.month, _.day), _._kind);\n }\n get timeOfDay() {\n var _ = this, t = _._time;\n if (!t) {\n var d = this._value;\n _._time = t = new ClockTime_1.default(d.getHours(), d.getMinutes(), d.getSeconds(), d.getMilliseconds());\n }\n return t;\n }\n toTimeStamp() {\n return TimeStamp_1.default.from(this);\n }\n static get now() {\n return new DateTime();\n }\n get toUniversalTime() {\n var _ = this;\n if (_._kind != 1)\n return new DateTime(_, _._kind);\n var d = _._value;\n return new DateTime(new Date(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate(), d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds(), d.getUTCMilliseconds()), 2);\n }\n static get today() {\n return DateTime.now.date;\n }\n static get tomorrow() {\n var today = DateTime.today;\n return today.addDays(1);\n }\n static between(first, last) {\n var f = first instanceof DateTime ? first._value : first, l = last instanceof DateTime ? last._value : last;\n return new TimeSpan_1.default(f.getTime() - l.getTime());\n }\n static isLeapYear(year) {\n return ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);\n }\n static daysInMonth(year, month) {\n return (new Date(year, month + 1, 0)).getDate();\n }\n}\nObject.freeze(DateTime);\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = DateTime;\n"]} \ No newline at end of file +{"version":3,"sources":["System/Time/DateTime.js","System/Time/DateTime.ts"],"names":[],"mappings":"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","file":"System/Time/DateTime.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based on .NET DateTime's interface.\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst TimeSpan_1 = require(\"./TimeSpan\");\nconst ClockTime_1 = require(\"./ClockTime\");\nconst TimeStamp_1 = require(\"./TimeStamp\");\nclass DateTime {\n constructor(value = new Date(), kind = 1) {\n var _ = this;\n _._kind = kind;\n if (value instanceof DateTime)\n _._value = value.toJsDate();\n else if (value instanceof Date)\n _._setJsDate(value);\n else\n _._value = value === void (0)\n ? new Date()\n : new Date(value);\n }\n toJsDate() {\n return new Date(this._value.getTime());\n }\n _setJsDate(value) {\n this._time = null;\n this._value = new Date(value.getTime());\n }\n get kind() {\n return this._kind;\n }\n get year() {\n return this._value.getFullYear();\n }\n get month() {\n return this._value.getMonth();\n }\n get day() {\n return this._value.getDate();\n }\n get dayOfWeek() {\n return this._value.getDay();\n }\n addMilliseconds(ms) {\n ms = ms || 0;\n return new DateTime(this._value.getTime() + ms, this._kind);\n }\n addSeconds(seconds) {\n seconds = seconds || 0;\n return this.addMilliseconds(seconds * 1000);\n }\n addMinutes(minutes) {\n minutes = minutes || 0;\n return this.addMilliseconds(minutes * 60000);\n }\n addHours(hours) {\n hours = hours || 0;\n return this.addMilliseconds(hours * 3600000);\n }\n addDays(days) {\n days = days || 0;\n return this.addMilliseconds(days * 86400000);\n }\n addMonths(months) {\n months = months || 0;\n var d = this.toJsDate();\n d.setMonth(d.getMonth() + months);\n return new DateTime(d, this._kind);\n }\n addYears(years) {\n years = years || 0;\n var d = this.toJsDate();\n d.setFullYear(d.getFullYear() + years);\n return new DateTime(d, this._kind);\n }\n add(time) {\n return this.addMilliseconds(time.getTotalMilliseconds());\n }\n subtract(time) {\n return this.addMilliseconds(-time.getTotalMilliseconds());\n }\n timePassedSince(previous) {\n return DateTime.between(previous, this);\n }\n get date() {\n var _ = this;\n return new DateTime(new Date(_.year, _.month, _.day), _._kind);\n }\n get timeOfDay() {\n var _ = this, t = _._time;\n if (!t) {\n var d = this._value;\n _._time = t = new ClockTime_1.ClockTime(d.getHours(), d.getMinutes(), d.getSeconds(), d.getMilliseconds());\n }\n return t;\n }\n toTimeStamp() {\n return TimeStamp_1.TimeStamp.from(this);\n }\n static get now() {\n return new DateTime();\n }\n get toUniversalTime() {\n var _ = this;\n if (_._kind != 1)\n return new DateTime(_, _._kind);\n var d = _._value;\n return new DateTime(new Date(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate(), d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds(), d.getUTCMilliseconds()), 2);\n }\n static get today() {\n return DateTime.now.date;\n }\n static get tomorrow() {\n var today = DateTime.today;\n return today.addDays(1);\n }\n static between(first, last) {\n var f = first instanceof DateTime ? first._value : first, l = last instanceof DateTime ? last._value : last;\n return new TimeSpan_1.TimeSpan(f.getTime() - l.getTime());\n }\n static isLeapYear(year) {\n return ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);\n }\n static daysInMonth(year, month) {\n return (new Date(year, month + 1, 0)).getDate();\n }\n}\nexports.DateTime = DateTime;\nObject.freeze(DateTime);\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = DateTime;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based on .NET DateTime's interface.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {ICalendarDate, ITimeStamp} from \"./ITimeStamp\";\r\nimport {TimeSpan} from \"./TimeSpan\";\r\nimport {ClockTime} from \"./ClockTime\";\r\nimport {Milliseconds} from \"./HowMany\";\r\nimport {TimeStamp} from \"./TimeStamp\";\r\nimport {IDateTime} from \"./IDateTime\";\r\nimport {Gregorian} from \"./Calendars\";\r\nimport {ITimeQuantity} from \"./ITimeQuantity\";\r\n\r\nexport class DateTime implements ICalendarDate, IDateTime\r\n{\r\n\tprivate _value:Date;\r\n\r\n\ttoJsDate():Date\r\n\t{\r\n\t\treturn new Date(this._value.getTime()); // return a clone.\r\n\t}\r\n\r\n\tprivate _setJsDate(value:Date)\r\n\t{\r\n\t\tthis._time = null;\r\n\t\tthis._value = new Date(value.getTime());\r\n\t}\r\n\r\n\tconstructor();\r\n\tconstructor(dateString:string, kind?:DateTime.Kind);\r\n\tconstructor(milliseconds:number, kind?:DateTime.Kind);\r\n\tconstructor(source:Date, kind?:DateTime.Kind);\r\n\tconstructor(source:DateTime, kind?:DateTime.Kind);\r\n\tconstructor(value:any = new Date(), kind:DateTime.Kind = DateTime.Kind.Local)\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_._kind = kind;\r\n\t\tif(value instanceof DateTime)\r\n\t\t\t_._value = value.toJsDate();\r\n\t\telse if(value instanceof Date)\r\n\t\t\t_._setJsDate(value);\r\n\t\telse\r\n\t\t\t_._value = value=== void(0)\r\n\t\t\t\t? new Date()\r\n\t\t\t\t: new Date(value);\r\n\t}\r\n\r\n\tprivate _kind:DateTime.Kind;\r\n\tget kind():DateTime.Kind\r\n\t{\r\n\t\treturn this._kind;\r\n\t}\r\n\r\n\tget year():number\r\n\t{\r\n\t\treturn this._value.getFullYear();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the Gregorian Month (zero indexed).\r\n\t * @returns {number}\r\n\t */\r\n\tget month():Gregorian.Month\r\n\t{\r\n\t\treturn this._value.getMonth();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the day of the month. An integer between 1 and 31.\r\n\t * @returns {number}\r\n\t */\r\n\tget day():number\r\n\t{\r\n\t\treturn this._value.getDate();\r\n\t}\r\n\r\n\tget dayOfWeek():Gregorian.DayOfWeek\r\n\t{\r\n\t\treturn this._value.getDay();\r\n\t}\r\n\r\n\r\n\taddMilliseconds(ms:number):DateTime\r\n\t{\r\n\t\tms = ms || 0;\r\n\t\treturn new DateTime(this._value.getTime() + ms, this._kind);\r\n\t}\r\n\r\n\taddSeconds(seconds:number):DateTime\r\n\t{\r\n\t\tseconds = seconds || 0;\r\n\t\treturn this.addMilliseconds(seconds*Milliseconds.Per.Second);\r\n\t}\r\n\r\n\taddMinutes(minutes:number):DateTime\r\n\t{\r\n\t\tminutes = minutes || 0;\r\n\t\treturn this.addMilliseconds(minutes*Milliseconds.Per.Minute);\r\n\t}\r\n\r\n\taddHours(hours:number):DateTime\r\n\t{\r\n\t\thours = hours || 0;\r\n\t\treturn this.addMilliseconds(hours*Milliseconds.Per.Hour);\r\n\t}\r\n\r\n\taddDays(days:number):DateTime\r\n\t{\r\n\t\tdays = days || 0;\r\n\t\treturn this.addMilliseconds(days*Milliseconds.Per.Day);\r\n\t}\r\n\r\n\taddMonths(months:number):DateTime\r\n\t{\r\n\t\tmonths = months || 0;\r\n\t\tvar d = this.toJsDate();\r\n\t\td.setMonth(d.getMonth() + months);\r\n\t\treturn new DateTime(d, this._kind);\r\n\t}\r\n\r\n\taddYears(years:number):DateTime\r\n\t{\r\n\t\tyears = years || 0;\r\n\t\tvar d = this.toJsDate();\r\n\t\td.setFullYear(d.getFullYear() + years);\r\n\t\treturn new DateTime(d, this._kind);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Receives an ITimeQuantity value and adds based on the total milliseconds.\r\n\t * @param {ITimeQuantity} time\r\n\t * @returns {DateTime}\r\n\t */\r\n\tadd(time:ITimeQuantity):DateTime\r\n\t{\r\n\t\treturn this.addMilliseconds(time.getTotalMilliseconds());\r\n\t}\r\n\r\n\t/**\r\n\t * Receives an ITimeQuantity value and subtracts based on the total milliseconds.\r\n\t * @param {ITimeQuantity} time\r\n\t * @returns {DateTime}\r\n\t */\r\n\tsubtract(time:ITimeQuantity):DateTime\r\n\t{\r\n\t\treturn this.addMilliseconds(-time.getTotalMilliseconds());\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a TimeSpan representing the amount of time between two dates.\r\n\t * @param previous\r\n\t * @returns {TimeSpan}\r\n\t */\r\n\ttimePassedSince(previous:Date|DateTime):TimeSpan\r\n\t{\r\n\t\treturn DateTime.between(previous, this);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a DateTime object for 00:00 of this date.\r\n\t */\r\n\tget date():DateTime\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn new DateTime(\r\n\t\t\tnew Date(\r\n\t\t\t\t_.year,\r\n\t\t\t\t_.month,\r\n\t\t\t\t_.day\r\n\t\t\t)\r\n\t\t\t, _._kind\r\n\t\t);\r\n\t}\r\n\r\n\tprivate _time:ClockTime;\r\n\r\n\t/**\r\n\t * Returns the time of day represented by a ClockTime object.\r\n\t * @returns {ClockTime}\r\n\t */\r\n\tget timeOfDay():ClockTime\r\n\t{\r\n\t\tvar _ = this, t = _._time;\r\n\t\tif(!t)\r\n\t\t{\r\n\t\t\tvar d = this._value;\r\n\t\t\t_._time = t = new ClockTime(\r\n\t\t\t\td.getHours(),\r\n\t\t\t\td.getMinutes(),\r\n\t\t\t\td.getSeconds(),\r\n\t\t\t\td.getMilliseconds());\r\n\t\t}\r\n\t\treturn t;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a readonly object which contains all the date and time components.\r\n\t */\r\n\ttoTimeStamp():ITimeStamp\r\n\t{\r\n\t\treturn TimeStamp.from(this);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the now local time.\r\n\t * @returns {DateTime}\r\n\t */\r\n\tstatic get now():DateTime\r\n\t{\r\n\t\treturn new DateTime();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a UTC version of this date if its kind is local.\r\n\t * @returns {DateTime}\r\n\t */\r\n\tget toUniversalTime():DateTime\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(_._kind!=DateTime.Kind.Local)\r\n\t\t\treturn new DateTime(_, _._kind);\r\n\r\n\t\tvar d = _._value;\r\n\t\treturn new DateTime(\r\n\t\t\tnew Date(\r\n\t\t\t\td.getUTCFullYear(),\r\n\t\t\t\td.getUTCMonth(),\r\n\t\t\t\td.getUTCDate(),\r\n\t\t\t\td.getUTCHours(),\r\n\t\t\t\td.getUTCMinutes(),\r\n\t\t\t\td.getUTCSeconds(),\r\n\t\t\t\td.getUTCMilliseconds()\r\n\t\t\t),\r\n\t\t\tDateTime.Kind.Utc\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * The date component for now.\r\n\t * @returns {DateTime}\r\n\t */\r\n\tstatic get today():DateTime\r\n\t{\r\n\t\treturn DateTime.now.date;\r\n\t}\r\n\r\n\t/**\r\n\t * Midnight tomorrow.\r\n\t * @returns {DateTime}\r\n\t */\r\n\tstatic get tomorrow():DateTime\r\n\t{\r\n\t\tvar today:DateTime = DateTime.today;\r\n\t\treturn today.addDays(1);\r\n\t}\r\n\r\n\t/**\r\n\t * Measures the difference between two dates as a TimeSpan.\r\n\t * @param first\r\n\t * @param last\r\n\t */\r\n\tstatic between(first:Date|DateTime, last:Date|DateTime):TimeSpan\r\n\t{\r\n\t\tvar f:Date = first instanceof DateTime ? first._value : first,\r\n\t\t l:Date = last instanceof DateTime ? last._value : last;\r\n\r\n\t\treturn new TimeSpan(f.getTime() - l.getTime());\r\n\t}\r\n\r\n\t/**\r\n\t * Calculates if the given year is a leap year using the formula:\r\n\t * ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)\r\n\t * @param year\r\n\t * @returns {boolean}\r\n\t */\r\n\tstatic isLeapYear(year:number):boolean\r\n\t{\r\n\t\treturn ((year%4==0) && (year%100!=0)) || (year%400==0);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the number of days for the specific year and month.\r\n\t * @param year\r\n\t * @param month\r\n\t * @returns {any}\r\n\t */\r\n\tstatic daysInMonth(year:number, month:Gregorian.Month):number\r\n\t{\r\n\t\t// Basically, add 1 month, subtract a day... What's the date?\r\n\t\treturn (new Date(year, month + 1, 0)).getDate();\r\n\t}\r\n\r\n\r\n}\r\n\r\n// Extend DateTime's usefulness.\r\nexport module DateTime\r\n{\r\n\texport const enum Kind {\r\n\t\tUnspecified,\r\n\t\tLocal,\r\n\t\tUtc,\r\n\t}\r\n}\r\n\r\nObject.freeze(DateTime);\r\n\r\nexport default DateTime;\r\n"]} \ No newline at end of file diff --git a/dist/commonjs/System/Time/HowMany.d.ts b/dist/commonjs/System/Time/HowMany.d.ts deleted file mode 100644 index 314a22e2..00000000 --- a/dist/commonjs/System/Time/HowMany.d.ts +++ /dev/null @@ -1,41 +0,0 @@ -/*! - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -declare module HowMany { - module Hours { - const enum Per { - Day = 24, - } - } - module Minutes { - const enum Per { - Hour = 60, - Day = 1440, - } - } - module Seconds { - const enum Per { - Minute = 60, - Hour = 3600, - Day = 86400, - } - } - module Milliseconds { - const enum Per { - Second = 1000, - Minute = 60000, - Hour = 3600000, - Day = 86400000, - } - } - module Ticks { - const enum Per { - Millisecond = 10000, - Second = 10000000, - Minute = 600000000, - Hour = 36000000000, - Day = 864000000000, - } - } -} diff --git a/dist/commonjs/System/Time/HowMany.js b/dist/commonjs/System/Time/HowMany.js deleted file mode 100644 index 029719b4..00000000 --- a/dist/commonjs/System/Time/HowMany.js +++ /dev/null @@ -1,6 +0,0 @@ -/*! - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -"use strict"; -//# sourceMappingURL=HowMany.js.map diff --git a/dist/commonjs/System/Time/HowMany.js.map b/dist/commonjs/System/Time/HowMany.js.map deleted file mode 100644 index c1b93c97..00000000 --- a/dist/commonjs/System/Time/HowMany.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":[],"names":[],"mappings":"","file":"System/Time/HowMany.js","sourcesContent":[]} \ No newline at end of file diff --git a/dist/commonjs/System/Time/TimeQuantity.d.ts b/dist/commonjs/System/Time/TimeQuantity.d.ts index 1e1e52d6..c6d68ba4 100644 --- a/dist/commonjs/System/Time/TimeQuantity.d.ts +++ b/dist/commonjs/System/Time/TimeQuantity.d.ts @@ -1,13 +1,13 @@ -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import TimeUnit from './TimeUnit'; -export default class TimeQuantity implements IEquatable, IComparable, ITimeQuantity { +import { TimeUnit } from "./TimeUnit"; +import { IEquatable } from "../IEquatable"; +import { IComparable } from "../IComparable"; +import { ITimeQuantity } from "./ITimeQuantity"; +import { ITimeMeasurement } from "./ITimeMeasurement"; +export declare class TimeQuantity implements IEquatable, IComparable, ITimeQuantity { protected _quantity: number; constructor(_quantity?: number); getTotalMilliseconds(): number; @@ -18,3 +18,4 @@ export default class TimeQuantity implements IEquatable, ICompara total: ITimeMeasurement; getTotal(units: TimeUnit): number; } +export default TimeQuantity; diff --git a/dist/commonjs/System/Time/TimeQuantity.js b/dist/commonjs/System/Time/TimeQuantity.js index 21157d9e..f2f3ab20 100644 --- a/dist/commonjs/System/Time/TimeQuantity.js +++ b/dist/commonjs/System/Time/TimeQuantity.js @@ -2,14 +2,14 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; +"use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -var Compare_1 = require('../Compare'); -var TimeUnit_1 = require('./TimeUnit'); +var Compare_1 = require("../Compare"); +var TimeUnit_1 = require("./TimeUnit"); var TimeQuantity = function () { function TimeQuantity() { @@ -21,32 +21,32 @@ var TimeQuantity = function () { } _createClass(TimeQuantity, [{ - key: 'getTotalMilliseconds', + key: "getTotalMilliseconds", value: function getTotalMilliseconds() { return this._quantity; } }, { - key: 'equals', + key: "equals", value: function equals(other) { return Compare_1.areEqual(this.getTotalMilliseconds(), other && other.total && other.total.milliseconds); } }, { - key: 'compareTo', + key: "compareTo", value: function compareTo(other) { return Compare_1.compare(this.getTotalMilliseconds(), other && other.total && other.total.milliseconds); } }, { - key: 'getTotal', + key: "getTotal", value: function getTotal(units) { - return TimeUnit_1.default.fromMilliseconds(this.getTotalMilliseconds(), units); + return TimeUnit_1.TimeUnit.fromMilliseconds(this.getTotalMilliseconds(), units); } }, { - key: 'direction', + key: "direction", get: function get() { return Compare_1.compare(this.getTotalMilliseconds(), 0); } }, { - key: 'total', + key: "total", get: function get() { var t = this._total; if (!t) { @@ -67,6 +67,7 @@ var TimeQuantity = function () { return TimeQuantity; }(); +exports.TimeQuantity = TimeQuantity; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = TimeQuantity; //# sourceMappingURL=TimeQuantity.js.map diff --git a/dist/commonjs/System/Time/TimeQuantity.js.map b/dist/commonjs/System/Time/TimeQuantity.js.map index 94bdcf79..b8266d61 100644 --- a/dist/commonjs/System/Time/TimeQuantity.js.map +++ b/dist/commonjs/System/Time/TimeQuantity.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Time/TimeQuantity.ts","System/Time/TimeQuantity.js"],"names":[],"mappings":";;;;AASA;;;;;;AAEA,IAAA,YAAA,QAA+B,YAA/B,CAAA;AACA,IAAA,aAAA,QAAqB,YAArB,CAAA;;IAKA;AAIC,aAJD,YAIC,GAA0C;YAApB,kEAAmB,iBAAC;;8BAJ3C,cAI2C;;AAApB,aAAA,SAAA,GAAA,SAAA,CAAoB;KAA1C;;iBAJD;;+CASqB;AAEnB,mBAAO,KAAK,SAAL,CAFY;;;;+BAmBb,OAAmB;AAEzB,mBAAO,UAAA,QAAA,CAAS,KAAK,oBAAL,EAAT,EAAsC,SAAS,MAAM,KAAN,IAAe,MAAM,KAAN,CAAY,YAAZ,CAArE,CAFyB;;;;kCAUhB,OAAmB;AAE5B,mBAAO,UAAA,OAAA,CAAQ,KAAK,oBAAL,EAAR,EAAqC,SAAS,MAAM,KAAN,IAAe,MAAM,KAAN,CAAY,YAAZ,CAApE,CAF4B;;;;iCAqCpB,OAAc;AAEtB,mBAAO,WAAA,OAAA,CAAS,gBAAT,CAA0B,KAAK,oBAAL,EAA1B,EAAuD,KAAvD,CAAP,CAFsB;;;;4BAzDV;AAEZ,mBAAO,UAAA,OAAA,CAAQ,KAAK,oBAAL,EAAR,EAAqC,CAArC,CAAP,CAFY;;;;4BAiCJ;AAER,gBAAI,IAAI,KAAK,MAAL,CAFA;AAGR,gBAAG,CAAC,CAAD,EACH;AACC,oBAAI,KAAK,KAAK,oBAAL,EAAL,CADL;AAGC,qBAAK,MAAL,GAAc,IAAsB,OAAO,MAAP,CAAc;AACjD,2BAAO,KAAG,KAAH;AACP,kCAAc,EAAd;AACA,6BAAS,KAAG,IAAH;AACT,6BAAS,KAAG,KAAH;AACT,2BAAO,KAAG,OAAH;AACP,0BAAM,KAAG,QAAH;iBAN6B,CAAtB,CAHf;aADA;AAaA,mBAAO,CAAP,CAhBQ;;;;WAnDV;;;AAAA,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;AC0BA,QAAQ,OAAR,GAAkB,YAAlB","file":"System/Time/TimeQuantity.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport {areEqual,compare} from '../Compare';\r\nimport TimeUnit from './TimeUnit';\r\n\r\n/**\r\n * This class provides a simple means for storing and calculating time quantities.\r\n */\r\nexport default\r\nclass TimeQuantity implements IEquatable, IComparable, ITimeQuantity\r\n{\r\n\r\n\tconstructor(protected _quantity:number = 0)\r\n\t{\r\n\t}\r\n\r\n\t// Provides an overridable mechanism for extending this class.\r\n\tgetTotalMilliseconds():number\r\n\t{\r\n\t\treturn this._quantity;\r\n\t}\r\n\r\n\t/**\r\n\t * +1, 0, or -1 depending on the time direction.\r\n\t * @returns {number}\r\n\t */\r\n\tget direction():number\r\n\t{\r\n\t\treturn compare(this.getTotalMilliseconds(), 0);\r\n\t}\r\n\r\n\t/**\r\n\t * Compares this instance against any other time quantity instance and return true if the amount of time is the same.\r\n\t * @param other\r\n\t * @returns {boolean}\r\n\t */\r\n\tequals(other:ITimeQuantity):boolean\r\n\t{\r\n\t\treturn areEqual(this.getTotalMilliseconds(), other && other.total && other.total.milliseconds);\r\n\t}\r\n\r\n\t/**\r\n\t * Compares this instance against any other time quantity instance.\r\n\t * @param other\r\n\t * @returns {CompareResult}\r\n\t */\r\n\tcompareTo(other:ITimeQuantity):number\r\n\t{\r\n\t\treturn compare(this.getTotalMilliseconds(), other && other.total && other.total.milliseconds);\r\n\t}\r\n\r\n\r\n\t// Clear this value if sub-class values change.\r\n\tprotected _total:ITimeMeasurement;\r\n\r\n\t/**\r\n\t * Returns an object with all units exposed as totals.\r\n\t * @returns {ITimeMeasurement}\r\n\t */\r\n\tget total():ITimeMeasurement\r\n\t{\r\n\t\tvar t = this._total;\r\n\t\tif(!t)\r\n\t\t{\r\n\t\t\tvar ms = this.getTotalMilliseconds();\r\n\r\n\t\t\tthis._total = t = Object.freeze({\r\n\t\t\t\tticks: ms*HowMany.Ticks.Per.Millisecond,\r\n\t\t\t\tmilliseconds: ms,\r\n\t\t\t\tseconds: ms/HowMany.Milliseconds.Per.Second,\r\n\t\t\t\tminutes: ms/HowMany.Milliseconds.Per.Minute,\r\n\t\t\t\thours: ms/HowMany.Milliseconds.Per.Hour,\r\n\t\t\t\tdays: ms/HowMany.Milliseconds.Per.Day,\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn t;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the total amount of time measured in the requested TimeUnit.\r\n\t * @param units\r\n\t * @returns {number}\r\n\t */\r\n\tgetTotal(units:TimeUnit):number\r\n\t{\r\n\t\treturn TimeUnit.fromMilliseconds(this.getTotalMilliseconds(), units);\r\n\t}\r\n}\r\n","/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n'use strict';\nconst Compare_1 = require('../Compare');\nconst TimeUnit_1 = require('./TimeUnit');\nclass TimeQuantity {\n constructor(_quantity = 0) {\n this._quantity = _quantity;\n }\n getTotalMilliseconds() {\n return this._quantity;\n }\n get direction() {\n return Compare_1.compare(this.getTotalMilliseconds(), 0);\n }\n equals(other) {\n return Compare_1.areEqual(this.getTotalMilliseconds(), other && other.total && other.total.milliseconds);\n }\n compareTo(other) {\n return Compare_1.compare(this.getTotalMilliseconds(), other && other.total && other.total.milliseconds);\n }\n get total() {\n var t = this._total;\n if (!t) {\n var ms = this.getTotalMilliseconds();\n this._total = t = Object.freeze({\n ticks: ms * 10000,\n milliseconds: ms,\n seconds: ms / 1000,\n minutes: ms / 60000,\n hours: ms / 3600000,\n days: ms / 86400000,\n });\n }\n return t;\n }\n getTotal(units) {\n return TimeUnit_1.default.fromMilliseconds(this.getTotalMilliseconds(), units);\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = TimeQuantity;\n"]} \ No newline at end of file +{"version":3,"sources":["System/Time/TimeQuantity.js","System/Time/TimeQuantity.ts"],"names":[],"mappings":";;;;AAIA;;;;;;ACEA,IAAA,YAAA,QAAgC,YAAhC,CAAA;AACA,IAAA,aAAA,QAAuB,YAAvB,CAAA;;IAUA;AAGC,aAHD,YAGC,GAA0C;YAApB,kEAAmB,iBAAC;;8BAH3C,cAG2C;;AAApB,aAAA,SAAA,GAAA,SAAA,CAAoB;KAA1C;;iBAHD;;+CAQqB;AAEnB,mBAAO,KAAK,SAAL,CAFY;;;;+BAmBb,OAAmB;AAEzB,mBAAO,UAAA,QAAA,CAAS,KAAK,oBAAL,EAAT,EAAsC,SAAS,MAAM,KAAN,IAAe,MAAM,KAAN,CAAY,YAAZ,CAArE,CAFyB;;;;kCAUhB,OAAmB;AAE5B,mBAAO,UAAA,OAAA,CAAQ,KAAK,oBAAL,EAAR,EAAqC,SAAS,MAAM,KAAN,IAAe,MAAM,KAAN,CAAY,YAAZ,CAApE,CAF4B;;;;iCAqCpB,OAAc;AAEtB,mBAAO,WAAA,QAAA,CAAS,gBAAT,CAA0B,KAAK,oBAAL,EAA1B,EAAuD,KAAvD,CAAP,CAFsB;;;;4BAzDV;AAEZ,mBAAO,UAAA,OAAA,CAAQ,KAAK,oBAAL,EAAR,EAAqC,CAArC,CAAP,CAFY;;;;4BAiCJ;AAER,gBAAI,IAAI,KAAK,MAAL,CAFA;AAGR,gBAAG,CAAC,CAAD,EACH;AACC,oBAAI,KAAK,KAAK,oBAAL,EAAL,CADL;AAGC,qBAAK,MAAL,GAAc,IAAsB,OAAO,MAAP,CAAc;AACjD,2BAAO,KAAG,KAAH;AACP,kCAAc,EAAd;AACA,6BAAS,KAAG,IAAH;AACT,6BAAS,KAAG,KAAH;AACT,2BAAO,KAAG,OAAH;AACP,0BAAM,KAAG,QAAH;iBAN6B,CAAtB,CAHf;aADA;AAaA,mBAAO,CAAP,CAhBQ;;;;WAlDV;;;AAAa,QAAA,YAAA,GAAY,YAAZ;AAgFb,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADrDA,QAAQ,OAAR,GCqDe,YDrDf","file":"System/Time/TimeQuantity.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst Compare_1 = require(\"../Compare\");\nconst TimeUnit_1 = require(\"./TimeUnit\");\nclass TimeQuantity {\n constructor(_quantity = 0) {\n this._quantity = _quantity;\n }\n getTotalMilliseconds() {\n return this._quantity;\n }\n get direction() {\n return Compare_1.compare(this.getTotalMilliseconds(), 0);\n }\n equals(other) {\n return Compare_1.areEqual(this.getTotalMilliseconds(), other && other.total && other.total.milliseconds);\n }\n compareTo(other) {\n return Compare_1.compare(this.getTotalMilliseconds(), other && other.total && other.total.milliseconds);\n }\n get total() {\n var t = this._total;\n if (!t) {\n var ms = this.getTotalMilliseconds();\n this._total = t = Object.freeze({\n ticks: ms * 10000,\n milliseconds: ms,\n seconds: ms / 1000,\n minutes: ms / 60000,\n hours: ms / 3600000,\n days: ms / 86400000,\n });\n }\n return t;\n }\n getTotal(units) {\n return TimeUnit_1.TimeUnit.fromMilliseconds(this.getTotalMilliseconds(), units);\n }\n}\nexports.TimeQuantity = TimeQuantity;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = TimeQuantity;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {areEqual, compare} from \"../Compare\";\r\nimport {TimeUnit} from \"./TimeUnit\";\r\nimport {Milliseconds, Ticks} from \"./HowMany\";\r\nimport {IEquatable} from \"../IEquatable\";\r\nimport {IComparable} from \"../IComparable\";\r\nimport {ITimeQuantity} from \"./ITimeQuantity\";\r\nimport {ITimeMeasurement} from \"./ITimeMeasurement\";\r\n\r\n/**\r\n * This class provides a simple means for storing and calculating time quantities.\r\n */\r\nexport class TimeQuantity implements IEquatable, IComparable, ITimeQuantity\r\n{\r\n\r\n\tconstructor(protected _quantity:number = 0)\r\n\t{\r\n\t}\r\n\r\n\t// Provides an overridable mechanism for extending this class.\r\n\tgetTotalMilliseconds():number\r\n\t{\r\n\t\treturn this._quantity;\r\n\t}\r\n\r\n\t/**\r\n\t * +1, 0, or -1 depending on the time direction.\r\n\t * @returns {number}\r\n\t */\r\n\tget direction():number\r\n\t{\r\n\t\treturn compare(this.getTotalMilliseconds(), 0);\r\n\t}\r\n\r\n\t/**\r\n\t * Compares this instance against any other time quantity instance and return true if the amount of time is the same.\r\n\t * @param other\r\n\t * @returns {boolean}\r\n\t */\r\n\tequals(other:ITimeQuantity):boolean\r\n\t{\r\n\t\treturn areEqual(this.getTotalMilliseconds(), other && other.total && other.total.milliseconds);\r\n\t}\r\n\r\n\t/**\r\n\t * Compares this instance against any other time quantity instance.\r\n\t * @param other\r\n\t * @returns {CompareResult}\r\n\t */\r\n\tcompareTo(other:ITimeQuantity):number\r\n\t{\r\n\t\treturn compare(this.getTotalMilliseconds(), other && other.total && other.total.milliseconds);\r\n\t}\r\n\r\n\r\n\t// Clear this value if sub-class values change.\r\n\tprotected _total:ITimeMeasurement;\r\n\r\n\t/**\r\n\t * Returns an object with all units exposed as totals.\r\n\t * @returns {ITimeMeasurement}\r\n\t */\r\n\tget total():ITimeMeasurement\r\n\t{\r\n\t\tvar t = this._total;\r\n\t\tif(!t)\r\n\t\t{\r\n\t\t\tvar ms = this.getTotalMilliseconds();\r\n\r\n\t\t\tthis._total = t = Object.freeze({\r\n\t\t\t\tticks: ms*Ticks.Per.Millisecond,\r\n\t\t\t\tmilliseconds: ms,\r\n\t\t\t\tseconds: ms/Milliseconds.Per.Second,\r\n\t\t\t\tminutes: ms/Milliseconds.Per.Minute,\r\n\t\t\t\thours: ms/Milliseconds.Per.Hour,\r\n\t\t\t\tdays: ms/Milliseconds.Per.Day,\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn t;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the total amount of time measured in the requested TimeUnit.\r\n\t * @param units\r\n\t * @returns {number}\r\n\t */\r\n\tgetTotal(units:TimeUnit):number\r\n\t{\r\n\t\treturn TimeUnit.fromMilliseconds(this.getTotalMilliseconds(), units);\r\n\t}\r\n}\r\n\r\nexport default TimeQuantity;"]} \ No newline at end of file diff --git a/dist/commonjs/System/Time/TimeSpan.d.ts b/dist/commonjs/System/Time/TimeSpan.d.ts index fe102e31..03f0dba3 100644 --- a/dist/commonjs/System/Time/TimeSpan.d.ts +++ b/dist/commonjs/System/Time/TimeSpan.d.ts @@ -1,16 +1,14 @@ -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Originally based upon .NET source but with many additions and improvements. * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import TimeUnit from './TimeUnit'; -import ClockTime from './ClockTime'; -import TimeQuantity from './TimeQuantity'; -export default class TimeSpan extends TimeQuantity implements ITimeMeasurement { +import { TimeUnit } from "./TimeUnit"; +import { ClockTime } from "./ClockTime"; +import { TimeQuantity } from "./TimeQuantity"; +import { ITimeMeasurement } from "./ITimeMeasurement"; +import { ITimeQuantity } from "./ITimeQuantity"; +export declare class TimeSpan extends TimeQuantity implements ITimeMeasurement { ticks: number; milliseconds: number; seconds: number; @@ -32,3 +30,4 @@ export default class TimeSpan extends TimeQuantity implements ITimeMeasurement { static fromTicks(value: number): TimeSpan; static zero: TimeSpan; } +export default TimeSpan; diff --git a/dist/commonjs/System/Time/TimeSpan.js b/dist/commonjs/System/Time/TimeSpan.js index 4df7ed40..5535a03e 100644 --- a/dist/commonjs/System/Time/TimeSpan.js +++ b/dist/commonjs/System/Time/TimeSpan.js @@ -3,7 +3,7 @@ * Originally based upon .NET source but with many additions and improvements. * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; +"use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); @@ -13,20 +13,20 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } -var Types_1 = require('../Types'); -var TimeUnit_1 = require('./TimeUnit'); -var ClockTime_1 = require('./ClockTime'); -var TimeQuantity_1 = require('./TimeQuantity'); +var Types_1 = require("../Types"); +var TimeUnit_1 = require("./TimeUnit"); +var ClockTime_1 = require("./ClockTime"); +var TimeQuantity_1 = require("./TimeQuantity"); -var TimeSpan = function (_TimeQuantity_1$defau) { - _inherits(TimeSpan, _TimeQuantity_1$defau); +var TimeSpan = function (_TimeQuantity_1$TimeQ) { + _inherits(TimeSpan, _TimeQuantity_1$TimeQ); function TimeSpan(value) { - var units = arguments.length <= 1 || arguments[1] === undefined ? TimeUnit_1.default.Milliseconds : arguments[1]; + var units = arguments.length <= 1 || arguments[1] === undefined ? TimeUnit_1.TimeUnit.Milliseconds : arguments[1]; _classCallCheck(this, TimeSpan); - var ms = TimeUnit_1.default.toMilliseconds(value, units); + var ms = TimeUnit_1.TimeUnit.toMilliseconds(value, units); var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(TimeSpan).call(this, ms)); @@ -41,77 +41,78 @@ var TimeSpan = function (_TimeQuantity_1$defau) { } _createClass(TimeSpan, [{ - key: 'add', + key: "add", value: function add(other) { - if (Types_1.default.isNumber(other)) throw new Error("Use .addUnit(value:number,units:TimeUnit) to add a numerical value amount. Default units are milliseconds.\n" + ".add only supports quantifiable time values (ITimeTotal)."); + if (Types_1.Type.isNumber(other)) throw new Error("Use .addUnit(value:number,units:TimeUnit) to add a numerical value amount. Default units are milliseconds.\n" + ".add only supports quantifiable time values (ITimeTotal)."); return new TimeSpan(this.getTotalMilliseconds() + other.total.milliseconds); } }, { - key: 'addUnit', + key: "addUnit", value: function addUnit(value) { - var units = arguments.length <= 1 || arguments[1] === undefined ? TimeUnit_1.default.Milliseconds : arguments[1]; + var units = arguments.length <= 1 || arguments[1] === undefined ? TimeUnit_1.TimeUnit.Milliseconds : arguments[1]; - return new TimeSpan(this.getTotalMilliseconds() + TimeUnit_1.default.toMilliseconds(value, units)); + return new TimeSpan(this.getTotalMilliseconds() + TimeUnit_1.TimeUnit.toMilliseconds(value, units)); } }, { - key: 'total', + key: "total", get: function get() { return this; } }, { - key: 'time', + key: "time", get: function get() { var _ = this, t = _._time; - if (!t) _._time = t = new ClockTime_1.default(_.getTotalMilliseconds()); + if (!t) _._time = t = new ClockTime_1.ClockTime(_.getTotalMilliseconds()); return t; } }], [{ - key: 'from', + key: "from", value: function from(value, units) { return new TimeSpan(value, units); } }, { - key: 'fromDays', + key: "fromDays", value: function fromDays(value) { - return new TimeSpan(value, TimeUnit_1.default.Days); + return new TimeSpan(value, TimeUnit_1.TimeUnit.Days); } }, { - key: 'fromHours', + key: "fromHours", value: function fromHours(value) { - return new TimeSpan(value, TimeUnit_1.default.Hours); + return new TimeSpan(value, TimeUnit_1.TimeUnit.Hours); } }, { - key: 'fromMinutes', + key: "fromMinutes", value: function fromMinutes(value) { - return new TimeSpan(value, TimeUnit_1.default.Minutes); + return new TimeSpan(value, TimeUnit_1.TimeUnit.Minutes); } }, { - key: 'fromSeconds', + key: "fromSeconds", value: function fromSeconds(value) { - return new TimeSpan(value, TimeUnit_1.default.Seconds); + return new TimeSpan(value, TimeUnit_1.TimeUnit.Seconds); } }, { - key: 'fromMilliseconds', + key: "fromMilliseconds", value: function fromMilliseconds(value) { - return new TimeSpan(value, TimeUnit_1.default.Milliseconds); + return new TimeSpan(value, TimeUnit_1.TimeUnit.Milliseconds); } }, { - key: 'fromTicks', + key: "fromTicks", value: function fromTicks(value) { - return new TimeSpan(value, TimeUnit_1.default.Ticks); + return new TimeSpan(value, TimeUnit_1.TimeUnit.Ticks); } }, { - key: 'zero', + key: "zero", get: function get() { return timeSpanZero || (timeSpanZero = new TimeSpan(0)); } }]); return TimeSpan; -}(TimeQuantity_1.default); +}(TimeQuantity_1.TimeQuantity); +exports.TimeSpan = TimeSpan; +var timeSpanZero; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = TimeSpan; -var timeSpanZero; //# sourceMappingURL=TimeSpan.js.map diff --git a/dist/commonjs/System/Time/TimeSpan.js.map b/dist/commonjs/System/Time/TimeSpan.js.map index 4c3abee2..d95129d4 100644 --- a/dist/commonjs/System/Time/TimeSpan.js.map +++ b/dist/commonjs/System/Time/TimeSpan.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Time/TimeSpan.ts","System/Time/TimeSpan.js"],"names":[],"mappings":";;;;;AAUA;;;;;;;;;;AAGA,IAAA,UAAA,QAAiB,UAAjB,CAAA;AACA,IAAA,aAAA,QAAqB,YAArB,CAAA;AACA,IAAA,cAAA,QAAsB,aAAtB,CAAA;AACA,IAAA,iBAAA,QAAyB,gBAAzB,CAAA;;IAKA;;;AAYC,aAZD,QAYC,CAAY,KAAZ,EAAgE;YAAtC,8DAAiB,WAAA,OAAA,CAAS,YAAT,gBAAqB;;8BAZjE,UAYiE;;AAE/D,YAAI,KAAK,WAAA,OAAA,CAAS,cAAT,CAAwB,KAAxB,EAA+B,KAA/B,CAAL,CAF2D;;2EAZjE,qBAeQ,KAHyD;;AAK/D,YAAI,SAAJ,CAL+D;AAM/D,UAAE,KAAF,GAAU,KAAG,KAAH,CANqD;AAO/D,UAAE,YAAF,GAAiB,EAAjB,CAP+D;AAQ/D,UAAE,OAAF,GAAY,KAAG,IAAH,CARmD;AAS/D,UAAE,OAAF,GAAY,KAAG,KAAH,CATmD;AAU/D,UAAE,KAAF,GAAU,KAAG,OAAH,CAVqD;AAW/D,UAAE,IAAF,GAAS,KAAG,QAAH,CAXsD;;KAAhE;;iBAZD;;4BA4CK,OAAmB;AAEtB,gBAAG,QAAA,OAAA,CAAK,QAAL,CAAc,KAAd,CAAH,EACC,MAAM,IAAI,KAAJ,CACL,kHACA,2DADA,CADD,CADD;AAMA,mBAAO,IAAI,QAAJ,CAAa,KAAK,oBAAL,KAA8B,MAAM,KAAN,CAAY,YAAZ,CAAlD,CARsB;;;;gCAWf,OAAoD;gBAAtC,8DAAiB,WAAA,OAAA,CAAS,YAAT,gBAAqB;;AAE3D,mBAAO,IAAI,QAAJ,CAAa,KAAK,oBAAL,KAA8B,WAAA,OAAA,CAAS,cAAT,CAAwB,KAAxB,EAA+B,KAA/B,CAA9B,CAApB,CAF2D;;;;4BAzBnD;AAER,mBAAO,IAAP,CAFQ;;;;4BAOD;AAEP,gBAAI,IAAI,IAAJ;gBAAU,IAAI,EAAE,KAAF,CAFX;AAGP,gBAAG,CAAC,CAAD,EAAI,EAAE,KAAF,GAAU,IAAI,IAAI,YAAA,OAAA,CAAU,EAAE,oBAAF,EAAd,CAAJ,CAAjB;AACA,mBAAO,CAAP,CAJO;;;;6BAwBI,OAAc,OAAc;AAEvC,mBAAO,IAAI,QAAJ,CAAa,KAAb,EAAoB,KAApB,CAAP,CAFuC;;;;iCAKxB,OAAY;AAE3B,mBAAO,IAAI,QAAJ,CAAa,KAAb,EAAoB,WAAA,OAAA,CAAS,IAAT,CAA3B,CAF2B;;;;kCAKX,OAAY;AAE5B,mBAAO,IAAI,QAAJ,CAAa,KAAb,EAAoB,WAAA,OAAA,CAAS,KAAT,CAA3B,CAF4B;;;;oCAKV,OAAY;AAE9B,mBAAO,IAAI,QAAJ,CAAa,KAAb,EAAoB,WAAA,OAAA,CAAS,OAAT,CAA3B,CAF8B;;;;oCAKZ,OAAY;AAE9B,mBAAO,IAAI,QAAJ,CAAa,KAAb,EAAoB,WAAA,OAAA,CAAS,OAAT,CAA3B,CAF8B;;;;yCAKP,OAAY;AAEnC,mBAAO,IAAI,QAAJ,CAAa,KAAb,EAAoB,WAAA,OAAA,CAAS,YAAT,CAA3B,CAFmC;;;;kCAKnB,OAAY;AAE5B,mBAAO,IAAI,QAAJ,CAAa,KAAb,EAAoB,WAAA,OAAA,CAAS,KAAT,CAA3B,CAF4B;;;;4BAMd;AAEd,mBAAO,iBAAiB,eAAe,IAAI,QAAJ,CAAa,CAAb,CAAf,CAAjB,CAFO;;;;WAjGhB;EACuB,eAAA,OAAA;;AADvB,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;AC6CA,QAAQ,OAAR,GAAkB,QAAlB;AD2DA,IAAI,YAAJ","file":"System/Time/TimeSpan.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Originally based upon .NET source but with many additions and improvements.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport {areEqual,compare} from '../Compare';\r\nimport Type from '../Types';\r\nimport TimeUnit from './TimeUnit';\r\nimport ClockTime from './ClockTime';\r\nimport TimeQuantity from './TimeQuantity';\r\n\r\n/**\r\n * TimeSpan expands on TimeQuantity to provide an class that is similar to .NET's TimeSpan including many useful static methods.\r\n */\r\nexport default\r\nclass TimeSpan extends TimeQuantity implements ITimeMeasurement\r\n{\r\n\r\n\tticks: number;\r\n\tmilliseconds: number;\r\n\tseconds: number;\r\n\tminutes: number;\r\n\thours: number;\r\n\tdays: number;\r\n\r\n\t// In .NET the default type is Ticks, but for JavaScript, we will use Milliseconds.\r\n\tconstructor(value:number, units:TimeUnit = TimeUnit.Milliseconds)\r\n\t{\r\n\t\tvar ms = TimeUnit.toMilliseconds(value, units);\r\n\t\tsuper(ms);\r\n\r\n\t\tvar _ = this;\r\n\t\t_.ticks = ms*HowMany.Ticks.Per.Millisecond;\r\n\t\t_.milliseconds = ms;\r\n\t\t_.seconds = ms/HowMany.Milliseconds.Per.Second;\r\n\t\t_.minutes = ms/HowMany.Milliseconds.Per.Minute;\r\n\t\t_.hours = ms/HowMany.Milliseconds.Per.Hour;\r\n\t\t_.days = ms/HowMany.Milliseconds.Per.Day;\r\n\t}\r\n\r\n\t/**\r\n\t * Provides an standard interface for acquiring the total time.\r\n\t * @returns {TimeSpan}\r\n\t */\r\n\tget total():TimeSpan\r\n\t{\r\n\t\treturn this;\r\n\t}\r\n\r\n\tprivate _time:ClockTime;\r\n\t// Instead of the confusing getTotal versus unit name, expose a 'ClockTime' value which reports the individual components.\r\n\tget time():ClockTime\r\n\t{\r\n\t\tvar _ = this, t = _._time;\r\n\t\tif(!t) _._time = t = new ClockTime(_.getTotalMilliseconds());\r\n\t\treturn t;\r\n\t}\r\n\r\n\tadd(other:ITimeQuantity):TimeSpan\r\n\t{\r\n\t\tif(Type.isNumber(other))\r\n\t\t\tthrow new Error(\r\n\t\t\t\t\"Use .addUnit(value:number,units:TimeUnit) to add a numerical value amount. Default units are milliseconds.\\n\" +\r\n\t\t\t\t\".add only supports quantifiable time values (ITimeTotal).\"\r\n\t\t\t);\r\n\r\n\t\treturn new TimeSpan(this.getTotalMilliseconds() + other.total.milliseconds);\r\n\t}\r\n\r\n\taddUnit(value:number, units:TimeUnit = TimeUnit.Milliseconds):TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(this.getTotalMilliseconds() + TimeUnit.toMilliseconds(value, units));\r\n\t}\r\n\r\n\r\n\tstatic from(value:number, units:TimeUnit)\r\n\t{\r\n\t\treturn new TimeSpan(value, units);\r\n\t}\r\n\r\n\tstatic fromDays(value:number):TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(value, TimeUnit.Days);\r\n\t}\r\n\r\n\tstatic fromHours(value:number):TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(value, TimeUnit.Hours);\r\n\t}\r\n\r\n\tstatic fromMinutes(value:number):TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(value, TimeUnit.Minutes);\r\n\t}\r\n\r\n\tstatic fromSeconds(value:number):TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(value, TimeUnit.Seconds);\r\n\t}\r\n\r\n\tstatic fromMilliseconds(value:number):TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(value, TimeUnit.Milliseconds);\r\n\t}\r\n\r\n\tstatic fromTicks(value:number):TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(value, TimeUnit.Ticks);\r\n\t}\r\n\r\n\r\n\tstatic get zero():TimeSpan\r\n\t{\r\n\t\treturn timeSpanZero || (timeSpanZero = new TimeSpan(0));\r\n\t}\r\n}\r\n\r\n\r\nvar timeSpanZero:TimeSpan;\r\n","/*!\n * @author electricessence / https://github.com/electricessence/\n * Originally based upon .NET source but with many additions and improvements.\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n'use strict';\nconst Types_1 = require('../Types');\nconst TimeUnit_1 = require('./TimeUnit');\nconst ClockTime_1 = require('./ClockTime');\nconst TimeQuantity_1 = require('./TimeQuantity');\nclass TimeSpan extends TimeQuantity_1.default {\n constructor(value, units = TimeUnit_1.default.Milliseconds) {\n var ms = TimeUnit_1.default.toMilliseconds(value, units);\n super(ms);\n var _ = this;\n _.ticks = ms * 10000;\n _.milliseconds = ms;\n _.seconds = ms / 1000;\n _.minutes = ms / 60000;\n _.hours = ms / 3600000;\n _.days = ms / 86400000;\n }\n get total() {\n return this;\n }\n get time() {\n var _ = this, t = _._time;\n if (!t)\n _._time = t = new ClockTime_1.default(_.getTotalMilliseconds());\n return t;\n }\n add(other) {\n if (Types_1.default.isNumber(other))\n throw new Error(\"Use .addUnit(value:number,units:TimeUnit) to add a numerical value amount. Default units are milliseconds.\\n\" +\n \".add only supports quantifiable time values (ITimeTotal).\");\n return new TimeSpan(this.getTotalMilliseconds() + other.total.milliseconds);\n }\n addUnit(value, units = TimeUnit_1.default.Milliseconds) {\n return new TimeSpan(this.getTotalMilliseconds() + TimeUnit_1.default.toMilliseconds(value, units));\n }\n static from(value, units) {\n return new TimeSpan(value, units);\n }\n static fromDays(value) {\n return new TimeSpan(value, TimeUnit_1.default.Days);\n }\n static fromHours(value) {\n return new TimeSpan(value, TimeUnit_1.default.Hours);\n }\n static fromMinutes(value) {\n return new TimeSpan(value, TimeUnit_1.default.Minutes);\n }\n static fromSeconds(value) {\n return new TimeSpan(value, TimeUnit_1.default.Seconds);\n }\n static fromMilliseconds(value) {\n return new TimeSpan(value, TimeUnit_1.default.Milliseconds);\n }\n static fromTicks(value) {\n return new TimeSpan(value, TimeUnit_1.default.Ticks);\n }\n static get zero() {\n return timeSpanZero || (timeSpanZero = new TimeSpan(0));\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = TimeSpan;\nvar timeSpanZero;\n"]} \ No newline at end of file +{"version":3,"sources":["System/Time/TimeSpan.js","System/Time/TimeSpan.ts"],"names":[],"mappings":";;;;;AAKA;;;;;;;;;;ACCA,IAAA,UAAA,QAAmB,UAAnB,CAAA;AACA,IAAA,aAAA,QAAuB,YAAvB,CAAA;AACA,IAAA,cAAA,QAAwB,aAAxB,CAAA;AACA,IAAA,iBAAA,QAA2B,gBAA3B,CAAA;;IASA;;;AAWC,aAXD,QAWC,CAAY,KAAZ,EAAgE;YAAtC,8DAAiB,WAAA,QAAA,CAAS,YAAT,gBAAqB;;8BAXjE,UAWiE;;AAE/D,YAAI,KAAK,WAAA,QAAA,CAAS,cAAT,CAAwB,KAAxB,EAA+B,KAA/B,CAAL,CAF2D;;2EAXjE,qBAcQ,KAHyD;;AAK/D,YAAI,SAAJ,CAL+D;AAM/D,UAAE,KAAF,GAAU,KAAG,KAAH,CANqD;AAO/D,UAAE,YAAF,GAAiB,EAAjB,CAP+D;AAQ/D,UAAE,OAAF,GAAY,KAAG,IAAH,CARmD;AAS/D,UAAE,OAAF,GAAY,KAAG,KAAH,CATmD;AAU/D,UAAE,KAAF,GAAU,KAAG,OAAH,CAVqD;AAW/D,UAAE,IAAF,GAAS,KAAG,QAAH,CAXsD;;KAAhE;;iBAXD;;4BA2CK,OAAmB;AAEtB,gBAAG,QAAA,IAAA,CAAK,QAAL,CAAc,KAAd,CAAH,EACC,MAAM,IAAI,KAAJ,CACL,kHACA,2DADA,CADD,CADD;AAMA,mBAAO,IAAI,QAAJ,CAAa,KAAK,oBAAL,KAA8B,MAAM,KAAN,CAAY,YAAZ,CAAlD,CARsB;;;;gCAWf,OAAoD;gBAAtC,8DAAiB,WAAA,QAAA,CAAS,YAAT,gBAAqB;;AAE3D,mBAAO,IAAI,QAAJ,CAAa,KAAK,oBAAL,KAA8B,WAAA,QAAA,CAAS,cAAT,CAAwB,KAAxB,EAA+B,KAA/B,CAA9B,CAApB,CAF2D;;;;4BAzBnD;AAER,mBAAO,IAAP,CAFQ;;;;4BAOD;AAEP,gBAAI,IAAI,IAAJ;gBAAU,IAAI,EAAE,KAAF,CAFX;AAGP,gBAAG,CAAC,CAAD,EAAI,EAAE,KAAF,GAAU,IAAI,IAAI,YAAA,SAAA,CAAU,EAAE,oBAAF,EAAd,CAAJ,CAAjB;AACA,mBAAO,CAAP,CAJO;;;;6BAwBI,OAAc,OAAc;AAEvC,mBAAO,IAAI,QAAJ,CAAa,KAAb,EAAoB,KAApB,CAAP,CAFuC;;;;iCAKxB,OAAY;AAE3B,mBAAO,IAAI,QAAJ,CAAa,KAAb,EAAoB,WAAA,QAAA,CAAS,IAAT,CAA3B,CAF2B;;;;kCAKX,OAAY;AAE5B,mBAAO,IAAI,QAAJ,CAAa,KAAb,EAAoB,WAAA,QAAA,CAAS,KAAT,CAA3B,CAF4B;;;;oCAKV,OAAY;AAE9B,mBAAO,IAAI,QAAJ,CAAa,KAAb,EAAoB,WAAA,QAAA,CAAS,OAAT,CAA3B,CAF8B;;;;oCAKZ,OAAY;AAE9B,mBAAO,IAAI,QAAJ,CAAa,KAAb,EAAoB,WAAA,QAAA,CAAS,OAAT,CAA3B,CAF8B;;;;yCAKP,OAAY;AAEnC,mBAAO,IAAI,QAAJ,CAAa,KAAb,EAAoB,WAAA,QAAA,CAAS,YAAT,CAA3B,CAFmC;;;;kCAKnB,OAAY;AAE5B,mBAAO,IAAI,QAAJ,CAAa,KAAb,EAAoB,WAAA,QAAA,CAAS,KAAT,CAA3B,CAF4B;;;;4BAMd;AAEd,mBAAO,iBAAiB,eAAe,IAAI,QAAJ,CAAa,CAAb,CAAf,CAAjB,CAFO;;;;WAhGhB;EAA8B,eAAA,YAAA;;AAAjB,QAAA,QAAA,GAAQ,QAAR;AAuGb,IAAI,YAAJ;AAEA,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADvDA,QAAQ,OAAR,GCuDe,QDvDf","file":"System/Time/TimeSpan.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Originally based upon .NET source but with many additions and improvements.\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst Types_1 = require(\"../Types\");\nconst TimeUnit_1 = require(\"./TimeUnit\");\nconst ClockTime_1 = require(\"./ClockTime\");\nconst TimeQuantity_1 = require(\"./TimeQuantity\");\nclass TimeSpan extends TimeQuantity_1.TimeQuantity {\n constructor(value, units = TimeUnit_1.TimeUnit.Milliseconds) {\n var ms = TimeUnit_1.TimeUnit.toMilliseconds(value, units);\n super(ms);\n var _ = this;\n _.ticks = ms * 10000;\n _.milliseconds = ms;\n _.seconds = ms / 1000;\n _.minutes = ms / 60000;\n _.hours = ms / 3600000;\n _.days = ms / 86400000;\n }\n get total() {\n return this;\n }\n get time() {\n var _ = this, t = _._time;\n if (!t)\n _._time = t = new ClockTime_1.ClockTime(_.getTotalMilliseconds());\n return t;\n }\n add(other) {\n if (Types_1.Type.isNumber(other))\n throw new Error(\"Use .addUnit(value:number,units:TimeUnit) to add a numerical value amount. Default units are milliseconds.\\n\" +\n \".add only supports quantifiable time values (ITimeTotal).\");\n return new TimeSpan(this.getTotalMilliseconds() + other.total.milliseconds);\n }\n addUnit(value, units = TimeUnit_1.TimeUnit.Milliseconds) {\n return new TimeSpan(this.getTotalMilliseconds() + TimeUnit_1.TimeUnit.toMilliseconds(value, units));\n }\n static from(value, units) {\n return new TimeSpan(value, units);\n }\n static fromDays(value) {\n return new TimeSpan(value, TimeUnit_1.TimeUnit.Days);\n }\n static fromHours(value) {\n return new TimeSpan(value, TimeUnit_1.TimeUnit.Hours);\n }\n static fromMinutes(value) {\n return new TimeSpan(value, TimeUnit_1.TimeUnit.Minutes);\n }\n static fromSeconds(value) {\n return new TimeSpan(value, TimeUnit_1.TimeUnit.Seconds);\n }\n static fromMilliseconds(value) {\n return new TimeSpan(value, TimeUnit_1.TimeUnit.Milliseconds);\n }\n static fromTicks(value) {\n return new TimeSpan(value, TimeUnit_1.TimeUnit.Ticks);\n }\n static get zero() {\n return timeSpanZero || (timeSpanZero = new TimeSpan(0));\n }\n}\nexports.TimeSpan = TimeSpan;\nvar timeSpanZero;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = TimeSpan;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Originally based upon .NET source but with many additions and improvements.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {Type} from \"../Types\";\r\nimport {TimeUnit} from \"./TimeUnit\";\r\nimport {ClockTime} from \"./ClockTime\";\r\nimport {TimeQuantity} from \"./TimeQuantity\";\r\nimport {Milliseconds, Ticks} from \"./HowMany\";\r\nimport {ITimeMeasurement} from \"./ITimeMeasurement\";\r\nimport {ITimeQuantity} from \"./ITimeQuantity\";\r\n\r\n\r\n/**\r\n * TimeSpan expands on TimeQuantity to provide an class that is similar to .NET's TimeSpan including many useful static methods.\r\n */\r\nexport class TimeSpan extends TimeQuantity implements ITimeMeasurement\r\n{\r\n\r\n\tticks:number;\r\n\tmilliseconds:number;\r\n\tseconds:number;\r\n\tminutes:number;\r\n\thours:number;\r\n\tdays:number;\r\n\r\n\t// In .NET the default type is Ticks, but for JavaScript, we will use Milliseconds.\r\n\tconstructor(value:number, units:TimeUnit = TimeUnit.Milliseconds)\r\n\t{\r\n\t\tvar ms = TimeUnit.toMilliseconds(value, units);\r\n\t\tsuper(ms);\r\n\r\n\t\tvar _ = this;\r\n\t\t_.ticks = ms*Ticks.Per.Millisecond;\r\n\t\t_.milliseconds = ms;\r\n\t\t_.seconds = ms/Milliseconds.Per.Second;\r\n\t\t_.minutes = ms/Milliseconds.Per.Minute;\r\n\t\t_.hours = ms/Milliseconds.Per.Hour;\r\n\t\t_.days = ms/Milliseconds.Per.Day;\r\n\t}\r\n\r\n\t/**\r\n\t * Provides an standard interface for acquiring the total time.\r\n\t * @returns {TimeSpan}\r\n\t */\r\n\tget total():TimeSpan\r\n\t{\r\n\t\treturn this;\r\n\t}\r\n\r\n\tprivate _time:ClockTime;\r\n\t// Instead of the confusing getTotal versus unit name, expose a 'ClockTime' value which reports the individual components.\r\n\tget time():ClockTime\r\n\t{\r\n\t\tvar _ = this, t = _._time;\r\n\t\tif(!t) _._time = t = new ClockTime(_.getTotalMilliseconds());\r\n\t\treturn t;\r\n\t}\r\n\r\n\tadd(other:ITimeQuantity):TimeSpan\r\n\t{\r\n\t\tif(Type.isNumber(other))\r\n\t\t\tthrow new Error(\r\n\t\t\t\t\"Use .addUnit(value:number,units:TimeUnit) to add a numerical value amount. Default units are milliseconds.\\n\" +\r\n\t\t\t\t\".add only supports quantifiable time values (ITimeTotal).\"\r\n\t\t\t);\r\n\r\n\t\treturn new TimeSpan(this.getTotalMilliseconds() + other.total.milliseconds);\r\n\t}\r\n\r\n\taddUnit(value:number, units:TimeUnit = TimeUnit.Milliseconds):TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(this.getTotalMilliseconds() + TimeUnit.toMilliseconds(value, units));\r\n\t}\r\n\r\n\r\n\tstatic from(value:number, units:TimeUnit)\r\n\t{\r\n\t\treturn new TimeSpan(value, units);\r\n\t}\r\n\r\n\tstatic fromDays(value:number):TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(value, TimeUnit.Days);\r\n\t}\r\n\r\n\tstatic fromHours(value:number):TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(value, TimeUnit.Hours);\r\n\t}\r\n\r\n\tstatic fromMinutes(value:number):TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(value, TimeUnit.Minutes);\r\n\t}\r\n\r\n\tstatic fromSeconds(value:number):TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(value, TimeUnit.Seconds);\r\n\t}\r\n\r\n\tstatic fromMilliseconds(value:number):TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(value, TimeUnit.Milliseconds);\r\n\t}\r\n\r\n\tstatic fromTicks(value:number):TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(value, TimeUnit.Ticks);\r\n\t}\r\n\r\n\r\n\tstatic get zero():TimeSpan\r\n\t{\r\n\t\treturn timeSpanZero || (timeSpanZero = new TimeSpan(0));\r\n\t}\r\n}\r\n\r\n\r\nvar timeSpanZero:TimeSpan;\r\n\r\nexport default TimeSpan;"]} \ No newline at end of file diff --git a/dist/commonjs/System/Time/TimeStamp.d.ts b/dist/commonjs/System/Time/TimeStamp.d.ts index 13b092f1..5e85f277 100644 --- a/dist/commonjs/System/Time/TimeStamp.d.ts +++ b/dist/commonjs/System/Time/TimeStamp.d.ts @@ -1,12 +1,11 @@ -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -export default class TimeStamp implements ITimeStamp, IDateTime { +import { ITimeStamp } from "./ITimeStamp"; +import { IDateTime } from "./IDateTime"; +import { Gregorian } from "./Calendars"; +export declare class TimeStamp implements ITimeStamp, IDateTime { year: number; month: Gregorian.Month; day: number; @@ -19,3 +18,4 @@ export default class TimeStamp implements ITimeStamp, IDateTime { toJsDate(): Date; static from(d: Date | IDateTime): TimeStamp; } +export default TimeStamp; diff --git a/dist/commonjs/System/Time/TimeStamp.js b/dist/commonjs/System/Time/TimeStamp.js index ee75b757..cfa8a1b4 100644 --- a/dist/commonjs/System/Time/TimeStamp.js +++ b/dist/commonjs/System/Time/TimeStamp.js @@ -2,13 +2,13 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; +"use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -var Types_1 = require('../Types'); +var Types_1 = require("../Types"); var TimeStamp = function () { function TimeStamp(year, month) { @@ -33,15 +33,15 @@ var TimeStamp = function () { } _createClass(TimeStamp, [{ - key: 'toJsDate', + key: "toJsDate", value: function toJsDate() { var _ = this; return new Date(_.year, _.month, _.day, _.hour, _.minute, _.second, _.millisecond + _.tick / 10000); } }], [{ - key: 'from', + key: "from", value: function from(d) { - if (!(d instanceof Date) && Types_1.default.hasMember(d, 'toJsDate')) d = d.toJsDate(); + if (!(d instanceof Date) && Types_1.Type.hasMember(d, 'toJsDate')) d = d.toJsDate(); if (d instanceof Date) { return new TimeStamp(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes(), d.getSeconds(), d.getMilliseconds()); } else { @@ -53,6 +53,7 @@ var TimeStamp = function () { return TimeStamp; }(); +exports.TimeStamp = TimeStamp; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = TimeStamp; //# sourceMappingURL=TimeStamp.js.map diff --git a/dist/commonjs/System/Time/TimeStamp.js.map b/dist/commonjs/System/Time/TimeStamp.js.map index 22aa1a44..296197d9 100644 --- a/dist/commonjs/System/Time/TimeStamp.js.map +++ b/dist/commonjs/System/Time/TimeStamp.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Time/TimeStamp.ts","System/Time/TimeStamp.js"],"names":[],"mappings":";;;;AASA;;;;;;AAEA,IAAA,UAAA,QAAiB,UAAjB,CAAA;;IAKA;AAIC,aAJD,SAIC,CACQ,IADR,EAEQ,KAFR,EAQuB;YALf,4DAAa,iBAKE;YAJf,6DAAc,iBAIC;YAHf,+DAAgB,iBAGD;YAFf,+DAAgB,iBAED;YADf,oEAAqB,iBACN;YAAf,6DAAc,iBAAC;;8BAZxB,WAYwB;;AAPf,aAAA,IAAA,GAAA,IAAA,CAOe;AANf,aAAA,KAAA,GAAA,KAAA,CAMe;AALf,aAAA,GAAA,GAAA,GAAA,CAKe;AAJf,aAAA,IAAA,GAAA,IAAA,CAIe;AAHf,aAAA,MAAA,GAAA,MAAA,CAGe;AAFf,aAAA,MAAA,GAAA,MAAA,CAEe;AADf,aAAA,WAAA,GAAA,WAAA,CACe;AAAf,aAAA,IAAA,GAAA,IAAA,CAAe;AAKtB,eAAO,MAAP,CAAc,IAAd,EALsB;KARvB;;iBAJD;;mCAoBS;AAEP,gBAAI,IAAI,IAAJ,CAFG;AAGP,mBAAO,IAAI,IAAJ,CAAS,EAAE,IAAF,EAAQ,EAAE,KAAF,EAAS,EAAE,GAAF,EAAO,EAAE,IAAF,EAAQ,EAAE,MAAF,EAAU,EAAE,MAAF,EAAU,EAAE,WAAF,GAAgB,EAAE,IAAF,GAAO,KAAP,CAApF,CAHO;;;;6BAMI,GAAgB;AAE3B,gBAAI,EAAE,aAAa,IAAb,CAAF,IAAwB,QAAA,OAAA,CAAK,SAAL,CAAe,CAAf,EAAiB,UAAjB,CAAxB,EACH,IAAgB,EAAG,QAAH,EAAhB,CADD;AAEA,gBAAG,aAAa,IAAb,EACH;AACC,uBAAO,IAAI,SAAJ,CACN,EAAE,WAAF,EADM,EAEN,EAAE,QAAF,EAFM,EAGN,EAAE,OAAF,EAHM,EAIN,EAAE,QAAF,EAJM,EAKN,EAAE,UAAF,EALM,EAMN,EAAE,UAAF,EANM,EAON,EAAE,eAAF,EAPM,CAAP,CADD;aADA,MAaA;AACC,sBAAM,MAAM,oBAAN,CAAN,CADD;aAbA;;;;WA9BF;;;AAAA,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ACkBA,QAAQ,OAAR,GAAkB,SAAlB","file":"System/Time/TimeStamp.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport Type from '../Types';\r\n\r\n/**\r\n * An alternative to Date or DateTime. Is a model representing the exact date and time.\r\n */\r\nexport default\r\nclass TimeStamp implements ITimeStamp, IDateTime\r\n{\r\n\r\n\tconstructor(\r\n\t\tpublic year:number,\r\n\t\tpublic month:Gregorian.Month,\r\n\t\tpublic day:number = 1,\r\n\t\tpublic hour:number = 0,\r\n\t\tpublic minute:number = 0,\r\n\t\tpublic second:number = 0,\r\n\t\tpublic millisecond:number = 0,\r\n\t\tpublic tick:number = 0)\r\n\t{\r\n\r\n\t\t// TODO: Add validation or properly carry out of range values...\r\n\r\n\t\tObject.freeze(this);\r\n\t}\r\n\r\n\ttoJsDate():Date\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn new Date(_.year, _.month, _.day, _.hour, _.minute, _.second, _.millisecond + _.tick/HowMany.Ticks.Per.Millisecond);\r\n\t}\r\n\r\n\tstatic from(d:Date|IDateTime):TimeStamp\r\n\t{\r\n\t\tif (!(d instanceof Date) && Type.hasMember(d,'toJsDate'))\r\n\t\t\td = (d).toJsDate();\r\n\t\tif(d instanceof Date)\r\n\t\t{\r\n\t\t\treturn new TimeStamp(\r\n\t\t\t\td.getFullYear(),\r\n\t\t\t\td.getMonth(),\r\n\t\t\t\td.getDate(),\r\n\t\t\t\td.getHours(),\r\n\t\t\t\td.getMinutes(),\r\n\t\t\t\td.getSeconds(),\r\n\t\t\t\td.getMilliseconds()\r\n\t\t\t);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthrow Error('Invalid date type.');\r\n\t\t}\r\n\t}\r\n}\r\n","/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n'use strict';\nconst Types_1 = require('../Types');\nclass TimeStamp {\n constructor(year, month, day = 1, hour = 0, minute = 0, second = 0, millisecond = 0, tick = 0) {\n this.year = year;\n this.month = month;\n this.day = day;\n this.hour = hour;\n this.minute = minute;\n this.second = second;\n this.millisecond = millisecond;\n this.tick = tick;\n Object.freeze(this);\n }\n toJsDate() {\n var _ = this;\n return new Date(_.year, _.month, _.day, _.hour, _.minute, _.second, _.millisecond + _.tick / 10000);\n }\n static from(d) {\n if (!(d instanceof Date) && Types_1.default.hasMember(d, 'toJsDate'))\n d = d.toJsDate();\n if (d instanceof Date) {\n return new TimeStamp(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes(), d.getSeconds(), d.getMilliseconds());\n }\n else {\n throw Error('Invalid date type.');\n }\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = TimeStamp;\n"]} \ No newline at end of file +{"version":3,"sources":["System/Time/TimeStamp.js","System/Time/TimeStamp.ts"],"names":[],"mappings":";;;;AAIA;;;;;;ACCA,IAAA,UAAA,QAAmB,UAAnB,CAAA;;IASA;AAGC,aAHD,SAGC,CACQ,IADR,EAEQ,KAFR,EAQuB;YALf,4DAAa,iBAKE;YAJf,6DAAc,iBAIC;YAHf,+DAAgB,iBAGD;YAFf,+DAAgB,iBAED;YADf,oEAAqB,iBACN;YAAf,6DAAc,iBAAC;;8BAXxB,WAWwB;;AAPf,aAAA,IAAA,GAAA,IAAA,CAOe;AANf,aAAA,KAAA,GAAA,KAAA,CAMe;AALf,aAAA,GAAA,GAAA,GAAA,CAKe;AAJf,aAAA,IAAA,GAAA,IAAA,CAIe;AAHf,aAAA,MAAA,GAAA,MAAA,CAGe;AAFf,aAAA,MAAA,GAAA,MAAA,CAEe;AADf,aAAA,WAAA,GAAA,WAAA,CACe;AAAf,aAAA,IAAA,GAAA,IAAA,CAAe;AAKtB,eAAO,MAAP,CAAc,IAAd,EALsB;KARvB;;iBAHD;;mCAmBS;AAEP,gBAAI,IAAI,IAAJ,CAFG;AAGP,mBAAO,IAAI,IAAJ,CAAS,EAAE,IAAF,EAAQ,EAAE,KAAF,EAAS,EAAE,GAAF,EAAO,EAAE,IAAF,EAAQ,EAAE,MAAF,EAAU,EAAE,MAAF,EAAU,EAAE,WAAF,GAAgB,EAAE,IAAF,GAAO,KAAP,CAApF,CAHO;;;;6BAMI,GAAgB;AAE3B,gBAAG,EAAE,aAAa,IAAb,CAAF,IAAwB,QAAA,IAAA,CAAK,SAAL,CAAe,CAAf,EAAkB,UAAlB,CAAxB,EACF,IAAgB,EAAG,QAAH,EAAhB,CADD;AAEA,gBAAG,aAAa,IAAb,EACH;AACC,uBAAO,IAAI,SAAJ,CACN,EAAE,WAAF,EADM,EAEN,EAAE,QAAF,EAFM,EAGN,EAAE,OAAF,EAHM,EAIN,EAAE,QAAF,EAJM,EAKN,EAAE,UAAF,EALM,EAMN,EAAE,UAAF,EANM,EAON,EAAE,eAAF,EAPM,CAAP,CADD;aADA,MAaA;AACC,sBAAM,MAAM,oBAAN,CAAN,CADD;aAbA;;;;WA7BF;;;AAAa,QAAA,SAAA,GAAS,SAAT;AAgDb,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;AD3BA,QAAQ,OAAR,GC2Be,SD3Bf","file":"System/Time/TimeStamp.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst Types_1 = require(\"../Types\");\nclass TimeStamp {\n constructor(year, month, day = 1, hour = 0, minute = 0, second = 0, millisecond = 0, tick = 0) {\n this.year = year;\n this.month = month;\n this.day = day;\n this.hour = hour;\n this.minute = minute;\n this.second = second;\n this.millisecond = millisecond;\n this.tick = tick;\n Object.freeze(this);\n }\n toJsDate() {\n var _ = this;\n return new Date(_.year, _.month, _.day, _.hour, _.minute, _.second, _.millisecond + _.tick / 10000);\n }\n static from(d) {\n if (!(d instanceof Date) && Types_1.Type.hasMember(d, 'toJsDate'))\n d = d.toJsDate();\n if (d instanceof Date) {\n return new TimeStamp(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes(), d.getSeconds(), d.getMilliseconds());\n }\n else {\n throw Error('Invalid date type.');\n }\n }\n}\nexports.TimeStamp = TimeStamp;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = TimeStamp;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {Type} from \"../Types\";\r\nimport {ITimeStamp} from \"./ITimeStamp\";\r\nimport {Ticks} from \"./HowMany\";\r\nimport {IDateTime} from \"./IDateTime\";\r\nimport {Gregorian} from \"./Calendars\";\r\n\r\n/**\r\n * An alternative to Date or DateTime. Is a model representing the exact date and time.\r\n */\r\nexport class TimeStamp implements ITimeStamp, IDateTime\r\n{\r\n\r\n\tconstructor(\r\n\t\tpublic year:number,\r\n\t\tpublic month:Gregorian.Month,\r\n\t\tpublic day:number = 1,\r\n\t\tpublic hour:number = 0,\r\n\t\tpublic minute:number = 0,\r\n\t\tpublic second:number = 0,\r\n\t\tpublic millisecond:number = 0,\r\n\t\tpublic tick:number = 0)\r\n\t{\r\n\r\n\t\t// TODO: Add validation or properly carry out of range values...\r\n\r\n\t\tObject.freeze(this);\r\n\t}\r\n\r\n\ttoJsDate():Date\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn new Date(_.year, _.month, _.day, _.hour, _.minute, _.second, _.millisecond + _.tick/Ticks.Per.Millisecond);\r\n\t}\r\n\r\n\tstatic from(d:Date|IDateTime):TimeStamp\r\n\t{\r\n\t\tif(!(d instanceof Date) && Type.hasMember(d, 'toJsDate'))\r\n\t\t\td = (d).toJsDate();\r\n\t\tif(d instanceof Date)\r\n\t\t{\r\n\t\t\treturn new TimeStamp(\r\n\t\t\t\td.getFullYear(),\r\n\t\t\t\td.getMonth(),\r\n\t\t\t\td.getDate(),\r\n\t\t\t\td.getHours(),\r\n\t\t\t\td.getMinutes(),\r\n\t\t\t\td.getSeconds(),\r\n\t\t\t\td.getMilliseconds()\r\n\t\t\t);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthrow Error('Invalid date type.');\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default TimeStamp;"]} \ No newline at end of file diff --git a/dist/commonjs/System/Time/TimeUnit.d.ts b/dist/commonjs/System/Time/TimeUnit.d.ts index db39d082..a312eb74 100644 --- a/dist/commonjs/System/Time/TimeUnit.d.ts +++ b/dist/commonjs/System/Time/TimeUnit.d.ts @@ -1,11 +1,10 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Originally based upon .NET source but with many additions and improvements. * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -declare enum TimeUnit { +import { ITimeQuantity } from "./ITimeQuantity"; +export declare enum TimeUnit { Ticks = 0, Milliseconds = 1, Seconds = 2, @@ -13,7 +12,7 @@ declare enum TimeUnit { Hours = 4, Days = 5, } -declare module TimeUnit { +export declare module TimeUnit { function toMilliseconds(value: number, units?: TimeUnit): number; function fromMilliseconds(ms: number, units: TimeUnit): number; function from(quantity: ITimeQuantity, unit: TimeUnit): number; diff --git a/dist/commonjs/System/Time/TimeUnit.js b/dist/commonjs/System/Time/TimeUnit.js index b85a3ffa..173fc747 100644 --- a/dist/commonjs/System/Time/TimeUnit.js +++ b/dist/commonjs/System/Time/TimeUnit.js @@ -5,7 +5,6 @@ */ "use strict"; -var TimeUnit; (function (TimeUnit) { TimeUnit[TimeUnit["Ticks"] = 0] = "Ticks"; TimeUnit[TimeUnit["Milliseconds"] = 1] = "Milliseconds"; @@ -13,7 +12,8 @@ var TimeUnit; TimeUnit[TimeUnit["Minutes"] = 3] = "Minutes"; TimeUnit[TimeUnit["Hours"] = 4] = "Hours"; TimeUnit[TimeUnit["Days"] = 5] = "Days"; -})(TimeUnit || (TimeUnit = {})); +})(exports.TimeUnit || (exports.TimeUnit = {})); +var TimeUnit = exports.TimeUnit; var TimeUnit; (function (TimeUnit) { function toMilliseconds(value) { @@ -65,7 +65,7 @@ var TimeUnit; return true; } TimeUnit.assertValid = assertValid; -})(TimeUnit || (TimeUnit = {})); +})(TimeUnit = exports.TimeUnit || (exports.TimeUnit = {})); Object.freeze(TimeUnit); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = TimeUnit; diff --git a/dist/commonjs/System/Time/TimeUnit.js.map b/dist/commonjs/System/Time/TimeUnit.js.map index 5322364b..69780a3d 100644 --- a/dist/commonjs/System/Time/TimeUnit.js.map +++ b/dist/commonjs/System/Time/TimeUnit.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Time/TimeUnit.js","System/Time/TimeUnit.ts"],"names":[],"mappings":";;;;;AAKA;;ACKA,IAAK,QAAL;AAAA,CAAA,UAAK,QAAL,EAAa;AAEZ,aAAA,SAAA,OAAA,IAAA,CAAA,CAAA,GAAA,OAAA,CAFY;AAGZ,aAAA,SAAA,cAAA,IAAA,CAAA,CAAA,GAAA,cAAA,CAHY;AAIZ,aAAA,SAAA,SAAA,IAAA,CAAA,CAAA,GAAA,SAAA,CAJY;AAKZ,aAAA,SAAA,SAAA,IAAA,CAAA,CAAA,GAAA,SAAA,CALY;AAMZ,aAAA,SAAA,OAAA,IAAA,CAAA,CAAA,GAAA,OAAA,CANY;AAOZ,aAAA,SAAA,MAAA,IAAA,CAAA,CAAA,GAAA,MAAA,CAPY;CAAb,CAAA,CAAK,aAAA,WAAQ,EAAR,CAAA,CAAL;AAUA,IAAO,QAAP;AAAA,CAAA,UAAO,QAAP,EACA;AAEC,aAAA,cAAA,CACC,KADD,EAEuC;YAAtC,8DAAiB,SAAS,YAAT,gBAAqB;;AAGtC,gBAAO,KAAP;AAEC,iBAAK,SAAS,IAAT;AACJ,yBAAS,EAAT,CADD;AAFD,iBAIM,SAAS,KAAT;AACJ,yBAAS,EAAT,CADD;AAJD,iBAMM,SAAS,OAAT;AACJ,yBAAS,EAAT,CADD;AAND,iBAQM,SAAS,OAAT;AACJ,yBAAS,IAAT,CADD;AARD,iBAUM,SAAS,YAAT;AACJ,uBAAO,KAAP,CADD;AAVD,iBAYM,SAAS,KAAT;AACJ,uBAAO,QAAM,KAAN,CADR;AAZD;AAeE,sBAAM,IAAI,KAAJ,CAAU,mBAAV,CAAN,CADD;AAdD,SAHsC;KAFvC;AAAgB,aAAA,cAAA,GAAc,cAAd,CAFjB;AA0BC,aAAA,gBAAA,CACC,EADD,EAEC,KAFD,EAEe;AAEd,gBAAO,KAAP;AAEC,iBAAK,SAAS,IAAT;AACJ,uBAAO,KAAG,QAAH,CADR;AAFD,iBAIM,SAAS,KAAT;AACJ,uBAAO,KAAG,OAAH,CADR;AAJD,iBAMM,SAAS,OAAT;AACJ,uBAAO,KAAG,KAAH,CADR;AAND,iBAQM,SAAS,OAAT;AACJ,uBAAO,KAAG,IAAH,CADR;AARD,iBAUM,SAAS,YAAT;AACJ,uBAAO,EAAP,CADD;AAVD,iBAYM,SAAS,KAAT;AACJ,uBAAO,KAAG,KAAH,CADR;AAZD;AAeE,sBAAM,IAAI,KAAJ,CAAU,mBAAV,CAAN,CADD;AAdD,SAFc;KAFf;AAAgB,aAAA,gBAAA,GAAgB,gBAAhB,CA1BjB;AAiDC,aAAA,IAAA,CAAqB,QAArB,EAA6C,IAA7C,EAA0D;AACzD,eAAO,YAAY,iBAAiB,SAAS,oBAAT,EAAjB,EAAiD,IAAjD,CAAZ,CADkD;KAA1D;AAAgB,aAAA,IAAA,GAAI,IAAJ,CAjDjB;AAsDC,aAAA,WAAA,CAA4B,IAA5B,EAAyC;AAExC,YAAG,MAAM,IAAN,KAAe,OAAK,SAAS,IAAT,IAAiB,OAAK,SAAS,KAAT,IAAkB,KAAK,KAAL,CAAW,IAAX,MAAmB,IAAnB,EAC9D,MAAM,IAAI,KAAJ,CAAU,mBAAV,CAAN,CADD;AAGA,eAAO,IAAP,CALwC;KAAzC;AAAgB,aAAA,WAAA,GAAW,WAAX,CAtDjB;CADA,CAAA,CAAO,aAAA,WAAQ,EAAR,CAAA,CAAP;AAiEA,OAAO,MAAP,CAAc,QAAd;AAEA,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADnBA,QAAQ,OAAR,GCmBe,QDnBf","file":"System/Time/TimeUnit.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Originally based upon .NET source but with many additions and improvements.\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nvar TimeUnit;\n(function (TimeUnit) {\n TimeUnit[TimeUnit[\"Ticks\"] = 0] = \"Ticks\";\n TimeUnit[TimeUnit[\"Milliseconds\"] = 1] = \"Milliseconds\";\n TimeUnit[TimeUnit[\"Seconds\"] = 2] = \"Seconds\";\n TimeUnit[TimeUnit[\"Minutes\"] = 3] = \"Minutes\";\n TimeUnit[TimeUnit[\"Hours\"] = 4] = \"Hours\";\n TimeUnit[TimeUnit[\"Days\"] = 5] = \"Days\";\n})(TimeUnit || (TimeUnit = {}));\nvar TimeUnit;\n(function (TimeUnit) {\n function toMilliseconds(value, units = TimeUnit.Milliseconds) {\n switch (units) {\n case TimeUnit.Days:\n value *= 24;\n case TimeUnit.Hours:\n value *= 60;\n case TimeUnit.Minutes:\n value *= 60;\n case TimeUnit.Seconds:\n value *= 1000;\n case TimeUnit.Milliseconds:\n return value;\n case TimeUnit.Ticks:\n return value / 10000;\n default:\n throw new Error(\"Invalid TimeUnit.\");\n }\n }\n TimeUnit.toMilliseconds = toMilliseconds;\n function fromMilliseconds(ms, units) {\n switch (units) {\n case TimeUnit.Days:\n return ms / 86400000;\n case TimeUnit.Hours:\n return ms / 3600000;\n case TimeUnit.Minutes:\n return ms / 60000;\n case TimeUnit.Seconds:\n return ms / 1000;\n case TimeUnit.Milliseconds:\n return ms;\n case TimeUnit.Ticks:\n return ms * 10000;\n default:\n throw new Error(\"Invalid TimeUnit.\");\n }\n }\n TimeUnit.fromMilliseconds = fromMilliseconds;\n function from(quantity, unit) {\n return quantity && fromMilliseconds(quantity.getTotalMilliseconds(), unit);\n }\n TimeUnit.from = from;\n function assertValid(unit) {\n if (isNaN(unit) || unit > TimeUnit.Days || unit < TimeUnit.Ticks || Math.floor(unit) !== unit)\n throw new Error(\"Invalid TimeUnit.\");\n return true;\n }\n TimeUnit.assertValid = assertValid;\n})(TimeUnit || (TimeUnit = {}));\nObject.freeze(TimeUnit);\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = TimeUnit;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Originally based upon .NET source but with many additions and improvements.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n\r\n\r\nenum TimeUnit\r\n{\r\n\tTicks,\r\n\tMilliseconds,\r\n\tSeconds,\r\n\tMinutes,\r\n\tHours,\r\n\tDays\r\n} // Earth Days\r\n\r\nmodule TimeUnit\r\n{\r\n\r\n\texport function toMilliseconds(\r\n\t\tvalue:number,\r\n\t\tunits:TimeUnit = TimeUnit.Milliseconds):number\r\n\t{\r\n\t\t// noinspection FallThroughInSwitchStatementJS\r\n\t\tswitch(units)\r\n\t\t{\r\n\t\t\tcase TimeUnit.Days:\r\n\t\t\t\tvalue *= HowMany.Hours.Per.Day;\r\n\t\t\tcase TimeUnit.Hours:\r\n\t\t\t\tvalue *= HowMany.Minutes.Per.Hour;\r\n\t\t\tcase TimeUnit.Minutes:\r\n\t\t\t\tvalue *= HowMany.Seconds.Per.Minute;\r\n\t\t\tcase TimeUnit.Seconds:\r\n\t\t\t\tvalue *= HowMany.Milliseconds.Per.Second;\r\n\t\t\tcase TimeUnit.Milliseconds:\r\n\t\t\t\treturn value;\r\n\t\t\tcase TimeUnit.Ticks:\r\n\t\t\t\treturn value/HowMany.Ticks.Per.Millisecond;\r\n\t\t\tdefault:\r\n\t\t\t\tthrow new Error(\"Invalid TimeUnit.\");\r\n\t\t}\r\n\t}\r\n\r\n\texport function fromMilliseconds(\r\n\t\tms:number,\r\n\t\tunits:TimeUnit)\r\n\t{\r\n\t\tswitch(units)\r\n\t\t{\r\n\t\t\tcase TimeUnit.Days:\r\n\t\t\t\treturn ms/HowMany.Milliseconds.Per.Day;\r\n\t\t\tcase TimeUnit.Hours:\r\n\t\t\t\treturn ms/HowMany.Milliseconds.Per.Hour;\r\n\t\t\tcase TimeUnit.Minutes:\r\n\t\t\t\treturn ms/HowMany.Milliseconds.Per.Minute;\r\n\t\t\tcase TimeUnit.Seconds:\r\n\t\t\t\treturn ms/HowMany.Milliseconds.Per.Second;\r\n\t\t\tcase TimeUnit.Milliseconds:\r\n\t\t\t\treturn ms;\r\n\t\t\tcase TimeUnit.Ticks:\r\n\t\t\t\treturn ms*HowMany.Ticks.Per.Millisecond;\r\n\t\t\tdefault:\r\n\t\t\t\tthrow new Error(\"Invalid TimeUnit.\");\r\n\t\t}\r\n\t}\r\n\r\n\texport function from(quantity:ITimeQuantity, unit:TimeUnit):number {\r\n\t\treturn quantity && fromMilliseconds(quantity.getTotalMilliseconds(),unit);\r\n\t}\r\n\r\n\r\n\texport function assertValid(unit:TimeUnit):boolean\r\n\t{\r\n\t\tif(isNaN(unit) || unit>TimeUnit.Days || unit TimeUnit.Days || unit < TimeUnit.Ticks || Math.floor(unit) !== unit)\n throw new Error(\"Invalid TimeUnit.\");\n return true;\n }\n TimeUnit.assertValid = assertValid;\n})(TimeUnit = exports.TimeUnit || (exports.TimeUnit = {}));\nObject.freeze(TimeUnit);\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = TimeUnit;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Originally based upon .NET source but with many additions and improvements.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {Hours, Minutes, Seconds, Milliseconds, Ticks} from \"./HowMany\";\r\nimport {ITimeQuantity} from \"./ITimeQuantity\";\r\n\r\nexport enum TimeUnit\r\n{\r\n\tTicks,\r\n\tMilliseconds,\r\n\tSeconds,\r\n\tMinutes,\r\n\tHours,\r\n\tDays\r\n} // Earth Days\r\n\r\nexport module TimeUnit\r\n{\r\n\r\n\texport function toMilliseconds(\r\n\t\tvalue:number,\r\n\t\tunits:TimeUnit = TimeUnit.Milliseconds):number\r\n\t{\r\n\t\t// noinspection FallThroughInSwitchStatementJS\r\n\t\tswitch(units)\r\n\t\t{\r\n\t\t\tcase TimeUnit.Days:\r\n\t\t\t\tvalue *= Hours.Per.Day;\r\n\t\t\tcase TimeUnit.Hours:\r\n\t\t\t\tvalue *= Minutes.Per.Hour;\r\n\t\t\tcase TimeUnit.Minutes:\r\n\t\t\t\tvalue *= Seconds.Per.Minute;\r\n\t\t\tcase TimeUnit.Seconds:\r\n\t\t\t\tvalue *= Milliseconds.Per.Second;\r\n\t\t\tcase TimeUnit.Milliseconds:\r\n\t\t\t\treturn value;\r\n\t\t\tcase TimeUnit.Ticks:\r\n\t\t\t\treturn value/Ticks.Per.Millisecond;\r\n\t\t\tdefault:\r\n\t\t\t\tthrow new Error(\"Invalid TimeUnit.\");\r\n\t\t}\r\n\t}\r\n\r\n\texport function fromMilliseconds(\r\n\t\tms:number,\r\n\t\tunits:TimeUnit)\r\n\t{\r\n\t\tswitch(units)\r\n\t\t{\r\n\t\t\tcase TimeUnit.Days:\r\n\t\t\t\treturn ms/Milliseconds.Per.Day;\r\n\t\t\tcase TimeUnit.Hours:\r\n\t\t\t\treturn ms/Milliseconds.Per.Hour;\r\n\t\t\tcase TimeUnit.Minutes:\r\n\t\t\t\treturn ms/Milliseconds.Per.Minute;\r\n\t\t\tcase TimeUnit.Seconds:\r\n\t\t\t\treturn ms/Milliseconds.Per.Second;\r\n\t\t\tcase TimeUnit.Milliseconds:\r\n\t\t\t\treturn ms;\r\n\t\t\tcase TimeUnit.Ticks:\r\n\t\t\t\treturn ms*Ticks.Per.Millisecond;\r\n\t\t\tdefault:\r\n\t\t\t\tthrow new Error(\"Invalid TimeUnit.\");\r\n\t\t}\r\n\t}\r\n\r\n\texport function from(quantity:ITimeQuantity, unit:TimeUnit):number\r\n\t{\r\n\t\treturn quantity && fromMilliseconds(quantity.getTotalMilliseconds(), unit);\r\n\t}\r\n\r\n\r\n\texport function assertValid(unit:TimeUnit):boolean\r\n\t{\r\n\t\tif(isNaN(unit) || unit>TimeUnit.Days || unit -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import TimeUnit from './TimeUnit'; -import TimeQuantity from './TimeQuantity'; +import { TimeUnit } from "./TimeUnit"; +import { TimeQuantity } from "./TimeQuantity"; +import { ITimeQuantity } from "./ITimeQuantity"; export default class TimeUnitValue extends TimeQuantity { private _units; constructor(value: number | ITimeQuantity, _units: TimeUnit); diff --git a/dist/commonjs/System/Time/TimeUnitValue.js b/dist/commonjs/System/Time/TimeUnitValue.js index 35c90be6..0b662696 100644 --- a/dist/commonjs/System/Time/TimeUnitValue.js +++ b/dist/commonjs/System/Time/TimeUnitValue.js @@ -2,7 +2,7 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; +"use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); @@ -12,11 +12,11 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } -var TimeUnit_1 = require('./TimeUnit'); -var TimeQuantity_1 = require('./TimeQuantity'); +var TimeUnit_1 = require("./TimeUnit"); +var TimeQuantity_1 = require("./TimeQuantity"); -var TimeUnitValue = function (_TimeQuantity_1$defau) { - _inherits(TimeUnitValue, _TimeQuantity_1$defau); +var TimeUnitValue = function (_TimeQuantity_1$TimeQ) { + _inherits(TimeUnitValue, _TimeQuantity_1$TimeQ); function TimeUnitValue(value, _units) { _classCallCheck(this, TimeUnitValue); @@ -24,24 +24,24 @@ var TimeUnitValue = function (_TimeQuantity_1$defau) { var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(TimeUnitValue).call(this, typeof value == 'number' ? value : getUnitQuantityFrom(value, _units))); _this._units = _units; - TimeUnit_1.default.assertValid(_units); + TimeUnit_1.TimeUnit.assertValid(_units); return _this; } _createClass(TimeUnitValue, [{ - key: 'getTotalMilliseconds', + key: "getTotalMilliseconds", value: function getTotalMilliseconds() { - return TimeUnit_1.default.toMilliseconds(this._quantity, this._units); + return TimeUnit_1.TimeUnit.toMilliseconds(this._quantity, this._units); } }, { - key: 'to', + key: "to", value: function to() { var units = arguments.length <= 0 || arguments[0] === undefined ? this.units : arguments[0]; return TimeUnitValue.from(this, units); } }, { - key: 'value', + key: "value", get: function get() { return this._quantity; }, @@ -50,25 +50,25 @@ var TimeUnitValue = function (_TimeQuantity_1$defau) { this._quantity = v; } }, { - key: 'units', + key: "units", get: function get() { return this._units; } }], [{ - key: 'from', + key: "from", value: function from(value) { - var units = arguments.length <= 1 || arguments[1] === undefined ? TimeUnit_1.default.Milliseconds : arguments[1]; + var units = arguments.length <= 1 || arguments[1] === undefined ? TimeUnit_1.TimeUnit.Milliseconds : arguments[1]; return new TimeUnitValue(value, units); } }]); return TimeUnitValue; -}(TimeQuantity_1.default); +}(TimeQuantity_1.TimeQuantity); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = TimeUnitValue; function getUnitQuantityFrom(q, units) { - return TimeUnit_1.default.fromMilliseconds(q.getTotalMilliseconds(), units); + return TimeUnit_1.TimeUnit.fromMilliseconds(q.getTotalMilliseconds(), units); } //# sourceMappingURL=TimeUnitValue.js.map diff --git a/dist/commonjs/System/Time/TimeUnitValue.js.map b/dist/commonjs/System/Time/TimeUnitValue.js.map index 10cc4df2..79302798 100644 --- a/dist/commonjs/System/Time/TimeUnitValue.js.map +++ b/dist/commonjs/System/Time/TimeUnitValue.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Time/TimeUnitValue.ts","System/Time/TimeUnitValue.js"],"names":[],"mappings":";;;;AASA;;;;;;;;;;AAGA,IAAA,aAAA,QAAqB,YAArB,CAAA;AACA,IAAA,iBAAA,QAAyB,gBAAzB,CAAA;;IAKA;;;AAIC,aAJD,aAIC,CAAY,KAAZ,EAAgD,MAAhD,EAA+D;8BAJhE,eAIgE;;2EAJhE,0BAMQ,OAAO,KAAP,IAAe,QAAf,GACK,KADL,GAEH,oBAAmC,KAAnC,EAA0C,MAA1C,CAFG,GAFwD;;AAAf,cAAA,MAAA,GAAA,MAAA,CAAe;AAK9D,mBAAA,OAAA,CAAS,WAAT,CAAqB,MAArB,EAL8D;;KAA/D;;iBAJD;;+CAuBqB;AAEnB,mBAAO,WAAA,OAAA,CAAS,cAAT,CAAwB,KAAK,SAAL,EAAgB,KAAK,MAAL,CAA/C,CAFmB;;;;6BAWU;gBAA3B,8DAAiB,KAAK,KAAL,gBAAU;;AAE7B,mBAAO,cAAc,IAAd,CAAmB,IAAnB,EAAwB,KAAxB,CAAP,CAF6B;;;;4BAtBrB;AAER,mBAAO,KAAK,SAAL,CAFC;;0BAKC,GAAQ;AAEjB,iBAAK,MAAL,GAAc,IAAd,CAFiB;AAGjB,iBAAK,SAAL,GAAiB,CAAjB,CAHiB;;;;4BAYT;AAER,mBAAO,KAAK,MAAL,CAFC;;;;6BAUG,OAAkE;gBAAtC,8DAAiB,WAAA,OAAA,CAAS,YAAT,gBAAqB;;AAE7E,mBAAO,IAAI,aAAJ,CAAkB,KAAlB,EAAyB,KAAzB,CAAP,CAF6E;;;;WAvC/E;EAC4B,eAAA,OAAA;;AAD5B,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ACkBA,QAAQ,OAAR,GAAkB,aAAlB;AD4BA,SAAA,mBAAA,CAA6B,CAA7B,EAA8C,KAA9C,EAA4D;AAE3D,WAAO,WAAA,OAAA,CAAS,gBAAT,CAA0B,EAAE,oBAAF,EAA1B,EAAoD,KAApD,CAAP,CAF2D;CAA5D","file":"System/Time/TimeUnitValue.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport {areEqual, compare} from '../Compare';\r\nimport TimeUnit from './TimeUnit';\r\nimport TimeQuantity from './TimeQuantity';\r\n\r\n/**\r\n * TimeUnitValue allows for passing around a reference to a changeable measure of time coerced by its unit type.\r\n */\r\nexport default\r\nclass TimeUnitValue extends TimeQuantity\r\n{\r\n\r\n\tconstructor(value:number|ITimeQuantity, private _units:TimeUnit)\r\n\t{\r\n\t\tsuper(typeof(value)=='number'\r\n\t\t\t? value\r\n\t\t\t: getUnitQuantityFrom(value, _units));\r\n\t\tTimeUnit.assertValid(_units);\r\n\t}\r\n\r\n\tget value():number\r\n\t{\r\n\t\treturn this._quantity;\r\n\t}\r\n\r\n\tset value(v:number)\r\n\t{\r\n\t\tthis._total = null;\r\n\t\tthis._quantity = v;\r\n\t}\r\n\r\n\tgetTotalMilliseconds():number\r\n\t{\r\n\t\treturn TimeUnit.toMilliseconds(this._quantity, this._units);\r\n\t}\r\n\r\n\t// To avoid confusion, the unit type can only be set once at construction.\r\n\tget units():TimeUnit\r\n\t{\r\n\t\treturn this._units;\r\n\t}\r\n\r\n\tto(units:TimeUnit = this.units):TimeUnitValue\r\n\t{\r\n\t\treturn TimeUnitValue.from(this,units);\r\n\t}\r\n\r\n\tstatic from(value:number|ITimeQuantity, units:TimeUnit = TimeUnit.Milliseconds):TimeUnitValue\r\n\t{\r\n\t\treturn new TimeUnitValue(value, units);\r\n\t}\r\n\r\n}\r\n\r\nfunction getUnitQuantityFrom(q:ITimeQuantity, units:TimeUnit)\r\n{\r\n\treturn TimeUnit.fromMilliseconds(q.getTotalMilliseconds(), units);\r\n}\r\n","/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n'use strict';\nconst TimeUnit_1 = require('./TimeUnit');\nconst TimeQuantity_1 = require('./TimeQuantity');\nclass TimeUnitValue extends TimeQuantity_1.default {\n constructor(value, _units) {\n super(typeof (value) == 'number'\n ? value\n : getUnitQuantityFrom(value, _units));\n this._units = _units;\n TimeUnit_1.default.assertValid(_units);\n }\n get value() {\n return this._quantity;\n }\n set value(v) {\n this._total = null;\n this._quantity = v;\n }\n getTotalMilliseconds() {\n return TimeUnit_1.default.toMilliseconds(this._quantity, this._units);\n }\n get units() {\n return this._units;\n }\n to(units = this.units) {\n return TimeUnitValue.from(this, units);\n }\n static from(value, units = TimeUnit_1.default.Milliseconds) {\n return new TimeUnitValue(value, units);\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = TimeUnitValue;\nfunction getUnitQuantityFrom(q, units) {\n return TimeUnit_1.default.fromMilliseconds(q.getTotalMilliseconds(), units);\n}\n"]} \ No newline at end of file +{"version":3,"sources":["System/Time/TimeUnitValue.js","System/Time/TimeUnitValue.ts"],"names":[],"mappings":";;;;AAIA;;;;;;;;;;ACEA,IAAA,aAAA,QAAuB,YAAvB,CAAA;AACA,IAAA,iBAAA,QAA2B,gBAA3B,CAAA;;IAMA;;;AAIC,aAJD,aAIC,CAAY,KAAZ,EAAgD,MAAhD,EAA+D;8BAJhE,eAIgE;;2EAJhE,0BAMQ,OAAO,KAAP,IAAe,QAAf,GACK,KADL,GAEH,oBAAmC,KAAnC,EAA0C,MAA1C,CAFG,GAFwD;;AAAf,cAAA,MAAA,GAAA,MAAA,CAAe;AAK9D,mBAAA,QAAA,CAAS,WAAT,CAAqB,MAArB,EAL8D;;KAA/D;;iBAJD;;+CAuBqB;AAEnB,mBAAO,WAAA,QAAA,CAAS,cAAT,CAAwB,KAAK,SAAL,EAAgB,KAAK,MAAL,CAA/C,CAFmB;;;;6BAWU;gBAA3B,8DAAiB,KAAK,KAAL,gBAAU;;AAE7B,mBAAO,cAAc,IAAd,CAAmB,IAAnB,EAAwB,KAAxB,CAAP,CAF6B;;;;4BAtBrB;AAER,mBAAO,KAAK,SAAL,CAFC;;0BAKC,GAAQ;AAEjB,iBAAK,MAAL,GAAc,IAAd,CAFiB;AAGjB,iBAAK,SAAL,GAAiB,CAAjB,CAHiB;;;;4BAYT;AAER,mBAAO,KAAK,MAAL,CAFC;;;;6BAUG,OAAkE;gBAAtC,8DAAiB,WAAA,QAAA,CAAS,YAAT,gBAAqB;;AAE7E,mBAAO,IAAI,aAAJ,CAAkB,KAAlB,EAAyB,KAAzB,CAAP,CAF6E;;;;WAvC/E;EAC4B,eAAA,YAAA;;AAD5B,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADuBA,QAAQ,OAAR,GAAkB,aAAlB;ACuBA,SAAA,mBAAA,CAA6B,CAA7B,EAA8C,KAA9C,EAA4D;AAE3D,WAAO,WAAA,QAAA,CAAS,gBAAT,CAA0B,EAAE,oBAAF,EAA1B,EAAoD,KAApD,CAAP,CAF2D;CAA5D","file":"System/Time/TimeUnitValue.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst TimeUnit_1 = require(\"./TimeUnit\");\nconst TimeQuantity_1 = require(\"./TimeQuantity\");\nclass TimeUnitValue extends TimeQuantity_1.TimeQuantity {\n constructor(value, _units) {\n super(typeof (value) == 'number'\n ? value\n : getUnitQuantityFrom(value, _units));\n this._units = _units;\n TimeUnit_1.TimeUnit.assertValid(_units);\n }\n get value() {\n return this._quantity;\n }\n set value(v) {\n this._total = null;\n this._quantity = v;\n }\n getTotalMilliseconds() {\n return TimeUnit_1.TimeUnit.toMilliseconds(this._quantity, this._units);\n }\n get units() {\n return this._units;\n }\n to(units = this.units) {\n return TimeUnitValue.from(this, units);\n }\n static from(value, units = TimeUnit_1.TimeUnit.Milliseconds) {\n return new TimeUnitValue(value, units);\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = TimeUnitValue;\nfunction getUnitQuantityFrom(q, units) {\n return TimeUnit_1.TimeUnit.fromMilliseconds(q.getTotalMilliseconds(), units);\n}\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {TimeUnit} from \"./TimeUnit\";\r\nimport {TimeQuantity} from \"./TimeQuantity\";\r\nimport {ITimeQuantity} from \"./ITimeQuantity\";\r\n\r\n/**\r\n * TimeUnitValue allows for passing around a reference to a changeable measure of time coerced by its unit type.\r\n */\r\nexport default\r\nclass TimeUnitValue extends TimeQuantity\r\n{\r\n\r\n\tconstructor(value:number|ITimeQuantity, private _units:TimeUnit)\r\n\t{\r\n\t\tsuper(typeof(value)=='number'\r\n\t\t\t? value\r\n\t\t\t: getUnitQuantityFrom(value, _units));\r\n\t\tTimeUnit.assertValid(_units);\r\n\t}\r\n\r\n\tget value():number\r\n\t{\r\n\t\treturn this._quantity;\r\n\t}\r\n\r\n\tset value(v:number)\r\n\t{\r\n\t\tthis._total = null;\r\n\t\tthis._quantity = v;\r\n\t}\r\n\r\n\tgetTotalMilliseconds():number\r\n\t{\r\n\t\treturn TimeUnit.toMilliseconds(this._quantity, this._units);\r\n\t}\r\n\r\n\t// To avoid confusion, the unit type can only be set once at construction.\r\n\tget units():TimeUnit\r\n\t{\r\n\t\treturn this._units;\r\n\t}\r\n\r\n\tto(units:TimeUnit = this.units):TimeUnitValue\r\n\t{\r\n\t\treturn TimeUnitValue.from(this,units);\r\n\t}\r\n\r\n\tstatic from(value:number|ITimeQuantity, units:TimeUnit = TimeUnit.Milliseconds):TimeUnitValue\r\n\t{\r\n\t\treturn new TimeUnitValue(value, units);\r\n\t}\r\n\r\n}\r\n\r\nfunction getUnitQuantityFrom(q:ITimeQuantity, units:TimeUnit)\r\n{\r\n\treturn TimeUnit.fromMilliseconds(q.getTotalMilliseconds(), units);\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/commonjs/System/Timers/Timer.d.ts b/dist/commonjs/System/Timers/Timer.d.ts index 00797473..61035b51 100644 --- a/dist/commonjs/System/Timers/Timer.d.ts +++ b/dist/commonjs/System/Timers/Timer.d.ts @@ -1,10 +1,10 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import ObservableBase from "./../Observable/ObservableBase"; +import { ICancellable } from "../Tasks/ICancellable"; +import { ObservableBase } from "../Observable/ObservableBase"; +import { ITimer } from "./ITimer"; export default class Timer extends ObservableBase implements ITimer, ICancellable { private _interval; private _maxCount; diff --git a/dist/commonjs/System/Timers/Timer.js b/dist/commonjs/System/Timers/Timer.js index 4cbcfd39..57105022 100644 --- a/dist/commonjs/System/Timers/Timer.js +++ b/dist/commonjs/System/Timers/Timer.js @@ -14,10 +14,10 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } -var ObservableBase_1 = require("./../Observable/ObservableBase"); +var ObservableBase_1 = require("../Observable/ObservableBase"); -var Timer = function (_ObservableBase_1$def) { - _inherits(Timer, _ObservableBase_1$def); +var Timer = function (_ObservableBase_1$Obs) { + _inherits(Timer, _ObservableBase_1$Obs); function Timer(_interval) { var _maxCount = arguments.length <= 1 || arguments[1] === undefined ? Infinity : arguments[1]; @@ -129,7 +129,7 @@ var Timer = function (_ObservableBase_1$def) { }]); return Timer; -}(ObservableBase_1.default); +}(ObservableBase_1.ObservableBase); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = Timer; diff --git a/dist/commonjs/System/Timers/Timer.js.map b/dist/commonjs/System/Timers/Timer.js.map index 5d9364b6..e737e62d 100644 --- a/dist/commonjs/System/Timers/Timer.js.map +++ b/dist/commonjs/System/Timers/Timer.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Timers/Timer.js","System/Timers/Timer.ts"],"names":[],"mappings":";;;;AAIA;;;;;;;;;;;;ACGA,IAAA,mBAAA,QAA2B,gCAA3B,CAAA;;IAEA;;;AAMC,aAND,KAMC,CACS,SADT,EAGkC;YADzB,kEAAmB,wBACM;;YAAzB,sEAAgB,yBAAS;;8BATnC,OASmC;;2EATnC,mBASmC;;AAFzB,cAAA,SAAA,GAAA,SAAA,CAEyB;AADzB,cAAA,SAAA,GAAA,SAAA,CACyB;AAAzB,cAAA,aAAA,GAAA,aAAA,CAAyB;AAL1B,cAAA,MAAA,GAAgB,CAAhB,CAK0B;AAIjC,YAAG,cAAY,IAAZ,IAAoB,cAAa,KAAK,CAAL,EACnC,MAAM,oCAAN,CADD;AAEA,YAAG,YAAU,CAAV,EACF,MAAM,gCAAN,CADD;qBANiC;KAHlC;;iBAND;;gCAuCM;AAEJ,gBAAI,IAAI,IAAJ,CAFA;AAGJ,gBAAG,CAAC,EAAE,OAAF,IAAa,EAAE,MAAF,GAAS,EAAE,SAAF,EAC1B;AAEC,oBAAG,EAAE,MAAF,IAAY,EAAE,aAAF,IAAiB,EAAE,SAAF,EAChC;;AACC,4BAAI,IAAI,YACP,MAAM,OAAN,EACA,EAAE,SAAF,EACA,CAHO,CAAJ;AAKJ,0BAAE,OAAF,GAAY,YAAA;AAEX,0CAAc,CAAd,EAFW;yBAAA;yBANb;iBADA,MAaA;;AACC,4BAAI,IAAI,WACP,MAAM,OAAN,EACA,EAAE,aAAF,EACA,CAHO,EAGJ,IAHI,CAAJ;AAKJ,0BAAE,OAAF,GAAY,YAAA;AAEX,yCAAa,CAAb,EAFW;yBAAA;yBANb;iBAbA;aAHD;;;;+BA+BG;AAEH,iBAAK,MAAL,GAFG;;;;gCAKC;AAEJ,iBAAK,IAAL,GAFI;AAGJ,iBAAK,MAAL,GAAc,CAAd,CAHI;;;;iCAMC;AACL,gBAAG,KAAK,OAAL,EACH;AACC,qBAAK,OAAL,GADD;AAEC,qBAAK,OAAL,GAAe,IAAf,CAFD;AAGC,uBAAO,IAAP,CAHD;aADA;AAMA,mBAAO,KAAP,CAPK;;;;kCAUC;AACN,iBAAK,MAAL,GADM;AAEN,uCAhGF,6CAgGE,CAFM;;;;4BAjEM;AAEZ,mBAAO,CAAC,CAAC,KAAK,OAAL,CAFG;;;;4BAKJ;AAER,mBAAO,KAAK,MAAL,CAFC;;;;iCAdR,qBAEyC;gBADzC,iEAAkB,wBACuB;gBAAzC,qEAAsB,mCAAmB;;AAEzC,gBAAI,IAAI,IAAI,KAAJ,CAAU,mBAAV,EAA+B,QAA/B,EAAyC,mBAAzC,CAAJ,CAFqC;AAGzC,cAAE,KAAF,GAHyC;AAIzC,mBAAO,CAAP,CAJyC;;;;gCA+EzC,OACA,aAAoB;AAEpB,gBAAI,QAAa,MAAM,MAAN,EAAb;gBACA,MAAa,MAAM,SAAN;gBACb,aAAa,MAAM,MAAN,IAAc,GAAd,CAJG;AAMpB,gBAAG,WAAH,EACA;AACC,sBAAM,MAAN,GADD;AAEC,sBAAM,KAAN,GAFD;aADA;AAMA,gBAAG,UAAH,EACA;AACC,sBAAM,IAAN,GADD;aADA;AAKA,gBAAG,QAAM,GAAN,EACH;AACC,sBAAM,OAAN,CAAc,KAAd,EADD;aADA;AAKA,gBAAG,UAAH,EACA;AACC,sBAAM,YAAN,GADD;aADA;;;;WA5HF;EAAmC,iBAAA,OAAA;;AAAnC,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;AD0EA,QAAQ,OAAR,GAAkB,KAAlB","file":"System/Timers/Timer.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst ObservableBase_1 = require(\"./../Observable/ObservableBase\");\nclass Timer extends ObservableBase_1.default {\n constructor(_interval, _maxCount = Infinity, _initialDelay = _interval) {\n super();\n this._interval = _interval;\n this._maxCount = _maxCount;\n this._initialDelay = _initialDelay;\n this._count = 0;\n if (_interval === null || _interval === void (0))\n throw \"'interval' must be a valid number.\";\n if (_interval < 0)\n throw \"'interval' cannot be negative.\";\n }\n static startNew(millisecondInterval, maxCount = Infinity, initialDelay = millisecondInterval) {\n var t = new Timer(millisecondInterval, maxCount, millisecondInterval);\n t.start();\n return t;\n }\n get isRunning() {\n return !!this._cancel;\n }\n get count() {\n return this._count;\n }\n start() {\n var _ = this;\n if (!_._cancel && _._count < _._maxCount) {\n if (_._count || _._initialDelay == _._interval) {\n let i = setInterval(Timer._onTick, _._interval, _);\n _._cancel = () => {\n clearInterval(i);\n };\n }\n else {\n let i = setTimeout(Timer._onTick, _._initialDelay, _, true);\n _._cancel = () => {\n clearTimeout(i);\n };\n }\n }\n }\n stop() {\n this.cancel();\n }\n reset() {\n this.stop();\n this._count = 0;\n }\n cancel() {\n if (this._cancel) {\n this._cancel();\n this._cancel = null;\n return true;\n }\n return false;\n }\n dispose() {\n this.cancel();\n super.dispose();\n }\n static _onTick(timer, reInitTimer) {\n var index = timer._count++, max = timer._maxCount, isComplete = timer._count >= max;\n if (reInitTimer) {\n timer.cancel();\n timer.start();\n }\n if (isComplete) {\n timer.stop();\n }\n if (index < max) {\n timer._onNext(index);\n }\n if (isComplete) {\n timer._onCompleted();\n }\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Timer;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\nimport ObservableBase from \"./../Observable/ObservableBase\";\r\n\r\nexport default class Timer extends ObservableBase implements ITimer, ICancellable\r\n{\r\n\r\n\tprivate _cancel:()=>void;\r\n\tprivate _count:number = 0;\r\n\r\n\tconstructor(\r\n\t\tprivate _interval:number,\r\n\t\tprivate _maxCount:number = Infinity,\r\n\t\tprivate _initialDelay = _interval)\r\n\t{\r\n\t\tsuper();\r\n\r\n\t\tif(_interval===null || _interval=== void(0))\r\n\t\t\tthrow \"'interval' must be a valid number.\";\r\n\t\tif(_interval<0)\r\n\t\t\tthrow \"'interval' cannot be negative.\";\r\n\t}\r\n\r\n\tstatic startNew(\r\n\t\tmillisecondInterval:number,\r\n\t\tmaxCount:number = Infinity,\r\n\t\tinitialDelay:number = millisecondInterval):Timer\r\n\t{\r\n\t\tvar t = new Timer(millisecondInterval, maxCount, millisecondInterval);\r\n\t\tt.start();\r\n\t\treturn t;\r\n\t}\r\n\r\n\tget isRunning():boolean\r\n\t{\r\n\t\treturn !!this._cancel;\r\n\t}\r\n\r\n\tget count():number\r\n\t{\r\n\t\treturn this._count;\r\n\t}\r\n\r\n\tstart():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(!_._cancel && _._count<_._maxCount)\r\n\t\t{\r\n\t\t\t// For now, if it's isn't the start...\r\n\t\t\tif(_._count || _._initialDelay==_._interval)\r\n\t\t\t{\r\n\t\t\t\tlet i = setInterval(\r\n\t\t\t\t\tTimer._onTick,\r\n\t\t\t\t\t_._interval,\r\n\t\t\t\t\t_);\r\n\r\n\t\t\t\t_._cancel = ()=>\r\n\t\t\t\t{\r\n\t\t\t\t\tclearInterval(i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tlet i = setTimeout(\r\n\t\t\t\t\tTimer._onTick,\r\n\t\t\t\t\t_._initialDelay,\r\n\t\t\t\t\t_, true);\r\n\r\n\t\t\t\t_._cancel = ()=>\r\n\t\t\t\t{\r\n\t\t\t\t\tclearTimeout(i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tstop():void\r\n\t{\r\n\t\tthis.cancel();\r\n\t}\r\n\r\n\treset():void\r\n\t{\r\n\t\tthis.stop();\r\n\t\tthis._count = 0;\r\n\t}\r\n\r\n\tcancel():boolean {\r\n\t\tif(this._cancel)\r\n\t\t{\r\n\t\t\tthis._cancel();\r\n\t\t\tthis._cancel = null;\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tdispose():void {\r\n\t\tthis.cancel();\r\n\t\tsuper.dispose();\r\n\t}\r\n\r\n\t// We use a private static here so there's no need to create a handler every time.\r\n\tprivate static _onTick(\r\n\t\ttimer:Timer,\r\n\t\treInitTimer?:boolean):void\r\n\t{\r\n\t\tvar index = timer._count++,\r\n\t\t max = timer._maxCount,\r\n\t\t isComplete = timer._count>=max;\r\n\r\n\t\tif(reInitTimer)\r\n\t\t{\r\n\t\t\ttimer.cancel();\r\n\t\t\ttimer.start();\r\n\t\t}\r\n\r\n\t\tif(isComplete)\r\n\t\t{\r\n\t\t\ttimer.stop();\r\n\t\t}\r\n\r\n\t\tif(index {\n clearInterval(i);\n };\n }\n else {\n let i = setTimeout(Timer._onTick, _._initialDelay, _, true);\n _._cancel = () => {\n clearTimeout(i);\n };\n }\n }\n }\n stop() {\n this.cancel();\n }\n reset() {\n this.stop();\n this._count = 0;\n }\n cancel() {\n if (this._cancel) {\n this._cancel();\n this._cancel = null;\n return true;\n }\n return false;\n }\n dispose() {\n this.cancel();\n super.dispose();\n }\n static _onTick(timer, reInitTimer) {\n var index = timer._count++, max = timer._maxCount, isComplete = timer._count >= max;\n if (reInitTimer) {\n timer.cancel();\n timer.start();\n }\n if (isComplete) {\n timer.stop();\n }\n if (index < max) {\n timer._onNext(index);\n }\n if (isComplete) {\n timer._onCompleted();\n }\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Timer;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {ICancellable} from \"../Tasks/ICancellable\";\r\nimport {ObservableBase} from \"../Observable/ObservableBase\";\r\nimport {ITimer} from \"./ITimer\";\r\n\r\nexport default class Timer extends ObservableBase implements ITimer, ICancellable\r\n{\r\n\r\n\tprivate _cancel:()=>void;\r\n\tprivate _count:number = 0;\r\n\r\n\tconstructor(\r\n\t\tprivate _interval:number,\r\n\t\tprivate _maxCount:number = Infinity,\r\n\t\tprivate _initialDelay = _interval)\r\n\t{\r\n\t\tsuper();\r\n\r\n\t\tif(_interval===null || _interval=== void(0))\r\n\t\t\tthrow \"'interval' must be a valid number.\";\r\n\t\tif(_interval<0)\r\n\t\t\tthrow \"'interval' cannot be negative.\";\r\n\t}\r\n\r\n\tstatic startNew(\r\n\t\tmillisecondInterval:number,\r\n\t\tmaxCount:number = Infinity,\r\n\t\tinitialDelay:number = millisecondInterval):Timer\r\n\t{\r\n\t\tvar t = new Timer(millisecondInterval, maxCount, millisecondInterval);\r\n\t\tt.start();\r\n\t\treturn t;\r\n\t}\r\n\r\n\tget isRunning():boolean\r\n\t{\r\n\t\treturn !!this._cancel;\r\n\t}\r\n\r\n\tget count():number\r\n\t{\r\n\t\treturn this._count;\r\n\t}\r\n\r\n\tstart():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(!_._cancel && _._count<_._maxCount)\r\n\t\t{\r\n\t\t\t// For now, if it's isn't the start...\r\n\t\t\tif(_._count || _._initialDelay==_._interval)\r\n\t\t\t{\r\n\t\t\t\tlet i = setInterval(\r\n\t\t\t\t\tTimer._onTick,\r\n\t\t\t\t\t_._interval,\r\n\t\t\t\t\t_);\r\n\r\n\t\t\t\t_._cancel = ()=>\r\n\t\t\t\t{\r\n\t\t\t\t\tclearInterval(i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tlet i = setTimeout(\r\n\t\t\t\t\tTimer._onTick,\r\n\t\t\t\t\t_._initialDelay,\r\n\t\t\t\t\t_, true);\r\n\r\n\t\t\t\t_._cancel = ()=>\r\n\t\t\t\t{\r\n\t\t\t\t\tclearTimeout(i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tstop():void\r\n\t{\r\n\t\tthis.cancel();\r\n\t}\r\n\r\n\treset():void\r\n\t{\r\n\t\tthis.stop();\r\n\t\tthis._count = 0;\r\n\t}\r\n\r\n\tcancel():boolean\r\n\t{\r\n\t\tif(this._cancel)\r\n\t\t{\r\n\t\t\tthis._cancel();\r\n\t\t\tthis._cancel = null;\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tdispose():void\r\n\t{\r\n\t\tthis.cancel();\r\n\t\tsuper.dispose();\r\n\t}\r\n\r\n\t// We use a private static here so there's no need to create a handler every time.\r\n\tprivate static _onTick(\r\n\t\ttimer:Timer,\r\n\t\treInitTimer?:boolean):void\r\n\t{\r\n\t\tvar index = timer._count++,\r\n\t\t max = timer._maxCount,\r\n\t\t isComplete = timer._count>=max;\r\n\r\n\t\tif(reInitTimer)\r\n\t\t{\r\n\t\t\ttimer.cancel();\r\n\t\t\ttimer.start();\r\n\t\t}\r\n\r\n\t\tif(isComplete)\r\n\t\t{\r\n\t\t\ttimer.stop();\r\n\t\t}\r\n\r\n\t\tif(index -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { Primitive } from "./Primitive"; +import { IArray } from "./Collections/Array/IArray"; export declare class TypeInfo { private target; type: string; diff --git a/dist/commonjs/System/Types.js b/dist/commonjs/System/Types.js index f737fa2b..4581ee46 100644 --- a/dist/commonjs/System/Types.js +++ b/dist/commonjs/System/Types.js @@ -2,7 +2,7 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; +"use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); diff --git a/dist/commonjs/System/Types.js.map b/dist/commonjs/System/Types.js.map index 671a67e7..5b34155d 100644 --- a/dist/commonjs/System/Types.js.map +++ b/dist/commonjs/System/Types.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Types.ts","System/Types.js"],"names":[],"mappings":"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","file":"System/Types.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n\r\nconst\r\n\tVOID0:any = void(0),\r\n\t_BOOLEAN:string = typeof true,\r\n\t_NUMBER:string = typeof 0,\r\n\t_STRING:string = typeof \"\",\r\n\t_OBJECT:string = typeof {},\r\n\t_UNDEFINED:string = typeof VOID0,\r\n\t_FUNCTION:string = typeof function() {},\r\n\tLENGTH:string = \"length\";\r\n\r\n// Only used for primitives.\r\nvar typeInfoRegistry:{[key:string]:TypeInfo} = {};\r\n\r\n/**\r\n * Exposes easy access to type information including inquiring about members.\r\n */\r\nexport class TypeInfo\r\n{\r\n\t// Not retained for primitives. Since they have no members.\r\n\tprivate target:any;\r\n\r\n\ttype:string;\r\n\r\n\tisBoolean:boolean;\r\n\tisNumber:boolean;\r\n\tisFinite:boolean;\r\n\tisValidNumber:boolean;\r\n\tisString:boolean;\r\n\tisTrueNaN:boolean;\r\n\tisObject:boolean;\r\n\tisFunction:boolean;\r\n\tisUndefined:boolean;\r\n\tisNull:boolean;\r\n\tisNullOrUndefined:boolean;\r\n\tisPrimitive:boolean;\r\n\r\n\tconstructor(target:any)\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.isBoolean = false;\r\n\t\t_.isNumber = false;\r\n\t\t_.isString = false;\r\n\t\t_.isTrueNaN = false;\r\n\t\t_.isObject = false;\r\n\t\t_.isFunction = false;\r\n\t\t_.isUndefined = false;\r\n\t\t_.isNull = false;\r\n\t\t_.isPrimitive = false;\r\n\r\n\t\tswitch(_.type = typeof target)\r\n\t\t{\r\n\t\t\tcase _BOOLEAN:\r\n\t\t\t\t_.isBoolean = true;\r\n\t\t\t\t_.isPrimitive = true;\r\n\t\t\t\tbreak;\r\n\t\t\tcase _NUMBER:\r\n\t\t\t\t_.isNumber = true;\r\n\t\t\t\t_.isTrueNaN = isNaN(target);\r\n\t\t\t\t_.isFinite = isFinite(target);\r\n\t\t\t\t_.isValidNumber = !_.isTrueNaN;\r\n\t\t\t\t_.isPrimitive = true;\r\n\t\t\t\tbreak;\r\n\t\t\tcase _STRING:\r\n\t\t\t\t_.isString = true;\r\n\t\t\t\t_.isPrimitive = true;\r\n\t\t\t\tbreak;\r\n\t\t\tcase _OBJECT:\r\n\t\t\t\t_.target = target;\r\n\t\t\t\tif(target===null)\r\n\t\t\t\t{\r\n\t\t\t\t\t_.isNull = true;\r\n\t\t\t\t\t_.isNullOrUndefined = true;\r\n\t\t\t\t\t_.isPrimitive = true;\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\t_.isObject = true;\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase _FUNCTION:\r\n\t\t\t\t_.target = target;\r\n\t\t\t\t_.isFunction = true;\r\n\t\t\t\tbreak;\r\n\t\t\tcase _UNDEFINED:\r\n\t\t\t\t_.isUndefined = true;\r\n\t\t\t\t_.isNullOrUndefined = true;\r\n\t\t\t\t_.isPrimitive = true;\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tthrow \"Fatal type failure. Unknown type: \" + _.type;\r\n\t\t}\r\n\r\n\t\tObject.freeze(_);\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a TypeInfo for any member or non-member,\r\n\t * where non-members are of type undefined.\r\n\t * @param name\r\n\t * @returns {TypeInfo}\r\n\t */\r\n\tmember(name:string):TypeInfo\r\n\t{\r\n\t\tvar t = this.target;\r\n\t\treturn TypeInfo.getFor(\r\n\t\t\tt && (name)in(t)\r\n\t\t\t\t? t[name]\r\n\t\t\t\t: undefined);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a TypeInfo for any target object.\r\n\t * If the target object is of a primitive type, it returns the TypeInfo instance assigned to that type.\r\n\t * @param target\r\n\t * @returns {TypeInfo}\r\n\t */\r\n\tstatic getFor(target:any):TypeInfo\r\n\t{\r\n\t\tvar type:string = typeof target;\r\n\t\tswitch(type)\r\n\t\t{\r\n\t\t\tcase _OBJECT:\r\n\t\t\tcase _FUNCTION:\r\n\t\t\t\treturn new TypeInfo(target);\r\n\t\t}\r\n\t\tvar info = typeInfoRegistry[type];\r\n\t\tif(!info) typeInfoRegistry[type] = info = new TypeInfo(target);\r\n\t\treturn info;\r\n\t}\r\n\r\n}\r\n\r\nexport module Type\r\n{\r\n\t/**\r\n\t * typeof true\r\n\t * @type {string}\r\n\t */\r\n\texport const BOOLEAN:string = _BOOLEAN;\r\n\r\n\t/**\r\n\t * typeof 0\r\n\t * @type {string}\r\n\t */\r\n\texport const NUMBER:string = _NUMBER;\r\n\r\n\t/**\r\n\t * typeof \"\"\r\n\t * @type {string}\r\n\t */\r\n\texport const STRING:string = _STRING;\r\n\r\n\t/**\r\n\t * typeof {}\r\n\t * @type {string}\r\n\t */\r\n\texport const OBJECT:string = _OBJECT;\r\n\r\n\r\n\t/**\r\n\t * typeof undefined\r\n\t * @type {string}\r\n\t */\r\n\texport const UNDEFINED:string = _UNDEFINED;\r\n\r\n\t/**\r\n\t * typeof function\r\n\t * @type {string}\r\n\t */\r\n\texport const FUNCTION:string = _FUNCTION;\r\n\r\n\t/**\r\n\t * Returns true if the value parameter is a boolean.\r\n\t * @param value\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isBoolean(value:any):value is boolean\r\n\t{\r\n\t\treturn typeof value===_BOOLEAN;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns true if the value parameter is a number.\r\n\t * @param value\r\n\t * @param allowNaN Default is true.\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isNumber(value:any, allowNaN?:boolean):value is number\r\n\t{\r\n\t\tif(allowNaN===VOID0) allowNaN = true;\r\n\t\treturn typeof value===_NUMBER && (allowNaN || !isNaN(value));\r\n\t}\r\n\r\n\t/**\r\n\t * Returns true if is a number and is NaN.\r\n\t * @param value\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isTrueNaN(value:any):value is number\r\n\t{\r\n\t\treturn typeof value===_NUMBER && isNaN(value);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns true if the value parameter is a string.\r\n\t * @param value\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isString(value:any):value is string\r\n\t{\r\n\t\treturn typeof value===_STRING;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns true if the value is a boolean, string, number, null, or undefined.\r\n\t * @param value\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isPrimitive(value:any):value is Primitive\r\n\t{\r\n\t\tvar t = typeof value;\r\n\t\tswitch(t)\r\n\t\t{\r\n\t\t\tcase _BOOLEAN:\r\n\t\t\tcase _STRING:\r\n\t\t\tcase _NUMBER:\r\n\t\t\tcase _UNDEFINED:\r\n\t\t\t\treturn true;\r\n\t\t\tcase _OBJECT:\r\n\t\t\t\treturn value===null;\r\n\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns true if the value parameter is a function.\r\n\t * @param value\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isFunction(value:any):value is Function\r\n\t{\r\n\t\treturn typeof value===_FUNCTION;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns true if the value parameter is an object.\r\n\t * @param value\r\n\t * @param allowNull If false (default) null is not considered an object.\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isObject(value:any, allowNull:boolean = false):boolean\r\n\t{\r\n\t\treturn typeof value===_OBJECT && (allowNull || value!==null) ;\r\n\t}\r\n\r\n\t/**\r\n\t * Guarantees a number value or NaN instead.\r\n\t * @param value\r\n\t * @returns {number}\r\n\t */\r\n\texport function numberOrNaN(value:any):number\r\n\t{\r\n\t\treturn isNaN(value) ? NaN : value;\r\n\t}\r\n\r\n\texport function of(target:any):TypeInfo\r\n\t{\r\n\t\treturn TypeInfo.getFor(target);\r\n\t}\r\n\r\n\texport function hasMember(value:any, property:string):boolean\r\n\t{\r\n\t\treturn value && !isPrimitive(value) && (property)in(value);\r\n\t}\r\n\r\n\texport function hasMemberOfType(instance:any, property:string, type:string):instance is T\r\n\t{\r\n\t\treturn hasMember(instance, property) && typeof(instance[property])===type;\r\n\t}\r\n\r\n\texport function isArrayLike(instance:any):instance is IArray\r\n\t{\r\n\t\t/*\r\n\t\t * NOTE:\r\n\t\t *\r\n\t\t * Functions:\r\n\t\t * Enumerating a function although it has a .length property will yield nothing or unexpected results.\r\n\t\t * Effectively, a function is not like an array.\r\n\t\t *\r\n\t\t * Strings:\r\n\t\t * Behave like arrays but don't have the same exact methods.\r\n\t\t */\r\n\t\treturn instance instanceof Array\r\n\t\t\t|| Type.isString(instance)\r\n\t\t\t|| !Type.isFunction(instance) && hasMember(instance, LENGTH);\r\n\t}\r\n}\r\n\r\nObject.freeze(Type);\r\n\r\nexport default Type;\r\n\r\n","/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n'use strict';\nconst VOID0 = void (0), _BOOLEAN = typeof true, _NUMBER = typeof 0, _STRING = typeof \"\", _OBJECT = typeof {}, _UNDEFINED = typeof VOID0, _FUNCTION = typeof function () { }, LENGTH = \"length\";\nvar typeInfoRegistry = {};\nclass TypeInfo {\n constructor(target) {\n var _ = this;\n _.isBoolean = false;\n _.isNumber = false;\n _.isString = false;\n _.isTrueNaN = false;\n _.isObject = false;\n _.isFunction = false;\n _.isUndefined = false;\n _.isNull = false;\n _.isPrimitive = false;\n switch (_.type = typeof target) {\n case _BOOLEAN:\n _.isBoolean = true;\n _.isPrimitive = true;\n break;\n case _NUMBER:\n _.isNumber = true;\n _.isTrueNaN = isNaN(target);\n _.isFinite = isFinite(target);\n _.isValidNumber = !_.isTrueNaN;\n _.isPrimitive = true;\n break;\n case _STRING:\n _.isString = true;\n _.isPrimitive = true;\n break;\n case _OBJECT:\n _.target = target;\n if (target === null) {\n _.isNull = true;\n _.isNullOrUndefined = true;\n _.isPrimitive = true;\n }\n else {\n _.isObject = true;\n }\n break;\n case _FUNCTION:\n _.target = target;\n _.isFunction = true;\n break;\n case _UNDEFINED:\n _.isUndefined = true;\n _.isNullOrUndefined = true;\n _.isPrimitive = true;\n break;\n default:\n throw \"Fatal type failure. Unknown type: \" + _.type;\n }\n Object.freeze(_);\n }\n member(name) {\n var t = this.target;\n return TypeInfo.getFor(t && (name) in (t)\n ? t[name]\n : undefined);\n }\n static getFor(target) {\n var type = typeof target;\n switch (type) {\n case _OBJECT:\n case _FUNCTION:\n return new TypeInfo(target);\n }\n var info = typeInfoRegistry[type];\n if (!info)\n typeInfoRegistry[type] = info = new TypeInfo(target);\n return info;\n }\n}\nexports.TypeInfo = TypeInfo;\nvar Type;\n(function (Type) {\n Type.BOOLEAN = _BOOLEAN;\n Type.NUMBER = _NUMBER;\n Type.STRING = _STRING;\n Type.OBJECT = _OBJECT;\n Type.UNDEFINED = _UNDEFINED;\n Type.FUNCTION = _FUNCTION;\n function isBoolean(value) {\n return typeof value === _BOOLEAN;\n }\n Type.isBoolean = isBoolean;\n function isNumber(value, allowNaN) {\n if (allowNaN === VOID0)\n allowNaN = true;\n return typeof value === _NUMBER && (allowNaN || !isNaN(value));\n }\n Type.isNumber = isNumber;\n function isTrueNaN(value) {\n return typeof value === _NUMBER && isNaN(value);\n }\n Type.isTrueNaN = isTrueNaN;\n function isString(value) {\n return typeof value === _STRING;\n }\n Type.isString = isString;\n function isPrimitive(value) {\n var t = typeof value;\n switch (t) {\n case _BOOLEAN:\n case _STRING:\n case _NUMBER:\n case _UNDEFINED:\n return true;\n case _OBJECT:\n return value === null;\n }\n return false;\n }\n Type.isPrimitive = isPrimitive;\n function isFunction(value) {\n return typeof value === _FUNCTION;\n }\n Type.isFunction = isFunction;\n function isObject(value, allowNull = false) {\n return typeof value === _OBJECT && (allowNull || value !== null);\n }\n Type.isObject = isObject;\n function numberOrNaN(value) {\n return isNaN(value) ? NaN : value;\n }\n Type.numberOrNaN = numberOrNaN;\n function of(target) {\n return TypeInfo.getFor(target);\n }\n Type.of = of;\n function hasMember(value, property) {\n return value && !isPrimitive(value) && (property) in (value);\n }\n Type.hasMember = hasMember;\n function hasMemberOfType(instance, property, type) {\n return hasMember(instance, property) && typeof (instance[property]) === type;\n }\n Type.hasMemberOfType = hasMemberOfType;\n function isArrayLike(instance) {\n return instance instanceof Array\n || Type.isString(instance)\n || !Type.isFunction(instance) && hasMember(instance, LENGTH);\n }\n Type.isArrayLike = isArrayLike;\n})(Type = exports.Type || (exports.Type = {}));\nObject.freeze(Type);\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Type;\n"]} \ No newline at end of file +{"version":3,"sources":["System/Types.js","System/Types.ts"],"names":[],"mappings":"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","file":"System/Types.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst VOID0 = void (0), _BOOLEAN = typeof true, _NUMBER = typeof 0, _STRING = typeof \"\", _OBJECT = typeof {}, _UNDEFINED = typeof VOID0, _FUNCTION = typeof function () { }, LENGTH = \"length\";\nvar typeInfoRegistry = {};\nclass TypeInfo {\n constructor(target) {\n var _ = this;\n _.isBoolean = false;\n _.isNumber = false;\n _.isString = false;\n _.isTrueNaN = false;\n _.isObject = false;\n _.isFunction = false;\n _.isUndefined = false;\n _.isNull = false;\n _.isPrimitive = false;\n switch (_.type = typeof target) {\n case _BOOLEAN:\n _.isBoolean = true;\n _.isPrimitive = true;\n break;\n case _NUMBER:\n _.isNumber = true;\n _.isTrueNaN = isNaN(target);\n _.isFinite = isFinite(target);\n _.isValidNumber = !_.isTrueNaN;\n _.isPrimitive = true;\n break;\n case _STRING:\n _.isString = true;\n _.isPrimitive = true;\n break;\n case _OBJECT:\n _.target = target;\n if (target === null) {\n _.isNull = true;\n _.isNullOrUndefined = true;\n _.isPrimitive = true;\n }\n else {\n _.isObject = true;\n }\n break;\n case _FUNCTION:\n _.target = target;\n _.isFunction = true;\n break;\n case _UNDEFINED:\n _.isUndefined = true;\n _.isNullOrUndefined = true;\n _.isPrimitive = true;\n break;\n default:\n throw \"Fatal type failure. Unknown type: \" + _.type;\n }\n Object.freeze(_);\n }\n member(name) {\n var t = this.target;\n return TypeInfo.getFor(t && (name) in (t)\n ? t[name]\n : undefined);\n }\n static getFor(target) {\n var type = typeof target;\n switch (type) {\n case _OBJECT:\n case _FUNCTION:\n return new TypeInfo(target);\n }\n var info = typeInfoRegistry[type];\n if (!info)\n typeInfoRegistry[type] = info = new TypeInfo(target);\n return info;\n }\n}\nexports.TypeInfo = TypeInfo;\nvar Type;\n(function (Type) {\n Type.BOOLEAN = _BOOLEAN;\n Type.NUMBER = _NUMBER;\n Type.STRING = _STRING;\n Type.OBJECT = _OBJECT;\n Type.UNDEFINED = _UNDEFINED;\n Type.FUNCTION = _FUNCTION;\n function isBoolean(value) {\n return typeof value === _BOOLEAN;\n }\n Type.isBoolean = isBoolean;\n function isNumber(value, allowNaN) {\n if (allowNaN === VOID0)\n allowNaN = true;\n return typeof value === _NUMBER && (allowNaN || !isNaN(value));\n }\n Type.isNumber = isNumber;\n function isTrueNaN(value) {\n return typeof value === _NUMBER && isNaN(value);\n }\n Type.isTrueNaN = isTrueNaN;\n function isString(value) {\n return typeof value === _STRING;\n }\n Type.isString = isString;\n function isPrimitive(value) {\n var t = typeof value;\n switch (t) {\n case _BOOLEAN:\n case _STRING:\n case _NUMBER:\n case _UNDEFINED:\n return true;\n case _OBJECT:\n return value === null;\n }\n return false;\n }\n Type.isPrimitive = isPrimitive;\n function isFunction(value) {\n return typeof value === _FUNCTION;\n }\n Type.isFunction = isFunction;\n function isObject(value, allowNull = false) {\n return typeof value === _OBJECT && (allowNull || value !== null);\n }\n Type.isObject = isObject;\n function numberOrNaN(value) {\n return isNaN(value) ? NaN : value;\n }\n Type.numberOrNaN = numberOrNaN;\n function of(target) {\n return TypeInfo.getFor(target);\n }\n Type.of = of;\n function hasMember(value, property) {\n return value && !isPrimitive(value) && (property) in (value);\n }\n Type.hasMember = hasMember;\n function hasMemberOfType(instance, property, type) {\n return hasMember(instance, property) && typeof (instance[property]) === type;\n }\n Type.hasMemberOfType = hasMemberOfType;\n function isArrayLike(instance) {\n return instance instanceof Array\n || Type.isString(instance)\n || !Type.isFunction(instance) && hasMember(instance, LENGTH);\n }\n Type.isArrayLike = isArrayLike;\n})(Type = exports.Type || (exports.Type = {}));\nObject.freeze(Type);\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Type;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {Primitive} from \"./Primitive\";\r\nimport {IArray} from \"./Collections/Array/IArray\"; // For compatibility with (let, const, function, class);\r\n\r\nconst\r\n\tVOID0:any = void(0),\r\n\t_BOOLEAN:string = typeof true,\r\n\t_NUMBER:string = typeof 0,\r\n\t_STRING:string = typeof \"\",\r\n\t_OBJECT:string = typeof {},\r\n\t_UNDEFINED:string = typeof VOID0,\r\n\t_FUNCTION:string = typeof function() {},\r\n\tLENGTH:string = \"length\";\r\n\r\n// Only used for primitives.\r\nvar typeInfoRegistry:{[key:string]:TypeInfo} = {};\r\n\r\n/**\r\n * Exposes easy access to type information including inquiring about members.\r\n */\r\nexport class TypeInfo\r\n{\r\n\t// Not retained for primitives. Since they have no members.\r\n\tprivate target:any;\r\n\r\n\ttype:string;\r\n\r\n\tisBoolean:boolean;\r\n\tisNumber:boolean;\r\n\tisFinite:boolean;\r\n\tisValidNumber:boolean;\r\n\tisString:boolean;\r\n\tisTrueNaN:boolean;\r\n\tisObject:boolean;\r\n\tisFunction:boolean;\r\n\tisUndefined:boolean;\r\n\tisNull:boolean;\r\n\tisNullOrUndefined:boolean;\r\n\tisPrimitive:boolean;\r\n\r\n\tconstructor(target:any)\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.isBoolean = false;\r\n\t\t_.isNumber = false;\r\n\t\t_.isString = false;\r\n\t\t_.isTrueNaN = false;\r\n\t\t_.isObject = false;\r\n\t\t_.isFunction = false;\r\n\t\t_.isUndefined = false;\r\n\t\t_.isNull = false;\r\n\t\t_.isPrimitive = false;\r\n\r\n\t\tswitch(_.type = typeof target)\r\n\t\t{\r\n\t\t\tcase _BOOLEAN:\r\n\t\t\t\t_.isBoolean = true;\r\n\t\t\t\t_.isPrimitive = true;\r\n\t\t\t\tbreak;\r\n\t\t\tcase _NUMBER:\r\n\t\t\t\t_.isNumber = true;\r\n\t\t\t\t_.isTrueNaN = isNaN(target);\r\n\t\t\t\t_.isFinite = isFinite(target);\r\n\t\t\t\t_.isValidNumber = !_.isTrueNaN;\r\n\t\t\t\t_.isPrimitive = true;\r\n\t\t\t\tbreak;\r\n\t\t\tcase _STRING:\r\n\t\t\t\t_.isString = true;\r\n\t\t\t\t_.isPrimitive = true;\r\n\t\t\t\tbreak;\r\n\t\t\tcase _OBJECT:\r\n\t\t\t\t_.target = target;\r\n\t\t\t\tif(target===null)\r\n\t\t\t\t{\r\n\t\t\t\t\t_.isNull = true;\r\n\t\t\t\t\t_.isNullOrUndefined = true;\r\n\t\t\t\t\t_.isPrimitive = true;\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\t_.isObject = true;\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase _FUNCTION:\r\n\t\t\t\t_.target = target;\r\n\t\t\t\t_.isFunction = true;\r\n\t\t\t\tbreak;\r\n\t\t\tcase _UNDEFINED:\r\n\t\t\t\t_.isUndefined = true;\r\n\t\t\t\t_.isNullOrUndefined = true;\r\n\t\t\t\t_.isPrimitive = true;\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tthrow \"Fatal type failure. Unknown type: \" + _.type;\r\n\t\t}\r\n\r\n\t\tObject.freeze(_);\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a TypeInfo for any member or non-member,\r\n\t * where non-members are of type undefined.\r\n\t * @param name\r\n\t * @returns {TypeInfo}\r\n\t */\r\n\tmember(name:string):TypeInfo\r\n\t{\r\n\t\tvar t = this.target;\r\n\t\treturn TypeInfo.getFor(\r\n\t\t\tt && (name) in (t)\r\n\t\t\t\t? t[name]\r\n\t\t\t\t: undefined);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a TypeInfo for any target object.\r\n\t * If the target object is of a primitive type, it returns the TypeInfo instance assigned to that type.\r\n\t * @param target\r\n\t * @returns {TypeInfo}\r\n\t */\r\n\tstatic getFor(target:any):TypeInfo\r\n\t{\r\n\t\tvar type:string = typeof target;\r\n\t\tswitch(type)\r\n\t\t{\r\n\t\t\tcase _OBJECT:\r\n\t\t\tcase _FUNCTION:\r\n\t\t\t\treturn new TypeInfo(target);\r\n\t\t}\r\n\t\tvar info = typeInfoRegistry[type];\r\n\t\tif(!info) typeInfoRegistry[type] = info = new TypeInfo(target);\r\n\t\treturn info;\r\n\t}\r\n\r\n}\r\n\r\nexport module Type\r\n{\r\n\t/**\r\n\t * typeof true\r\n\t * @type {string}\r\n\t */\r\n\texport const BOOLEAN:string = _BOOLEAN;\r\n\r\n\t/**\r\n\t * typeof 0\r\n\t * @type {string}\r\n\t */\r\n\texport const NUMBER:string = _NUMBER;\r\n\r\n\t/**\r\n\t * typeof \"\"\r\n\t * @type {string}\r\n\t */\r\n\texport const STRING:string = _STRING;\r\n\r\n\t/**\r\n\t * typeof {}\r\n\t * @type {string}\r\n\t */\r\n\texport const OBJECT:string = _OBJECT;\r\n\r\n\r\n\t/**\r\n\t * typeof undefined\r\n\t * @type {string}\r\n\t */\r\n\texport const UNDEFINED:string = _UNDEFINED;\r\n\r\n\t/**\r\n\t * typeof function\r\n\t * @type {string}\r\n\t */\r\n\texport const FUNCTION:string = _FUNCTION;\r\n\r\n\t/**\r\n\t * Returns true if the value parameter is a boolean.\r\n\t * @param value\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isBoolean(value:any):value is boolean\r\n\t{\r\n\t\treturn typeof value===_BOOLEAN;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns true if the value parameter is a number.\r\n\t * @param value\r\n\t * @param allowNaN Default is true.\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isNumber(value:any, allowNaN?:boolean):value is number\r\n\t{\r\n\t\tif(allowNaN===VOID0) allowNaN = true;\r\n\t\treturn typeof value===_NUMBER && (allowNaN || !isNaN(value));\r\n\t}\r\n\r\n\t/**\r\n\t * Returns true if is a number and is NaN.\r\n\t * @param value\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isTrueNaN(value:any):value is number\r\n\t{\r\n\t\treturn typeof value===_NUMBER && isNaN(value);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns true if the value parameter is a string.\r\n\t * @param value\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isString(value:any):value is string\r\n\t{\r\n\t\treturn typeof value===_STRING;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns true if the value is a boolean, string, number, null, or undefined.\r\n\t * @param value\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isPrimitive(value:any):value is Primitive\r\n\t{\r\n\t\tvar t = typeof value;\r\n\t\tswitch(t)\r\n\t\t{\r\n\t\t\tcase _BOOLEAN:\r\n\t\t\tcase _STRING:\r\n\t\t\tcase _NUMBER:\r\n\t\t\tcase _UNDEFINED:\r\n\t\t\t\treturn true;\r\n\t\t\tcase _OBJECT:\r\n\t\t\t\treturn value===null;\r\n\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns true if the value parameter is a function.\r\n\t * @param value\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isFunction(value:any):value is Function\r\n\t{\r\n\t\treturn typeof value===_FUNCTION;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns true if the value parameter is an object.\r\n\t * @param value\r\n\t * @param allowNull If false (default) null is not considered an object.\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isObject(value:any, allowNull:boolean = false):boolean\r\n\t{\r\n\t\treturn typeof value===_OBJECT && (allowNull || value!==null);\r\n\t}\r\n\r\n\t/**\r\n\t * Guarantees a number value or NaN instead.\r\n\t * @param value\r\n\t * @returns {number}\r\n\t */\r\n\texport function numberOrNaN(value:any):number\r\n\t{\r\n\t\treturn isNaN(value) ? NaN : value;\r\n\t}\r\n\r\n\texport function of(target:any):TypeInfo\r\n\t{\r\n\t\treturn TypeInfo.getFor(target);\r\n\t}\r\n\r\n\texport function hasMember(value:any, property:string):boolean\r\n\t{\r\n\t\treturn value && !isPrimitive(value) && (property) in (value);\r\n\t}\r\n\r\n\texport function hasMemberOfType(instance:any, property:string, type:string):instance is T\r\n\t{\r\n\t\treturn hasMember(instance, property) && typeof(instance[property])===type;\r\n\t}\r\n\r\n\texport function isArrayLike(instance:any):instance is IArray\r\n\t{\r\n\t\t/*\r\n\t\t * NOTE:\r\n\t\t *\r\n\t\t * Functions:\r\n\t\t * Enumerating a function although it has a .length property will yield nothing or unexpected results.\r\n\t\t * Effectively, a function is not like an array.\r\n\t\t *\r\n\t\t * Strings:\r\n\t\t * Behave like arrays but don't have the same exact methods.\r\n\t\t */\r\n\t\treturn instance instanceof Array\r\n\t\t\t|| Type.isString(instance)\r\n\t\t\t|| !Type.isFunction(instance) && hasMember(instance, LENGTH);\r\n\t}\r\n}\r\n\r\nObject.freeze(Type);\r\n\r\nexport default Type;\r\n\r\n"]} \ No newline at end of file diff --git a/dist/commonjs/System/Uri/HostNameType.d.ts b/dist/commonjs/System/Uri/HostNameType.d.ts index b4e74073..57b342ec 100644 --- a/dist/commonjs/System/Uri/HostNameType.d.ts +++ b/dist/commonjs/System/Uri/HostNameType.d.ts @@ -3,7 +3,7 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based on: https://msdn.microsoft.com/en-us/library/system.UriHostNameType%28v=vs.110%29.aspx */ -declare enum UriHostNameType { +export declare enum UriHostNameType { Basic = 0, DNS = 1, IPv4 = 2, diff --git a/dist/commonjs/System/Uri/HostNameType.js b/dist/commonjs/System/Uri/HostNameType.js index 04e40563..ef5fdd95 100644 --- a/dist/commonjs/System/Uri/HostNameType.js +++ b/dist/commonjs/System/Uri/HostNameType.js @@ -5,14 +5,14 @@ */ "use strict"; -var UriHostNameType; (function (UriHostNameType) { UriHostNameType[UriHostNameType["Basic"] = 0] = "Basic"; UriHostNameType[UriHostNameType["DNS"] = 1] = "DNS"; UriHostNameType[UriHostNameType["IPv4"] = 2] = "IPv4"; UriHostNameType[UriHostNameType["IPv6"] = 3] = "IPv6"; UriHostNameType[UriHostNameType["Unknown"] = 4] = "Unknown"; -})(UriHostNameType || (UriHostNameType = {})); +})(exports.UriHostNameType || (exports.UriHostNameType = {})); +var UriHostNameType = exports.UriHostNameType; Object.freeze(UriHostNameType); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = UriHostNameType; diff --git a/dist/commonjs/System/Uri/HostNameType.js.map b/dist/commonjs/System/Uri/HostNameType.js.map index 6c9cb8bd..2cad4ad7 100644 --- a/dist/commonjs/System/Uri/HostNameType.js.map +++ b/dist/commonjs/System/Uri/HostNameType.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Uri/HostNameType.js","System/Uri/HostNameType.ts"],"names":[],"mappings":";;;;;AAKA;;ACEA,IAAK,eAAL;AAAA,CAAA,UAAK,eAAL,EAAoB;AAInB,oBAAA,gBAAA,OAAA,IAAA,CAAA,CAAA,GAAA,OAAA,CAJmB;AASnB,oBAAA,gBAAA,KAAA,IAAA,CAAA,CAAA,GAAA,KAAA,CATmB;AAcnB,oBAAA,gBAAA,MAAA,IAAA,CAAA,CAAA,GAAA,MAAA,CAdmB;AAmBnB,oBAAA,gBAAA,MAAA,IAAA,CAAA,CAAA,GAAA,MAAA,CAnBmB;AAwBnB,oBAAA,gBAAA,SAAA,IAAA,CAAA,CAAA,GAAA,SAAA,CAxBmB;CAApB,CAAA,CAAK,oBAAA,kBAAe,EAAf,CAAA,CAAL;AA2BA,OAAO,MAAP,CAAc,eAAd;AAEA,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADpBA,QAAQ,OAAR,GCoBe,eDpBf","file":"System/Uri/HostNameType.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based on: https://msdn.microsoft.com/en-us/library/system.UriHostNameType%28v=vs.110%29.aspx\n */\n\"use strict\";\nvar UriHostNameType;\n(function (UriHostNameType) {\n UriHostNameType[UriHostNameType[\"Basic\"] = 0] = \"Basic\";\n UriHostNameType[UriHostNameType[\"DNS\"] = 1] = \"DNS\";\n UriHostNameType[UriHostNameType[\"IPv4\"] = 2] = \"IPv4\";\n UriHostNameType[UriHostNameType[\"IPv6\"] = 3] = \"IPv6\";\n UriHostNameType[UriHostNameType[\"Unknown\"] = 4] = \"Unknown\";\n})(UriHostNameType || (UriHostNameType = {}));\nObject.freeze(UriHostNameType);\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = UriHostNameType;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based on: https://msdn.microsoft.com/en-us/library/system.UriHostNameType%28v=vs.110%29.aspx\r\n */\r\n\r\n\r\nenum UriHostNameType {\r\n\t/**\r\n\t * The host is set, but the type cannot be determined.\r\n\t */\r\n\tBasic,\r\n\r\n\t/**\r\n\t * The host name is a domain name system (DNS) style host name.\r\n\t */\r\n\tDNS,\r\n\r\n\t/**\r\n\t * The host name is an Internet Protocol (IP) version 4 host address.\r\n\t */\r\n\tIPv4,\r\n\r\n\t/**\r\n\t * The host name is an Internet Protocol (IP) version 6 host address.\r\n\t */\r\n\tIPv6,\r\n\r\n\t/**\r\n\t * The type of the host name is not supplied.\r\n\t */\r\n\tUnknown\r\n}\r\n\r\nObject.freeze(UriHostNameType);\r\n\r\nexport default UriHostNameType;\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Uri/HostNameType.js","System/Uri/HostNameType.ts"],"names":[],"mappings":";;;;;AAKA;;ACEA,CAAA,UAAY,eAAZ,EAA2B;AAI1B,oBAAA,gBAAA,OAAA,IAAA,CAAA,CAAA,GAAA,OAAA,CAJ0B;AAS1B,oBAAA,gBAAA,KAAA,IAAA,CAAA,CAAA,GAAA,KAAA,CAT0B;AAc1B,oBAAA,gBAAA,MAAA,IAAA,CAAA,CAAA,GAAA,MAAA,CAd0B;AAmB1B,oBAAA,gBAAA,MAAA,IAAA,CAAA,CAAA,GAAA,MAAA,CAnB0B;AAwB1B,oBAAA,gBAAA,SAAA,IAAA,CAAA,CAAA,GAAA,SAAA,CAxB0B;CAA3B,CAAA,CAAY,QAAA,eAAA,KAAA,QAAA,eAAA,GAAe,EAAf,CAAA,CAAZ;AAAA,IAAY,kBAAA,QAAA,eAAA;AA2BZ,OAAO,MAAP,CAAc,eAAd;AAEA,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADpBA,QAAQ,OAAR,GCoBe,eDpBf","file":"System/Uri/HostNameType.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based on: https://msdn.microsoft.com/en-us/library/system.UriHostNameType%28v=vs.110%29.aspx\n */\n\"use strict\";\n(function (UriHostNameType) {\n UriHostNameType[UriHostNameType[\"Basic\"] = 0] = \"Basic\";\n UriHostNameType[UriHostNameType[\"DNS\"] = 1] = \"DNS\";\n UriHostNameType[UriHostNameType[\"IPv4\"] = 2] = \"IPv4\";\n UriHostNameType[UriHostNameType[\"IPv6\"] = 3] = \"IPv6\";\n UriHostNameType[UriHostNameType[\"Unknown\"] = 4] = \"Unknown\";\n})(exports.UriHostNameType || (exports.UriHostNameType = {}));\nvar UriHostNameType = exports.UriHostNameType;\nObject.freeze(UriHostNameType);\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = UriHostNameType;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based on: https://msdn.microsoft.com/en-us/library/system.UriHostNameType%28v=vs.110%29.aspx\r\n */\r\n\r\n\r\nexport enum UriHostNameType {\r\n\t/**\r\n\t * The host is set, but the type cannot be determined.\r\n\t */\r\n\tBasic,\r\n\r\n\t/**\r\n\t * The host name is a domain name system (DNS) style host name.\r\n\t */\r\n\tDNS,\r\n\r\n\t/**\r\n\t * The host name is an Internet Protocol (IP) version 4 host address.\r\n\t */\r\n\tIPv4,\r\n\r\n\t/**\r\n\t * The host name is an Internet Protocol (IP) version 6 host address.\r\n\t */\r\n\tIPv6,\r\n\r\n\t/**\r\n\t * The type of the host name is not supplied.\r\n\t */\r\n\tUnknown\r\n}\r\n\r\nObject.freeze(UriHostNameType);\r\n\r\nexport default UriHostNameType;\r\n"]} \ No newline at end of file diff --git a/dist/commonjs/System/Uri/QueryBuilder.d.ts b/dist/commonjs/System/Uri/QueryBuilder.d.ts index 891db685..42637877 100644 --- a/dist/commonjs/System/Uri/QueryBuilder.d.ts +++ b/dist/commonjs/System/Uri/QueryBuilder.d.ts @@ -1,17 +1,16 @@ -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import OrderedStringKeyDictionary from "../Collections/Dictionaries/OrderedStringKeyDictionary"; -export default class QueryBuilder extends OrderedStringKeyDictionary { - constructor(query: QueryParamsConvertible, decodeValues?: boolean); - static init(query: QueryParamsConvertible, decodeValues?: boolean): QueryBuilder; - importQuery(query: QueryParamsConvertible, decodeValues?: boolean): QueryBuilder; +import { OrderedStringKeyDictionary } from "../Collections/Dictionaries/OrderedStringKeyDictionary"; +import * as UriComponent from "./UriComponent"; +import * as QueryParam from "./QueryParam"; +export declare class QueryBuilder extends OrderedStringKeyDictionary { + constructor(query: QueryParam.Convertible, decodeValues?: boolean); + static init(query: QueryParam.Convertible, decodeValues?: boolean): QueryBuilder; + importQuery(query: QueryParam.Convertible, decodeValues?: boolean): QueryBuilder; importFromString(values: string, deserialize?: boolean, decodeValues?: boolean): QueryBuilder; encode(prefixIfNotEmpty?: boolean): string; toString(): string; } +export default QueryBuilder; diff --git a/dist/commonjs/System/Uri/QueryBuilder.js b/dist/commonjs/System/Uri/QueryBuilder.js index 4359f3ad..f763dd0b 100644 --- a/dist/commonjs/System/Uri/QueryBuilder.js +++ b/dist/commonjs/System/Uri/QueryBuilder.js @@ -2,7 +2,7 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; +"use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); @@ -13,9 +13,9 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var Types_1 = require("../Types"); -var QueryParams = require("./QueryParams"); var OrderedStringKeyDictionary_1 = require("../Collections/Dictionaries/OrderedStringKeyDictionary"); var Enumerator_1 = require("../Collections/Enumeration/Enumerator"); +var QueryParams = require("./QueryParams"); var QueryBuilder = function (_OrderedStringKeyDict) { _inherits(QueryBuilder, _OrderedStringKeyDict); @@ -36,7 +36,7 @@ var QueryBuilder = function (_OrderedStringKeyDict) { value: function importQuery(query) { var decodeValues = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1]; - if (Types_1.default.isString(query)) { + if (Types_1.Type.isString(query)) { this.importFromString(query, decodeValues); } else if (Enumerator_1.isEnumerableOrArrayLike(query)) { this.importEntries(query); @@ -80,8 +80,9 @@ var QueryBuilder = function (_OrderedStringKeyDict) { }]); return QueryBuilder; -}(OrderedStringKeyDictionary_1.default); +}(OrderedStringKeyDictionary_1.OrderedStringKeyDictionary); +exports.QueryBuilder = QueryBuilder; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = QueryBuilder; //# sourceMappingURL=QueryBuilder.js.map diff --git a/dist/commonjs/System/Uri/QueryBuilder.js.map b/dist/commonjs/System/Uri/QueryBuilder.js.map index 295b6c46..ec78f515 100644 --- a/dist/commonjs/System/Uri/QueryBuilder.js.map +++ b/dist/commonjs/System/Uri/QueryBuilder.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Uri/QueryBuilder.ts","System/Uri/QueryBuilder.js"],"names":[],"mappings":";;;;AASA;;;;;;;;;;AAEA,IAAA,UAAA,QAAiB,UAAjB,CAAA;AACA,IAAY,cAAW,QAAM,eAAN,CAAX;AACZ,IAAA,+BAAA,QAAuC,wDAAvC,CAAA;AACA,IAAA,eAAA,QAAsC,uCAAtC,CAAA;;IAQA;;;AAIC,aAJD,YAIC,CACC,KADD,EAE4B;YAA3B,qEAAuB,oBAAI;;8BAN7B,cAM6B;;2EAN7B,0BAM6B;;AAI3B,cAAK,WAAL,CAAiB,KAAjB,EAAuB,YAAvB,EAJ2B;;KAF5B;;iBAJD;;oCAsBE,OAC2B;gBAA3B,qEAAuB,oBAAI;;AAE3B,gBAAG,QAAA,OAAA,CAAK,QAAL,CAAc,KAAd,CAAH,EACA;AACC,qBAAK,gBAAL,CAA8B,KAA9B,EAAqC,YAArC,EADD;aADA,MAIK,IAAG,aAAA,uBAAA,CAAwB,KAAxB,CAAH,EACL;AACC,qBAAK,aAAL,CAAmB,KAAnB,EADD;aADK,MAKL;AACC,qBAAK,SAAL,CAAiC,KAAjC,EADD;aALK;AASL,mBAAO,IAAP,CAf2B;;;;yCA0B3B,QAE2B;gBAD3B,oEAAsB,oBACK;gBAA3B,qEAAuB,oBAAI;;AAE3B,gBAAI,IAAI,IAAJ,CAFuB;AAG3B,wBAAY,KAAZ,CAAkB,MAAlB,EACC,UAAC,GAAD,EAAM,KAAN,EAAW;AAEV,oBAAG,EAAE,WAAF,CAAc,GAAd,CAAH,EACA;AACC,wBAAI,OAAO,EAAE,QAAF,CAAW,GAAX,CAAP,CADL;AAEC,wBAAG,MAAM,OAAN,CAAc,IAAd,CAAH,EACC,KAAK,IAAL,CAAU,KAAV,EADD,KAGC,EAAE,QAAF,CAAW,GAAX,EAAgB,CAAoB,IAApB,EAA0B,KAA1B,CAAhB,EAHD;iBAHD,MASC,EAAE,QAAF,CAAW,GAAX,EAAgB,KAAhB,EATD;aAFD,EAaA,WAdD,EAeC,YAfD,EAH2B;AAoB3B,mBAAO,IAAP,CApB2B;;;;+BA4BrB,kBAAyB;AAE/B,mBAAO,YAAY,MAAZ,CAAmB,IAAnB,EAAyB,gBAAzB,CAAP,CAF+B;;;;mCAKxB;AAEP,mBAAO,KAAK,MAAL,EAAP,CAFO;;;;6BArEP,OAC2B;gBAA3B,qEAAuB,oBAAI;;AAE3B,mBAAO,IAAI,YAAJ,CAAiB,KAAjB,EAAwB,YAAxB,CAAP,CAF2B;;;;WAhB7B;EAC2B,6BAAA,OAAA;;AAD3B,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;AC8BA,QAAQ,OAAR,GAAkB,YAAlB","file":"System/Uri/QueryBuilder.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport Type from \"../Types\";\r\nimport * as QueryParams from \"./QueryParams\";\r\nimport OrderedStringKeyDictionary from \"../Collections/Dictionaries/OrderedStringKeyDictionary\";\r\nimport {isEnumerableOrArrayLike} from \"../Collections/Enumeration/Enumerator\";\r\n\r\n\r\n/**\r\n * Provides a means for parsing and building a set of parameters.\r\n *\r\n * In other languages, dictionaries are not reliable for retaining the order of stored values. So for certainty and flexibility we use an ordered dictionary as a base class.\r\n */\r\nexport default\r\nclass QueryBuilder extends OrderedStringKeyDictionary\r\n{\r\n\r\n\tconstructor(\r\n\t\tquery:QueryParamsConvertible,\r\n\t\tdecodeValues:boolean = true)\r\n\t{\r\n\t\tsuper();\r\n\r\n\t\tthis.importQuery(query,decodeValues);\r\n\t}\r\n\r\n\r\n\tstatic init(\r\n\t\tquery:QueryParamsConvertible,\r\n\t\tdecodeValues:boolean = true):QueryBuilder\r\n\t{\r\n\t\treturn new QueryBuilder(query, decodeValues);\r\n\t}\r\n\r\n\timportQuery(\r\n\t\tquery:QueryParamsConvertible,\r\n\t\tdecodeValues:boolean = true):QueryBuilder {\r\n\r\n\t\tif(Type.isString(query))\r\n\t\t{\r\n\t\t\tthis.importFromString(query, decodeValues);\r\n\t\t}\r\n\t\telse if(isEnumerableOrArrayLike(query))\r\n\t\t{\r\n\t\t\tthis.importEntries(query);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthis.importMap(query);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t * Property parses the components of an URI into their values or array of values.\r\n\t * @param values\r\n\t * @param deserialize\r\n\t * @param decodeValues\r\n\t * @returns {QueryBuilder}\r\n\t */\r\n\timportFromString(\r\n\t\tvalues:string,\r\n\t\tdeserialize:boolean = true,\r\n\t\tdecodeValues:boolean = true):QueryBuilder\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tQueryParams.parse(values,\r\n\t\t\t(key, value)=>\r\n\t\t\t{\r\n\t\t\t\tif(_.containsKey(key))\r\n\t\t\t\t{\r\n\t\t\t\t\tvar prev = _.getValue(key);\r\n\t\t\t\t\tif(Array.isArray(prev))\r\n\t\t\t\t\t\tprev.push(value);\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\t_.setValue(key, [prev, value]);\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t\t_.setValue(key, value);\r\n\t\t\t},\r\n\t\t\tdeserialize,\r\n\t\t\tdecodeValues);\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\r\n\r\n\t/**\r\n\t * Returns the encoded URI string\r\n\t */\r\n\tencode(prefixIfNotEmpty?:boolean):string\r\n\t{\r\n\t\treturn QueryParams.encode(this, prefixIfNotEmpty);\r\n\t}\r\n\r\n\ttoString():string\r\n\t{\r\n\t\treturn this.encode();\r\n\t}\r\n}\r\n","/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n'use strict';\nconst Types_1 = require(\"../Types\");\nconst QueryParams = require(\"./QueryParams\");\nconst OrderedStringKeyDictionary_1 = require(\"../Collections/Dictionaries/OrderedStringKeyDictionary\");\nconst Enumerator_1 = require(\"../Collections/Enumeration/Enumerator\");\nclass QueryBuilder extends OrderedStringKeyDictionary_1.default {\n constructor(query, decodeValues = true) {\n super();\n this.importQuery(query, decodeValues);\n }\n static init(query, decodeValues = true) {\n return new QueryBuilder(query, decodeValues);\n }\n importQuery(query, decodeValues = true) {\n if (Types_1.default.isString(query)) {\n this.importFromString(query, decodeValues);\n }\n else if (Enumerator_1.isEnumerableOrArrayLike(query)) {\n this.importEntries(query);\n }\n else {\n this.importMap(query);\n }\n return this;\n }\n importFromString(values, deserialize = true, decodeValues = true) {\n var _ = this;\n QueryParams.parse(values, (key, value) => {\n if (_.containsKey(key)) {\n var prev = _.getValue(key);\n if (Array.isArray(prev))\n prev.push(value);\n else\n _.setValue(key, [prev, value]);\n }\n else\n _.setValue(key, value);\n }, deserialize, decodeValues);\n return this;\n }\n encode(prefixIfNotEmpty) {\n return QueryParams.encode(this, prefixIfNotEmpty);\n }\n toString() {\n return this.encode();\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = QueryBuilder;\n"]} \ No newline at end of file +{"version":3,"sources":["System/Uri/QueryBuilder.js","System/Uri/QueryBuilder.ts"],"names":[],"mappings":";;;;AAIA;;;;;;;;;;ACEA,IAAA,UAAA,QAAmB,UAAnB,CAAA;AACA,IAAA,+BAAA,QAAyC,wDAAzC,CAAA;AACA,IAAA,eAAA,QAAsC,uCAAtC,CAAA;AAGA,IAAY,cAAW,QAAM,eAAN,CAAX;;IAQZ;;;AAGC,aAHD,YAGC,CACC,KADD,EAE4B;YAA3B,qEAAuB,oBAAI;;8BAL7B,cAK6B;;2EAL7B,0BAK6B;;AAI3B,cAAK,WAAL,CAAiB,KAAjB,EAAwB,YAAxB,EAJ2B;;KAF5B;;iBAHD;;oCAqBE,OAC2B;gBAA3B,qEAAuB,oBAAI;;AAG3B,gBAAG,QAAA,IAAA,CAAK,QAAL,CAAc,KAAd,CAAH,EACA;AACC,qBAAK,gBAAL,CAA8B,KAA9B,EAAqC,YAArC,EADD;aADA,MAIK,IAAG,aAAA,uBAAA,CAAwB,KAAxB,CAAH,EACL;AACC,qBAAK,aAAL,CAAmB,KAAnB,EADD;aADK,MAKL;AACC,qBAAK,SAAL,CAAiC,KAAjC,EADD;aALK;AASL,mBAAO,IAAP,CAhB2B;;;;yCA2B3B,QAE2B;gBAD3B,oEAAsB,oBACK;gBAA3B,qEAAuB,oBAAI;;AAE3B,gBAAI,IAAI,IAAJ,CAFuB;AAG3B,wBAAY,KAAZ,CAAkB,MAAlB,EACC,UAAC,GAAD,EAAM,KAAN,EAAW;AAEV,oBAAG,EAAE,WAAF,CAAc,GAAd,CAAH,EACA;AACC,wBAAI,OAAO,EAAE,QAAF,CAAW,GAAX,CAAP,CADL;AAEC,wBAAG,MAAM,OAAN,CAAc,IAAd,CAAH,EACC,KAAK,IAAL,CAAU,KAAV,EADD,KAGC,EAAE,QAAF,CAAW,GAAX,EAAgB,CAAqB,IAArB,EAA2B,KAA3B,CAAhB,EAHD;iBAHD,MASC,EAAE,QAAF,CAAW,GAAX,EAAgB,KAAhB,EATD;aAFD,EAaA,WAdD,EAeC,YAfD,EAH2B;AAoB3B,mBAAO,IAAP,CApB2B;;;;+BA2BrB,kBAAyB;AAE/B,mBAAO,YAAY,MAAZ,CAAmB,IAAnB,EAAyB,gBAAzB,CAAP,CAF+B;;;;mCAKxB;AAEP,mBAAO,KAAK,MAAL,EAAP,CAFO;;;;6BArEP,OAC2B;gBAA3B,qEAAuB,oBAAI;;AAE3B,mBAAO,IAAI,YAAJ,CAAiB,KAAjB,EAAwB,YAAxB,CAAP,CAF2B;;;;WAf7B;EAAkC,6BAAA,0BAAA;;AAArB,QAAA,YAAA,GAAY,YAAZ;AAyFb,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADvDA,QAAQ,OAAR,GCuDe,YDvDf","file":"System/Uri/QueryBuilder.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst Types_1 = require(\"../Types\");\nconst OrderedStringKeyDictionary_1 = require(\"../Collections/Dictionaries/OrderedStringKeyDictionary\");\nconst Enumerator_1 = require(\"../Collections/Enumeration/Enumerator\");\nconst QueryParams = require(\"./QueryParams\");\nclass QueryBuilder extends OrderedStringKeyDictionary_1.OrderedStringKeyDictionary {\n constructor(query, decodeValues = true) {\n super();\n this.importQuery(query, decodeValues);\n }\n static init(query, decodeValues = true) {\n return new QueryBuilder(query, decodeValues);\n }\n importQuery(query, decodeValues = true) {\n if (Types_1.Type.isString(query)) {\n this.importFromString(query, decodeValues);\n }\n else if (Enumerator_1.isEnumerableOrArrayLike(query)) {\n this.importEntries(query);\n }\n else {\n this.importMap(query);\n }\n return this;\n }\n importFromString(values, deserialize = true, decodeValues = true) {\n var _ = this;\n QueryParams.parse(values, (key, value) => {\n if (_.containsKey(key)) {\n var prev = _.getValue(key);\n if (Array.isArray(prev))\n prev.push(value);\n else\n _.setValue(key, [prev, value]);\n }\n else\n _.setValue(key, value);\n }, deserialize, decodeValues);\n return this;\n }\n encode(prefixIfNotEmpty) {\n return QueryParams.encode(this, prefixIfNotEmpty);\n }\n toString() {\n return this.encode();\n }\n}\nexports.QueryBuilder = QueryBuilder;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = QueryBuilder;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {Type} from \"../Types\";\r\nimport {OrderedStringKeyDictionary} from \"../Collections/Dictionaries/OrderedStringKeyDictionary\";\r\nimport {isEnumerableOrArrayLike} from \"../Collections/Enumeration/Enumerator\";\r\nimport * as UriComponent from \"./UriComponent\";\r\nimport * as QueryParam from \"./QueryParam\";\r\nimport * as QueryParams from \"./QueryParams\";\r\n\r\n\r\n/**\r\n * Provides a means for parsing and building a set of parameters.\r\n *\r\n * In other languages, dictionaries are not reliable for retaining the order of stored values. So for certainty and flexibility we use an ordered dictionary as a base class.\r\n */\r\nexport class QueryBuilder extends OrderedStringKeyDictionary\r\n{\r\n\r\n\tconstructor(\r\n\t\tquery:QueryParam.Convertible,\r\n\t\tdecodeValues:boolean = true)\r\n\t{\r\n\t\tsuper();\r\n\r\n\t\tthis.importQuery(query, decodeValues);\r\n\t}\r\n\r\n\r\n\tstatic init(\r\n\t\tquery:QueryParam.Convertible,\r\n\t\tdecodeValues:boolean = true):QueryBuilder\r\n\t{\r\n\t\treturn new QueryBuilder(query, decodeValues);\r\n\t}\r\n\r\n\timportQuery(\r\n\t\tquery:QueryParam.Convertible,\r\n\t\tdecodeValues:boolean = true):QueryBuilder\r\n\t{\r\n\r\n\t\tif(Type.isString(query))\r\n\t\t{\r\n\t\t\tthis.importFromString(query, decodeValues);\r\n\t\t}\r\n\t\telse if(isEnumerableOrArrayLike(query))\r\n\t\t{\r\n\t\t\tthis.importEntries(query);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthis.importMap(query);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t * Property parses the components of an URI into their values or array of values.\r\n\t * @param values\r\n\t * @param deserialize\r\n\t * @param decodeValues\r\n\t * @returns {QueryBuilder}\r\n\t */\r\n\timportFromString(\r\n\t\tvalues:string,\r\n\t\tdeserialize:boolean = true,\r\n\t\tdecodeValues:boolean = true):QueryBuilder\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tQueryParams.parse(values,\r\n\t\t\t(key, value)=>\r\n\t\t\t{\r\n\t\t\t\tif(_.containsKey(key))\r\n\t\t\t\t{\r\n\t\t\t\t\tvar prev = _.getValue(key);\r\n\t\t\t\t\tif(Array.isArray(prev))\r\n\t\t\t\t\t\tprev.push(value);\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\t_.setValue(key, [prev, value]);\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t\t_.setValue(key, value);\r\n\t\t\t},\r\n\t\t\tdeserialize,\r\n\t\t\tdecodeValues);\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Returns the encoded URI string\r\n\t */\r\n\tencode(prefixIfNotEmpty?:boolean):string\r\n\t{\r\n\t\treturn QueryParams.encode(this, prefixIfNotEmpty);\r\n\t}\r\n\r\n\ttoString():string\r\n\t{\r\n\t\treturn this.encode();\r\n\t}\r\n}\r\n\r\nexport default QueryBuilder;\r\n"]} \ No newline at end of file diff --git a/dist/commonjs/System/Uri/QueryParams.d.ts b/dist/commonjs/System/Uri/QueryParams.d.ts index 6bedb350..f90cd30d 100644 --- a/dist/commonjs/System/Uri/QueryParams.d.ts +++ b/dist/commonjs/System/Uri/QueryParams.d.ts @@ -1,17 +1,20 @@ -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -export declare function encode(values: IUriComponentMap | QueryParamEnumerableOrArray, prefixIfNotEmpty?: boolean): string; -export declare function encodeValue(value: UriComponentValue): string; -export declare function isUriComponentFormattable(instance: any): instance is IUriComponentFormattable; +import * as UriComponent from "./UriComponent"; +import * as QueryParam from "./QueryParam"; +import { IMap } from "../Collections/Dictionaries/IDictionary"; +import { Primitive } from "../Primitive"; +import { IStringKeyValuePair } from "../KeyValuePair"; +export declare function encode(values: UriComponent.Map | QueryParam.EnumerableOrArray, prefixIfNotEmpty?: boolean): string; +export declare function encodeValue(value: UriComponent.Value): string; +export declare function isUriComponentFormattable(instance: any): instance is UriComponent.Formattable; export declare function parse(query: string, entryHandler: (key: string, value: Primitive) => void, deserialize?: boolean, decodeValues?: boolean): void; export declare function parseToMap(query: string, deserialize?: boolean, decodeValues?: boolean): IMap; export declare function parseToArray(query: string, deserialize?: boolean, decodeValues?: boolean): IStringKeyValuePair[]; export declare module Separator { + const Query: string; const Entry: string; const KeyValue: string; } diff --git a/dist/commonjs/System/Uri/QueryParams.js b/dist/commonjs/System/Uri/QueryParams.js index dd476f29..8a371900 100644 --- a/dist/commonjs/System/Uri/QueryParams.js +++ b/dist/commonjs/System/Uri/QueryParams.js @@ -2,20 +2,23 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; +"use strict"; -var Types_1 = require("../Types"); var Serialization = require("../Serialization/Utility"); +var Types_1 = require("../Types"); var KeyValueExtract_1 = require("../KeyValueExtract"); var Enumerator_1 = require("../Collections/Enumeration/Enumerator"); -var ENTRY_SEPARATOR = "&", - KEY_VALUE_SEPARATOR = "="; +var EMPTY = "", + QUERY_SEPARATOR = "?", + ENTRY_SEPARATOR = "&", + KEY_VALUE_SEPARATOR = "=", + TO_URI_COMPONENT = "toUriComponent"; function encode(values, prefixIfNotEmpty) { - if (!values) return ''; + if (!values) return EMPTY; var entries = []; if (Enumerator_1.isEnumerableOrArrayLike(values)) { Enumerator_1.forEach(values, function (entry) { - return KeyValueExtract_1.default(entry, function (key, value) { + return KeyValueExtract_1.extractKeyValue(entry, function (key, value) { return appendKeyValue(entries, key, value); }); }); @@ -24,7 +27,7 @@ function encode(values, prefixIfNotEmpty) { return appendKeyValue(entries, key, values[key]); }); } - return (entries.length && prefixIfNotEmpty ? '?' : '') + entries.join(ENTRY_SEPARATOR); + return (entries.length && prefixIfNotEmpty ? QUERY_SEPARATOR : EMPTY) + entries.join(ENTRY_SEPARATOR); } exports.encode = encode; function appendKeyValueSingle(entries, key, value) { @@ -43,7 +46,7 @@ function encodeValue(value) { var v = null; if (isUriComponentFormattable(value)) { v = value.toUriComponent(); - if (v && v.indexOf('&') != 1) throw '.toUriComponent() did not encode the value.'; + if (v && v.indexOf(ENTRY_SEPARATOR) != 1) throw '.toUriComponent() did not encode the value.'; } else { v = encodeURIComponent(Serialization.toString(v)); } @@ -51,7 +54,7 @@ function encodeValue(value) { } exports.encodeValue = encodeValue; function isUriComponentFormattable(instance) { - return Types_1.default.hasMemberOfType(instance, "toUriComponent", Types_1.default.FUNCTION); + return Types_1.Type.hasMemberOfType(instance, TO_URI_COMPONENT, Types_1.Type.FUNCTION); } exports.isUriComponentFormattable = isUriComponentFormattable; function parse(query, entryHandler) { @@ -122,6 +125,7 @@ function parseToArray(query) { exports.parseToArray = parseToArray; var Separator; (function (Separator) { + Separator.Query = QUERY_SEPARATOR; Separator.Entry = ENTRY_SEPARATOR; Separator.KeyValue = KEY_VALUE_SEPARATOR; })(Separator = exports.Separator || (exports.Separator = {})); diff --git a/dist/commonjs/System/Uri/QueryParams.js.map b/dist/commonjs/System/Uri/QueryParams.js.map index cff85be6..af14ba3d 100644 --- a/dist/commonjs/System/Uri/QueryParams.js.map +++ b/dist/commonjs/System/Uri/QueryParams.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Uri/QueryParams.ts"],"names":[],"mappings":";;;;AAQA;;AAEA,IAAA,UAAA,QAAiB,UAAjB,CAAA;AACA,IAAY,gBAAa,QAAM,0BAAN,CAAb;AACZ,IAAA,oBAAA,QAA4B,oBAA5B,CAAA;AACA,IAAA,eAAA,QAA+C,uCAA/C,CAAA;AAOA,IACC,kBAAsB,GAAtB;IACA,sBAAsB,GAAtB;AASD,SAAA,MAAA,CACC,MADD,EAEC,gBAFD,EAE0B;AAEzB,QAAG,CAAC,MAAD,EAAS,OAAO,EAAP,CAAZ;AACA,QAAI,UAAmB,EAAnB,CAHqB;AAKzB,QAAG,aAAA,uBAAA,CAAwB,MAAxB,CAAH,EACA;AACC,qBAAA,OAAA,CAAQ,MAAR,EAAgB;mBACf,kBAAA,OAAA,CAAgB,KAAhB,EACC,UAAC,GAAD,EAAM,KAAN;uBAAe,eAAe,OAAf,EAAwB,GAAxB,EAA6B,KAA7B;aAAf;SAFc,CAAhB,CADD;KADA,MAQA;AACC,eAAO,IAAP,CAAY,MAAZ,EAAoB,OAApB,CACC;mBAAM,eAAe,OAAf,EAAwB,GAAxB,EAA6B,OAAO,GAAP,CAA7B;SAAN,CADD,CADD;KARA;AAcA,WAAO,CAAC,QAAQ,MAAR,IAAkB,gBAAlB,GAAqC,GAArC,GAA2C,EAA3C,CAAD,GACJ,QAAQ,IAAR,CAAa,eAAb,CADI,CAnBkB;CAF1B;AAAgB,QAAA,MAAA,GAAM,MAAN;AAyBhB,SAAA,oBAAA,CACC,OADD,EAEC,GAFD,EAGC,KAHD,EAGwB;AAEvB,YAAQ,IAAR,CAAa,MAAM,mBAAN,GAA4B,YAAY,KAAZ,CAA5B,CAAb,CAFuB;CAHxB;AASA,SAAA,cAAA,CACC,OADD,EAEC,GAFD,EAGC,KAHD,EAG8D;AAE7D,QAAG,aAAA,uBAAA,CAAwB,KAAxB,CAAH,EACA;AACC,qBAAA,OAAA,CAAQ,KAAR,EAAe;mBAAI,qBAAqB,OAArB,EAA8B,GAA9B,EAAmC,CAAnC;SAAJ,CAAf,CADD;KADA,MAKA;AACC,6BAAqB,OAArB,EAA8B,GAA9B,EAAmC,KAAnC,EADD;KALA;CALD;AAoBA,SAAA,WAAA,CAA4B,KAA5B,EAAmD;AAElD,QAAI,IAAW,IAAX,CAF8C;AAGlD,QAAG,0BAA0B,KAA1B,CAAH,EACA;AACC,YAAI,MAAM,cAAN,EAAJ,CADD;AAEC,YAAG,KAAK,EAAE,OAAF,CAAU,GAAV,KAAgB,CAAhB,EACP,MAAM,6CAAN,CADD;KAHD,MAOA;AACC,YAAI,mBAAmB,cAAc,QAAd,CAAuB,CAAvB,CAAnB,CAAJ,CADD;KAPA;AAUA,WAAO,CAAP,CAbkD;CAAnD;AAAgB,QAAA,WAAA,GAAW,WAAX;AAqBhB,SAAA,yBAAA,CAA0C,QAA1C,EAAsD;AAErD,WAAO,QAAA,OAAA,CAAK,eAAL,CAA+C,QAA/C,EAAyD,gBAAzD,EAA2E,QAAA,OAAA,CAAK,QAAL,CAAlF,CAFqD;CAAtD;AAAgB,QAAA,yBAAA,GAAyB,yBAAzB;AAYhB,SAAA,KAAA,CACC,KADD,EAEC,YAFD,EAI4B;QAD3B,oEAAsB,oBACK;QAA3B,qEAAuB,oBAAI;;AAE3B,QAAG,UAAU,QAAQ,MAAM,OAAN,CAAc,SAAd,EAAyB,EAAzB,CAAR,CAAV,EACH;AACC,YAAI,UAAU,MAAM,KAAN,CAAY,eAAZ,CAAV,CADL;;;;;;AAEC,iCAAiB,iCAAjB,oGACA;oBADQ,oBACR;;AAKC,oBAAI,KAAK,MAAM,OAAN,CAAc,mBAAd,CAAL,CALL;AAMC,oBAAG,MAAK,CAAC,CAAD,EACR;AACC,wBAAI,MAAM,MAAM,SAAN,CAAgB,CAAhB,EAAmB,EAAnB,CAAN,CADL;AAEC,wBAAI,QAAa,MAAM,SAAN,CAAgB,KAAK,CAAL,CAA7B,CAFL;AAGC,wBAAG,YAAH,EAAiB,QAAQ,mBAAmB,KAAnB,CAAR,CAAjB;AACA,wBAAG,WAAH,EAAgB,QAAQ,cAAc,WAAd,CAA0B,KAA1B,CAAR,CAAhB;AACA,iCAAa,GAAb,EAAkB,KAAlB,EALD;iBADA;aAPD;;;;;;;;;;;;;;SAFD;KADA;CAND;AAAgB,QAAA,KAAA,GAAK,KAAL;AAmChB,SAAA,UAAA,CACC,KADD,EAG4B;QAD3B,oEAAsB,oBACK;QAA3B,qEAAuB,oBAAI;;AAE3B,QAAI,SAAqC,EAArC,CAFuB;AAG3B,UAAM,KAAN,EACC,UAAC,GAAD,EAAM,KAAN,EAAW;AAEV,YAAG,OAAU,MAAV,EACH;AACC,gBAAI,OAAW,OAAO,GAAP,CAAX,CADL;AAEC,gBAAG,CAAE,MAAM,OAAN,CAAc,IAAd,CAAF,EACF,OAAO,GAAP,IAAc,OAAO,CAAC,IAAD,CAAP,CADf;AAEA,iBAAK,IAAL,CAAU,KAAV,EAJD;SADA,MAQC,OAAO,GAAP,IAAc,KAAd,CARD;KAFD,EAYA,WAbD,EAcC,YAdD,EAH2B;AAkB3B,WAAO,MAAP,CAlB2B;CAH5B;AAAgB,QAAA,UAAA,GAAU,UAAV;AA+BhB,SAAA,YAAA,CACC,KADD,EAG4B;QAD3B,oEAAsB,oBACK;QAA3B,qEAAuB,oBAAI;;AAE3B,QAAI,SAA0C,EAA1C,CAFuB;AAG3B,UAAM,KAAN,EACC,UAAC,GAAD,EAAM,KAAN,EAAW;AAAK,eAAO,IAAP,CAAY,EAAC,KAAK,GAAL,EAAU,OAAO,KAAP,EAAvB,EAAL;KAAX,EACA,WAFD,EAGC,YAHD,EAH2B;AAQ3B,WAAO,MAAP,CAR2B;CAH5B;AAAgB,QAAA,YAAA,GAAY,YAAZ;AAehB,IAAc,SAAd;AAAA,CAAA,UAAc,SAAd,EACA;AACc,cAAA,KAAA,GAAe,eAAf,CADd;AAEc,cAAA,QAAA,GAAkB,mBAAlB,CAFd;CADA,CAAA,CAAc,YAAA,QAAA,SAAA,KAAA,QAAA,SAAA,GAAS,EAAT,CAAA,CAAd;AAKA,OAAO,MAAP,CAAc,SAAd","file":"System/Uri/QueryParams.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport Type from \"../Types\";\r\nimport * as Serialization from \"../Serialization/Utility\";\r\nimport extractKeyValue from \"../KeyValueExtract\";\r\nimport {forEach, isEnumerableOrArrayLike} from \"../Collections/Enumeration/Enumerator\";\r\n\r\n/*\r\n * This module is provided as a lighter weight utility for acquiring query params.\r\n * If more detailed operations are necessary, consider importing QueryBuilder.\r\n */\r\n\r\nconst\r\n\tENTRY_SEPARATOR = \"&\",\r\n\tKEY_VALUE_SEPARATOR = \"=\";\r\n\r\n\r\n/**\r\n * Returns the encoded URI string\r\n * @param values\r\n * @param prefixIfNotEmpty\r\n * @returns {string}\r\n */\r\nexport function encode(\r\n\tvalues:IUriComponentMap | QueryParamEnumerableOrArray,\r\n\tprefixIfNotEmpty?:boolean):string\r\n{\r\n\tif(!values) return '';\r\n\tvar entries:string[] = [];\r\n\r\n\tif(isEnumerableOrArrayLike(values))\r\n\t{\r\n\t\tforEach(values, entry=>\r\n\t\t\textractKeyValue(entry,\r\n\t\t\t\t(key, value)=> appendKeyValue(entries, key, value))\r\n\t\t);\r\n\t}\r\n\telse\r\n\t{\r\n\t\tObject.keys(values).forEach(\r\n\t\t\tkey=> appendKeyValue(entries, key, values[key])\r\n\t\t);\r\n\t}\r\n\r\n\treturn (entries.length && prefixIfNotEmpty ? '?' : '')\r\n\t\t+ entries.join(ENTRY_SEPARATOR);\r\n}\r\n\r\nfunction appendKeyValueSingle(\r\n\tentries:string[],\r\n\tkey:string,\r\n\tvalue:UriComponentValue):void\r\n{\r\n\tentries.push(key + KEY_VALUE_SEPARATOR + encodeValue(value));\r\n}\r\n\r\n// According to spec, if there is an array of values with the same key, then each value is replicated with that key.\r\nfunction appendKeyValue(\r\n\tentries:string[],\r\n\tkey:string,\r\n\tvalue:UriComponentValue|IEnumerableOrArray):void\r\n{\r\n\tif(isEnumerableOrArrayLike(value))\r\n\t{\r\n\t\tforEach(value, v=> appendKeyValueSingle(entries, key, v));\r\n\t}\r\n\telse\r\n\t{\r\n\t\tappendKeyValueSingle(entries, key, value)\r\n\t}\r\n}\r\n\r\n/**\r\n * Converts any primitive, serializable or uri-component object to an encoded string.\r\n * @param value\r\n * @returns {string}\r\n */\r\nexport function encodeValue(value:UriComponentValue):string\r\n{\r\n\tvar v:string = null;\r\n\tif(isUriComponentFormattable(value))\r\n\t{\r\n\t\tv = value.toUriComponent();\r\n\t\tif(v && v.indexOf('&')!=1)\r\n\t\t\tthrow '.toUriComponent() did not encode the value.';\r\n\t}\r\n\telse\r\n\t{\r\n\t\tv = encodeURIComponent(Serialization.toString(v));\r\n\t}\r\n\treturn v;\r\n}\r\n\r\n/**\r\n * A shortcut for identifying an IUriComponentFormattable object.\r\n * @param instance\r\n * @returns {boolean}\r\n */\r\nexport function isUriComponentFormattable(instance:any):instance is IUriComponentFormattable\r\n{\r\n\treturn Type.hasMemberOfType(instance, \"toUriComponent\", Type.FUNCTION);\r\n}\r\n\r\n/**\r\n * Parses a string for valid query param entries and pipes them through a handler.\r\n * @param query\r\n * @param entryHandler\r\n * @param deserialize Default is true.\r\n * @param decodeValues Default is true.\r\n */\r\nexport function parse(\r\n\tquery:string,\r\n\tentryHandler:(key:string, value:Primitive)=>void,\r\n\tdeserialize:boolean = true,\r\n\tdecodeValues:boolean = true):void\r\n{\r\n\tif(query && (query = query.replace(/^\\s*\\?+/, '')))\r\n\t{\r\n\t\tvar entries = query.split(ENTRY_SEPARATOR);\r\n\t\tfor(let entry of entries)\r\n\t\t{\r\n\t\t\t/*\r\n\t\t\t * Since it is technically possible to have multiple '=' we need to identify the first one.\r\n\t\t\t * And if there is no '=' then the entry is ignored.\r\n\t\t\t */\r\n\t\t\tvar si = entry.indexOf(KEY_VALUE_SEPARATOR);\r\n\t\t\tif(si!= -1)\r\n\t\t\t{\r\n\t\t\t\tvar key = entry.substring(0, si);\r\n\t\t\t\tvar value = entry.substring(si + 1);\r\n\t\t\t\tif(decodeValues) value = decodeURIComponent(value);\r\n\t\t\t\tif(deserialize) value = Serialization.toPrimitive(value);\r\n\t\t\t\tentryHandler(key, value);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Parses a string for valid query params and returns a key-value map of the entries.\r\n * @param query\r\n * @param deserialize Default is true.\r\n * @param decodeValues Default is true.\r\n * @returns {IMap}\r\n */\r\nexport function parseToMap(\r\n\tquery:string,\r\n\tdeserialize:boolean = true,\r\n\tdecodeValues:boolean = true):IMap\r\n{\r\n\tvar result:IMap = {};\r\n\tparse(query,\r\n\t\t(key, value)=>\r\n\t\t{\r\n\t\t\tif((key) in (result))\r\n\t\t\t{\r\n\t\t\t\tvar prev:any = result[key];\r\n\t\t\t\tif(!(Array.isArray(prev)))\r\n\t\t\t\t\tresult[key] = prev = [prev];\r\n\t\t\t\tprev.push(value);\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t\tresult[key] = value;\r\n\t\t},\r\n\t\tdeserialize,\r\n\t\tdecodeValues);\r\n\treturn result;\r\n}\r\n\r\n/**\r\n * Parses a string for valid query params and returns a key-value pair array of the entries.\r\n * @param query\r\n * @param deserialize Default is true.\r\n * @param decodeValues Default is true.\r\n * @returns {IKeyValuePair[]}\r\n */\r\nexport function parseToArray(\r\n\tquery:string,\r\n\tdeserialize:boolean = true,\r\n\tdecodeValues:boolean = true):IStringKeyValuePair[]\r\n{\r\n\tvar result:IStringKeyValuePair[] = [];\r\n\tparse(query,\r\n\t\t(key, value)=> {result.push({key: key, value: value});},\r\n\t\tdeserialize,\r\n\t\tdecodeValues\r\n\t);\r\n\treturn result;\r\n}\r\n\r\n\r\nexport module Separator\r\n{\r\n\texport const Entry:string = ENTRY_SEPARATOR;\r\n\texport const KeyValue:string = KEY_VALUE_SEPARATOR;\r\n}\r\nObject.freeze(Separator);\r\n\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Uri/QueryParams.js","System/Uri/QueryParams.ts"],"names":[],"mappings":"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","file":"System/Uri/QueryParams.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst Serialization = require(\"../Serialization/Utility\");\nconst Types_1 = require(\"../Types\");\nconst KeyValueExtract_1 = require(\"../KeyValueExtract\");\nconst Enumerator_1 = require(\"../Collections/Enumeration/Enumerator\");\nconst EMPTY = \"\", QUERY_SEPARATOR = \"?\", ENTRY_SEPARATOR = \"&\", KEY_VALUE_SEPARATOR = \"=\", TO_URI_COMPONENT = \"toUriComponent\";\nfunction encode(values, prefixIfNotEmpty) {\n if (!values)\n return EMPTY;\n var entries = [];\n if (Enumerator_1.isEnumerableOrArrayLike(values)) {\n Enumerator_1.forEach(values, entry => KeyValueExtract_1.extractKeyValue(entry, (key, value) => appendKeyValue(entries, key, value)));\n }\n else {\n Object.keys(values).forEach(key => appendKeyValue(entries, key, values[key]));\n }\n return (entries.length && prefixIfNotEmpty ? QUERY_SEPARATOR : EMPTY)\n + entries.join(ENTRY_SEPARATOR);\n}\nexports.encode = encode;\nfunction appendKeyValueSingle(entries, key, value) {\n entries.push(key + KEY_VALUE_SEPARATOR + encodeValue(value));\n}\nfunction appendKeyValue(entries, key, value) {\n if (Enumerator_1.isEnumerableOrArrayLike(value)) {\n Enumerator_1.forEach(value, v => appendKeyValueSingle(entries, key, v));\n }\n else {\n appendKeyValueSingle(entries, key, value);\n }\n}\nfunction encodeValue(value) {\n var v = null;\n if (isUriComponentFormattable(value)) {\n v = value.toUriComponent();\n if (v && v.indexOf(ENTRY_SEPARATOR) != 1)\n throw '.toUriComponent() did not encode the value.';\n }\n else {\n v = encodeURIComponent(Serialization.toString(v));\n }\n return v;\n}\nexports.encodeValue = encodeValue;\nfunction isUriComponentFormattable(instance) {\n return Types_1.Type.hasMemberOfType(instance, TO_URI_COMPONENT, Types_1.Type.FUNCTION);\n}\nexports.isUriComponentFormattable = isUriComponentFormattable;\nfunction parse(query, entryHandler, deserialize = true, decodeValues = true) {\n if (query && (query = query.replace(/^\\s*\\?+/, ''))) {\n var entries = query.split(ENTRY_SEPARATOR);\n for (let entry of entries) {\n var si = entry.indexOf(KEY_VALUE_SEPARATOR);\n if (si != -1) {\n var key = entry.substring(0, si);\n var value = entry.substring(si + 1);\n if (decodeValues)\n value = decodeURIComponent(value);\n if (deserialize)\n value = Serialization.toPrimitive(value);\n entryHandler(key, value);\n }\n }\n }\n}\nexports.parse = parse;\nfunction parseToMap(query, deserialize = true, decodeValues = true) {\n var result = {};\n parse(query, (key, value) => {\n if ((key) in (result)) {\n var prev = result[key];\n if (!(Array.isArray(prev)))\n result[key] = prev = [prev];\n prev.push(value);\n }\n else\n result[key] = value;\n }, deserialize, decodeValues);\n return result;\n}\nexports.parseToMap = parseToMap;\nfunction parseToArray(query, deserialize = true, decodeValues = true) {\n var result = [];\n parse(query, (key, value) => { result.push({ key: key, value: value }); }, deserialize, decodeValues);\n return result;\n}\nexports.parseToArray = parseToArray;\nvar Separator;\n(function (Separator) {\n Separator.Query = QUERY_SEPARATOR;\n Separator.Entry = ENTRY_SEPARATOR;\n Separator.KeyValue = KEY_VALUE_SEPARATOR;\n})(Separator = exports.Separator || (exports.Separator = {}));\nObject.freeze(Separator);\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport * as Serialization from \"../Serialization/Utility\";\r\nimport * as UriComponent from \"./UriComponent\";\r\nimport * as QueryParam from \"./QueryParam\";\r\nimport {Type} from \"../Types\";\r\nimport {extractKeyValue} from \"../KeyValueExtract\";\r\nimport {forEach, isEnumerableOrArrayLike} from \"../Collections/Enumeration/Enumerator\";\r\nimport {IMap} from \"../Collections/Dictionaries/IDictionary\";\r\nimport {Primitive} from \"../Primitive\";\r\nimport {IStringKeyValuePair} from \"../KeyValuePair\";\r\nimport {IEnumerableOrArray} from \"../Collections/IEnumerableOrArray\";\r\n\r\n/*\r\n * This module is provided as a lighter weight utility for acquiring query params.\r\n * If more detailed operations are necessary, consider importing QueryBuilder.\r\n */\r\n\r\nconst\r\n\tEMPTY = \"\",\r\n\tQUERY_SEPARATOR = \"?\",\r\n\tENTRY_SEPARATOR = \"&\",\r\n\tKEY_VALUE_SEPARATOR = \"=\",\r\n\tTO_URI_COMPONENT = \"toUriComponent\";\r\n\r\n\r\n/**\r\n * Returns the encoded URI string\r\n * @param values\r\n * @param prefixIfNotEmpty\r\n * @returns {string}\r\n */\r\nexport function encode(\r\n\tvalues:UriComponent.Map | QueryParam.EnumerableOrArray,\r\n\tprefixIfNotEmpty?:boolean):string\r\n{\r\n\tif(!values) return EMPTY;\r\n\tvar entries:string[] = [];\r\n\r\n\tif(isEnumerableOrArrayLike(values))\r\n\t{\r\n\t\tforEach(values, entry=>\r\n\t\t\textractKeyValue(entry,\r\n\t\t\t\t(key, value)=> appendKeyValue(entries, key, value))\r\n\t\t);\r\n\t}\r\n\telse\r\n\t{\r\n\t\tObject.keys(values).forEach(\r\n\t\t\tkey=> appendKeyValue(entries, key, values[key])\r\n\t\t);\r\n\t}\r\n\r\n\treturn (entries.length && prefixIfNotEmpty ? QUERY_SEPARATOR : EMPTY)\r\n\t\t+ entries.join(ENTRY_SEPARATOR);\r\n}\r\n\r\nfunction appendKeyValueSingle(\r\n\tentries:string[],\r\n\tkey:string,\r\n\tvalue:UriComponent.Value):void\r\n{\r\n\tentries.push(key + KEY_VALUE_SEPARATOR + encodeValue(value));\r\n}\r\n\r\n// According to spec, if there is an array of values with the same key, then each value is replicated with that key.\r\nfunction appendKeyValue(\r\n\tentries:string[],\r\n\tkey:string,\r\n\tvalue:UriComponent.Value|IEnumerableOrArray):void\r\n{\r\n\tif(isEnumerableOrArrayLike(value))\r\n\t{\r\n\t\tforEach(value, v=> appendKeyValueSingle(entries, key, v));\r\n\t}\r\n\telse\r\n\t{\r\n\t\tappendKeyValueSingle(entries, key, value)\r\n\t}\r\n}\r\n\r\n/**\r\n * Converts any primitive, serializable or uri-component object to an encoded string.\r\n * @param value\r\n * @returns {string}\r\n */\r\nexport function encodeValue(value:UriComponent.Value):string\r\n{\r\n\tvar v:string = null;\r\n\tif(isUriComponentFormattable(value))\r\n\t{\r\n\t\tv = value.toUriComponent();\r\n\t\tif(v && v.indexOf(ENTRY_SEPARATOR)!=1)\r\n\t\t\tthrow '.toUriComponent() did not encode the value.';\r\n\t}\r\n\telse\r\n\t{\r\n\t\tv = encodeURIComponent(Serialization.toString(v));\r\n\t}\r\n\treturn v;\r\n}\r\n\r\n/**\r\n * A shortcut for identifying an UriComponent.Formattable object.\r\n * @param instance\r\n * @returns {boolean}\r\n */\r\nexport function isUriComponentFormattable(instance:any):instance is UriComponent.Formattable\r\n{\r\n\treturn Type.hasMemberOfType(instance, TO_URI_COMPONENT, Type.FUNCTION);\r\n}\r\n\r\n/**\r\n * Parses a string for valid query param entries and pipes them through a handler.\r\n * @param query\r\n * @param entryHandler\r\n * @param deserialize Default is true.\r\n * @param decodeValues Default is true.\r\n */\r\nexport function parse(\r\n\tquery:string,\r\n\tentryHandler:(key:string, value:Primitive)=>void,\r\n\tdeserialize:boolean = true,\r\n\tdecodeValues:boolean = true):void\r\n{\r\n\tif(query && (query = query.replace(/^\\s*\\?+/, '')))\r\n\t{\r\n\t\tvar entries = query.split(ENTRY_SEPARATOR);\r\n\t\tfor(let entry of entries)\r\n\t\t{\r\n\t\t\t/*\r\n\t\t\t * Since it is technically possible to have multiple '=' we need to identify the first one.\r\n\t\t\t * And if there is no '=' then the entry is ignored.\r\n\t\t\t */\r\n\t\t\tvar si = entry.indexOf(KEY_VALUE_SEPARATOR);\r\n\t\t\tif(si!= -1)\r\n\t\t\t{\r\n\t\t\t\tvar key = entry.substring(0, si);\r\n\t\t\t\tvar value = entry.substring(si + 1);\r\n\t\t\t\tif(decodeValues) value = decodeURIComponent(value);\r\n\t\t\t\tif(deserialize) value = Serialization.toPrimitive(value);\r\n\t\t\t\tentryHandler(key, value);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Parses a string for valid query params and returns a key-value map of the entries.\r\n * @param query\r\n * @param deserialize Default is true.\r\n * @param decodeValues Default is true.\r\n * @returns {IMap}\r\n */\r\nexport function parseToMap(\r\n\tquery:string,\r\n\tdeserialize:boolean = true,\r\n\tdecodeValues:boolean = true):IMap\r\n{\r\n\tvar result:IMap = {};\r\n\tparse(query,\r\n\t\t(key, value)=>\r\n\t\t{\r\n\t\t\tif((key) in (result))\r\n\t\t\t{\r\n\t\t\t\tvar prev:any = result[key];\r\n\t\t\t\tif(!(Array.isArray(prev)))\r\n\t\t\t\t\tresult[key] = prev = [prev];\r\n\t\t\t\tprev.push(value);\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t\tresult[key] = value;\r\n\t\t},\r\n\t\tdeserialize,\r\n\t\tdecodeValues);\r\n\treturn result;\r\n}\r\n\r\n/**\r\n * Parses a string for valid query params and returns a key-value pair array of the entries.\r\n * @param query\r\n * @param deserialize Default is true.\r\n * @param decodeValues Default is true.\r\n * @returns {IKeyValuePair[]}\r\n */\r\nexport function parseToArray(\r\n\tquery:string,\r\n\tdeserialize:boolean = true,\r\n\tdecodeValues:boolean = true):IStringKeyValuePair[]\r\n{\r\n\tvar result:IStringKeyValuePair[] = [];\r\n\tparse(query,\r\n\t\t(key, value)=> {result.push({key: key, value: value});},\r\n\t\tdeserialize,\r\n\t\tdecodeValues\r\n\t);\r\n\treturn result;\r\n}\r\n\r\n\r\nexport module Separator\r\n{\r\n\texport const Query:string = QUERY_SEPARATOR;\r\n\texport const Entry:string = ENTRY_SEPARATOR;\r\n\texport const KeyValue:string = KEY_VALUE_SEPARATOR;\r\n}\r\nObject.freeze(Separator);\r\n\r\n"]} \ No newline at end of file diff --git a/dist/commonjs/System/Uri/Scheme.d.ts b/dist/commonjs/System/Uri/Scheme.d.ts index 5e625ec8..406f9ce0 100644 --- a/dist/commonjs/System/Uri/Scheme.d.ts +++ b/dist/commonjs/System/Uri/Scheme.d.ts @@ -3,19 +3,20 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based on: https://msdn.microsoft.com/en-us/library/system.uri.scheme%28v=vs.110%29.aspx */ -declare enum Scheme { - file = 0, - ftp = 1, - gopher = 2, - http = 3, - https = 4, - ldap = 5, - mailto = 6, - pipe = 7, - tcp = 8, - news = 9, - nntp = 10, - telnet = 11, - uuid = 12, -} -export default Scheme; +import * as Scheme from "./SchemeValue"; +import { SchemeValue } from "./SchemeValue"; +export declare const File: Scheme.File; +export declare const FTP: Scheme.FTP; +export declare const GOPHER: Scheme.Gopher; +export declare const HTTP: Scheme.HTTP; +export declare const HTTPS: Scheme.HTTPS; +export declare const LDAP: Scheme.LDAP; +export declare const MAILTO: Scheme.MailTo; +export declare const PIPE: Scheme.Pipe; +export declare const TCP: Scheme.TCP; +export declare const NEWS: Scheme.NNTP; +export declare const NNTP: Scheme.NNTP; +export declare const TELNET: Scheme.Telnet; +export declare const UUID: Scheme.UUID; +export declare const All: SchemeValue[]; +export declare function isValid(scheme: string): scheme is SchemeValue; diff --git a/dist/commonjs/System/Uri/Scheme.js b/dist/commonjs/System/Uri/Scheme.js index 1e9c9c8b..b6fca38d 100644 --- a/dist/commonjs/System/Uri/Scheme.js +++ b/dist/commonjs/System/Uri/Scheme.js @@ -5,29 +5,22 @@ */ "use strict"; -var Scheme; -(function (Scheme) { - Scheme[Scheme["file"] = 0] = "file"; - Scheme[Scheme["ftp"] = 1] = "ftp"; - Scheme[Scheme["gopher"] = 2] = "gopher"; - Scheme[Scheme["http"] = 3] = "http"; - Scheme[Scheme["https"] = 4] = "https"; - Scheme[Scheme["ldap"] = 5] = "ldap"; - Scheme[Scheme["mailto"] = 6] = "mailto"; - Scheme[Scheme["pipe"] = 7] = "pipe"; - Scheme[Scheme["tcp"] = 8] = "tcp"; - Scheme[Scheme["news"] = 9] = "news"; - Scheme[Scheme["nntp"] = 10] = "nntp"; - Scheme[Scheme["telnet"] = 11] = "telnet"; - Scheme[Scheme["uuid"] = 12] = "uuid"; -})(Scheme || (Scheme = {})); -var PIPE = 'net.pipe'; -var TCP = 'net.tcp'; -Scheme[Scheme.pipe] = PIPE; -Scheme[Scheme.tcp] = TCP; -Scheme[PIPE] = Scheme.pipe; -Scheme[TCP] = Scheme.tcp; -Object.freeze(Scheme); -Object.defineProperty(exports, "__esModule", { value: true }); -exports.default = Scheme; +exports.File = "file"; +exports.FTP = "ftp"; +exports.GOPHER = "gopher"; +exports.HTTP = "http"; +exports.HTTPS = "https"; +exports.LDAP = "ldap"; +exports.MAILTO = "mailto"; +exports.PIPE = "net.pipe"; +exports.TCP = "net.tcp"; +exports.NEWS = "news"; +exports.NNTP = "nntp"; +exports.TELNET = "telnet"; +exports.UUID = "uuid"; +exports.All = Object.freeze([exports.File, exports.FTP, exports.GOPHER, exports.HTTP, exports.HTTPS, exports.LDAP, exports.MAILTO, exports.PIPE, exports.TCP, exports.NEWS, exports.NNTP, exports.TELNET, exports.UUID]); +function isValid(scheme) { + return exports.All.indexOf(scheme) != -1; +} +exports.isValid = isValid; //# sourceMappingURL=Scheme.js.map diff --git a/dist/commonjs/System/Uri/Scheme.js.map b/dist/commonjs/System/Uri/Scheme.js.map index 6cc69218..e29d8e0c 100644 --- a/dist/commonjs/System/Uri/Scheme.js.map +++ b/dist/commonjs/System/Uri/Scheme.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Uri/Scheme.js","System/Uri/Scheme.ts"],"names":[],"mappings":";;;;;AAKA;;ACEA,IAAK,MAAL;AAAA,CAAA,UAAK,MAAL,EAAW;AAIV,WAAA,OAAA,MAAA,IAAA,CAAA,CAAA,GAAA,MAAA,CAJU;AAUV,WAAA,OAAA,KAAA,IAAA,CAAA,CAAA,GAAA,KAAA,CAVU;AAgBV,WAAA,OAAA,QAAA,IAAA,CAAA,CAAA,GAAA,QAAA,CAhBU;AAsBV,WAAA,OAAA,MAAA,IAAA,CAAA,CAAA,GAAA,MAAA,CAtBU;AA4BV,WAAA,OAAA,OAAA,IAAA,CAAA,CAAA,GAAA,OAAA,CA5BU;AAkCV,WAAA,OAAA,MAAA,IAAA,CAAA,CAAA,GAAA,MAAA,CAlCU;AAwCV,WAAA,OAAA,QAAA,IAAA,CAAA,CAAA,GAAA,QAAA,CAxCU;AA8CV,WAAA,OAAA,MAAA,IAAA,CAAA,CAAA,GAAA,MAAA,CA9CU;AAoDV,WAAA,OAAA,KAAA,IAAA,CAAA,CAAA,GAAA,KAAA,CApDU;AA0DV,WAAA,OAAA,MAAA,IAAA,CAAA,CAAA,GAAA,MAAA,CA1DU;AAgEV,WAAA,OAAA,MAAA,IAAA,EAAA,CAAA,GAAA,MAAA,CAhEU;AAsEV,WAAA,OAAA,QAAA,IAAA,EAAA,CAAA,GAAA,QAAA,CAtEU;AA2EV,WAAA,OAAA,MAAA,IAAA,EAAA,CAAA,GAAA,MAAA,CA3EU;CAAX,CAAA,CAAK,WAAA,SAAM,EAAN,CAAA,CAAL;AA+EA,IAAM,OAAO,UAAP;AACN,IAAM,MAAM,SAAN;AAEN,OAAO,OAAO,IAAP,CAAP,GAAsB,IAAtB;AACA,OAAO,OAAO,GAAP,CAAP,GAAqB,GAArB;AAEM,OAAQ,IAAR,IAAgB,OAAO,IAAP;AAChB,OAAQ,GAAR,IAAe,OAAO,GAAP;AAErB,OAAO,MAAP,CAAc,MAAd;AAEA,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADnEA,QAAQ,OAAR,GCmEe,MDnEf","file":"System/Uri/Scheme.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based on: https://msdn.microsoft.com/en-us/library/system.uri.scheme%28v=vs.110%29.aspx\n */\n\"use strict\";\nvar Scheme;\n(function (Scheme) {\n Scheme[Scheme[\"file\"] = 0] = \"file\";\n Scheme[Scheme[\"ftp\"] = 1] = \"ftp\";\n Scheme[Scheme[\"gopher\"] = 2] = \"gopher\";\n Scheme[Scheme[\"http\"] = 3] = \"http\";\n Scheme[Scheme[\"https\"] = 4] = \"https\";\n Scheme[Scheme[\"ldap\"] = 5] = \"ldap\";\n Scheme[Scheme[\"mailto\"] = 6] = \"mailto\";\n Scheme[Scheme[\"pipe\"] = 7] = \"pipe\";\n Scheme[Scheme[\"tcp\"] = 8] = \"tcp\";\n Scheme[Scheme[\"news\"] = 9] = \"news\";\n Scheme[Scheme[\"nntp\"] = 10] = \"nntp\";\n Scheme[Scheme[\"telnet\"] = 11] = \"telnet\";\n Scheme[Scheme[\"uuid\"] = 12] = \"uuid\";\n})(Scheme || (Scheme = {}));\nconst PIPE = 'net.pipe';\nconst TCP = 'net.tcp';\nScheme[Scheme.pipe] = PIPE;\nScheme[Scheme.tcp] = TCP;\nScheme[PIPE] = Scheme.pipe;\nScheme[TCP] = Scheme.tcp;\nObject.freeze(Scheme);\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Scheme;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based on: https://msdn.microsoft.com/en-us/library/system.uri.scheme%28v=vs.110%29.aspx\r\n */\r\n\r\n// TODO: Possibly use string literals instead.\r\nenum Scheme {\r\n\t/**\r\n\t * The resource is a file on the local computer.\r\n\t */\r\n\tfile,\r\n\r\n\r\n\t/**\r\n\t * The resource is accessed through FTP.\r\n\t */\r\n\tftp,\r\n\r\n\r\n\t/**\r\n\t * The resource is accessed through the Gopher protocol.\r\n\t */\r\n\tgopher,\r\n\r\n\r\n\t/**\r\n\t * The resource is accessed through HTTP.\r\n\t */\r\n\thttp,\r\n\r\n\r\n\t/**\r\n\t * The resource is accessed through SSL-encrypted HTTP.\r\n\t */\r\n\thttps,\r\n\r\n\r\n\t/**\r\n\t * The resource is accessed through the LDAP protocol.\r\n\t */\r\n\tldap,\r\n\r\n\r\n\t/**\r\n\t * The resource is an e-mail address and accessed through the SMTP protocol.\r\n\t */\r\n\tmailto,\r\n\r\n\r\n\t/**\r\n\t * The resource is accessed through a named pipe.\r\n\t */\r\n\tpipe,\r\n\r\n\r\n\t/**\r\n\t * The resource is accessed from TCP endpoint.\r\n\t */\r\n\ttcp,\r\n\r\n\r\n\t/**\r\n\t * The resource is accessed through the NNTP protocol.\r\n\t */\r\n\tnews,\r\n\r\n\r\n\t/**\r\n\t * The resource is accessed through the NNTP protocol.\r\n\t */\r\n\tnntp,\r\n\r\n\r\n\t/**\r\n\t * The resource is accessed through the TELNET protocol.\r\n\t */\r\n\ttelnet,\r\n\r\n\t/**\r\n\t * The resource is accessed through a unique UUID endpoint name for communicating with a service.\r\n\t */\r\n\tuuid\r\n}\r\n\r\n// Extend the usefulness of the enum.\r\nconst PIPE = 'net.pipe';\r\nconst TCP = 'net.tcp';\r\n\r\nScheme[Scheme.pipe] = PIPE;\r\nScheme[Scheme.tcp] = TCP;\r\n\r\n(Scheme)[PIPE] = Scheme.pipe;\r\n(Scheme)[TCP] = Scheme.tcp;\r\n\r\nObject.freeze(Scheme);\r\n\r\nexport default Scheme;\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Uri/Scheme.js","System/Uri/Scheme.ts"],"names":[],"mappings":";;;;;AAKA;;ACQa,QAAA,IAAA,GAAmB,MAAnB;AAMA,QAAA,GAAA,GAAiB,KAAjB;AAMA,QAAA,MAAA,GAAuB,QAAvB;AAMA,QAAA,IAAA,GAAmB,MAAnB;AAMA,QAAA,KAAA,GAAqB,OAArB;AAMA,QAAA,IAAA,GAAmB,MAAnB;AAMA,QAAA,MAAA,GAAuB,QAAvB;AAMA,QAAA,IAAA,GAAmB,UAAnB;AAMA,QAAA,GAAA,GAAiB,SAAjB;AAMA,QAAA,IAAA,GAAmB,MAAnB;AAMA,QAAA,IAAA,GAAmB,MAAnB;AAMA,QAAA,MAAA,GAAuB,QAAvB;AAKA,QAAA,IAAA,GAAmB,MAAnB;AAMA,QAAA,GAAA,GAAoB,OAAO,MAAP,CAAc,CAC9C,QAAA,IAAA,EAAM,QAAA,GAAA,EAAK,QAAA,MAAA,EAAQ,QAAA,IAAA,EAAM,QAAA,KAAA,EAAO,QAAA,IAAA,EAAM,QAAA,MAAA,EAAQ,QAAA,IAAA,EAAM,QAAA,GAAA,EAAK,QAAA,IAAA,EAAM,QAAA,IAAA,EAAM,QAAA,MAAA,EAAQ,QAAA,IAAA,CAD7C,CAApB;AAIb,SAAA,OAAA,CAAwB,MAAxB,EAAqC;AACpC,WAAO,QAAA,GAAA,CAAI,OAAJ,CAAiB,MAAjB,KAA0B,CAAC,CAAD,CADG;CAArC;AAAgB,QAAA,OAAA,GAAO,OAAP","file":"System/Uri/Scheme.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based on: https://msdn.microsoft.com/en-us/library/system.uri.scheme%28v=vs.110%29.aspx\n */\n\"use strict\";\nexports.File = \"file\";\nexports.FTP = \"ftp\";\nexports.GOPHER = \"gopher\";\nexports.HTTP = \"http\";\nexports.HTTPS = \"https\";\nexports.LDAP = \"ldap\";\nexports.MAILTO = \"mailto\";\nexports.PIPE = \"net.pipe\";\nexports.TCP = \"net.tcp\";\nexports.NEWS = \"news\";\nexports.NNTP = \"nntp\";\nexports.TELNET = \"telnet\";\nexports.UUID = \"uuid\";\nexports.All = Object.freeze([\n exports.File, exports.FTP, exports.GOPHER, exports.HTTP, exports.HTTPS, exports.LDAP, exports.MAILTO, exports.PIPE, exports.TCP, exports.NEWS, exports.NNTP, exports.TELNET, exports.UUID\n]);\nfunction isValid(scheme) {\n return exports.All.indexOf(scheme) != -1;\n}\nexports.isValid = isValid;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based on: https://msdn.microsoft.com/en-us/library/system.uri.scheme%28v=vs.110%29.aspx\r\n */\r\n\r\nimport * as Scheme from \"./SchemeValue\";\r\nimport {SchemeValue} from \"./SchemeValue\";\r\n\r\n\r\n/**\r\n * The resource is a file on the local computer.\r\n */\r\nexport const File:Scheme.File = \"file\";\r\n\r\n\r\n/**\r\n * The resource is accessed through FTP.\r\n */\r\nexport const FTP:Scheme.FTP = \"ftp\";\r\n\r\n\r\n/**\r\n * The resource is accessed through the Gopher protocol.\r\n */\r\nexport const GOPHER:Scheme.Gopher = \"gopher\";\r\n\r\n\r\n/**\r\n * The resource is accessed through HTTP.\r\n */\r\nexport const HTTP:Scheme.HTTP = \"http\";\r\n\r\n\r\n/**\r\n * The resource is accessed through SSL-encrypted HTTP.\r\n */\r\nexport const HTTPS:Scheme.HTTPS = \"https\";\r\n\r\n\r\n/**\r\n * The resource is accessed through the LDAP protocol.\r\n */\r\nexport const LDAP:Scheme.LDAP = \"ldap\";\r\n\r\n\r\n/**\r\n * The resource is an e-mail address and accessed through the SMTP protocol.\r\n */\r\nexport const MAILTO:Scheme.MailTo = \"mailto\";\r\n\r\n\r\n/**\r\n * The resource is accessed through a named pipe.\r\n */\r\nexport const PIPE:Scheme.Pipe = \"net.pipe\";\r\n\r\n\r\n/**\r\n * The resource is accessed from TCP endpoint.\r\n */\r\nexport const TCP:Scheme.TCP = \"net.tcp\";\r\n\r\n\r\n/**\r\n * The resource is accessed through the NNTP protocol.\r\n */\r\nexport const NEWS:Scheme.NNTP = \"news\";\r\n\r\n\r\n/**\r\n * The resource is accessed through the NNTP protocol.\r\n */\r\nexport const NNTP:Scheme.NNTP = \"nntp\";\r\n\r\n\r\n/**\r\n * The resource is accessed through the TELNET protocol.\r\n */\r\nexport const TELNET:Scheme.Telnet = \"telnet\";\r\n\r\n/**\r\n * The resource is accessed through a unique UUID endpoint name for communicating with a service.\r\n */\r\nexport const UUID:Scheme.UUID = \"uuid\";\r\n\r\n/**\r\n * An index of possible values to validate against.\r\n * @type {Array}\r\n */\r\nexport const All:SchemeValue[] = Object.freeze([\r\n\tFile, FTP, GOPHER, HTTP, HTTPS, LDAP, MAILTO, PIPE, TCP, NEWS, NNTP, TELNET, UUID\r\n]);\r\n\r\nexport function isValid(scheme:string):scheme is SchemeValue {\r\n\treturn All.indexOf(scheme)!=-1;\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/commonjs/System/Uri/Uri.d.ts b/dist/commonjs/System/Uri/Uri.d.ts index b48843c9..07123b10 100644 --- a/dist/commonjs/System/Uri/Uri.d.ts +++ b/dist/commonjs/System/Uri/Uri.d.ts @@ -1,14 +1,15 @@ -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based on: https://en.wikipedia.org/wiki/Uniform_Resource_Identifier */ -import UriScheme from "../Uri/Scheme"; -export default class Uri implements IUri, IEquatable { +import * as QueryParam from "./QueryParam"; +import { SchemeValue } from "./SchemeValue"; +import { IUri } from "./IUri"; +import { IMap } from "../Collections/Dictionaries/IDictionary"; +import { Primitive } from "../Primitive"; +import { IEquatable } from "../IEquatable"; +export declare class Uri implements IUri, IEquatable { scheme: SchemeValue; userInfo: string; host: string; @@ -17,14 +18,14 @@ export default class Uri implements IUri, IEquatable { query: string; fragment: string; queryParams: IMap; - constructor(scheme: UriScheme | SchemeValue, userInfo: string, host: string, port: number, path: string, query?: QueryParamsConvertible, fragment?: string); + constructor(scheme: SchemeValue, userInfo: string, host: string, port: number, path: string, query?: QueryParam.Convertible, fragment?: string); equals(other: IUri): boolean; static from(uri: string | IUri, defaults?: IUri): Uri; static parse(url: string, throwIfInvalid?: boolean): IUri; static tryParse(url: string, out: (result: IUri) => void): boolean; static copyOf(map: IUri): IUri; copyTo(map: IUri): IUri; - updateQuery(query: QueryParamsConvertible): Uri; + updateQuery(query: QueryParam.Convertible): Uri; protected getAbsoluteUri(): string; protected getAuthority(): string; protected getPathAndQuery(): string; @@ -47,3 +48,4 @@ export declare enum Fields { query = 5, fragment = 6, } +export default Uri; diff --git a/dist/commonjs/System/Uri/Uri.js b/dist/commonjs/System/Uri/Uri.js index 96f75caf..82b7efbc 100644 --- a/dist/commonjs/System/Uri/Uri.js +++ b/dist/commonjs/System/Uri/Uri.js @@ -3,16 +3,16 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based on: https://en.wikipedia.org/wiki/Uniform_Resource_Identifier */ -'use strict'; +"use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var Types_1 = require("../Types"); -var QueryParams = require("../Uri/QueryParams"); +var QueryParams = require("./QueryParams"); +var Scheme = require("./Scheme"); var Utility_1 = require("../Text/Utility"); -var Scheme_1 = require("../Uri/Scheme"); var ArgumentException_1 = require("../Exceptions/ArgumentException"); var ArgumentOutOfRangeException_1 = require("../Exceptions/ArgumentOutOfRangeException"); var VOID0 = void 0; @@ -28,7 +28,7 @@ var Uri = function () { _.port = getPort(port); _.authority = _.getAuthority() || null; _.path = path || null; - if (!Types_1.default.isString(query)) query = QueryParams.encode(query); + if (!Types_1.Type.isString(query)) query = QueryParams.encode(query); _.query = formatQuery(query) || null; Object.freeze(_.queryParams = _.query ? QueryParams.parseToMap(_.query) : {}); _.pathAndQuery = _.getPathAndQuery() || null; @@ -88,7 +88,7 @@ var Uri = function () { }], [{ key: "from", value: function from(uri, defaults) { - var u = !uri || Types_1.default.isString(uri) ? Uri.parse(uri) : uri; + var u = !uri || Types_1.Type.isString(uri) ? Uri.parse(uri) : uri; return new Uri(u.scheme || defaults && defaults.scheme, u.userInfo || defaults && defaults.userInfo, u.host || defaults && defaults.host, isNaN(u.port) ? defaults && defaults.port : u.port, u.path || defaults && defaults.path, u.query || defaults && defaults.query, u.fragment || defaults && defaults.fragment); } }, { @@ -128,8 +128,7 @@ var Uri = function () { return Uri; }(); -Object.defineProperty(exports, "__esModule", { value: true }); -exports.default = Uri; +exports.Uri = Uri; (function (Fields) { Fields[Fields["scheme"] = 0] = "scheme"; Fields[Fields["userInfo"] = 1] = "userInfo"; @@ -153,40 +152,38 @@ function copyUri(from, to) { } var SLASH = '/', SLASH2 = '//', - QM = '?', + QM = QueryParams.Separator.Query, HASH = '#', EMPTY = '', AT = '@'; function getScheme(scheme) { var s = scheme; - if (Types_1.default.isString(s)) { - if (!s) return VOID0; - s = Scheme_1.default[Utility_1.trim(s).toLowerCase().replace(/[^a-z0-9+.-]+$/g, EMPTY)]; - if (isNaN(s)) throw new ArgumentOutOfRangeException_1.default('scheme', scheme, 'Invalid scheme.'); - } - if (Types_1.default.isNumber(s, false)) { - s = Scheme_1.default[s]; - if (!s) throw new ArgumentOutOfRangeException_1.default('scheme', scheme, 'Invalid scheme.'); - return s; + if (Types_1.Type.isString(s)) { + if (!s) return null; + s = Utility_1.trim(s).toLowerCase().replace(/[^a-z0-9+.-]+$/g, EMPTY); + if (!s) return null; + if (Scheme.isValid(s)) return s; + } else { + if (s === null || s === undefined) return s; } - return VOID0; + throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('scheme', scheme, 'Invalid scheme.'); } function getPort(port) { if (port === 0) return port; if (!port) return null; var p; - if (Types_1.default.isNumber(port, true)) { + if (Types_1.Type.isNumber(port, true)) { p = port; if (p >= 0 && isFinite(p)) return p; - } else if (Types_1.default.isString(port) && (p = parseInt(port)) && !isNaN(p)) { + } else if (Types_1.Type.isString(port) && (p = parseInt(port)) && !isNaN(p)) { return getPort(p); } - throw new ArgumentException_1.default("port", "invalid value"); + throw new ArgumentException_1.ArgumentException("port", "invalid value"); } function _getAuthority(uri) { if (!uri.host) { - if (uri.userInfo) throw new ArgumentException_1.default('host', 'Cannot include user info when there is no host.'); - if (Types_1.default.isNumber(uri.port, false)) throw new ArgumentException_1.default('host', 'Cannot include a port when there is no host.'); + if (uri.userInfo) throw new ArgumentException_1.ArgumentException('host', 'Cannot include user info when there is no host.'); + if (Types_1.Type.isNumber(uri.port, false)) throw new ArgumentException_1.ArgumentException('host', 'Cannot include a port when there is no host.'); } var result = uri.host || EMPTY; if (result) { @@ -214,12 +211,12 @@ function uriToString(uri) { fragment = formatFragment(uri.fragment); var part1 = EMPTY + (scheme && scheme + ':' || EMPTY) + (authority || EMPTY); var part2 = EMPTY + (pathAndQuery || EMPTY) + (fragment || EMPTY); - if (part1 && part2 && scheme && !authority) throw new ArgumentException_1.default('authority', "Cannot format schemed Uri with missing authority."); + if (part1 && part2 && scheme && !authority) throw new ArgumentException_1.ArgumentException('authority', "Cannot format schemed Uri with missing authority."); if (part1 && pathAndQuery && pathAndQuery.indexOf(SLASH) !== 0) part2 = SLASH + part2; return part1 + part2; } function _tryParse(url, out) { - if (!url) return new ArgumentException_1.default('url', 'Nothing to parse.'); + if (!url) return new ArgumentException_1.ArgumentException('url', 'Nothing to parse.'); var i, result = {}; i = url.indexOf(HASH); @@ -236,7 +233,7 @@ function _tryParse(url, out) { if (i != -1) { var scheme = Utility_1.trim(url.substring(0, i)), c = /:$/; - if (!c.test(scheme)) return new ArgumentException_1.default('url', 'Scheme was improperly formatted'); + if (!c.test(scheme)) return new ArgumentException_1.ArgumentException('url', 'Scheme was improperly formatted'); scheme = Utility_1.trim(scheme.replace(c, EMPTY)); try { result.scheme = getScheme(scheme) || VOID0; @@ -258,7 +255,7 @@ function _tryParse(url, out) { i = url.indexOf(':'); if (i != -1) { var port = parseInt(Utility_1.trim(url.substring(i + 1))); - if (isNaN(port)) return new ArgumentException_1.default('url', 'Port was invalid.'); + if (isNaN(port)) return new ArgumentException_1.ArgumentException('url', 'Port was invalid.'); result.port = port; url = url.substring(0, i); } @@ -267,4 +264,6 @@ function _tryParse(url, out) { out(copyUri(result)); return null; } +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = Uri; //# sourceMappingURL=Uri.js.map diff --git a/dist/commonjs/System/Uri/Uri.js.map b/dist/commonjs/System/Uri/Uri.js.map index 4e2c13d0..c54ee0e1 100644 --- a/dist/commonjs/System/Uri/Uri.js.map +++ b/dist/commonjs/System/Uri/Uri.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Uri/Uri.ts","System/Uri/Uri.js"],"names":[],"mappings":"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","file":"System/Uri/Uri.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based on: https://en.wikipedia.org/wiki/Uniform_Resource_Identifier\r\n */\r\n\r\n///\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport Type from \"../Types\";\r\nimport * as QueryParams from \"../Uri/QueryParams\";\r\nimport {trim} from \"../Text/Utility\";\r\nimport UriScheme from \"../Uri/Scheme\";\r\nimport Exception from \"../Exception\";\r\nimport ArgumentException from \"../Exceptions/ArgumentException\";\r\nimport ArgumentOutOfRangeException from \"../Exceptions/ArgumentOutOfRangeException\";\r\n\r\nconst VOID0:any = void(0);\r\n\r\n/**\r\n * Provides an read-only model representation of a uniform resource identifier (URI) and easy access to the parts of the URI.\r\n *\r\n * The read-only model (frozen) is easier for debugging than exposing accessors for each property.\r\n * ICloneable<Uri> is not used to prevent unnecessary copying of values that won't change.\r\n */\r\nexport default class Uri implements IUri, IEquatable\r\n{\r\n\r\n\tscheme:SchemeValue;\r\n\tuserInfo:string;\r\n\thost:string;\r\n\tport:number;\r\n\tpath:string;\r\n\tquery:string;\r\n\tfragment:string;\r\n\r\n\tqueryParams:IMap;\r\n\r\n\t/**\r\n\t * @param scheme The user name, password, or other user-specific information associated with the specified URI.\r\n\t * @param userInfo The host component of this instance.\r\n\t * @param host The port number of this URI.\r\n\t * @param port The absolute path of the URI.\r\n\t * @param path The absolute path of the URI.\r\n\t * @param query Any query information included in the specified URI.\r\n\t * @param fragment The escaped URI fragment.\r\n\t */\r\n\tconstructor(\r\n\t\tscheme:UriScheme|SchemeValue,\r\n\t\tuserInfo:string,\r\n\t\thost:string,\r\n\t\tport:number,\r\n\t\tpath:string,\r\n\t\tquery?:QueryParamsConvertible,\r\n\t\tfragment?:string)\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.scheme = getScheme(scheme) || null;\r\n\t\t_.userInfo = userInfo || null;\r\n\t\t_.host = host || null;\r\n\r\n\t\t_.port = getPort(port);\r\n\r\n\t\t_.authority = _.getAuthority() || null;\r\n\r\n\t\t_.path = path || null;\r\n\r\n\r\n\t\tif(!Type.isString(query))\r\n\t\t\tquery = QueryParams.encode([]>query);\r\n\r\n\t\t_.query = formatQuery(query) || null;\r\n\t\tObject.freeze(_.queryParams\r\n\t\t\t= _.query\r\n\t\t\t? QueryParams.parseToMap(_.query)\r\n\t\t\t: {});\r\n\r\n\t\t_.pathAndQuery = _.getPathAndQuery() || null;\r\n\r\n\t\t_.fragment = formatFragment(fragment) || null;\r\n\r\n\t\t// This should validate the uri...\r\n\t\t_.absoluteUri = _.getAbsoluteUri();\r\n\r\n\t\t_.baseUri = _.absoluteUri.replace(/[?#].*/, '');\r\n\r\n\t\t// Intended to be read-only. Call .toMap() to get a writable copy.\r\n\t\tObject.freeze(_);\r\n\t}\r\n\r\n\t/**\r\n\t * Compares the values of another IUri via toString comparison.\r\n\t * @param other\r\n\t * @returns {boolean}\r\n\t */\r\n\tequals(other:IUri):boolean\r\n\t{\r\n\t\treturn this===other || this.absoluteUri==Uri.toString(other);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Parses or clones values from existing Uri values.\r\n\t * @param uri\r\n\t * @param defaults\r\n\t * @returns {Uri}\r\n\t */\r\n\tstatic from(uri:string|IUri, defaults?:IUri):Uri\r\n\t{\r\n\t\tvar u = (!uri || Type.isString(uri))\r\n\t\t\t? Uri.parse(uri) : uri;\r\n\r\n\t\treturn new Uri(\r\n\t\t\tu.scheme || defaults && defaults.scheme,\r\n\t\t\tu.userInfo || defaults && defaults.userInfo,\r\n\t\t\tu.host || defaults && defaults.host,\r\n\t\t\tisNaN(u.port) ? defaults && defaults.port : u.port,\r\n\t\t\tu.path || defaults && defaults.path,\r\n\t\t\tu.query || defaults && defaults.query,\r\n\t\t\tu.fragment || defaults && defaults.fragment\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * Parses a URL into it's components.\r\n\t * @param url The url to parse.\r\n\t * @param throwIfInvalid Defaults to true.\r\n\t * @returns {IUri} Returns a map of the values or *null* if invalid and *throwIfInvalid* is false.\r\n\t */\r\n\tstatic parse(url:string, throwIfInvalid:boolean = true):IUri\r\n\t{\r\n\t\tvar result:IUri = null;\r\n\t\tvar ex = tryParse(url, (out)=> {result = out;});\r\n\t\tif(throwIfInvalid && ex) throw ex;\r\n\t\treturn result;\r\n\t}\r\n\r\n\t/**\r\n\t * Parses a URL into it's components.\r\n\t * @param url The url to parse.\r\n\t * @param out A delegate to capture the value.\r\n\t * @returns {boolean} True if valid. False if invalid.\r\n\t */\r\n\tstatic tryParse(url:string, out:(result:IUri)=>void):boolean\r\n\t{\r\n\t\treturn !tryParse(url, out); // return type is Exception.\r\n\t}\r\n\r\n\tstatic copyOf(map:IUri):IUri\r\n\t{\r\n\t\treturn copyUri(map);\r\n\t}\r\n\r\n\tcopyTo(map:IUri):IUri\r\n\t{\r\n\t\treturn copyUri(this, map);\r\n\t}\r\n\r\n\tupdateQuery(query:QueryParamsConvertible):Uri\r\n\t{\r\n\t\tvar map = this.toMap();\r\n\t\tmap.query = query;\r\n\t\treturn Uri.from(map);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Is provided for sub classes to override this value.\r\n\t */\r\n\tprotected getAbsoluteUri():string\r\n\t{\r\n\t\treturn uriToString(this);\r\n\t}\r\n\r\n\t/**\r\n\t * Is provided for sub classes to override this value.\r\n\t */\r\n\tprotected getAuthority():string\r\n\t{\r\n\t\treturn getAuthority(this);\r\n\t}\r\n\r\n\t/**\r\n\t * Is provided for sub classes to override this value.\r\n\t */\r\n\tprotected getPathAndQuery():string\r\n\t{\r\n\t\treturn getPathAndQuery(this);\r\n\t}\r\n\r\n\t/**\r\n\t * The absolute URI.\r\n\t */\r\n\tabsoluteUri:string;\r\n\r\n\t/**\r\n\t * Gets the Domain Name System (DNS) host name or IP address and the port number for a server.\r\n\t */\r\n\tauthority:string;\r\n\r\n\t/**\r\n\t * Gets the path and Query properties separated by a question mark (?).\r\n\t */\r\n\tpathAndQuery:string;\r\n\r\n\t/**\r\n\t * Gets the full path without the query or fragment.\r\n\t */\r\n\tbaseUri:string;\r\n\r\n\t/**\r\n\t * The segments that represent a path.
\r\n\t * https://msdn.microsoft.com/en-us/library/system.uri.segments%28v=vs.110%29.aspx\r\n\t *\r\n\t *
Example:
\r\n\t * If the path value equals: ```/tree/node/index.html```
\r\n\t * The result will be: ```['/','tree/','node/','index.html']```\r\n\t * @returns {string[]}\r\n\t */\r\n\tget pathSegments():string[]\r\n\t{\r\n\t\treturn this.path.match(/^[/]|[^/]*[/]|[^/]+$/g);\r\n\t}\r\n\r\n\t/**\r\n\t * Creates a writable copy.\r\n\t * @returns {IUri}\r\n\t */\r\n\ttoMap():IUri\r\n\t{\r\n\t\treturn this.copyTo({});\r\n\t}\r\n\r\n\t/**\r\n\t * @returns {string} The full absolute uri.\r\n\t */\r\n\ttoString():string\r\n\t{\r\n\t\treturn this.absoluteUri;\r\n\t}\r\n\r\n\t/**\r\n\t * Properly converts an existing URI to a string.\r\n\t * @param uri\r\n\t * @returns {string}\r\n\t */\r\n\tstatic toString(uri:IUri):string\r\n\t{\r\n\t\treturn uri instanceof Uri\r\n\t\t\t? (uri).absoluteUri\r\n\t\t\t: uriToString(uri);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the authority segment of an URI.\r\n\t * @param uri\r\n\t * @returns {string}\r\n\t */\r\n\tstatic getAuthority(uri:IUri):string\r\n\t{\r\n\t\treturn getAuthority(uri);\r\n\t}\r\n\r\n\r\n}\r\n\r\nexport enum Fields {\r\n\tscheme,\r\n\tuserInfo,\r\n\thost,\r\n\tport,\r\n\tpath,\r\n\tquery,\r\n\tfragment\r\n}\r\nObject.freeze(Fields);\r\n\r\nfunction copyUri(from:IUri, to?:IUri)\r\n{\r\n\tvar i = 0, field:string;\r\n\tif(!to) to = {};\r\n\twhile(field = Fields[i++])\r\n\t{\r\n\t\tvar value = (from)[field];\r\n\t\tif(value) (to)[field] = value;\r\n\t}\r\n\treturn to;\r\n}\r\n\r\nconst SLASH = '/', SLASH2 = '//', QM = '?', HASH = '#', EMPTY = '', AT = '@';\r\n\r\nfunction getScheme(scheme:UriScheme|string):SchemeValue\r\n{\r\n\tvar s:any = scheme;\r\n\tif(Type.isString(s))\r\n\t{\r\n\t\tif(!s) return VOID0;\r\n\r\n\t\ts = UriScheme[trim(s).toLowerCase().replace(/[^a-z0-9+.-]+$/g, EMPTY)];\r\n\r\n\t\tif(isNaN(s))\r\n\t\t\tthrow new ArgumentOutOfRangeException('scheme', scheme, 'Invalid scheme.');\r\n\t}\r\n\r\n\tif(Type.isNumber(s, false))\r\n\t{\r\n\t\ts = UriScheme[s];\r\n\t\tif(!s)\r\n\t\t\tthrow new ArgumentOutOfRangeException('scheme', scheme, 'Invalid scheme.');\r\n\r\n\t\treturn s;\r\n\t}\r\n\r\n\treturn VOID0;\r\n}\r\n\r\nfunction getPort(port:number|string):number\r\n{\r\n\tif(port===0) return port;\r\n\tif(!port) return null;\r\n\tvar p:number;\r\n\r\n\tif(Type.isNumber(port, true))\r\n\t{\r\n\t\tp = port;\r\n\t\tif(p>=0 && isFinite(p))\r\n\t\t\treturn p;\r\n\t}\r\n\telse if(Type.isString(port) && (p = parseInt(port)) && !isNaN(p))\r\n\t{\r\n\t\treturn getPort(p);\r\n\t}\r\n\r\n\tthrow new ArgumentException(\"port\", \"invalid value\");\r\n}\r\n\r\nfunction getAuthority(uri:IUri):string\r\n{\r\n\r\n\tif(!uri.host)\r\n\t{\r\n\t\tif(uri.userInfo)\r\n\t\t\tthrow new ArgumentException('host', 'Cannot include user info when there is no host.');\r\n\r\n\t\tif(Type.isNumber(uri.port, false))\r\n\t\t\tthrow new ArgumentException('host', 'Cannot include a port when there is no host.');\r\n\t}\r\n\r\n\t/*\r\n\t * [//[user:password@]host[:port]]\r\n\t */\r\n\r\n\tvar result = uri.host || EMPTY;\r\n\r\n\tif(result)\r\n\t{\r\n\t\tif(uri.userInfo) result = uri.userInfo + AT + result;\r\n\t\tif(!isNaN(uri.port)) result += ':' + uri.port;\r\n\t\tresult = SLASH2 + result;\r\n\t}\r\n\r\n\treturn result;\r\n}\r\n\r\nfunction formatQuery(query:string):string\r\n{\r\n\treturn query && ((query.indexOf(QM)!==0 ? QM : EMPTY) + query);\r\n}\r\n\r\nfunction formatFragment(fragment:string):string\r\n{\r\n\treturn fragment && ((fragment.indexOf(HASH)!==0 ? HASH : EMPTY) + fragment);\r\n}\r\n\r\nfunction getPathAndQuery(uri:IUri):string\r\n{\r\n\r\n\tvar path = uri.path,\r\n\t query = uri.query;\r\n\r\n\treturn EMPTY\r\n\t\t+ (path || EMPTY)\r\n\t\t+ (formatQuery(query) || EMPTY);\r\n\r\n}\r\n\r\nfunction uriToString(uri:IUri):string\r\n{\r\n\t// scheme:[//[user:password@]domain[:port]][/]path[?query][#fragment]\r\n\t// {scheme}{authority}{path}{query}{fragment}\r\n\r\n\tvar scheme = getScheme(uri.scheme),\r\n\t authority = getAuthority(uri),\r\n\t pathAndQuery = getPathAndQuery(uri),\r\n\t fragment = formatFragment(uri.fragment);\r\n\r\n\tvar part1 = EMPTY\r\n\t\t+ ((scheme && (scheme + ':')) || EMPTY)\r\n\t\t+ (authority || EMPTY);\r\n\r\n\tvar part2 = EMPTY\r\n\t\t+ (pathAndQuery || EMPTY)\r\n\t\t+ (fragment || EMPTY);\r\n\r\n\tif(part1 && part2 && scheme && !authority)\r\n\t\tthrow new ArgumentException('authority', \"Cannot format schemed Uri with missing authority.\");\r\n\r\n\tif(part1 && pathAndQuery && pathAndQuery.indexOf(SLASH)!==0)\r\n\t\tpart2 = SLASH + part2;\r\n\r\n\treturn part1 + part2;\r\n\r\n}\r\n\r\n\r\nfunction tryParse(url:string, out:(result:IUri)=>void):Exception\r\n{\r\n\tif(!url)\r\n\t\treturn new ArgumentException('url', 'Nothing to parse.');\r\n\r\n\r\n\t// Could use a regex here, but well follow some rules instead.\r\n\t// The intention is to 'gather' the pieces. This isn't validation (yet).\r\n\r\n\t// scheme:[//[user:password@]domain[:port]][/]path[?query][#fragment]\r\n\tvar i:number, result:IUri = {};\r\n\r\n\t// Anything after the first # is the fragment.\r\n\ti = url.indexOf(HASH);\r\n\tif(i!= -1)\r\n\t{\r\n\t\tresult.fragment = url.substring(i + 1) || VOID0;\r\n\t\turl = url.substring(0, i);\r\n\t}\r\n\r\n\t// Anything after the first ? is the query.\r\n\ti = url.indexOf(QM);\r\n\tif(i!= -1)\r\n\t{\r\n\t\tresult.query = url.substring(i + 1) || VOID0;\r\n\t\turl = url.substring(0, i);\r\n\t}\r\n\r\n\t// Guarantees a separation.\r\n\ti = url.indexOf(SLASH2);\r\n\tif(i!= -1)\r\n\t{\r\n\t\tvar scheme = trim(url.substring(0, i)), c = /:$/;\r\n\t\tif(!c.test(scheme))\r\n\t\t\treturn new ArgumentException('url', 'Scheme was improperly formatted');\r\n\r\n\t\tscheme = trim(scheme.replace(c, EMPTY));\r\n\t\ttry\r\n\t\t{\r\n\t\t\tresult.scheme = getScheme(scheme) || VOID0;\r\n\t\t}\r\n\t\tcatch(ex)\r\n\t\t{\r\n\t\t\treturn ex;\r\n\t\t}\r\n\r\n\t\turl = url.substring(i + 2);\r\n\t}\r\n\r\n\t// Find any path information.\r\n\ti = url.indexOf(SLASH);\r\n\tif(i!= -1)\r\n\t{\r\n\t\tresult.path = url.substring(i);\r\n\t\turl = url.substring(0, i);\r\n\t}\r\n\r\n\t// Separate user info.\r\n\ti = url.indexOf(AT);\r\n\tif(i!= -1)\r\n\t{\r\n\t\tresult.userInfo = url.substring(0, i) || VOID0;\r\n\t\turl = url.substring(i + 1);\r\n\t}\r\n\r\n\t// Remaining is host and port.\r\n\ti = url.indexOf(':');\r\n\tif(i!= -1)\r\n\t{\r\n\t\tvar port = parseInt(trim(url.substring(i + 1)));\r\n\t\tif(isNaN(port))\r\n\t\t\treturn new ArgumentException('url', 'Port was invalid.');\r\n\r\n\t\tresult.port = port;\r\n\t\turl = url.substring(0, i);\r\n\t}\r\n\r\n\turl = trim(url);\r\n\tif(url)\r\n\t\tresult.host = url;\r\n\r\n\tout(copyUri(result));\r\n\r\n\t// null is good! (here)\r\n\treturn null;\r\n\r\n}\r\n","/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based on: https://en.wikipedia.org/wiki/Uniform_Resource_Identifier\n */\n'use strict';\nconst Types_1 = require(\"../Types\");\nconst QueryParams = require(\"../Uri/QueryParams\");\nconst Utility_1 = require(\"../Text/Utility\");\nconst Scheme_1 = require(\"../Uri/Scheme\");\nconst ArgumentException_1 = require(\"../Exceptions/ArgumentException\");\nconst ArgumentOutOfRangeException_1 = require(\"../Exceptions/ArgumentOutOfRangeException\");\nconst VOID0 = void (0);\nclass Uri {\n constructor(scheme, userInfo, host, port, path, query, fragment) {\n var _ = this;\n _.scheme = getScheme(scheme) || null;\n _.userInfo = userInfo || null;\n _.host = host || null;\n _.port = getPort(port);\n _.authority = _.getAuthority() || null;\n _.path = path || null;\n if (!Types_1.default.isString(query))\n query = QueryParams.encode(query);\n _.query = formatQuery(query) || null;\n Object.freeze(_.queryParams\n = _.query\n ? QueryParams.parseToMap(_.query)\n : {});\n _.pathAndQuery = _.getPathAndQuery() || null;\n _.fragment = formatFragment(fragment) || null;\n _.absoluteUri = _.getAbsoluteUri();\n _.baseUri = _.absoluteUri.replace(/[?#].*/, '');\n Object.freeze(_);\n }\n equals(other) {\n return this === other || this.absoluteUri == Uri.toString(other);\n }\n static from(uri, defaults) {\n var u = (!uri || Types_1.default.isString(uri))\n ? Uri.parse(uri) : uri;\n return new Uri(u.scheme || defaults && defaults.scheme, u.userInfo || defaults && defaults.userInfo, u.host || defaults && defaults.host, isNaN(u.port) ? defaults && defaults.port : u.port, u.path || defaults && defaults.path, u.query || defaults && defaults.query, u.fragment || defaults && defaults.fragment);\n }\n static parse(url, throwIfInvalid = true) {\n var result = null;\n var ex = tryParse(url, (out) => { result = out; });\n if (throwIfInvalid && ex)\n throw ex;\n return result;\n }\n static tryParse(url, out) {\n return !tryParse(url, out);\n }\n static copyOf(map) {\n return copyUri(map);\n }\n copyTo(map) {\n return copyUri(this, map);\n }\n updateQuery(query) {\n var map = this.toMap();\n map.query = query;\n return Uri.from(map);\n }\n getAbsoluteUri() {\n return uriToString(this);\n }\n getAuthority() {\n return getAuthority(this);\n }\n getPathAndQuery() {\n return getPathAndQuery(this);\n }\n get pathSegments() {\n return this.path.match(/^[/]|[^/]*[/]|[^/]+$/g);\n }\n toMap() {\n return this.copyTo({});\n }\n toString() {\n return this.absoluteUri;\n }\n static toString(uri) {\n return uri instanceof Uri\n ? uri.absoluteUri\n : uriToString(uri);\n }\n static getAuthority(uri) {\n return getAuthority(uri);\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Uri;\n(function (Fields) {\n Fields[Fields[\"scheme\"] = 0] = \"scheme\";\n Fields[Fields[\"userInfo\"] = 1] = \"userInfo\";\n Fields[Fields[\"host\"] = 2] = \"host\";\n Fields[Fields[\"port\"] = 3] = \"port\";\n Fields[Fields[\"path\"] = 4] = \"path\";\n Fields[Fields[\"query\"] = 5] = \"query\";\n Fields[Fields[\"fragment\"] = 6] = \"fragment\";\n})(exports.Fields || (exports.Fields = {}));\nvar Fields = exports.Fields;\nObject.freeze(Fields);\nfunction copyUri(from, to) {\n var i = 0, field;\n if (!to)\n to = {};\n while (field = Fields[i++]) {\n var value = from[field];\n if (value)\n to[field] = value;\n }\n return to;\n}\nconst SLASH = '/', SLASH2 = '//', QM = '?', HASH = '#', EMPTY = '', AT = '@';\nfunction getScheme(scheme) {\n var s = scheme;\n if (Types_1.default.isString(s)) {\n if (!s)\n return VOID0;\n s = Scheme_1.default[Utility_1.trim(s).toLowerCase().replace(/[^a-z0-9+.-]+$/g, EMPTY)];\n if (isNaN(s))\n throw new ArgumentOutOfRangeException_1.default('scheme', scheme, 'Invalid scheme.');\n }\n if (Types_1.default.isNumber(s, false)) {\n s = Scheme_1.default[s];\n if (!s)\n throw new ArgumentOutOfRangeException_1.default('scheme', scheme, 'Invalid scheme.');\n return s;\n }\n return VOID0;\n}\nfunction getPort(port) {\n if (port === 0)\n return port;\n if (!port)\n return null;\n var p;\n if (Types_1.default.isNumber(port, true)) {\n p = port;\n if (p >= 0 && isFinite(p))\n return p;\n }\n else if (Types_1.default.isString(port) && (p = parseInt(port)) && !isNaN(p)) {\n return getPort(p);\n }\n throw new ArgumentException_1.default(\"port\", \"invalid value\");\n}\nfunction getAuthority(uri) {\n if (!uri.host) {\n if (uri.userInfo)\n throw new ArgumentException_1.default('host', 'Cannot include user info when there is no host.');\n if (Types_1.default.isNumber(uri.port, false))\n throw new ArgumentException_1.default('host', 'Cannot include a port when there is no host.');\n }\n var result = uri.host || EMPTY;\n if (result) {\n if (uri.userInfo)\n result = uri.userInfo + AT + result;\n if (!isNaN(uri.port))\n result += ':' + uri.port;\n result = SLASH2 + result;\n }\n return result;\n}\nfunction formatQuery(query) {\n return query && ((query.indexOf(QM) !== 0 ? QM : EMPTY) + query);\n}\nfunction formatFragment(fragment) {\n return fragment && ((fragment.indexOf(HASH) !== 0 ? HASH : EMPTY) + fragment);\n}\nfunction getPathAndQuery(uri) {\n var path = uri.path, query = uri.query;\n return EMPTY\n + (path || EMPTY)\n + (formatQuery(query) || EMPTY);\n}\nfunction uriToString(uri) {\n var scheme = getScheme(uri.scheme), authority = getAuthority(uri), pathAndQuery = getPathAndQuery(uri), fragment = formatFragment(uri.fragment);\n var part1 = EMPTY\n + ((scheme && (scheme + ':')) || EMPTY)\n + (authority || EMPTY);\n var part2 = EMPTY\n + (pathAndQuery || EMPTY)\n + (fragment || EMPTY);\n if (part1 && part2 && scheme && !authority)\n throw new ArgumentException_1.default('authority', \"Cannot format schemed Uri with missing authority.\");\n if (part1 && pathAndQuery && pathAndQuery.indexOf(SLASH) !== 0)\n part2 = SLASH + part2;\n return part1 + part2;\n}\nfunction tryParse(url, out) {\n if (!url)\n return new ArgumentException_1.default('url', 'Nothing to parse.');\n var i, result = {};\n i = url.indexOf(HASH);\n if (i != -1) {\n result.fragment = url.substring(i + 1) || VOID0;\n url = url.substring(0, i);\n }\n i = url.indexOf(QM);\n if (i != -1) {\n result.query = url.substring(i + 1) || VOID0;\n url = url.substring(0, i);\n }\n i = url.indexOf(SLASH2);\n if (i != -1) {\n var scheme = Utility_1.trim(url.substring(0, i)), c = /:$/;\n if (!c.test(scheme))\n return new ArgumentException_1.default('url', 'Scheme was improperly formatted');\n scheme = Utility_1.trim(scheme.replace(c, EMPTY));\n try {\n result.scheme = getScheme(scheme) || VOID0;\n }\n catch (ex) {\n return ex;\n }\n url = url.substring(i + 2);\n }\n i = url.indexOf(SLASH);\n if (i != -1) {\n result.path = url.substring(i);\n url = url.substring(0, i);\n }\n i = url.indexOf(AT);\n if (i != -1) {\n result.userInfo = url.substring(0, i) || VOID0;\n url = url.substring(i + 1);\n }\n i = url.indexOf(':');\n if (i != -1) {\n var port = parseInt(Utility_1.trim(url.substring(i + 1)));\n if (isNaN(port))\n return new ArgumentException_1.default('url', 'Port was invalid.');\n result.port = port;\n url = url.substring(0, i);\n }\n url = Utility_1.trim(url);\n if (url)\n result.host = url;\n out(copyUri(result));\n return null;\n}\n"]} \ No newline at end of file +{"version":3,"sources":["System/Uri/Uri.js","System/Uri/Uri.ts"],"names":[],"mappings":"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","file":"System/Uri/Uri.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based on: https://en.wikipedia.org/wiki/Uniform_Resource_Identifier\n */\n\"use strict\";\nconst Types_1 = require(\"../Types\");\nconst QueryParams = require(\"./QueryParams\");\nconst Scheme = require(\"./Scheme\");\nconst Utility_1 = require(\"../Text/Utility\");\nconst ArgumentException_1 = require(\"../Exceptions/ArgumentException\");\nconst ArgumentOutOfRangeException_1 = require(\"../Exceptions/ArgumentOutOfRangeException\");\nconst VOID0 = void (0);\nclass Uri {\n constructor(scheme, userInfo, host, port, path, query, fragment) {\n var _ = this;\n _.scheme = getScheme(scheme) || null;\n _.userInfo = userInfo || null;\n _.host = host || null;\n _.port = getPort(port);\n _.authority = _.getAuthority() || null;\n _.path = path || null;\n if (!Types_1.Type.isString(query))\n query = QueryParams.encode(query);\n _.query = formatQuery(query) || null;\n Object.freeze(_.queryParams\n = _.query\n ? QueryParams.parseToMap(_.query)\n : {});\n _.pathAndQuery = _.getPathAndQuery() || null;\n _.fragment = formatFragment(fragment) || null;\n _.absoluteUri = _.getAbsoluteUri();\n _.baseUri = _.absoluteUri.replace(/[?#].*/, '');\n Object.freeze(_);\n }\n equals(other) {\n return this === other || this.absoluteUri == Uri.toString(other);\n }\n static from(uri, defaults) {\n var u = (!uri || Types_1.Type.isString(uri))\n ? Uri.parse(uri) : uri;\n return new Uri(u.scheme || defaults && defaults.scheme, u.userInfo || defaults && defaults.userInfo, u.host || defaults && defaults.host, isNaN(u.port) ? defaults && defaults.port : u.port, u.path || defaults && defaults.path, u.query || defaults && defaults.query, u.fragment || defaults && defaults.fragment);\n }\n static parse(url, throwIfInvalid = true) {\n var result = null;\n var ex = tryParse(url, (out) => { result = out; });\n if (throwIfInvalid && ex)\n throw ex;\n return result;\n }\n static tryParse(url, out) {\n return !tryParse(url, out);\n }\n static copyOf(map) {\n return copyUri(map);\n }\n copyTo(map) {\n return copyUri(this, map);\n }\n updateQuery(query) {\n var map = this.toMap();\n map.query = query;\n return Uri.from(map);\n }\n getAbsoluteUri() {\n return uriToString(this);\n }\n getAuthority() {\n return getAuthority(this);\n }\n getPathAndQuery() {\n return getPathAndQuery(this);\n }\n get pathSegments() {\n return this.path.match(/^[/]|[^/]*[/]|[^/]+$/g);\n }\n toMap() {\n return this.copyTo({});\n }\n toString() {\n return this.absoluteUri;\n }\n static toString(uri) {\n return uri instanceof Uri\n ? uri.absoluteUri\n : uriToString(uri);\n }\n static getAuthority(uri) {\n return getAuthority(uri);\n }\n}\nexports.Uri = Uri;\n(function (Fields) {\n Fields[Fields[\"scheme\"] = 0] = \"scheme\";\n Fields[Fields[\"userInfo\"] = 1] = \"userInfo\";\n Fields[Fields[\"host\"] = 2] = \"host\";\n Fields[Fields[\"port\"] = 3] = \"port\";\n Fields[Fields[\"path\"] = 4] = \"path\";\n Fields[Fields[\"query\"] = 5] = \"query\";\n Fields[Fields[\"fragment\"] = 6] = \"fragment\";\n})(exports.Fields || (exports.Fields = {}));\nvar Fields = exports.Fields;\nObject.freeze(Fields);\nfunction copyUri(from, to) {\n var i = 0, field;\n if (!to)\n to = {};\n while (field = Fields[i++]) {\n var value = from[field];\n if (value)\n to[field] = value;\n }\n return to;\n}\nconst SLASH = '/', SLASH2 = '//', QM = QueryParams.Separator.Query, HASH = '#', EMPTY = '', AT = '@';\nfunction getScheme(scheme) {\n var s = scheme;\n if (Types_1.Type.isString(s)) {\n if (!s)\n return null;\n s = Utility_1.trim(s).toLowerCase().replace(/[^a-z0-9+.-]+$/g, EMPTY);\n if (!s)\n return null;\n if (Scheme.isValid(s))\n return s;\n }\n else {\n if (s === null || s === undefined)\n return s;\n }\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('scheme', scheme, 'Invalid scheme.');\n}\nfunction getPort(port) {\n if (port === 0)\n return port;\n if (!port)\n return null;\n var p;\n if (Types_1.Type.isNumber(port, true)) {\n p = port;\n if (p >= 0 && isFinite(p))\n return p;\n }\n else if (Types_1.Type.isString(port) && (p = parseInt(port)) && !isNaN(p)) {\n return getPort(p);\n }\n throw new ArgumentException_1.ArgumentException(\"port\", \"invalid value\");\n}\nfunction getAuthority(uri) {\n if (!uri.host) {\n if (uri.userInfo)\n throw new ArgumentException_1.ArgumentException('host', 'Cannot include user info when there is no host.');\n if (Types_1.Type.isNumber(uri.port, false))\n throw new ArgumentException_1.ArgumentException('host', 'Cannot include a port when there is no host.');\n }\n var result = uri.host || EMPTY;\n if (result) {\n if (uri.userInfo)\n result = uri.userInfo + AT + result;\n if (!isNaN(uri.port))\n result += ':' + uri.port;\n result = SLASH2 + result;\n }\n return result;\n}\nfunction formatQuery(query) {\n return query && ((query.indexOf(QM) !== 0 ? QM : EMPTY) + query);\n}\nfunction formatFragment(fragment) {\n return fragment && ((fragment.indexOf(HASH) !== 0 ? HASH : EMPTY) + fragment);\n}\nfunction getPathAndQuery(uri) {\n var path = uri.path, query = uri.query;\n return EMPTY\n + (path || EMPTY)\n + (formatQuery(query) || EMPTY);\n}\nfunction uriToString(uri) {\n var scheme = getScheme(uri.scheme), authority = getAuthority(uri), pathAndQuery = getPathAndQuery(uri), fragment = formatFragment(uri.fragment);\n var part1 = EMPTY\n + ((scheme && (scheme + ':')) || EMPTY)\n + (authority || EMPTY);\n var part2 = EMPTY\n + (pathAndQuery || EMPTY)\n + (fragment || EMPTY);\n if (part1 && part2 && scheme && !authority)\n throw new ArgumentException_1.ArgumentException('authority', \"Cannot format schemed Uri with missing authority.\");\n if (part1 && pathAndQuery && pathAndQuery.indexOf(SLASH) !== 0)\n part2 = SLASH + part2;\n return part1 + part2;\n}\nfunction tryParse(url, out) {\n if (!url)\n return new ArgumentException_1.ArgumentException('url', 'Nothing to parse.');\n var i, result = {};\n i = url.indexOf(HASH);\n if (i != -1) {\n result.fragment = url.substring(i + 1) || VOID0;\n url = url.substring(0, i);\n }\n i = url.indexOf(QM);\n if (i != -1) {\n result.query = url.substring(i + 1) || VOID0;\n url = url.substring(0, i);\n }\n i = url.indexOf(SLASH2);\n if (i != -1) {\n var scheme = Utility_1.trim(url.substring(0, i)), c = /:$/;\n if (!c.test(scheme))\n return new ArgumentException_1.ArgumentException('url', 'Scheme was improperly formatted');\n scheme = Utility_1.trim(scheme.replace(c, EMPTY));\n try {\n result.scheme = getScheme(scheme) || VOID0;\n }\n catch (ex) {\n return ex;\n }\n url = url.substring(i + 2);\n }\n i = url.indexOf(SLASH);\n if (i != -1) {\n result.path = url.substring(i);\n url = url.substring(0, i);\n }\n i = url.indexOf(AT);\n if (i != -1) {\n result.userInfo = url.substring(0, i) || VOID0;\n url = url.substring(i + 1);\n }\n i = url.indexOf(':');\n if (i != -1) {\n var port = parseInt(Utility_1.trim(url.substring(i + 1)));\n if (isNaN(port))\n return new ArgumentException_1.ArgumentException('url', 'Port was invalid.');\n result.port = port;\n url = url.substring(0, i);\n }\n url = Utility_1.trim(url);\n if (url)\n result.host = url;\n out(copyUri(result));\n return null;\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Uri;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based on: https://en.wikipedia.org/wiki/Uniform_Resource_Identifier\r\n */\r\n\r\n\r\nimport {Type} from \"../Types\";\r\nimport * as QueryParams from \"./QueryParams\";\r\nimport * as QueryParam from \"./QueryParam\";\r\nimport * as UriComponent from \"./UriComponent\";\r\nimport * as Scheme from \"./Scheme\";\r\nimport {SchemeValue} from \"./SchemeValue\";\r\nimport {trim} from \"../Text/Utility\";\r\nimport {Exception} from \"../Exception\";\r\nimport {ArgumentException} from \"../Exceptions/ArgumentException\";\r\nimport {ArgumentOutOfRangeException} from \"../Exceptions/ArgumentOutOfRangeException\";\r\nimport {IUri} from \"./IUri\";\r\nimport {IMap} from \"../Collections/Dictionaries/IDictionary\";\r\nimport {Primitive} from \"../Primitive\";\r\nimport {StringKeyValuePair} from \"../KeyValuePair\";\r\nimport {IEquatable} from \"../IEquatable\";\r\n\r\nconst VOID0:any = void(0);\r\n\r\n/**\r\n * Provides an read-only model representation of a uniform resource identifier (URI) and easy access to the parts of the URI.\r\n *\r\n * The read-only model (frozen) is easier for debugging than exposing accessors for each property.\r\n * ICloneable<Uri> is not used to prevent unnecessary copying of values that won't change.\r\n */\r\nexport class Uri implements IUri, IEquatable\r\n{\r\n\r\n\tscheme:SchemeValue;\r\n\tuserInfo:string;\r\n\thost:string;\r\n\tport:number;\r\n\tpath:string;\r\n\tquery:string;\r\n\tfragment:string;\r\n\r\n\tqueryParams:IMap;\r\n\r\n\t/**\r\n\t * @param scheme The user name, password, or other user-specific information associated with the specified URI.\r\n\t * @param userInfo The host component of this instance.\r\n\t * @param host The port number of this URI.\r\n\t * @param port The absolute path of the URI.\r\n\t * @param path The absolute path of the URI.\r\n\t * @param query Any query information included in the specified URI.\r\n\t * @param fragment The escaped URI fragment.\r\n\t */\r\n\tconstructor(\r\n\t\tscheme:SchemeValue,\r\n\t\tuserInfo:string,\r\n\t\thost:string,\r\n\t\tport:number,\r\n\t\tpath:string,\r\n\t\tquery?:QueryParam.Convertible,\r\n\t\tfragment?:string)\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.scheme = getScheme(scheme) || null;\r\n\t\t_.userInfo = userInfo || null;\r\n\t\t_.host = host || null;\r\n\r\n\t\t_.port = getPort(port);\r\n\r\n\t\t_.authority = _.getAuthority() || null;\r\n\r\n\t\t_.path = path || null;\r\n\r\n\r\n\t\tif(!Type.isString(query))\r\n\t\t\tquery = QueryParams.encode([]>query);\r\n\r\n\t\t_.query = formatQuery(query) || null;\r\n\t\tObject.freeze(_.queryParams\r\n\t\t\t= _.query\r\n\t\t\t? QueryParams.parseToMap(_.query)\r\n\t\t\t: {});\r\n\r\n\t\t_.pathAndQuery = _.getPathAndQuery() || null;\r\n\r\n\t\t_.fragment = formatFragment(fragment) || null;\r\n\r\n\t\t// This should validate the uri...\r\n\t\t_.absoluteUri = _.getAbsoluteUri();\r\n\r\n\t\t_.baseUri = _.absoluteUri.replace(/[?#].*/, '');\r\n\r\n\t\t// Intended to be read-only. Call .toMap() to get a writable copy.\r\n\t\tObject.freeze(_);\r\n\t}\r\n\r\n\t/**\r\n\t * Compares the values of another IUri via toString comparison.\r\n\t * @param other\r\n\t * @returns {boolean}\r\n\t */\r\n\tequals(other:IUri):boolean\r\n\t{\r\n\t\treturn this===other || this.absoluteUri==Uri.toString(other);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Parses or clones values from existing Uri values.\r\n\t * @param uri\r\n\t * @param defaults\r\n\t * @returns {Uri}\r\n\t */\r\n\tstatic from(uri:string|IUri, defaults?:IUri):Uri\r\n\t{\r\n\t\tvar u = (!uri || Type.isString(uri))\r\n\t\t\t? Uri.parse(uri) : uri;\r\n\r\n\t\treturn new Uri(\r\n\t\t\tu.scheme || defaults && defaults.scheme,\r\n\t\t\tu.userInfo || defaults && defaults.userInfo,\r\n\t\t\tu.host || defaults && defaults.host,\r\n\t\t\tisNaN(u.port) ? defaults && defaults.port : u.port,\r\n\t\t\tu.path || defaults && defaults.path,\r\n\t\t\tu.query || defaults && defaults.query,\r\n\t\t\tu.fragment || defaults && defaults.fragment\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * Parses a URL into it's components.\r\n\t * @param url The url to parse.\r\n\t * @param throwIfInvalid Defaults to true.\r\n\t * @returns {IUri} Returns a map of the values or *null* if invalid and *throwIfInvalid* is false.\r\n\t */\r\n\tstatic parse(url:string, throwIfInvalid:boolean = true):IUri\r\n\t{\r\n\t\tvar result:IUri = null;\r\n\t\tvar ex = tryParse(url, (out)=> {result = out;});\r\n\t\tif(throwIfInvalid && ex) throw ex;\r\n\t\treturn result;\r\n\t}\r\n\r\n\t/**\r\n\t * Parses a URL into it's components.\r\n\t * @param url The url to parse.\r\n\t * @param out A delegate to capture the value.\r\n\t * @returns {boolean} True if valid. False if invalid.\r\n\t */\r\n\tstatic tryParse(url:string, out:(result:IUri)=>void):boolean\r\n\t{\r\n\t\treturn !tryParse(url, out); // return type is Exception.\r\n\t}\r\n\r\n\tstatic copyOf(map:IUri):IUri\r\n\t{\r\n\t\treturn copyUri(map);\r\n\t}\r\n\r\n\tcopyTo(map:IUri):IUri\r\n\t{\r\n\t\treturn copyUri(this, map);\r\n\t}\r\n\r\n\tupdateQuery(query:QueryParam.Convertible):Uri\r\n\t{\r\n\t\tvar map = this.toMap();\r\n\t\tmap.query = query;\r\n\t\treturn Uri.from(map);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Is provided for sub classes to override this value.\r\n\t */\r\n\tprotected getAbsoluteUri():string\r\n\t{\r\n\t\treturn uriToString(this);\r\n\t}\r\n\r\n\t/**\r\n\t * Is provided for sub classes to override this value.\r\n\t */\r\n\tprotected getAuthority():string\r\n\t{\r\n\t\treturn getAuthority(this);\r\n\t}\r\n\r\n\t/**\r\n\t * Is provided for sub classes to override this value.\r\n\t */\r\n\tprotected getPathAndQuery():string\r\n\t{\r\n\t\treturn getPathAndQuery(this);\r\n\t}\r\n\r\n\t/**\r\n\t * The absolute URI.\r\n\t */\r\n\tabsoluteUri:string;\r\n\r\n\t/**\r\n\t * Gets the Domain Name System (DNS) host name or IP address and the port number for a server.\r\n\t */\r\n\tauthority:string;\r\n\r\n\t/**\r\n\t * Gets the path and Query properties separated by a question mark (?).\r\n\t */\r\n\tpathAndQuery:string;\r\n\r\n\t/**\r\n\t * Gets the full path without the query or fragment.\r\n\t */\r\n\tbaseUri:string;\r\n\r\n\t/**\r\n\t * The segments that represent a path.
\r\n\t * https://msdn.microsoft.com/en-us/library/system.uri.segments%28v=vs.110%29.aspx\r\n\t *\r\n\t *
Example:
\r\n\t * If the path value equals: ```/tree/node/index.html```
\r\n\t * The result will be: ```['/','tree/','node/','index.html']```\r\n\t * @returns {string[]}\r\n\t */\r\n\tget pathSegments():string[]\r\n\t{\r\n\t\treturn this.path.match(/^[/]|[^/]*[/]|[^/]+$/g);\r\n\t}\r\n\r\n\t/**\r\n\t * Creates a writable copy.\r\n\t * @returns {IUri}\r\n\t */\r\n\ttoMap():IUri\r\n\t{\r\n\t\treturn this.copyTo({});\r\n\t}\r\n\r\n\t/**\r\n\t * @returns {string} The full absolute uri.\r\n\t */\r\n\ttoString():string\r\n\t{\r\n\t\treturn this.absoluteUri;\r\n\t}\r\n\r\n\t/**\r\n\t * Properly converts an existing URI to a string.\r\n\t * @param uri\r\n\t * @returns {string}\r\n\t */\r\n\tstatic toString(uri:IUri):string\r\n\t{\r\n\t\treturn uri instanceof Uri\r\n\t\t\t? (uri).absoluteUri\r\n\t\t\t: uriToString(uri);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the authority segment of an URI.\r\n\t * @param uri\r\n\t * @returns {string}\r\n\t */\r\n\tstatic getAuthority(uri:IUri):string\r\n\t{\r\n\t\treturn getAuthority(uri);\r\n\t}\r\n\r\n\r\n}\r\n\r\nexport enum Fields {\r\n\tscheme,\r\n\tuserInfo,\r\n\thost,\r\n\tport,\r\n\tpath,\r\n\tquery,\r\n\tfragment\r\n}\r\nObject.freeze(Fields);\r\n\r\nfunction copyUri(from:IUri, to?:IUri)\r\n{\r\n\tvar i = 0, field:string;\r\n\tif(!to) to = {};\r\n\twhile(field = Fields[i++])\r\n\t{\r\n\t\tvar value = (from)[field];\r\n\t\tif(value) (to)[field] = value;\r\n\t}\r\n\treturn to;\r\n}\r\n\r\nconst SLASH = '/', SLASH2 = '//', QM = QueryParams.Separator.Query, HASH = '#', EMPTY = '', AT = '@';\r\n\r\nfunction getScheme(scheme:string):SchemeValue\r\n{\r\n\tvar s:any = scheme;\r\n\tif(Type.isString(s))\r\n\t{\r\n\t\tif(!s) return null;\r\n\t\ts = trim(s).toLowerCase().replace(/[^a-z0-9+.-]+$/g, EMPTY);\r\n\t\tif(!s) return null;\r\n\t\tif(Scheme.isValid(s)) return s;\r\n\t} else {\r\n\t\tif(s===null || s===undefined) return s;\r\n\t}\r\n\tthrow new ArgumentOutOfRangeException('scheme', scheme, 'Invalid scheme.');\r\n}\r\n\r\nfunction getPort(port:number|string):number\r\n{\r\n\tif(port===0) return port;\r\n\tif(!port) return null;\r\n\tvar p:number;\r\n\r\n\tif(Type.isNumber(port, true))\r\n\t{\r\n\t\tp = port;\r\n\t\tif(p>=0 && isFinite(p))\r\n\t\t\treturn p;\r\n\t}\r\n\telse if(Type.isString(port) && (p = parseInt(port)) && !isNaN(p))\r\n\t{\r\n\t\treturn getPort(p);\r\n\t}\r\n\r\n\tthrow new ArgumentException(\"port\", \"invalid value\");\r\n}\r\n\r\nfunction getAuthority(uri:IUri):string\r\n{\r\n\r\n\tif(!uri.host)\r\n\t{\r\n\t\tif(uri.userInfo)\r\n\t\t\tthrow new ArgumentException('host', 'Cannot include user info when there is no host.');\r\n\r\n\t\tif(Type.isNumber(uri.port, false))\r\n\t\t\tthrow new ArgumentException('host', 'Cannot include a port when there is no host.');\r\n\t}\r\n\r\n\t/*\r\n\t * [//[user:password@]host[:port]]\r\n\t */\r\n\r\n\tvar result = uri.host || EMPTY;\r\n\r\n\tif(result)\r\n\t{\r\n\t\tif(uri.userInfo) result = uri.userInfo + AT + result;\r\n\t\tif(!isNaN(uri.port)) result += ':' + uri.port;\r\n\t\tresult = SLASH2 + result;\r\n\t}\r\n\r\n\treturn result;\r\n}\r\n\r\nfunction formatQuery(query:string):string\r\n{\r\n\treturn query && ((query.indexOf(QM)!==0 ? QM : EMPTY) + query);\r\n}\r\n\r\nfunction formatFragment(fragment:string):string\r\n{\r\n\treturn fragment && ((fragment.indexOf(HASH)!==0 ? HASH : EMPTY) + fragment);\r\n}\r\n\r\nfunction getPathAndQuery(uri:IUri):string\r\n{\r\n\r\n\tvar path = uri.path,\r\n\t query = uri.query;\r\n\r\n\treturn EMPTY\r\n\t\t+ (path || EMPTY)\r\n\t\t+ (formatQuery(query) || EMPTY);\r\n\r\n}\r\n\r\nfunction uriToString(uri:IUri):string\r\n{\r\n\t// scheme:[//[user:password@]domain[:port]][/]path[?query][#fragment]\r\n\t// {scheme}{authority}{path}{query}{fragment}\r\n\r\n\tvar scheme = getScheme(uri.scheme),\r\n\t authority = getAuthority(uri),\r\n\t pathAndQuery = getPathAndQuery(uri),\r\n\t fragment = formatFragment(uri.fragment);\r\n\r\n\tvar part1 = EMPTY\r\n\t\t+ ((scheme && (scheme + ':')) || EMPTY)\r\n\t\t+ (authority || EMPTY);\r\n\r\n\tvar part2 = EMPTY\r\n\t\t+ (pathAndQuery || EMPTY)\r\n\t\t+ (fragment || EMPTY);\r\n\r\n\tif(part1 && part2 && scheme && !authority)\r\n\t\tthrow new ArgumentException('authority', \"Cannot format schemed Uri with missing authority.\");\r\n\r\n\tif(part1 && pathAndQuery && pathAndQuery.indexOf(SLASH)!==0)\r\n\t\tpart2 = SLASH + part2;\r\n\r\n\treturn part1 + part2;\r\n\r\n}\r\n\r\n\r\nfunction tryParse(url:string, out:(result:IUri)=>void):Exception\r\n{\r\n\tif(!url)\r\n\t\treturn new ArgumentException('url', 'Nothing to parse.');\r\n\r\n\r\n\t// Could use a regex here, but well follow some rules instead.\r\n\t// The intention is to 'gather' the pieces. This isn't validation (yet).\r\n\r\n\t// scheme:[//[user:password@]domain[:port]][/]path[?query][#fragment]\r\n\tvar i:number, result:IUri = {};\r\n\r\n\t// Anything after the first # is the fragment.\r\n\ti = url.indexOf(HASH);\r\n\tif(i!= -1)\r\n\t{\r\n\t\tresult.fragment = url.substring(i + 1) || VOID0;\r\n\t\turl = url.substring(0, i);\r\n\t}\r\n\r\n\t// Anything after the first ? is the query.\r\n\ti = url.indexOf(QM);\r\n\tif(i!= -1)\r\n\t{\r\n\t\tresult.query = url.substring(i + 1) || VOID0;\r\n\t\turl = url.substring(0, i);\r\n\t}\r\n\r\n\t// Guarantees a separation.\r\n\ti = url.indexOf(SLASH2);\r\n\tif(i!= -1)\r\n\t{\r\n\t\tvar scheme = trim(url.substring(0, i)), c = /:$/;\r\n\t\tif(!c.test(scheme))\r\n\t\t\treturn new ArgumentException('url', 'Scheme was improperly formatted');\r\n\r\n\t\tscheme = trim(scheme.replace(c, EMPTY));\r\n\t\ttry\r\n\t\t{\r\n\t\t\tresult.scheme = getScheme(scheme) || VOID0;\r\n\t\t}\r\n\t\tcatch(ex)\r\n\t\t{\r\n\t\t\treturn ex;\r\n\t\t}\r\n\r\n\t\turl = url.substring(i + 2);\r\n\t}\r\n\r\n\t// Find any path information.\r\n\ti = url.indexOf(SLASH);\r\n\tif(i!= -1)\r\n\t{\r\n\t\tresult.path = url.substring(i);\r\n\t\turl = url.substring(0, i);\r\n\t}\r\n\r\n\t// Separate user info.\r\n\ti = url.indexOf(AT);\r\n\tif(i!= -1)\r\n\t{\r\n\t\tresult.userInfo = url.substring(0, i) || VOID0;\r\n\t\turl = url.substring(i + 1);\r\n\t}\r\n\r\n\t// Remaining is host and port.\r\n\ti = url.indexOf(':');\r\n\tif(i!= -1)\r\n\t{\r\n\t\tvar port = parseInt(trim(url.substring(i + 1)));\r\n\t\tif(isNaN(port))\r\n\t\t\treturn new ArgumentException('url', 'Port was invalid.');\r\n\r\n\t\tresult.port = port;\r\n\t\turl = url.substring(0, i);\r\n\t}\r\n\r\n\turl = trim(url);\r\n\tif(url)\r\n\t\tresult.host = url;\r\n\r\n\tout(copyUri(result));\r\n\r\n\t// null is good! (here)\r\n\treturn null;\r\n\r\n}\r\n\r\nexport default Uri;"]} \ No newline at end of file diff --git a/dist/commonjs/System/Utility/clone.js b/dist/commonjs/System/Utility/clone.js index e39a5933..59fa74a4 100644 --- a/dist/commonjs/System/Utility/clone.js +++ b/dist/commonjs/System/Utility/clone.js @@ -4,12 +4,12 @@ */ "use strict"; -var Types_1 = require('../Types'); +var Types_1 = require("../Types"); function clone(source) { var depth = arguments.length <= 1 || arguments[1] === undefined ? 0 : arguments[1]; if (depth < 0) return source; - if (!Types_1.default.isObject(source)) return source; + if (!Types_1.Type.isObject(source)) return source; var result; if (Array.isArray(source)) { result = source.slice(); diff --git a/dist/commonjs/System/Utility/clone.js.map b/dist/commonjs/System/Utility/clone.js.map index f022ef65..2d550b72 100644 --- a/dist/commonjs/System/Utility/clone.js.map +++ b/dist/commonjs/System/Utility/clone.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Utility/clone.js","System/Utility/clone.ts"],"names":[],"mappings":";;;;AAIA;;ACCA,IAAA,UAAA,QAAiB,UAAjB,CAAA;AAEA,SAAA,KAAA,CAA8B,MAA9B,EAA0D;QAAhB,8DAAe,iBAAC;;AAEzD,QAAG,QAAM,CAAN,EACF,OAAO,MAAP,CADD;AAIA,QAAG,CAAC,QAAA,OAAA,CAAK,QAAL,CAAc,MAAd,CAAD,EAAwB,OAAO,MAAP,CAA3B;AAEA,QAAI,MAAJ,CARyD;AASzD,QAAG,MAAM,OAAN,CAAc,MAAd,CAAH,EACA;AACC,iBAAe,OAAQ,KAAR,EAAf,CADD;AAEC,YAAG,QAAM,CAAN,EACH;AACC,iBAAI,IAAI,IAAI,CAAJ,EAAO,IAAE,OAAO,MAAP,EAAe,GAAhC,EACA;AACC,uBAAO,CAAP,IAAY,MAAM,OAAO,CAAP,CAAN,EAAiB,QAAQ,CAAR,CAA7B,CADD;aADA;SAFD;KAHD,MAYA;AACC,iBAAS,EAAT,CADD;AAEC,YAAG,QAAM,CAAN,EAAS,KAAI,IAAI,CAAJ,IAAS,MAAb,EACZ;AAEC,mBAAO,CAAP,IAAY,MAAM,OAAO,CAAP,CAAN,EAAiB,QAAQ,CAAR,CAA7B,CAFD;SADY;KAdb;AAqBA,WAAO,MAAP,CA9ByD;CAA1D;AAAA,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADuBA,QAAQ,OAAR,GAAkB,KAAlB","file":"System/Utility/clone.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst Types_1 = require('../Types');\nfunction clone(source, depth = 0) {\n if (depth < 0)\n return source;\n if (!Types_1.default.isObject(source))\n return source;\n var result;\n if (Array.isArray(source)) {\n result = source.slice();\n if (depth > 0) {\n for (let i = 0; i < result.length; i++) {\n result[i] = clone(result[i], depth - 1);\n }\n }\n }\n else {\n result = {};\n if (depth > 0)\n for (let k in source) {\n result[k] = clone(source[k], depth - 1);\n }\n }\n return result;\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = clone;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport Type from '../Types';\r\n\r\nexport default function clone(source:any, depth:number = 0):any\r\n{\r\n\tif(depth<0)\r\n\t\treturn source;\r\n\r\n\t// return primitives as is.\r\n\tif(!Type.isObject(source)) return source;\r\n\r\n\tvar result:any;\r\n\tif(Array.isArray(source))\r\n\t{\r\n\t\tresult = (source).slice();\r\n\t\tif(depth>0)\r\n\t\t{\r\n\t\t\tfor(let i = 0; i0) for(let k in source)\r\n\t\t{\r\n\t\t\t//noinspection JSUnfilteredForInLoop\r\n\t\t\tresult[k] = clone(source[k], depth - 1);\r\n\t\t}\r\n\t}\r\n\r\n\treturn result;\r\n\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Utility/clone.js","System/Utility/clone.ts"],"names":[],"mappings":";;;;AAIA;;ACCA,IAAA,UAAA,QAAmB,UAAnB,CAAA;AAEA,SAAA,KAAA,CAA8B,MAA9B,EAA0D;QAAhB,8DAAe,iBAAC;;AAEzD,QAAG,QAAM,CAAN,EACF,OAAO,MAAP,CADD;AAIA,QAAG,CAAC,QAAA,IAAA,CAAK,QAAL,CAAc,MAAd,CAAD,EAAwB,OAAO,MAAP,CAA3B;AAEA,QAAI,MAAJ,CARyD;AASzD,QAAG,MAAM,OAAN,CAAc,MAAd,CAAH,EACA;AACC,iBAAe,OAAQ,KAAR,EAAf,CADD;AAEC,YAAG,QAAM,CAAN,EACH;AACC,iBAAI,IAAI,IAAI,CAAJ,EAAO,IAAE,OAAO,MAAP,EAAe,GAAhC,EACA;AACC,uBAAO,CAAP,IAAY,MAAM,OAAO,CAAP,CAAN,EAAiB,QAAQ,CAAR,CAA7B,CADD;aADA;SAFD;KAHD,MAYA;AACC,iBAAS,EAAT,CADD;AAEC,YAAG,QAAM,CAAN,EAAS,KAAI,IAAI,CAAJ,IAAS,MAAb,EACZ;AAEC,mBAAO,CAAP,IAAY,MAAM,OAAO,CAAP,CAAN,EAAiB,QAAQ,CAAR,CAA7B,CAFD;SADY;KAdb;AAqBA,WAAO,MAAP,CA9ByD;CAA1D;AAAA,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADuBA,QAAQ,OAAR,GAAkB,KAAlB","file":"System/Utility/clone.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst Types_1 = require(\"../Types\");\nfunction clone(source, depth = 0) {\n if (depth < 0)\n return source;\n if (!Types_1.Type.isObject(source))\n return source;\n var result;\n if (Array.isArray(source)) {\n result = source.slice();\n if (depth > 0) {\n for (let i = 0; i < result.length; i++) {\n result[i] = clone(result[i], depth - 1);\n }\n }\n }\n else {\n result = {};\n if (depth > 0)\n for (let k in source) {\n result[k] = clone(source[k], depth - 1);\n }\n }\n return result;\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = clone;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {Type} from \"../Types\";\r\n\r\nexport default function clone(source:any, depth:number = 0):any\r\n{\r\n\tif(depth<0)\r\n\t\treturn source;\r\n\r\n\t// return primitives as is.\r\n\tif(!Type.isObject(source)) return source;\r\n\r\n\tvar result:any;\r\n\tif(Array.isArray(source))\r\n\t{\r\n\t\tresult = (source).slice();\r\n\t\tif(depth>0)\r\n\t\t{\r\n\t\t\tfor(let i = 0; i0) for(let k in source)\r\n\t\t{\r\n\t\t\t//noinspection JSUnfilteredForInLoop\r\n\t\t\tresult[k] = clone(source[k], depth - 1);\r\n\t\t}\r\n\t}\r\n\r\n\treturn result;\r\n\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/commonjs/System/Utility/shallowCopy.d.ts b/dist/commonjs/System/Utility/shallowCopy.d.ts index df935e23..51512af7 100644 --- a/dist/commonjs/System/Utility/shallowCopy.d.ts +++ b/dist/commonjs/System/Utility/shallowCopy.d.ts @@ -2,4 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -export default function shallowCopy(source: any, target?: any): any; +export declare function shallowCopy(source: any, target?: any): any; +export default shallowCopy; diff --git a/dist/commonjs/System/Utility/shallowCopy.js b/dist/commonjs/System/Utility/shallowCopy.js index 8b464081..a2900e85 100644 --- a/dist/commonjs/System/Utility/shallowCopy.js +++ b/dist/commonjs/System/Utility/shallowCopy.js @@ -14,6 +14,7 @@ function shallowCopy(source) { } return target; } +exports.shallowCopy = shallowCopy; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = shallowCopy; //# sourceMappingURL=shallowCopy.js.map diff --git a/dist/commonjs/System/Utility/shallowCopy.js.map b/dist/commonjs/System/Utility/shallowCopy.js.map index 18f3aa99..1f9f0310 100644 --- a/dist/commonjs/System/Utility/shallowCopy.js.map +++ b/dist/commonjs/System/Utility/shallowCopy.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Utility/shallowCopy.js","System/Utility/shallowCopy.ts"],"names":[],"mappings":";;;;AAIA;;ACCA,SAAA,WAAA,CAAoC,MAApC,EAA+D;QAAf,+DAAa,kBAAE;;AAE9D,QAAG,MAAH,EACA;AACC,aAAI,IAAI,CAAJ,IAAS,MAAb,EACA;AAEC,mBAAO,CAAP,IAAY,OAAO,CAAP,CAAZ,CAFD;SADA;KAFD;AASA,WAAO,MAAP,CAX8D;CAA/D;AAAA,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADSA,QAAQ,OAAR,GAAkB,WAAlB","file":"System/Utility/shallowCopy.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nfunction shallowCopy(source, target = {}) {\n if (target) {\n for (let k in source) {\n target[k] = source[k];\n }\n }\n return target;\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = shallowCopy;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nexport default function shallowCopy(source:any, target:any = {}):any\r\n{\r\n\tif(target)\r\n\t{\r\n\t\tfor(let k in source)\r\n\t\t{\r\n\t\t\t//noinspection JSUnfilteredForInLoop\r\n\t\t\ttarget[k] = source[k];\r\n\t\t}\r\n\t}\r\n\r\n\treturn target;\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Utility/shallowCopy.js","System/Utility/shallowCopy.ts"],"names":[],"mappings":";;;;AAIA;;ACCA,SAAA,WAAA,CAA4B,MAA5B,EAAuD;QAAf,+DAAa,kBAAE;;AAEtD,QAAG,MAAH,EACA;AACC,aAAI,IAAI,CAAJ,IAAS,MAAb,EACA;AAEC,mBAAO,CAAP,IAAY,OAAO,CAAP,CAAZ,CAFD;SADA;KAFD;AASA,WAAO,MAAP,CAXsD;CAAvD;AAAgB,QAAA,WAAA,GAAW,WAAX;AAchB,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADJA,QAAQ,OAAR,GCIe,WDJf","file":"System/Utility/shallowCopy.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nfunction shallowCopy(source, target = {}) {\n if (target) {\n for (let k in source) {\n target[k] = source[k];\n }\n }\n return target;\n}\nexports.shallowCopy = shallowCopy;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = shallowCopy;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nexport function shallowCopy(source:any, target:any = {}):any\r\n{\r\n\tif(target)\r\n\t{\r\n\t\tfor(let k in source)\r\n\t\t{\r\n\t\t\t//noinspection JSUnfilteredForInLoop\r\n\t\t\ttarget[k] = source[k];\r\n\t\t}\r\n\t}\r\n\r\n\treturn target;\r\n}\r\n\r\nexport default shallowCopy;"]} \ No newline at end of file diff --git a/dist/commonjs/System/Validation/ValidationResult.d.ts b/dist/commonjs/System/Validation/ValidationResult.d.ts index 8fdffed8..563c9625 100644 --- a/dist/commonjs/System/Validation/ValidationResult.d.ts +++ b/dist/commonjs/System/Validation/ValidationResult.d.ts @@ -1,9 +1,9 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { IEquatable } from "../IEquatable"; +import { IValidationResult } from "./IValidationResult"; export default class ValidationResult implements IValidationResult, IEquatable { isValid: boolean; message: string; diff --git a/dist/commonjs/System/Validation/ValidationResult.js b/dist/commonjs/System/Validation/ValidationResult.js index 95f7d43a..3b028de4 100644 --- a/dist/commonjs/System/Validation/ValidationResult.js +++ b/dist/commonjs/System/Validation/ValidationResult.js @@ -2,7 +2,7 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; +"use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); diff --git a/dist/commonjs/System/Validation/ValidationResult.js.map b/dist/commonjs/System/Validation/ValidationResult.js.map index 730dc3a5..51ac3a1b 100644 --- a/dist/commonjs/System/Validation/ValidationResult.js.map +++ b/dist/commonjs/System/Validation/ValidationResult.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Validation/ValidationResult.ts","System/Validation/ValidationResult.js"],"names":[],"mappings":";;;;AAOA;;;;;;AAEA,IAAM,QAAQ,IAAI,gBAAJ,CAAqB,IAArB,CAAR;;IAKN;AAOC,aAPD,gBAOC,GAGuB;YAFf,gEAAkB,qBAEH;YADf,gEAAiB,oBACF;YAAf,6DAAW,oBAAI;;8BAVxB,kBAUwB;;AAFf,aAAA,OAAA,GAAA,OAAA,CAEe;AADf,aAAA,OAAA,GAAA,OAAA,CACe;AAAf,aAAA,IAAA,GAAA,IAAA,CAAe;AAItB,eAAO,MAAP,CAAc,IAAd,EAJsB;KAHvB;;iBAPD;;+BAoBQ,OAAuB;AAE7B,gBAAI,IAAI,IAAJ,CAFyB;AAG7B,mBAAO,EAAE,OAAF,KAAY,MAAM,OAAN,IACf,EAAE,OAAF,IAAW,EAAE,OAAF,IACX,EAAE,IAAF,IAAQ,EAAE,IAAF,CALiB;;;;gCAqB7B,SACe;gBAAf,6DAAW,oBAAI;;AAEf,mBAAO,IAAI,gBAAJ,CAAqB,KAArB,EAA4B,OAA5B,EAAqC,IAArC,CAAP,CAFe;;;;4BATA;AACf,mBAAO,KAAP,CADe;;;;WAjCjB;;;AAAA,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ACaA,QAAQ,OAAR,GAAkB,gBAAlB","file":"System/Validation/ValidationResult.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n/// \r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nconst valid = new ValidationResult(true);\r\n\r\n/**\r\n * A class for generating responses to validation.\r\n */\r\nexport default\r\nclass ValidationResult\r\nimplements IValidationResult, IEquatable\r\n{\r\n\t/**\r\n\t * Allows for rare cases that ValidationResult.valid and ValidationResult.invalid() don't cover.\r\n\t */\r\n\tconstructor(\r\n\t\tpublic isValid:boolean = false,\r\n\t\tpublic message:string = null,\r\n\t\tpublic data:any = null)\r\n\t{\r\n\r\n\t\t// Readonly...\r\n\t\tObject.freeze(this);\r\n\t}\r\n\r\n\t/**\r\n\t * Allows for comparing another IValidationResult to see if they are equal.\r\n\t */\r\n\tequals(other:IValidationResult):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn _.isValid===other.isValid\r\n\t\t\t&& _.message==_.message\r\n\t\t\t&& _.data==_.data;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Represents a single/shared instance of a valid result.\r\n\t * Allows for returning this instance like you would return 'true'.\r\n\t */\r\n\tstatic get valid():IValidationResult {\r\n\t\treturn valid;\r\n\t}\r\n\r\n\t/**\r\n\t * Factory method for easily creating an invalid result.\r\n\t */\r\n\tstatic invalid(\r\n\t\tmessage:string,\r\n\t\tdata:any = null):IValidationResult\r\n\t{\r\n\t\treturn new ValidationResult(false, message, data);\r\n\t}\r\n}\r\n","/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n'use strict';\nconst valid = new ValidationResult(true);\nclass ValidationResult {\n constructor(isValid = false, message = null, data = null) {\n this.isValid = isValid;\n this.message = message;\n this.data = data;\n Object.freeze(this);\n }\n equals(other) {\n var _ = this;\n return _.isValid === other.isValid\n && _.message == _.message\n && _.data == _.data;\n }\n static get valid() {\n return valid;\n }\n static invalid(message, data = null) {\n return new ValidationResult(false, message, data);\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = ValidationResult;\n"]} \ No newline at end of file +{"version":3,"sources":["System/Validation/ValidationResult.js","System/Validation/ValidationResult.ts"],"names":[],"mappings":";;;;AAIA;;;;;;ACIA,IAAM,QAAQ,IAAI,gBAAJ,CAAqB,IAArB,CAAR;;IAKN;AAOC,aAPD,gBAOC,GAGuB;YAFf,gEAAkB,qBAEH;YADf,gEAAiB,oBACF;YAAf,6DAAW,oBAAI;;8BAVxB,kBAUwB;;AAFf,aAAA,OAAA,GAAA,OAAA,CAEe;AADf,aAAA,OAAA,GAAA,OAAA,CACe;AAAf,aAAA,IAAA,GAAA,IAAA,CAAe;AAItB,eAAO,MAAP,CAAc,IAAd,EAJsB;KAHvB;;iBAPD;;+BAoBQ,OAAuB;AAE7B,gBAAI,IAAI,IAAJ,CAFyB;AAG7B,mBAAO,EAAE,OAAF,KAAY,MAAM,OAAN,IACf,EAAE,OAAF,IAAW,EAAE,OAAF,IACX,EAAE,IAAF,IAAQ,EAAE,IAAF,CALiB;;;;gCAqB7B,SACe;gBAAf,6DAAW,oBAAI;;AAEf,mBAAO,IAAI,gBAAJ,CAAqB,KAArB,EAA4B,OAA5B,EAAqC,IAArC,CAAP,CAFe;;;;4BATA;AACf,mBAAO,KAAP,CADe;;;;WAjCjB;;;AAAA,OAAA,cAAA,CAAA,OAAA,EAAA,YAAA,EAAA,EAAA,OAAA,IAAA,EAAA;ADcA,QAAQ,OAAR,GAAkB,gBAAlB","file":"System/Validation/ValidationResult.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n\"use strict\";\nconst valid = new ValidationResult(true);\nclass ValidationResult {\n constructor(isValid = false, message = null, data = null) {\n this.isValid = isValid;\n this.message = message;\n this.data = data;\n Object.freeze(this);\n }\n equals(other) {\n var _ = this;\n return _.isValid === other.isValid\n && _.message == _.message\n && _.data == _.data;\n }\n static get valid() {\n return valid;\n }\n static invalid(message, data = null) {\n return new ValidationResult(false, message, data);\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = ValidationResult;\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {IEquatable} from \"../IEquatable\";\r\nimport {IValidationResult} from \"./IValidationResult\"; // For compatibility with (let, const, function, class);\r\n\r\nconst valid = new ValidationResult(true);\r\n\r\n/**\r\n * A class for generating responses to validation.\r\n */\r\nexport default\r\nclass ValidationResult\r\nimplements IValidationResult, IEquatable\r\n{\r\n\t/**\r\n\t * Allows for rare cases that ValidationResult.valid and ValidationResult.invalid() don't cover.\r\n\t */\r\n\tconstructor(\r\n\t\tpublic isValid:boolean = false,\r\n\t\tpublic message:string = null,\r\n\t\tpublic data:any = null)\r\n\t{\r\n\r\n\t\t// Readonly...\r\n\t\tObject.freeze(this);\r\n\t}\r\n\r\n\t/**\r\n\t * Allows for comparing another IValidationResult to see if they are equal.\r\n\t */\r\n\tequals(other:IValidationResult):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn _.isValid===other.isValid\r\n\t\t\t&& _.message==_.message\r\n\t\t\t&& _.data==_.data;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Represents a single/shared instance of a valid result.\r\n\t * Allows for returning this instance like you would return 'true'.\r\n\t */\r\n\tstatic get valid():IValidationResult {\r\n\t\treturn valid;\r\n\t}\r\n\r\n\t/**\r\n\t * Factory method for easily creating an invalid result.\r\n\t */\r\n\tstatic invalid(\r\n\t\tmessage:string,\r\n\t\tdata:any = null):IValidationResult\r\n\t{\r\n\t\treturn new ValidationResult(false, message, data);\r\n\t}\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/es6/System.Linq/Linq.d.ts b/dist/es6/System.Linq/Linq.d.ts index 03d8c5c7..eb598fc4 100644 --- a/dist/es6/System.Linq/Linq.d.ts +++ b/dist/es6/System.Linq/Linq.d.ts @@ -1,19 +1,17 @@ -/// -/// -/// -/// -/// -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Original: http://linqjs.codeplex.com/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import Dictionary from "../System/Collections/Dictionaries/Dictionary"; -import DisposableBase from "../System/Disposable/DisposableBase"; +import { Dictionary } from "../System/Collections/Dictionaries/Dictionary"; +import { DisposableBase } from "../System/Disposable/DisposableBase"; +import { IEnumerator } from "../System/Collections/Enumeration/IEnumerator"; +import { IEnumerable } from "../System/Collections/Enumeration/IEnumerable"; +import { Action, Predicate, Selector, EqualityComparison, Comparison } from "../System/FunctionTypes"; +import { IEnumerableOrArray } from "../System/Collections/IEnumerableOrArray"; +import { IArray } from "../System/Collections/Array/IArray"; +import { IMap } from "../System/Collections/Dictionaries/IDictionary"; +import { Comparable } from "../System/IComparable"; export declare const enum EnumerableAction { Break = 0, Return = 1, diff --git a/dist/es6/System.Linq/Linq.js b/dist/es6/System.Linq/Linq.js index 2a868586..a13508d8 100644 --- a/dist/es6/System.Linq/Linq.js +++ b/dist/es6/System.Linq/Linq.js @@ -7,20 +7,20 @@ import * as Values from "../System/Compare"; import * as Arrays from "../System/Collections/Array/Compare"; import * as ArrayUtility from "../System/Collections/Array/Utility"; import { empty as EmptyEnumerator, from as enumeratorFrom, forEach, toArray, map, isEnumerable, throwIfEndless } from "../System/Collections/Enumeration/Enumerator"; -import Type from "../System/Types"; -import Integer from "../System/Integer"; -import BaseFunctions from "../System/Functions"; -import ArrayEnumerator from "../System/Collections/Enumeration/ArrayEnumerator"; -import EnumeratorBase from "../System/Collections/Enumeration/EnumeratorBase"; -import Dictionary from "../System/Collections/Dictionaries/Dictionary"; -import Queue from "../System/Collections/Queue"; +import { Type } from "../System/Types"; +import { Integer } from "../System/Integer"; +import { Functions as BaseFunctions } from "../System/Functions"; +import { ArrayEnumerator } from "../System/Collections/Enumeration/ArrayEnumerator"; +import { EnumeratorBase } from "../System/Collections/Enumeration/EnumeratorBase"; +import { Dictionary } from "../System/Collections/Dictionaries/Dictionary"; +import { Queue } from "../System/Collections/Queue"; import { dispose, using } from "../System/Disposable/dispose"; -import DisposableBase from "../System/Disposable/DisposableBase"; -import UnsupportedEnumerableException from "../System/Collections/Enumeration/UnsupportedEnumerableException"; -import ObjectDisposedException from "../System/Disposable/ObjectDisposedException"; -import KeySortedContext from "../System/Collections/Sorting/KeySortedContext"; -import ArgumentNullException from "../System/Exceptions/ArgumentNullException"; -import ArgumentOutOfRangeException from "../System/Exceptions/ArgumentOutOfRangeException"; +import { DisposableBase } from "../System/Disposable/DisposableBase"; +import { UnsupportedEnumerableException } from "../System/Collections/Enumeration/UnsupportedEnumerableException"; +import { ObjectDisposedException } from "../System/Disposable/ObjectDisposedException"; +import { KeySortedContext } from "../System/Collections/Sorting/KeySortedContext"; +import { ArgumentNullException } from "../System/Exceptions/ArgumentNullException"; +import { ArgumentOutOfRangeException } from "../System/Exceptions/ArgumentOutOfRangeException"; const INVALID_DEFAULT = {}; const VOID0 = void 0; const BREAK = element => 0; @@ -1025,14 +1025,14 @@ export class Enumerable extends InfiniteEnumerable { var value; return new EnumeratorBase(() => { value = start; }, start < to ? - (yielder) => { + yielder => { var result = value <= to && yielder.yieldReturn(value); if (result) value += step; return result; } : - (yielder) => { + yielder => { var result = value >= to && yielder.yieldReturn(value); if (result) value -= step; diff --git a/dist/es6/System.Linq/Linq.js.map b/dist/es6/System.Linq/Linq.js.map index 7afe8fc7..df4a76c2 100644 --- a/dist/es6/System.Linq/Linq.js.map +++ b/dist/es6/System.Linq/Linq.js.map @@ -1 +1 @@ -{"version":3,"file":"Linq.js","sourceRoot":"","sources":["../../../source/System.Linq/Linq.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Linq.js","sourceRoot":"","sources":["../../../source/System.Linq/Linq.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6/System/Collections/Array/Compare.d.ts b/dist/es6/System/Collections/Array/Compare.d.ts index 2ce82c2d..84dc3239 100644 --- a/dist/es6/System/Collections/Array/Compare.d.ts +++ b/dist/es6/System/Collections/Array/Compare.d.ts @@ -1,11 +1,11 @@ -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { Primitive } from "../../Primitive"; +import { EqualityComparison, Comparison } from "../../FunctionTypes"; +import { IArray } from "./IArray"; +import { IComparable } from "../../IComparable"; export declare function areAllEqual(arrays: any[][], strict?: boolean, equalityComparer?: EqualityComparison): boolean; export declare function areEqual(a: IArray, b: IArray, strict?: boolean, equalityComparer?: EqualityComparison): boolean; export declare function areEquivalent(a: IArray, b: IArray): boolean; diff --git a/dist/es6/System/Collections/Array/Compare.js b/dist/es6/System/Collections/Array/Compare.js index db299346..31f9dab7 100644 --- a/dist/es6/System/Collections/Array/Compare.js +++ b/dist/es6/System/Collections/Array/Compare.js @@ -3,7 +3,7 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ import * as Values from "../../Compare"; -import Type from "../../Types"; +import { Type } from "../../Types"; function validateSize(a, b) { if (a && b && a === b || !a && !b) return true; @@ -48,8 +48,9 @@ function sort(a, comparer) { b = []; b.length = len; } - for (let i = 0; i < len; i++) + for (let i = 0; i < len; i++) { b[i] = a[i]; + } b.sort(comparer); return b; } diff --git a/dist/es6/System/Collections/Array/Compare.js.map b/dist/es6/System/Collections/Array/Compare.js.map index aec32a1d..a0e0f8e2 100644 --- a/dist/es6/System/Collections/Array/Compare.js.map +++ b/dist/es6/System/Collections/Array/Compare.js.map @@ -1 +1 @@ -{"version":3,"file":"Compare.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Array/Compare.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Compare.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Array/Compare.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6/System/Collections/Array/Dispatch.d.ts b/dist/es6/System/Collections/Array/Dispatch.d.ts index d9d28acc..1910df44 100644 --- a/dist/es6/System/Collections/Array/Dispatch.d.ts +++ b/dist/es6/System/Collections/Array/Dispatch.d.ts @@ -1,9 +1,8 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { IArray } from "./IArray"; export interface DispatchErrorHandler { (ex?: any, i?: number): void; } diff --git a/dist/es6/System/Collections/Array/Dispatch.js b/dist/es6/System/Collections/Array/Dispatch.js index 48525efd..a18f0d9e 100644 --- a/dist/es6/System/Collections/Array/Dispatch.js +++ b/dist/es6/System/Collections/Array/Dispatch.js @@ -2,7 +2,7 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import Type from "../../Types"; +import { Type } from "../../Types"; import { copy } from "./Utility"; const VOID0 = void (0); export function unsafe(listeners, payload, trap) { diff --git a/dist/es6/System/Collections/Array/Dispatch.js.map b/dist/es6/System/Collections/Array/Dispatch.js.map index 5398c949..70e610c4 100644 --- a/dist/es6/System/Collections/Array/Dispatch.js.map +++ b/dist/es6/System/Collections/Array/Dispatch.js.map @@ -1 +1 @@ -{"version":3,"file":"Dispatch.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Array/Dispatch.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAII,IAAI,MAAM,aAAa;OACvB,EAAC,IAAI,EAAC,MAAM,WAAW;AAE9B,MAAM,KAAK,GAAO,KAAI,CAAC,CAAC,CAAC,CAAC;AA4B1B,uBACC,SAAkC,EAClC,OAAS,EAAE,IAAkC;IAE7C,EAAE,CAAA,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,CAAC,CACjC,CAAC;QACA,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAC,GAAG,EAAE,CAAC,EAAE,EACjD,CAAC;YACA,IAAI,EAAE,GAAY,SAAS,CAAC,CAAC,CAAC,CAAC;YAC/B,EAAE,CAAA,CAAC,CAAC,EAAE,CAAC;gBAAC,QAAQ,CAAC;YACjB,IACA,CAAC;gBACA,EAAE,CAAC,OAAO,CAAC,CAAC;YACb,CACA;YAAA,KAAK,CAAA,CAAC,EAAE,CAAC,CACT,CAAC;gBACA,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC;oBACR,MAAM,EAAE,CAAC;gBACV,IAAI,CAAC,EAAE,CAAA,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;oBAC7B,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACd,CAAC;QACF,CAAC;IACF,CAAC;AACF,CAAC;AAWD,uBACC,SAAsC,EACtC,OAAS,EAAE,IAAkC;IAG7C,EAAE,CAAA,CAAC,CAAC,SAAS,CAAC;QAAC,MAAM,CAAC,IAAI,CAAC;IAE3B,IAAI,MAAM,GAAS,IAAI,CAAC,SAAS,CAAC,CAAC;IACnC,EAAE,CAAA,CAAC,SAAS,CAAC,MAAM,CAAC,CACpB,CAAC;QAEA,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAC,GAAG,EAAE,CAAC,EAAE,EAC9C,CAAC;YACA,IAAI,EAAE,GAAY,MAAM,CAAC,CAAC,CAAC,CAAC;YAC5B,IACA,CAAC;gBACA,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE;sBACX,EAAE,CAAC,OAAO,CAAC;sBACX,KAAK,CAAC;YACV,CACA;YAAA,KAAK,CAAA,CAAC,EAAE,CAAC,CACT,CAAC;gBACA,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;gBAClB,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC;oBACR,MAAM,EAAE,CAAC;gBACV,IAAI,CAAC,EAAE,CAAA,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;oBAC7B,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACd,CAAC;QACF,CAAC;IACF,CAAC;IAED,MAAM,CAAC,MAAM,CAAC;AAEf,CAAC;AAUD,yBACC,SAAkC,EAClC,OAAS,EAAE,IAAkC;IAE7C,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AACxC,CAAC;AAED,eAAe,QAAQ,CAAC"} \ No newline at end of file +{"version":3,"file":"Dispatch.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Array/Dispatch.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAEI,EAAC,IAAI,EAAC,MAAM,aAAa;OACzB,EAAC,IAAI,EAAC,MAAM,WAAW;AAG9B,MAAM,KAAK,GAAO,KAAI,CAAC,CAAC,CAAC,CAAC;AA4B1B,uBACC,SAAkC,EAClC,OAAS,EAAE,IAAkC;IAE7C,EAAE,CAAA,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,CAAC,CACjC,CAAC;QACA,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAC,GAAG,EAAE,CAAC,EAAE,EACjD,CAAC;YACA,IAAI,EAAE,GAAY,SAAS,CAAC,CAAC,CAAC,CAAC;YAC/B,EAAE,CAAA,CAAC,CAAC,EAAE,CAAC;gBAAC,QAAQ,CAAC;YACjB,IACA,CAAC;gBACA,EAAE,CAAC,OAAO,CAAC,CAAC;YACb,CACA;YAAA,KAAK,CAAA,CAAC,EAAE,CAAC,CACT,CAAC;gBACA,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC;oBACR,MAAM,EAAE,CAAC;gBACV,IAAI,CAAC,EAAE,CAAA,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;oBAC7B,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACd,CAAC;QACF,CAAC;IACF,CAAC;AACF,CAAC;AAWD,uBACC,SAAsC,EACtC,OAAS,EAAE,IAAkC;IAG7C,EAAE,CAAA,CAAC,CAAC,SAAS,CAAC;QAAC,MAAM,CAAC,IAAI,CAAC;IAE3B,IAAI,MAAM,GAAS,IAAI,CAAC,SAAS,CAAC,CAAC;IACnC,EAAE,CAAA,CAAC,SAAS,CAAC,MAAM,CAAC,CACpB,CAAC;QAEA,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAC,GAAG,EAAE,CAAC,EAAE,EAC9C,CAAC;YACA,IAAI,EAAE,GAAY,MAAM,CAAC,CAAC,CAAC,CAAC;YAC5B,IACA,CAAC;gBACA,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE;sBACX,EAAE,CAAC,OAAO,CAAC;sBACX,KAAK,CAAC;YACV,CACA;YAAA,KAAK,CAAA,CAAC,EAAE,CAAC,CACT,CAAC;gBACA,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;gBAClB,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC;oBACR,MAAM,EAAE,CAAC;gBACV,IAAI,CAAC,EAAE,CAAA,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;oBAC7B,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACd,CAAC;QACF,CAAC;IACF,CAAC;IAED,MAAM,CAAC,MAAM,CAAC;AAEf,CAAC;AAUD,yBACC,SAAkC,EAClC,OAAS,EAAE,IAAkC;IAE7C,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AACxC,CAAC;AAED,eAAe,QAAQ,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Collections/Array/ReadOnlyArrayWrapper.d.ts b/dist/es6/System/Collections/Array/ReadOnlyArrayWrapper.d.ts index 88e74cbc..f27159ff 100644 --- a/dist/es6/System/Collections/Array/ReadOnlyArrayWrapper.d.ts +++ b/dist/es6/System/Collections/Array/ReadOnlyArrayWrapper.d.ts @@ -2,7 +2,8 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import ReadOnlyCollectionBase from "../ReadOnlyCollectionBase"; +import { ReadOnlyCollectionBase } from "../ReadOnlyCollectionBase"; +import { IArray } from "./IArray"; export default class ReadOnlyArrayWrapper extends ReadOnlyCollectionBase { constructor(array: IArray); getValueAt: (index: number) => T; diff --git a/dist/es6/System/Collections/Array/ReadOnlyArrayWrapper.js b/dist/es6/System/Collections/Array/ReadOnlyArrayWrapper.js index c101a65d..bcbf4071 100644 --- a/dist/es6/System/Collections/Array/ReadOnlyArrayWrapper.js +++ b/dist/es6/System/Collections/Array/ReadOnlyArrayWrapper.js @@ -2,9 +2,9 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import ArgumentNullException from "../../Exceptions/ArgumentNullException"; +import { ArgumentNullException } from "../../Exceptions/ArgumentNullException"; +import { ReadOnlyCollectionBase } from "../ReadOnlyCollectionBase"; import { from as enumeratorFrom } from "../Enumeration/Enumerator"; -import ReadOnlyCollectionBase from "../ReadOnlyCollectionBase"; export default class ReadOnlyArrayWrapper extends ReadOnlyCollectionBase { constructor(array) { super(); diff --git a/dist/es6/System/Collections/Array/ReadOnlyArrayWrapper.js.map b/dist/es6/System/Collections/Array/ReadOnlyArrayWrapper.js.map index feacc004..ca70b14c 100644 --- a/dist/es6/System/Collections/Array/ReadOnlyArrayWrapper.js.map +++ b/dist/es6/System/Collections/Array/ReadOnlyArrayWrapper.js.map @@ -1 +1 @@ -{"version":3,"file":"ReadOnlyArrayWrapper.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Array/ReadOnlyArrayWrapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAEI,qBAAqB,MAAM,wCAAwC;OACnE,EAAC,IAAI,IAAI,cAAc,EAAC,MAAM,2BAA2B;OACzD,sBAAsB,MAAM,2BAA2B;AAE9D,kDAAqD,sBAAsB;IAG1E,YAAY,KAAe;QAE1B,OAAO,CAAC;QACR,EAAE,CAAA,CAAC,CAAC,KAAK,CAAC;YACT,MAAM,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAE1C,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,CAAC,CAAC,SAAS,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC;QACjC,CAAC,CAAC,aAAa,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC,CAAC,UAAU,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;AAGF,CAAC;AAAA"} \ No newline at end of file +{"version":3,"file":"ReadOnlyArrayWrapper.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Array/ReadOnlyArrayWrapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAEI,EAAC,qBAAqB,EAAC,MAAM,wCAAwC;OACrE,EAAC,sBAAsB,EAAC,MAAM,2BAA2B;OAEzD,EAAC,IAAI,IAAI,cAAc,EAAC,MAAM,2BAA2B;AAEhE,kDAAqD,sBAAsB;IAG1E,YAAY,KAAe;QAE1B,OAAO,CAAC;QACR,EAAE,CAAA,CAAC,CAAC,KAAK,CAAC;YACT,MAAM,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAE1C,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,CAAC,CAAC,SAAS,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC;QACjC,CAAC,CAAC,aAAa,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC,CAAC,UAAU,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;AAGF,CAAC;AAAA"} \ No newline at end of file diff --git a/dist/es6/System/Collections/Array/Sort.d.ts b/dist/es6/System/Collections/Array/Sort.d.ts index 5524bcb8..3201c0e9 100644 --- a/dist/es6/System/Collections/Array/Sort.d.ts +++ b/dist/es6/System/Collections/Array/Sort.d.ts @@ -1,9 +1,9 @@ -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { Primitive } from "../../Primitive"; +import { Selector, Comparison } from "../../FunctionTypes"; +import { Order } from "../Sorting/Order"; export declare function createComparer(selector: Selector, order?: Order | Order[], equivalentToNaN?: any): Comparison; export { createComparer as default, createComparer as by }; diff --git a/dist/es6/System/Collections/Array/Sort.js b/dist/es6/System/Collections/Array/Sort.js index 3c2d55b5..4226717c 100644 --- a/dist/es6/System/Collections/Array/Sort.js +++ b/dist/es6/System/Collections/Array/Sort.js @@ -2,8 +2,8 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import Type from '../../Types'; -import { compare } from '../../Compare'; +import { Type } from "../../Types"; +import { compare } from "../../Compare"; function ensureArray(value) { return Array.isArray(value) ? value diff --git a/dist/es6/System/Collections/Array/Sort.js.map b/dist/es6/System/Collections/Array/Sort.js.map index 3ef19693..48b8923a 100644 --- a/dist/es6/System/Collections/Array/Sort.js.map +++ b/dist/es6/System/Collections/Array/Sort.js.map @@ -1 +1 @@ -{"version":3,"file":"Sort.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Array/Sort.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAMI,IAAI,MAAM,aAAa;OACvB,EAAC,OAAO,EAAC,MAAM,eAAe;AAErC,qBAAwB,KAAW;IAElC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;UACnB,KAAK;UACV,CAAI,KAAK,CAAC,CAAC;AACf,CAAC;AAyBD,+BACC,QAA4C,EAC5C,KAAK,GAAmB,CAAe,EACvC,eAAe,GAAO,GAAG;IAEzB,IAAI,gBAAgB,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAExD,MAAM,CAAC,CAAC,CAAmB,EAAE,CAAmB;QAG/C,IAAI,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAEjD,IAAI,MAAM,GAAW,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;QACzD,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAC,GAAG,EAAE,CAAC,EAAE,EACzB,CAAC;YACA,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,EAC9B,CAAC,GAAI,MAAM;kBACR,CAAC,CAAC,GAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAe,CAAC;kBACxC,KAAK,CAAC;YAEpB,EAAE,CAAA,CAAC,gBAAgB,CAAC,CACpB,CAAC;gBACA,EAAE,CAAA,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;oBACrB,EAAE,GAAG,eAAe,CAAC;gBACtB,EAAE,CAAA,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;oBACrB,EAAE,GAAG,eAAe,CAAC;YAEvB,CAAC;YAED,IAAI,CAAC,GAAG,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACxB,EAAE,CAAA,CAAC,CAAC,KAAG,CAAmB,CAAC;gBAC1B,MAAM,CAAC,CAAC,GAAC,CAAC,CAAC;QAEb,CAAC;QAED,MAAM,CAAC,CAAC,CAAC;IACV,CAAC,CAAC;AACH,CAAC;AAED,SACC,cAAc,IAAI,OAAO,EACzB,cAAc,IAAI,EAAE,GACpB"} \ No newline at end of file +{"version":3,"file":"Sort.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Array/Sort.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAGI,EAAC,IAAI,EAAC,MAAM,aAAa;OACzB,EAAC,OAAO,EAAC,MAAM,eAAe;AAMrC,qBAAwB,KAAW;IAElC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;UACnB,KAAK;UACV,CAAI,KAAK,CAAC,CAAC;AACf,CAAC;AAyBD,+BACC,QAA4C,EAC5C,KAAK,GAAmB,CAAe,EACvC,eAAe,GAAO,GAAG;IAEzB,IAAI,gBAAgB,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAExD,MAAM,CAAC,CAAC,CAAmB,EAAE,CAAmB;QAG/C,IAAI,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAEjD,IAAI,MAAM,GAAW,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;QACzD,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAC,GAAG,EAAE,CAAC,EAAE,EACzB,CAAC;YACA,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,EAC9B,CAAC,GAAoB,MAAM;kBACxB,CAAC,CAAC,GAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAe,CAAC;kBACxC,KAAK,CAAC;YAEpB,EAAE,CAAA,CAAC,gBAAgB,CAAC,CACpB,CAAC;gBACA,EAAE,CAAA,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;oBACrB,EAAE,GAAG,eAAe,CAAC;gBACtB,EAAE,CAAA,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;oBACrB,EAAE,GAAG,eAAe,CAAC;YAEvB,CAAC;YAED,IAAI,CAAC,GAAG,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACxB,EAAE,CAAA,CAAC,CAAC,KAAG,CAAmB,CAAC;gBAC1B,MAAM,CAAC,CAAC,GAAC,CAAC,CAAC;QAEb,CAAC;QAED,MAAM,CAAC,CAAC,CAAC;IACV,CAAC,CAAC;AACH,CAAC;AAED,SACC,cAAc,IAAI,OAAO,EACzB,cAAc,IAAI,EAAE,GACpB"} \ No newline at end of file diff --git a/dist/es6/System/Collections/Array/Utility.d.ts b/dist/es6/System/Collections/Array/Utility.d.ts index 2314ac04..9c7b0c7f 100644 --- a/dist/es6/System/Collections/Array/Utility.d.ts +++ b/dist/es6/System/Collections/Array/Utility.d.ts @@ -1,9 +1,9 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { EqualityComparison, Predicate, Action } from "../../FunctionTypes"; +import { IArray } from "./IArray"; export declare function initialize(length: number): T[]; export declare function copy(source: IArray, sourceIndex?: number, length?: number): T[]; export declare function copyTo>(source: IArray, destination: TDestination, sourceIndex?: number, destinationIndex?: number, length?: number): TDestination; diff --git a/dist/es6/System/Collections/Array/Utility.js b/dist/es6/System/Collections/Array/Utility.js index 5a347644..c34da175 100644 --- a/dist/es6/System/Collections/Array/Utility.js +++ b/dist/es6/System/Collections/Array/Utility.js @@ -2,12 +2,12 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import Type from "../../Types"; -import Integer from "../../Integer"; +import { Type } from "../../Types"; +import { Integer } from "../../Integer"; import { areEqual } from "../../Compare"; -import ArgumentException from "../../Exceptions/ArgumentException"; -import ArgumentNullException from "../../Exceptions/ArgumentNullException"; -import ArgumentOutOfRangeException from "../../Exceptions/ArgumentOutOfRangeException"; +import { ArgumentException } from "../../Exceptions/ArgumentException"; +import { ArgumentNullException } from "../../Exceptions/ArgumentNullException"; +import { ArgumentOutOfRangeException } from "../../Exceptions/ArgumentOutOfRangeException"; export function initialize(length) { Integer.assert(length, 'length'); var array; diff --git a/dist/es6/System/Collections/Array/Utility.js.map b/dist/es6/System/Collections/Array/Utility.js.map index 2b6a28e3..f336b50d 100644 --- a/dist/es6/System/Collections/Array/Utility.js.map +++ b/dist/es6/System/Collections/Array/Utility.js.map @@ -1 +1 @@ -{"version":3,"file":"Utility.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Array/Utility.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Utility.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Array/Utility.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6/System/Collections/CollectionBase.d.ts b/dist/es6/System/Collections/CollectionBase.d.ts index d3ff773a..9508abd6 100644 --- a/dist/es6/System/Collections/CollectionBase.d.ts +++ b/dist/es6/System/Collections/CollectionBase.d.ts @@ -1,11 +1,15 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import DisposableBase from "../Disposable/DisposableBase"; -declare abstract class CollectionBase extends DisposableBase implements ICollection, IEnumerateEach { +import { DisposableBase } from "../Disposable/DisposableBase"; +import { ICollection } from "./ICollection"; +import { IEnumerator } from "./Enumeration/IEnumerator"; +import { IEnumerateEach } from "./Enumeration/IEnumerateEach"; +import { EqualityComparison, Predicate, Action } from "../FunctionTypes"; +import { IEnumerableOrArray } from "./IEnumerableOrArray"; +import { IArray } from "./Array/IArray"; +export declare abstract class CollectionBase extends DisposableBase implements ICollection, IEnumerateEach { protected _equalityComparer: EqualityComparison; constructor(source?: IEnumerableOrArray, _equalityComparer?: EqualityComparison); protected abstract getCount(): number; diff --git a/dist/es6/System/Collections/CollectionBase.js b/dist/es6/System/Collections/CollectionBase.js index 9e25eeae..92c0472a 100644 --- a/dist/es6/System/Collections/CollectionBase.js +++ b/dist/es6/System/Collections/CollectionBase.js @@ -4,11 +4,11 @@ */ import { forEach } from "./Enumeration/Enumerator"; import { areEqual } from "../Compare"; -import ArgumentNullException from "../Exceptions/ArgumentNullException"; -import InvalidOperationException from "../Exceptions/InvalidOperationException"; -import DisposableBase from "../Disposable/DisposableBase"; +import { ArgumentNullException } from "../Exceptions/ArgumentNullException"; +import { InvalidOperationException } from "../Exceptions/InvalidOperationException"; +import { DisposableBase } from "../Disposable/DisposableBase"; const NAME = "CollectionBase", CMDC = "Cannot modify a disposed collection.", CMRO = "Cannot modify a read-only collection."; -class CollectionBase extends DisposableBase { +export class CollectionBase extends DisposableBase { constructor(source, _equalityComparer = areEqual) { super(); this._equalityComparer = _equalityComparer; diff --git a/dist/es6/System/Collections/CollectionBase.js.map b/dist/es6/System/Collections/CollectionBase.js.map index 4e41e844..d1e145e3 100644 --- a/dist/es6/System/Collections/CollectionBase.js.map +++ b/dist/es6/System/Collections/CollectionBase.js.map @@ -1 +1 @@ -{"version":3,"file":"CollectionBase.js","sourceRoot":"","sources":["../../../../source/System/Collections/CollectionBase.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"CollectionBase.js","sourceRoot":"","sources":["../../../../source/System/Collections/CollectionBase.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6/System/Collections/Dictionaries/Dictionary.d.ts b/dist/es6/System/Collections/Dictionaries/Dictionary.d.ts index 8ce9d526..990f04d1 100644 --- a/dist/es6/System/Collections/Dictionaries/Dictionary.d.ts +++ b/dist/es6/System/Collections/Dictionaries/Dictionary.d.ts @@ -1,14 +1,16 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Original: http://linqjs.codeplex.com/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { IKeyValuePair } from "../../KeyValuePair"; +import { IEnumerator } from "../Enumeration/IEnumerator"; +import { ILinkedNode } from "../ILinkedListNode"; +import { Selector } from "../../FunctionTypes"; import DictionaryBase from "./DictionaryBase"; export interface IHashEntry extends ILinkedNode>, IKeyValuePair { } -export default class Dictionary extends DictionaryBase { +export declare class Dictionary extends DictionaryBase { private _keyComparer; private _entries; private _buckets; @@ -24,3 +26,4 @@ export default class Dictionary extends DictionaryBase /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import CollectionBase from "../CollectionBase"; -declare abstract class DictionaryBase extends CollectionBase> implements IDictionary { +import { CollectionBase } from "../CollectionBase"; +import { IKeyValuePair, KeyValuePair } from "../../KeyValuePair"; +import { IDictionary } from "./IDictionary"; +import { IEnumerator } from "../Enumeration/IEnumerator"; +import { IEnumerableOrArray } from "../IEnumerableOrArray"; +export declare abstract class DictionaryBase extends CollectionBase> implements IDictionary { constructor(source?: IEnumerableOrArray>); protected _onValueModified(key: TKey, value: TValue, old: TValue): void; protected _addInternal(item: KeyValuePair): boolean; diff --git a/dist/es6/System/Collections/Dictionaries/DictionaryBase.js b/dist/es6/System/Collections/Dictionaries/DictionaryBase.js index 8fa40db1..d300a509 100644 --- a/dist/es6/System/Collections/Dictionaries/DictionaryBase.js +++ b/dist/es6/System/Collections/Dictionaries/DictionaryBase.js @@ -2,16 +2,15 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; import { areEqual } from "../../Compare"; import { forEach } from "../Enumeration/Enumerator"; -import CollectionBase from "../CollectionBase"; -import EnumeratorBase from "../Enumeration/EnumeratorBase"; -import ArgumentNullException from "../../Exceptions/ArgumentNullException"; -import InvalidOperationException from "../../Exceptions/InvalidOperationException"; -import extractKeyValue from "../../KeyValueExtract"; +import { CollectionBase } from "../CollectionBase"; +import { EnumeratorBase } from "../Enumeration/EnumeratorBase"; +import { ArgumentNullException } from "../../Exceptions/ArgumentNullException"; +import { InvalidOperationException } from "../../Exceptions/InvalidOperationException"; +import { extractKeyValue } from "../../KeyValueExtract"; const VOID0 = void (0); -class DictionaryBase extends CollectionBase { +export class DictionaryBase extends CollectionBase { constructor(source) { super(source); } diff --git a/dist/es6/System/Collections/Dictionaries/DictionaryBase.js.map b/dist/es6/System/Collections/Dictionaries/DictionaryBase.js.map index 80f0fe92..dec12269 100644 --- a/dist/es6/System/Collections/Dictionaries/DictionaryBase.js.map +++ b/dist/es6/System/Collections/Dictionaries/DictionaryBase.js.map @@ -1 +1 @@ -{"version":3,"file":"DictionaryBase.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Dictionaries/DictionaryBase.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"DictionaryBase.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Dictionaries/DictionaryBase.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6/System/Collections/Dictionaries/OrderedStringKeyDictionary.d.ts b/dist/es6/System/Collections/Dictionaries/OrderedStringKeyDictionary.d.ts index 159e833b..ffe4df7a 100644 --- a/dist/es6/System/Collections/Dictionaries/OrderedStringKeyDictionary.d.ts +++ b/dist/es6/System/Collections/Dictionaries/OrderedStringKeyDictionary.d.ts @@ -2,8 +2,9 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import StringKeyDictionary from "./StringKeyDictionary"; -export default class OrderedStringKeyDictionary extends StringKeyDictionary implements IOrderedDictionary { +import { StringKeyDictionary } from "./StringKeyDictionary"; +import { IOrderedDictionary } from "./IDictionary"; +export declare class OrderedStringKeyDictionary extends StringKeyDictionary implements IOrderedDictionary { private _order; constructor(); indexOfKey(key: string): number; @@ -15,3 +16,4 @@ export default class OrderedStringKeyDictionary extends StringKeyDiction removeByIndex(index: number): boolean; protected getKeys(): string[]; } +export default OrderedStringKeyDictionary; diff --git a/dist/es6/System/Collections/Dictionaries/OrderedStringKeyDictionary.js b/dist/es6/System/Collections/Dictionaries/OrderedStringKeyDictionary.js index ac4506e7..c93008a9 100644 --- a/dist/es6/System/Collections/Dictionaries/OrderedStringKeyDictionary.js +++ b/dist/es6/System/Collections/Dictionaries/OrderedStringKeyDictionary.js @@ -2,12 +2,11 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; import * as ArrayUtility from "../Array/Utility"; -import StringKeyDictionary from "./StringKeyDictionary"; -import ArgumentOutOfRangeException from "../../Exceptions/ArgumentOutOfRangeException"; +import { StringKeyDictionary } from "./StringKeyDictionary"; +import { ArgumentOutOfRangeException } from "../../Exceptions/ArgumentOutOfRangeException"; const VOID0 = void 0; -export default class OrderedStringKeyDictionary extends StringKeyDictionary { +export class OrderedStringKeyDictionary extends StringKeyDictionary { constructor() { super(); this._order = []; @@ -58,4 +57,5 @@ export default class OrderedStringKeyDictionary extends StringKeyDictionary { return o.length && o.filter(key => _.containsKey(key)) || []; } } +export default OrderedStringKeyDictionary; //# sourceMappingURL=OrderedStringKeyDictionary.js.map \ No newline at end of file diff --git a/dist/es6/System/Collections/Dictionaries/OrderedStringKeyDictionary.js.map b/dist/es6/System/Collections/Dictionaries/OrderedStringKeyDictionary.js.map index 2c8f48e5..459e4651 100644 --- a/dist/es6/System/Collections/Dictionaries/OrderedStringKeyDictionary.js.map +++ b/dist/es6/System/Collections/Dictionaries/OrderedStringKeyDictionary.js.map @@ -1 +1 @@ -{"version":3,"file":"OrderedStringKeyDictionary.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Dictionaries/OrderedStringKeyDictionary.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"OrderedStringKeyDictionary.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Dictionaries/OrderedStringKeyDictionary.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6/System/Collections/Dictionaries/StringKeyDictionary.d.ts b/dist/es6/System/Collections/Dictionaries/StringKeyDictionary.d.ts index 15152615..2b7c006a 100644 --- a/dist/es6/System/Collections/Dictionaries/StringKeyDictionary.d.ts +++ b/dist/es6/System/Collections/Dictionaries/StringKeyDictionary.d.ts @@ -1,10 +1,11 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import DictionaryBase from "./DictionaryBase"; -export default class StringKeyDictionary extends DictionaryBase implements IStringKeyDictionary { +import { IStringKeyDictionary, IMap } from "./IDictionary"; +import { IKeyValuePair } from "../../KeyValuePair"; +import { DictionaryBase } from "./DictionaryBase"; +export declare class StringKeyDictionary extends DictionaryBase implements IStringKeyDictionary { private _count; private _map; protected _getEntry(key: string): IKeyValuePair; @@ -18,3 +19,4 @@ export default class StringKeyDictionary extends DictionaryBase /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import IndexEnumerator from "./IndexEnumerator"; -export default class ArrayEnumerator extends IndexEnumerator { +import { IndexEnumerator } from "./IndexEnumerator"; +import { IArray } from "../Array/IArray"; +export declare class ArrayEnumerator extends IndexEnumerator { constructor(arrayFactory: () => IArray, start?: number, step?: number); constructor(array: IArray, start?: number, step?: number); } +export default ArrayEnumerator; diff --git a/dist/es6/System/Collections/Enumeration/ArrayEnumerator.js b/dist/es6/System/Collections/Enumeration/ArrayEnumerator.js index c5e96cb9..10cfb40c 100644 --- a/dist/es6/System/Collections/Enumeration/ArrayEnumerator.js +++ b/dist/es6/System/Collections/Enumeration/ArrayEnumerator.js @@ -2,15 +2,20 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; -import IndexEnumerator from "./IndexEnumerator"; -import Type from "../../Types"; -export default class ArrayEnumerator extends IndexEnumerator { +import { IndexEnumerator } from "./IndexEnumerator"; +import { Type } from "../../Types"; +export class ArrayEnumerator extends IndexEnumerator { constructor(arrayOrFactory, start = 0, step = 1) { super(() => { var array = Type.isFunction(arrayOrFactory) ? arrayOrFactory() : arrayOrFactory; - return { source: array, pointer: start, length: array ? array.length : 0, step: step }; + return { + source: array, + pointer: start, + length: array ? array.length : 0, + step: step + }; }); } } +export default ArrayEnumerator; //# sourceMappingURL=ArrayEnumerator.js.map \ No newline at end of file diff --git a/dist/es6/System/Collections/Enumeration/ArrayEnumerator.js.map b/dist/es6/System/Collections/Enumeration/ArrayEnumerator.js.map index 3fa507f5..88c46686 100644 --- a/dist/es6/System/Collections/Enumeration/ArrayEnumerator.js.map +++ b/dist/es6/System/Collections/Enumeration/ArrayEnumerator.js.map @@ -1 +1 @@ -{"version":3,"file":"ArrayEnumerator.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Enumeration/ArrayEnumerator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,YAAY,CAAC;OAEN,eAAe,MAAM,mBAAmB;OACxC,IAAI,MAAM,aAAa;AAE9B,6CACiC,eAAe;IAI/C,YAAY,cAAkB,EAAE,KAAK,GAAU,CAAC,EAAE,IAAI,GAAU,CAAC;QAEhE,MACC;YAEC,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,cAAc,EAAE,GAAG,cAAc,CAAC;YAChF,MAAM,CAAC,EAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAC,CAAC;QACtF,CAAC,CACD,CAAC;IACH,CAAC;AACF,CAAC;AAAA"} \ No newline at end of file +{"version":3,"file":"ArrayEnumerator.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Enumeration/ArrayEnumerator.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAGI,EAAC,eAAe,EAAC,MAAM,mBAAmB;OAC1C,EAAC,IAAI,EAAC,MAAM,aAAa;AAGhC,qCAAwC,eAAe;IAItD,YAAY,cAAkB,EAAE,KAAK,GAAU,CAAC,EAAE,IAAI,GAAU,CAAC;QAEhE,MACC;YAEC,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,cAAc,EAAE,GAAG,cAAc,CAAC;YAChF,MAAM,CAAC;gBACN,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC;gBAChC,IAAI,EAAE,IAAI;aACV,CAAC;QACH,CAAC,CACD,CAAC;IACH,CAAC;AACF,CAAC;AAED,eAAe,eAAe,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Collections/Enumeration/Enumerator.d.ts b/dist/es6/System/Collections/Enumeration/Enumerator.d.ts index 4001711b..b0c4a155 100644 --- a/dist/es6/System/Collections/Enumeration/Enumerator.d.ts +++ b/dist/es6/System/Collections/Enumeration/Enumerator.d.ts @@ -1,13 +1,11 @@ -/// -/// -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { Selector } from "../../FunctionTypes"; +import { IEnumerator } from "./IEnumerator"; +import { IEnumerable } from "./IEnumerable"; +import { IEnumerableOrArray } from "../IEnumerableOrArray"; export declare function throwIfEndless(isEndless: boolean): void; export declare const empty: IEnumerator; export declare function from(source: IEnumerableOrArray): IEnumerator; diff --git a/dist/es6/System/Collections/Enumeration/Enumerator.js b/dist/es6/System/Collections/Enumeration/Enumerator.js index 45206ad6..5c7c69a7 100644 --- a/dist/es6/System/Collections/Enumeration/Enumerator.js +++ b/dist/es6/System/Collections/Enumeration/Enumerator.js @@ -2,12 +2,11 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; import { using } from "../../Disposable/dispose"; -import Type from "../../Types"; -import ArrayEnumerator from "./ArrayEnumerator"; -import IndexEnumerator from "./IndexEnumerator"; -import UnsupportedEnumerableException from "./UnsupportedEnumerableException"; +import { Type } from "../../Types"; +import { ArrayEnumerator } from "./ArrayEnumerator"; +import { IndexEnumerator } from "./IndexEnumerator"; +import { UnsupportedEnumerableException } from "./UnsupportedEnumerableException"; const VOID0 = void (0), STRING_EMPTY = "", ENDLESS_EXCEPTION_MESSAGE = 'Cannot call forEach on an endless enumerable. ' + 'Would result in an infinite loop that could hang the current process.'; export function throwIfEndless(isEndless) { diff --git a/dist/es6/System/Collections/Enumeration/Enumerator.js.map b/dist/es6/System/Collections/Enumeration/Enumerator.js.map index 9df63d21..92eab4fc 100644 --- a/dist/es6/System/Collections/Enumeration/Enumerator.js.map +++ b/dist/es6/System/Collections/Enumeration/Enumerator.js.map @@ -1 +1 @@ -{"version":3,"file":"Enumerator.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Enumeration/Enumerator.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Enumerator.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Enumeration/Enumerator.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6/System/Collections/Enumeration/EnumeratorBase.d.ts b/dist/es6/System/Collections/Enumeration/EnumeratorBase.d.ts index 8ed548b8..e86eaee3 100644 --- a/dist/es6/System/Collections/Enumeration/EnumeratorBase.d.ts +++ b/dist/es6/System/Collections/Enumeration/EnumeratorBase.d.ts @@ -1,13 +1,12 @@ -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import DisposableBase from "../../Disposable/DisposableBase"; -export default class EnumeratorBase extends DisposableBase implements IEnumerator { +import { DisposableBase } from "../../Disposable/DisposableBase"; +import { IEnumerator } from "./IEnumerator"; +import { IIteratorResult } from "./IIterator"; +import { IYield } from "./IYield"; +export declare class EnumeratorBase extends DisposableBase implements IEnumerator { private _initializer; private _tryGetNext; private _yielder; @@ -24,3 +23,4 @@ export default class EnumeratorBase extends DisposableBase implements IEnumer next(): IIteratorResult; protected _onDispose(): void; } +export default EnumeratorBase; diff --git a/dist/es6/System/Collections/Enumeration/EnumeratorBase.js b/dist/es6/System/Collections/Enumeration/EnumeratorBase.js index f2f3f8c8..36d71299 100644 --- a/dist/es6/System/Collections/Enumeration/EnumeratorBase.js +++ b/dist/es6/System/Collections/Enumeration/EnumeratorBase.js @@ -2,10 +2,9 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; -import Type from "../../Types"; -import DisposableBase from "../../Disposable/DisposableBase"; -import ObjectPool from "../../Disposable/ObjectPool"; +import { Type } from "../../Types"; +import { DisposableBase } from "../../Disposable/DisposableBase"; +import { ObjectPool } from "../../Disposable/ObjectPool"; const VOID0 = void (0); var yielderPool; function yielder(recycle) { @@ -40,7 +39,7 @@ var EnumeratorState; EnumeratorState[EnumeratorState["Running"] = 1] = "Running"; EnumeratorState[EnumeratorState["After"] = 2] = "After"; })(EnumeratorState || (EnumeratorState = {})); -export default class EnumeratorBase extends DisposableBase { +export class EnumeratorBase extends DisposableBase { constructor(_initializer, _tryGetNext, disposer, isEndless) { super(); this._initializer = _initializer; @@ -126,4 +125,5 @@ export default class EnumeratorBase extends DisposableBase { } } } +export default EnumeratorBase; //# sourceMappingURL=EnumeratorBase.js.map \ No newline at end of file diff --git a/dist/es6/System/Collections/Enumeration/EnumeratorBase.js.map b/dist/es6/System/Collections/Enumeration/EnumeratorBase.js.map index 70cb0027..87888a2b 100644 --- a/dist/es6/System/Collections/Enumeration/EnumeratorBase.js.map +++ b/dist/es6/System/Collections/Enumeration/EnumeratorBase.js.map @@ -1 +1 @@ -{"version":3,"file":"EnumeratorBase.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Enumeration/EnumeratorBase.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"EnumeratorBase.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Enumeration/EnumeratorBase.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6/System/Collections/Enumeration/IndexEnumerator.d.ts b/dist/es6/System/Collections/Enumeration/IndexEnumerator.d.ts index e85a88be..d5df161c 100644 --- a/dist/es6/System/Collections/Enumeration/IndexEnumerator.d.ts +++ b/dist/es6/System/Collections/Enumeration/IndexEnumerator.d.ts @@ -2,8 +2,8 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import EnumeratorBase from "./EnumeratorBase"; -export default class IndexEnumerator extends EnumeratorBase { +import { EnumeratorBase } from "./EnumeratorBase"; +export declare class IndexEnumerator extends EnumeratorBase { constructor(sourceFactory: () => { source: { [index: number]: T; @@ -13,3 +13,4 @@ export default class IndexEnumerator extends EnumeratorBase { step?: number; }); } +export default IndexEnumerator; diff --git a/dist/es6/System/Collections/Enumeration/IndexEnumerator.js b/dist/es6/System/Collections/Enumeration/IndexEnumerator.js index de51f424..0360751d 100644 --- a/dist/es6/System/Collections/Enumeration/IndexEnumerator.js +++ b/dist/es6/System/Collections/Enumeration/IndexEnumerator.js @@ -2,9 +2,8 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; -import EnumeratorBase from "./EnumeratorBase"; -export default class IndexEnumerator extends EnumeratorBase { +import { EnumeratorBase } from "./EnumeratorBase"; +export class IndexEnumerator extends EnumeratorBase { constructor(sourceFactory) { var source; super(() => { @@ -47,4 +46,5 @@ export default class IndexEnumerator extends EnumeratorBase { this._isEndless = false; } } +export default IndexEnumerator; //# sourceMappingURL=IndexEnumerator.js.map \ No newline at end of file diff --git a/dist/es6/System/Collections/Enumeration/IndexEnumerator.js.map b/dist/es6/System/Collections/Enumeration/IndexEnumerator.js.map index 1cc18f4d..266db161 100644 --- a/dist/es6/System/Collections/Enumeration/IndexEnumerator.js.map +++ b/dist/es6/System/Collections/Enumeration/IndexEnumerator.js.map @@ -1 +1 @@ -{"version":3,"file":"IndexEnumerator.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Enumeration/IndexEnumerator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,CAAC;OAEN,cAAc,MAAM,kBAAkB;AAE7C,6CACiC,cAAc;IAG9C,YACC,aAAuG;QAGvG,IAAI,MAA0F,CAAC;QAC/F,MACC;YAEC,MAAM,GAAG,aAAa,EAAE,CAAC;YACzB,EAAE,CAAA,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,CAC3B,CAAC;gBACA,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;gBACxB,EAAE,CAAA,CAAC,GAAG,GAAC,CAAC,CAAC;oBACR,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;gBAEnD,EAAE,CAAA,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;oBACjB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;gBAE9C,EAAE,CAAA,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,KAAG,CAAC,CAAC;oBACzB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;gBAC5D,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;gBAC7B,EAAE,CAAA,CAAC,CAAC,OAAO,CAAC;oBACX,OAAO,GAAG,CAAC,CAAC;gBACb,IAAI,CAAC,EAAE,CAAA,CAAC,OAAO,IAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACpC,MAAM,IAAI,KAAK,CAAC,yCAAyC,GAAG,OAAO,GAAG,gBAAgB,CAAC,CAAC;gBACzF,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;gBAEzB,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;gBACvB,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC;oBACR,IAAI,GAAG,CAAC,CAAC;gBACV,IAAI,CAAC,EAAE,CAAA,CAAC,IAAI,IAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC9B,MAAM,IAAI,KAAK,CAAC,sCAAsC,GAAG,IAAI,GAAG,gBAAgB,CAAC,CAAC;gBACnF,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;YACpB,CAAC;QACF,CAAC,EAED,CAAC,OAAO;YAEP,IAAI,GAAG,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YACxD,EAAE,CAAA,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;gBACrB,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YAC7B,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YAC7B,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC;YAC9B,MAAM,CAAC,CAAC,OAAO,GAAC,GAAG,IAAI,OAAO,IAAE,CAAC,CAAC;kBAC/B,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;kBAC3C,OAAO,CAAC,UAAU,EAAE,CAAC;QACzB,CAAC,EAED;YAEC,EAAE,CAAA,CAAC,MAAM,CAAC,CACV,CAAC;gBACA,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;YACtB,CAAC;QACF,CAAC,CACD,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IACzB,CAAC;AACF,CAAC;AAAA"} \ No newline at end of file +{"version":3,"file":"IndexEnumerator.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Enumeration/IndexEnumerator.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAEI,EAAC,cAAc,EAAC,MAAM,kBAAkB;AAE/C,qCAAwC,cAAc;IAGrD,YACC,aAAuG;QAGvG,IAAI,MAA0F,CAAC;QAC/F,MACC;YAEC,MAAM,GAAG,aAAa,EAAE,CAAC;YACzB,EAAE,CAAA,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,CAC3B,CAAC;gBACA,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;gBACxB,EAAE,CAAA,CAAC,GAAG,GAAC,CAAC,CAAC;oBACR,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;gBAEnD,EAAE,CAAA,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;oBACjB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;gBAE9C,EAAE,CAAA,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,KAAG,CAAC,CAAC;oBACzB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;gBAC5D,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;gBAC7B,EAAE,CAAA,CAAC,CAAC,OAAO,CAAC;oBACX,OAAO,GAAG,CAAC,CAAC;gBACb,IAAI,CAAC,EAAE,CAAA,CAAC,OAAO,IAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACpC,MAAM,IAAI,KAAK,CAAC,yCAAyC,GAAG,OAAO,GAAG,gBAAgB,CAAC,CAAC;gBACzF,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;gBAEzB,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;gBACvB,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC;oBACR,IAAI,GAAG,CAAC,CAAC;gBACV,IAAI,CAAC,EAAE,CAAA,CAAC,IAAI,IAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC9B,MAAM,IAAI,KAAK,CAAC,sCAAsC,GAAG,IAAI,GAAG,gBAAgB,CAAC,CAAC;gBACnF,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;YACpB,CAAC;QACF,CAAC,EAED,CAAC,OAAO;YAEP,IAAI,GAAG,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YACxD,EAAE,CAAA,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;gBACrB,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YAC7B,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YAC7B,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC;YAC9B,MAAM,CAAC,CAAC,OAAO,GAAC,GAAG,IAAI,OAAO,IAAE,CAAC,CAAC;kBAC/B,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;kBAC3C,OAAO,CAAC,UAAU,EAAE,CAAC;QACzB,CAAC,EAED;YAEC,EAAE,CAAA,CAAC,MAAM,CAAC,CACV,CAAC;gBACA,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;YACtB,CAAC;QACF,CAAC,CACD,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IACzB,CAAC;AACF,CAAC;AAED,eAAe,eAAe,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Collections/Enumeration/UnsupportedEnumerableException.d.ts b/dist/es6/System/Collections/Enumeration/UnsupportedEnumerableException.d.ts index b966255b..fc268ec1 100644 --- a/dist/es6/System/Collections/Enumeration/UnsupportedEnumerableException.d.ts +++ b/dist/es6/System/Collections/Enumeration/UnsupportedEnumerableException.d.ts @@ -3,8 +3,9 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -import SystemException from "../../Exceptions/SystemException"; -export default class UnsupportedEnumerableException extends SystemException { +import { SystemException } from "../../Exceptions/SystemException"; +export declare class UnsupportedEnumerableException extends SystemException { constructor(message?: string); protected getName(): string; } +export default UnsupportedEnumerableException; diff --git a/dist/es6/System/Collections/Enumeration/UnsupportedEnumerableException.js b/dist/es6/System/Collections/Enumeration/UnsupportedEnumerableException.js index 0a2df123..eda81345 100644 --- a/dist/es6/System/Collections/Enumeration/UnsupportedEnumerableException.js +++ b/dist/es6/System/Collections/Enumeration/UnsupportedEnumerableException.js @@ -3,10 +3,9 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -'use strict'; -import SystemException from "../../Exceptions/SystemException"; +import { SystemException } from "../../Exceptions/SystemException"; const NAME = 'UnsupportedEnumerableException'; -export default class UnsupportedEnumerableException extends SystemException { +export class UnsupportedEnumerableException extends SystemException { constructor(message) { super(message || "Unsupported enumerable."); } @@ -14,4 +13,5 @@ export default class UnsupportedEnumerableException extends SystemException { return NAME; } } +export default UnsupportedEnumerableException; //# sourceMappingURL=UnsupportedEnumerableException.js.map \ No newline at end of file diff --git a/dist/es6/System/Collections/Enumeration/UnsupportedEnumerableException.js.map b/dist/es6/System/Collections/Enumeration/UnsupportedEnumerableException.js.map index 0878fbca..5e81159a 100644 --- a/dist/es6/System/Collections/Enumeration/UnsupportedEnumerableException.js.map +++ b/dist/es6/System/Collections/Enumeration/UnsupportedEnumerableException.js.map @@ -1 +1 @@ -{"version":3,"file":"UnsupportedEnumerableException.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Enumeration/UnsupportedEnumerableException.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,CAAC;OAEN,eAAe,MAAM,kCAAkC;AAE9D,MAAM,IAAI,GAAU,gCAAgC,CAAC;AAErD,4DAC6C,eAAe;IAE3D,YAAY,OAAe;QAC1B,MAAM,OAAO,IAAI,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAES,OAAO;QAEhB,MAAM,CAAC,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAAA"} \ No newline at end of file +{"version":3,"file":"UnsupportedEnumerableException.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Enumeration/UnsupportedEnumerableException.ts"],"names":[],"mappings":"AAAA;;;;GAIG;OAEI,EAAC,eAAe,EAAC,MAAM,kCAAkC;AAEhE,MAAM,IAAI,GAAU,gCAAgC,CAAC;AAErD,oDAAoD,eAAe;IAGlE,YAAY,OAAe;QAE1B,MAAM,OAAO,IAAI,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAES,OAAO;QAEhB,MAAM,CAAC,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAED,eAAe,8BAA8B,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Collections/LinkedList.d.ts b/dist/es6/System/Collections/LinkedList.d.ts index 6de7a80e..b3fef8d7 100644 --- a/dist/es6/System/Collections/LinkedList.d.ts +++ b/dist/es6/System/Collections/LinkedList.d.ts @@ -1,12 +1,14 @@ -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Based Upon: http://msdn.microsoft.com/en-us/library/he2s3bh7%28v=vs.110%29.aspx * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import CollectionBase from "./CollectionBase"; +import { CollectionBase } from "./CollectionBase"; +import { ILinkedListNode } from "./ILinkedListNode"; +import { IEnumerator } from "./Enumeration/IEnumerator"; +import { Predicate, Action, EqualityComparison } from "../FunctionTypes"; +import { ILinkedList } from "./ILinkedList"; +import { IEnumerableOrArray } from "./IEnumerableOrArray"; export default class LinkedList extends CollectionBase implements ILinkedList { private _listInternal; constructor(source?: IEnumerableOrArray, equalityComparer?: EqualityComparison); diff --git a/dist/es6/System/Collections/LinkedList.js b/dist/es6/System/Collections/LinkedList.js index f52cf040..eb46d2f2 100644 --- a/dist/es6/System/Collections/LinkedList.js +++ b/dist/es6/System/Collections/LinkedList.js @@ -3,12 +3,11 @@ * Based Upon: http://msdn.microsoft.com/en-us/library/he2s3bh7%28v=vs.110%29.aspx * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; import { areEqual } from "../Compare"; -import LinkedNodeList from "./LinkedNodeList"; -import InvalidOperationException from "../Exceptions/InvalidOperationException"; -import ArgumentNullException from "../Exceptions/ArgumentNullException"; -import CollectionBase from "./CollectionBase"; +import { LinkedNodeList } from "./LinkedNodeList"; +import { InvalidOperationException } from "../Exceptions/InvalidOperationException"; +import { ArgumentNullException } from "../Exceptions/ArgumentNullException"; +import { CollectionBase } from "./CollectionBase"; class InternalNode { constructor(value, previous, next) { this.value = value; diff --git a/dist/es6/System/Collections/LinkedList.js.map b/dist/es6/System/Collections/LinkedList.js.map index eb991c73..71574468 100644 --- a/dist/es6/System/Collections/LinkedList.js.map +++ b/dist/es6/System/Collections/LinkedList.js.map @@ -1 +1 @@ -{"version":3,"file":"LinkedList.js","sourceRoot":"","sources":["../../../../source/System/Collections/LinkedList.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"LinkedList.js","sourceRoot":"","sources":["../../../../source/System/Collections/LinkedList.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6/System/Collections/LinkedNodeList.d.ts b/dist/es6/System/Collections/LinkedNodeList.d.ts index 2f91455d..2baad203 100644 --- a/dist/es6/System/Collections/LinkedNodeList.d.ts +++ b/dist/es6/System/Collections/LinkedNodeList.d.ts @@ -1,9 +1,15 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -export default class LinkedNodeList> implements ILinkedNodeList, IEnumerateEach, IDisposable { +import { ILinkedNode, ILinkedNodeWithValue } from "./ILinkedListNode"; +import { IEnumerateEach } from "./Enumeration/IEnumerateEach"; +import { IDisposable } from "../Disposable/IDisposable"; +import { ILinkedNodeList } from "./ILinkedList"; +import { IEnumerator } from "./Enumeration/IEnumerator"; +import { Predicate, Selector, Action } from "../FunctionTypes"; +import { IArray } from "./Array/IArray"; +export declare class LinkedNodeList> implements ILinkedNodeList, IEnumerateEach, IDisposable { private _first; private _last; unsafeCount: number; @@ -29,3 +35,4 @@ export default class LinkedNodeList> implements static valueEnumeratorFrom(list: LinkedNodeList>): IEnumerator; static copyValues>(list: LinkedNodeList>, array: TDestination, index?: number): TDestination; } +export default LinkedNodeList; diff --git a/dist/es6/System/Collections/LinkedNodeList.js b/dist/es6/System/Collections/LinkedNodeList.js index b37b60ad..6a059223 100644 --- a/dist/es6/System/Collections/LinkedNodeList.js +++ b/dist/es6/System/Collections/LinkedNodeList.js @@ -2,13 +2,12 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; import * as TextUtility from "../Text/Utility"; -import InvalidOperationException from "../Exceptions/InvalidOperationException"; -import ArgumentException from "../Exceptions/ArgumentException"; -import ArgumentNullException from "../Exceptions/ArgumentNullException"; -import EnumeratorBase from "./Enumeration/EnumeratorBase"; -export default class LinkedNodeList { +import { InvalidOperationException } from "../Exceptions/InvalidOperationException"; +import { ArgumentException } from "../Exceptions/ArgumentException"; +import { ArgumentNullException } from "../Exceptions/ArgumentNullException"; +import { EnumeratorBase } from "./Enumeration/EnumeratorBase"; +export class LinkedNodeList { constructor() { this._first = null; this._last = null; @@ -231,4 +230,5 @@ function assertValidDetached(node, propName = 'node') { if (node.next || node.previous) throw new InvalidOperationException("Cannot add a node to a LinkedNodeList that is already linked."); } +export default LinkedNodeList; //# sourceMappingURL=LinkedNodeList.js.map \ No newline at end of file diff --git a/dist/es6/System/Collections/LinkedNodeList.js.map b/dist/es6/System/Collections/LinkedNodeList.js.map index 80f08445..69116504 100644 --- a/dist/es6/System/Collections/LinkedNodeList.js.map +++ b/dist/es6/System/Collections/LinkedNodeList.js.map @@ -1 +1 @@ -{"version":3,"file":"LinkedNodeList.js","sourceRoot":"","sources":["../../../../source/System/Collections/LinkedNodeList.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"LinkedNodeList.js","sourceRoot":"","sources":["../../../../source/System/Collections/LinkedNodeList.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6/System/Collections/List.d.ts b/dist/es6/System/Collections/List.d.ts index 39f8549b..4841979b 100644 --- a/dist/es6/System/Collections/List.d.ts +++ b/dist/es6/System/Collections/List.d.ts @@ -1,10 +1,15 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import CollectionBase from "./CollectionBase"; -export default class List extends CollectionBase implements IList, IEnumerateEach { +import { CollectionBase } from "./CollectionBase"; +import { Predicate, Action, EqualityComparison } from "../FunctionTypes"; +import { IEnumerator } from "./Enumeration/IEnumerator"; +import { IList } from "./IList"; +import { IEnumerateEach } from "./Enumeration/IEnumerateEach"; +import { IEnumerableOrArray } from "./IEnumerableOrArray"; +import { IArray } from "./Array/IArray"; +export declare class List extends CollectionBase implements IList, IEnumerateEach { protected _source: T[]; constructor(source?: IEnumerableOrArray, equalityComparer?: EqualityComparison); protected getCount(): number; @@ -22,3 +27,4 @@ export default class List extends CollectionBase implements IList, IEnu getEnumerator(): IEnumerator; forEach(action: Predicate | Action, useCopy?: boolean): void; } +export default List; diff --git a/dist/es6/System/Collections/List.js b/dist/es6/System/Collections/List.js index 18041e0f..231c156e 100644 --- a/dist/es6/System/Collections/List.js +++ b/dist/es6/System/Collections/List.js @@ -5,10 +5,10 @@ import { areEqual } from "../Compare"; import { remove, indexOf, contains, copyTo, removeIndex } from "./Array/Utility"; import { forEach } from "./Enumeration/Enumerator"; -import Type from "../Types"; -import ArrayEnumerator from "./Enumeration/ArrayEnumerator"; -import CollectionBase from "./CollectionBase"; -export default class List extends CollectionBase { +import { Type } from "../Types"; +import { ArrayEnumerator } from "./Enumeration/ArrayEnumerator"; +import { CollectionBase } from "./CollectionBase"; +export class List extends CollectionBase { constructor(source, equalityComparer = areEqual) { super(null, equalityComparer); var _ = this; @@ -97,4 +97,5 @@ export default class List extends CollectionBase { forEach(useCopy ? s.slice() : s, action); } } +export default List; //# sourceMappingURL=List.js.map \ No newline at end of file diff --git a/dist/es6/System/Collections/List.js.map b/dist/es6/System/Collections/List.js.map index 64bceb67..54f6d787 100644 --- a/dist/es6/System/Collections/List.js.map +++ b/dist/es6/System/Collections/List.js.map @@ -1 +1 @@ -{"version":3,"file":"List.js","sourceRoot":"","sources":["../../../../source/System/Collections/List.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"List.js","sourceRoot":"","sources":["../../../../source/System/Collections/List.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6/System/Collections/Queue.d.ts b/dist/es6/System/Collections/Queue.d.ts index e634439d..818016a6 100644 --- a/dist/es6/System/Collections/Queue.d.ts +++ b/dist/es6/System/Collections/Queue.d.ts @@ -1,15 +1,13 @@ -/// -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Based Upon: http://referencesource.microsoft.com/#System/CompMod/system/collections/generic/queue.cs * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import CollectionBase from "./CollectionBase"; -export default class Queue extends CollectionBase { +import { CollectionBase } from "./CollectionBase"; +import { EqualityComparison, Predicate, Action } from "../FunctionTypes"; +import { IEnumerator } from "./Enumeration/IEnumerator"; +import { IEnumerableOrArray } from "./IEnumerableOrArray"; +export declare class Queue extends CollectionBase { private _array; private _head; private _tail; @@ -33,3 +31,4 @@ export default class Queue extends CollectionBase { trimExcess(threshold?: number): void; getEnumerator(): IEnumerator; } +export default Queue; diff --git a/dist/es6/System/Collections/Queue.js b/dist/es6/System/Collections/Queue.js index d6b446dd..dd7e4e3f 100644 --- a/dist/es6/System/Collections/Queue.js +++ b/dist/es6/System/Collections/Queue.js @@ -3,22 +3,21 @@ * Based Upon: http://referencesource.microsoft.com/#System/CompMod/system/collections/generic/queue.cs * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; import { areEqual } from "../Compare"; import * as AU from "./Array/Utility"; -import Type from "../Types"; -import Integer from "../Integer"; -import EnumeratorBase from "./Enumeration/EnumeratorBase"; -import NotImplementedException from "../Exceptions/NotImplementedException"; -import InvalidOperationException from "../Exceptions/InvalidOperationException"; -import ArgumentOutOfRangeException from "../Exceptions/ArgumentOutOfRangeException"; -import CollectionBase from "./CollectionBase"; +import { Type } from "../Types"; +import { Integer } from "../Integer"; +import { EnumeratorBase } from "./Enumeration/EnumeratorBase"; +import { NotImplementedException } from "../Exceptions/NotImplementedException"; +import { InvalidOperationException } from "../Exceptions/InvalidOperationException"; +import { ArgumentOutOfRangeException } from "../Exceptions/ArgumentOutOfRangeException"; +import { CollectionBase } from "./CollectionBase"; const MINIMUM_GROW = 4; const SHRINK_THRESHOLD = 32; const GROW_FACTOR_HALF = 100; const DEFAULT_CAPACITY = MINIMUM_GROW; var emptyArray = []; -export default class Queue extends CollectionBase { +export class Queue extends CollectionBase { constructor(source, equalityComparer = areEqual) { super(null, equalityComparer); var _ = this; @@ -214,4 +213,5 @@ function assertIntegerZeroOrGreater(value, property) { Integer.assert(value, property); assertZeroOrGreater(value, property); } +export default Queue; //# sourceMappingURL=Queue.js.map \ No newline at end of file diff --git a/dist/es6/System/Collections/Queue.js.map b/dist/es6/System/Collections/Queue.js.map index e9167351..12e785a5 100644 --- a/dist/es6/System/Collections/Queue.js.map +++ b/dist/es6/System/Collections/Queue.js.map @@ -1 +1 @@ -{"version":3,"file":"Queue.js","sourceRoot":"","sources":["../../../../source/System/Collections/Queue.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Queue.js","sourceRoot":"","sources":["../../../../source/System/Collections/Queue.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6/System/Collections/ReadOnlyCollectionBase.d.ts b/dist/es6/System/Collections/ReadOnlyCollectionBase.d.ts index 5633231c..2553028b 100644 --- a/dist/es6/System/Collections/ReadOnlyCollectionBase.d.ts +++ b/dist/es6/System/Collections/ReadOnlyCollectionBase.d.ts @@ -1,11 +1,10 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import CollectionBase from "./CollectionBase"; -declare abstract class ReadOnlyCollectionBase extends CollectionBase { +import { CollectionBase } from "./CollectionBase"; +import { IEnumerator } from "./Enumeration/IEnumerator"; +export declare abstract class ReadOnlyCollectionBase extends CollectionBase { protected _getCount: () => number; protected getCount(): number; protected getIsReadOnly(): boolean; diff --git a/dist/es6/System/Collections/ReadOnlyCollectionBase.js b/dist/es6/System/Collections/ReadOnlyCollectionBase.js index 648309b7..685768c8 100644 --- a/dist/es6/System/Collections/ReadOnlyCollectionBase.js +++ b/dist/es6/System/Collections/ReadOnlyCollectionBase.js @@ -2,8 +2,8 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import CollectionBase from "./CollectionBase"; -class ReadOnlyCollectionBase extends CollectionBase { +import { CollectionBase } from "./CollectionBase"; +export class ReadOnlyCollectionBase extends CollectionBase { getCount() { return this._getCount(); } diff --git a/dist/es6/System/Collections/ReadOnlyCollectionBase.js.map b/dist/es6/System/Collections/ReadOnlyCollectionBase.js.map index f5162a9b..c516c424 100644 --- a/dist/es6/System/Collections/ReadOnlyCollectionBase.js.map +++ b/dist/es6/System/Collections/ReadOnlyCollectionBase.js.map @@ -1 +1 @@ -{"version":3,"file":"ReadOnlyCollectionBase.js","sourceRoot":"","sources":["../../../../source/System/Collections/ReadOnlyCollectionBase.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAKI,cAAc,MAAM,kBAAkB;AAE7C,qCACQ,cAAc;IAIX,QAAQ;QAEjB,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;IACzB,CAAC;IAES,aAAa;QAEtB,MAAM,CAAC,IAAI,CAAC;IACb,CAAC;IAES,YAAY,CAAC,KAAO;QAE7B,MAAM,CAAC,KAAK,CAAC;IACd,CAAC;IAES,eAAe,CAAC,KAAO,EAAE,GAAW;QAE7C,MAAM,CAAC,CAAC,CAAC;IACV,CAAC;IAES,cAAc;QAEvB,MAAM,CAAC,CAAC,CAAC;IACV,CAAC;IAGD,aAAa;QACZ,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;IAC9B,CAAC;AAEF,CAAC;AAED,eAAe,sBAAsB,CAAC"} \ No newline at end of file +{"version":3,"file":"ReadOnlyCollectionBase.js","sourceRoot":"","sources":["../../../../source/System/Collections/ReadOnlyCollectionBase.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAEI,EAAC,cAAc,EAAC,MAAM,kBAAkB;AAG/C,4CACQ,cAAc;IAKX,QAAQ;QAEjB,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;IACzB,CAAC;IAES,aAAa;QAEtB,MAAM,CAAC,IAAI,CAAC;IACb,CAAC;IAES,YAAY,CAAC,KAAO;QAE7B,MAAM,CAAC,KAAK,CAAC;IACd,CAAC;IAES,eAAe,CAAC,KAAO,EAAE,GAAW;QAE7C,MAAM,CAAC,CAAC,CAAC;IACV,CAAC;IAES,cAAc;QAEvB,MAAM,CAAC,CAAC,CAAC;IACV,CAAC;IAID,aAAa;QAEZ,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;IAC9B,CAAC;AAEF,CAAC;AAED,eAAe,sBAAsB,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Collections/ReadOnlyCollectionWrapper.d.ts b/dist/es6/System/Collections/ReadOnlyCollectionWrapper.d.ts index 4b2dbde9..3bd3b498 100644 --- a/dist/es6/System/Collections/ReadOnlyCollectionWrapper.d.ts +++ b/dist/es6/System/Collections/ReadOnlyCollectionWrapper.d.ts @@ -2,7 +2,8 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import ReadOnlyCollection from "./ReadOnlyCollectionBase"; -export default class ReadOnlyCollectionWrapper extends ReadOnlyCollection { +import { ReadOnlyCollectionBase } from "./ReadOnlyCollectionBase"; +import { ICollection } from "./ICollection"; +export default class ReadOnlyCollectionWrapper extends ReadOnlyCollectionBase { constructor(c: ICollection); } diff --git a/dist/es6/System/Collections/ReadOnlyCollectionWrapper.js b/dist/es6/System/Collections/ReadOnlyCollectionWrapper.js index 54acf6e0..393e0866 100644 --- a/dist/es6/System/Collections/ReadOnlyCollectionWrapper.js +++ b/dist/es6/System/Collections/ReadOnlyCollectionWrapper.js @@ -2,9 +2,9 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import ArgumentNullException from "../Exceptions/ArgumentNullException"; -import ReadOnlyCollection from "./ReadOnlyCollectionBase"; -export default class ReadOnlyCollectionWrapper extends ReadOnlyCollection { +import { ArgumentNullException } from "../Exceptions/ArgumentNullException"; +import { ReadOnlyCollectionBase } from "./ReadOnlyCollectionBase"; +export default class ReadOnlyCollectionWrapper extends ReadOnlyCollectionBase { constructor(c) { super(); if (!c) diff --git a/dist/es6/System/Collections/ReadOnlyCollectionWrapper.js.map b/dist/es6/System/Collections/ReadOnlyCollectionWrapper.js.map index 32a12d02..ce58d0ee 100644 --- a/dist/es6/System/Collections/ReadOnlyCollectionWrapper.js.map +++ b/dist/es6/System/Collections/ReadOnlyCollectionWrapper.js.map @@ -1 +1 @@ -{"version":3,"file":"ReadOnlyCollectionWrapper.js","sourceRoot":"","sources":["../../../../source/System/Collections/ReadOnlyCollectionWrapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAEI,qBAAqB,MAAM,qCAAqC;OAChE,kBAAkB,MAAM,0BAA0B;AAEzD,uDAA0D,kBAAkB;IAE3E,YAAY,CAAgB;QAE3B,OAAO,CAAC;QAER,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC;YACL,MAAM,IAAI,qBAAqB,CAAC,YAAY,CAAC,CAAC;QAE/C,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,CAAC,CAAC,SAAS,GAAG,MAAI,CAAC,CAAC,KAAK,CAAC;QAC1B,CAAC,CAAC,aAAa,GAAG,MAAK,CAAC,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;AACF,CAAC;AAAA"} \ No newline at end of file +{"version":3,"file":"ReadOnlyCollectionWrapper.js","sourceRoot":"","sources":["../../../../source/System/Collections/ReadOnlyCollectionWrapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAEI,EAAC,qBAAqB,EAAC,MAAM,qCAAqC;OAClE,EAAC,sBAAsB,EAAC,MAAM,0BAA0B;AAG/D,uDAA0D,sBAAsB;IAE/E,YAAY,CAAgB;QAE3B,OAAO,CAAC;QAER,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC;YACL,MAAM,IAAI,qBAAqB,CAAC,YAAY,CAAC,CAAC;QAE/C,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,CAAC,CAAC,SAAS,GAAG,MAAI,CAAC,CAAC,KAAK,CAAC;QAC1B,CAAC,CAAC,aAAa,GAAG,MAAK,CAAC,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;AACF,CAAC;AAAA"} \ No newline at end of file diff --git a/dist/es6/System/Collections/Set.d.ts b/dist/es6/System/Collections/Set.d.ts index b44c6c2d..9d80d8ae 100644 --- a/dist/es6/System/Collections/Set.d.ts +++ b/dist/es6/System/Collections/Set.d.ts @@ -1,12 +1,12 @@ -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import SetBase from "./SetBase"; -export default class Set extends SetBase { +import { SetBase } from "./SetBase"; +import { ILinkedNodeWithValue } from "./ILinkedListNode"; +import { Primitive } from "../Primitive"; +import { IEnumerableOrArray } from "./IEnumerableOrArray"; +export declare class Set extends SetBase { protected newUsing(source?: IEnumerableOrArray): Set; private _registry; protected _addInternal(item: T): boolean; @@ -15,3 +15,4 @@ export default class Set extends SetBase { protected _getNode(item: T): ILinkedNodeWithValue; protected _removeInternal(item: T, max?: number): number; } +export default Set; diff --git a/dist/es6/System/Collections/Set.js b/dist/es6/System/Collections/Set.js index 05641572..baed12c4 100644 --- a/dist/es6/System/Collections/Set.js +++ b/dist/es6/System/Collections/Set.js @@ -2,11 +2,11 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import Type from "../Types"; -import ArgumentException from "../Exceptions/ArgumentException"; -import SetBase from "./SetBase"; +import { Type } from "../Types"; +import { ArgumentException } from "../Exceptions/ArgumentException"; +import { SetBase } from "./SetBase"; const OTHER = 'other'; -export default class Set extends SetBase { +export class Set extends SetBase { newUsing(source) { return new Set(source); } @@ -64,4 +64,5 @@ function wipe(map, depth = 1) { } } } +export default Set; //# sourceMappingURL=Set.js.map \ No newline at end of file diff --git a/dist/es6/System/Collections/Set.js.map b/dist/es6/System/Collections/Set.js.map index a0f11670..3341a037 100644 --- a/dist/es6/System/Collections/Set.js.map +++ b/dist/es6/System/Collections/Set.js.map @@ -1 +1 @@ -{"version":3,"file":"Set.js","sourceRoot":"","sources":["../../../../source/System/Collections/Set.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Set.js","sourceRoot":"","sources":["../../../../source/System/Collections/Set.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6/System/Collections/SetBase.d.ts b/dist/es6/System/Collections/SetBase.d.ts index 1b129395..efd9f1c3 100644 --- a/dist/es6/System/Collections/SetBase.d.ts +++ b/dist/es6/System/Collections/SetBase.d.ts @@ -1,13 +1,16 @@ -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import LinkedNodeList from "./LinkedNodeList"; -import CollectionBase from "./CollectionBase"; -declare abstract class SetBase extends CollectionBase implements ISet, IDisposable { +import { LinkedNodeList } from "./LinkedNodeList"; +import { CollectionBase } from "./CollectionBase"; +import { IDisposable } from "../Disposable/IDisposable"; +import { ILinkedNodeWithValue } from "./ILinkedListNode"; +import { Predicate, Action } from "../FunctionTypes"; +import { IEnumerator } from "./Enumeration/IEnumerator"; +import { IEnumerableOrArray } from "./IEnumerableOrArray"; +import { ISet } from "./ISet"; +export declare abstract class SetBase extends CollectionBase implements ISet, IDisposable { constructor(source?: IEnumerableOrArray); protected abstract newUsing(source?: IEnumerableOrArray): SetBase; protected _set: LinkedNodeList>; diff --git a/dist/es6/System/Collections/SetBase.js b/dist/es6/System/Collections/SetBase.js index 7e2fbe5b..6fd32b8a 100644 --- a/dist/es6/System/Collections/SetBase.js +++ b/dist/es6/System/Collections/SetBase.js @@ -2,14 +2,14 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import LinkedNodeList from "./LinkedNodeList"; -import ArgumentNullException from "../Exceptions/ArgumentNullException"; +import { LinkedNodeList } from "./LinkedNodeList"; +import { ArgumentNullException } from "../Exceptions/ArgumentNullException"; import { forEach, empty as emptyEnumerator } from "./Enumeration/Enumerator"; import { using } from "../Disposable/dispose"; import { areEqual } from "../Compare"; -import CollectionBase from "./CollectionBase"; +import { CollectionBase } from "./CollectionBase"; const OTHER = 'other'; -class SetBase extends CollectionBase { +export class SetBase extends CollectionBase { constructor(source) { super(null, areEqual); this._importEntries(source); diff --git a/dist/es6/System/Collections/SetBase.js.map b/dist/es6/System/Collections/SetBase.js.map index 2ede32f2..ddedb6d3 100644 --- a/dist/es6/System/Collections/SetBase.js.map +++ b/dist/es6/System/Collections/SetBase.js.map @@ -1 +1 @@ -{"version":3,"file":"SetBase.js","sourceRoot":"","sources":["../../../../source/System/Collections/SetBase.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"SetBase.js","sourceRoot":"","sources":["../../../../source/System/Collections/SetBase.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6/System/Collections/Sorting/KeySortedContext.d.ts b/dist/es6/System/Collections/Sorting/KeySortedContext.d.ts index 36822f6a..4de93bc7 100644 --- a/dist/es6/System/Collections/Sorting/KeySortedContext.d.ts +++ b/dist/es6/System/Collections/Sorting/KeySortedContext.d.ts @@ -1,16 +1,15 @@ -/// -/// -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import SortContext from "./SortContext"; -export default class KeySortedContext extends SortContext { +import { SortContext } from "./SortContext"; +import { Comparison, Selector } from "../../FunctionTypes"; +import { Comparable } from "../../IComparable"; +import { IComparer } from "../../IComparer"; +import { Order } from "./Order"; +export declare class KeySortedContext extends SortContext { protected _keySelector: Selector; constructor(next: IComparer, _keySelector: Selector, order?: Order, comparer?: Comparison); compare(a: T, b: T): number; } +export default KeySortedContext; diff --git a/dist/es6/System/Collections/Sorting/KeySortedContext.js b/dist/es6/System/Collections/Sorting/KeySortedContext.js index 385d1f1f..db3f075d 100644 --- a/dist/es6/System/Collections/Sorting/KeySortedContext.js +++ b/dist/es6/System/Collections/Sorting/KeySortedContext.js @@ -2,11 +2,10 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; import * as Values from "../../Compare"; -import SortContext from "./SortContext"; -import Functions from "../../Functions"; -export default class KeySortedContext extends SortContext { +import { SortContext } from "./SortContext"; +import { Functions } from "../../Functions"; +export class KeySortedContext extends SortContext { constructor(next, _keySelector, order = 1, comparer = Values.compare) { super(next, comparer, order); this._keySelector = _keySelector; @@ -21,4 +20,5 @@ export default class KeySortedContext extends SortContext { return _._order * d; } } +export default KeySortedContext; //# sourceMappingURL=KeySortedContext.js.map \ No newline at end of file diff --git a/dist/es6/System/Collections/Sorting/KeySortedContext.js.map b/dist/es6/System/Collections/Sorting/KeySortedContext.js.map index 3b1e09d0..2d5ca800 100644 --- a/dist/es6/System/Collections/Sorting/KeySortedContext.js.map +++ b/dist/es6/System/Collections/Sorting/KeySortedContext.js.map @@ -1 +1 @@ -{"version":3,"file":"KeySortedContext.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Sorting/KeySortedContext.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,YAAY,CAAC;OAEN,KAAK,MAAM,MAAM,eAAe;OAChC,WAAW,MAAM,eAAe;OAChC,SAAS,MAAM,iBAAiB;AAEvC,8CAC2D,WAAW;IAErE,YACC,IAAiB,EACP,YAA6B,EACvC,KAAK,GAAS,CAAe,EAC7B,QAAQ,GAAiB,MAAM,CAAC,OAAO;QAEvC,MAAM,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QAJnB,iBAAY,GAAZ,YAAY,CAAiB;IAKxC,CAAC;IAED,OAAO,CAAC,CAAG,EAAE,CAAG;QAEf,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,YAAY,CAAC;QAClC,EAAE,CAAA,CAAC,CAAC,EAAE,IAAI,EAAE,IAAE,SAAS,CAAC,QAAQ,CAAC;YAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAE7D,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAM,EAAE,CAAC,CAAC,CAAC,EAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,EAAE,CAAA,CAAC,CAAC,IAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;YAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACjD,MAAM,CAAC,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC;IACnB,CAAC;AACF,CAAC;AAAA"} \ No newline at end of file +{"version":3,"file":"KeySortedContext.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Sorting/KeySortedContext.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAEI,KAAK,MAAM,MAAM,eAAe;OAChC,EAAC,WAAW,EAAC,MAAM,eAAe;OAClC,EAAC,SAAS,EAAC,MAAM,iBAAiB;AAMzC,sCAAkE,WAAW;IAE5E,YACC,IAAiB,EACP,YAA6B,EACvC,KAAK,GAAS,CAAe,EAC7B,QAAQ,GAAiB,MAAM,CAAC,OAAO;QAEvC,MAAM,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QAJnB,iBAAY,GAAZ,YAAY,CAAiB;IAKxC,CAAC;IAED,OAAO,CAAC,CAAG,EAAE,CAAG;QAEf,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,YAAY,CAAC;QAClC,EAAE,CAAA,CAAC,CAAC,EAAE,IAAI,EAAE,IAAE,SAAS,CAAC,QAAQ,CAAC;YAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAE7D,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAM,EAAE,CAAC,CAAC,CAAC,EAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,EAAE,CAAA,CAAC,CAAC,IAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;YAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACjD,MAAM,CAAC,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC;IACnB,CAAC;AACF,CAAC;AAED,eAAe,gBAAgB,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Collections/Sorting/SortContext.d.ts b/dist/es6/System/Collections/Sorting/SortContext.d.ts index b459e302..63118bbb 100644 --- a/dist/es6/System/Collections/Sorting/SortContext.d.ts +++ b/dist/es6/System/Collections/Sorting/SortContext.d.ts @@ -1,12 +1,11 @@ -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -export default class SortContext implements IComparer { +import { Comparison } from "../../FunctionTypes"; +import { IComparer } from "../../IComparer"; +import { Order } from "./Order"; +export declare class SortContext implements IComparer { protected _next: IComparer; protected _comparer: Comparison; protected _order: Order; @@ -15,3 +14,4 @@ export default class SortContext implements IComparer { generateSortedIndexes(source: T[]): number[]; compare(a: T, b: T): number; } +export default SortContext; diff --git a/dist/es6/System/Collections/Sorting/SortContext.js b/dist/es6/System/Collections/Sorting/SortContext.js index 21d4daaa..16086ca1 100644 --- a/dist/es6/System/Collections/Sorting/SortContext.js +++ b/dist/es6/System/Collections/Sorting/SortContext.js @@ -2,9 +2,8 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; import * as Values from "../../Compare"; -export default class SortContext { +export class SortContext { constructor(_next, _comparer = Values.compare, _order = 1) { this._next = _next; this._comparer = _comparer; @@ -26,4 +25,5 @@ export default class SortContext { return _._order * d; } } +export default SortContext; //# sourceMappingURL=SortContext.js.map \ No newline at end of file diff --git a/dist/es6/System/Collections/Sorting/SortContext.js.map b/dist/es6/System/Collections/Sorting/SortContext.js.map index 4845ffdd..2d43f9f2 100644 --- a/dist/es6/System/Collections/Sorting/SortContext.js.map +++ b/dist/es6/System/Collections/Sorting/SortContext.js.map @@ -1 +1 @@ -{"version":3,"file":"SortContext.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Sorting/SortContext.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,YAAY,CAAC;OAEN,KAAK,MAAM,MAAM,eAAe;AAEvC;IAWC,YACW,KAAkB,EAClB,SAAS,GAAiB,MAAM,CAAC,OAAO,EACxC,MAAM,GAAS,CAAe;QAF9B,UAAK,GAAL,KAAK,CAAa;QAClB,cAAS,GAAT,SAAS,CAA+B;QACxC,WAAM,GAAN,MAAM,CAAwB;IAEzC,CAAC;IARD,IAAI,KAAK,KACP,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAevB,qBAAqB,CAAC,MAAU;QAE/B,EAAE,CAAA,CAAC,MAAM,IAAE,IAAI,CAAC;YAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,IAAI,MAAM,GAAY,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAG,CAAC,CAAC,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,MAAM,CAAC,MAAM,CAAC;IACf,CAAC;IAQD,OAAO,CAAC,CAAG,EAAE,CAAG;QAEf,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1B,EAAE,CAAA,CAAC,CAAC,IAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;YAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACjD,MAAM,CAAC,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC;IACnB,CAAC;AACF,CAAC;AAAA"} \ No newline at end of file +{"version":3,"file":"SortContext.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Sorting/SortContext.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAGI,KAAK,MAAM,MAAM,eAAe;AAKvC;IAUC,YACW,KAAkB,EAClB,SAAS,GAAiB,MAAM,CAAC,OAAO,EACxC,MAAM,GAAS,CAAe;QAF9B,UAAK,GAAL,KAAK,CAAa;QAClB,cAAS,GAAT,SAAS,CAA+B;QACxC,WAAM,GAAN,MAAM,CAAwB;IAEzC,CAAC;IARD,IAAI,KAAK,KACP,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAevB,qBAAqB,CAAC,MAAU;QAE/B,EAAE,CAAA,CAAC,MAAM,IAAE,IAAI,CAAC;YAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,IAAI,MAAM,GAAY,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAG,CAAC,CAAC,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,MAAM,CAAC,MAAM,CAAC;IACf,CAAC;IAQD,OAAO,CAAC,CAAG,EAAE,CAAG;QAEf,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1B,EAAE,CAAA,CAAC,CAAC,IAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;YAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACjD,MAAM,CAAC,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC;IACnB,CAAC;AACF,CAAC;AAED,eAAe,WAAW,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Compare.d.ts b/dist/es6/System/Compare.d.ts index 1d12a4b3..c4be772a 100644 --- a/dist/es6/System/Compare.d.ts +++ b/dist/es6/System/Compare.d.ts @@ -1,10 +1,10 @@ -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { Primitive } from "./Primitive"; +import { IComparable } from "./IComparable"; +import { CompareResult } from "./CompareResult"; export declare function areEqual(a: any, b: any, strict?: boolean): boolean; export declare function compare(a: IComparable, b: IComparable): number; export declare function compare(a: T, b: T, strict?: boolean): CompareResult; diff --git a/dist/es6/System/Compare.js b/dist/es6/System/Compare.js index da47c490..64a82dbb 100644 --- a/dist/es6/System/Compare.js +++ b/dist/es6/System/Compare.js @@ -2,7 +2,7 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import Type from "./Types"; +import { Type } from "./Types"; var isTrueNaN = Type.isTrueNaN; const VOID0 = void 0; export function areEqual(a, b, strict = true) { diff --git a/dist/es6/System/Compare.js.map b/dist/es6/System/Compare.js.map index 14bc4062..0930ae96 100644 --- a/dist/es6/System/Compare.js.map +++ b/dist/es6/System/Compare.js.map @@ -1 +1 @@ -{"version":3,"file":"Compare.js","sourceRoot":"","sources":["../../../source/System/Compare.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Compare.js","sourceRoot":"","sources":["../../../source/System/Compare.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6/System/Diagnostics/Stopwatch.d.ts b/dist/es6/System/Diagnostics/Stopwatch.d.ts index b0bd97a1..e352f2e4 100644 --- a/dist/es6/System/Diagnostics/Stopwatch.d.ts +++ b/dist/es6/System/Diagnostics/Stopwatch.d.ts @@ -1,9 +1,9 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import TimeSpan from "../Time/TimeSpan"; +import { TimeSpan } from "../Time/TimeSpan"; +import { ITimer } from "../Timers/ITimer"; export default class Stopwatch implements ITimer { static getTimestampMilliseconds(): number; private _elapsed; diff --git a/dist/es6/System/Diagnostics/Stopwatch.js b/dist/es6/System/Diagnostics/Stopwatch.js index 6f498306..eca558b4 100644 --- a/dist/es6/System/Diagnostics/Stopwatch.js +++ b/dist/es6/System/Diagnostics/Stopwatch.js @@ -2,8 +2,7 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; -import TimeSpan from "../Time/TimeSpan"; +import { TimeSpan } from "../Time/TimeSpan"; function getTimestampMilliseconds() { return (new Date()).getTime(); } diff --git a/dist/es6/System/Diagnostics/Stopwatch.js.map b/dist/es6/System/Diagnostics/Stopwatch.js.map index 997d5003..3e7268a7 100644 --- a/dist/es6/System/Diagnostics/Stopwatch.js.map +++ b/dist/es6/System/Diagnostics/Stopwatch.js.map @@ -1 +1 @@ -{"version":3,"file":"Stopwatch.js","sourceRoot":"","sources":["../../../../source/System/Diagnostics/Stopwatch.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Stopwatch.js","sourceRoot":"","sources":["../../../../source/System/Diagnostics/Stopwatch.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6/System/Disposable/DisposableBase.d.ts b/dist/es6/System/Disposable/DisposableBase.d.ts index 1acd883f..509f3cf0 100644 --- a/dist/es6/System/Disposable/DisposableBase.d.ts +++ b/dist/es6/System/Disposable/DisposableBase.d.ts @@ -1,9 +1,9 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -declare abstract class DisposableBase implements IDisposableAware { +import { IDisposableAware } from "./IDisposableAware"; +export declare abstract class DisposableBase implements IDisposableAware { private _finalizer; constructor(_finalizer?: () => void); private _wasDisposed; diff --git a/dist/es6/System/Disposable/DisposableBase.js b/dist/es6/System/Disposable/DisposableBase.js index 724cc723..650639d9 100644 --- a/dist/es6/System/Disposable/DisposableBase.js +++ b/dist/es6/System/Disposable/DisposableBase.js @@ -2,9 +2,8 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; -import ObjectDisposedException from './ObjectDisposedException'; -class DisposableBase { +import { ObjectDisposedException } from "./ObjectDisposedException"; +export class DisposableBase { constructor(_finalizer) { this._finalizer = _finalizer; this._wasDisposed = false; diff --git a/dist/es6/System/Disposable/DisposableBase.js.map b/dist/es6/System/Disposable/DisposableBase.js.map index e9a26124..50e2ade2 100644 --- a/dist/es6/System/Disposable/DisposableBase.js.map +++ b/dist/es6/System/Disposable/DisposableBase.js.map @@ -1 +1 @@ -{"version":3,"file":"DisposableBase.js","sourceRoot":"","sources":["../../../../source/System/Disposable/DisposableBase.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,YAAY,CAAC;OAEN,uBAAuB,MAAM,2BAA2B;AAE/D;IAGC,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAIlC,iBAAY,GAAW,KAAK,CAAC;IAFrC,CAAC;IAGD,IAAI,WAAW;QAEd,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;IAC1B,CAAC;IAKS,eAAe,CACxB,OAAe,EACf,UAAU,GAAU,IAAI,CAAC,qBAAqB;QAE9C,EAAE,CAAA,CAAC,IAAI,CAAC,YAAY,CAAC;YACpB,MAAM,IAAI,uBAAuB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACxD,MAAM,CAAC,IAAI,CAAC;IACb,CAAC;IAGD,OAAO;QAEN,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CACnB,CAAC;YAGA,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC;YACtB,IACA,CAAC;gBACA,CAAC,CAAC,UAAU,EAAE,CAAC;YAChB,CAAC;oBAED,CAAC;gBACA,EAAE,CAAA,CAAC,CAAC,CAAC,UAAU,CAAC;oBACf,CAAC,CAAC,UAAU,EAAE,CAAC;YACjB,CAAC;QACF,CAAC;IACF,CAAC;IAGS,UAAU,KAAU,CAAC;AAEhC,CAAC;AAED,eAAe,cAAc,CAAC"} \ No newline at end of file +{"version":3,"file":"DisposableBase.js","sourceRoot":"","sources":["../../../../source/System/Disposable/DisposableBase.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAEI,EAAC,uBAAuB,EAAC,MAAM,2BAA2B;AAGjE;IAGC,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAIlC,iBAAY,GAAW,KAAK,CAAC;IAFrC,CAAC;IAGD,IAAI,WAAW;QAEd,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;IAC1B,CAAC;IAKS,eAAe,CACxB,OAAe,EACf,UAAU,GAAU,IAAI,CAAC,qBAAqB;QAE9C,EAAE,CAAA,CAAC,IAAI,CAAC,YAAY,CAAC;YACpB,MAAM,IAAI,uBAAuB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACxD,MAAM,CAAC,IAAI,CAAC;IACb,CAAC;IAGD,OAAO;QAEN,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CACnB,CAAC;YAGA,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC;YACtB,IACA,CAAC;gBACA,CAAC,CAAC,UAAU,EAAE,CAAC;YAChB,CAAC;oBAED,CAAC;gBACA,EAAE,CAAA,CAAC,CAAC,CAAC,UAAU,CAAC;oBACf,CAAC,CAAC,UAAU,EAAE,CAAC;YACjB,CAAC;QACF,CAAC;IACF,CAAC;IAGS,UAAU,KAAU,CAAC;AAEhC,CAAC;AAED,eAAe,cAAc,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Disposable/ObjectDisposedException.d.ts b/dist/es6/System/Disposable/ObjectDisposedException.d.ts index 66e40831..8af0e485 100644 --- a/dist/es6/System/Disposable/ObjectDisposedException.d.ts +++ b/dist/es6/System/Disposable/ObjectDisposedException.d.ts @@ -1,15 +1,16 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -import Exception from '../Exception'; -import InvalidOperationException from '../Exceptions/InvalidOperationException'; -export default class ObjectDisposedException extends InvalidOperationException { +import { Exception } from "../Exception"; +import { InvalidOperationException } from "../Exceptions/InvalidOperationException"; +import { IDisposableAware } from "./IDisposableAware"; +export declare class ObjectDisposedException extends InvalidOperationException { objectName: string; constructor(objectName: string, message?: string, innerException?: Exception); protected getName(): string; toString(): string; static throwIfDisposed(disposable: IDisposableAware, objectName?: string, message?: string): void; } +export default ObjectDisposedException; diff --git a/dist/es6/System/Disposable/ObjectDisposedException.js b/dist/es6/System/Disposable/ObjectDisposedException.js index 5e6068e8..831d4351 100644 --- a/dist/es6/System/Disposable/ObjectDisposedException.js +++ b/dist/es6/System/Disposable/ObjectDisposedException.js @@ -3,10 +3,9 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -'use strict'; -import InvalidOperationException from '../Exceptions/InvalidOperationException'; +import { InvalidOperationException } from "../Exceptions/InvalidOperationException"; const NAME = 'ObjectDisposedException'; -export default class ObjectDisposedException extends InvalidOperationException { +export class ObjectDisposedException extends InvalidOperationException { constructor(objectName, message = null, innerException = null) { super(message, innerException, (_) => { _.objectName = objectName; @@ -25,4 +24,5 @@ export default class ObjectDisposedException extends InvalidOperationException { throw new ObjectDisposedException(objectName, message); } } +export default ObjectDisposedException; //# sourceMappingURL=ObjectDisposedException.js.map \ No newline at end of file diff --git a/dist/es6/System/Disposable/ObjectDisposedException.js.map b/dist/es6/System/Disposable/ObjectDisposedException.js.map index 4a5dc710..585d8a6f 100644 --- a/dist/es6/System/Disposable/ObjectDisposedException.js.map +++ b/dist/es6/System/Disposable/ObjectDisposedException.js.map @@ -1 +1 @@ -{"version":3,"file":"ObjectDisposedException.js","sourceRoot":"","sources":["../../../../source/System/Disposable/ObjectDisposedException.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,CAAC;OAGN,yBAAyB,MAAM,yCAAyC;AAG/E,MAAM,IAAI,GAAU,yBAAyB,CAAC;AAE9C,qDAEQ,yBAAyB;IAMhC,YACC,UAAiB,EACjB,OAAO,GAAU,IAAI,EACrB,cAAc,GAAa,IAAI;QAE/B,MAAM,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;YAChC,CAAC,CAAC,UAAU,GAAG,UAAU,CAAC;QAC3B,CAAC,CAAC,CAAC;IACJ,CAAC;IAGS,OAAO;QAEhB,MAAM,CAAC,IAAI,CAAC;IACb,CAAC;IAED,QAAQ;QAEP,IAAI,CAAC,GAAG,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC;QACnC,KAAK,GAAG,KAAK,GAAG,CAAC,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE1C,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC;IACtD,CAAC;IAED,OAAO,eAAe,CACrB,UAA2B,EAC3B,UAAkB,EAClB,OAAe;QAEf,EAAE,CAAA,CAAC,UAAU,CAAC,WAAW,CAAC;YACzB,MAAM,IAAI,uBAAuB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;AAEF,CAAC;AAAA"} \ No newline at end of file +{"version":3,"file":"ObjectDisposedException.js","sourceRoot":"","sources":["../../../../source/System/Disposable/ObjectDisposedException.ts"],"names":[],"mappings":"AAAA;;;;GAIG;OAGI,EAAC,yBAAyB,EAAC,MAAM,yCAAyC;AAIjF,MAAM,IAAI,GAAU,yBAAyB,CAAC;AAE9C,6CACQ,yBAAyB;IAMhC,YACC,UAAiB,EACjB,OAAO,GAAU,IAAI,EACrB,cAAc,GAAa,IAAI;QAE/B,MAAM,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;YAChC,CAAC,CAAC,UAAU,GAAG,UAAU,CAAC;QAC3B,CAAC,CAAC,CAAC;IACJ,CAAC;IAGS,OAAO;QAEhB,MAAM,CAAC,IAAI,CAAC;IACb,CAAC;IAED,QAAQ;QAEP,IAAI,CAAC,GAAG,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC;QACnC,KAAK,GAAG,KAAK,GAAG,CAAC,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE1C,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC;IACtD,CAAC;IAED,OAAO,eAAe,CACrB,UAA2B,EAC3B,UAAkB,EAClB,OAAe;QAEf,EAAE,CAAA,CAAC,UAAU,CAAC,WAAW,CAAC;YACzB,MAAM,IAAI,uBAAuB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;AAEF,CAAC;AAED,eAAe,uBAAuB,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Disposable/ObjectPool.d.ts b/dist/es6/System/Disposable/ObjectPool.d.ts index af854543..1dbbcbf5 100644 --- a/dist/es6/System/Disposable/ObjectPool.d.ts +++ b/dist/es6/System/Disposable/ObjectPool.d.ts @@ -4,8 +4,8 @@ * Based upon ObjectPool from Parallel Extension Extras and other ObjectPool implementations. * Uses .add(T) and .take():T */ -import DisposableBase from "./DisposableBase"; -export default class ObjectPool extends DisposableBase { +import { DisposableBase } from "./DisposableBase"; +export declare class ObjectPool extends DisposableBase { private _maxSize; private _generator; private _pool; @@ -28,3 +28,4 @@ export default class ObjectPool extends DisposableBase { add(o: T): void; take(): T; } +export default ObjectPool; diff --git a/dist/es6/System/Disposable/ObjectPool.js b/dist/es6/System/Disposable/ObjectPool.js index 8a7deca3..c893d73e 100644 --- a/dist/es6/System/Disposable/ObjectPool.js +++ b/dist/es6/System/Disposable/ObjectPool.js @@ -4,12 +4,12 @@ * Based upon ObjectPool from Parallel Extension Extras and other ObjectPool implementations. * Uses .add(T) and .take():T */ -import dispose from "./dispose"; -import DisposableBase from "./DisposableBase"; -import TaskHandler from "../Tasks/TaskHandler"; -import ArgumentOutOfRangeException from "../Exceptions/ArgumentOutOfRangeException"; +import { dispose } from "./dispose"; +import { DisposableBase } from "./DisposableBase"; +import { TaskHandler } from "../Tasks/TaskHandler"; +import { ArgumentOutOfRangeException } from "../Exceptions/ArgumentOutOfRangeException"; const OBJECT_POOL = "ObjectPool", _MAX_SIZE = "_maxSize", ABSOLUTE_MAX_SIZE = 65536, MUST_BE_GT1 = "Must be at valid number least 1.", MUST_BE_LTM = `Must be less than or equal to ${ABSOLUTE_MAX_SIZE}.`; -export default class ObjectPool extends DisposableBase { +export class ObjectPool extends DisposableBase { constructor(_maxSize, _generator) { super(); this._maxSize = _maxSize; @@ -112,4 +112,5 @@ export default class ObjectPool extends DisposableBase { return e; } } +export default ObjectPool; //# sourceMappingURL=ObjectPool.js.map \ No newline at end of file diff --git a/dist/es6/System/Disposable/ObjectPool.js.map b/dist/es6/System/Disposable/ObjectPool.js.map index 13e852b2..c3070b55 100644 --- a/dist/es6/System/Disposable/ObjectPool.js.map +++ b/dist/es6/System/Disposable/ObjectPool.js.map @@ -1 +1 @@ -{"version":3,"file":"ObjectPool.js","sourceRoot":"","sources":["../../../../source/System/Disposable/ObjectPool.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;OAEI,OAAO,MAAM,WAAW;OACxB,cAAc,MAAM,kBAAkB;OACtC,WAAW,MAAM,sBAAsB;OACvC,2BAA2B,MAAM,2CAA2C;AAEnF,MACC,WAAW,GAAS,YAAY,EAChC,SAAS,GAAW,UAAU,EAC9B,iBAAiB,GAAG,KAAK,EACzB,WAAW,GAAS,kCAAkC,EACtD,WAAW,GAAS,iCAAiC,iBAAiB,GAAG,CAAC;AAE3E,wCAA2C,cAAc;IAmBxD,YACS,QAAe,EACf,UAAgB;QAExB,OAAO,CAAC;QAHA,aAAQ,GAAR,QAAQ,CAAO;QACf,eAAU,GAAV,UAAU,CAAM;QAJzB,qBAAgB,GAAU,IAAI,CAAC;QAO9B,EAAE,CAAA,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAC,CAAC,CAAC;YAChC,MAAM,IAAI,2BAA2B,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;QACzE,EAAE,CAAA,CAAC,QAAQ,GAAC,iBAAiB,CAAC;YAC7B,MAAM,IAAI,2BAA2B,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;QAEzE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;QAEhE,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,CAAC,CAAC,qBAAqB,GAAG,WAAW,CAAC;QACtC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;QACb,CAAC,CAAC,QAAQ,GAAG,IAAI,WAAW,CAAC,MAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QAC5C,IAAI,KAAK,GAAG,MAAI,CAAC,CAAC,MAAM,EAAE,CAAC;QAC3B,CAAC,CAAC,QAAQ,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC,CAAC,YAAY,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAMD,IAAI,OAAO;QAEV,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAMD,IAAI,KAAK;QAER,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QACnB,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACzB,CAAC;IAES,KAAK;QAEd,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QACtB,OAAM,IAAI,CAAC,MAAM,GAAC,IAAI,CAAC,QAAQ,EAC/B,CAAC;YACA,OAAO,CAAC,gBAAgB,CAAM,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAC3C,CAAC;IACF,CAAC;IAMD,IAAI,CAAC,KAAa;QAEjB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAES,MAAM;QAEf,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;QAC1B,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpB,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpB,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAM,CAAC,EAAE,IAAI,CAAC,CAAC;QAC5B,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACd,CAAC;IAOD,KAAK,CAAC,KAAa;QAElB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,eAAe;QAEd,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpB,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpB,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;QAChB,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,CAAC,CAAC;IACV,CAAC;IAKD,IAAI;QAEH,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;IAC/B,CAAC;IAGS,UAAU;QAEnB,KAAK,CAAC,UAAU,EAAE,CAAC;QACnB,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC;QACpB,OAAO,CACN,CAAC,CAAC,QAAQ,EACV,CAAC,CAAC,QAAQ,EACV,CAAC,CAAC,YAAY,CACd,CAAC;QACF,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC;QAEtB,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACnB,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;IAChB,CAAC;IAED,eAAe;QAEd,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC,GAAG,CAAC,CAAC,gBAAgB,CAAC;QAC3B,EAAE,CAAA,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC;YAC7C,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED,GAAG,CAAC,CAAG;QAEN,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,EAAE,CAAA,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,IAAE,CAAC,CAAC,gBAAgB,CAAC,CACtC,CAAC;YAEA,OAAO,CAAM,CAAC,CAAC,CAAC;QACjB,CAAC;QACD,IAAI,CACJ,CAAC;YACA,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;YACnB,EAAE,CAAA,CAAC,CAAC,GAAC,iBAAiB,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,GAAC,CAAC,CAAC;gBAC1C,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;QACD,CAAC,CAAC,eAAe,EAAE,CAAC;IAErB,CAAC;IAED,IAAI;QAEH,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,CAAC,CAAC,eAAe,EAAE,CAAC;QAEpB,IAAI,CAAC,GAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,UAAU,EAAE,EACrC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;QAEzB,EAAE,CAAA,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,IAAE,CAAC,CAAC,QAAQ,CAAC;YAC7B,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACrB,EAAE,CAAA,CAAC,GAAG,CAAC;YACN,CAAC,CAAC,eAAe,EAAE,CAAC;QAErB,MAAM,CAAC,CAAC,CAAC;IACV,CAAC;AAGF,CAAC;AAAA"} \ No newline at end of file +{"version":3,"file":"ObjectPool.js","sourceRoot":"","sources":["../../../../source/System/Disposable/ObjectPool.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6/System/Disposable/dispose.d.ts b/dist/es6/System/Disposable/dispose.d.ts index ea01844c..e1a6bf42 100644 --- a/dist/es6/System/Disposable/dispose.d.ts +++ b/dist/es6/System/Disposable/dispose.d.ts @@ -1,9 +1,8 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { IDisposable } from "./IDisposable"; export declare function dispose(...disposables: IDisposable[]): void; export declare module dispose { function deferred(...disposables: IDisposable[]): void; diff --git a/dist/es6/System/Disposable/dispose.js b/dist/es6/System/Disposable/dispose.js index 903ee1a9..0bd514f1 100644 --- a/dist/es6/System/Disposable/dispose.js +++ b/dist/es6/System/Disposable/dispose.js @@ -2,8 +2,7 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; -import Type from "../Types"; +import { Type } from "../Types"; export function dispose(...disposables) { disposeTheseInternal(disposables, false); } diff --git a/dist/es6/System/Disposable/dispose.js.map b/dist/es6/System/Disposable/dispose.js.map index 460f4a65..fcec972c 100644 --- a/dist/es6/System/Disposable/dispose.js.map +++ b/dist/es6/System/Disposable/dispose.js.map @@ -1 +1 @@ -{"version":3,"file":"dispose.js","sourceRoot":"","sources":["../../../../source/System/Disposable/dispose.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"dispose.js","sourceRoot":"","sources":["../../../../source/System/Disposable/dispose.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6/System/Events/EventDispatcherBase.d.ts b/dist/es6/System/Events/EventDispatcherBase.d.ts index e8e78469..46178690 100644 --- a/dist/es6/System/Events/EventDispatcherBase.d.ts +++ b/dist/es6/System/Events/EventDispatcherBase.d.ts @@ -1,11 +1,11 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import DisposableBase from "../Disposable/DisposableBase"; -import EventDispatcherEntry from "./EventDispatcherEntry"; +import { DisposableBase } from "../Disposable/DisposableBase"; +import { IEventListener } from "./IEventListener"; +import { EventDispatcherEntry } from "./EventDispatcherEntry"; +import { IEventDispatcher } from "./IEventDispatcher"; export interface IEventBase { type: string; target: TTarget; diff --git a/dist/es6/System/Events/EventDispatcherBase.js b/dist/es6/System/Events/EventDispatcherBase.js index be028d5d..1de878ee 100644 --- a/dist/es6/System/Events/EventDispatcherBase.js +++ b/dist/es6/System/Events/EventDispatcherBase.js @@ -2,12 +2,11 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; -import shallowCopy from "../Utility/shallowCopy"; -import DisposableBase from "../Disposable/DisposableBase"; import * as AU from "../Collections/Array/Utility"; -import EventDispatcherEntry from "./EventDispatcherEntry"; -import dispose from "../Disposable/dispose"; +import { shallowCopy } from "../Utility/shallowCopy"; +import { DisposableBase } from "../Disposable/DisposableBase"; +import { dispose } from "../Disposable/dispose"; +import { EventDispatcherEntry } from "./EventDispatcherEntry"; const DISPOSING = 'disposing', DISPOSED = 'disposed'; function entryFinalizer() { var p = this.params; diff --git a/dist/es6/System/Events/EventDispatcherBase.js.map b/dist/es6/System/Events/EventDispatcherBase.js.map index 9e23ed62..32ea6bd9 100644 --- a/dist/es6/System/Events/EventDispatcherBase.js.map +++ b/dist/es6/System/Events/EventDispatcherBase.js.map @@ -1 +1 @@ -{"version":3,"file":"EventDispatcherBase.js","sourceRoot":"","sources":["../../../../source/System/Events/EventDispatcherBase.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"EventDispatcherBase.js","sourceRoot":"","sources":["../../../../source/System/Events/EventDispatcherBase.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6/System/Events/EventDispatcherEntry.d.ts b/dist/es6/System/Events/EventDispatcherEntry.d.ts index 73b2f602..b7248a12 100644 --- a/dist/es6/System/Events/EventDispatcherEntry.d.ts +++ b/dist/es6/System/Events/EventDispatcherEntry.d.ts @@ -1,10 +1,11 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import DisposableBase from "../Disposable/DisposableBase"; -export default class EventDispatcherEntry extends DisposableBase implements IEquatable> { +import { DisposableBase } from "../Disposable/DisposableBase"; +import { IEventListener } from "./IEventListener"; +import { IEquatable } from "../IEquatable"; +export declare class EventDispatcherEntry extends DisposableBase implements IEquatable> { type: string; listener: IEventListener; params: TParams; @@ -14,3 +15,4 @@ export default class EventDispatcherEntry extends DisposableBase implem matches(type: string, listener: IEventListener): boolean; equals(other: EventDispatcherEntry): boolean; } +export default EventDispatcherEntry; diff --git a/dist/es6/System/Events/EventDispatcherEntry.js b/dist/es6/System/Events/EventDispatcherEntry.js index cb2d6756..b7c6c971 100644 --- a/dist/es6/System/Events/EventDispatcherEntry.js +++ b/dist/es6/System/Events/EventDispatcherEntry.js @@ -2,13 +2,12 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; -import Type from "../Types"; -import DisposableBase from "../Disposable/DisposableBase"; -import ArgumentNullException from "../Exceptions/ArgumentNullException"; -import ArgumentException from "../Exceptions/ArgumentException"; +import { Type } from "../Types"; +import { DisposableBase } from "../Disposable/DisposableBase"; +import { ArgumentNullException } from "../Exceptions/ArgumentNullException"; +import { ArgumentException } from "../Exceptions/ArgumentException"; import { areEquivalent } from "../Compare"; -export default class EventDispatcherEntry extends DisposableBase { +export class EventDispatcherEntry extends DisposableBase { constructor(type, listener, params = null, finalizer) { super(finalizer); this.type = type; @@ -52,4 +51,5 @@ export default class EventDispatcherEntry extends DisposableBase { && areEquivalent(_.params, other.params, false); } } +export default EventDispatcherEntry; //# sourceMappingURL=EventDispatcherEntry.js.map \ No newline at end of file diff --git a/dist/es6/System/Events/EventDispatcherEntry.js.map b/dist/es6/System/Events/EventDispatcherEntry.js.map index 99dce191..f08a2ae2 100644 --- a/dist/es6/System/Events/EventDispatcherEntry.js.map +++ b/dist/es6/System/Events/EventDispatcherEntry.js.map @@ -1 +1 @@ -{"version":3,"file":"EventDispatcherEntry.js","sourceRoot":"","sources":["../../../../source/System/Events/EventDispatcherEntry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,YAAY,CAAC;OAEN,IAAI,MAAM,UAAU;OACpB,cAAc,MAAM,8BAA8B;OAClD,qBAAqB,MAAM,qCAAqC;OAChE,iBAAiB,MAAM,iCAAiC;OACxD,EAAC,aAAa,EAAC,MAAM,YAAY;AAExC,kDAEQ,cAAc;IAGrB,YACQ,IAAW,EACX,QAAuB,EACvB,MAAM,GAAW,IAAI,EAC5B,SAAqB;QAErB,MAAM,SAAS,CAAC,CAAC;QALV,SAAI,GAAJ,IAAI,CAAO;QACX,aAAQ,GAAR,QAAQ,CAAe;QACvB,WAAM,GAAN,MAAM,CAAe;QAK5B,EAAE,CAAA,CAAC,CAAC,QAAQ,CAAC;YACZ,MAAM,IAAI,qBAAqB,CAAC,UAAU,CAAC,CAAC;QAC7C,EAAE,CAAA,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3F,MAAM,IAAI,iBAAiB,CAAC,UAAU,EAAE,uEAAuE,CAAC,CAAC;QAElH,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;QACd,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACtB,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC;QAClB,CAAC,CAAC,qBAAqB,GAAG,sBAAsB,CAAC;IAClD,CAAC;IAES,UAAU;QAEnB,KAAK,CAAC,UAAU,EAAE,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACtB,CAAC;IAOD,QAAQ,CAAC,CAAO;QAEf,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,EAAE,CAAA,CAAC,CAAC,CAAC,WAAW,CAAC;YAAC,MAAM,CAAC,KAAK,CAAC;QAE/B,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,IAAE,CAAC,CAAC,IAAI,CAAC;QAC5C,EAAE,CAAA,CAAC,CAAC,CAAC,CACL,CAAC;YACA,EAAE,CAAA,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACf,CAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI;gBACmB,CAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAC1C,CAAC;QACD,MAAM,CAAC,CAAC,CAAC;IACV,CAAC;IAQD,OAAO,CAAC,IAAW,EAAE,QAAuB;QAE3C,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,MAAM,CAAC,CAAC,CAAC,IAAI,IAAE,IAAI;eACf,CAAC,CAAC,QAAQ,IAAE,QAAQ,CAAC;IAC1B,CAAC;IAOD,MAAM,CAAC,KAAmC;QAEzC,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAC,KAAK,CAAC,QAAQ,CAAC;eACvC,aAAa,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;AACF,CAAC;AAAA"} \ No newline at end of file +{"version":3,"file":"EventDispatcherEntry.js","sourceRoot":"","sources":["../../../../source/System/Events/EventDispatcherEntry.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAEI,EAAC,IAAI,EAAC,MAAM,UAAU;OACtB,EAAC,cAAc,EAAC,MAAM,8BAA8B;OACpD,EAAC,qBAAqB,EAAC,MAAM,qCAAqC;OAClE,EAAC,iBAAiB,EAAC,MAAM,iCAAiC;OAC1D,EAAC,aAAa,EAAC,MAAM,YAAY;AAIxC,0CACQ,cAAc;IAGrB,YACQ,IAAW,EACX,QAAuB,EACvB,MAAM,GAAW,IAAI,EAC5B,SAAqB;QAErB,MAAM,SAAS,CAAC,CAAC;QALV,SAAI,GAAJ,IAAI,CAAO;QACX,aAAQ,GAAR,QAAQ,CAAe;QACvB,WAAM,GAAN,MAAM,CAAe;QAK5B,EAAE,CAAA,CAAC,CAAC,QAAQ,CAAC;YACZ,MAAM,IAAI,qBAAqB,CAAC,UAAU,CAAC,CAAC;QAC7C,EAAE,CAAA,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3F,MAAM,IAAI,iBAAiB,CAAC,UAAU,EAAE,uEAAuE,CAAC,CAAC;QAElH,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;QACd,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACtB,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC;QAClB,CAAC,CAAC,qBAAqB,GAAG,sBAAsB,CAAC;IAClD,CAAC;IAES,UAAU;QAEnB,KAAK,CAAC,UAAU,EAAE,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACtB,CAAC;IAOD,QAAQ,CAAC,CAAO;QAEf,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,EAAE,CAAA,CAAC,CAAC,CAAC,WAAW,CAAC;YAAC,MAAM,CAAC,KAAK,CAAC;QAE/B,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,IAAE,CAAC,CAAC,IAAI,CAAC;QAC5C,EAAE,CAAA,CAAC,CAAC,CAAC,CACL,CAAC;YACA,EAAE,CAAA,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACf,CAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI;gBACmB,CAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAC1C,CAAC;QACD,MAAM,CAAC,CAAC,CAAC;IACV,CAAC;IAQD,OAAO,CAAC,IAAW,EAAE,QAAuB;QAE3C,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,MAAM,CAAC,CAAC,CAAC,IAAI,IAAE,IAAI;eACf,CAAC,CAAC,QAAQ,IAAE,QAAQ,CAAC;IAC1B,CAAC;IAOD,MAAM,CAAC,KAAmC;QAEzC,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC;eACxC,aAAa,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;AACF,CAAC;AAED,eAAe,oBAAoB,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Events/EventSimple.d.ts b/dist/es6/System/Events/EventSimple.d.ts index f4fd3db2..58e86841 100644 --- a/dist/es6/System/Events/EventSimple.d.ts +++ b/dist/es6/System/Events/EventSimple.d.ts @@ -3,6 +3,7 @@ * Based on Netjs mscorlib.ts * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { IDisposable } from "../Disposable/IDisposable"; export default class EventSimple implements IDisposable { private _listeners; add(listener: T): void; diff --git a/dist/es6/System/Events/EventSimple.js.map b/dist/es6/System/Events/EventSimple.js.map index 587eec1f..3454a39c 100644 --- a/dist/es6/System/Events/EventSimple.js.map +++ b/dist/es6/System/Events/EventSimple.js.map @@ -1 +1 @@ -{"version":3,"file":"EventSimple.js","sourceRoot":"","sources":["../../../../source/System/Events/EventSimple.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;IAAA;QAES,eAAU,GAAO,EAAE,CAAC;IAuC7B,CAAC;IArCA,GAAG,CAAC,QAAU;QAEb,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,QAAU;QAEhB,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC9C,EAAE,CAAA,CAAC,KAAK,GAAC,CAAC,CAAC;YAAC,MAAM,CAAC;QACnB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAClC,CAAC;IAED,QAAQ,CAAC,GAAG,MAAY;QAEvB,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAChC,GAAG,CAAA,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CACvB,CAAC;YACA,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChB,CAAC;IACF,CAAC;IAED,mBAAmB;QAElB,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAChC,MAAM,CAAC;YAEN,GAAG,CAAA,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CACvB,CAAC;gBACA,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACnB,CAAC;QACF,CAAC,CAAC;IACH,CAAC;IAED,OAAO;QAEN,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5B,CAAC;AACF,CAAC;AAAA"} \ No newline at end of file +{"version":3,"file":"EventSimple.js","sourceRoot":"","sources":["../../../../source/System/Events/EventSimple.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH;IAAA;QAES,eAAU,GAAO,EAAE,CAAC;IAuC7B,CAAC;IArCA,GAAG,CAAC,QAAU;QAEb,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,QAAU;QAEhB,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC9C,EAAE,CAAA,CAAC,KAAK,GAAC,CAAC,CAAC;YAAC,MAAM,CAAC;QACnB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAClC,CAAC;IAED,QAAQ,CAAC,GAAG,MAAY;QAEvB,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAChC,GAAG,CAAA,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CACvB,CAAC;YACA,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChB,CAAC;IACF,CAAC;IAED,mBAAmB;QAElB,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAChC,MAAM,CAAC;YAEN,GAAG,CAAA,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CACvB,CAAC;gBACA,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACnB,CAAC;QACF,CAAC,CAAC;IACH,CAAC;IAED,OAAO;QAEN,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5B,CAAC;AACF,CAAC;AAAA"} \ No newline at end of file diff --git a/dist/es6/System/Exception.d.ts b/dist/es6/System/Exception.d.ts index dce52d48..418b2f8f 100644 --- a/dist/es6/System/Exception.d.ts +++ b/dist/es6/System/Exception.d.ts @@ -1,11 +1,11 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -export default class Exception implements Error, IDisposable { +import { IDisposable } from "./Disposable/IDisposable"; +import { IMap } from "./Collections/Dictionaries/IDictionary"; +export declare class Exception implements Error, IDisposable { message: string; name: string; constructor(message?: string, innerException?: Error, beforeSealing?: (ex: any) => void); @@ -16,3 +16,4 @@ export default class Exception implements Error, IDisposable { protected toStringWithoutBrackets(): string; dispose(): void; } +export default Exception; diff --git a/dist/es6/System/Exception.js b/dist/es6/System/Exception.js index 30b78619..d5615f6c 100644 --- a/dist/es6/System/Exception.js +++ b/dist/es6/System/Exception.js @@ -3,9 +3,8 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -'use strict'; const NAME = 'Exception'; -export default class Exception { +export class Exception { constructor(message = null, innerException = null, beforeSealing) { this.message = message; var _ = this; @@ -39,4 +38,5 @@ export default class Exception { } } } +export default Exception; //# sourceMappingURL=Exception.js.map \ No newline at end of file diff --git a/dist/es6/System/Exception.js.map b/dist/es6/System/Exception.js.map index 37e52061..0555fc99 100644 --- a/dist/es6/System/Exception.js.map +++ b/dist/es6/System/Exception.js.map @@ -1 +1 @@ -{"version":3,"file":"Exception.js","sourceRoot":"","sources":["../../../source/System/Exception.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,YAAY,CAAC;AAEb,MAAM,IAAI,GAAU,WAAW,CAAC;AAKhC;IAeC,YACQ,OAAO,GAAU,IAAI,EAC5B,cAAc,GAAS,IAAI,EAC3B,aAA6B;QAFtB,YAAO,GAAP,OAAO,CAAc;QAI5B,IAAI,CAAC,GAAG,IAAI,CAAC;QAEb,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;QACrB,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;QACZ,EAAE,CAAA,CAAC,cAAc,CAAC;YACjB,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,cAAc,CAAC;QAO3C,EAAE,CAAA,CAAC,aAAa,CAAC;YAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAGnC,IAAI,CAAC;YACJ,IAAI,KAAK,GAAU,CAAM,IAAI,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC;YAC5C,KAAK,GAAG,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,EAAC,EAAE,CAAC,CAAC,OAAO,CAAC,oBAAoB,EAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YACrF,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,uBAAuB,EAAE,GAAG,KAAK,CAAC;QAClD,CAAE;QAAA,KAAK,CAAA,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA,CAAC;QAEd,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAUS,OAAO,KACf,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAKhB,QAAQ;QAEP,MAAM,CAAC,IAAI,IAAI,CAAC,uBAAuB,EAAE,GAAG,CAAC;IAC9C,CAAC;IAES,uBAAuB;QAChC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;QAC5B,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACvC,CAAC;IAKD,OAAO;QAEN,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACrB,GAAG,CAAA,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAClB,CAAC;YACA,EAAE,CAAA,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBACzB,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACF,CAAC;AACF,CAAC;AAAA"} \ No newline at end of file +{"version":3,"file":"Exception.js","sourceRoot":"","sources":["../../../source/System/Exception.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,IAAI,GAAU,WAAW,CAAC;AAKhC;IAcC,YACQ,OAAO,GAAU,IAAI,EAC5B,cAAc,GAAS,IAAI,EAC3B,aAA6B;QAFtB,YAAO,GAAP,OAAO,CAAc;QAI5B,IAAI,CAAC,GAAG,IAAI,CAAC;QAEb,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;QACrB,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;QACZ,EAAE,CAAA,CAAC,cAAc,CAAC;YACjB,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,cAAc,CAAC;QAO3C,EAAE,CAAA,CAAC,aAAa,CAAC;YAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAGnC,IAAI,CAAC;YACJ,IAAI,KAAK,GAAU,CAAM,IAAI,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC;YAC5C,KAAK,GAAG,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,EAAC,EAAE,CAAC,CAAC,OAAO,CAAC,oBAAoB,EAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YACrF,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,uBAAuB,EAAE,GAAG,KAAK,CAAC;QAClD,CAAE;QAAA,KAAK,CAAA,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA,CAAC;QAEd,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAUS,OAAO,KACf,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAKhB,QAAQ;QAEP,MAAM,CAAC,IAAI,IAAI,CAAC,uBAAuB,EAAE,GAAG,CAAC;IAC9C,CAAC;IAES,uBAAuB;QAChC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;QAC5B,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACvC,CAAC;IAKD,OAAO;QAEN,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACrB,GAAG,CAAA,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAClB,CAAC;YACA,EAAE,CAAA,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBACzB,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACF,CAAC;AACF,CAAC;AAED,eAAe,SAAS,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Exceptions/ArgumentException.d.ts b/dist/es6/System/Exceptions/ArgumentException.d.ts index eac4232c..59bd91e1 100644 --- a/dist/es6/System/Exceptions/ArgumentException.d.ts +++ b/dist/es6/System/Exceptions/ArgumentException.d.ts @@ -3,9 +3,10 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -import SystemException from "./SystemException"; -export default class ArgumentException extends SystemException { +import { SystemException } from "./SystemException"; +export declare class ArgumentException extends SystemException { paramName: string; constructor(paramName: string, message?: string, innerException?: Error, beforeSealing?: (ex: any) => void); protected getName(): string; } +export default ArgumentException; diff --git a/dist/es6/System/Exceptions/ArgumentException.js b/dist/es6/System/Exceptions/ArgumentException.js index 96925621..63dd281f 100644 --- a/dist/es6/System/Exceptions/ArgumentException.js +++ b/dist/es6/System/Exceptions/ArgumentException.js @@ -3,11 +3,10 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -'use strict'; -import SystemException from "./SystemException"; +import { SystemException } from "./SystemException"; import { trim } from "../Text/Utility"; const NAME = 'ArgumentException'; -export default class ArgumentException extends SystemException { +export class ArgumentException extends SystemException { constructor(paramName, message = null, innerException = null, beforeSealing) { var pn = paramName ? ('{' + paramName + '} ') : ''; super(trim(pn + (message || '')), innerException, (_) => { @@ -20,4 +19,5 @@ export default class ArgumentException extends SystemException { return NAME; } } +export default ArgumentException; //# sourceMappingURL=ArgumentException.js.map \ No newline at end of file diff --git a/dist/es6/System/Exceptions/ArgumentException.js.map b/dist/es6/System/Exceptions/ArgumentException.js.map index 8b45988b..2739b161 100644 --- a/dist/es6/System/Exceptions/ArgumentException.js.map +++ b/dist/es6/System/Exceptions/ArgumentException.js.map @@ -1 +1 @@ -{"version":3,"file":"ArgumentException.js","sourceRoot":"","sources":["../../../../source/System/Exceptions/ArgumentException.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,CAAC;OAEN,eAAe,MAAM,mBAAmB;OACxC,EAAC,IAAI,EAAC,MAAM,iBAAiB;AAGpC,MAAM,IAAI,GAAU,mBAAmB,CAAC;AAExC,+CACgC,eAAe;IAM9C,YACC,SAAgB,EAChB,OAAO,GAAU,IAAI,EACrB,cAAc,GAAS,IAAI,EAC3B,aAA6B;QAE7B,IAAI,EAAE,GAAG,SAAS,GAAG,CAAC,GAAG,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACnD,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,OAAO,IAAE,EAAE,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC;YACjD,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC;YACxB,EAAE,CAAA,CAAC,aAAa,CAAC;gBAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACJ,CAAC;IAGS,OAAO;QAEhB,MAAM,CAAC,IAAI,CAAC;IACb,CAAC;AAEF,CAAC;AAAA"} \ No newline at end of file +{"version":3,"file":"ArgumentException.js","sourceRoot":"","sources":["../../../../source/System/Exceptions/ArgumentException.ts"],"names":[],"mappings":"AAAA;;;;GAIG;OAGI,EAAC,eAAe,EAAC,MAAM,mBAAmB;OAC1C,EAAC,IAAI,EAAC,MAAM,iBAAiB;AAGpC,MAAM,IAAI,GAAU,mBAAmB,CAAC;AAExC,uCAAuC,eAAe;IAMrD,YACC,SAAgB,EAChB,OAAO,GAAU,IAAI,EACrB,cAAc,GAAS,IAAI,EAC3B,aAA6B;QAE7B,IAAI,EAAE,GAAG,SAAS,GAAG,CAAC,GAAG,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACnD,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,OAAO,IAAE,EAAE,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC;YACjD,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC;YACxB,EAAE,CAAA,CAAC,aAAa,CAAC;gBAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACJ,CAAC;IAGS,OAAO;QAEhB,MAAM,CAAC,IAAI,CAAC;IACb,CAAC;AAEF,CAAC;AAED,eAAe,iBAAiB,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Exceptions/ArgumentNullException.d.ts b/dist/es6/System/Exceptions/ArgumentNullException.d.ts index 5cc13038..5d73f022 100644 --- a/dist/es6/System/Exceptions/ArgumentNullException.d.ts +++ b/dist/es6/System/Exceptions/ArgumentNullException.d.ts @@ -3,8 +3,9 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -import ArgumentException from './ArgumentException'; -export default class ArgumentNullException extends ArgumentException { +import { ArgumentException } from "./ArgumentException"; +export declare class ArgumentNullException extends ArgumentException { constructor(paramName: string, message?: string, innerException?: Error); protected getName(): string; } +export default ArgumentNullException; diff --git a/dist/es6/System/Exceptions/ArgumentNullException.js b/dist/es6/System/Exceptions/ArgumentNullException.js index c132dbb9..63fd8522 100644 --- a/dist/es6/System/Exceptions/ArgumentNullException.js +++ b/dist/es6/System/Exceptions/ArgumentNullException.js @@ -3,10 +3,9 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -'use strict'; -import ArgumentException from './ArgumentException'; +import { ArgumentException } from "./ArgumentException"; const NAME = 'ArgumentNullException'; -export default class ArgumentNullException extends ArgumentException { +export class ArgumentNullException extends ArgumentException { constructor(paramName, message = '', innerException = null) { super(paramName, message, innerException); } @@ -14,4 +13,5 @@ export default class ArgumentNullException extends ArgumentException { return NAME; } } +export default ArgumentNullException; //# sourceMappingURL=ArgumentNullException.js.map \ No newline at end of file diff --git a/dist/es6/System/Exceptions/ArgumentNullException.js.map b/dist/es6/System/Exceptions/ArgumentNullException.js.map index 7f78627a..72024249 100644 --- a/dist/es6/System/Exceptions/ArgumentNullException.js.map +++ b/dist/es6/System/Exceptions/ArgumentNullException.js.map @@ -1 +1 @@ -{"version":3,"file":"ArgumentNullException.js","sourceRoot":"","sources":["../../../../source/System/Exceptions/ArgumentNullException.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,CAAC;OAEN,iBAAiB,MAAM,qBAAqB;AAGnD,MAAM,IAAI,GAAU,uBAAuB,CAAC;AAE5C,mDACoC,iBAAiB;IAEpD,YACC,SAAgB,EAChB,OAAO,GAAU,EAAE,EACnB,cAAc,GAAS,IAAI;QAE3B,MAAM,SAAS,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IAC3C,CAAC;IAES,OAAO;QAEhB,MAAM,CAAC,IAAI,CAAC;IACb,CAAC;AAEF,CAAC;AAAA"} \ No newline at end of file +{"version":3,"file":"ArgumentNullException.js","sourceRoot":"","sources":["../../../../source/System/Exceptions/ArgumentNullException.ts"],"names":[],"mappings":"AAAA;;;;GAIG;OAEI,EAAC,iBAAiB,EAAC,MAAM,qBAAqB;AAErD,MAAM,IAAI,GAAU,uBAAuB,CAAC;AAE5C,2CAA2C,iBAAiB;IAE3D,YACC,SAAgB,EAChB,OAAO,GAAU,EAAE,EACnB,cAAc,GAAS,IAAI;QAE3B,MAAM,SAAS,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IAC3C,CAAC;IAES,OAAO;QAEhB,MAAM,CAAC,IAAI,CAAC;IACb,CAAC;AAEF,CAAC;AAED,eAAe,qBAAqB,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Exceptions/ArgumentOutOfRangeException.d.ts b/dist/es6/System/Exceptions/ArgumentOutOfRangeException.d.ts index 4fd62443..83d0e92b 100644 --- a/dist/es6/System/Exceptions/ArgumentOutOfRangeException.d.ts +++ b/dist/es6/System/Exceptions/ArgumentOutOfRangeException.d.ts @@ -3,10 +3,11 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -import Exception from "../Exception"; -import ArgumentException from "./ArgumentException"; -export default class ArgumentOutOfRangeException extends ArgumentException { +import { Exception } from "../Exception"; +import { ArgumentException } from "./ArgumentException"; +export declare class ArgumentOutOfRangeException extends ArgumentException { actualValue: string | number | boolean; constructor(paramName: string, actualValue: string | number | boolean, message?: string, innerException?: Exception); protected getName(): string; } +export default ArgumentOutOfRangeException; diff --git a/dist/es6/System/Exceptions/ArgumentOutOfRangeException.js b/dist/es6/System/Exceptions/ArgumentOutOfRangeException.js index 5a6ca33b..757e4361 100644 --- a/dist/es6/System/Exceptions/ArgumentOutOfRangeException.js +++ b/dist/es6/System/Exceptions/ArgumentOutOfRangeException.js @@ -3,10 +3,9 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -import ArgumentException from "./ArgumentException"; -'use strict'; +import { ArgumentException } from "./ArgumentException"; const NAME = 'ArgumentOutOfRangeException'; -export default class ArgumentOutOfRangeException extends ArgumentException { +export class ArgumentOutOfRangeException extends ArgumentException { constructor(paramName, actualValue, message = ' ', innerException = null) { super(paramName, +`(${actualValue}) ` + message, innerException, (_) => { _.actualValue = actualValue; @@ -16,4 +15,5 @@ export default class ArgumentOutOfRangeException extends ArgumentException { return NAME; } } +export default ArgumentOutOfRangeException; //# sourceMappingURL=ArgumentOutOfRangeException.js.map \ No newline at end of file diff --git a/dist/es6/System/Exceptions/ArgumentOutOfRangeException.js.map b/dist/es6/System/Exceptions/ArgumentOutOfRangeException.js.map index 51f45886..574e40f9 100644 --- a/dist/es6/System/Exceptions/ArgumentOutOfRangeException.js.map +++ b/dist/es6/System/Exceptions/ArgumentOutOfRangeException.js.map @@ -1 +1 @@ -{"version":3,"file":"ArgumentOutOfRangeException.js","sourceRoot":"","sources":["../../../../source/System/Exceptions/ArgumentOutOfRangeException.ts"],"names":[],"mappings":"AAAA;;;;GAIG;OAGI,iBAAiB,MAAM,qBAAqB;AACnD,YAAY,CAAC;AAGb,MAAM,IAAI,GAAU,6BAA6B,CAAC;AAElD,yDAC0C,iBAAiB;IAI1D,YACC,SAAgB,EAChB,WAAiC,EACjC,OAAO,GAAU,GAAG,EACpB,cAAc,GAAa,IAAI;QAE/B,MAAM,SAAS,EAAE,CAAE,IAAI,WAAW,IAAI,GAAG,OAAO,EAAG,cAAc,EAAE,CAAC,CAAC;YACpE,CAAC,CAAC,WAAW,GAAG,WAAW,CAAC;QAC7B,CAAC,CAAC,CAAC;IACJ,CAAC;IAGS,OAAO;QAEhB,MAAM,CAAC,IAAI,CAAC;IACb,CAAC;AAEF,CAAC;AAAA"} \ No newline at end of file +{"version":3,"file":"ArgumentOutOfRangeException.js","sourceRoot":"","sources":["../../../../source/System/Exceptions/ArgumentOutOfRangeException.ts"],"names":[],"mappings":"AAAA;;;;GAIG;OAII,EAAC,iBAAiB,EAAC,MAAM,qBAAqB;AAErD,MAAM,IAAI,GAAU,6BAA6B,CAAC;AAElD,iDAAiD,iBAAiB;IAIjE,YACC,SAAgB,EAChB,WAAiC,EACjC,OAAO,GAAU,GAAG,EACpB,cAAc,GAAa,IAAI;QAE/B,MAAM,SAAS,EAAE,CAAE,IAAI,WAAW,IAAI,GAAG,OAAO,EAAG,cAAc,EAAE,CAAC,CAAC;YACpE,CAAC,CAAC,WAAW,GAAG,WAAW,CAAC;QAC7B,CAAC,CAAC,CAAC;IACJ,CAAC;IAGS,OAAO;QAEhB,MAAM,CAAC,IAAI,CAAC;IACb,CAAC;AAEF,CAAC;AAED,eAAe,2BAA2B,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Exceptions/InvalidOperationException.d.ts b/dist/es6/System/Exceptions/InvalidOperationException.d.ts index 4f422d04..a39ff871 100644 --- a/dist/es6/System/Exceptions/InvalidOperationException.d.ts +++ b/dist/es6/System/Exceptions/InvalidOperationException.d.ts @@ -3,7 +3,8 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -import SystemException from './SystemException'; -export default class InvalidOperationException extends SystemException { +import { SystemException } from "./SystemException"; +export declare class InvalidOperationException extends SystemException { protected getName(): string; } +export default InvalidOperationException; diff --git a/dist/es6/System/Exceptions/InvalidOperationException.js b/dist/es6/System/Exceptions/InvalidOperationException.js index 174e4ac6..079b895c 100644 --- a/dist/es6/System/Exceptions/InvalidOperationException.js +++ b/dist/es6/System/Exceptions/InvalidOperationException.js @@ -3,12 +3,12 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -'use strict'; -import SystemException from './SystemException'; +import { SystemException } from "./SystemException"; const NAME = 'InvalidOperationException'; -export default class InvalidOperationException extends SystemException { +export class InvalidOperationException extends SystemException { getName() { return NAME; } } +export default InvalidOperationException; //# sourceMappingURL=InvalidOperationException.js.map \ No newline at end of file diff --git a/dist/es6/System/Exceptions/InvalidOperationException.js.map b/dist/es6/System/Exceptions/InvalidOperationException.js.map index 319c7dbc..fcd43cb3 100644 --- a/dist/es6/System/Exceptions/InvalidOperationException.js.map +++ b/dist/es6/System/Exceptions/InvalidOperationException.js.map @@ -1 +1 @@ -{"version":3,"file":"InvalidOperationException.js","sourceRoot":"","sources":["../../../../source/System/Exceptions/InvalidOperationException.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,CAAC;OAEN,eAAe,MAAM,mBAAmB;AAG/C,MAAM,IAAI,GAAU,2BAA2B,CAAC;AAEhD,uDACwC,eAAe;IAE5C,OAAO;QAEhB,MAAM,CAAC,IAAI,CAAC;IACb,CAAC;AAEF,CAAC;AAAA"} \ No newline at end of file +{"version":3,"file":"InvalidOperationException.js","sourceRoot":"","sources":["../../../../source/System/Exceptions/InvalidOperationException.ts"],"names":[],"mappings":"AAAA;;;;GAIG;OAEI,EAAC,eAAe,EAAC,MAAM,mBAAmB;AAEjD,MAAM,IAAI,GAAU,2BAA2B,CAAC;AAEhD,+CAA+C,eAAe;IAGnD,OAAO;QAEhB,MAAM,CAAC,IAAI,CAAC;IACb,CAAC;AAEF,CAAC;AAED,eAAe,yBAAyB,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Exceptions/NotImplementedException.d.ts b/dist/es6/System/Exceptions/NotImplementedException.d.ts index 0225eeb8..a52e3a18 100644 --- a/dist/es6/System/Exceptions/NotImplementedException.d.ts +++ b/dist/es6/System/Exceptions/NotImplementedException.d.ts @@ -3,7 +3,8 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -import SystemException from './SystemException'; -export default class NotImplementedException extends SystemException { +import { SystemException } from "./SystemException"; +export declare class NotImplementedException extends SystemException { protected getName(): string; } +export default NotImplementedException; diff --git a/dist/es6/System/Exceptions/NotImplementedException.js b/dist/es6/System/Exceptions/NotImplementedException.js index 2613075c..e15bdd2f 100644 --- a/dist/es6/System/Exceptions/NotImplementedException.js +++ b/dist/es6/System/Exceptions/NotImplementedException.js @@ -3,12 +3,12 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -'use strict'; -import SystemException from './SystemException'; +import { SystemException } from "./SystemException"; const NAME = 'NotImplementedException'; -export default class NotImplementedException extends SystemException { +export class NotImplementedException extends SystemException { getName() { return NAME; } } +export default NotImplementedException; //# sourceMappingURL=NotImplementedException.js.map \ No newline at end of file diff --git a/dist/es6/System/Exceptions/NotImplementedException.js.map b/dist/es6/System/Exceptions/NotImplementedException.js.map index 15d2d538..d9ceae20 100644 --- a/dist/es6/System/Exceptions/NotImplementedException.js.map +++ b/dist/es6/System/Exceptions/NotImplementedException.js.map @@ -1 +1 @@ -{"version":3,"file":"NotImplementedException.js","sourceRoot":"","sources":["../../../../source/System/Exceptions/NotImplementedException.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,CAAC;OAEN,eAAe,MAAM,mBAAmB;AAG/C,MAAM,IAAI,GAAU,yBAAyB,CAAC;AAE9C,qDACsC,eAAe;IAE1C,OAAO;QAEhB,MAAM,CAAC,IAAI,CAAC;IACb,CAAC;AAEF,CAAC;AAAA"} \ No newline at end of file +{"version":3,"file":"NotImplementedException.js","sourceRoot":"","sources":["../../../../source/System/Exceptions/NotImplementedException.ts"],"names":[],"mappings":"AAAA;;;;GAIG;OAEI,EAAC,eAAe,EAAC,MAAM,mBAAmB;AAEjD,MAAM,IAAI,GAAU,yBAAyB,CAAC;AAE9C,6CAA6C,eAAe;IAGjD,OAAO;QAEhB,MAAM,CAAC,IAAI,CAAC;IACb,CAAC;AAEF,CAAC;AAED,eAAe,uBAAuB,CAAA"} \ No newline at end of file diff --git a/dist/es6/System/Exceptions/NullReferenceException.d.ts b/dist/es6/System/Exceptions/NullReferenceException.d.ts index 780b64a6..42c3373b 100644 --- a/dist/es6/System/Exceptions/NullReferenceException.d.ts +++ b/dist/es6/System/Exceptions/NullReferenceException.d.ts @@ -3,7 +3,7 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -import SystemException from './SystemException'; +import { SystemException } from "./SystemException"; export default class NullReferenceException extends SystemException { protected getName(): string; } diff --git a/dist/es6/System/Exceptions/NullReferenceException.js b/dist/es6/System/Exceptions/NullReferenceException.js index 747ba901..468c4cb2 100644 --- a/dist/es6/System/Exceptions/NullReferenceException.js +++ b/dist/es6/System/Exceptions/NullReferenceException.js @@ -3,8 +3,7 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -'use strict'; -import SystemException from './SystemException'; +import { SystemException } from "./SystemException"; const NAME = 'NullReferenceException'; export default class NullReferenceException extends SystemException { getName() { diff --git a/dist/es6/System/Exceptions/NullReferenceException.js.map b/dist/es6/System/Exceptions/NullReferenceException.js.map index 9d415161..baf6f49f 100644 --- a/dist/es6/System/Exceptions/NullReferenceException.js.map +++ b/dist/es6/System/Exceptions/NullReferenceException.js.map @@ -1 +1 @@ -{"version":3,"file":"NullReferenceException.js","sourceRoot":"","sources":["../../../../source/System/Exceptions/NullReferenceException.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,CAAC;OAEN,eAAe,MAAM,mBAAmB;AAG/C,MAAM,IAAI,GAAU,wBAAwB,CAAC;AAE7C,oDACqC,eAAe;IAEzC,OAAO;QAEhB,MAAM,CAAC,IAAI,CAAC;IACb,CAAC;AAEF,CAAC;AAAA"} \ No newline at end of file +{"version":3,"file":"NullReferenceException.js","sourceRoot":"","sources":["../../../../source/System/Exceptions/NullReferenceException.ts"],"names":[],"mappings":"AAAA;;;;GAIG;OAGI,EAAC,eAAe,EAAC,MAAM,mBAAmB;AAEjD,MAAM,IAAI,GAAU,wBAAwB,CAAC;AAE7C,oDACqC,eAAe;IAEzC,OAAO;QAEhB,MAAM,CAAC,IAAI,CAAC;IACb,CAAC;AAEF,CAAC;AAAA"} \ No newline at end of file diff --git a/dist/es6/System/Exceptions/SystemException.d.ts b/dist/es6/System/Exceptions/SystemException.d.ts index 239bfbef..12f92b06 100644 --- a/dist/es6/System/Exceptions/SystemException.d.ts +++ b/dist/es6/System/Exceptions/SystemException.d.ts @@ -3,7 +3,8 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/system.systemexception%28v=vs.110%29.aspx */ -import Exception from '../Exception'; -export default class SystemException extends Exception { +import { Exception } from "../Exception"; +export declare class SystemException extends Exception { protected getName(): string; } +export default SystemException; diff --git a/dist/es6/System/Exceptions/SystemException.js b/dist/es6/System/Exceptions/SystemException.js index 0b303e0d..2e2be98d 100644 --- a/dist/es6/System/Exceptions/SystemException.js +++ b/dist/es6/System/Exceptions/SystemException.js @@ -3,12 +3,12 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/system.systemexception%28v=vs.110%29.aspx */ -'use strict'; -import Exception from '../Exception'; +import { Exception } from "../Exception"; const NAME = 'SystemException'; -export default class SystemException extends Exception { +export class SystemException extends Exception { getName() { return NAME; } } +export default SystemException; //# sourceMappingURL=SystemException.js.map \ No newline at end of file diff --git a/dist/es6/System/Exceptions/SystemException.js.map b/dist/es6/System/Exceptions/SystemException.js.map index 726a0f71..03c20080 100644 --- a/dist/es6/System/Exceptions/SystemException.js.map +++ b/dist/es6/System/Exceptions/SystemException.js.map @@ -1 +1 @@ -{"version":3,"file":"SystemException.js","sourceRoot":"","sources":["../../../../source/System/Exceptions/SystemException.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,CAAC;OAEN,SAAS,MAAM,cAAc;AAGpC,MAAM,IAAI,GAAU,iBAAiB,CAAC;AAEtC,6CAC8B,SAAS;IAY5B,OAAO;QAEhB,MAAM,CAAC,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAAA"} \ No newline at end of file +{"version":3,"file":"SystemException.js","sourceRoot":"","sources":["../../../../source/System/Exceptions/SystemException.ts"],"names":[],"mappings":"AAAA;;;;GAIG;OAEI,EAAC,SAAS,EAAC,MAAM,cAAc;AAEtC,MAAM,IAAI,GAAU,iBAAiB,CAAC;AAEtC,qCAAqC,SAAS;IAYnC,OAAO;QAEhB,MAAM,CAAC,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAED,eAAe,eAAe,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Functions.d.ts b/dist/es6/System/Functions.d.ts index 0262bc62..ecd9b0e2 100644 --- a/dist/es6/System/Functions.d.ts +++ b/dist/es6/System/Functions.d.ts @@ -2,13 +2,13 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -declare class Functions { +export declare class Functions { Identity(x: T): T; True(): boolean; False(): boolean; Blank(): void; } -declare module Functions { +export declare module Functions { var Identity: (x: T) => T; var True: () => boolean; var False: () => boolean; diff --git a/dist/es6/System/Functions.js b/dist/es6/System/Functions.js index a8aa8165..31bf2643 100644 --- a/dist/es6/System/Functions.js +++ b/dist/es6/System/Functions.js @@ -2,8 +2,7 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; -class Functions { +export class Functions { Identity(x) { return x; } True() { return true; } False() { return false; } diff --git a/dist/es6/System/Functions.js.map b/dist/es6/System/Functions.js.map index a2bd09ef..26035778 100644 --- a/dist/es6/System/Functions.js.map +++ b/dist/es6/System/Functions.js.map @@ -1 +1 @@ -{"version":3,"file":"Functions.js","sourceRoot":"","sources":["../../../source/System/Functions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,CAAC;AAKb;IAOC,QAAQ,CAAI,CAAG,IACb,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAMb,IAAI,KACF,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAMhB,KAAK,KACH,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAKjB,KAAK,KACH,CAAC;AACJ,CAAC;AAED,MAAM,aAAa,GAAa,IAAI,SAAS,EAAE,CAAC;AAIhD,WAAO,SAAS,EAChB,CAAC;IAKW,kBAAQ,GAChB,aAAa,CAAC,QAAQ,CAAC;IAMf,cAAI,GACZ,aAAa,CAAC,IAAI,CAAC;IAMX,eAAK,GACb,aAAa,CAAC,KAAK,CAAC;IAKZ,eAAK,GACb,aAAa,CAAC,KAAK,CAAC;AACxB,CAAC,EA5BM,SAAS,KAAT,SAAS,QA4Bf;AAGD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAEzB,eAAe,SAAS,CAAC"} \ No newline at end of file +{"version":3,"file":"Functions.js","sourceRoot":"","sources":["../../../source/System/Functions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH;IAOC,QAAQ,CAAI,CAAG,IACb,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAMb,IAAI,KACF,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAMhB,KAAK,KACH,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAKjB,KAAK,KACH,CAAC;AACJ,CAAC;AAED,MAAM,aAAa,GAAa,IAAI,SAAS,EAAE,CAAC;AAIhD,WAAc,SAAS,EACvB,CAAC;IAKW,kBAAQ,GAChB,aAAa,CAAC,QAAQ,CAAC;IAMf,cAAI,GACZ,aAAa,CAAC,IAAI,CAAC;IAMX,eAAK,GACb,aAAa,CAAC,KAAK,CAAC;IAKZ,eAAK,GACb,aAAa,CAAC,KAAK,CAAC;AACxB,CAAC,EA5Ba,SAAS,KAAT,SAAS,QA4BtB;AAGD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAEzB,eAAe,SAAS,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Integer.d.ts b/dist/es6/System/Integer.d.ts index 04881834..a6de2daf 100644 --- a/dist/es6/System/Integer.d.ts +++ b/dist/es6/System/Integer.d.ts @@ -3,6 +3,7 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { IArray } from "./Collections/Array/IArray"; export declare function Integer(n: number): number; export declare module Integer { const MAX_32_BIT: number; diff --git a/dist/es6/System/Integer.js b/dist/es6/System/Integer.js index 99b47dd7..a46bf2b8 100644 --- a/dist/es6/System/Integer.js +++ b/dist/es6/System/Integer.js @@ -2,8 +2,8 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import ArgumentException from "./Exceptions/ArgumentException"; -import ArgumentOutOfRangeException from "./Exceptions/ArgumentOutOfRangeException"; +import { ArgumentException } from "./Exceptions/ArgumentException"; +import { ArgumentOutOfRangeException } from "./Exceptions/ArgumentOutOfRangeException"; export function Integer(n) { return Math.floor(n); } diff --git a/dist/es6/System/Integer.js.map b/dist/es6/System/Integer.js.map index 5d807910..5c639fdb 100644 --- a/dist/es6/System/Integer.js.map +++ b/dist/es6/System/Integer.js.map @@ -1 +1 @@ -{"version":3,"file":"Integer.js","sourceRoot":"","sources":["../../../source/System/Integer.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Integer.js","sourceRoot":"","sources":["../../../source/System/Integer.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6/System/KeyValueExtract.d.ts b/dist/es6/System/KeyValueExtract.d.ts index cfe473b9..8a23ab82 100644 --- a/dist/es6/System/KeyValueExtract.d.ts +++ b/dist/es6/System/KeyValueExtract.d.ts @@ -2,8 +2,11 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { KeyValuePair, IKeyValuePair } from "./KeyValuePair"; +import { IArray } from "./Collections/Array/IArray"; export declare function isKeyValuePair(kvp: any): kvp is IKeyValuePair; export declare function assertKey(key: TKey, name?: string): TKey; export declare function assertTuple(tuple: IArray, name?: string): void; export declare function assertNotUndefined(value: T, name: string): T; -export default function extractKeyValue(item: KeyValuePair, to: (key: TKey, value: TValue) => TResult): TResult; +export declare function extractKeyValue(item: KeyValuePair, to: (key: TKey, value: TValue) => TResult): TResult; +export default extractKeyValue; diff --git a/dist/es6/System/KeyValueExtract.js b/dist/es6/System/KeyValueExtract.js index 8447d311..98d0ef16 100644 --- a/dist/es6/System/KeyValueExtract.js +++ b/dist/es6/System/KeyValueExtract.js @@ -2,8 +2,8 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import ArgumentException from "./Exceptions/ArgumentException"; -import ArgumentNullException from "./Exceptions/ArgumentNullException"; +import { ArgumentException } from "./Exceptions/ArgumentException"; +import { ArgumentNullException } from "./Exceptions/ArgumentNullException"; const VOID0 = void 0, DOT = '.', KEY = 'key', VALUE = 'value', ITEM = 'item', ITEM_1 = ITEM + '[1]', ITEM_KEY = ITEM + DOT + KEY, ITEM_VALUE = ITEM + DOT + VALUE, INVALID_KVP_MESSAGE = 'Invalid type. Must be a KeyValuePair or Tuple of length 2.', CANNOT_BE_UNDEFINED = 'Cannot equal undefined.'; export function isKeyValuePair(kvp) { return kvp && kvp.hasOwnProperty(KEY) && kvp.hasOwnProperty(VALUE); @@ -24,7 +24,7 @@ export function assertNotUndefined(value, name) { throw new ArgumentException(name, CANNOT_BE_UNDEFINED); return value; } -export default function extractKeyValue(item, to) { +export function extractKeyValue(item, to) { var _ = this, key, value; if (item instanceof Array) { assertTuple(item); @@ -40,4 +40,5 @@ export default function extractKeyValue(item, to) { } return to(key, value); } +export default extractKeyValue; //# sourceMappingURL=KeyValueExtract.js.map \ No newline at end of file diff --git a/dist/es6/System/KeyValueExtract.js.map b/dist/es6/System/KeyValueExtract.js.map index 39bc2d3b..235c6f94 100644 --- a/dist/es6/System/KeyValueExtract.js.map +++ b/dist/es6/System/KeyValueExtract.js.map @@ -1 +1 @@ -{"version":3,"file":"KeyValueExtract.js","sourceRoot":"","sources":["../../../source/System/KeyValueExtract.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAEI,iBAAiB,MAAM,gCAAgC;OACvD,qBAAqB,MAAM,oCAAoC;AAEtE,MACC,KAAK,GAAwB,KAAK,CAAC,EACnC,GAAG,GAA0B,GAAG,EAChC,GAAG,GAA0B,KAAK,EAClC,KAAK,GAAwB,OAAO,EACpC,IAAI,GAAyB,MAAM,EACnC,MAAM,GAAuB,IAAI,GAAG,KAAK,EACzC,QAAQ,GAAqB,IAAI,GAAG,GAAG,GAAG,GAAG,EAC7C,UAAU,GAAmB,IAAI,GAAG,GAAG,GAAG,KAAK,EAC/C,mBAAmB,GAAU,6DAA6D,EAC1F,mBAAmB,GAAU,yBAAyB,CAAC;AAExD,+BAA4C,GAAO;IAElD,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AACpE,CAAC;AAED,0BAAgC,GAAQ,EAAE,IAAI,GAAU,IAAI;IAE3D,kBAAkB,CAAC,GAAG,EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;IAC1C,EAAE,CAAA,CAAC,GAAG,KAAG,IAAI,CAAC;QACb,MAAM,IAAI,qBAAqB,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;IAEnD,MAAM,CAAC,GAAG,CAAC;AACZ,CAAC;AAGD,4BAA4B,KAAiB,EAAE,IAAI,GAAU,IAAI;IAEhE,EAAE,CAAA,CAAC,KAAK,CAAC,MAAM,IAAE,CAAC,CAAC;QAClB,MAAM,IAAI,iBAAiB,CAAC,IAAI,EAAE,0CAA0C,CAAC,CAAC;IAE/E,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAC3B,CAAC;AAGD,mCAAsC,KAAO,EAAE,IAAW;IAEzD,EAAE,CAAA,CAAC,KAAK,KAAG,KAAK,CAAC;QAChB,MAAM,IAAI,iBAAiB,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;IAExD,MAAM,CAAC,KAAK,CAAC;AACd,CAAC;AAGD,wCACC,IAA+B,EAC/B,EAAoC;IAGpC,IAAI,CAAC,GAAG,IAAI,EAAE,GAAQ,EAAE,KAAY,CAAC;IACrC,EAAE,CAAA,CAAC,IAAI,YAAY,KAAK,CAAC,CACzB,CAAC;QACA,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACd,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,CAAC,EAAE,CAAA,CAAC,cAAc,CAAc,IAAI,CAAC,CAAC,CAC1C,CAAC;QACA,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1B,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,CACJ,CAAC;QACA,MAAM,IAAI,iBAAiB,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACvB,CAAC"} \ No newline at end of file +{"version":3,"file":"KeyValueExtract.js","sourceRoot":"","sources":["../../../source/System/KeyValueExtract.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAEI,EAAC,iBAAiB,EAAC,MAAM,gCAAgC;OACzD,EAAC,qBAAqB,EAAC,MAAM,oCAAoC;AAIxE,MACC,KAAK,GAAwB,KAAK,CAAC,EACnC,GAAG,GAA0B,GAAG,EAChC,GAAG,GAA0B,KAAK,EAClC,KAAK,GAAwB,OAAO,EACpC,IAAI,GAAyB,MAAM,EACnC,MAAM,GAAuB,IAAI,GAAG,KAAK,EACzC,QAAQ,GAAqB,IAAI,GAAG,GAAG,GAAG,GAAG,EAC7C,UAAU,GAAmB,IAAI,GAAG,GAAG,GAAG,KAAK,EAC/C,mBAAmB,GAAU,6DAA6D,EAC1F,mBAAmB,GAAU,yBAAyB,CAAC;AAExD,+BAA4C,GAAO;IAElD,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AACpE,CAAC;AAED,0BAAgC,GAAQ,EAAE,IAAI,GAAU,IAAI;IAE3D,kBAAkB,CAAC,GAAG,EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;IAC1C,EAAE,CAAA,CAAC,GAAG,KAAG,IAAI,CAAC;QACb,MAAM,IAAI,qBAAqB,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;IAEnD,MAAM,CAAC,GAAG,CAAC;AACZ,CAAC;AAGD,4BAA4B,KAAiB,EAAE,IAAI,GAAU,IAAI;IAEhE,EAAE,CAAA,CAAC,KAAK,CAAC,MAAM,IAAE,CAAC,CAAC;QAClB,MAAM,IAAI,iBAAiB,CAAC,IAAI,EAAE,0CAA0C,CAAC,CAAC;IAE/E,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAC3B,CAAC;AAGD,mCAAsC,KAAO,EAAE,IAAW;IAEzD,EAAE,CAAA,CAAC,KAAK,KAAG,KAAK,CAAC;QAChB,MAAM,IAAI,iBAAiB,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;IAExD,MAAM,CAAC,KAAK,CAAC;AACd,CAAC;AAGD,gCACC,IAA+B,EAC/B,EAAoC;IAGpC,IAAI,CAAC,GAAG,IAAI,EAAE,GAAQ,EAAE,KAAY,CAAC;IACrC,EAAE,CAAA,CAAC,IAAI,YAAY,KAAK,CAAC,CACzB,CAAC;QACA,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACd,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,CAAC,EAAE,CAAA,CAAC,cAAc,CAAc,IAAI,CAAC,CAAC,CAC1C,CAAC;QACA,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1B,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,CACJ,CAAC;QACA,MAAM,IAAI,iBAAiB,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,eAAe,eAAe,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Lazy.d.ts b/dist/es6/System/Lazy.d.ts index de32b287..c682318e 100644 --- a/dist/es6/System/Lazy.d.ts +++ b/dist/es6/System/Lazy.d.ts @@ -1,11 +1,11 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import DisposableBase from './Disposable/DisposableBase'; -export default class Lazy extends DisposableBase implements ILazy { +import { DisposableBase } from "./Disposable/DisposableBase"; +import { ILazy } from "./ILazy"; +import { Func } from "./FunctionTypes"; +export declare class Lazy extends DisposableBase implements ILazy { private _closure; private _isValueCreated; private _value; @@ -19,3 +19,4 @@ export default class Lazy extends DisposableBase implements ILazy { equals(other: Lazy): boolean; valueEquals(other: Lazy): boolean; } +export default Lazy; diff --git a/dist/es6/System/Lazy.js b/dist/es6/System/Lazy.js index 5d9e640b..7e1e457d 100644 --- a/dist/es6/System/Lazy.js +++ b/dist/es6/System/Lazy.js @@ -2,9 +2,8 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; -import DisposableBase from './Disposable/DisposableBase'; -export default class Lazy extends DisposableBase { +import { DisposableBase } from "./Disposable/DisposableBase"; +export class Lazy extends DisposableBase { constructor(_closure) { super(); this._closure = _closure; @@ -62,4 +61,5 @@ export default class Lazy extends DisposableBase { return this.equals(other) || this.value === other.value; } } +export default Lazy; //# sourceMappingURL=Lazy.js.map \ No newline at end of file diff --git a/dist/es6/System/Lazy.js.map b/dist/es6/System/Lazy.js.map index cf927dd0..e92d5957 100644 --- a/dist/es6/System/Lazy.js.map +++ b/dist/es6/System/Lazy.js.map @@ -1 +1 @@ -{"version":3,"file":"Lazy.js","sourceRoot":"","sources":["../../../source/System/Lazy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,YAAY,CAAC;OAEN,cAAc,MAAM,6BAA6B;AAExD,kCACsB,cAAc;IAMnC,YAAoB,QAAgB;QAEnC,OAAO,CAAC;QAFW,aAAQ,GAAR,QAAQ,CAAQ;QAGnC,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC;IACrC,CAAC;IAED,IAAI,cAAc;QAEjB,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;IAC7B,CAAC;IAGD,IAAI,QAAQ;QAEX,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAGD,KAAK,CAAC,kBAA2B;QAChC,IAAI,CAAC,GAAG,IAAI,CAAC;QAEb,EAAE,CAAA,CAAC,kBAAkB,CAAC;YACrB,CAAC,CAAC,eAAe,EAAE,CAAC;QAErB,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YAChB,EAAE,CAAA,CAAC,kBAAkB,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;YACpF,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QACD,IAAI,CAAC,CAAC;YACL,CAAC,CAAC,eAAe,GAAG,KAAK,CAAC;YAC1B,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;IACF,CAAC;IAED,IAAI,KAAK;QAER,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;IAED,QAAQ,CAAC,qBAA8B;QAEtC,IAAI,CAAC,GAAG,IAAI,CAAC;QAEb,CAAC,CAAC,eAAe,EAAE,CAAC;QAEpB,IAAI,CAAC;YACJ,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACrC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACrB,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;gBACb,CAAC,CAAC,eAAe,GAAG,IAAI,CAAC;gBACzB,MAAM,CAAC,CAAC,CAAC;YACV,CAAC;QACF,CAAC;gBACO,CAAC;YACR,EAAE,CAAA,CAAC,qBAAqB,CAAC;gBACxB,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;QACpB,CAAC;QAED,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAEjB,CAAC;IAGS,UAAU;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,KAAa;QAEnB,MAAM,CAAC,IAAI,IAAE,KAAK,CAAC;IACpB,CAAC;IAED,WAAW,CAAC,KAAa;QAExB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,KAAG,KAAK,CAAC,KAAK,CAAC;IACvD,CAAC;AACF,CAAC;AAAA"} \ No newline at end of file +{"version":3,"file":"Lazy.js","sourceRoot":"","sources":["../../../source/System/Lazy.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAEI,EAAC,cAAc,EAAC,MAAM,6BAA6B;AAI1D,0BAA6B,cAAc;IAM1C,YAAoB,QAAgB;QAEnC,OAAO,CAAC;QAFW,aAAQ,GAAR,QAAQ,CAAQ;QAGnC,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC;IACrC,CAAC;IAED,IAAI,cAAc;QAEjB,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;IAC7B,CAAC;IAGD,IAAI,QAAQ;QAEX,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAGD,KAAK,CAAC,kBAA2B;QAChC,IAAI,CAAC,GAAG,IAAI,CAAC;QAEb,EAAE,CAAA,CAAC,kBAAkB,CAAC;YACrB,CAAC,CAAC,eAAe,EAAE,CAAC;QAErB,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YAChB,EAAE,CAAA,CAAC,kBAAkB,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;YACpF,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QACD,IAAI,CAAC,CAAC;YACL,CAAC,CAAC,eAAe,GAAG,KAAK,CAAC;YAC1B,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;IACF,CAAC;IAED,IAAI,KAAK;QAER,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;IAED,QAAQ,CAAC,qBAA8B;QAEtC,IAAI,CAAC,GAAG,IAAI,CAAC;QAEb,CAAC,CAAC,eAAe,EAAE,CAAC;QAEpB,IAAI,CAAC;YACJ,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACrC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACrB,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;gBACb,CAAC,CAAC,eAAe,GAAG,IAAI,CAAC;gBACzB,MAAM,CAAC,CAAC,CAAC;YACV,CAAC;QACF,CAAC;gBACO,CAAC;YACR,EAAE,CAAA,CAAC,qBAAqB,CAAC;gBACxB,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;QACpB,CAAC;QAED,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAEjB,CAAC;IAGS,UAAU;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,KAAa;QAEnB,MAAM,CAAC,IAAI,IAAE,KAAK,CAAC;IACpB,CAAC;IAED,WAAW,CAAC,KAAa;QAExB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,KAAG,KAAK,CAAC,KAAK,CAAC;IACvD,CAAC;AACF,CAAC;AAED,eAAe,IAAI,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Net/Http/HttpMethod.d.ts b/dist/es6/System/Net/Http/HttpMethod.d.ts index d70dbbd8..b9f17ab0 100644 --- a/dist/es6/System/Net/Http/HttpMethod.d.ts +++ b/dist/es6/System/Net/Http/HttpMethod.d.ts @@ -1,7 +1,7 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based on: https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html */ -export declare const OPTIONS: HttpMethodValue, HEAD: HttpMethodValue, GET: HttpMethodValue, PUT: HttpMethodValue, POST: HttpMethodValue, DELETE: HttpMethodValue, TRACE: HttpMethodValue, CONNECT: HttpMethodValue; +import * as HttpMethod from "./HttpMethodValue"; +export declare const OPTIONS: HttpMethod.Options, HEAD: HttpMethod.Head, GET: HttpMethod.Get, PUT: HttpMethod.Put, POST: HttpMethod.Post, DELETE: HttpMethod.Delete, TRACE: HttpMethod.Trace, CONNECT: HttpMethod.Connect; diff --git a/dist/es6/System/Net/Http/HttpMethod.js.map b/dist/es6/System/Net/Http/HttpMethod.js.map index 771f03f7..b6b34e2d 100644 --- a/dist/es6/System/Net/Http/HttpMethod.js.map +++ b/dist/es6/System/Net/Http/HttpMethod.js.map @@ -1 +1 @@ -{"version":3,"file":"HttpMethod.js","sourceRoot":"","sources":["../../../../../source/System/Net/Http/HttpMethod.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,MACN,OAAO,GAAmB,SAAS,EACnC,IAAI,GAAsB,MAAM,EAChC,GAAG,GAAuB,KAAK,EAC/B,GAAG,GAAuB,KAAK,EAC/B,IAAI,GAAsB,MAAM,EAChC,MAAM,GAAoB,QAAQ,EAClC,KAAK,GAAqB,OAAO,EACjC,OAAO,GAAmB,SAAS,CAAC"} \ No newline at end of file +{"version":3,"file":"HttpMethod.js","sourceRoot":"","sources":["../../../../../source/System/Net/Http/HttpMethod.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,MACN,OAAO,GAAsB,SAAS,EACtC,IAAI,GAAyB,MAAM,EACnC,GAAG,GAA0B,KAAK,EAClC,GAAG,GAA0B,KAAK,EAClC,IAAI,GAAyB,MAAM,EACnC,MAAM,GAAuB,QAAQ,EACrC,KAAK,GAAwB,OAAO,EACpC,OAAO,GAAsB,SAAS,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Net/Http/HttpRequestFactory.d.ts b/dist/es6/System/Net/Http/HttpRequestFactory.d.ts index 212c88af..87b2581d 100644 --- a/dist/es6/System/Net/Http/HttpRequestFactory.d.ts +++ b/dist/es6/System/Net/Http/HttpRequestFactory.d.ts @@ -1,19 +1,21 @@ -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import Uri from "../../Uri/Uri"; -import DisposableBase from "../../Disposable/DisposableBase"; +import * as QueryParam from "../../Uri/QueryParam"; +import { DisposableBase } from "../../Disposable/DisposableBase"; +import { HttpMethodValue } from "./HttpMethodValue"; +import { Uri } from "../../Uri/Uri"; +import { IUri } from "../../Uri/IUri"; +import { IHttpRequestAdapter } from "./IHttpRequestAdapter"; +import { IPromise } from "../../Promises/IPromise"; export default class HttpRequestFactory extends DisposableBase { private _http; protected _uriDefaults: Uri; constructor(_http: IHttpRequestAdapter, uriDefaults?: string | IUri); protected _onDispose(): void; uri(uri: string | IUri): HttpRequestFactory; - params(params: QueryParamsConvertible): HttpRequestFactory; + params(params: QueryParam.Convertible): HttpRequestFactory; request(method: HttpMethodValue, data?: any): IPromise; get(): IPromise; put(): IPromise; diff --git a/dist/es6/System/Net/Http/HttpRequestFactory.js b/dist/es6/System/Net/Http/HttpRequestFactory.js index 1a087d3b..07e83821 100644 --- a/dist/es6/System/Net/Http/HttpRequestFactory.js +++ b/dist/es6/System/Net/Http/HttpRequestFactory.js @@ -2,11 +2,10 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; -import ArgumentNullException from "../../Exceptions/ArgumentNullException"; -import Uri from "../../Uri/Uri"; -import DisposableBase from "../../Disposable/DisposableBase"; +import { ArgumentNullException } from "../../Exceptions/ArgumentNullException"; +import { DisposableBase } from "../../Disposable/DisposableBase"; import { GET, PUT, POST, DELETE } from "./HttpMethod"; +import { Uri } from "../../Uri/Uri"; export default class HttpRequestFactory extends DisposableBase { constructor(_http, uriDefaults) { super(); diff --git a/dist/es6/System/Net/Http/HttpRequestFactory.js.map b/dist/es6/System/Net/Http/HttpRequestFactory.js.map index a5c32b89..d4ba8174 100644 --- a/dist/es6/System/Net/Http/HttpRequestFactory.js.map +++ b/dist/es6/System/Net/Http/HttpRequestFactory.js.map @@ -1 +1 @@ -{"version":3,"file":"HttpRequestFactory.js","sourceRoot":"","sources":["../../../../../source/System/Net/Http/HttpRequestFactory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,YAAY,CAAC;OAEN,qBAAqB,MAAM,wCAAwC;OACnE,GAAG,MAAM,eAAe;OACxB,cAAc,MAAM,iCAAiC;OACrD,EAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAC,MAAM,cAAc;AAKnD,gDAAgD,cAAc;IAK7D,YACS,KAAyB,EACjC,WAAwB;QAExB,OAAO,CAAC;QAHA,UAAK,GAAL,KAAK,CAAoB;QAKjC,IAAI,CAAC,qBAAqB,GAAG,oBAAoB,CAAC;QAElD,EAAE,CAAA,CAAC,CAAC,KAAK,CAAC;YACT,MAAM,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAE1C,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC;IAES,UAAU;QAGnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,GAAG,CAAC,GAAe;QAGlB,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC;QACtC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;cAC5B,CAAC;cACD,IAAI,kBAAkB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,MAA6B;QAEnC,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,CAAU,MAAsB,EAAE,IAAS;QAEjD,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;YACtB,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,CAAC,CAAC,YAAY;YACnB,IAAI,EAAE,IAAI;SACV,CAAC,CAAC;IACJ,CAAC;IAGD,GAAG;QAEF,MAAM,CAAC,IAAI,CAAC,OAAO,CAAU,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,GAAG;QAEF,MAAM,CAAC,IAAI,CAAC,OAAO,CAAU,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,CAAU,IAAQ;QAErB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAU,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,QAAQ;QAEP,MAAM,CAAC,IAAI,CAAC,OAAO,CAAU,MAAM,CAAC,CAAC;IACtC,CAAC;AAEF,CAAC;AAAA"} \ No newline at end of file +{"version":3,"file":"HttpRequestFactory.js","sourceRoot":"","sources":["../../../../../source/System/Net/Http/HttpRequestFactory.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAII,EAAC,qBAAqB,EAAC,MAAM,wCAAwC;OACrE,EAAC,cAAc,EAAC,MAAM,iCAAiC;OAEvD,EAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAC,MAAM,cAAc;OAC5C,EAAC,GAAG,EAAC,MAAM,eAAe;AAQjC,gDAAgD,cAAc;IAK7D,YACS,KAAyB,EACjC,WAAwB;QAExB,OAAO,CAAC;QAHA,UAAK,GAAL,KAAK,CAAoB;QAKjC,IAAI,CAAC,qBAAqB,GAAG,oBAAoB,CAAC;QAElD,EAAE,CAAA,CAAC,CAAC,KAAK,CAAC;YACT,MAAM,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAE1C,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC;IAES,UAAU;QAGnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,GAAG,CAAC,GAAe;QAGlB,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC;QACtC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;cAC5B,CAAC;cACD,IAAI,kBAAkB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,MAA6B;QAEnC,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,CAAU,MAAsB,EAAE,IAAS;QAEjD,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;YACtB,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,CAAC,CAAC,YAAY;YACnB,IAAI,EAAE,IAAI;SACV,CAAC,CAAC;IACJ,CAAC;IAGD,GAAG;QAEF,MAAM,CAAC,IAAI,CAAC,OAAO,CAAU,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,GAAG;QAEF,MAAM,CAAC,IAAI,CAAC,OAAO,CAAU,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,CAAU,IAAQ;QAErB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAU,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,QAAQ;QAEP,MAAM,CAAC,IAAI,CAAC,OAAO,CAAU,MAAM,CAAC,CAAC;IACtC,CAAC;AAEF,CAAC;AAAA"} \ No newline at end of file diff --git a/dist/es6/System/Observable/ObservableBase.d.ts b/dist/es6/System/Observable/ObservableBase.d.ts index 050d9f79..e45e3351 100644 --- a/dist/es6/System/Observable/ObservableBase.d.ts +++ b/dist/es6/System/Observable/ObservableBase.d.ts @@ -1,13 +1,13 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Based upon .NET source. * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ -import SubscribableBase from "./SubscribableBase"; -declare abstract class ObservableBase extends SubscribableBase> implements IObservable { +import { SubscribableBase } from "./SubscribableBase"; +import { IObservable } from "./IObservable"; +import { IObserver } from "./IObserver"; +export declare abstract class ObservableBase extends SubscribableBase> implements IObservable { protected _onNext(value: T): void; protected _onError(error: Error): void; protected _onCompleted(): void; diff --git a/dist/es6/System/Observable/ObservableBase.js b/dist/es6/System/Observable/ObservableBase.js index 0a052f92..09553fec 100644 --- a/dist/es6/System/Observable/ObservableBase.js +++ b/dist/es6/System/Observable/ObservableBase.js @@ -4,9 +4,8 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ -'use strict'; -import SubscribableBase from "./SubscribableBase"; -class ObservableBase extends SubscribableBase { +import { SubscribableBase } from "./SubscribableBase"; +export class ObservableBase extends SubscribableBase { _onNext(value) { processAction(this._getSubscribers(), s => { s.onNext && s.onNext(value); }); } diff --git a/dist/es6/System/Observable/ObservableBase.js.map b/dist/es6/System/Observable/ObservableBase.js.map index fb2d12ad..a8a6400b 100644 --- a/dist/es6/System/Observable/ObservableBase.js.map +++ b/dist/es6/System/Observable/ObservableBase.js.map @@ -1 +1 @@ -{"version":3,"file":"ObservableBase.js","sourceRoot":"","sources":["../../../../source/System/Observable/ObservableBase.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,YAAY,CAAC;OAEN,gBAAgB,MAAM,oBAAoB;AAIjD,6BACQ,gBAAgB;IAIb,OAAO,CAAC,KAAO;QAExB,aAAa,CACZ,IAAI,CAAC,eAAe,EAAE,EACtB,CAAC,MAAM,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACrC,CAAC;IACH,CAAC;IAES,QAAQ,CAAC,KAAW;QAE7B,aAAa,CACZ,IAAI,CAAC,eAAe,EAAE,EACtB,CAAC,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACvC,CAAC;IACH,CAAC;IAES,YAAY;QAErB,aAAa,CACZ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAC1B,CAAC,MAAM,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAC1C,CAAC;IACH,CAAC;AACF,CAAC;AAED,MAAM,sBAAsB,GAAU,uEAAuE,CAAC;AAE9G,uBACC,SAAwB,EACxB,OAA8B;IAE9B,IAAI,eAAe,GAAoC,IAAI,CAAC;IAE5D,GAAG,CAAA,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CACvB,CAAC;QACA,IACA,CAAC;YACA,OAAO,CAAC,CAAC,CAAC,CAAC;QACZ,CACA;QAAA,KAAK,CAAA,CAAC,EAAE,CAAC,CACT,CAAC;YACA,eAAe,GAAG,eAAe,IAAI,EAAE,CAAC;YAExC,eAAe,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAC,CAAC,CAAC;QAC7C,CAAC;IACF,CAAC;IAED,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAErB,EAAE,CAAA,CAAC,eAAe,IAAI,eAAe,CAAC,MAAM,CAAC,CAC7C,CAAC;QACA,EAAE,CAAA,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,eAAe,CAAC,CAAC;QACxD,IAAI;YAAC,MAAM;gBACV,OAAO,EAAE,sBAAsB;gBAC/B,MAAM,EAAE,eAAe;aACvB,CAAC;IACH,CAAC;AAEF,CAAC;AAED,eAAe,cAAc,CAAC"} \ No newline at end of file +{"version":3,"file":"ObservableBase.js","sourceRoot":"","sources":["../../../../source/System/Observable/ObservableBase.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;OAGI,EAAC,gBAAgB,EAAC,MAAM,oBAAoB;AAMnD,oCACQ,gBAAgB;IAGb,OAAO,CAAC,KAAO;QAExB,aAAa,CACZ,IAAI,CAAC,eAAe,EAAE,EACtB,CAAC,MAAM,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACrC,CAAC;IACH,CAAC;IAES,QAAQ,CAAC,KAAW;QAE7B,aAAa,CACZ,IAAI,CAAC,eAAe,EAAE,EACtB,CAAC,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACvC,CAAC;IACH,CAAC;IAES,YAAY;QAErB,aAAa,CACZ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAC1B,CAAC,MAAM,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAC1C,CAAC;IACH,CAAC;AACF,CAAC;AAED,MAAM,sBAAsB,GAAU,uEAAuE,CAAC;AAE9G,uBACC,SAAwB,EACxB,OAA8B;IAE9B,IAAI,eAAe,GAAoC,IAAI,CAAC;IAE5D,GAAG,CAAA,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CACvB,CAAC;QACA,IACA,CAAC;YACA,OAAO,CAAC,CAAC,CAAC,CAAC;QACZ,CACA;QAAA,KAAK,CAAA,CAAC,EAAE,CAAC,CACT,CAAC;YACA,eAAe,GAAG,eAAe,IAAI,EAAE,CAAC;YAExC,eAAe,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAC,CAAC,CAAC;QAC7C,CAAC;IACF,CAAC;IAED,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAErB,EAAE,CAAA,CAAC,eAAe,IAAI,eAAe,CAAC,MAAM,CAAC,CAC7C,CAAC;QACA,EAAE,CAAA,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,eAAe,CAAC,CAAC;QACxD,IAAI;YAAC,MAAM;gBACV,OAAO,EAAE,sBAAsB;gBAC/B,MAAM,EAAE,eAAe;aACvB,CAAC;IACH,CAAC;AAEF,CAAC;AAED,eAAe,cAAc,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Observable/ObservableNodeBase.d.ts b/dist/es6/System/Observable/ObservableNodeBase.d.ts index 420a0dbc..25d83469 100644 --- a/dist/es6/System/Observable/ObservableNodeBase.d.ts +++ b/dist/es6/System/Observable/ObservableNodeBase.d.ts @@ -1,5 +1,3 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Based upon .NET source. @@ -7,8 +5,10 @@ * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ import ObservableBase from "./ObservableBase"; -export default class ObservableNodeBase extends ObservableBase implements IObserver { +import { IObserver } from "./IObserver"; +export declare class ObservableNodeBase extends ObservableBase implements IObserver { onNext(value: T): void; onError(error: Error): void; onCompleted(): void; } +export default ObservableNodeBase; diff --git a/dist/es6/System/Observable/ObservableNodeBase.js b/dist/es6/System/Observable/ObservableNodeBase.js index 6209a8eb..854e3bdf 100644 --- a/dist/es6/System/Observable/ObservableNodeBase.js +++ b/dist/es6/System/Observable/ObservableNodeBase.js @@ -4,9 +4,8 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ -'use strict'; import ObservableBase from "./ObservableBase"; -export default class ObservableNodeBase extends ObservableBase { +export class ObservableNodeBase extends ObservableBase { onNext(value) { this._onNext(value); } @@ -17,4 +16,5 @@ export default class ObservableNodeBase extends ObservableBase { this._onCompleted(); } } +export default ObservableNodeBase; //# sourceMappingURL=ObservableNodeBase.js.map \ No newline at end of file diff --git a/dist/es6/System/Observable/ObservableNodeBase.js.map b/dist/es6/System/Observable/ObservableNodeBase.js.map index ef096cb2..f22c162b 100644 --- a/dist/es6/System/Observable/ObservableNodeBase.js.map +++ b/dist/es6/System/Observable/ObservableNodeBase.js.map @@ -1 +1 @@ -{"version":3,"file":"ObservableNodeBase.js","sourceRoot":"","sources":["../../../../source/System/Observable/ObservableNodeBase.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,YAAY,CAAC;OAEN,cAAc,MAAM,kBAAkB;AAG7C,gDAEQ,cAAc;IAIrB,MAAM,CAAC,KAAO;QAEb,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAED,OAAO,CAAC,KAAW;QAElB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IAED,WAAW;QAEV,IAAI,CAAC,YAAY,EAAE,CAAC;IACrB,CAAC;AACF,CAAC;AAAA"} \ No newline at end of file +{"version":3,"file":"ObservableNodeBase.js","sourceRoot":"","sources":["../../../../source/System/Observable/ObservableNodeBase.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;OAGI,cAAc,MAAM,kBAAkB;AAG7C,wCACQ,cAAc;IAIrB,MAAM,CAAC,KAAO;QAEb,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAED,OAAO,CAAC,KAAW;QAElB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IAED,WAAW;QAEV,IAAI,CAAC,YAAY,EAAE,CAAC;IACrB,CAAC;AACF,CAAC;AAED,eAAe,kBAAkB,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Observable/SubscribableBase.d.ts b/dist/es6/System/Observable/SubscribableBase.d.ts index 5de54bfc..a292656a 100644 --- a/dist/es6/System/Observable/SubscribableBase.d.ts +++ b/dist/es6/System/Observable/SubscribableBase.d.ts @@ -1,12 +1,11 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Based upon .NET source. * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ -export default class SubscribableBase implements IDisposable { +import { IDisposable } from "../Disposable/IDisposable"; +export declare class SubscribableBase implements IDisposable { private __subscriptions; protected _getSubscribers(): TSubscriber[]; constructor(); @@ -17,3 +16,4 @@ export default class SubscribableBase implements IDisposable { unsubscribeAll(): void; dispose(): void; } +export default SubscribableBase; diff --git a/dist/es6/System/Observable/SubscribableBase.js b/dist/es6/System/Observable/SubscribableBase.js index 4b06aad4..01212a30 100644 --- a/dist/es6/System/Observable/SubscribableBase.js +++ b/dist/es6/System/Observable/SubscribableBase.js @@ -4,11 +4,10 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ -'use strict'; -import LinkedNodeList from "../Collections/LinkedNodeList"; -import dispose from "../Disposable/dispose"; -import Subscription from "./Subscription"; -export default class SubscribableBase { +import { LinkedNodeList } from "../Collections/LinkedNodeList"; +import { dispose } from "../Disposable/dispose"; +import { Subscription } from "./Subscription"; +export class SubscribableBase { constructor() { this.__subscriptions = new LinkedNodeList(); @@ -56,4 +55,5 @@ export default class SubscribableBase { this._unsubscribeAll(); } } +export default SubscribableBase; //# sourceMappingURL=SubscribableBase.js.map \ No newline at end of file diff --git a/dist/es6/System/Observable/SubscribableBase.js.map b/dist/es6/System/Observable/SubscribableBase.js.map index 118c4d96..522cff69 100644 --- a/dist/es6/System/Observable/SubscribableBase.js.map +++ b/dist/es6/System/Observable/SubscribableBase.js.map @@ -1 +1 @@ -{"version":3,"file":"SubscribableBase.js","sourceRoot":"","sources":["../../../../source/System/Observable/SubscribableBase.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,YAAY,CAAC;OAEN,cAAc,MAAM,+BAA+B;OACnD,OAAO,MAAM,uBAAuB;OACpC,YAAY,MAAM,gBAAgB;AAIzC;IAeC;QAEC,IAAI,CAAC,eAAe;cACjB,IAAI,cAAc,EAAmD,CAAC;IAC1E,CAAC;IAXS,eAAe;QAExB,MAAM,CAAC,IAAI;aACT,eAAe;aACf,GAAG,CAAC,IAAI,IAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAClD,CAAC;IAQO,cAAc,CACrB,UAAsB;QAEtB,MAAM,CAAC,IAAI;aACT,eAAe;aACf,IAAI,CAAC,CAAC,IAAE,CAAC,CAAC,KAAK,CAAC,UAAU,KAAG,UAAU,CAAC,CAAC;IAC5C,CAAC;IAGD,SAAS,CAAC,UAAsB;QAE/B,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QACrC,EAAE,CAAA,CAAC,CAAC,CAAC;YACJ,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QAEhB,IAAI,CAAC,GAAG,IAAI,YAAY,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QACxC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,EAAC,KAAK,EAAE,CAAC,EAAC,CAAC,CAAC;QAEtC,MAAM,CAAC,CAAC,CAAC;IACV,CAAC;IAED,WAAW,CAAC,UAAsB;QAEjC,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QACrC,EAAE,CAAA,CAAC,CAAC,CAAC,CACL,CAAC;YACA,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;YAChB,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAChC,CAAC,CAAC,OAAO,EAAE,CAAC;QACb,CAAC;IACF,CAAC;IAES,eAAe,CAAC,iBAAiB,GAAW,KAAK;QAE1D,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,eAAe,CAAC;QACrC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,GAAG,iBAAiB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAE,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;QAC1D,EAAE,CAAC,KAAK,EAAE,CAAC;QAEX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAEjB,MAAM,CAAC,CAAC,CAAC;IACV,CAAC;IAED,cAAc;QAEb,IAAI,CAAC,eAAe,EAAE,CAAC;IACxB,CAAC;IAED,OAAO;QAEN,IAAI,CAAC,eAAe,EAAE,CAAC;IACxB,CAAC;AAEF,CAAC;AAAA"} \ No newline at end of file +{"version":3,"file":"SubscribableBase.js","sourceRoot":"","sources":["../../../../source/System/Observable/SubscribableBase.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;OAGI,EAAC,cAAc,EAAC,MAAM,+BAA+B;OACrD,EAAC,OAAO,EAAC,MAAM,uBAAuB;OACtC,EAAC,YAAY,EAAC,MAAM,gBAAgB;AAK3C;IAcC;QAEC,IAAI,CAAC,eAAe;cACjB,IAAI,cAAc,EAAmD,CAAC;IAC1E,CAAC;IAXS,eAAe;QAExB,MAAM,CAAC,IAAI;aACT,eAAe;aACf,GAAG,CAAC,IAAI,IAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAClD,CAAC;IAQO,cAAc,CACrB,UAAsB;QAEtB,MAAM,CAAC,IAAI;aACT,eAAe;aACf,IAAI,CAAC,CAAC,IAAE,CAAC,CAAC,KAAK,CAAC,UAAU,KAAG,UAAU,CAAC,CAAC;IAC5C,CAAC;IAGD,SAAS,CAAC,UAAsB;QAE/B,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QACrC,EAAE,CAAA,CAAC,CAAC,CAAC;YACJ,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QAEhB,IAAI,CAAC,GAAG,IAAI,YAAY,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QACxC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,EAAC,KAAK,EAAE,CAAC,EAAC,CAAC,CAAC;QAEtC,MAAM,CAAC,CAAC,CAAC;IACV,CAAC;IAED,WAAW,CAAC,UAAsB;QAEjC,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QACrC,EAAE,CAAA,CAAC,CAAC,CAAC,CACL,CAAC;YACA,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;YAChB,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAChC,CAAC,CAAC,OAAO,EAAE,CAAC;QACb,CAAC;IACF,CAAC;IAES,eAAe,CAAC,iBAAiB,GAAW,KAAK;QAE1D,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,eAAe,CAAC;QACrC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,GAAG,iBAAiB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAE,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;QAC1D,EAAE,CAAC,KAAK,EAAE,CAAC;QAEX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAEjB,MAAM,CAAC,CAAC,CAAC;IACV,CAAC;IAED,cAAc;QAEb,IAAI,CAAC,eAAe,EAAE,CAAC;IACxB,CAAC;IAED,OAAO;QAEN,IAAI,CAAC,eAAe,EAAE,CAAC;IACxB,CAAC;AAEF,CAAC;AAED,eAAe,gBAAgB,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Observable/Subscription.d.ts b/dist/es6/System/Observable/Subscription.d.ts index ad70893a..d39df22c 100644 --- a/dist/es6/System/Observable/Subscription.d.ts +++ b/dist/es6/System/Observable/Subscription.d.ts @@ -1,13 +1,12 @@ -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Based upon .NET source. * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ -export default class Subscription implements IDisposableAware { +import { IDisposableAware } from "../Disposable/IDisposableAware"; +import { ISubscribable } from "./ISubscribable"; +export declare class Subscription implements IDisposableAware { private _subscribable; private _subscriber; constructor(_subscribable: ISubscribable, _subscriber: T); @@ -15,3 +14,4 @@ export default class Subscription implements IDisposableAware { wasDisposed: boolean; dispose(): void; } +export default Subscription; diff --git a/dist/es6/System/Observable/Subscription.js b/dist/es6/System/Observable/Subscription.js index 12e40cf4..c6a56cf3 100644 --- a/dist/es6/System/Observable/Subscription.js +++ b/dist/es6/System/Observable/Subscription.js @@ -4,8 +4,7 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ -'use strict'; -export default class Subscription { +export class Subscription { constructor(_subscribable, _subscriber) { this._subscribable = _subscribable; this._subscriber = _subscriber; @@ -28,4 +27,5 @@ export default class Subscription { } } } +export default Subscription; //# sourceMappingURL=Subscription.js.map \ No newline at end of file diff --git a/dist/es6/System/Observable/Subscription.js.map b/dist/es6/System/Observable/Subscription.js.map index 7869717a..4686578a 100644 --- a/dist/es6/System/Observable/Subscription.js.map +++ b/dist/es6/System/Observable/Subscription.js.map @@ -1 +1 @@ -{"version":3,"file":"Subscription.js","sourceRoot":"","sources":["../../../../source/System/Observable/Subscription.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,YAAY,CAAC;AAKb;IAGC,YACS,aAA+B,EAC/B,WAAc;QADd,kBAAa,GAAb,aAAa,CAAkB;QAC/B,gBAAW,GAAX,WAAW,CAAG;QAEtB,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,WAAW,CAAC;YAClC,MAAM,6CAA6C,CAAC;IACtD,CAAC;IAED,IAAI,UAAU;QACb,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;IACzB,CAAC;IAiBD,IAAI,WAAW;QAEd,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;IACjD,CAAC;IAED,OAAO;QAEN,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACjC,IAAI,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC;QAGtC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAG1B,EAAE,CAAC,CAAC,UAAU,IAAI,YAAY,CAAC,CAC/B,CAAC;YACA,YAAY,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QACtC,CAAC;IACF,CAAC;AACF,CAAC;AAAA"} \ No newline at end of file +{"version":3,"file":"Subscription.js","sourceRoot":"","sources":["../../../../source/System/Observable/Subscription.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH;IAEC,YACS,aAA+B,EAC/B,WAAc;QADd,kBAAa,GAAb,aAAa,CAAkB;QAC/B,gBAAW,GAAX,WAAW,CAAG;QAEtB,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,WAAW,CAAC;YAClC,MAAM,6CAA6C,CAAC;IACtD,CAAC;IAED,IAAI,UAAU;QACb,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;IACzB,CAAC;IAiBD,IAAI,WAAW;QAEd,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;IACjD,CAAC;IAED,OAAO;QAEN,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACjC,IAAI,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC;QAGtC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAG1B,EAAE,CAAC,CAAC,UAAU,IAAI,YAAY,CAAC,CAC/B,CAAC;YACA,YAAY,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QACtC,CAAC;IACF,CAAC;AACF,CAAC;AAED,eAAe,YAAY,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Serialization/Utility.d.ts b/dist/es6/System/Serialization/Utility.d.ts index f53d368c..c1308794 100644 --- a/dist/es6/System/Serialization/Utility.d.ts +++ b/dist/es6/System/Serialization/Utility.d.ts @@ -1,9 +1,9 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { ISerializable } from "./ISerializable"; +import { Primitive } from "../Primitive"; export declare function toString(value: Primitive | ISerializable, defaultForUnknown?: string): string; export declare function isSerializable(instance: any): instance is ISerializable; export declare function toPrimitive(value: string, caseInsensitive?: boolean, unknownHandler?: (v: string) => string): Primitive; diff --git a/dist/es6/System/Serialization/Utility.js b/dist/es6/System/Serialization/Utility.js index 212120f5..09e4e71f 100644 --- a/dist/es6/System/Serialization/Utility.js +++ b/dist/es6/System/Serialization/Utility.js @@ -2,8 +2,8 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import Type from '../Types'; -import InvalidOperationException from '../Exceptions/InvalidOperationException'; +import { Type } from "../Types"; +import { InvalidOperationException } from "../Exceptions/InvalidOperationException"; const EMPTY = '', TRUE = 'true', FALSE = 'false'; export function toString(value, defaultForUnknown) { var v = value; diff --git a/dist/es6/System/Serialization/Utility.js.map b/dist/es6/System/Serialization/Utility.js.map index 13097595..d393dcc7 100644 --- a/dist/es6/System/Serialization/Utility.js.map +++ b/dist/es6/System/Serialization/Utility.js.map @@ -1 +1 @@ -{"version":3,"file":"Utility.js","sourceRoot":"","sources":["../../../../source/System/Serialization/Utility.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAKI,IAAI,MAAM,UAAU;OACpB,yBAAyB,MAAM,yCAAyC;AAG/E,MAAM,KAAK,GAAG,EAAE,EAAE,IAAI,GAAG,MAAM,EAAE,KAAK,GAAG,OAAO,CAAC;AAEjD,yBACC,KAA6B,EAC7B,iBAAyB;IAGzB,IAAI,CAAC,GAAQ,KAAK,CAAC;IACnB,MAAM,CAAA,CAAC,OAAO,CAAC,CAAC,CAChB,CAAC;QACA,KAAK,IAAI,CAAC,SAAS,CAAC;QACpB,KAAK,IAAI,CAAC,MAAM;YACf,MAAM,CAAC,CAAC,CAAC;QACV,KAAK,IAAI,CAAC,OAAO;YAChB,MAAM,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;QACzB,KAAK,IAAI,CAAC,MAAM;YACf,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;QAClB;YAEC,EAAE,CAAA,CAAC,CAAC,KAAG,IAAI,CAAC;gBACX,MAAM,CAAC,CAAC,CAAC;YAEV,EAAE,CAAA,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBACpB,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;YACtB,IAAI,CAAC,EAAE,CAAA,CAAC,SAAS,CAAC,MAAM,GAAC,CAAC,CAAC;gBAC1B,MAAM,CAAC,iBAAiB,CAAC;YAE1B,IAAI,EAAE,GAAG,IAAI,yBAAyB,CAAC,8CAA8C,CAAC,CAAC;YACvF,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACrB,MAAM,EAAE,CAAC;IAEX,CAAC;AAEF,CAAC;AAED,+BAA+B,QAAY;IAC1C,MAAM,CAAC,IAAI,CAAC,eAAe,CAAgB,QAAQ,EAAC,WAAW,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAChF,CAAC;AAED,4BACC,KAAY,EACZ,eAAwB,EACxB,cAAkC;IAIlC,EAAE,CAAA,CAAC,KAAK,CAAC,CACT,CAAC;QACA,EAAE,CAAA,CAAC,eAAe,CAAC;YAAC,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QAEhD,MAAM,CAAA,CAAC,KAAK,CAAC,CACb,CAAC;YACA,KAAK,MAAM;gBACV,MAAM,CAAC,IAAI,CAAC;YACb,KAAK,IAAI,CAAC,SAAS;gBAClB,MAAM,CAAC,SAAS,CAAC;YAClB,KAAK,IAAI;gBACR,MAAM,CAAC,IAAI,CAAC;YACb,KAAK,KAAK;gBACT,MAAM,CAAC,KAAK,CAAC;YACd;gBAEC,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,EAAC,KAAK,CAAC,CAAC;gBAClD,EAAE,CAAA,CAAC,OAAO,CAAC,CAAC,CAAC;oBAEZ,EAAE,CAAA,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBAC3B,IAAI,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;wBAC5B,EAAE,CAAA,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;4BAAC,MAAM,CAAC,GAAG,CAAC;oBAC5B,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACP,IAAI,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;wBAC/B,EAAE,CAAA,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;4BAAC,MAAM,CAAC,MAAM,CAAC;oBAClC,CAAC;gBAEF,CAAC;gBAKD,EAAE,CAAA,CAAC,cAAc,CAAC;oBAAC,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;gBAEjD,KAAK,CAAC;QACR,CAAC;IAEF,CAAC;IAED,MAAM,CAAC,KAAK,CAAC;AAEd,CAAC"} \ No newline at end of file +{"version":3,"file":"Utility.js","sourceRoot":"","sources":["../../../../source/System/Serialization/Utility.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAEI,EAAC,IAAI,EAAC,MAAM,UAAU;OACtB,EAAC,yBAAyB,EAAC,MAAM,yCAAyC;AAKjF,MAAM,KAAK,GAAG,EAAE,EAAE,IAAI,GAAG,MAAM,EAAE,KAAK,GAAG,OAAO,CAAC;AAEjD,yBACC,KAA6B,EAC7B,iBAAyB;IAGzB,IAAI,CAAC,GAAQ,KAAK,CAAC;IACnB,MAAM,CAAA,CAAC,OAAO,CAAC,CAAC,CAChB,CAAC;QACA,KAAK,IAAI,CAAC,SAAS,CAAC;QACpB,KAAK,IAAI,CAAC,MAAM;YACf,MAAM,CAAC,CAAC,CAAC;QACV,KAAK,IAAI,CAAC,OAAO;YAChB,MAAM,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;QACzB,KAAK,IAAI,CAAC,MAAM;YACf,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;QAClB;YAEC,EAAE,CAAA,CAAC,CAAC,KAAG,IAAI,CAAC;gBACX,MAAM,CAAC,CAAC,CAAC;YAEV,EAAE,CAAA,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBACpB,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;YACtB,IAAI,CAAC,EAAE,CAAA,CAAC,SAAS,CAAC,MAAM,GAAC,CAAC,CAAC;gBAC1B,MAAM,CAAC,iBAAiB,CAAC;YAE1B,IAAI,EAAE,GAAG,IAAI,yBAAyB,CAAC,8CAA8C,CAAC,CAAC;YACvF,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACrB,MAAM,EAAE,CAAC;IAEX,CAAC;AAEF,CAAC;AAED,+BAA+B,QAAY;IAC1C,MAAM,CAAC,IAAI,CAAC,eAAe,CAAgB,QAAQ,EAAC,WAAW,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAChF,CAAC;AAED,4BACC,KAAY,EACZ,eAAwB,EACxB,cAAkC;IAIlC,EAAE,CAAA,CAAC,KAAK,CAAC,CACT,CAAC;QACA,EAAE,CAAA,CAAC,eAAe,CAAC;YAAC,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QAEhD,MAAM,CAAA,CAAC,KAAK,CAAC,CACb,CAAC;YACA,KAAK,MAAM;gBACV,MAAM,CAAC,IAAI,CAAC;YACb,KAAK,IAAI,CAAC,SAAS;gBAClB,MAAM,CAAC,SAAS,CAAC;YAClB,KAAK,IAAI;gBACR,MAAM,CAAC,IAAI,CAAC;YACb,KAAK,KAAK;gBACT,MAAM,CAAC,KAAK,CAAC;YACd;gBAEC,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,EAAC,KAAK,CAAC,CAAC;gBAClD,EAAE,CAAA,CAAC,OAAO,CAAC,CAAC,CAAC;oBAEZ,EAAE,CAAA,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBAC3B,IAAI,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;wBAC5B,EAAE,CAAA,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;4BAAC,MAAM,CAAC,GAAG,CAAC;oBAC5B,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACP,IAAI,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;wBAC/B,EAAE,CAAA,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;4BAAC,MAAM,CAAC,MAAM,CAAC;oBAClC,CAAC;gBAEF,CAAC;gBAKD,EAAE,CAAA,CAAC,cAAc,CAAC;oBAAC,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;gBAEjD,KAAK,CAAC;QACR,CAAC;IAEF,CAAC;IAED,MAAM,CAAC,KAAK,CAAC;AAEd,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Tasks/TaskHandler.d.ts b/dist/es6/System/Tasks/TaskHandler.d.ts index 750d1dd3..c2a1037f 100644 --- a/dist/es6/System/Tasks/TaskHandler.d.ts +++ b/dist/es6/System/Tasks/TaskHandler.d.ts @@ -3,10 +3,12 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import TaskHandlerBase from "./TaskHandlerBase"; -export default class TaskHandler extends TaskHandlerBase { +import { TaskHandlerBase } from "./TaskHandlerBase"; +import { Closure } from "../FunctionTypes"; +export declare class TaskHandler extends TaskHandlerBase { private _action; constructor(_action: Closure); protected _onExecute(): void; protected _onDispose(): void; } +export default TaskHandler; diff --git a/dist/es6/System/Tasks/TaskHandler.js b/dist/es6/System/Tasks/TaskHandler.js index fb6e95a4..e10127d7 100644 --- a/dist/es6/System/Tasks/TaskHandler.js +++ b/dist/es6/System/Tasks/TaskHandler.js @@ -2,9 +2,9 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import TaskHandlerBase from "./TaskHandlerBase"; -import ArgumentNullException from "../Exceptions/ArgumentNullException"; -export default class TaskHandler extends TaskHandlerBase { +import { TaskHandlerBase } from "./TaskHandlerBase"; +import { ArgumentNullException } from "../Exceptions/ArgumentNullException"; +export class TaskHandler extends TaskHandlerBase { constructor(_action) { super(); this._action = _action; @@ -19,4 +19,5 @@ export default class TaskHandler extends TaskHandlerBase { this._action = null; } } +export default TaskHandler; //# sourceMappingURL=TaskHandler.js.map \ No newline at end of file diff --git a/dist/es6/System/Tasks/TaskHandler.js.map b/dist/es6/System/Tasks/TaskHandler.js.map index 6cb13132..cab7578d 100644 --- a/dist/es6/System/Tasks/TaskHandler.js.map +++ b/dist/es6/System/Tasks/TaskHandler.js.map @@ -1 +1 @@ -{"version":3,"file":"TaskHandler.js","sourceRoot":"","sources":["../../../../source/System/Tasks/TaskHandler.ts"],"names":[],"mappings":"AACA;;;GAGG;OAEI,eAAe,MAAM,mBAAmB;OACxC,qBAAqB,MAAM,qCAAqC;AACvE,yCAAyC,eAAe;IAEvD,YAAoB,OAAe;QAClC,OAAO,CAAC;QADW,YAAO,GAAP,OAAO,CAAQ;QAElC,EAAE,CAAA,CAAC,CAAC,OAAO,CAAC;YAAC,MAAM,IAAI,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACxD,CAAC;IAES,UAAU;QAEnB,IAAI,CAAC,OAAO,EAAE,CAAC;IAChB,CAAC;IAES,UAAU;QAEnB,KAAK,CAAC,UAAU,EAAE,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACrB,CAAC;AACF,CAAC;AAAA"} \ No newline at end of file +{"version":3,"file":"TaskHandler.js","sourceRoot":"","sources":["../../../../source/System/Tasks/TaskHandler.ts"],"names":[],"mappings":"AACA;;;GAGG;OAEI,EAAC,eAAe,EAAC,MAAM,mBAAmB;OAC1C,EAAC,qBAAqB,EAAC,MAAM,qCAAqC;AAGzE,iCAAiC,eAAe;IAE/C,YAAoB,OAAe;QAClC,OAAO,CAAC;QADW,YAAO,GAAP,OAAO,CAAQ;QAElC,EAAE,CAAA,CAAC,CAAC,OAAO,CAAC;YAAC,MAAM,IAAI,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACxD,CAAC;IAES,UAAU;QAEnB,IAAI,CAAC,OAAO,EAAE,CAAC;IAChB,CAAC;IAES,UAAU;QAEnB,KAAK,CAAC,UAAU,EAAE,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACrB,CAAC;AACF,CAAC;AAED,eAAe,WAAW,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Tasks/TaskHandlerBase.d.ts b/dist/es6/System/Tasks/TaskHandlerBase.d.ts index c3945286..abb00e37 100644 --- a/dist/es6/System/Tasks/TaskHandlerBase.d.ts +++ b/dist/es6/System/Tasks/TaskHandlerBase.d.ts @@ -1,10 +1,10 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import DisposableBase from "../Disposable/DisposableBase"; -declare abstract class TaskHandlerBase extends DisposableBase implements ICancellable { +import { DisposableBase } from "../Disposable/DisposableBase"; +import { ICancellable } from "./ICancellable"; +export declare abstract class TaskHandlerBase extends DisposableBase implements ICancellable { constructor(); protected _id: any; isScheduled: boolean; diff --git a/dist/es6/System/Tasks/TaskHandlerBase.js b/dist/es6/System/Tasks/TaskHandlerBase.js index ceae896b..5ce7cd87 100644 --- a/dist/es6/System/Tasks/TaskHandlerBase.js +++ b/dist/es6/System/Tasks/TaskHandlerBase.js @@ -2,8 +2,8 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import DisposableBase from "../Disposable/DisposableBase"; -class TaskHandlerBase extends DisposableBase { +import { DisposableBase } from "../Disposable/DisposableBase"; +export class TaskHandlerBase extends DisposableBase { constructor() { super(); this._id = null; diff --git a/dist/es6/System/Tasks/TaskHandlerBase.js.map b/dist/es6/System/Tasks/TaskHandlerBase.js.map index a66cbc1c..93c9495d 100644 --- a/dist/es6/System/Tasks/TaskHandlerBase.js.map +++ b/dist/es6/System/Tasks/TaskHandlerBase.js.map @@ -1 +1 @@ -{"version":3,"file":"TaskHandlerBase.js","sourceRoot":"","sources":["../../../../source/System/Tasks/TaskHandlerBase.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAGI,cAAc,MAAM,8BAA8B;AAKzD,8BACQ,cAAc;IAErB;QAEC,OAAO,CAAC;QACR,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;IACjB,CAAC;IAID,IAAI,WAAW;QACd,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IACnB,CAAC;IAOD,OAAO,CAAC,KAAa;QAEpB,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,EAAE,CAAA,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,GAAC,CAAC,CAAC,CAC3B,CAAC;YACA,IAAI,CAAC,UAAU,EAAE,CAAC;QACnB,CAAC;QACD,IAAI,CAAC,EAAE,CAAA,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CACxB,CAAC;YACA,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC9D,CAAC;IACF,CAAC;IAGD,OAAe,QAAQ,CAAC,CAAiB;QAExC,CAAC,CAAC,MAAM,EAAE,CAAC;QACX,CAAC,CAAC,UAAU,EAAE,CAAC;IAChB,CAAC;IAIS,UAAU;QAEnB,IAAI,CAAC,MAAM,EAAE,CAAC;IACf,CAAC;IAED,MAAM;QAEL,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;QAClB,EAAE,CAAA,CAAC,EAAE,CAAC,CACN,CAAC;YACA,YAAY,CAAC,EAAE,CAAC,CAAC;YACjB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QACD,MAAM,CAAC,KAAK,CAAC;IACd,CAAC;AAGF,CAAC;AAED,eAAe,eAAe,CAAC"} \ No newline at end of file +{"version":3,"file":"TaskHandlerBase.js","sourceRoot":"","sources":["../../../../source/System/Tasks/TaskHandlerBase.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAEI,EAAC,cAAc,EAAC,MAAM,8BAA8B;AAM3D,qCACQ,cAAc;IAErB;QAEC,OAAO,CAAC;QACR,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;IACjB,CAAC;IAID,IAAI,WAAW;QACd,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IACnB,CAAC;IAOD,OAAO,CAAC,KAAa;QAEpB,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,EAAE,CAAA,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,GAAC,CAAC,CAAC,CAC3B,CAAC;YACA,IAAI,CAAC,UAAU,EAAE,CAAC;QACnB,CAAC;QACD,IAAI,CAAC,EAAE,CAAA,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CACxB,CAAC;YACA,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC9D,CAAC;IACF,CAAC;IAGD,OAAe,QAAQ,CAAC,CAAiB;QAExC,CAAC,CAAC,MAAM,EAAE,CAAC;QACX,CAAC,CAAC,UAAU,EAAE,CAAC;IAChB,CAAC;IAIS,UAAU;QAEnB,IAAI,CAAC,MAAM,EAAE,CAAC;IACf,CAAC;IAED,MAAM;QAEL,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;QAClB,EAAE,CAAA,CAAC,EAAE,CAAC,CACN,CAAC;YACA,YAAY,CAAC,EAAE,CAAC,CAAC;YACjB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QACD,MAAM,CAAC,KAAK,CAAC;IACd,CAAC;AAGF,CAAC;AAED,eAAe,eAAe,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Tasks/defer.d.ts b/dist/es6/System/Tasks/defer.d.ts index 2b37b77f..7552d46b 100644 --- a/dist/es6/System/Tasks/defer.d.ts +++ b/dist/es6/System/Tasks/defer.d.ts @@ -1,7 +1,8 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { ICancellable } from "./ICancellable"; +import { Closure } from "../FunctionTypes"; export default function defer(task: Closure, delay?: number): ICancellable; export declare function interval(task: Function, interval: number, count?: number): ICancellable; diff --git a/dist/es6/System/Tasks/defer.js.map b/dist/es6/System/Tasks/defer.js.map index db8b3a31..7547269e 100644 --- a/dist/es6/System/Tasks/defer.js.map +++ b/dist/es6/System/Tasks/defer.js.map @@ -1 +1 @@ -{"version":3,"file":"defer.js","sourceRoot":"","sources":["../../../../source/System/Tasks/defer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;IAOC,OAAO;QAEN,IAAI,CAAC,MAAM,EAAE,CAAC;IACf,CAAC;AACF,CAAC;AAED,oBAAoB,SAAS;IAI5B,YAAY,IAAY,EAAE,KAAa;QAEtC,OAAO,CAAC;QACR,EAAE,CAAA,CAAC,CAAC,CAAC,KAAK,IAAE,CAAC,CAAC,CAAC;YAAC,KAAK,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;IAED,MAAM;QAEL,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;QAClB,EAAE,CAAA,CAAC,EAAE,CAAC,CACN,CAAC;YACA,YAAY,CAAC,EAAE,CAAC,CAAC;YACjB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QACD,MAAM,CAAC,KAAK,CAAC;IACd,CAAC;IAGD,OAAe,OAAO,CAAC,IAAa,EAAE,CAAO;QAE5C,CAAC,CAAC,MAAM,EAAE,CAAC;QACX,IAAI,EAAE,CAAC;IACR,CAAC;AAEF,CAAC;AAED,4BAA4B,SAAS;IAIpC,YACC,IAAa,EACb,QAAe,EACP,UAAU,GAAU,QAAQ;QAEpC,OAAO,CAAC;QAFA,eAAU,GAAV,UAAU,CAAkB;QAGpC,EAAE,CAAA,CAAC,QAAQ,KAAG,IAAI,IAAI,QAAQ,KAAI,KAAI,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,oCAAoC,CAAC;QAC5C,EAAE,CAAA,CAAC,QAAQ,GAAC,CAAC,CAAC;YACb,MAAM,gCAAgC,CAAC;QAExC,IAAI,CAAC,GAAG,GAAG,WAAW,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC;IAED,MAAM;QAEL,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;QAClB,EAAE,CAAA,CAAC,EAAE,CAAC,CACN,CAAC;YACA,aAAa,CAAC,EAAE,CAAC,CAAC;YAClB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QACD,MAAM,CAAC,KAAK,CAAC;IACd,CAAC;IAED,OAAe,OAAO,CAAC,IAAa,EAAE,CAAe;QAEpD,EAAE,CAAA,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;YAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QACjC,IAAI,EAAE,CAAC;IACR,CAAC;AAEF,CAAC;AAGD,8BACC,IAAY,EACZ,KAAa;IAEb,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,yBACC,IAAa,EACb,QAAe,EACf,KAAK,GAAU,QAAQ;IAEvB,MAAM,CAAC,IAAI,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AACjD,CAAC"} \ No newline at end of file +{"version":3,"file":"defer.js","sourceRoot":"","sources":["../../../../source/System/Tasks/defer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH;IAOC,OAAO;QAEN,IAAI,CAAC,MAAM,EAAE,CAAC;IACf,CAAC;AACF,CAAC;AAED,oBAAoB,SAAS;IAI5B,YAAY,IAAY,EAAE,KAAa;QAEtC,OAAO,CAAC;QACR,EAAE,CAAA,CAAC,CAAC,CAAC,KAAK,IAAE,CAAC,CAAC,CAAC;YAAC,KAAK,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;IAED,MAAM;QAEL,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;QAClB,EAAE,CAAA,CAAC,EAAE,CAAC,CACN,CAAC;YACA,YAAY,CAAC,EAAE,CAAC,CAAC;YACjB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QACD,MAAM,CAAC,KAAK,CAAC;IACd,CAAC;IAGD,OAAe,OAAO,CAAC,IAAa,EAAE,CAAO;QAE5C,CAAC,CAAC,MAAM,EAAE,CAAC;QACX,IAAI,EAAE,CAAC;IACR,CAAC;AAEF,CAAC;AAED,4BAA4B,SAAS;IAIpC,YACC,IAAa,EACb,QAAe,EACP,UAAU,GAAU,QAAQ;QAEpC,OAAO,CAAC;QAFA,eAAU,GAAV,UAAU,CAAkB;QAGpC,EAAE,CAAA,CAAC,QAAQ,KAAG,IAAI,IAAI,QAAQ,KAAI,KAAI,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,oCAAoC,CAAC;QAC5C,EAAE,CAAA,CAAC,QAAQ,GAAC,CAAC,CAAC;YACb,MAAM,gCAAgC,CAAC;QAExC,IAAI,CAAC,GAAG,GAAG,WAAW,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC;IAED,MAAM;QAEL,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;QAClB,EAAE,CAAA,CAAC,EAAE,CAAC,CACN,CAAC;YACA,aAAa,CAAC,EAAE,CAAC,CAAC;YAClB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QACD,MAAM,CAAC,KAAK,CAAC;IACd,CAAC;IAED,OAAe,OAAO,CAAC,IAAa,EAAE,CAAe;QAEpD,EAAE,CAAA,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;YAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QACjC,IAAI,EAAE,CAAC;IACR,CAAC;AAEF,CAAC;AAGD,8BACC,IAAY,EACZ,KAAa;IAEb,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,yBACC,IAAa,EACb,QAAe,EACf,KAAK,GAAU,QAAQ;IAEvB,MAAM,CAAC,IAAI,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AACjD,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Tasks/deferImmediate.d.ts b/dist/es6/System/Tasks/deferImmediate.d.ts index 9c479d18..7181db61 100644 --- a/dist/es6/System/Tasks/deferImmediate.d.ts +++ b/dist/es6/System/Tasks/deferImmediate.d.ts @@ -1,8 +1,9 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based on code from: https://github.com/kriskowal/q */ +import { Closure } from "../FunctionTypes"; +import { ICancellable } from "./ICancellable"; export default function deferImmediate(task: Closure): ICancellable; export declare function runAfterDeferred(task: Closure): void; diff --git a/dist/es6/System/Tasks/deferImmediate.js b/dist/es6/System/Tasks/deferImmediate.js index 4d27da11..f1149051 100644 --- a/dist/es6/System/Tasks/deferImmediate.js +++ b/dist/es6/System/Tasks/deferImmediate.js @@ -3,10 +3,9 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based on code from: https://github.com/kriskowal/q */ -import Type from "../Types"; -import LinkedNodeList from "../Collections/LinkedNodeList"; -import Queue from "../Collections/Queue"; -"use strict"; +import { Type } from "../Types"; +import { LinkedNodeList } from "../Collections/LinkedNodeList"; +import { Queue } from "../Collections/Queue"; var requestTick; var isNodeJS = false; var flushing = false; diff --git a/dist/es6/System/Tasks/deferImmediate.js.map b/dist/es6/System/Tasks/deferImmediate.js.map index 971981d0..1f7d305f 100644 --- a/dist/es6/System/Tasks/deferImmediate.js.map +++ b/dist/es6/System/Tasks/deferImmediate.js.map @@ -1 +1 @@ -{"version":3,"file":"deferImmediate.js","sourceRoot":"","sources":["../../../../source/System/Tasks/deferImmediate.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"deferImmediate.js","sourceRoot":"","sources":["../../../../source/System/Tasks/deferImmediate.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6/System/Text/RegexMatchEnumerator.d.ts b/dist/es6/System/Text/RegexMatchEnumerator.d.ts index 90c0d0d9..70eb1c89 100644 --- a/dist/es6/System/Text/RegexMatchEnumerator.d.ts +++ b/dist/es6/System/Text/RegexMatchEnumerator.d.ts @@ -1,9 +1,9 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ import { Regex, Match } from "./RegularExpressions"; +import { IEnumerator } from "../Collections/Enumeration/IEnumerator"; export declare class RegexMatchEnumerator { private _pattern; constructor(pattern: string | RegExp | Regex); diff --git a/dist/es6/System/Text/RegexMatchEnumerator.js b/dist/es6/System/Text/RegexMatchEnumerator.js index 2f45a83d..2c4b3489 100644 --- a/dist/es6/System/Text/RegexMatchEnumerator.js +++ b/dist/es6/System/Text/RegexMatchEnumerator.js @@ -4,7 +4,7 @@ */ import { Regex } from "./RegularExpressions"; import { empty } from "../Collections/Enumeration/Enumerator"; -import EnumeratorBase from "../Collections/Enumeration/EnumeratorBase"; +import { EnumeratorBase } from "../Collections/Enumeration/EnumeratorBase"; export class RegexMatchEnumerator { constructor(pattern) { if (pattern instanceof Regex) { diff --git a/dist/es6/System/Text/RegexMatchEnumerator.js.map b/dist/es6/System/Text/RegexMatchEnumerator.js.map index 3c01dca3..5b7ee17e 100644 --- a/dist/es6/System/Text/RegexMatchEnumerator.js.map +++ b/dist/es6/System/Text/RegexMatchEnumerator.js.map @@ -1 +1 @@ -{"version":3,"file":"RegexMatchEnumerator.js","sourceRoot":"","sources":["../../../../source/System/Text/RegexMatchEnumerator.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAGI,EAAC,KAAK,EAAQ,MAAM,sBAAsB;OAC1C,EAAC,KAAK,EAAC,MAAM,uCAAuC;OACpD,cAAc,MAAM,2CAA2C;AACtE;IAIC,YAAY,OAA2B;QAEtC,EAAE,CAAA,CAAC,OAAO,YAAY,KAAK,CAAC,CAC5B,CAAC;YACA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACzB,CAAC;QACD,IAAI,CACJ,CAAC;YACA,IAAI,CAAC,QAAQ,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;IACF,CAAC;IAED,OAAO,CAAC,KAAY;QAEnB,IAAI,CAAQ,CAAC;QACb,MAAM,CAAC,IAAI,cAAc,CACxB;YAEC,CAAC,GAAG,CAAC,CAAC;QACP,CAAC,EACD,OAAO;YAEN,IAAI,KAAK,GAAS,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAChD,EAAE,CAAA,CAAC,KAAK,CAAC,OAAO,CAAC,CACjB,CAAC;gBACA,CAAC,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;gBAC/B,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACnC,CAAC;YAED,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC,KAAY,EAAE,OAA2B;QAEvD,MAAM,CAAC,KAAK,IAAI,OAAO;cACpB,CAAC,IAAI,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;cAClD,KAAK,CAAC;IACV,CAAC;AAEF,CAAC;AAED,eAAe,oBAAoB,CAAC,OAAO,CAAC"} \ No newline at end of file +{"version":3,"file":"RegexMatchEnumerator.js","sourceRoot":"","sources":["../../../../source/System/Text/RegexMatchEnumerator.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAEI,EAAC,KAAK,EAAQ,MAAM,sBAAsB;OAC1C,EAAC,KAAK,EAAC,MAAM,uCAAuC;OACpD,EAAC,cAAc,EAAC,MAAM,2CAA2C;AAGxE;IAIC,YAAY,OAA2B;QAEtC,EAAE,CAAA,CAAC,OAAO,YAAY,KAAK,CAAC,CAC5B,CAAC;YACA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACzB,CAAC;QACD,IAAI,CACJ,CAAC;YACA,IAAI,CAAC,QAAQ,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;IACF,CAAC;IAED,OAAO,CAAC,KAAY;QAEnB,IAAI,CAAQ,CAAC;QACb,MAAM,CAAC,IAAI,cAAc,CACxB;YAEC,CAAC,GAAG,CAAC,CAAC;QACP,CAAC,EACD,OAAO;YAEN,IAAI,KAAK,GAAS,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAChD,EAAE,CAAA,CAAC,KAAK,CAAC,OAAO,CAAC,CACjB,CAAC;gBACA,CAAC,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;gBAC/B,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACnC,CAAC;YAED,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC,KAAY,EAAE,OAA2B;QAEvD,MAAM,CAAC,KAAK,IAAI,OAAO;cACpB,CAAC,IAAI,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;cAClD,KAAK,CAAC;IACV,CAAC;AAEF,CAAC;AAED,eAAe,oBAAoB,CAAC,OAAO,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Text/RegularExpressions.d.ts b/dist/es6/System/Text/RegularExpressions.d.ts index af3b1fbd..e3638f84 100644 --- a/dist/es6/System/Text/RegularExpressions.d.ts +++ b/dist/es6/System/Text/RegularExpressions.d.ts @@ -1,9 +1,11 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Named groups based on: http://trentrichardson.com/2011/08/02/javascript-regexp-match-named-captures/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { IMap } from "../Collections/Dictionaries/IDictionary"; +import { Primitive } from "../Primitive"; +import { Selector } from "../FunctionTypes"; export declare module RegexOptions { const IGNORE_CASE: string; const I: string; diff --git a/dist/es6/System/Text/StringBuilder.d.ts b/dist/es6/System/Text/StringBuilder.d.ts index 72f52b4c..a5ee019f 100644 --- a/dist/es6/System/Text/StringBuilder.d.ts +++ b/dist/es6/System/Text/StringBuilder.d.ts @@ -1,10 +1,10 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * .NET Reference: http://referencesource.microsoft.com/#mscorlib/system/text/StringBuilder.cs * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -export default class StringBuilder implements IDisposable { +import { IDisposable } from "../Disposable/IDisposable"; +export declare class StringBuilder implements IDisposable { private _partArray; private _latest; constructor(...initial: any[]); @@ -19,3 +19,4 @@ export default class StringBuilder implements IDisposable { clear(): void; dispose(): void; } +export default StringBuilder; diff --git a/dist/es6/System/Text/StringBuilder.js b/dist/es6/System/Text/StringBuilder.js index 08f9fbd8..2b4369e2 100644 --- a/dist/es6/System/Text/StringBuilder.js +++ b/dist/es6/System/Text/StringBuilder.js @@ -3,10 +3,9 @@ * .NET Reference: http://referencesource.microsoft.com/#mscorlib/system/text/StringBuilder.cs * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; -import Type from '../Types'; +import { Type } from "../Types"; const VOID0 = void 0; -export default class StringBuilder { +export class StringBuilder { constructor(...initial) { var _ = this; _._latest = null; @@ -69,4 +68,5 @@ export default class StringBuilder { this.clear(); } } +export default StringBuilder; //# sourceMappingURL=StringBuilder.js.map \ No newline at end of file diff --git a/dist/es6/System/Text/StringBuilder.js.map b/dist/es6/System/Text/StringBuilder.js.map index 9f159628..f1c100f6 100644 --- a/dist/es6/System/Text/StringBuilder.js.map +++ b/dist/es6/System/Text/StringBuilder.js.map @@ -1 +1 @@ -{"version":3,"file":"StringBuilder.js","sourceRoot":"","sources":["../../../../source/System/Text/StringBuilder.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,CAAC;OAEN,IAAI,MAAM,UAAU;AAG3B,MAAM,KAAK,GAAO,KAAK,CAAC,CAAC;AAazB;IASC,YAAY,GAAG,OAAa;QAE3B,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC,CAAC,UAAU,GAAG,EAAE,CAAC;QAClB,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;IAEO,YAAY,CAAC,IAAQ;QAE5B,EAAE,CAAA,CAAC,IAAI,KAAG,IAAI,IAAI,IAAI,KAAG,KAAK,CAAC,CAAC,CAAC;YAChC,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;YACjB,MAAM,CAAA,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;gBACpB,KAAK,IAAI,CAAC,MAAM,CAAC;gBACjB,KAAK,IAAI,CAAC,QAAQ;oBACjB,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACvB,KAAK,CAAC;YACR,CAAC;YACD,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;IAEF,CAAC;IAED,WAAW,CAAC,KAAW;QAEtB,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,KAAK,CAAC,OAAO,CAAC,CAAC,IAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,CAAC,CAAC;IACV,CAAC;IAED,MAAM,CAAC,GAAG,KAAW;QAEpB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC;IACb,CAAC;IAED,UAAU,CAAC,GAAG,KAAW;QAExB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC;IACb,CAAC;IAED,WAAW,CAAC,KAAW;QAEtB,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,KAAK,CAAC,OAAO,CACX,CAAC;YAED,EAAE,CAAA,CAAC,CAAC,KAAG,IAAI,IAAI,CAAC,KAAG,KAAK,CAAC,CAAC,CAAC;gBAC1B,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3B,CAAC;QACF,CAAC,CACD,CAAC;QACF,MAAM,CAAC,CAAC,CAAC;IACV,CAAC;IAcD,IAAI,OAAO;QAEV,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,KAAG,CAAC,CAAC;IACnC,CAAC;IAED,QAAQ;QAEP,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC1B,EAAE,CAAA,CAAC,CAAC,MAAM,KAAG,IAAI,CAAC;YACjB,IAAI,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QAEhD,MAAM,CAAC,MAAM,CAAC;IACf,CAAC;IAED,IAAI,CAAC,SAAgB;QAEpB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IAED,KAAK;QAEJ,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,OAAO;QAEN,IAAI,CAAC,KAAK,EAAE,CAAC;IACd,CAAC;AAEF,CAAC;AAAA"} \ No newline at end of file +{"version":3,"file":"StringBuilder.js","sourceRoot":"","sources":["../../../../source/System/Text/StringBuilder.ts"],"names":[],"mappings":"AAAA;;;;GAIG;OAEI,EAAC,IAAI,EAAC,MAAM,UAAU;AAG7B,MAAM,KAAK,GAAO,KAAK,CAAC,CAAC;AAazB;IAQC,YAAY,GAAG,OAAa;QAE3B,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC,CAAC,UAAU,GAAG,EAAE,CAAC;QAClB,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;IAEO,YAAY,CAAC,IAAQ;QAE5B,EAAE,CAAA,CAAC,IAAI,KAAG,IAAI,IAAI,IAAI,KAAG,KAAK,CAAC,CAC/B,CAAC;YACA,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;YACjB,MAAM,CAAA,CAAC,OAAO,IAAI,CAAC,CACnB,CAAC;gBACA,KAAK,IAAI,CAAC,MAAM,CAAC;gBACjB,KAAK,IAAI,CAAC,QAAQ;oBACjB,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACvB,KAAK,CAAC;YACR,CAAC;YACD,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;IAEF,CAAC;IAED,WAAW,CAAC,KAAW;QAEtB,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,KAAK,CAAC,OAAO,CAAC,CAAC,IAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,CAAC,CAAC;IACV,CAAC;IAED,MAAM,CAAC,GAAG,KAAW;QAEpB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC;IACb,CAAC;IAED,UAAU,CAAC,GAAG,KAAW;QAExB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC;IACb,CAAC;IAED,WAAW,CAAC,KAAW;QAEtB,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,KAAK,CAAC,OAAO,CACZ,CAAC;YAEA,EAAE,CAAA,CAAC,CAAC,KAAG,IAAI,IAAI,CAAC,KAAG,KAAK,CAAC,CACzB,CAAC;gBACA,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3B,CAAC;QACF,CAAC,CACD,CAAC;QACF,MAAM,CAAC,CAAC,CAAC;IACV,CAAC;IAcD,IAAI,OAAO;QAEV,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,KAAG,CAAC,CAAC;IACnC,CAAC;IAED,QAAQ;QAEP,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC1B,EAAE,CAAA,CAAC,CAAC,MAAM,KAAG,IAAI,CAAC;YACjB,IAAI,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QAEhD,MAAM,CAAC,MAAM,CAAC;IACf,CAAC;IAED,IAAI,CAAC,SAAgB;QAEpB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IAED,KAAK;QAEJ,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,OAAO;QAEN,IAAI,CAAC,KAAK,EAAE,CAAC;IACd,CAAC;AAEF,CAAC;AAED,eAAe,aAAa,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Text/Utility.js b/dist/es6/System/Text/Utility.js index 36a8d6bb..321e456d 100644 --- a/dist/es6/System/Text/Utility.js +++ b/dist/es6/System/Text/Utility.js @@ -2,7 +2,7 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import Type from "../Types"; +import { Type } from "../Types"; export const EMPTY = ''; export function getHashCode(source) { var hash = 0 | 0; diff --git a/dist/es6/System/Text/Utility.js.map b/dist/es6/System/Text/Utility.js.map index fb99ef76..7b5e6110 100644 --- a/dist/es6/System/Text/Utility.js.map +++ b/dist/es6/System/Text/Utility.js.map @@ -1 +1 @@ -{"version":3,"file":"Utility.js","sourceRoot":"","sources":["../../../../source/System/Text/Utility.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Utility.js","sourceRoot":"","sources":["../../../../source/System/Text/Utility.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6/System/Time/ClockTime.d.ts b/dist/es6/System/Time/ClockTime.d.ts index 332f5ad7..b06f5d2c 100644 --- a/dist/es6/System/Time/ClockTime.d.ts +++ b/dist/es6/System/Time/ClockTime.d.ts @@ -1,13 +1,11 @@ -/// -/// -/// -/// -/// -/// -/// -/// -import TimeQuantity from './TimeQuantity'; -export default class ClockTime extends TimeQuantity implements IClockTime { +/*! + * @author electricessence / https://github.com/electricessence/ + * Originally based upon .NET source but with many additions and improvements. + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +import { TimeQuantity } from "./TimeQuantity"; +import { IClockTime } from "./ITimeStamp"; +export declare class ClockTime extends TimeQuantity implements IClockTime { days: number; hour: number; minute: number; @@ -20,3 +18,4 @@ export default class ClockTime extends TimeQuantity implements IClockTime { static millisecondsFromTime(hours: number, minutes: number, seconds?: number, milliseconds?: number): number; toString(): string; } +export default ClockTime; diff --git a/dist/es6/System/Time/ClockTime.js b/dist/es6/System/Time/ClockTime.js index e9fbbe4e..8ee47ae8 100644 --- a/dist/es6/System/Time/ClockTime.js +++ b/dist/es6/System/Time/ClockTime.js @@ -1,6 +1,10 @@ -'use strict'; -import TimeQuantity from './TimeQuantity'; -export default class ClockTime extends TimeQuantity { +/*! + * @author electricessence / https://github.com/electricessence/ + * Originally based upon .NET source but with many additions and improvements. + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +import { TimeQuantity } from "./TimeQuantity"; +export class ClockTime extends TimeQuantity { constructor(...args) { super(args.length > 1 ? ClockTime.millisecondsFromTime(args[0] || 0, args[1] || 0, args.length > 2 && args[2] || 0, args.length > 3 && args[3] || 0) @@ -53,4 +57,5 @@ function pluralize(value, label) { label += "s"; return label; } +export default ClockTime; //# sourceMappingURL=ClockTime.js.map \ No newline at end of file diff --git a/dist/es6/System/Time/ClockTime.js.map b/dist/es6/System/Time/ClockTime.js.map index 63d31ea7..f5643cc4 100644 --- a/dist/es6/System/Time/ClockTime.js.map +++ b/dist/es6/System/Time/ClockTime.js.map @@ -1 +1 @@ -{"version":3,"file":"ClockTime.js","sourceRoot":"","sources":["../../../../source/System/Time/ClockTime.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ClockTime.js","sourceRoot":"","sources":["../../../../source/System/Time/ClockTime.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6/System/Time/DateTime.d.ts b/dist/es6/System/Time/DateTime.d.ts index f79fabe0..dd375441 100644 --- a/dist/es6/System/Time/DateTime.d.ts +++ b/dist/es6/System/Time/DateTime.d.ts @@ -1,16 +1,15 @@ -/// -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Based on .NET DateTime's interface. * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import ClockTime from './ClockTime'; -import TimeSpan from './TimeSpan'; -declare class DateTime implements ICalendarDate, IDateTime { +import { ICalendarDate, ITimeStamp } from "./ITimeStamp"; +import { TimeSpan } from "./TimeSpan"; +import { ClockTime } from "./ClockTime"; +import { IDateTime } from "./IDateTime"; +import { Gregorian } from "./Calendars"; +import { ITimeQuantity } from "./ITimeQuantity"; +export declare class DateTime implements ICalendarDate, IDateTime { private _value; toJsDate(): Date; private _setJsDate(value); @@ -47,7 +46,7 @@ declare class DateTime implements ICalendarDate, IDateTime { static isLeapYear(year: number): boolean; static daysInMonth(year: number, month: Gregorian.Month): number; } -declare module DateTime { +export declare module DateTime { const enum Kind { Unspecified = 0, Local = 1, diff --git a/dist/es6/System/Time/DateTime.js b/dist/es6/System/Time/DateTime.js index 5988c2a7..7bfcd6ea 100644 --- a/dist/es6/System/Time/DateTime.js +++ b/dist/es6/System/Time/DateTime.js @@ -3,11 +3,10 @@ * Based on .NET DateTime's interface. * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; -import ClockTime from './ClockTime'; -import TimeSpan from './TimeSpan'; -import TimeStamp from './TimeStamp'; -class DateTime { +import { TimeSpan } from "./TimeSpan"; +import { ClockTime } from "./ClockTime"; +import { TimeStamp } from "./TimeStamp"; +export class DateTime { constructor(value = new Date(), kind = 1) { var _ = this; _._kind = kind; diff --git a/dist/es6/System/Time/DateTime.js.map b/dist/es6/System/Time/DateTime.js.map index 8cf2c45c..8be7ef0f 100644 --- a/dist/es6/System/Time/DateTime.js.map +++ b/dist/es6/System/Time/DateTime.js.map @@ -1 +1 @@ -{"version":3,"file":"DateTime.js","sourceRoot":"","sources":["../../../../source/System/Time/DateTime.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AAEH,YAAY,CAAC;OAGN,SAAS,MAAM,aAAa;OAC5B,QAAQ,MAAM,YAAY;OAC1B,SAAS,MAAM,aAAa;AAGnC;IAoBC,YAAY,KAAK,GAAO,IAAI,IAAI,EAAE,EAAE,IAAI,GAAiB,CAAmB;QAE3E,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;QACf,EAAE,CAAA,CAAC,KAAK,YAAY,QAAQ,CAAC;YAC5B,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,EAAE,CAAA,CAAC,KAAK,YAAY,IAAI,CAAC;YAC7B,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACrB,IAAI;YACH,CAAC,CAAC,MAAM,GAAG,KAAK,KAAG,KAAI,CAAC,CAAC,CAAC;kBACvB,IAAI,IAAI,EAAE;kBACV,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IA5BD,QAAQ;QAEP,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IACxC,CAAC;IAEO,UAAU,CAAC,KAAU;QAE5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACzC,CAAC;IAsBD,IAAI,IAAI;QAEP,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;IAED,IAAI,IAAI;QAEP,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;IAClC,CAAC;IAMD,IAAI,KAAK;QAER,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC/B,CAAC;IAMD,IAAI,GAAG;QAEN,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC;IAED,IAAI,SAAS;QAEZ,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IAC7B,CAAC;IAGD,eAAe,CAAC,EAAS;QAExB,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QACb,MAAM,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC;IAED,UAAU,CAAC,OAAc;QAExB,OAAO,GAAG,OAAO,IAAI,CAAC,CAAC;QACvB,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,GAAC,IAA+B,CAAC,CAAC;IACtE,CAAC;IAED,UAAU,CAAC,OAAc;QAExB,OAAO,GAAG,OAAO,IAAI,CAAC,CAAC;QACvB,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,GAAC,KAA+B,CAAC,CAAC;IACtE,CAAC;IAED,QAAQ,CAAC,KAAY;QAEpB,KAAK,GAAG,KAAK,IAAI,CAAC,CAAC;QACnB,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,GAAC,OAA6B,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,CAAC,IAAW;QAElB,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC;QACjB,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,GAAC,QAA4B,CAAC,CAAC;IAChE,CAAC;IAED,SAAS,CAAC,MAAa;QAEtB,MAAM,GAAG,MAAM,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACxB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAC,MAAM,CAAC,CAAC;QAChC,MAAM,CAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,QAAQ,CAAC,KAAY;QAEpB,KAAK,GAAG,KAAK,IAAI,CAAC,CAAC;QACnB,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACxB,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,EAAE,GAAC,KAAK,CAAC,CAAC;QACrC,MAAM,CAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAQD,GAAG,CAAC,IAAkB;QAErB,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAC1D,CAAC;IAOD,QAAQ,CAAC,IAAkB;QAE1B,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAC3D,CAAC;IAOD,eAAe,CAAC,QAAsB;QAErC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;IAKD,IAAI,IAAI;QAEP,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,MAAM,CAAC,IAAI,QAAQ,CAClB,IAAI,IAAI,CACP,CAAC,CAAC,IAAI,EACN,CAAC,CAAC,KAAK,EACP,CAAC,CAAC,GAAG,CACL,EACC,CAAC,CAAC,KAAK,CACT,CAAC;IACH,CAAC;IAQD,IAAI,SAAS;QAEZ,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;QAC1B,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,CACN,CAAC;YACA,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YACpB,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,SAAS,CAC1B,CAAC,CAAC,QAAQ,EAAE,EACZ,CAAC,CAAC,UAAU,EAAE,EACd,CAAC,CAAC,UAAU,EAAE,EACd,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QACvB,CAAC;QACD,MAAM,CAAC,CAAC,CAAC;IACV,CAAC;IAKD,WAAW;QACV,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAMD,WAAW,GAAG;QAEb,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;IACvB,CAAC;IAMD,IAAI,eAAe;QAElB,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,EAAE,CAAA,CAAC,CAAC,CAAC,KAAK,IAAE,CAAmB,CAAC;YAC/B,MAAM,CAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QAEjC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;QACjB,MAAM,CAAC,IAAI,QAAQ,CAClB,IAAI,IAAI,CACP,CAAC,CAAC,cAAc,EAAE,EAClB,CAAC,CAAC,WAAW,EAAE,EACf,CAAC,CAAC,UAAU,EAAE,EACd,CAAC,CAAC,WAAW,EAAE,EACf,CAAC,CAAC,aAAa,EAAE,EACjB,CAAC,CAAC,aAAa,EAAE,EACjB,CAAC,CAAC,kBAAkB,EAAE,CACtB,EACD,CAAiB,CACjB,CAAC;IACH,CAAC;IAMD,WAAW,KAAK;QAEf,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;IAC1B,CAAC;IAMD,WAAW,QAAQ;QAElB,IAAI,KAAK,GAAY,QAAQ,CAAC,KAAK,CAAC;QACpC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAOD,OAAO,OAAO,CAAC,KAAmB,EAAE,IAAkB;QAErD,IAAI,CAAC,GAAQ,KAAK,YAAY,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAS,KAAK,EAC/D,CAAC,GAAQ,IAAI,YAAY,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAS,IAAI,CAAC;QAEjE,MAAM,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IAChD,CAAC;IAQD,OAAO,UAAU,CAAC,IAAW;QAC5B,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;IACpE,CAAC;IAQD,OAAO,WAAW,CAAC,IAAW,EAAE,KAAqB;QAEpD,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,EAAC,KAAK,GAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC7C,CAAC;AAGF,CAAC;AAYD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAExB,eAAe,QAAQ,CAAC"} \ No newline at end of file +{"version":3,"file":"DateTime.js","sourceRoot":"","sources":["../../../../source/System/Time/DateTime.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6/System/Time/HowMany.d.ts b/dist/es6/System/Time/HowMany.d.ts deleted file mode 100644 index 314a22e2..00000000 --- a/dist/es6/System/Time/HowMany.d.ts +++ /dev/null @@ -1,41 +0,0 @@ -/*! - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -declare module HowMany { - module Hours { - const enum Per { - Day = 24, - } - } - module Minutes { - const enum Per { - Hour = 60, - Day = 1440, - } - } - module Seconds { - const enum Per { - Minute = 60, - Hour = 3600, - Day = 86400, - } - } - module Milliseconds { - const enum Per { - Second = 1000, - Minute = 60000, - Hour = 3600000, - Day = 86400000, - } - } - module Ticks { - const enum Per { - Millisecond = 10000, - Second = 10000000, - Minute = 600000000, - Hour = 36000000000, - Day = 864000000000, - } - } -} diff --git a/dist/es6/System/Time/HowMany.js b/dist/es6/System/Time/HowMany.js deleted file mode 100644 index 0ad64868..00000000 --- a/dist/es6/System/Time/HowMany.js +++ /dev/null @@ -1,5 +0,0 @@ -/*! - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -//# sourceMappingURL=HowMany.js.map \ No newline at end of file diff --git a/dist/es6/System/Time/HowMany.js.map b/dist/es6/System/Time/HowMany.js.map deleted file mode 100644 index 82128061..00000000 --- a/dist/es6/System/Time/HowMany.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"HowMany.js","sourceRoot":"","sources":["../../../../source/System/Time/HowMany.ts"],"names":[],"mappings":"AAAA;;;GAGG"} \ No newline at end of file diff --git a/dist/es6/System/Time/TimeQuantity.d.ts b/dist/es6/System/Time/TimeQuantity.d.ts index 8a12d190..c6d68ba4 100644 --- a/dist/es6/System/Time/TimeQuantity.d.ts +++ b/dist/es6/System/Time/TimeQuantity.d.ts @@ -1,13 +1,13 @@ -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import TimeUnit from './TimeUnit'; -export default class TimeQuantity implements IEquatable, IComparable, ITimeQuantity { +import { TimeUnit } from "./TimeUnit"; +import { IEquatable } from "../IEquatable"; +import { IComparable } from "../IComparable"; +import { ITimeQuantity } from "./ITimeQuantity"; +import { ITimeMeasurement } from "./ITimeMeasurement"; +export declare class TimeQuantity implements IEquatable, IComparable, ITimeQuantity { protected _quantity: number; constructor(_quantity?: number); getTotalMilliseconds(): number; @@ -18,3 +18,4 @@ export default class TimeQuantity implements IEquatable, ICompara total: ITimeMeasurement; getTotal(units: TimeUnit): number; } +export default TimeQuantity; diff --git a/dist/es6/System/Time/TimeQuantity.js b/dist/es6/System/Time/TimeQuantity.js index e67753a5..a4d5f763 100644 --- a/dist/es6/System/Time/TimeQuantity.js +++ b/dist/es6/System/Time/TimeQuantity.js @@ -2,10 +2,9 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; -import { areEqual, compare } from '../Compare'; -import TimeUnit from './TimeUnit'; -export default class TimeQuantity { +import { areEqual, compare } from "../Compare"; +import { TimeUnit } from "./TimeUnit"; +export class TimeQuantity { constructor(_quantity = 0) { this._quantity = _quantity; } @@ -40,4 +39,5 @@ export default class TimeQuantity { return TimeUnit.fromMilliseconds(this.getTotalMilliseconds(), units); } } +export default TimeQuantity; //# sourceMappingURL=TimeQuantity.js.map \ No newline at end of file diff --git a/dist/es6/System/Time/TimeQuantity.js.map b/dist/es6/System/Time/TimeQuantity.js.map index c9bcede1..94f2c923 100644 --- a/dist/es6/System/Time/TimeQuantity.js.map +++ b/dist/es6/System/Time/TimeQuantity.js.map @@ -1 +1 @@ -{"version":3,"file":"TimeQuantity.js","sourceRoot":"","sources":["../../../../source/System/Time/TimeQuantity.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,YAAY,CAAC;OAEN,EAAC,QAAQ,EAAC,OAAO,EAAC,MAAM,YAAY;OACpC,QAAQ,MAAM,YAAY;AAKjC;IAIC,YAAsB,SAAS,GAAU,CAAC;QAApB,cAAS,GAAT,SAAS,CAAW;IAE1C,CAAC;IAGD,oBAAoB;QAEnB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;IACvB,CAAC;IAMD,IAAI,SAAS;QAEZ,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC,CAAC;IAChD,CAAC;IAOD,MAAM,CAAC,KAAmB;QAEzB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAChG,CAAC;IAOD,SAAS,CAAC,KAAmB;QAE5B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC/F,CAAC;IAUD,IAAI,KAAK;QAER,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QACpB,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,CACN,CAAC;YACA,IAAI,EAAE,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAErC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAqB,MAAM,CAAC,MAAM,CAAC;gBACjD,KAAK,EAAE,EAAE,GAAC,KAA6B;gBACvC,YAAY,EAAE,EAAE;gBAChB,OAAO,EAAE,EAAE,GAAC,IAA+B;gBAC3C,OAAO,EAAE,EAAE,GAAC,KAA+B;gBAC3C,KAAK,EAAE,EAAE,GAAC,OAA6B;gBACvC,IAAI,EAAE,EAAE,GAAC,QAA4B;aACrC,CAAC,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,CAAC,CAAC;IACV,CAAC;IAOD,QAAQ,CAAC,KAAc;QAEtB,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,KAAK,CAAC,CAAC;IACtE,CAAC;AACF,CAAC;AAAA"} \ No newline at end of file +{"version":3,"file":"TimeQuantity.js","sourceRoot":"","sources":["../../../../source/System/Time/TimeQuantity.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAGI,EAAC,QAAQ,EAAE,OAAO,EAAC,MAAM,YAAY;OACrC,EAAC,QAAQ,EAAC,MAAM,YAAY;AAUnC;IAGC,YAAsB,SAAS,GAAU,CAAC;QAApB,cAAS,GAAT,SAAS,CAAW;IAE1C,CAAC;IAGD,oBAAoB;QAEnB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;IACvB,CAAC;IAMD,IAAI,SAAS;QAEZ,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC,CAAC;IAChD,CAAC;IAOD,MAAM,CAAC,KAAmB;QAEzB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAChG,CAAC;IAOD,SAAS,CAAC,KAAmB;QAE5B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC/F,CAAC;IAUD,IAAI,KAAK;QAER,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QACpB,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,CACN,CAAC;YACA,IAAI,EAAE,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAErC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAqB,MAAM,CAAC,MAAM,CAAC;gBACjD,KAAK,EAAE,EAAE,GAAC,KAAqB;gBAC/B,YAAY,EAAE,EAAE;gBAChB,OAAO,EAAE,EAAE,GAAC,IAAuB;gBACnC,OAAO,EAAE,EAAE,GAAC,KAAuB;gBACnC,KAAK,EAAE,EAAE,GAAC,OAAqB;gBAC/B,IAAI,EAAE,EAAE,GAAC,QAAoB;aAC7B,CAAC,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,CAAC,CAAC;IACV,CAAC;IAOD,QAAQ,CAAC,KAAc;QAEtB,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,KAAK,CAAC,CAAC;IACtE,CAAC;AACF,CAAC;AAED,eAAe,YAAY,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Time/TimeSpan.d.ts b/dist/es6/System/Time/TimeSpan.d.ts index 8ca685b6..03f0dba3 100644 --- a/dist/es6/System/Time/TimeSpan.d.ts +++ b/dist/es6/System/Time/TimeSpan.d.ts @@ -1,16 +1,14 @@ -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Originally based upon .NET source but with many additions and improvements. * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import TimeUnit from './TimeUnit'; -import ClockTime from './ClockTime'; -import TimeQuantity from './TimeQuantity'; -export default class TimeSpan extends TimeQuantity implements ITimeMeasurement { +import { TimeUnit } from "./TimeUnit"; +import { ClockTime } from "./ClockTime"; +import { TimeQuantity } from "./TimeQuantity"; +import { ITimeMeasurement } from "./ITimeMeasurement"; +import { ITimeQuantity } from "./ITimeQuantity"; +export declare class TimeSpan extends TimeQuantity implements ITimeMeasurement { ticks: number; milliseconds: number; seconds: number; @@ -32,3 +30,4 @@ export default class TimeSpan extends TimeQuantity implements ITimeMeasurement { static fromTicks(value: number): TimeSpan; static zero: TimeSpan; } +export default TimeSpan; diff --git a/dist/es6/System/Time/TimeSpan.js b/dist/es6/System/Time/TimeSpan.js index b49b83dd..2e0e816f 100644 --- a/dist/es6/System/Time/TimeSpan.js +++ b/dist/es6/System/Time/TimeSpan.js @@ -3,12 +3,11 @@ * Originally based upon .NET source but with many additions and improvements. * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; -import Type from '../Types'; -import TimeUnit from './TimeUnit'; -import ClockTime from './ClockTime'; -import TimeQuantity from './TimeQuantity'; -export default class TimeSpan extends TimeQuantity { +import { Type } from "../Types"; +import { TimeUnit } from "./TimeUnit"; +import { ClockTime } from "./ClockTime"; +import { TimeQuantity } from "./TimeQuantity"; +export class TimeSpan extends TimeQuantity { constructor(value, units = TimeUnit.Milliseconds) { var ms = TimeUnit.toMilliseconds(value, units); super(ms); @@ -64,4 +63,5 @@ export default class TimeSpan extends TimeQuantity { } } var timeSpanZero; +export default TimeSpan; //# sourceMappingURL=TimeSpan.js.map \ No newline at end of file diff --git a/dist/es6/System/Time/TimeSpan.js.map b/dist/es6/System/Time/TimeSpan.js.map index b934fd5d..8a24bb91 100644 --- a/dist/es6/System/Time/TimeSpan.js.map +++ b/dist/es6/System/Time/TimeSpan.js.map @@ -1 +1 @@ -{"version":3,"file":"TimeSpan.js","sourceRoot":"","sources":["../../../../source/System/Time/TimeSpan.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"TimeSpan.js","sourceRoot":"","sources":["../../../../source/System/Time/TimeSpan.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6/System/Time/TimeStamp.d.ts b/dist/es6/System/Time/TimeStamp.d.ts index f2ffa7e7..5e85f277 100644 --- a/dist/es6/System/Time/TimeStamp.d.ts +++ b/dist/es6/System/Time/TimeStamp.d.ts @@ -1,12 +1,11 @@ -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -export default class TimeStamp implements ITimeStamp, IDateTime { +import { ITimeStamp } from "./ITimeStamp"; +import { IDateTime } from "./IDateTime"; +import { Gregorian } from "./Calendars"; +export declare class TimeStamp implements ITimeStamp, IDateTime { year: number; month: Gregorian.Month; day: number; @@ -19,3 +18,4 @@ export default class TimeStamp implements ITimeStamp, IDateTime { toJsDate(): Date; static from(d: Date | IDateTime): TimeStamp; } +export default TimeStamp; diff --git a/dist/es6/System/Time/TimeStamp.js b/dist/es6/System/Time/TimeStamp.js index 11986955..10a1e350 100644 --- a/dist/es6/System/Time/TimeStamp.js +++ b/dist/es6/System/Time/TimeStamp.js @@ -2,9 +2,8 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; -import Type from '../Types'; -export default class TimeStamp { +import { Type } from "../Types"; +export class TimeStamp { constructor(year, month, day = 1, hour = 0, minute = 0, second = 0, millisecond = 0, tick = 0) { this.year = year; this.month = month; @@ -31,4 +30,5 @@ export default class TimeStamp { } } } +export default TimeStamp; //# sourceMappingURL=TimeStamp.js.map \ No newline at end of file diff --git a/dist/es6/System/Time/TimeStamp.js.map b/dist/es6/System/Time/TimeStamp.js.map index 426f3992..fe76a478 100644 --- a/dist/es6/System/Time/TimeStamp.js.map +++ b/dist/es6/System/Time/TimeStamp.js.map @@ -1 +1 @@ -{"version":3,"file":"TimeStamp.js","sourceRoot":"","sources":["../../../../source/System/Time/TimeStamp.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,YAAY,CAAC;OAEN,IAAI,MAAM,UAAU;AAK3B;IAIC,YACQ,IAAW,EACX,KAAqB,EACrB,GAAG,GAAU,CAAC,EACd,IAAI,GAAU,CAAC,EACf,MAAM,GAAU,CAAC,EACjB,MAAM,GAAU,CAAC,EACjB,WAAW,GAAU,CAAC,EACtB,IAAI,GAAU,CAAC;QAPf,SAAI,GAAJ,IAAI,CAAO;QACX,UAAK,GAAL,KAAK,CAAgB;QACrB,QAAG,GAAH,GAAG,CAAW;QACd,SAAI,GAAJ,IAAI,CAAW;QACf,WAAM,GAAN,MAAM,CAAW;QACjB,WAAM,GAAN,MAAM,CAAW;QACjB,gBAAW,GAAX,WAAW,CAAW;QACtB,SAAI,GAAJ,IAAI,CAAW;QAKtB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IAED,QAAQ;QAEP,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,GAAC,KAA6B,CAAC,CAAC;IAC3H,CAAC;IAED,OAAO,IAAI,CAAC,CAAgB;QAE3B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,EAAC,UAAU,CAAC,CAAC;YACxD,CAAC,GAAe,CAAE,CAAC,QAAQ,EAAE,CAAC;QAC/B,EAAE,CAAA,CAAC,CAAC,YAAY,IAAI,CAAC,CACrB,CAAC;YACA,MAAM,CAAC,IAAI,SAAS,CACnB,CAAC,CAAC,WAAW,EAAE,EACf,CAAC,CAAC,QAAQ,EAAE,EACZ,CAAC,CAAC,OAAO,EAAE,EACX,CAAC,CAAC,QAAQ,EAAE,EACZ,CAAC,CAAC,UAAU,EAAE,EACd,CAAC,CAAC,UAAU,EAAE,EACd,CAAC,CAAC,eAAe,EAAE,CACnB,CAAC;QACH,CAAC;QACD,IAAI,CACJ,CAAC;YACA,MAAM,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACnC,CAAC;IACF,CAAC;AACF,CAAC;AAAA"} \ No newline at end of file +{"version":3,"file":"TimeStamp.js","sourceRoot":"","sources":["../../../../source/System/Time/TimeStamp.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAEI,EAAC,IAAI,EAAC,MAAM,UAAU;AAS7B;IAGC,YACQ,IAAW,EACX,KAAqB,EACrB,GAAG,GAAU,CAAC,EACd,IAAI,GAAU,CAAC,EACf,MAAM,GAAU,CAAC,EACjB,MAAM,GAAU,CAAC,EACjB,WAAW,GAAU,CAAC,EACtB,IAAI,GAAU,CAAC;QAPf,SAAI,GAAJ,IAAI,CAAO;QACX,UAAK,GAAL,KAAK,CAAgB;QACrB,QAAG,GAAH,GAAG,CAAW;QACd,SAAI,GAAJ,IAAI,CAAW;QACf,WAAM,GAAN,MAAM,CAAW;QACjB,WAAM,GAAN,MAAM,CAAW;QACjB,gBAAW,GAAX,WAAW,CAAW;QACtB,SAAI,GAAJ,IAAI,CAAW;QAKtB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IAED,QAAQ;QAEP,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,GAAC,KAAqB,CAAC,CAAC;IACnH,CAAC;IAED,OAAO,IAAI,CAAC,CAAgB;QAE3B,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;YACxD,CAAC,GAAe,CAAE,CAAC,QAAQ,EAAE,CAAC;QAC/B,EAAE,CAAA,CAAC,CAAC,YAAY,IAAI,CAAC,CACrB,CAAC;YACA,MAAM,CAAC,IAAI,SAAS,CACnB,CAAC,CAAC,WAAW,EAAE,EACf,CAAC,CAAC,QAAQ,EAAE,EACZ,CAAC,CAAC,OAAO,EAAE,EACX,CAAC,CAAC,QAAQ,EAAE,EACZ,CAAC,CAAC,UAAU,EAAE,EACd,CAAC,CAAC,UAAU,EAAE,EACd,CAAC,CAAC,eAAe,EAAE,CACnB,CAAC;QACH,CAAC;QACD,IAAI,CACJ,CAAC;YACA,MAAM,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACnC,CAAC;IACF,CAAC;AACF,CAAC;AAED,eAAe,SAAS,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Time/TimeUnit.d.ts b/dist/es6/System/Time/TimeUnit.d.ts index 17ef643e..a312eb74 100644 --- a/dist/es6/System/Time/TimeUnit.d.ts +++ b/dist/es6/System/Time/TimeUnit.d.ts @@ -1,11 +1,10 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Originally based upon .NET source but with many additions and improvements. * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -declare enum TimeUnit { +import { ITimeQuantity } from "./ITimeQuantity"; +export declare enum TimeUnit { Ticks = 0, Milliseconds = 1, Seconds = 2, @@ -13,7 +12,7 @@ declare enum TimeUnit { Hours = 4, Days = 5, } -declare module TimeUnit { +export declare module TimeUnit { function toMilliseconds(value: number, units?: TimeUnit): number; function fromMilliseconds(ms: number, units: TimeUnit): number; function from(quantity: ITimeQuantity, unit: TimeUnit): number; diff --git a/dist/es6/System/Time/TimeUnit.js b/dist/es6/System/Time/TimeUnit.js index 20ed485b..1d6445fb 100644 --- a/dist/es6/System/Time/TimeUnit.js +++ b/dist/es6/System/Time/TimeUnit.js @@ -3,7 +3,7 @@ * Originally based upon .NET source but with many additions and improvements. * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var TimeUnit; +export var TimeUnit; (function (TimeUnit) { TimeUnit[TimeUnit["Ticks"] = 0] = "Ticks"; TimeUnit[TimeUnit["Milliseconds"] = 1] = "Milliseconds"; @@ -12,7 +12,7 @@ var TimeUnit; TimeUnit[TimeUnit["Hours"] = 4] = "Hours"; TimeUnit[TimeUnit["Days"] = 5] = "Days"; })(TimeUnit || (TimeUnit = {})); -var TimeUnit; +export var TimeUnit; (function (TimeUnit) { function toMilliseconds(value, units = TimeUnit.Milliseconds) { switch (units) { diff --git a/dist/es6/System/Time/TimeUnit.js.map b/dist/es6/System/Time/TimeUnit.js.map index 6ff5e535..a2bfc400 100644 --- a/dist/es6/System/Time/TimeUnit.js.map +++ b/dist/es6/System/Time/TimeUnit.js.map @@ -1 +1 @@ -{"version":3,"file":"TimeUnit.js","sourceRoot":"","sources":["../../../../source/System/Time/TimeUnit.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,IAAK,QAQJ;AARD,WAAK,QAAQ;IAEZ,yCAAK,CAAA;IACL,uDAAY,CAAA;IACZ,6CAAO,CAAA;IACP,6CAAO,CAAA;IACP,yCAAK,CAAA;IACL,uCAAI,CAAA;AACL,CAAC,EARI,QAAQ,KAAR,QAAQ,QAQZ;AAED,IAAO,QAAQ,CA+Dd;AA/DD,WAAO,QAAQ,EACf,CAAC;IAEA,wBACC,KAAY,EACZ,KAAK,GAAY,QAAQ,CAAC,YAAY;QAGtC,MAAM,CAAA,CAAC,KAAK,CAAC,CACb,CAAC;YACA,KAAK,QAAQ,CAAC,IAAI;gBACjB,KAAK,IAAI,EAAqB,CAAC;YAChC,KAAK,QAAQ,CAAC,KAAK;gBAClB,KAAK,IAAI,EAAwB,CAAC;YACnC,KAAK,QAAQ,CAAC,OAAO;gBACpB,KAAK,IAAI,EAA0B,CAAC;YACrC,KAAK,QAAQ,CAAC,OAAO;gBACpB,KAAK,IAAI,IAA+B,CAAC;YAC1C,KAAK,QAAQ,CAAC,YAAY;gBACzB,MAAM,CAAC,KAAK,CAAC;YACd,KAAK,QAAQ,CAAC,KAAK;gBAClB,MAAM,CAAC,KAAK,GAAC,KAA6B,CAAC;YAC5C;gBACC,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;IACF,CAAC;IAtBe,uBAAc,iBAsB7B,CAAA;IAED,0BACC,EAAS,EACT,KAAc;QAEd,MAAM,CAAA,CAAC,KAAK,CAAC,CACb,CAAC;YACA,KAAK,QAAQ,CAAC,IAAI;gBACjB,MAAM,CAAC,EAAE,GAAC,QAA4B,CAAC;YACxC,KAAK,QAAQ,CAAC,KAAK;gBAClB,MAAM,CAAC,EAAE,GAAC,OAA6B,CAAC;YACzC,KAAK,QAAQ,CAAC,OAAO;gBACpB,MAAM,CAAC,EAAE,GAAC,KAA+B,CAAC;YAC3C,KAAK,QAAQ,CAAC,OAAO;gBACpB,MAAM,CAAC,EAAE,GAAC,IAA+B,CAAC;YAC3C,KAAK,QAAQ,CAAC,YAAY;gBACzB,MAAM,CAAC,EAAE,CAAC;YACX,KAAK,QAAQ,CAAC,KAAK;gBAClB,MAAM,CAAC,EAAE,GAAC,KAA6B,CAAC;YACzC;gBACC,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;IACF,CAAC;IArBe,yBAAgB,mBAqB/B,CAAA;IAED,cAAqB,QAAsB,EAAE,IAAa;QACzD,MAAM,CAAC,QAAQ,IAAI,gBAAgB,CAAC,QAAQ,CAAC,oBAAoB,EAAE,EAAC,IAAI,CAAC,CAAC;IAC3E,CAAC;IAFe,aAAI,OAEnB,CAAA;IAGD,qBAA4B,IAAa;QAExC,EAAE,CAAA,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,GAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,GAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAG,IAAI,CAAC;YACtF,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAEtC,MAAM,CAAC,IAAI,CAAC;IACb,CAAC;IANe,oBAAW,cAM1B,CAAA;AAEF,CAAC,EA/DM,QAAQ,KAAR,QAAQ,QA+Dd;AAED,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAExB,eAAe,QAAQ,CAAC"} \ No newline at end of file +{"version":3,"file":"TimeUnit.js","sourceRoot":"","sources":["../../../../source/System/Time/TimeUnit.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,WAAY,QAQX;AARD,WAAY,QAAQ;IAEnB,yCAAK,CAAA;IACL,uDAAY,CAAA;IACZ,6CAAO,CAAA;IACP,6CAAO,CAAA;IACP,yCAAK,CAAA;IACL,uCAAI,CAAA;AACL,CAAC,EARW,QAAQ,KAAR,QAAQ,QAQnB;AAED,WAAc,QAAQ,CAgErB;AAhED,WAAc,QAAQ,EACtB,CAAC;IAEA,wBACC,KAAY,EACZ,KAAK,GAAY,QAAQ,CAAC,YAAY;QAGtC,MAAM,CAAA,CAAC,KAAK,CAAC,CACb,CAAC;YACA,KAAK,QAAQ,CAAC,IAAI;gBACjB,KAAK,IAAI,EAAa,CAAC;YACxB,KAAK,QAAQ,CAAC,KAAK;gBAClB,KAAK,IAAI,EAAgB,CAAC;YAC3B,KAAK,QAAQ,CAAC,OAAO;gBACpB,KAAK,IAAI,EAAkB,CAAC;YAC7B,KAAK,QAAQ,CAAC,OAAO;gBACpB,KAAK,IAAI,IAAuB,CAAC;YAClC,KAAK,QAAQ,CAAC,YAAY;gBACzB,MAAM,CAAC,KAAK,CAAC;YACd,KAAK,QAAQ,CAAC,KAAK;gBAClB,MAAM,CAAC,KAAK,GAAC,KAAqB,CAAC;YACpC;gBACC,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;IACF,CAAC;IAtBe,uBAAc,iBAsB7B,CAAA;IAED,0BACC,EAAS,EACT,KAAc;QAEd,MAAM,CAAA,CAAC,KAAK,CAAC,CACb,CAAC;YACA,KAAK,QAAQ,CAAC,IAAI;gBACjB,MAAM,CAAC,EAAE,GAAC,QAAoB,CAAC;YAChC,KAAK,QAAQ,CAAC,KAAK;gBAClB,MAAM,CAAC,EAAE,GAAC,OAAqB,CAAC;YACjC,KAAK,QAAQ,CAAC,OAAO;gBACpB,MAAM,CAAC,EAAE,GAAC,KAAuB,CAAC;YACnC,KAAK,QAAQ,CAAC,OAAO;gBACpB,MAAM,CAAC,EAAE,GAAC,IAAuB,CAAC;YACnC,KAAK,QAAQ,CAAC,YAAY;gBACzB,MAAM,CAAC,EAAE,CAAC;YACX,KAAK,QAAQ,CAAC,KAAK;gBAClB,MAAM,CAAC,EAAE,GAAC,KAAqB,CAAC;YACjC;gBACC,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;IACF,CAAC;IArBe,yBAAgB,mBAqB/B,CAAA;IAED,cAAqB,QAAsB,EAAE,IAAa;QAEzD,MAAM,CAAC,QAAQ,IAAI,gBAAgB,CAAC,QAAQ,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;IAC5E,CAAC;IAHe,aAAI,OAGnB,CAAA;IAGD,qBAA4B,IAAa;QAExC,EAAE,CAAA,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,GAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,GAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAG,IAAI,CAAC;YACtF,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAEtC,MAAM,CAAC,IAAI,CAAC;IACb,CAAC;IANe,oBAAW,cAM1B,CAAA;AAEF,CAAC,EAhEa,QAAQ,KAAR,QAAQ,QAgErB;AAED,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAExB,eAAe,QAAQ,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Time/TimeUnitValue.d.ts b/dist/es6/System/Time/TimeUnitValue.d.ts index 782f6cd6..926b9f87 100644 --- a/dist/es6/System/Time/TimeUnitValue.d.ts +++ b/dist/es6/System/Time/TimeUnitValue.d.ts @@ -1,13 +1,10 @@ -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import TimeUnit from './TimeUnit'; -import TimeQuantity from './TimeQuantity'; +import { TimeUnit } from "./TimeUnit"; +import { TimeQuantity } from "./TimeQuantity"; +import { ITimeQuantity } from "./ITimeQuantity"; export default class TimeUnitValue extends TimeQuantity { private _units; constructor(value: number | ITimeQuantity, _units: TimeUnit); diff --git a/dist/es6/System/Time/TimeUnitValue.js b/dist/es6/System/Time/TimeUnitValue.js index 73ed0ddf..0556a4fe 100644 --- a/dist/es6/System/Time/TimeUnitValue.js +++ b/dist/es6/System/Time/TimeUnitValue.js @@ -2,9 +2,8 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; -import TimeUnit from './TimeUnit'; -import TimeQuantity from './TimeQuantity'; +import { TimeUnit } from "./TimeUnit"; +import { TimeQuantity } from "./TimeQuantity"; export default class TimeUnitValue extends TimeQuantity { constructor(value, _units) { super(typeof (value) == 'number' diff --git a/dist/es6/System/Time/TimeUnitValue.js.map b/dist/es6/System/Time/TimeUnitValue.js.map index aa22456d..e0e10793 100644 --- a/dist/es6/System/Time/TimeUnitValue.js.map +++ b/dist/es6/System/Time/TimeUnitValue.js.map @@ -1 +1 @@ -{"version":3,"file":"TimeUnitValue.js","sourceRoot":"","sources":["../../../../source/System/Time/TimeUnitValue.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,YAAY,CAAC;OAGN,QAAQ,MAAM,YAAY;OAC1B,YAAY,MAAM,gBAAgB;AAKzC,2CAC4B,YAAY;IAGvC,YAAY,KAA0B,EAAU,MAAe;QAE9D,MAAM,OAAM,CAAC,KAAK,CAAC,IAAE,QAAQ;cAClB,KAAK;cACb,mBAAmB,CAAgB,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;QAJP,WAAM,GAAN,MAAM,CAAS;QAK9D,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,KAAK;QAER,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;IACvB,CAAC;IAED,IAAI,KAAK,CAAC,CAAQ;QAEjB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;IACpB,CAAC;IAED,oBAAoB;QAEnB,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC;IAGD,IAAI,KAAK;QAER,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;IAED,EAAE,CAAC,KAAK,GAAY,IAAI,CAAC,KAAK;QAE7B,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,IAAI,CAAC,KAA0B,EAAE,KAAK,GAAY,QAAQ,CAAC,YAAY;QAE7E,MAAM,CAAC,IAAI,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;AAEF,CAAC;AAED,6BAA6B,CAAe,EAAE,KAAc;IAE3D,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,oBAAoB,EAAE,EAAE,KAAK,CAAC,CAAC;AACnE,CAAC"} \ No newline at end of file +{"version":3,"file":"TimeUnitValue.js","sourceRoot":"","sources":["../../../../source/System/Time/TimeUnitValue.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAGI,EAAC,QAAQ,EAAC,MAAM,YAAY;OAC5B,EAAC,YAAY,EAAC,MAAM,gBAAgB;AAM3C,2CAC4B,YAAY;IAGvC,YAAY,KAA0B,EAAU,MAAe;QAE9D,MAAM,OAAM,CAAC,KAAK,CAAC,IAAE,QAAQ;cAClB,KAAK;cACb,mBAAmB,CAAgB,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;QAJP,WAAM,GAAN,MAAM,CAAS;QAK9D,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,KAAK;QAER,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;IACvB,CAAC;IAED,IAAI,KAAK,CAAC,CAAQ;QAEjB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;IACpB,CAAC;IAED,oBAAoB;QAEnB,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC;IAGD,IAAI,KAAK;QAER,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;IAED,EAAE,CAAC,KAAK,GAAY,IAAI,CAAC,KAAK;QAE7B,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,IAAI,CAAC,KAA0B,EAAE,KAAK,GAAY,QAAQ,CAAC,YAAY;QAE7E,MAAM,CAAC,IAAI,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;AAEF,CAAC;AAED,6BAA6B,CAAe,EAAE,KAAc;IAE3D,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,oBAAoB,EAAE,EAAE,KAAK,CAAC,CAAC;AACnE,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Timers/Timer.d.ts b/dist/es6/System/Timers/Timer.d.ts index 00797473..61035b51 100644 --- a/dist/es6/System/Timers/Timer.d.ts +++ b/dist/es6/System/Timers/Timer.d.ts @@ -1,10 +1,10 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import ObservableBase from "./../Observable/ObservableBase"; +import { ICancellable } from "../Tasks/ICancellable"; +import { ObservableBase } from "../Observable/ObservableBase"; +import { ITimer } from "./ITimer"; export default class Timer extends ObservableBase implements ITimer, ICancellable { private _interval; private _maxCount; diff --git a/dist/es6/System/Timers/Timer.js b/dist/es6/System/Timers/Timer.js index f94032f1..c3464cb5 100644 --- a/dist/es6/System/Timers/Timer.js +++ b/dist/es6/System/Timers/Timer.js @@ -2,7 +2,7 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import ObservableBase from "./../Observable/ObservableBase"; +import { ObservableBase } from "../Observable/ObservableBase"; export default class Timer extends ObservableBase { constructor(_interval, _maxCount = Infinity, _initialDelay = _interval) { super(); diff --git a/dist/es6/System/Timers/Timer.js.map b/dist/es6/System/Timers/Timer.js.map index 8b1333da..4f45ccb7 100644 --- a/dist/es6/System/Timers/Timer.js.map +++ b/dist/es6/System/Timers/Timer.js.map @@ -1 +1 @@ -{"version":3,"file":"Timer.js","sourceRoot":"","sources":["../../../../source/System/Timers/Timer.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAII,cAAc,MAAM,gCAAgC;AAE3D,mCAAmC,cAAc;IAMhD,YACS,SAAgB,EAChB,SAAS,GAAU,QAAQ,EAC3B,aAAa,GAAG,SAAS;QAEjC,OAAO,CAAC;QAJA,cAAS,GAAT,SAAS,CAAO;QAChB,cAAS,GAAT,SAAS,CAAkB;QAC3B,kBAAa,GAAb,aAAa,CAAY;QAL1B,WAAM,GAAU,CAAC,CAAC;QASzB,EAAE,CAAA,CAAC,SAAS,KAAG,IAAI,IAAI,SAAS,KAAI,KAAI,CAAC,CAAC,CAAC,CAAC;YAC3C,MAAM,oCAAoC,CAAC;QAC5C,EAAE,CAAA,CAAC,SAAS,GAAC,CAAC,CAAC;YACd,MAAM,gCAAgC,CAAC;IACzC,CAAC;IAED,OAAO,QAAQ,CACd,mBAA0B,EAC1B,QAAQ,GAAU,QAAQ,EAC1B,YAAY,GAAU,mBAAmB;QAEzC,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,mBAAmB,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC;QACtE,CAAC,CAAC,KAAK,EAAE,CAAC;QACV,MAAM,CAAC,CAAC,CAAC;IACV,CAAC;IAED,IAAI,SAAS;QAEZ,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;IACvB,CAAC;IAED,IAAI,KAAK;QAER,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;IAED,KAAK;QAEJ,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC,SAAS,CAAC,CACtC,CAAC;YAEA,EAAE,CAAA,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,aAAa,IAAE,CAAC,CAAC,SAAS,CAAC,CAC5C,CAAC;gBACA,IAAI,CAAC,GAAG,WAAW,CAClB,KAAK,CAAC,OAAO,EACb,CAAC,CAAC,SAAS,EACX,CAAC,CAAC,CAAC;gBAEJ,CAAC,CAAC,OAAO,GAAG;oBAEX,aAAa,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC,CAAA;YACF,CAAC;YACD,IAAI,CACJ,CAAC;gBACA,IAAI,CAAC,GAAG,UAAU,CACjB,KAAK,CAAC,OAAO,EACb,CAAC,CAAC,aAAa,EACf,CAAC,EAAE,IAAI,CAAC,CAAC;gBAEV,CAAC,CAAC,OAAO,GAAG;oBAEX,YAAY,CAAC,CAAC,CAAC,CAAC;gBACjB,CAAC,CAAA;YACF,CAAC;QACF,CAAC;IAEF,CAAC;IAED,IAAI;QAEH,IAAI,CAAC,MAAM,EAAE,CAAC;IACf,CAAC;IAED,KAAK;QAEJ,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACjB,CAAC;IAED,MAAM;QACL,EAAE,CAAA,CAAC,IAAI,CAAC,OAAO,CAAC,CAChB,CAAC;YACA,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QACD,MAAM,CAAC,KAAK,CAAC;IACd,CAAC;IAED,OAAO;QACN,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,KAAK,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAGD,OAAe,OAAO,CACrB,KAAW,EACX,WAAoB;QAEpB,IAAI,KAAK,GAAQ,KAAK,CAAC,MAAM,EAAE,EAC3B,GAAG,GAAU,KAAK,CAAC,SAAS,EAC5B,UAAU,GAAG,KAAK,CAAC,MAAM,IAAE,GAAG,CAAC;QAEnC,EAAE,CAAA,CAAC,WAAW,CAAC,CACf,CAAC;YACA,KAAK,CAAC,MAAM,EAAE,CAAC;YACf,KAAK,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;QAED,EAAE,CAAA,CAAC,UAAU,CAAC,CACd,CAAC;YACA,KAAK,CAAC,IAAI,EAAE,CAAC;QACd,CAAC;QAED,EAAE,CAAA,CAAC,KAAK,GAAC,GAAG,CAAC,CACb,CAAC;YACA,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QAED,EAAE,CAAA,CAAC,UAAU,CAAC,CACd,CAAC;YACA,KAAK,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC;IACF,CAAC;AAEF,CAAC;AAAA"} \ No newline at end of file +{"version":3,"file":"Timer.js","sourceRoot":"","sources":["../../../../source/System/Timers/Timer.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6/System/Types.d.ts b/dist/es6/System/Types.d.ts index cddf07c8..a1d7cf5e 100644 --- a/dist/es6/System/Types.d.ts +++ b/dist/es6/System/Types.d.ts @@ -1,9 +1,9 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { Primitive } from "./Primitive"; +import { IArray } from "./Collections/Array/IArray"; export declare class TypeInfo { private target; type: string; diff --git a/dist/es6/System/Types.js b/dist/es6/System/Types.js index 40342e4f..daf940fb 100644 --- a/dist/es6/System/Types.js +++ b/dist/es6/System/Types.js @@ -2,7 +2,6 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; const VOID0 = void (0), _BOOLEAN = typeof true, _NUMBER = typeof 0, _STRING = typeof "", _OBJECT = typeof {}, _UNDEFINED = typeof VOID0, _FUNCTION = typeof function () { }, LENGTH = "length"; var typeInfoRegistry = {}; export class TypeInfo { diff --git a/dist/es6/System/Types.js.map b/dist/es6/System/Types.js.map index 7ddac5a7..a4a281af 100644 --- a/dist/es6/System/Types.js.map +++ b/dist/es6/System/Types.js.map @@ -1 +1 @@ -{"version":3,"file":"Types.js","sourceRoot":"","sources":["../../../source/System/Types.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Types.js","sourceRoot":"","sources":["../../../source/System/Types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6/System/Uri/HostNameType.d.ts b/dist/es6/System/Uri/HostNameType.d.ts index b4e74073..57b342ec 100644 --- a/dist/es6/System/Uri/HostNameType.d.ts +++ b/dist/es6/System/Uri/HostNameType.d.ts @@ -3,7 +3,7 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based on: https://msdn.microsoft.com/en-us/library/system.UriHostNameType%28v=vs.110%29.aspx */ -declare enum UriHostNameType { +export declare enum UriHostNameType { Basic = 0, DNS = 1, IPv4 = 2, diff --git a/dist/es6/System/Uri/HostNameType.js b/dist/es6/System/Uri/HostNameType.js index 694513a5..470b8533 100644 --- a/dist/es6/System/Uri/HostNameType.js +++ b/dist/es6/System/Uri/HostNameType.js @@ -3,7 +3,7 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based on: https://msdn.microsoft.com/en-us/library/system.UriHostNameType%28v=vs.110%29.aspx */ -var UriHostNameType; +export var UriHostNameType; (function (UriHostNameType) { UriHostNameType[UriHostNameType["Basic"] = 0] = "Basic"; UriHostNameType[UriHostNameType["DNS"] = 1] = "DNS"; diff --git a/dist/es6/System/Uri/HostNameType.js.map b/dist/es6/System/Uri/HostNameType.js.map index 556bb30d..90c511f8 100644 --- a/dist/es6/System/Uri/HostNameType.js.map +++ b/dist/es6/System/Uri/HostNameType.js.map @@ -1 +1 @@ -{"version":3,"file":"HostNameType.js","sourceRoot":"","sources":["../../../../source/System/Uri/HostNameType.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,IAAK,eAyBJ;AAzBD,WAAK,eAAe;IAInB,uDAAK,CAAA;IAKL,mDAAG,CAAA;IAKH,qDAAI,CAAA;IAKJ,qDAAI,CAAA;IAKJ,2DAAO,CAAA;AACR,CAAC,EAzBI,eAAe,KAAf,eAAe,QAyBnB;AAED,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AAE/B,eAAe,eAAe,CAAC"} \ No newline at end of file +{"version":3,"file":"HostNameType.js","sourceRoot":"","sources":["../../../../source/System/Uri/HostNameType.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,WAAY,eAyBX;AAzBD,WAAY,eAAe;IAI1B,uDAAK,CAAA;IAKL,mDAAG,CAAA;IAKH,qDAAI,CAAA;IAKJ,qDAAI,CAAA;IAKJ,2DAAO,CAAA;AACR,CAAC,EAzBW,eAAe,KAAf,eAAe,QAyB1B;AAED,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AAE/B,eAAe,eAAe,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Uri/QueryBuilder.d.ts b/dist/es6/System/Uri/QueryBuilder.d.ts index 891db685..42637877 100644 --- a/dist/es6/System/Uri/QueryBuilder.d.ts +++ b/dist/es6/System/Uri/QueryBuilder.d.ts @@ -1,17 +1,16 @@ -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import OrderedStringKeyDictionary from "../Collections/Dictionaries/OrderedStringKeyDictionary"; -export default class QueryBuilder extends OrderedStringKeyDictionary { - constructor(query: QueryParamsConvertible, decodeValues?: boolean); - static init(query: QueryParamsConvertible, decodeValues?: boolean): QueryBuilder; - importQuery(query: QueryParamsConvertible, decodeValues?: boolean): QueryBuilder; +import { OrderedStringKeyDictionary } from "../Collections/Dictionaries/OrderedStringKeyDictionary"; +import * as UriComponent from "./UriComponent"; +import * as QueryParam from "./QueryParam"; +export declare class QueryBuilder extends OrderedStringKeyDictionary { + constructor(query: QueryParam.Convertible, decodeValues?: boolean); + static init(query: QueryParam.Convertible, decodeValues?: boolean): QueryBuilder; + importQuery(query: QueryParam.Convertible, decodeValues?: boolean): QueryBuilder; importFromString(values: string, deserialize?: boolean, decodeValues?: boolean): QueryBuilder; encode(prefixIfNotEmpty?: boolean): string; toString(): string; } +export default QueryBuilder; diff --git a/dist/es6/System/Uri/QueryBuilder.js b/dist/es6/System/Uri/QueryBuilder.js index e754d4ac..f36b2859 100644 --- a/dist/es6/System/Uri/QueryBuilder.js +++ b/dist/es6/System/Uri/QueryBuilder.js @@ -2,12 +2,11 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; -import Type from "../Types"; -import * as QueryParams from "./QueryParams"; -import OrderedStringKeyDictionary from "../Collections/Dictionaries/OrderedStringKeyDictionary"; +import { Type } from "../Types"; +import { OrderedStringKeyDictionary } from "../Collections/Dictionaries/OrderedStringKeyDictionary"; import { isEnumerableOrArrayLike } from "../Collections/Enumeration/Enumerator"; -export default class QueryBuilder extends OrderedStringKeyDictionary { +import * as QueryParams from "./QueryParams"; +export class QueryBuilder extends OrderedStringKeyDictionary { constructor(query, decodeValues = true) { super(); this.importQuery(query, decodeValues); @@ -49,4 +48,5 @@ export default class QueryBuilder extends OrderedStringKeyDictionary { return this.encode(); } } +export default QueryBuilder; //# sourceMappingURL=QueryBuilder.js.map \ No newline at end of file diff --git a/dist/es6/System/Uri/QueryBuilder.js.map b/dist/es6/System/Uri/QueryBuilder.js.map index 11816110..9844c4f4 100644 --- a/dist/es6/System/Uri/QueryBuilder.js.map +++ b/dist/es6/System/Uri/QueryBuilder.js.map @@ -1 +1 @@ -{"version":3,"file":"QueryBuilder.js","sourceRoot":"","sources":["../../../../source/System/Uri/QueryBuilder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,YAAY,CAAC;OAEN,IAAI,MAAM,UAAU;OACpB,KAAK,WAAW,MAAM,eAAe;OACrC,0BAA0B,MAAM,wDAAwD;OACxF,EAAC,uBAAuB,EAAC,MAAM,uCAAuC;AAQ7E,0CAC2B,0BAA0B;IAGpD,YACC,KAA4B,EAC5B,YAAY,GAAW,IAAI;QAE3B,OAAO,CAAC;QAER,IAAI,CAAC,WAAW,CAAC,KAAK,EAAC,YAAY,CAAC,CAAC;IACtC,CAAC;IAGD,OAAO,IAAI,CACV,KAA4B,EAC5B,YAAY,GAAW,IAAI;QAE3B,MAAM,CAAC,IAAI,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAC9C,CAAC;IAED,WAAW,CACV,KAA4B,EAC5B,YAAY,GAAW,IAAI;QAE3B,EAAE,CAAA,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CACxB,CAAC;YACA,IAAI,CAAC,gBAAgB,CAAS,KAAK,EAAE,YAAY,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,CAAC,EAAE,CAAA,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,CACvC,CAAC;YACA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,CACJ,CAAC;YACA,IAAI,CAAC,SAAS,CAAmB,KAAK,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,CAAC,IAAI,CAAC;IACb,CAAC;IASD,gBAAgB,CACf,MAAa,EACb,WAAW,GAAW,IAAI,EAC1B,YAAY,GAAW,IAAI;QAE3B,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,WAAW,CAAC,KAAK,CAAC,MAAM,EACvB,CAAC,GAAG,EAAE,KAAK;YAEV,EAAE,CAAA,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CACtB,CAAC;gBACA,IAAI,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAC3B,EAAE,CAAA,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBACtB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAClB,IAAI;oBACH,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAoB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YACpD,CAAC;YACD,IAAI;gBACH,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACzB,CAAC,EACD,WAAW,EACX,YAAY,CAAC,CAAC;QAEf,MAAM,CAAC,IAAI,CAAC;IACb,CAAC;IAOD,MAAM,CAAC,gBAAyB;QAE/B,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IACnD,CAAC;IAED,QAAQ;QAEP,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IACtB,CAAC;AACF,CAAC;AAAA"} \ No newline at end of file +{"version":3,"file":"QueryBuilder.js","sourceRoot":"","sources":["../../../../source/System/Uri/QueryBuilder.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAGI,EAAC,IAAI,EAAC,MAAM,UAAU;OACtB,EAAC,0BAA0B,EAAC,MAAM,wDAAwD;OAC1F,EAAC,uBAAuB,EAAC,MAAM,uCAAuC;OAGtE,KAAK,WAAW,MAAM,eAAe;AAQ5C,kCAAkC,0BAA0B;IAG3D,YACC,KAA4B,EAC5B,YAAY,GAAW,IAAI;QAE3B,OAAO,CAAC;QAER,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IACvC,CAAC;IAGD,OAAO,IAAI,CACV,KAA4B,EAC5B,YAAY,GAAW,IAAI;QAE3B,MAAM,CAAC,IAAI,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAC9C,CAAC;IAED,WAAW,CACV,KAA4B,EAC5B,YAAY,GAAW,IAAI;QAG3B,EAAE,CAAA,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CACxB,CAAC;YACA,IAAI,CAAC,gBAAgB,CAAS,KAAK,EAAE,YAAY,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,CAAC,EAAE,CAAA,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,CACvC,CAAC;YACA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,CACJ,CAAC;YACA,IAAI,CAAC,SAAS,CAAmB,KAAK,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,CAAC,IAAI,CAAC;IACb,CAAC;IASD,gBAAgB,CACf,MAAa,EACb,WAAW,GAAW,IAAI,EAC1B,YAAY,GAAW,IAAI;QAE3B,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,WAAW,CAAC,KAAK,CAAC,MAAM,EACvB,CAAC,GAAG,EAAE,KAAK;YAEV,EAAE,CAAA,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CACtB,CAAC;gBACA,IAAI,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAC3B,EAAE,CAAA,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBACtB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAClB,IAAI;oBACH,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAqB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YACrD,CAAC;YACD,IAAI;gBACH,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACzB,CAAC,EACD,WAAW,EACX,YAAY,CAAC,CAAC;QAEf,MAAM,CAAC,IAAI,CAAC;IACb,CAAC;IAMD,MAAM,CAAC,gBAAyB;QAE/B,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IACnD,CAAC;IAED,QAAQ;QAEP,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IACtB,CAAC;AACF,CAAC;AAED,eAAe,YAAY,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Uri/QueryParams.d.ts b/dist/es6/System/Uri/QueryParams.d.ts index 6bedb350..f90cd30d 100644 --- a/dist/es6/System/Uri/QueryParams.d.ts +++ b/dist/es6/System/Uri/QueryParams.d.ts @@ -1,17 +1,20 @@ -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -export declare function encode(values: IUriComponentMap | QueryParamEnumerableOrArray, prefixIfNotEmpty?: boolean): string; -export declare function encodeValue(value: UriComponentValue): string; -export declare function isUriComponentFormattable(instance: any): instance is IUriComponentFormattable; +import * as UriComponent from "./UriComponent"; +import * as QueryParam from "./QueryParam"; +import { IMap } from "../Collections/Dictionaries/IDictionary"; +import { Primitive } from "../Primitive"; +import { IStringKeyValuePair } from "../KeyValuePair"; +export declare function encode(values: UriComponent.Map | QueryParam.EnumerableOrArray, prefixIfNotEmpty?: boolean): string; +export declare function encodeValue(value: UriComponent.Value): string; +export declare function isUriComponentFormattable(instance: any): instance is UriComponent.Formattable; export declare function parse(query: string, entryHandler: (key: string, value: Primitive) => void, deserialize?: boolean, decodeValues?: boolean): void; export declare function parseToMap(query: string, deserialize?: boolean, decodeValues?: boolean): IMap; export declare function parseToArray(query: string, deserialize?: boolean, decodeValues?: boolean): IStringKeyValuePair[]; export declare module Separator { + const Query: string; const Entry: string; const KeyValue: string; } diff --git a/dist/es6/System/Uri/QueryParams.js b/dist/es6/System/Uri/QueryParams.js index af8062d1..d8830590 100644 --- a/dist/es6/System/Uri/QueryParams.js +++ b/dist/es6/System/Uri/QueryParams.js @@ -2,15 +2,14 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; -import Type from "../Types"; import * as Serialization from "../Serialization/Utility"; -import extractKeyValue from "../KeyValueExtract"; +import { Type } from "../Types"; +import { extractKeyValue } from "../KeyValueExtract"; import { forEach, isEnumerableOrArrayLike } from "../Collections/Enumeration/Enumerator"; -const ENTRY_SEPARATOR = "&", KEY_VALUE_SEPARATOR = "="; +const EMPTY = "", QUERY_SEPARATOR = "?", ENTRY_SEPARATOR = "&", KEY_VALUE_SEPARATOR = "=", TO_URI_COMPONENT = "toUriComponent"; export function encode(values, prefixIfNotEmpty) { if (!values) - return ''; + return EMPTY; var entries = []; if (isEnumerableOrArrayLike(values)) { forEach(values, entry => extractKeyValue(entry, (key, value) => appendKeyValue(entries, key, value))); @@ -18,7 +17,7 @@ export function encode(values, prefixIfNotEmpty) { else { Object.keys(values).forEach(key => appendKeyValue(entries, key, values[key])); } - return (entries.length && prefixIfNotEmpty ? '?' : '') + return (entries.length && prefixIfNotEmpty ? QUERY_SEPARATOR : EMPTY) + entries.join(ENTRY_SEPARATOR); } function appendKeyValueSingle(entries, key, value) { @@ -36,7 +35,7 @@ export function encodeValue(value) { var v = null; if (isUriComponentFormattable(value)) { v = value.toUriComponent(); - if (v && v.indexOf('&') != 1) + if (v && v.indexOf(ENTRY_SEPARATOR) != 1) throw '.toUriComponent() did not encode the value.'; } else { @@ -45,7 +44,7 @@ export function encodeValue(value) { return v; } export function isUriComponentFormattable(instance) { - return Type.hasMemberOfType(instance, "toUriComponent", Type.FUNCTION); + return Type.hasMemberOfType(instance, TO_URI_COMPONENT, Type.FUNCTION); } export function parse(query, entryHandler, deserialize = true, decodeValues = true) { if (query && (query = query.replace(/^\s*\?+/, ''))) { @@ -85,6 +84,7 @@ export function parseToArray(query, deserialize = true, decodeValues = true) { } export var Separator; (function (Separator) { + Separator.Query = QUERY_SEPARATOR; Separator.Entry = ENTRY_SEPARATOR; Separator.KeyValue = KEY_VALUE_SEPARATOR; })(Separator || (Separator = {})); diff --git a/dist/es6/System/Uri/QueryParams.js.map b/dist/es6/System/Uri/QueryParams.js.map index 0b8cb781..91d7abc8 100644 --- a/dist/es6/System/Uri/QueryParams.js.map +++ b/dist/es6/System/Uri/QueryParams.js.map @@ -1 +1 @@ -{"version":3,"file":"QueryParams.js","sourceRoot":"","sources":["../../../../source/System/Uri/QueryParams.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"QueryParams.js","sourceRoot":"","sources":["../../../../source/System/Uri/QueryParams.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6/System/Uri/Scheme.d.ts b/dist/es6/System/Uri/Scheme.d.ts index 5e625ec8..406f9ce0 100644 --- a/dist/es6/System/Uri/Scheme.d.ts +++ b/dist/es6/System/Uri/Scheme.d.ts @@ -3,19 +3,20 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based on: https://msdn.microsoft.com/en-us/library/system.uri.scheme%28v=vs.110%29.aspx */ -declare enum Scheme { - file = 0, - ftp = 1, - gopher = 2, - http = 3, - https = 4, - ldap = 5, - mailto = 6, - pipe = 7, - tcp = 8, - news = 9, - nntp = 10, - telnet = 11, - uuid = 12, -} -export default Scheme; +import * as Scheme from "./SchemeValue"; +import { SchemeValue } from "./SchemeValue"; +export declare const File: Scheme.File; +export declare const FTP: Scheme.FTP; +export declare const GOPHER: Scheme.Gopher; +export declare const HTTP: Scheme.HTTP; +export declare const HTTPS: Scheme.HTTPS; +export declare const LDAP: Scheme.LDAP; +export declare const MAILTO: Scheme.MailTo; +export declare const PIPE: Scheme.Pipe; +export declare const TCP: Scheme.TCP; +export declare const NEWS: Scheme.NNTP; +export declare const NNTP: Scheme.NNTP; +export declare const TELNET: Scheme.Telnet; +export declare const UUID: Scheme.UUID; +export declare const All: SchemeValue[]; +export declare function isValid(scheme: string): scheme is SchemeValue; diff --git a/dist/es6/System/Uri/Scheme.js b/dist/es6/System/Uri/Scheme.js index 5b9d9e9c..738d2da5 100644 --- a/dist/es6/System/Uri/Scheme.js +++ b/dist/es6/System/Uri/Scheme.js @@ -3,28 +3,23 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based on: https://msdn.microsoft.com/en-us/library/system.uri.scheme%28v=vs.110%29.aspx */ -var Scheme; -(function (Scheme) { - Scheme[Scheme["file"] = 0] = "file"; - Scheme[Scheme["ftp"] = 1] = "ftp"; - Scheme[Scheme["gopher"] = 2] = "gopher"; - Scheme[Scheme["http"] = 3] = "http"; - Scheme[Scheme["https"] = 4] = "https"; - Scheme[Scheme["ldap"] = 5] = "ldap"; - Scheme[Scheme["mailto"] = 6] = "mailto"; - Scheme[Scheme["pipe"] = 7] = "pipe"; - Scheme[Scheme["tcp"] = 8] = "tcp"; - Scheme[Scheme["news"] = 9] = "news"; - Scheme[Scheme["nntp"] = 10] = "nntp"; - Scheme[Scheme["telnet"] = 11] = "telnet"; - Scheme[Scheme["uuid"] = 12] = "uuid"; -})(Scheme || (Scheme = {})); -const PIPE = 'net.pipe'; -const TCP = 'net.tcp'; -Scheme[Scheme.pipe] = PIPE; -Scheme[Scheme.tcp] = TCP; -Scheme[PIPE] = Scheme.pipe; -Scheme[TCP] = Scheme.tcp; -Object.freeze(Scheme); -export default Scheme; +export const File = "file"; +export const FTP = "ftp"; +export const GOPHER = "gopher"; +export const HTTP = "http"; +export const HTTPS = "https"; +export const LDAP = "ldap"; +export const MAILTO = "mailto"; +export const PIPE = "net.pipe"; +export const TCP = "net.tcp"; +export const NEWS = "news"; +export const NNTP = "nntp"; +export const TELNET = "telnet"; +export const UUID = "uuid"; +export const All = Object.freeze([ + File, FTP, GOPHER, HTTP, HTTPS, LDAP, MAILTO, PIPE, TCP, NEWS, NNTP, TELNET, UUID +]); +export function isValid(scheme) { + return All.indexOf(scheme) != -1; +} //# sourceMappingURL=Scheme.js.map \ No newline at end of file diff --git a/dist/es6/System/Uri/Scheme.js.map b/dist/es6/System/Uri/Scheme.js.map index 33a5d49c..e727f190 100644 --- a/dist/es6/System/Uri/Scheme.js.map +++ b/dist/es6/System/Uri/Scheme.js.map @@ -1 +1 @@ -{"version":3,"file":"Scheme.js","sourceRoot":"","sources":["../../../../source/System/Uri/Scheme.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,IAAK,MA4EJ;AA5ED,WAAK,MAAM;IAIV,mCAAI,CAAA;IAMJ,iCAAG,CAAA;IAMH,uCAAM,CAAA;IAMN,mCAAI,CAAA;IAMJ,qCAAK,CAAA;IAML,mCAAI,CAAA;IAMJ,uCAAM,CAAA;IAMN,mCAAI,CAAA;IAMJ,iCAAG,CAAA;IAMH,mCAAI,CAAA;IAMJ,oCAAI,CAAA;IAMJ,wCAAM,CAAA;IAKN,oCAAI,CAAA;AACL,CAAC,EA5EI,MAAM,KAAN,MAAM,QA4EV;AAGD,MAAM,IAAI,GAAG,UAAU,CAAC;AACxB,MAAM,GAAG,GAAG,SAAS,CAAC;AAEtB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAC3B,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AAEnB,MAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;AAC5B,MAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC;AAEhC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAEtB,eAAe,MAAM,CAAC"} \ No newline at end of file +{"version":3,"file":"Scheme.js","sourceRoot":"","sources":["../../../../source/System/Uri/Scheme.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,MAAM,IAAI,GAAe,MAAM,CAAC;AAMvC,OAAO,MAAM,GAAG,GAAc,KAAK,CAAC;AAMpC,OAAO,MAAM,MAAM,GAAiB,QAAQ,CAAC;AAM7C,OAAO,MAAM,IAAI,GAAe,MAAM,CAAC;AAMvC,OAAO,MAAM,KAAK,GAAgB,OAAO,CAAC;AAM1C,OAAO,MAAM,IAAI,GAAe,MAAM,CAAC;AAMvC,OAAO,MAAM,MAAM,GAAiB,QAAQ,CAAC;AAM7C,OAAO,MAAM,IAAI,GAAe,UAAU,CAAC;AAM3C,OAAO,MAAM,GAAG,GAAc,SAAS,CAAC;AAMxC,OAAO,MAAM,IAAI,GAAe,MAAM,CAAC;AAMvC,OAAO,MAAM,IAAI,GAAe,MAAM,CAAC;AAMvC,OAAO,MAAM,MAAM,GAAiB,QAAQ,CAAC;AAK7C,OAAO,MAAM,IAAI,GAAe,MAAM,CAAC;AAMvC,OAAO,MAAM,GAAG,GAAiB,MAAM,CAAC,MAAM,CAAC;IAC9C,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI;CACjF,CAAC,CAAC;AAEH,wBAAwB,MAAa;IACpC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAM,MAAM,CAAC,IAAE,CAAC,CAAC,CAAC;AACrC,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Uri/Uri.d.ts b/dist/es6/System/Uri/Uri.d.ts index b48843c9..07123b10 100644 --- a/dist/es6/System/Uri/Uri.d.ts +++ b/dist/es6/System/Uri/Uri.d.ts @@ -1,14 +1,15 @@ -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based on: https://en.wikipedia.org/wiki/Uniform_Resource_Identifier */ -import UriScheme from "../Uri/Scheme"; -export default class Uri implements IUri, IEquatable { +import * as QueryParam from "./QueryParam"; +import { SchemeValue } from "./SchemeValue"; +import { IUri } from "./IUri"; +import { IMap } from "../Collections/Dictionaries/IDictionary"; +import { Primitive } from "../Primitive"; +import { IEquatable } from "../IEquatable"; +export declare class Uri implements IUri, IEquatable { scheme: SchemeValue; userInfo: string; host: string; @@ -17,14 +18,14 @@ export default class Uri implements IUri, IEquatable { query: string; fragment: string; queryParams: IMap; - constructor(scheme: UriScheme | SchemeValue, userInfo: string, host: string, port: number, path: string, query?: QueryParamsConvertible, fragment?: string); + constructor(scheme: SchemeValue, userInfo: string, host: string, port: number, path: string, query?: QueryParam.Convertible, fragment?: string); equals(other: IUri): boolean; static from(uri: string | IUri, defaults?: IUri): Uri; static parse(url: string, throwIfInvalid?: boolean): IUri; static tryParse(url: string, out: (result: IUri) => void): boolean; static copyOf(map: IUri): IUri; copyTo(map: IUri): IUri; - updateQuery(query: QueryParamsConvertible): Uri; + updateQuery(query: QueryParam.Convertible): Uri; protected getAbsoluteUri(): string; protected getAuthority(): string; protected getPathAndQuery(): string; @@ -47,3 +48,4 @@ export declare enum Fields { query = 5, fragment = 6, } +export default Uri; diff --git a/dist/es6/System/Uri/Uri.js b/dist/es6/System/Uri/Uri.js index f176b697..2be66fe1 100644 --- a/dist/es6/System/Uri/Uri.js +++ b/dist/es6/System/Uri/Uri.js @@ -3,15 +3,14 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based on: https://en.wikipedia.org/wiki/Uniform_Resource_Identifier */ -'use strict'; -import Type from "../Types"; -import * as QueryParams from "../Uri/QueryParams"; +import { Type } from "../Types"; +import * as QueryParams from "./QueryParams"; +import * as Scheme from "./Scheme"; import { trim } from "../Text/Utility"; -import UriScheme from "../Uri/Scheme"; -import ArgumentException from "../Exceptions/ArgumentException"; -import ArgumentOutOfRangeException from "../Exceptions/ArgumentOutOfRangeException"; +import { ArgumentException } from "../Exceptions/ArgumentException"; +import { ArgumentOutOfRangeException } from "../Exceptions/ArgumentOutOfRangeException"; const VOID0 = void (0); -export default class Uri { +export class Uri { constructor(scheme, userInfo, host, port, path, query, fragment) { var _ = this; _.scheme = getScheme(scheme) || null; @@ -111,23 +110,23 @@ function copyUri(from, to) { } return to; } -const SLASH = '/', SLASH2 = '//', QM = '?', HASH = '#', EMPTY = '', AT = '@'; +const SLASH = '/', SLASH2 = '//', QM = QueryParams.Separator.Query, HASH = '#', EMPTY = '', AT = '@'; function getScheme(scheme) { var s = scheme; if (Type.isString(s)) { if (!s) - return VOID0; - s = UriScheme[trim(s).toLowerCase().replace(/[^a-z0-9+.-]+$/g, EMPTY)]; - if (isNaN(s)) - throw new ArgumentOutOfRangeException('scheme', scheme, 'Invalid scheme.'); - } - if (Type.isNumber(s, false)) { - s = UriScheme[s]; + return null; + s = trim(s).toLowerCase().replace(/[^a-z0-9+.-]+$/g, EMPTY); if (!s) - throw new ArgumentOutOfRangeException('scheme', scheme, 'Invalid scheme.'); - return s; + return null; + if (Scheme.isValid(s)) + return s; + } + else { + if (s === null || s === undefined) + return s; } - return VOID0; + throw new ArgumentOutOfRangeException('scheme', scheme, 'Invalid scheme.'); } function getPort(port) { if (port === 0) @@ -240,4 +239,5 @@ function tryParse(url, out) { out(copyUri(result)); return null; } +export default Uri; //# sourceMappingURL=Uri.js.map \ No newline at end of file diff --git a/dist/es6/System/Uri/Uri.js.map b/dist/es6/System/Uri/Uri.js.map index c082fbd0..653b214f 100644 --- a/dist/es6/System/Uri/Uri.js.map +++ b/dist/es6/System/Uri/Uri.js.map @@ -1 +1 @@ -{"version":3,"file":"Uri.js","sourceRoot":"","sources":["../../../../source/System/Uri/Uri.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Uri.js","sourceRoot":"","sources":["../../../../source/System/Uri/Uri.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6/System/Utility/clone.js b/dist/es6/System/Utility/clone.js index 2e17d6b9..ceee534e 100644 --- a/dist/es6/System/Utility/clone.js +++ b/dist/es6/System/Utility/clone.js @@ -2,7 +2,7 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import Type from '../Types'; +import { Type } from "../Types"; export default function clone(source, depth = 0) { if (depth < 0) return source; diff --git a/dist/es6/System/Utility/clone.js.map b/dist/es6/System/Utility/clone.js.map index 80bb54cf..2a687d76 100644 --- a/dist/es6/System/Utility/clone.js.map +++ b/dist/es6/System/Utility/clone.js.map @@ -1 +1 @@ -{"version":3,"file":"clone.js","sourceRoot":"","sources":["../../../../source/System/Utility/clone.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAEI,IAAI,MAAM,UAAU;AAE3B,8BAA8B,MAAU,EAAE,KAAK,GAAU,CAAC;IAEzD,EAAE,CAAA,CAAC,KAAK,GAAC,CAAC,CAAC;QACV,MAAM,CAAC,MAAM,CAAC;IAGf,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAAC,MAAM,CAAC,MAAM,CAAC;IAEzC,IAAI,MAAU,CAAC;IACf,EAAE,CAAA,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CACzB,CAAC;QACA,MAAM,GAAS,MAAO,CAAC,KAAK,EAAE,CAAC;QAC/B,EAAE,CAAA,CAAC,KAAK,GAAC,CAAC,CAAC,CACX,CAAC;YACA,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EACnC,CAAC;gBACA,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YACzC,CAAC;QACF,CAAC;IACF,CAAC;IACD,IAAI,CACJ,CAAC;QACA,MAAM,GAAG,EAAE,CAAC;QACZ,EAAE,CAAA,CAAC,KAAK,GAAC,CAAC,CAAC;YAAC,GAAG,CAAA,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,CAChC,CAAC;gBAEA,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YACzC,CAAC;IACF,CAAC;IAED,MAAM,CAAC,MAAM,CAAC;AAEf,CAAC"} \ No newline at end of file +{"version":3,"file":"clone.js","sourceRoot":"","sources":["../../../../source/System/Utility/clone.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAEI,EAAC,IAAI,EAAC,MAAM,UAAU;AAE7B,8BAA8B,MAAU,EAAE,KAAK,GAAU,CAAC;IAEzD,EAAE,CAAA,CAAC,KAAK,GAAC,CAAC,CAAC;QACV,MAAM,CAAC,MAAM,CAAC;IAGf,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAAC,MAAM,CAAC,MAAM,CAAC;IAEzC,IAAI,MAAU,CAAC;IACf,EAAE,CAAA,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CACzB,CAAC;QACA,MAAM,GAAS,MAAO,CAAC,KAAK,EAAE,CAAC;QAC/B,EAAE,CAAA,CAAC,KAAK,GAAC,CAAC,CAAC,CACX,CAAC;YACA,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EACnC,CAAC;gBACA,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YACzC,CAAC;QACF,CAAC;IACF,CAAC;IACD,IAAI,CACJ,CAAC;QACA,MAAM,GAAG,EAAE,CAAC;QACZ,EAAE,CAAA,CAAC,KAAK,GAAC,CAAC,CAAC;YAAC,GAAG,CAAA,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,CAChC,CAAC;gBAEA,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YACzC,CAAC;IACF,CAAC;IAED,MAAM,CAAC,MAAM,CAAC;AAEf,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Utility/shallowCopy.d.ts b/dist/es6/System/Utility/shallowCopy.d.ts index df935e23..51512af7 100644 --- a/dist/es6/System/Utility/shallowCopy.d.ts +++ b/dist/es6/System/Utility/shallowCopy.d.ts @@ -2,4 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -export default function shallowCopy(source: any, target?: any): any; +export declare function shallowCopy(source: any, target?: any): any; +export default shallowCopy; diff --git a/dist/es6/System/Utility/shallowCopy.js b/dist/es6/System/Utility/shallowCopy.js index 0eede4c8..6792bf8d 100644 --- a/dist/es6/System/Utility/shallowCopy.js +++ b/dist/es6/System/Utility/shallowCopy.js @@ -2,7 +2,7 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -export default function shallowCopy(source, target = {}) { +export function shallowCopy(source, target = {}) { if (target) { for (let k in source) { target[k] = source[k]; @@ -10,4 +10,5 @@ export default function shallowCopy(source, target = {}) { } return target; } +export default shallowCopy; //# sourceMappingURL=shallowCopy.js.map \ No newline at end of file diff --git a/dist/es6/System/Utility/shallowCopy.js.map b/dist/es6/System/Utility/shallowCopy.js.map index 046c6efc..16552c2a 100644 --- a/dist/es6/System/Utility/shallowCopy.js.map +++ b/dist/es6/System/Utility/shallowCopy.js.map @@ -1 +1 @@ -{"version":3,"file":"shallowCopy.js","sourceRoot":"","sources":["../../../../source/System/Utility/shallowCopy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,oCAAoC,MAAU,EAAE,MAAM,GAAO,EAAE;IAE9D,EAAE,CAAA,CAAC,MAAM,CAAC,CACV,CAAC;QACA,GAAG,CAAA,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,CACpB,CAAC;YAEA,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;IACF,CAAC;IAED,MAAM,CAAC,MAAM,CAAC;AACf,CAAC"} \ No newline at end of file +{"version":3,"file":"shallowCopy.js","sourceRoot":"","sources":["../../../../source/System/Utility/shallowCopy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,4BAA4B,MAAU,EAAE,MAAM,GAAO,EAAE;IAEtD,EAAE,CAAA,CAAC,MAAM,CAAC,CACV,CAAC;QACA,GAAG,CAAA,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,CACpB,CAAC;YAEA,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;IACF,CAAC;IAED,MAAM,CAAC,MAAM,CAAC;AACf,CAAC;AAED,eAAe,WAAW,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Validation/ValidationResult.d.ts b/dist/es6/System/Validation/ValidationResult.d.ts index 8fdffed8..563c9625 100644 --- a/dist/es6/System/Validation/ValidationResult.d.ts +++ b/dist/es6/System/Validation/ValidationResult.d.ts @@ -1,9 +1,9 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { IEquatable } from "../IEquatable"; +import { IValidationResult } from "./IValidationResult"; export default class ValidationResult implements IValidationResult, IEquatable { isValid: boolean; message: string; diff --git a/dist/es6/System/Validation/ValidationResult.js b/dist/es6/System/Validation/ValidationResult.js index b9e0bb7a..c5df8136 100644 --- a/dist/es6/System/Validation/ValidationResult.js +++ b/dist/es6/System/Validation/ValidationResult.js @@ -2,7 +2,6 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -'use strict'; const valid = new ValidationResult(true); export default class ValidationResult { constructor(isValid = false, message = null, data = null) { diff --git a/dist/es6/System/Validation/ValidationResult.js.map b/dist/es6/System/Validation/ValidationResult.js.map index fde3d477..9ded9424 100644 --- a/dist/es6/System/Validation/ValidationResult.js.map +++ b/dist/es6/System/Validation/ValidationResult.js.map @@ -1 +1 @@ -{"version":3,"file":"ValidationResult.js","sourceRoot":"","sources":["../../../../source/System/Validation/ValidationResult.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,YAAY,CAAC;AAEb,MAAM,KAAK,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAKzC;IAOC,YACQ,OAAO,GAAW,KAAK,EACvB,OAAO,GAAU,IAAI,EACrB,IAAI,GAAO,IAAI;QAFf,YAAO,GAAP,OAAO,CAAgB;QACvB,YAAO,GAAP,OAAO,CAAc;QACrB,SAAI,GAAJ,IAAI,CAAW;QAItB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IAKD,MAAM,CAAC,KAAuB;QAE7B,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,MAAM,CAAC,CAAC,CAAC,OAAO,KAAG,KAAK,CAAC,OAAO;eAC5B,CAAC,CAAC,OAAO,IAAE,CAAC,CAAC,OAAO;eACpB,CAAC,CAAC,IAAI,IAAE,CAAC,CAAC,IAAI,CAAC;IACpB,CAAC;IAOD,WAAW,KAAK;QACf,MAAM,CAAC,KAAK,CAAC;IACd,CAAC;IAKD,OAAO,OAAO,CACb,OAAc,EACd,IAAI,GAAO,IAAI;QAEf,MAAM,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;AACF,CAAC;AAAA"} \ No newline at end of file +{"version":3,"file":"ValidationResult.js","sourceRoot":"","sources":["../../../../source/System/Validation/ValidationResult.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,MAAM,KAAK,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAKzC;IAOC,YACQ,OAAO,GAAW,KAAK,EACvB,OAAO,GAAU,IAAI,EACrB,IAAI,GAAO,IAAI;QAFf,YAAO,GAAP,OAAO,CAAgB;QACvB,YAAO,GAAP,OAAO,CAAc;QACrB,SAAI,GAAJ,IAAI,CAAW;QAItB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IAKD,MAAM,CAAC,KAAuB;QAE7B,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,MAAM,CAAC,CAAC,CAAC,OAAO,KAAG,KAAK,CAAC,OAAO;eAC5B,CAAC,CAAC,OAAO,IAAE,CAAC,CAAC,OAAO;eACpB,CAAC,CAAC,IAAI,IAAE,CAAC,CAAC,IAAI,CAAC;IACpB,CAAC;IAOD,WAAW,KAAK;QACf,MAAM,CAAC,KAAK,CAAC;IACd,CAAC;IAKD,OAAO,OAAO,CACb,OAAc,EACd,IAAI,GAAO,IAAI;QAEf,MAAM,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;AACF,CAAC;AAAA"} \ No newline at end of file diff --git a/dist/system/System.Linq/Linq.d.ts b/dist/system/System.Linq/Linq.d.ts index 03d8c5c7..eb598fc4 100644 --- a/dist/system/System.Linq/Linq.d.ts +++ b/dist/system/System.Linq/Linq.d.ts @@ -1,19 +1,17 @@ -/// -/// -/// -/// -/// -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Original: http://linqjs.codeplex.com/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import Dictionary from "../System/Collections/Dictionaries/Dictionary"; -import DisposableBase from "../System/Disposable/DisposableBase"; +import { Dictionary } from "../System/Collections/Dictionaries/Dictionary"; +import { DisposableBase } from "../System/Disposable/DisposableBase"; +import { IEnumerator } from "../System/Collections/Enumeration/IEnumerator"; +import { IEnumerable } from "../System/Collections/Enumeration/IEnumerable"; +import { Action, Predicate, Selector, EqualityComparison, Comparison } from "../System/FunctionTypes"; +import { IEnumerableOrArray } from "../System/Collections/IEnumerableOrArray"; +import { IArray } from "../System/Collections/Array/IArray"; +import { IMap } from "../System/Collections/Dictionaries/IDictionary"; +import { Comparable } from "../System/IComparable"; export declare const enum EnumerableAction { Break = 0, Return = 1, diff --git a/dist/system/System.Linq/Linq.js b/dist/system/System.Linq/Linq.js index ddd51445..6f3f2933 100644 --- a/dist/system/System.Linq/Linq.js +++ b/dist/system/System.Linq/Linq.js @@ -30,14 +30,14 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. } function createSortContext(orderedEnumerable, currentContext) { if (currentContext === void 0) { currentContext = null; } - var context = new KeySortedContext_1.default(currentContext, orderedEnumerable.keySelector, orderedEnumerable.order, orderedEnumerable.comparer); + var context = new KeySortedContext_1.KeySortedContext(currentContext, orderedEnumerable.keySelector, orderedEnumerable.order, orderedEnumerable.comparer); if (orderedEnumerable.parent) return createSortContext(orderedEnumerable.parent, context); return context; } function throwIfDisposed(disposed) { if (disposed) - throw new ObjectDisposedException_1.default("Enumerable"); + throw new ObjectDisposedException_1.ObjectDisposedException("Enumerable"); } return { setters:[ @@ -111,7 +111,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. return a < b ? a : b; }; return LinqFunctions; - }(Functions_1.default)); + }(Functions_1.Functions)); Functions = new LinqFunctions(); Object.freeze(Functions); InfiniteEnumerable = (function (_super) { @@ -147,7 +147,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. return new Enumerable(function () { var enumerator; var index = 0; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { throwIfDisposed(disposed); if (initializer) initializer(); @@ -181,7 +181,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. _.throwIfDisposed(); if (!isFinite(count)) return Enumerable.empty(); - Integer_1.default.assert(count, "count"); + Integer_1.Integer.assert(count, "count"); return this.doAction(function (element, index) { return index < count ? 2 @@ -194,21 +194,21 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. var _ = this; _.throwIfDisposed(); if (!isFinite(count)) - throw new ArgumentOutOfRangeException_1.default('count', count, 'Must be finite.'); - Integer_1.default.assert(count, "count"); + throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('count', count, 'Must be finite.'); + Integer_1.Integer.assert(count, "count"); return _.doAction(function (element, index) { return index < count; }, null, false); }; InfiniteEnumerable.prototype.elementAt = function (index) { var v = this.elementAtOrDefault(index, INVALID_DEFAULT); if (v === INVALID_DEFAULT) - throw new ArgumentOutOfRangeException_1.default('index', index, "is greater than or equal to the number of elements in source"); + throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('index', index, "is greater than or equal to the number of elements in source"); return v; }; InfiniteEnumerable.prototype.elementAtOrDefault = function (index, defaultValue) { if (defaultValue === void 0) { defaultValue = null; } var _ = this; _.throwIfDisposed(); - Integer_1.default.assertZeroOrGreater(index, 'index'); + Integer_1.Integer.assertZeroOrGreater(index, 'index'); var n = index; return dispose_1.using(this.getEnumerator(), function (e) { var i = 0; @@ -273,7 +273,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. var enumerator; var nestLevel = 0; var buffer, len; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { nestLevel = 0; buffer = []; len = 0; @@ -313,7 +313,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. var enumeratorStack = []; var enumerator; var len; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { enumerator = _.getEnumerator(); len = 0; }, function (yielder) { @@ -346,7 +346,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. return new Enumerable(function () { var enumerator; var middleEnumerator = null; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { enumerator = _.getEnumerator(); }, function (yielder) { while (true) { @@ -361,7 +361,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. } if (enumerator.moveNext()) { var c = enumerator.current; - var e = !Types_1.default.isString(c) && Enumerable.fromAny(c); + var e = !Types_1.Type.isString(c) && Enumerable.fromAny(c); if (e) { middleEnumerator = e @@ -385,7 +385,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. var _ = this; return new Enumerable(function () { var enumerator; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { enumerator = _.getEnumerator(); enumerator.moveNext(); }, function (yielder) { @@ -404,7 +404,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. var enumerator; var value; var isFirst; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { enumerator = _.getEnumerator(); isFirst = true; }, function (yielder) { @@ -428,7 +428,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. return new Enumerable(function () { var enumerator; var index = 0; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { throwIfDisposed(disposed); index = 0; enumerator = _.getEnumerator(); @@ -452,7 +452,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. var enumerator; var middleEnumerator; var index = 0; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { enumerator = _.getEnumerator(); middleEnumerator = undefined; index = 0; @@ -487,7 +487,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. return new Enumerable(function () { var enumerator; var index = 0; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { throwIfDisposed(disposed); index = 0; enumerator = _.getEnumerator(); @@ -515,7 +515,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. return new Enumerable(function () { var enumerator; var index = 0; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { throwIfDisposed(disposed); index = 0; enumerator = _.getEnumerator(); @@ -537,16 +537,16 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. var typeName; switch (type) { case Number: - typeName = Types_1.default.NUMBER; + typeName = Types_1.Type.NUMBER; break; case String: - typeName = Types_1.default.STRING; + typeName = Types_1.Type.STRING; break; case Boolean: - typeName = Types_1.default.BOOLEAN; + typeName = Types_1.Type.BOOLEAN; break; case Function: - typeName = Types_1.default.FUNCTION; + typeName = Types_1.Type.FUNCTION; break; default: return this @@ -561,10 +561,10 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. return new Enumerable(function () { var enumerator; var keys; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { throwIfDisposed(disposed); enumerator = _.getEnumerator(); - keys = new Dictionary_1.default(compareSelector); + keys = new Dictionary_1.Dictionary(compareSelector); if (second) Enumerator_1.forEach(second, function (key) { return keys.addByKeyValue(key, true); }); }, function (yielder) { @@ -595,7 +595,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. var enumerator; var compareKey; var initial = true; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { throwIfDisposed(disposed); enumerator = _.getEnumerator(); }, function (yielder) { @@ -625,7 +625,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. return new Enumerable(function () { var enumerator; var isFirst; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { isFirst = true; throwIfDisposed(disposed); enumerator = _.getEnumerator(); @@ -652,7 +652,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. var firstEnumerator; var secondEnumerator; var index = 0; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { index = 0; firstEnumerator = _.getEnumerator(); secondEnumerator = Enumerator_1.from(second); @@ -673,8 +673,8 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. var firstEnumerator; var secondEnumerator; var index = 0; - return new EnumeratorBase_1.default(function () { - secondTemp = new Queue_1.default(second); + return new EnumeratorBase_1.EnumeratorBase(function () { + secondTemp = new Queue_1.Queue(second); index = 0; firstEnumerator = _.getEnumerator(); secondEnumerator = null; @@ -710,7 +710,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. var lookup; var innerElements = null; var innerCount = 0; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { outerEnumerator = _.getEnumerator(); lookup = Enumerable.from(inner) .toLookup(innerKeySelector, Functions.Identity, compareSelector); @@ -742,7 +742,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. return new Enumerable(function () { var enumerator; var lookup = null; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { enumerator = _.getEnumerator(); lookup = Enumerable.from(inner) .toLookup(innerKeySelector, Functions.Identity, compareSelector); @@ -761,9 +761,9 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. return new Enumerable(function () { var enumerator; var queue; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { enumerator = _.getEnumerator(); - queue = new Queue_1.default(enumerables); + queue = new Queue_1.Queue(enumerables); }, function (yielder) { while (true) { while (!enumerator && queue.count) { @@ -797,9 +797,9 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. var firstEnumerator; var secondEnumerator; var keys; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { firstEnumerator = _.getEnumerator(); - keys = new Dictionary_1.default(compareSelector); + keys = new Dictionary_1.Dictionary(compareSelector); }, function (yielder) { var current; if (secondEnumerator === VOID0) { @@ -826,7 +826,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. }, null, isEndless); }; InfiniteEnumerable.prototype.insertAt = function (index, other) { - Integer_1.default.assertZeroOrGreater(index, 'index'); + Integer_1.Integer.assertZeroOrGreater(index, 'index'); var n = index; var _ = this, isEndless = _._isEndless || null; _.throwIfDisposed(); @@ -835,7 +835,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. var secondEnumerator; var count = 0; var isEnumerated = false; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { count = 0; firstEnumerator = _.getEnumerator(); secondEnumerator = Enumerator_1.from(other); @@ -862,8 +862,8 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. var _ = this; return new Enumerable(function () { var buffer, mode, enumerator, alternateEnumerator; - return new EnumeratorBase_1.default(function () { - alternateEnumerator = new ArrayEnumerator_1.default(Enumerable.toArray(sequence)); + return new EnumeratorBase_1.EnumeratorBase(function () { + alternateEnumerator = new ArrayEnumerator_1.ArrayEnumerator(Enumerable.toArray(sequence)); enumerator = _.getEnumerator(); var hasAtLeastOne = enumerator.moveNext(); mode = hasAtLeastOne @@ -909,7 +909,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. var _ = this, disposed = !_.throwIfDisposed(); return new Enumerable(function () { var enumerator; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { try { throwIfDisposed(disposed); enumerator = _.getEnumerator(); @@ -935,7 +935,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. var _ = this, disposed = !_.throwIfDisposed(); return new Enumerable(function () { var enumerator; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { throwIfDisposed(disposed); enumerator = _.getEnumerator(); }, function (yielder) { @@ -956,11 +956,11 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. InfiniteEnumerable.prototype.buffer = function (size) { if (size < 1 || !isFinite(size)) throw new Error("Invalid buffer size."); - Integer_1.default.assert(size, "size"); + Integer_1.Integer.assert(size, "size"); var _ = this, len; return new Enumerable(function () { var enumerator; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { enumerator = _.getEnumerator(); }, function (yielder) { var array = ArrayUtility.initialize(size); @@ -986,7 +986,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. }, _._isEndless); }; return InfiniteEnumerable; - }(DisposableBase_1.default)); + }(DisposableBase_1.DisposableBase)); exports_1("InfiniteEnumerable", InfiniteEnumerable); Enumerable = (function (_super) { __extends(Enumerable, _super); @@ -998,15 +998,15 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. Enumerable.from = function (source) { var e = Enumerable.fromAny(source); if (!e) - throw new UnsupportedEnumerableException_1.default(); + throw new UnsupportedEnumerableException_1.UnsupportedEnumerableException(); return e; }; Enumerable.fromAny = function (source, defaultEnumerable) { if (defaultEnumerable === void 0) { defaultEnumerable = null; } - if (Types_1.default.isObject(source) || Types_1.default.isString(source)) { + if (Types_1.Type.isObject(source) || Types_1.Type.isString(source)) { if (source instanceof Enumerable) return source; - if (Types_1.default.isArrayLike(source)) + if (Types_1.Type.isArrayLike(source)) return new ArrayEnumerable(source); if (Enumerator_1.isEnumerable(source)) return new Enumerable(function () { return source.getEnumerator(); }, null, source.isEndless); @@ -1024,9 +1024,9 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. Enumerable.choice = function (values) { var len = values && values.length; if (!len || !isFinite(len)) - throw new ArgumentOutOfRangeException_1.default('length', length); - return new InfiniteEnumerable(function () { return new EnumeratorBase_1.default(null, function (yielder) { - return yielder.yieldReturn(Integer_1.default.random.select(values)); + throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('length', length); + return new InfiniteEnumerable(function () { return new EnumeratorBase_1.EnumeratorBase(null, function (yielder) { + return yielder.yieldReturn(Integer_1.Integer.random.select(values)); }, true); }); }; Enumerable.chooseFrom = function () { @@ -1039,10 +1039,10 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. Enumerable.cycle = function (values) { var len = values && values.length; if (!len || !isFinite(len)) - throw new ArgumentOutOfRangeException_1.default('length', length); + throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('length', length); return new InfiniteEnumerable(function () { var index = 0; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { index = 0; }, function (yielder) { if (index >= values.length) @@ -1065,20 +1065,20 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. if (count === void 0) { count = Infinity; } if (!(count > 0)) return Enumerable.empty(); - return isFinite(count) && Integer_1.default.assert(count, "count") + return isFinite(count) && Integer_1.Integer.assert(count, "count") ? new FiniteEnumerable(function () { var c = count; var index = 0; - return new EnumeratorBase_1.default(function () { index = 0; }, function (yielder) { return (index++ < c) && yielder.yieldReturn(element); }, null, false); + return new EnumeratorBase_1.EnumeratorBase(function () { index = 0; }, function (yielder) { return (index++ < c) && yielder.yieldReturn(element); }, null, false); }) : new Enumerable(function () { - return new EnumeratorBase_1.default(null, function (yielder) { return yielder.yieldReturn(element); }, true); + return new EnumeratorBase_1.EnumeratorBase(null, function (yielder) { return yielder.yieldReturn(element); }, true); }); }; Enumerable.repeatWithFinalize = function (initializer, finalizer) { return new InfiniteEnumerable(function () { var element; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { element = initializer(); }, function (yielder) { return yielder.yieldReturn(element); }, function () { finalizer(element); @@ -1091,19 +1091,19 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. Enumerable.range = function (start, count, step) { if (step === void 0) { step = 1; } if (!isFinite(start)) - throw new ArgumentOutOfRangeException_1.default("start", start, "Must be a finite number."); + throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException("start", start, "Must be a finite number."); if (!(count > 0)) return Enumerable.empty(); if (!step) - throw new ArgumentOutOfRangeException_1.default("step", step, "Must be a valid value"); + throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException("step", step, "Must be a valid value"); if (!isFinite(step)) - throw new ArgumentOutOfRangeException_1.default("step", step, "Must be a finite number."); - Integer_1.default.assert(count, "count"); + throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException("step", step, "Must be a finite number."); + Integer_1.Integer.assert(count, "count"); return new FiniteEnumerable(function () { var value; var c = count; var index = 0; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { index = 0; value = start; }, function (yielder) { @@ -1124,14 +1124,14 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. if (start === void 0) { start = 0; } if (step === void 0) { step = 1; } if (!isFinite(start)) - throw new ArgumentOutOfRangeException_1.default("start", start, "Must be a finite number."); + throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException("start", start, "Must be a finite number."); if (!step) - throw new ArgumentOutOfRangeException_1.default("step", step, "Must be a valid value"); + throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException("step", step, "Must be a valid value"); if (!isFinite(step)) - throw new ArgumentOutOfRangeException_1.default("step", step, "Must be a finite number."); + throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException("step", step, "Must be a finite number."); return new InfiniteEnumerable(function () { var value; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { value = start; }, function (yielder) { var current = value; @@ -1148,13 +1148,13 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. Enumerable.rangeTo = function (start, to, step) { if (step === void 0) { step = 1; } if (isNaN(to) || !isFinite(to)) - throw new ArgumentOutOfRangeException_1.default("to", to, "Must be a finite number."); + throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException("to", to, "Must be a finite number."); if (step && !isFinite(step)) - throw new ArgumentOutOfRangeException_1.default("step", step, "Must be a finite non-zero number."); + throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException("step", step, "Must be a finite non-zero number."); step = Math.abs(step); return new FiniteEnumerable(function () { var value; - return new EnumeratorBase_1.default(function () { value = start; }, start < to + return new EnumeratorBase_1.EnumeratorBase(function () { value = start; }, start < to ? function (yielder) { var result = value <= to && yielder.yieldReturn(value); @@ -1174,9 +1174,9 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. Enumerable.matches = function (input, pattern, flags) { if (flags === void 0) { flags = ""; } if (input === null || input === VOID0) - throw new ArgumentNullException_1.default("input"); + throw new ArgumentNullException_1.ArgumentNullException("input"); var type = typeof input; - if (type != Types_1.default.STRING) + if (type != Types_1.Type.STRING) throw new Error("Cannot exec RegExp matches of type '" + type + "'."); if (pattern instanceof RegExp) { flags += (pattern.ignoreCase) ? "i" : ""; @@ -1187,7 +1187,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. flags += "g"; return new FiniteEnumerable(function () { var regex; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { regex = new RegExp(pattern, flags); }, function (yielder) { var match = regex.exec(input); @@ -1199,12 +1199,12 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. if (count === void 0) { count = Infinity; } if (isNaN(count) || count <= 0) return Enumerable.empty(); - return isFinite(count) && Integer_1.default.assert(count, "count") + return isFinite(count) && Integer_1.Integer.assert(count, "count") ? new FiniteEnumerable(function () { var c = count; var index = 0; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { index = 0; }, function (yielder) { var current = index++; @@ -1214,7 +1214,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. : new InfiniteEnumerable(function () { var index = 0; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { index = 0; }, function (yielder) { return yielder.yieldReturn(factory(index++)); }, true); }); @@ -1225,7 +1225,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. var index = 0; var value; var isFirst; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { index = 0; value = seed; isFirst = !skipSeed; @@ -1257,14 +1257,14 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. }; Enumerable.weave = function (enumerables) { if (!enumerables) - throw new ArgumentNullException_1.default('enumerables'); + throw new ArgumentNullException_1.ArgumentNullException('enumerables'); return new Enumerable(function () { var queue; var mainEnumerator; var index; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { index = 0; - queue = new Queue_1.default(); + queue = new Queue_1.Queue(); mainEnumerator = Enumerator_1.from(enumerables); }, function (yielder) { var e; @@ -1308,7 +1308,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. Enumerable.prototype.takeWhile = function (predicate) { this.throwIfDisposed(); if (!predicate) - throw new ArgumentNullException_1.default('predicate'); + throw new ArgumentNullException_1.ArgumentNullException('predicate'); return this.doAction(function (element, index) { return predicate(element, index) ? 1 @@ -1318,7 +1318,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. Enumerable.prototype.takeUntil = function (predicate, includeUntilValue) { this.throwIfDisposed(); if (!predicate) - throw new ArgumentNullException_1.default('predicate'); + throw new ArgumentNullException_1.ArgumentNullException('predicate'); if (!includeUntilValue) return this.doAction(function (element, index) { return predicate(element, index) @@ -1357,8 +1357,8 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. if (index === void 0) { index = 0; } this.throwIfDisposed(); if (!target) - throw new ArgumentNullException_1.default("target"); - Integer_1.default.assertZeroOrGreater(index); + throw new ArgumentNullException_1.ArgumentNullException("target"); + Integer_1.Integer.assertZeroOrGreater(index); Enumerator_1.forEach(this, function (x, i) { target[i + index] = x; }); @@ -1367,7 +1367,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. Enumerable.prototype.toLookup = function (keySelector, elementSelector, compareSelector) { if (elementSelector === void 0) { elementSelector = Functions.Identity; } if (compareSelector === void 0) { compareSelector = Functions.Identity; } - var dict = new Dictionary_1.default(compareSelector); + var dict = new Dictionary_1.Dictionary(compareSelector); this.forEach(function (x) { var key = keySelector(x); var element = elementSelector(x); @@ -1388,7 +1388,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. }; Enumerable.prototype.toDictionary = function (keySelector, elementSelector, compareSelector) { if (compareSelector === void 0) { compareSelector = Functions.Identity; } - var dict = new Dictionary_1.default(compareSelector); + var dict = new Dictionary_1.Dictionary(compareSelector); this.forEach(function (x, i) { return dict.addByKeyValue(keySelector(x, i), elementSelector(x, i)); }); return dict; }; @@ -1404,14 +1404,14 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. return _; if (!isFinite(count)) return Enumerable.empty(); - Integer_1.default.assert(count, "count"); + Integer_1.Integer.assert(count, "count"); var c = count; return new Enumerable(function () { var enumerator; var q; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { enumerator = _.getEnumerator(); - q = new Queue_1.default(); + q = new Queue_1.Queue(); }, function (yielder) { while (enumerator.moveNext()) { q.enqueue(enumerator.current); @@ -1430,7 +1430,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. var _ = this; if (!isFinite(count)) return _; - Integer_1.default.assert(count, "count"); + Integer_1.Integer.assert(count, "count"); return _.reverse() .take(count) .reverse(); @@ -1454,7 +1454,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. return new Enumerable(function () { var buffer; var index = 0; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { throwIfDisposed(disposed); buffer = _.toArray(); index = buffer.length; @@ -1472,14 +1472,14 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. var buffer; var capacity; var len; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { throwIfDisposed(disposed); buffer = _.toArray(); capacity = len = buffer.length; }, function (yielder) { if (!len) return yielder.yieldBreak(); - var selectedIndex = Integer_1.default.random(len); + var selectedIndex = Integer_1.Integer.random(len); var selectedValue = buffer[selectedIndex]; buffer[selectedIndex] = buffer[--len]; buffer[len] = null; @@ -1509,7 +1509,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. }; Enumerable.prototype.all = function (predicate) { if (!predicate) - throw new ArgumentNullException_1.default("predicate"); + throw new ArgumentNullException_1.ArgumentNullException("predicate"); var result = true; this.forEach(function (x, i) { if (!predicate(x, i)) { @@ -1591,10 +1591,10 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. var enumerator; var keys; var outs; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { enumerator = _.getEnumerator(); - keys = new Dictionary_1.default(compareSelector); - outs = new Dictionary_1.default(compareSelector); + keys = new Dictionary_1.Dictionary(compareSelector); + outs = new Dictionary_1.Dictionary(compareSelector); Enumerator_1.forEach(second, function (key) { keys.addByKeyValue(key, true); }); @@ -1672,7 +1672,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. var compareKey; var group; var len; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { enumerator = _.getEnumerator(); if (enumerator.moveNext()) { key = keySelector(enumerator.current); @@ -1715,7 +1715,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. return this.scan(func, seed).lastOrDefault(); }; Enumerable.prototype.average = function (selector) { - if (selector === void 0) { selector = Types_1.default.numberOrNaN; } + if (selector === void 0) { selector = Types_1.Type.numberOrNaN; } var count = 0; var sum = this.sum(function (e, i) { count++; @@ -1740,7 +1740,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. return this.aggregate(function (a, b) { return (keySelector(a) < keySelector(b)) ? a : b; }); }; Enumerable.prototype.sum = function (selector) { - if (selector === void 0) { selector = Types_1.default.numberOrNaN; } + if (selector === void 0) { selector = Types_1.Type.numberOrNaN; } var sum = 0; var sumInfinite = 0; this.forEach(function (x) { @@ -1760,7 +1760,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. return isNaN(sum) ? NaN : (sumInfinite ? (sumInfinite * Infinity) : sum); }; Enumerable.prototype.product = function (selector) { - if (selector === void 0) { selector = Types_1.default.numberOrNaN; } + if (selector === void 0) { selector = Types_1.Type.numberOrNaN; } var result = 1, exists = false; this.forEach(function (x, i) { exists = true; @@ -1778,7 +1778,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. return (exists && isNaN(result)) ? NaN : result; }; Enumerable.prototype.quotient = function (selector) { - if (selector === void 0) { selector = Types_1.default.numberOrNaN; } + if (selector === void 0) { selector = Types_1.Type.numberOrNaN; } var count = 0; var result = NaN; this.forEach(function (x, i) { @@ -1839,7 +1839,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. var enumerator; return new Enumerable(function () { var index = 0; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { throwIfDisposed(disposed); if (!enumerator) enumerator = _.getEnumerator(); @@ -1881,7 +1881,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. function ArrayEnumerable(source) { _super.call(this, function () { _.throwIfDisposed(); - return new ArrayEnumerator_1.default(function () { + return new ArrayEnumerator_1.ArrayEnumerator(function () { _.throwIfDisposed("The underlying ArrayEnumerable was disposed.", "ArrayEnumerator"); return _._source; }); @@ -1930,7 +1930,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. if (defaultValue === void 0) { defaultValue = null; } var _ = this; _.throwIfDisposed(); - Integer_1.default.assertZeroOrGreater(index, 'index'); + Integer_1.Integer.assertZeroOrGreater(index, 'index'); var source = _._source; return index < source.length ? source[index] @@ -1957,7 +1957,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. var _ = this; if (!(count > 0)) return _; - return new Enumerable(function () { return new ArrayEnumerator_1.default(function () { return _._source; }, count); }); + return new Enumerable(function () { return new ArrayEnumerator_1.ArrayEnumerator(function () { return _._source; }, count); }); }; ArrayEnumerable.prototype.takeExceptLast = function (count) { if (count === void 0) { count = 1; } @@ -1977,7 +1977,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. }; ArrayEnumerable.prototype.reverse = function () { var _ = this; - return new Enumerable(function () { return new ArrayEnumerator_1.default(function () { return _._source; }, _._source + return new Enumerable(function () { return new ArrayEnumerator_1.ArrayEnumerator(function () { return _._source; }, _._source ? (_._source.length - 1) : 0, -1); }); }; @@ -1986,7 +1986,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. }; ArrayEnumerable.prototype.sequenceEqual = function (second, equalityComparer) { if (equalityComparer === void 0) { equalityComparer = Values.areEqual; } - if (Types_1.default.isArrayLike(second)) + if (Types_1.Type.isArrayLike(second)) return Arrays.areEqual(this.source, second, true, equalityComparer); if (second instanceof ArrayEnumerable) return second.sequenceEqual(this.source, equalityComparer); @@ -2037,7 +2037,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. Lookup.prototype.getEnumerator = function () { var _ = this; var enumerator; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { enumerator = _._dictionary.getEnumerator(); }, function (yielder) { if (!enumerator.moveNext()) @@ -2082,7 +2082,7 @@ System.register(["../System/Compare", "../System/Collections/Array/Compare", ".. var buffer; var indexes; var index = 0; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { index = 0; buffer = Enumerable.toArray(_.source); indexes = createSortContext(_).generateSortedIndexes(buffer); diff --git a/dist/system/System.Linq/Linq.js.map b/dist/system/System.Linq/Linq.js.map index a75e6ddf..772d60e9 100644 --- a/dist/system/System.Linq/Linq.js.map +++ b/dist/system/System.Linq/Linq.js.map @@ -1 +1 @@ -{"version":3,"file":"Linq.js","sourceRoot":"","sources":["../../../source/System.Linq/Linq.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;;;;;;;;QAyCG,eAAe,EACf,KAAK,EACL,KAAK,iBAgBP,SAAS;IAIb;QAEC,MAAM,CAAC,kBAAe,CAAC;IACxB,CAAC;IA+sHD,wBAA2B,KAA2B,EAAE,CAAgB;QACvE,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC;YACN,EAAE,CAAA,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;gBACjB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,iBAAO,CAAC,CAAC,CAAC,CAAC;gBACX,CAAC,GAAG,IAAI,CAAC;YACV,CAAC;QACF,CAAC;QACD,MAAM,CAAC,CAAC,CAAC;IACV,CAAC;IAQD,2BACC,iBAA+C,EAC/C,cAAkC;QAAlC,8BAAkC,GAAlC,qBAAkC;QAGlC,IAAI,OAAO,GAAG,IAAI,0BAAgB,CACjC,cAAc,EACd,iBAAiB,CAAC,WAAW,EAC7B,iBAAiB,CAAC,KAAK,EACvB,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAE7B,EAAE,CAAA,CAAC,iBAAiB,CAAC,MAAM,CAAC;YAC3B,MAAM,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAE7D,MAAM,CAAC,OAAO,CAAC;IAChB,CAAC;IAKD,yBAAyB,QAAgB;QAExC,EAAE,CAAA,CAAC,QAAQ,CAAC;YAAC,MAAM,IAAI,iCAAuB,CAAC,YAAY,CAAC,CAAC;IAC9D,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAjxHK,eAAe,GAAO,EAAE,CAAC;YACzB,KAAK,GAAO,KAAK,CAAC,CAAC;YACnB,KAAK,GAA6B,UAAA,OAAO,IAAI,OAAA,CAAsB,EAAtB,CAAsB,CAAC;YAG1E;gBAA4B,iCAAa;gBAAzC;oBAA4B,8BAAa;gBAWzC,CAAC;gBATA,+BAAO,GAAP,UAAW,CAAG,EAAE,CAAG;oBAElB,MAAM,CAAC,CAAC,GAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACpB,CAAC;gBAED,8BAAM,GAAN,UAAU,CAAG,EAAE,CAAG;oBAEjB,MAAM,CAAC,CAAC,GAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACpB,CAAC;gBACF,oBAAC;YAAD,CAAC,AAXD,CAA4B,mBAAa,GAWxC;YAEG,SAAS,GAAG,IAAI,aAAa,EAAE,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YA6BzB;gBACQ,sCAAc;gBAErB,4BACW,kBAAuC,EACjD,SAAqB;oBAErB,kBAAM,SAAS,CAAC,CAAC;oBAHP,uBAAkB,GAAlB,kBAAkB,CAAqB;oBAIjD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACxB,CAAC;gBAGD,sBAAI,yCAAS;yBAAb;wBAEC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;oBACxB,CAAC;;;mBAAA;gBAGD,0CAAa,GAAb;oBAGC,IAAI,CAAC,eAAe,EAAE,CAAC;oBAEvB,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAClC,CAAC;gBAKS,uCAAU,GAApB;oBAEC,gBAAK,CAAC,UAAU,WAAE,CAAC;oBACnB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;gBAChC,CAAC;gBAKD,yCAAY,GAAZ;oBAEC,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,CAAC,CAAC,eAAe,EAAE,CAAC;oBACpB,MAAM,CAAC,IAAI,kBAAkB,CAAI,cAAM,OAAA,CAAC,CAAC,aAAa,EAAE,EAAjB,CAAiB,CAAC,CAAC;gBAC3D,CAAC;gBASD,qCAAQ,GAAR,UACC,MAAqF,EACrF,WAAqB,EACrB,SAAkC;oBAAlC,yBAAkC,GAAlC,YAAoB,IAAI,CAAC,SAAS;oBAGlC,IAAI,CAAC,GAAG,IAAI,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;oBAE9C,MAAM,CAAC,IAAI,UAAU,CACpB;wBAEC,IAAI,UAAyB,CAAC;wBAC9B,IAAI,KAAK,GAAU,CAAC,CAAC;wBAErB,MAAM,CAAC,IAAI,wBAAc,CACxB;4BAEC,eAAe,CAAC,QAAQ,CAAC,CAAC;4BAE1B,EAAE,CAAA,CAAC,WAAW,CAAC;gCAAC,WAAW,EAAE,CAAC;4BAC9B,KAAK,GAAG,CAAC,CAAC;4BACV,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;wBAEhC,CAAC,EAED,UAAC,OAAO;4BAEP,eAAe,CAAC,QAAQ,CAAC,CAAC;4BAE1B,OAAM,UAAU,CAAC,QAAQ,EAAE,EAC3B,CAAC;gCACA,IAAI,YAAY,GAAQ,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;gCAE5D,EAAE,CAAA,CAAC,YAAY,KAAG,KAAK,IAAI,YAAY,KAAG,CAAsB,CAAC;oCAChE,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gCAE7B,EAAE,CAAA,CAAC,YAAY,KAAG,CAAqB,CAAC;oCACvC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;4BAGjD,CAAC;4BACD,MAAM,CAAC,KAAK,CAAC;wBACd,CAAC,EAED;4BAEC,iBAAO,CAAC,UAAU,CAAC,CAAC;wBACrB,CAAC,EAED,SAAS,CACT,CAAC;oBAEH,CAAC,EAGD;wBAEC,QAAQ,GAAG,IAAI,CAAC;oBACjB,CAAC,EAED,SAAS,CACT,CAAC;gBACH,CAAC;gBAGD,kCAAK,GAAL;oBAEC,IAAI,CAAC,eAAe,EAAE,CAAC;oBACvB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;yBAClB,aAAa,EAAE;yBACf,QAAQ,EAAE,CAAC;gBAEd,CAAC;gBAGD,iCAAI,GAAJ,UAAK,KAAY;oBAEhB,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,CAAC,CAAC,eAAe,EAAE,CAAC;oBAEpB,EAAE,CAAA,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;wBACnB,MAAM,CAAC,UAAU,CAAC,KAAK,EAAK,CAAC;oBAE9B,iBAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;oBAE/B,MAAM,CAAC,IAAI,CAAC,QAAQ,CACnB,UAAC,OAAS,EAAE,KAAa;wBACxB,OAAA,KAAK,GAAC,KAAK;8BACR,CAAqB;8BACrB,CAAuB;oBAF1B,CAE0B,CAC3B,CAAC;gBACH,CAAC;gBAGD,iCAAI,GAAJ,UAAK,KAAY;oBAEhB,EAAE,CAAA,CAAC,CAAC,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC;wBACb,MAAM,CAAC,UAAU,CAAC,KAAK,EAAK,CAAC;oBAE9B,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,CAAC,CAAC,eAAe,EAAE,CAAC;oBAEpB,EAAE,CAAA,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;wBACnB,MAAM,IAAI,qCAA2B,CAAC,OAAO,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC;oBAE1E,iBAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;oBAG/B,MAAM,CAAgB,CAAC,CAAC,QAAQ,CAAC,UAAC,OAAS,EAAE,KAAa,IAAK,OAAA,KAAK,GAAC,KAAK,EAAX,CAAW,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC1F,CAAC;gBAID,sCAAS,GAAT,UAAU,KAAY;oBAErB,IAAI,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;oBACxD,EAAE,CAAA,CAAC,CAAC,KAAG,eAAe,CAAC;wBAAC,MAAM,IAAI,qCAA2B,CAAC,OAAO,EAAC,KAAK,EAAC,8DAA8D,CAAC,CAAC;oBAC5I,MAAM,CAAC,CAAC,CAAC;gBACV,CAAC;gBAED,+CAAkB,GAAlB,UAAmB,KAAY,EAAE,YAAqB;oBAArB,4BAAqB,GAArB,mBAAqB;oBAErD,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,CAAC,CAAC,eAAe,EAAE,CAAC;oBAEpB,iBAAO,CAAC,mBAAmB,CAAC,KAAK,EAAC,OAAO,CAAC,CAAC;oBAC3C,IAAI,CAAC,GAAU,KAAK,CAAC;oBAErB,MAAM,CAAC,eAAK,CACX,IAAI,CAAC,aAAa,EAAE,EACpB,UAAA,CAAC;wBAEA,IAAI,CAAC,GAAG,CAAC,CAAC;wBACV,OAAM,CAAC,CAAC,QAAQ,EAAE,EAClB,CAAC;4BACA,EAAE,CAAA,CAAC,CAAC,IAAE,CAAC,CAAC;gCAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1B,CAAC,EAAE,CAAC;wBACL,CAAC;wBAED,MAAM,CAAC,YAAY,CAAC;oBACrB,CAAC,CAAC,CAAC;gBACL,CAAC;gBAWD,kCAAK,GAAL;oBAEC,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;oBAC7C,EAAE,CAAA,CAAC,CAAC,KAAG,eAAe,CAAC;wBAAC,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;oBACxE,MAAM,CAAC,CAAC,CAAC;gBACV,CAAC;gBAED,2CAAc,GAAd,UAAe,YAAqB;oBAArB,4BAAqB,GAArB,mBAAqB;oBAEnC,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,CAAC,CAAC,eAAe,EAAE,CAAC;oBAEpB,MAAM,CAAC,eAAK,CACX,IAAI,CAAC,aAAa,EAAE,EACpB,UAAA,CAAC,IAAG,OAAA,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,OAAO,GAAG,YAAY,EAAvC,CAAuC,CAC3C,CAAC;gBACH,CAAC;gBAGD,mCAAM,GAAN;oBAEC,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,CAAC,CAAC,eAAe,EAAE,CAAC;oBAEpB,MAAM,CAAC,eAAK,CACX,IAAI,CAAC,aAAa,EAAE,EACpB,UAAA,CAAC;wBAEA,EAAE,CAAA,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAChB,CAAC;4BACA,IAAI,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC;4BACtB,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;gCAAC,MAAM,CAAC,KAAK,CAAC;4BAC/B,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;wBACpE,CAAC;wBACD,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;oBAClD,CAAC,CACD,CAAC;gBACH,CAAC;gBAED,4CAAe,GAAf,UAAgB,YAAqB;oBAArB,4BAAqB,GAArB,mBAAqB;oBAGpC,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,CAAC,CAAC,eAAe,EAAE,CAAC;oBAEpB,MAAM,CAAC,eAAK,CACX,IAAI,CAAC,aAAa,EAAE,EACpB,UAAA,CAAC;wBAEA,EAAE,CAAA,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAChB,CAAC;4BACA,IAAI,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC;4BACtB,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;gCAAC,MAAM,CAAC,KAAK,CAAC;wBAChC,CAAC;wBACD,MAAM,CAAC,YAAY,CAAC;oBACrB,CAAC,CACD,CAAC;gBACH,CAAC;gBAED,gCAAG,GAAH;oBAEC,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,CAAC,CAAC,eAAe,EAAE,CAAC;oBAEpB,MAAM,CAAC,eAAK,CACX,IAAI,CAAC,aAAa,EAAE,EACpB,UAAA,CAAC,IAAG,OAAA,CAAC,CAAC,QAAQ,EAAE,EAAZ,CAAY,CAChB,CAAC;gBACH,CAAC;gBAED,oCAAO,GAAP;oBAEC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACpB,CAAC;gBAqBD,iDAAoB,GAApB,UACC,gBAA+D,EAC/D,cAE+C;oBAF/C,8BAE+C,GAF/C,iBAE6B,SAAS,CAAC,QAAQ;oBAE/C,IAAI,CAAC,GAAG,IAAI,EAAE,SAAS,GAAG,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC;oBAG/C,MAAM,CAAC,IAAI,UAAU,CACpB;wBAEC,IAAI,UAA2B,CAAC;wBAChC,IAAI,SAAS,GAAU,CAAC,CAAC;wBACzB,IAAI,MAAY,EAAE,GAAU,CAAC;wBAE7B,MAAM,CAAC,IAAI,wBAAc,CACxB;4BAEC,SAAS,GAAG,CAAC,CAAC;4BACd,MAAM,GAAG,EAAE,CAAC;4BACZ,GAAG,GAAG,CAAC,CAAC;4BACR,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;wBAChC,CAAC,EAED,UAAC,OAAO;4BAEP,OAAM,IAAI,EACV,CAAC;gCACA,EAAE,CAAA,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CACzB,CAAC;oCACA,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC;oCACnC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;gCAC3E,CAAC;gCAED,EAAE,CAAA,CAAC,CAAC,GAAG,CAAC;oCACP,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gCAE7B,IAAI,IAAI,GAAG,UAAU;qCACnB,IAAI,CAAC,MAAM,CAAC;qCACZ,UAAU,CAAC,gBAAgB,CAAC,CAAC;gCAE/B,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CACf,CAAC;oCACA,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gCAC7B,CAAC;gCACD,IAAI,CACJ,CAAC;oCACA,SAAS,EAAE,CAAC;oCACZ,MAAM,GAAG,EAAE,CAAC;oCACZ,GAAG,GAAG,CAAC,CAAC;oCACR,UAAU,CAAC,OAAO,EAAE,CAAC;oCACrB,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;gCACnC,CAAC;4BACF,CAAC;wBACF,CAAC,EAED;4BAEC,iBAAO,CAAC,UAAU,CAAC,CAAC;4BACpB,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;wBACnB,CAAC,EAED,SAAS,CACT,CAAC;oBACH,CAAC,EACD,IAAI,EAEJ,SAAS,CACT,CAAC;gBACH,CAAC;gBAiBD,+CAAkB,GAAlB,UACC,gBAA+D,EAC/D,cAE+C;oBAF/C,8BAE+C,GAF/C,iBAE6B,SAAS,CAAC,QAAQ;oBAE/C,IAAI,CAAC,GAAG,IAAI,EAAE,SAAS,GAAG,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC;oBAE/C,MAAM,CAAC,IAAI,UAAU,CACpB;wBAGC,IAAI,eAAe,GAAsB,EAAE,CAAC;wBAC5C,IAAI,UAA2B,CAAC;wBAChC,IAAI,GAAU,CAAC;wBAEf,MAAM,CAAC,IAAI,wBAAc,CACxB;4BAEC,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;4BAC/B,GAAG,GAAG,CAAC,CAAC;wBACT,CAAC,EAED,UAAC,OAAO;4BAEP,OAAM,IAAI,EACV,CAAC;gCACA,EAAE,CAAA,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CACzB,CAAC;oCACA,IAAI,KAAK,GAAG,cAAc,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;oCACpD,eAAe,CAAC,GAAG,EAAE,CAAC,GAAG,UAAU,CAAC;oCACpC,IAAI,CAAC,GAAG,UAAU,CAAC,OAAO,CAAM,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;oCACtE,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,GAAG,kBAAe,CAAC;oCACrD,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gCACnC,CAAC;gCAED,EAAE,CAAA,CAAC,GAAG,IAAE,CAAC,CAAC;oCAAC,MAAM,CAAC,KAAK,CAAC;gCAExB,UAAU,CAAC,OAAO,EAAE,CAAC;gCACrB,UAAU,GAAG,eAAe,CAAC,EAAE,GAAG,CAAC,CAAC;gCACpC,eAAe,CAAC,MAAM,GAAG,GAAG,CAAC;4BAC9B,CAAC;wBACF,CAAC,EAED;4BAEC,IACA,CAAC;gCACA,iBAAO,CAAC,UAAU,CAAC,CAAC;4BACrB,CAAC;oCAED,CAAC;gCACA,iBAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;4BAChC,CAAC;wBACF,CAAC,EAED,SAAS,CACT,CAAC;oBACH,CAAC,EACD,IAAI,EACJ,SAAS,CACT,CAAC;gBACH,CAAC;gBAGD,oCAAO,GAAP;oBAEC,IAAI,CAAC,GAAG,IAAI,EAAE,SAAS,GAAG,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC;oBAE/C,MAAM,CAAC,IAAI,UAAU,CACpB;wBAEC,IAAI,UAA2B,CAAC;wBAChC,IAAI,gBAAgB,GAAoB,IAAI,CAAC;wBAE7C,MAAM,CAAC,IAAI,wBAAc,CACxB;4BAEC,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;wBAChC,CAAC,EAED,UAAC,OAAO;4BAEP,OAAM,IAAI,EACV,CAAC;gCACA,EAAE,CAAA,CAAC,gBAAgB,CAAC,CACpB,CAAC;oCACA,EAAE,CAAA,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAC/B,CAAC;wCACA,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;oCACtD,CAAC;oCACD,IAAI,CACJ,CAAC;wCACA,gBAAgB,CAAC,OAAO,EAAE,CAAC;wCAC3B,gBAAgB,GAAG,IAAI,CAAC;oCACzB,CAAC;gCACF,CAAC;gCAED,EAAE,CAAA,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CACzB,CAAC;oCACA,IAAI,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC;oCAG3B,IAAI,CAAC,GAAG,CAAC,eAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oCACnD,EAAE,CAAA,CAAC,CAAC,CAAC,CACL,CAAC;wCACA,gBAAgB;8CACb,CAAC;iDACF,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC;iDAC9B,OAAO,EAAE;iDACT,aAAa,EAAE,CAAC;wCAClB,QAAQ,CAAC;oCACV,CAAC;oCACD,IAAI,CACJ,CAAC;wCACA,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;oCAC/B,CAAC;gCACF,CAAC;gCAED,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;4BAC7B,CAAC;wBACF,CAAC,EAED;4BAEC,iBAAO,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;wBACvC,CAAC,EAED,SAAS,CACT,CAAC;oBACH,CAAC,EACD,IAAI,EACJ,SAAS,CACT,CAAC;gBACH,CAAC;gBAGD,qCAAQ,GAAR,UAAkB,QAAuC;oBAExD,IAAI,CAAC,GAAG,IAAI,CAAC;oBAEb,MAAM,CAAC,IAAI,UAAU,CACpB;wBAEC,IAAI,UAAyB,CAAC;wBAE9B,MAAM,CAAC,IAAI,wBAAc,CACxB;4BAEC,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;4BAC/B,UAAU,CAAC,QAAQ,EAAE,CAAC;wBACvB,CAAC,EAED,UAAC,OAAO;4BAEP,IAAI,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC;4BAC9B,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE;mCACxB,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;wBAC7D,CAAC,EAED;4BAEC,iBAAO,CAAC,UAAU,CAAC,CAAC;wBACrB,CAAC,EAED,CAAC,CAAC,UAAU,CACZ,CAAC;oBACH,CAAC,EACD,IAAI,EAEJ,CAAC,CAAC,UAAU,CACZ,CAAC;gBACH,CAAC;gBAED,iCAAI,GAAJ,UAAK,IAAoB,EAAE,IAAO;oBAGjC,IAAI,SAAS,GAAG,IAAI,KAAG,KAAK,CAAC;oBAC7B,IAAI,CAAC,GAAG,IAAI,CAAC;oBAEb,MAAM,CAAC,IAAI,UAAU,CACpB;wBAEC,IAAI,UAAyB,CAAC;wBAC9B,IAAI,KAAO,CAAC;wBACZ,IAAI,OAAe,CAAC;wBAEpB,MAAM,CAAC,IAAI,wBAAc,CACxB;4BAEC,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;4BAC/B,OAAO,GAAG,IAAI,CAAC;wBAChB,CAAC,EAED,UAAC,OAAO;4BAEP,EAAE,CAAA,CAAC,OAAO,CAAC,CACX,CAAC;gCACA,OAAO,GAAG,KAAK,CAAC;gCAEhB,MAAM,CAAC,SAAS;sCACb,OAAO,CAAC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC;sCACjC,UAAU,CAAC,QAAQ,EAAE,IAAI,OAAO,CAAC,WAAW,CAAC,KAAK;0CAClD,UAAU,CAAC,OAAO,CAAC,CAAC;4BACxB,CAAC;4BAED,MAAM,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;kCAC3B,OAAO,CAAC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;kCAC5D,KAAK,CAAC;wBACV,CAAC,EAED;4BAEC,iBAAO,CAAC,UAAU,CAAC,CAAC;wBACrB,CAAC,EAED,CAAC,CAAC,UAAU,CACZ,CAAC;oBACH,CAAC,EACD,IAAI,EAEJ,CAAC,CAAC,UAAU,CACZ,CAAC;gBACH,CAAC;gBAID,mCAAM,GAAN,UAAgB,QAA6B;oBAE5C,IAAI,CAAC,GAAG,IAAI,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;oBAE9C,MAAM,CAAC,IAAI,UAAU,CACpB;wBAEC,IAAI,UAAyB,CAAC;wBAC9B,IAAI,KAAK,GAAU,CAAC,CAAC;wBAErB,MAAM,CAAC,IAAI,wBAAc,CACxB;4BAEC,eAAe,CAAC,QAAQ,CAAC,CAAC;4BAE1B,KAAK,GAAG,CAAC,CAAC;4BACV,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;wBAChC,CAAC,EAED,UAAC,OAAO;4BAEP,eAAe,CAAC,QAAQ,CAAC,CAAC;4BAE1B,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE;kCACzB,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;kCAC1D,OAAO,CAAC,UAAU,EAAE,CAAC;wBACzB,CAAC,EAED;4BAEC,iBAAO,CAAC,UAAU,CAAC,CAAC;wBACrB,CAAC,EAED,CAAC,CAAC,UAAU,CACZ,CAAC;oBACH,CAAC,EAED;wBAEC,QAAQ,GAAG,IAAI,CAAC;oBACjB,CAAC,EAED,CAAC,CAAC,UAAU,CACZ,CAAC;gBACH,CAAC;gBASS,wCAAW,GAArB,UACC,kBAA4D,EAC5D,cAA2D;oBAE3D,IAAI,CAAC,GAAG,IAAI,EAAE,SAAS,GAAG,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC;oBAC/C,EAAE,CAAA,CAAC,CAAC,cAAc,CAAC;wBAClB,cAAc,GAAG,UAAC,CAAG,EAAE,CAAK,IAAK,OAAS,CAAC,EAAV,CAAU,CAAC;oBAE7C,MAAM,CAAC,IAAI,UAAU,CACpB;wBAEC,IAAI,UAAyB,CAAC;wBAC9B,IAAI,gBAAiC,CAAC;wBACtC,IAAI,KAAK,GAAU,CAAC,CAAC;wBAErB,MAAM,CAAC,IAAI,wBAAc,CACxB;4BAEC,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;4BAC/B,gBAAgB,GAAG,SAAS,CAAC;4BAC7B,KAAK,GAAG,CAAC,CAAC;wBACX,CAAC,EAED,UAAC,OAAO;4BAIP,EAAE,CAAA,CAAC,gBAAgB,KAAG,KAAK,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;gCACrD,MAAM,CAAC,KAAK,CAAC;4BAGd,GACA,CAAC;gCAGA,EAAE,CAAA,CAAC,CAAC,gBAAgB,CAAC,CACrB,CAAC;oCACA,IAAI,SAAS,GAAG,kBAAkB,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;oCAGhE,EAAE,CAAA,CAAC,CAAC,SAAS,CAAC;wCACb,QAAQ,CAAC;oCAEV,gBAAgB,GAAG,iBAAc,CAAC,SAAS,CAAC,CAAC;gCAC9C,CAAC;gCAED,EAAE,CAAA,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;oCAC9B,MAAM,CAAC,OAAO,CAAC,WAAW,CACzB,cAAc,CACb,UAAU,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAC5C,CACD,CAAC;gCAIH,gBAAgB,CAAC,OAAO,EAAE,CAAC;gCAC3B,gBAAgB,GAAG,IAAI,CAAC;4BAEzB,CAAC,QACK,UAAU,CAAC,QAAQ,EAAE,EAAE;4BAE7B,MAAM,CAAC,KAAK,CAAC;wBACd,CAAC,EAED;4BAEC,iBAAO,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;4BACtC,UAAU,GAAG,IAAI,CAAC;4BAClB,gBAAgB,GAAG,IAAI,CAAC;wBACzB,CAAC,EAED,SAAS,CACT,CAAC;oBACH,CAAC,EACD,IAAI,EAEJ,SAAS,CACT,CAAC;gBACH,CAAC;gBASD,uCAAU,GAAV,UACC,kBAAuD,EACvD,cAAsD;oBAEtD,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;gBAC7D,CAAC;gBAES,oCAAO,GAAjB,UAA2B,QAA6B;oBAGvD,IAAI,CAAC,GAAG,IAAI,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;oBAE9C,MAAM,CAAC,IAAI,UAAU,CACpB;wBAEC,IAAI,UAAyB,CAAC;wBAC9B,IAAI,KAAK,GAAU,CAAC,CAAC;wBAErB,MAAM,CAAC,IAAI,wBAAc,CACxB;4BAEC,eAAe,CAAC,QAAQ,CAAC,CAAC;4BAE1B,KAAK,GAAG,CAAC,CAAC;4BACV,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;wBAChC,CAAC,EAED,UAAC,OAAO;4BAEP,eAAe,CAAC,QAAQ,CAAC,CAAC;4BAE1B,OAAM,UAAU,CAAC,QAAQ,EAAE,EAC3B,CAAC;gCACA,IAAI,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;gCACnD,EAAE,CAAA,CAAC,MAAM,KAAG,IAAI,IAAI,MAAM,KAAG,KAAK,CAAC;oCAClC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;4BACrC,CAAC;4BAED,MAAM,CAAC,KAAK,CAAC;wBACd,CAAC,EAED;4BAEC,iBAAO,CAAC,UAAU,CAAC,CAAC;wBACrB,CAAC,EAED,CAAC,CAAC,UAAU,CACZ,CAAC;oBACH,CAAC,EAED;wBAEC,QAAQ,GAAG,IAAI,CAAC;oBACjB,CAAC,EAED,CAAC,CAAC,UAAU,CACZ,CAAC;gBACH,CAAC;gBAOD,mCAAM,GAAN,UAAO,QAA8C;oBAA9C,wBAA8C,GAA9C,WAA4B,SAAS,CAAC,QAAQ;oBAEpD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;gBAC9B,CAAC;gBAED,kCAAK,GAAL,UAAM,SAAsB;oBAG3B,IAAI,CAAC,GAAG,IAAI,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;oBAE9C,MAAM,CAAC,IAAI,UAAU,CACpB;wBAEC,IAAI,UAAyB,CAAC;wBAC9B,IAAI,KAAK,GAAU,CAAC,CAAC;wBAErB,MAAM,CAAC,IAAI,wBAAc,CACxB;4BAEC,eAAe,CAAC,QAAQ,CAAC,CAAC;4BAE1B,KAAK,GAAG,CAAC,CAAC;4BACV,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;wBAChC,CAAC,EAED,UAAC,OAAO;4BAEP,eAAe,CAAC,QAAQ,CAAC,CAAC;4BAE1B,OAAM,UAAU,CAAC,QAAQ,EAAE,EAC3B,CAAC;gCACA,EAAE,CAAA,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;oCACzC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;4BACjD,CAAC;4BACD,MAAM,CAAC,KAAK,CAAC;wBACd,CAAC,EAED;4BAEC,iBAAO,CAAC,UAAU,CAAC,CAAC;wBACrB,CAAC,EAED,CAAC,CAAC,UAAU,CACZ,CAAC;oBACH,CAAC,EAED;wBAEC,QAAQ,GAAG,IAAI,CAAC;oBACjB,CAAC,EAED,CAAC,CAAC,UAAU,CACZ,CAAC;gBAEH,CAAC;gBAGD,mCAAM,GAAN,UAAc,IAAQ;oBAErB,IAAI,QAAe,CAAC;oBACpB,MAAM,CAAA,CAAM,IAAI,CAAC,CACjB,CAAC;wBACA,KAAK,MAAM;4BACV,QAAQ,GAAG,eAAI,CAAC,MAAM,CAAC;4BACvB,KAAK,CAAC;wBACP,KAAK,MAAM;4BACV,QAAQ,GAAG,eAAI,CAAC,MAAM,CAAC;4BACvB,KAAK,CAAC;wBACP,KAAK,OAAO;4BACX,QAAQ,GAAG,eAAI,CAAC,OAAO,CAAC;4BACxB,KAAK,CAAC;wBACP,KAAK,QAAQ;4BACZ,QAAQ,GAAG,eAAI,CAAC,QAAQ,CAAC;4BACzB,KAAK,CAAC;wBACP;4BACC,MAAM,CAAkB,IAAI;iCAC1B,KAAK,CAAC,UAAA,CAAC,IAAE,OAAA,CAAC,YAAY,IAAI,EAAjB,CAAiB,CAAC,CAAC;oBAChC,CAAC;oBACD,MAAM,CAAkB,IAAI;yBAC1B,MAAM,EAAE;yBACR,KAAK,CAAC,UAAA,CAAC,IAAE,OAAA,CAAC,OAAO,CAAC,CAAC,KAAG,QAAQ,EAArB,CAAqB,CAAC,CAAC;gBACnC,CAAC;gBAED,mCAAM,GAAN,UACC,MAA4B,EAC5B,eAAsC;oBAEtC,IAAI,CAAC,GAAG,IAAI,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;oBAE9C,MAAM,CAAC,IAAI,UAAU,CACpB;wBAEC,IAAI,UAAyB,CAAC;wBAC9B,IAAI,IAA2B,CAAC;wBAEhC,MAAM,CAAC,IAAI,wBAAc,CACxB;4BAEC,eAAe,CAAC,QAAQ,CAAC,CAAC;4BAC1B,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;4BAC/B,IAAI,GAAG,IAAI,oBAAU,CAAa,eAAe,CAAC,CAAC;4BACnD,EAAE,CAAA,CAAC,MAAM,CAAC;gCACT,oBAAO,CAAC,MAAM,EAAE,UAAA,GAAG,IAAI,OAAA,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,EAA7B,CAA6B,CAAC,CAAC;wBACxD,CAAC,EAED,UAAC,OAAO;4BAEP,eAAe,CAAC,QAAQ,CAAC,CAAC;4BAC1B,OAAM,UAAU,CAAC,QAAQ,EAAE,EAC3B,CAAC;gCACA,IAAI,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;gCACjC,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAC9B,CAAC;oCACA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;oCAClC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gCACrC,CAAC;4BACF,CAAC;4BACD,MAAM,CAAC,KAAK,CAAC;wBACd,CAAC,EAED;4BAEC,iBAAO,CAAC,UAAU,CAAC,CAAC;4BACpB,IAAI,CAAC,KAAK,EAAE,CAAC;wBACd,CAAC,EAED,CAAC,CAAC,UAAU,CACZ,CAAC;oBACH,CAAC,EAED;wBAEC,QAAQ,GAAG,IAAI,CAAC;oBACjB,CAAC,EAED,CAAC,CAAC,UAAU,CACZ,CAAC;gBACH,CAAC;gBAED,qCAAQ,GAAR,UAAS,eAA+B;oBAEvC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;gBAC3C,CAAC;gBAGD,iDAAoB,GAApB,UAA+B,eAA0D;oBAA1D,+BAA0D,GAA1D,kBAAwC,SAAS,CAAC,QAAQ;oBAGxF,IAAI,CAAC,GAAG,IAAI,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;oBAE9C,MAAM,CAAC,IAAI,UAAU,CACpB;wBAEC,IAAI,UAAyB,CAAC;wBAC9B,IAAI,UAAmB,CAAC;wBACxB,IAAI,OAAO,GAAW,IAAI,CAAC;wBAE3B,MAAM,CAAC,IAAI,wBAAc,CACxB;4BAEC,eAAe,CAAC,QAAQ,CAAC,CAAC;4BAC1B,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;wBAChC,CAAC,EAED,UAAC,OAAO;4BAEP,eAAe,CAAC,QAAQ,CAAC,CAAC;4BAC1B,OAAM,UAAU,CAAC,QAAQ,EAAE,EAC3B,CAAC;gCACA,IAAI,GAAG,GAAG,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;gCAE9C,EAAE,CAAA,CAAC,OAAO,CAAC,CACX,CAAC;oCACA,OAAO,GAAG,KAAK,CAAC;gCACjB,CAAC;gCACD,IAAI,CAAC,EAAE,CAAA,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAC,GAAG,CAAC,CAAC,CACxC,CAAC;oCACA,QAAQ,CAAC;gCACV,CAAC;gCAED,UAAU,GAAG,GAAG,CAAC;gCACjB,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;4BAChD,CAAC;4BACD,MAAM,CAAC,KAAK,CAAC;wBACd,CAAC,EAED;4BAEC,iBAAO,CAAC,UAAU,CAAC,CAAC;wBACrB,CAAC,EAED,CAAC,CAAC,UAAU,CACZ,CAAC;oBACH,CAAC,EAED;wBAEC,QAAQ,GAAG,IAAI,CAAC;oBACjB,CAAC,EAED,CAAC,CAAC,UAAU,CACZ,CAAC;gBACH,CAAC;gBAQD,2CAAc,GAAd,UAAe,YAAqB;oBAArB,4BAAqB,GAArB,mBAAqB;oBAEnC,IAAI,CAAC,GAAG,IAAI,EAAE,QAAQ,GAAW,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;oBAEtD,MAAM,CAAC,IAAI,UAAU,CACpB;wBAEC,IAAI,UAAyB,CAAC;wBAC9B,IAAI,OAAe,CAAC;wBAEpB,MAAM,CAAC,IAAI,wBAAc,CACxB;4BAEC,OAAO,GAAG,IAAI,CAAC;4BACf,eAAe,CAAC,QAAQ,CAAC,CAAC;4BAC1B,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;wBAChC,CAAC,EAED,UAAC,OAAO;4BAEP,eAAe,CAAC,QAAQ,CAAC,CAAC;4BAE1B,EAAE,CAAA,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CACzB,CAAC;gCACA,OAAO,GAAG,KAAK,CAAC;gCAChB,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;4BAChD,CAAC;4BACD,IAAI,CAAC,EAAE,CAAA,CAAC,OAAO,CAAC,CAChB,CAAC;gCACA,OAAO,GAAG,KAAK,CAAC;gCAChB,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;4BAC1C,CAAC;4BACD,MAAM,CAAC,KAAK,CAAC;wBACd,CAAC,EAED;4BAEC,iBAAO,CAAC,UAAU,CAAC,CAAC;wBACrB,CAAC,EAED,CAAC,CAAC,UAAU,CACZ,CAAC;oBACH,CAAC,EACD,IAAI,EAEJ,CAAC,CAAC,UAAU,CACZ,CAAC;gBACH,CAAC;gBAED,gCAAG,GAAH,UACC,MAAkC,EAClC,cAAkE;oBAElE,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,CAAC,CAAC,eAAe,EAAE,CAAC;oBAIpB,MAAM,CAAC,IAAI,UAAU,CACpB;wBAEC,IAAI,eAA8B,CAAC;wBACnC,IAAI,gBAAqC,CAAC;wBAC1C,IAAI,KAAK,GAAU,CAAC,CAAC;wBAErB,MAAM,CAAC,IAAI,wBAAc,CACxB;4BAEC,KAAK,GAAG,CAAC,CAAC;4BACV,eAAe,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;4BACpC,gBAAgB,GAAG,iBAAc,CAAU,MAAM,CAAC,CAAC;wBACpD,CAAC,EAED,UAAC,OAAO,IAAI,OAAA,eAAe,CAAC,QAAQ,EAAE;+BACnC,gBAAgB,CAAC,QAAQ,EAAE;+BAC3B,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,eAAe,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,EAFtF,CAEsF,EAElG;4BAEC,iBAAO,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;wBAC5C,CAAC,CACD,CAAC;oBACH,CAAC,CACD,CAAC;gBACH,CAAC;gBAGD,wCAAW,GAAX,UACC,MAA0C,EAC1C,cAAkE;oBAElE,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,CAAC,CAAC,eAAe,EAAE,CAAC;oBAEpB,EAAE,CAAA,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;wBACjB,MAAM,CAAC,UAAU,CAAC,KAAK,EAAW,CAAC;oBAEpC,MAAM,CAAC,IAAI,UAAU,CACpB;wBAEC,IAAI,UAAqB,CAAC;wBAC1B,IAAI,eAA8B,CAAC;wBACnC,IAAI,gBAAqC,CAAC;wBAC1C,IAAI,KAAK,GAAU,CAAC,CAAC;wBAErB,MAAM,CAAC,IAAI,wBAAc,CACxB;4BAEC,UAAU,GAAG,IAAI,eAAK,CAAM,MAAM,CAAC,CAAC;4BACpC,KAAK,GAAG,CAAC,CAAC;4BACV,eAAe,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;4BACpC,gBAAgB,GAAG,IAAI,CAAC;wBACzB,CAAC,EAED,UAAC,OAAO;4BAEP,EAAE,CAAA,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAC9B,CAAC;gCACA,OAAM,IAAI,EACV,CAAC;oCACA,OAAM,CAAC,gBAAgB,EACvB,CAAC;wCACA,EAAE,CAAA,CAAC,UAAU,CAAC,KAAK,CAAC,CACpB,CAAC;4CACA,IAAI,IAAI,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;4CAChC,EAAE,CAAA,CAAC,IAAI,CAAC;gDACP,gBAAgB,GAAG,iBAAc,CAAU,IAAI,CAAC,CAAC;wCACnD,CAAC;wCACD,IAAI;4CACH,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;oCAC9B,CAAC;oCAED,EAAE,CAAA,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;wCAC9B,MAAM,CAAC,OAAO,CAAC,WAAW,CACzB,cAAc,CAAC,eAAe,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAC1E,CAAC;oCAEH,gBAAgB,CAAC,OAAO,EAAE,CAAC;oCAC3B,gBAAgB,GAAG,IAAI,CAAC;gCACzB,CAAC;4BACF,CAAC;4BAED,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;wBAC7B,CAAC,EAED;4BAEC,iBAAO,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;wBACtC,CAAC,CACD,CAAC;oBACH,CAAC,CACD,CAAC;gBACH,CAAC;gBAKD,iCAAI,GAAJ,UACC,KAAgC,EAChC,gBAAkC,EAClC,gBAAuC,EACvC,cAAiD,EACjD,eAA6D;oBAA7D,+BAA6D,GAA7D,kBAA2C,SAAS,CAAC,QAAQ;oBAG7D,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,MAAM,CAAC,IAAI,UAAU,CACpB;wBAEC,IAAI,eAA8B,CAAC;wBACnC,IAAI,MAA2B,CAAC;wBAChC,IAAI,aAAa,GAAY,IAAI,CAAC;wBAClC,IAAI,UAAU,GAAU,CAAC,CAAC;wBAE1B,MAAM,CAAC,IAAI,wBAAc,CACxB;4BAEC,eAAe,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;4BACpC,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;iCAC7B,QAAQ,CAAC,gBAAgB,EAAE,SAAS,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;wBACnE,CAAC,EAED,UAAC,OAAO;4BAEP,OAAM,IAAI,EACV,CAAC;gCACA,EAAE,CAAA,CAAC,aAAa,IAAE,IAAI,CAAC,CACvB,CAAC;oCACA,IAAI,YAAY,GAAG,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC;oCAC/C,EAAE,CAAA,CAAC,YAAY,KAAG,KAAK,CAAC;wCACvB,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;oCAEnF,YAAY,GAAG,IAAI,CAAC;oCACpB,UAAU,GAAG,CAAC,CAAC;gCAChB,CAAC;gCAED,EAAE,CAAA,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAC9B,CAAC;oCACA,IAAI,GAAG,GAAG,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;oCACpD,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gCACjC,CAAC;gCACD,IAAI,CACJ,CAAC;oCACA,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gCAC7B,CAAC;4BACF,CAAC;wBACF,CAAC,EAED;4BAEC,iBAAO,CAAC,eAAe,CAAC,CAAC;wBAC1B,CAAC,CACD,CAAC;oBACH,CAAC,CACD,CAAC;gBACH,CAAC;gBAED,sCAAS,GAAT,UACC,KAAgC,EAChC,gBAAkC,EAClC,gBAAuC,EACvC,cAAmD,EACnD,eAA6D;oBAA7D,+BAA6D,GAA7D,kBAA2C,SAAS,CAAC,QAAQ;oBAE7D,IAAI,CAAC,GAAG,IAAI,CAAC;oBAEb,MAAM,CAAC,IAAI,UAAU,CACpB;wBAEC,IAAI,UAAyB,CAAC;wBAC9B,IAAI,MAAM,GAAyB,IAAI,CAAC;wBAExC,MAAM,CAAC,IAAI,wBAAc,CACxB;4BAEC,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;4BAC/B,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;iCAC7B,QAAQ,CAAC,gBAAgB,EAAE,SAAS,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;wBACnE,CAAC,EAED,UAAC,OAAO;4BACR,OAAA,UAAU,CAAC,QAAQ,EAAE;mCAClB,OAAO,CAAC,WAAW,CACrB,cAAc,CACb,UAAU,CAAC,OAAO,EAClB,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAChD,CACD;wBAND,CAMC,EAED;4BAEC,iBAAO,CAAC,UAAU,CAAC,CAAC;wBACrB,CAAC,CACD,CAAC;oBACH,CAAC,CACD,CAAC;gBACH,CAAC;gBAGD,kCAAK,GAAL,UAAM,WAAyC;oBAE9C,IAAI,CAAC,GAAG,IAAI,EAAE,SAAS,GAAG,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC;oBAE/C,EAAE,CAAA,CAAC,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,IAAE,CAAC,CAAC;wBACxC,MAAM,CAAC,CAAC,CAAC;oBAEV,MAAM,CAAC,IAAI,UAAU,CACpB;wBAEC,IAAI,UAAyB,CAAC;wBAC9B,IAAI,KAAkC,CAAC;wBAEvC,MAAM,CAAC,IAAI,wBAAc,CACxB;4BAGC,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;4BAC/B,KAAK,GAAG,IAAI,eAAK,CAAwB,WAAW,CAAC,CAAC;wBACvD,CAAC,EAED,UAAC,OAAO;4BAEP,OAAM,IAAI,EACV,CAAC;gCAEA,OAAM,CAAC,UAAU,IAAI,KAAK,CAAC,KAAK,EAChC,CAAC;oCACA,UAAU,GAAG,iBAAc,CAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gCACjD,CAAC;gCAED,EAAE,CAAA,CAAC,UAAU,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;oCACtC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;gCAEhD,EAAE,CAAA,CAAC,UAAU,CAAC,CACd,CAAC;oCACA,UAAU,CAAC,OAAO,EAAE,CAAC;oCACrB,UAAU,GAAG,IAAI,CAAC;oCAClB,QAAQ,CAAC;gCACV,CAAC;gCAED,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;4BAC7B,CAAC;wBACF,CAAC,EAED;4BAEC,iBAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;wBAC5B,CAAC,EAED,SAAS,CACT,CAAC;oBACH,CAAC,EACD,IAAI,EACJ,SAAS,CACT,CAAC;gBACH,CAAC;gBAED,mCAAM,GAAN;oBAAO,qBAA2C;yBAA3C,WAA2C,CAA3C,sBAA2C,CAA3C,IAA2C;wBAA3C,oCAA2C;;oBAEjD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBAChC,CAAC;gBAGD,kCAAK,GAAL,UACC,MAA4B,EAC5B,eAA0D;oBAA1D,+BAA0D,GAA1D,kBAAwC,SAAS,CAAC,QAAQ;oBAE1D,IAAI,CAAC,GAAG,IAAI,EAAE,SAAS,GAAG,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC;oBAC/C,MAAM,CAAC,IAAI,UAAU,CACpB;wBAEC,IAAI,eAA8B,CAAC;wBACnC,IAAI,gBAA+B,CAAC;wBACpC,IAAI,IAAuB,CAAC;wBAE5B,MAAM,CAAC,IAAI,wBAAc,CACxB;4BAEC,eAAe,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;4BACpC,IAAI,GAAG,IAAI,oBAAU,CAAS,eAAe,CAAC,CAAC;wBAChD,CAAC,EAED,UAAC,OAAO;4BAEP,IAAI,OAAS,CAAC;4BACd,EAAE,CAAA,CAAC,gBAAgB,KAAG,KAAK,CAAC,CAC5B,CAAC;gCACA,OAAM,eAAe,CAAC,QAAQ,EAAE,EAChC,CAAC;oCACA,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC;oCAClC,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAC9B,CAAC;wCACA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;wCAClC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;oCACrC,CAAC;gCACF,CAAC;gCACD,gBAAgB,GAAG,iBAAc,CAAC,MAAM,CAAC,CAAC;4BAC3C,CAAC;4BACD,OAAM,gBAAgB,CAAC,QAAQ,EAAE,EACjC,CAAC;gCACA,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC;gCACnC,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAC9B,CAAC;oCACA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;oCAClC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gCACrC,CAAC;4BACF,CAAC;4BACD,MAAM,CAAC,KAAK,CAAC;wBACd,CAAC,EAED;4BAEC,iBAAO,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;wBAC5C,CAAC,EAED,SAAS,CACT,CAAC;oBACH,CAAC,EACD,IAAI,EAEJ,SAAS,CACT,CAAC;gBACH,CAAC;gBAED,qCAAQ,GAAR,UAAS,KAAY,EAAE,KAA2B;oBAEjD,iBAAO,CAAC,mBAAmB,CAAC,KAAK,EAAC,OAAO,CAAC,CAAC;oBAC3C,IAAI,CAAC,GAAU,KAAK,CAAC;oBAErB,IAAI,CAAC,GAAG,IAAI,EAAE,SAAS,GAAG,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC;oBAC/C,CAAC,CAAC,eAAe,EAAE,CAAC;oBAEpB,MAAM,CAAC,IAAI,UAAU,CACpB;wBAGC,IAAI,eAA8B,CAAC;wBACnC,IAAI,gBAA+B,CAAC;wBAEpC,IAAI,KAAK,GAAU,CAAC,CAAC;wBACrB,IAAI,YAAY,GAAW,KAAK,CAAC;wBAEjC,MAAM,CAAC,IAAI,wBAAc,CACxB;4BAEC,KAAK,GAAG,CAAC,CAAC;4BACV,eAAe,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;4BACpC,gBAAgB,GAAG,iBAAc,CAAI,KAAK,CAAC,CAAC;4BAC5C,YAAY,GAAG,KAAK,CAAC;wBACtB,CAAC,EAED,UAAC,OAAO;4BAEP,EAAE,CAAA,CAAC,KAAK,IAAE,CAAC,CAAC,CACZ,CAAC;gCACA,YAAY,GAAG,IAAI,CAAC;gCACpB,EAAE,CAAA,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;oCAC9B,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;4BACvD,CAAC;4BAED,EAAE,CAAA,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAC9B,CAAC;gCACA,KAAK,EAAE,CAAC;gCACR,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;4BACrD,CAAC;4BAED,MAAM,CAAC,CAAC,YAAY;mCAChB,gBAAgB,CAAC,QAAQ,EAAE;mCAC3B,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;wBACnD,CAAC,EAED;4BAEC,iBAAO,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;wBAC5C,CAAC,EAED,SAAS,CACT,CAAC;oBACH,CAAC,EACD,IAAI,EAEJ,SAAS,CACT,CAAC;gBACH,CAAC;gBAGD,8CAAiB,GAAjB,UAAkB,QAA8B;oBAE/C,IAAI,CAAC,GAAG,IAAI,CAAC;oBAEb,MAAM,CAAC,IAAI,UAAU,CACpB;wBAEC,IAAI,MAAQ,EACR,IAAqB,EACrB,UAAyB,EACzB,mBAAkC,CAAC;wBAEvC,MAAM,CAAC,IAAI,wBAAc,CACxB;4BAGC,mBAAmB,GAAG,IAAI,yBAAe,CACxC,UAAU,CAAC,OAAO,CAAI,QAAQ,CAAC,CAC/B,CAAC;4BAEF,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;4BAE/B,IAAI,aAAa,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;4BAC1C,IAAI,GAAG,aAAa;kCACjB,CAAuB;kCACvB,CAAsB,CAAC;4BAE1B,EAAE,CAAA,CAAC,aAAa,CAAC;gCAChB,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC;wBAC9B,CAAC,EAED,UAAC,OAAO;4BAEP,MAAM,CAAA,CAAC,IAAI,CAAC,CACZ,CAAC;gCACA,KAAK,CAAsB;oCAC1B,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gCAE7B,KAAK,CAAqB;oCACzB,EAAE,CAAA,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC;wCACjC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;oCACzD,mBAAmB,CAAC,KAAK,EAAE,CAAC;oCAC5B,IAAI,GAAG,CAAuB,CAAC;oCAC/B,KAAK,CAAC;4BACR,CAAC;4BAED,IAAI,MAAM,GAAG,MAAM,CAAC;4BAKpB,IAAI,OAAO,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;4BACpC,IAAI,GAAG,OAAO;kCACX,CAAqB;kCACrB,CAAsB,CAAC;4BAE1B,EAAE,CAAA,CAAC,OAAO,CAAC;gCACV,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC;4BAE7B,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;wBAEpC,CAAC,EAED;4BAEC,iBAAO,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;wBAC1C,CAAC,EAED,CAAC,CAAC,UAAU,CACZ,CAAC;oBACH,CAAC,EACD,IAAI,EAEJ,CAAC,CAAC,UAAU,CACZ,CAAC;gBACH,CAAC;gBAED,4CAAe,GAAf,UAAgB,KAAO;oBAEtB,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBACvD,CAAC;gBAED,sCAAS,GAAT;oBAAU,kBAAe;yBAAf,WAAe,CAAf,sBAAe,CAAf,IAAe;wBAAf,iCAAe;;oBAExB,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;gBACzC,CAAC;gBAID,uCAAU,GAAV,UAAW,OAAuB;oBAEjC,IAAI,CAAC,GAAG,IAAI,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;oBAC9C,MAAM,CAAC,IAAI,UAAU,CACpB;wBAEC,IAAI,UAAyB,CAAC;wBAE9B,MAAM,CAAC,IAAI,wBAAc,CACxB;4BAEC,IACA,CAAC;gCACA,eAAe,CAAC,QAAQ,CAAC,CAAC;gCAC1B,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;4BAChC,CACA;4BAAA,KAAK,CAAA,CAAC,CAAC,CAAC,CACR,CAAC;4BAED,CAAC;wBACF,CAAC,EAED,UAAC,OAAO;4BAEP,IACA,CAAC;gCACA,eAAe,CAAC,QAAQ,CAAC,CAAC;gCAC1B,EAAE,CAAA,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;oCACxB,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;4BACjD,CACA;4BAAA,KAAK,CAAA,CAAC,CAAC,CAAC,CACR,CAAC;gCACA,OAAO,CAAC,CAAC,CAAC,CAAC;4BACZ,CAAC;4BACD,MAAM,CAAC,KAAK,CAAC;wBACd,CAAC,EAED;4BAEC,iBAAO,CAAC,UAAU,CAAC,CAAC;wBACrB,CAAC,CACD,CAAC;oBACH,CAAC,CACD,CAAC;gBACH,CAAC;gBAED,0CAAa,GAAb,UAAc,MAAiB;oBAE9B,IAAI,CAAC,GAAG,IAAI,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;oBAE9C,MAAM,CAAC,IAAI,UAAU,CACpB;wBAEC,IAAI,UAAyB,CAAC;wBAE9B,MAAM,CAAC,IAAI,wBAAc,CACxB;4BAEC,eAAe,CAAC,QAAQ,CAAC,CAAC;4BAC1B,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;wBAChC,CAAC,EAED,UAAC,OAAO;4BAEP,eAAe,CAAC,QAAQ,CAAC,CAAC;4BAC1B,MAAM,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;kCAC3B,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC;kCACvC,KAAK,CAAC;wBACV,CAAC,EAED;4BAEC,IACA,CAAC;gCACA,iBAAO,CAAC,UAAU,CAAC,CAAC;4BACrB,CAAC;oCAED,CAAC;gCACA,MAAM,EAAE,CAAC;4BACV,CAAC;wBACF,CAAC,CACD,CAAC;oBACH,CAAC,CACD,CAAC;gBACH,CAAC;gBAGD,mCAAM,GAAN,UAAO,IAAW;oBAEjB,EAAE,CAAA,CAAC,IAAI,GAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;wBAC5B,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;oBAEzC,iBAAO,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;oBAE7B,IAAI,CAAC,GAAG,IAAI,EAAE,GAAU,CAAC;oBAEzB,MAAM,CAAC,IAAI,UAAU,CACpB;wBAEC,IAAI,UAAyB,CAAC;wBAC9B,MAAM,CAAC,IAAI,wBAAc,CACxB;4BAEC,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;wBAChC,CAAC,EAED,UAAC,OAAO;4BAEP,IAAI,KAAK,GAAO,YAAY,CAAC,UAAU,CAAI,IAAI,CAAC,CAAC;4BACjD,GAAG,GAAG,CAAC,CAAC;4BACR,OAAM,GAAG,GAAC,IAAI,IAAI,UAAU,CAAC,QAAQ,EAAE,EACvC,CAAC;gCACA,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC;4BACnC,CAAC;4BAED,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;4BACnB,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;wBAC1C,CAAC,EAED;4BAEC,iBAAO,CAAC,UAAU,CAAC,CAAC;wBACrB,CAAC,EAED,CAAC,CAAC,UAAU,CACZ,CAAC;oBACH,CAAC,EACD,IAAI,EAEJ,CAAC,CAAC,UAAU,CACZ,CAAC;gBACH,CAAC;gBAGD,kCAAK,GAAL;oBAEC,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,CAAC,CAAC,eAAe,EAAE,CAAC;oBAEpB,IAAI,gBAA+B,CAAC;oBACpC,MAAM,CAAC,IAAI,UAAU,CACpB;wBAEC,MAAM,CAAC,gBAAgB,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC;oBACnE,CAAC,EAED;wBAEC,iBAAO,CAAC,gBAAgB,CAAC,CAAC;oBAC3B,CAAC,EAED,CAAC,CAAC,UAAU,CACZ,CAAC;gBACH,CAAC;gBAGF,yBAAC;YAAD,CAAC,AArrDD,CACQ,wBAAc,GAorDrB;YArrDD,mDAqrDC,CAAA;YASD;gBACQ,8BAAqB;gBAG5B,oBACC,iBAAsC,EACtC,SAAqB,EACrB,SAAwB;oBAAxB,yBAAwB,GAAxB,gBAAwB;oBAExB,kBAAM,iBAAiB,EAAE,SAAS,CAAC,CAAC;oBACpC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;gBAC7B,CAAC;gBAOM,eAAI,GAAX,UAAe,MAA4B;oBAE1C,IAAI,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBACnC,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC;wBAAC,MAAM,IAAI,wCAA8B,EAAE,CAAC;oBAClD,MAAM,CAAC,CAAC,CAAC;gBACV,CAAC;gBAaM,kBAAO,GAAd,UACC,MAAU,EACV,iBAAsC;oBAAtC,iCAAsC,GAAtC,wBAAsC;oBAEtC,EAAE,CAAA,CAAC,eAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,eAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAClD,CAAC;wBACA,EAAE,CAAA,CAAC,MAAM,YAAY,UAAU,CAAC;4BAC/B,MAAM,CAAC,MAAM,CAAC;wBAEf,EAAE,CAAA,CAAC,eAAI,CAAC,WAAW,CAAI,MAAM,CAAC,CAAC;4BAC9B,MAAM,CAAC,IAAI,eAAe,CAAI,MAAM,CAAC,CAAC;wBAEvC,EAAE,CAAA,CAAC,yBAAY,CAAI,MAAM,CAAC,CAAC;4BAC1B,MAAM,CAAC,IAAI,UAAU,CACpB,cAAI,OAAA,MAAM,CAAC,aAAa,EAAE,EAAtB,CAAsB,EAC1B,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;oBAC3B,CAAC;oBAED,MAAM,CAAC,iBAAiB,CAAC;gBAC1B,CAAC;gBAEM,sBAAW,GAAlB,UAAsB,MAA4B;oBAEjD,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,KAAK,EAAK,CAAC;gBAC5D,CAAC;gBAOM,kBAAO,GAAd,UAAkB,MAA4B;oBAE7C,EAAE,CAAA,CAAC,MAAM,YAAY,UAAU,CAAC;wBAC/B,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBAEzB,MAAM,CAAC,oBAAO,CAAC,MAAM,CAAC,CAAC;gBACxB,CAAC;gBAKM,iBAAM,GAAb,UAAiB,MAAgB;oBAEhC,IAAI,GAAG,GAAG,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;oBAGlC,EAAE,CAAA,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;wBACzB,MAAM,IAAI,qCAA2B,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;oBAEzD,MAAM,CAAC,IAAI,kBAAkB,CAC5B,cAAM,OAAA,IAAI,wBAAc,CACvB,IAAI,EACJ,UAAC,OAAO;wBACP,OAAA,OAAO,CAAC,WAAW,CAAC,iBAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBAAlD,CAAkD,EACnD,IAAI,CACJ,EALK,CAKL,CACD,CAAC;gBACH,CAAC;gBAEM,qBAAU,GAAjB;oBAAqB,cAAW;yBAAX,WAAW,CAAX,sBAAW,CAAX,IAAW;wBAAX,6BAAW;;oBAE/B,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAChC,CAAC;gBAEM,gBAAK,GAAZ,UAAgB,MAAgB;oBAE/B,IAAI,GAAG,GAAG,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;oBAGlC,EAAE,CAAA,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;wBACzB,MAAM,IAAI,qCAA2B,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;oBAEzD,MAAM,CAAC,IAAI,kBAAkB,CAC5B;wBAEC,IAAI,KAAK,GAAU,CAAC,CAAC;wBACrB,MAAM,CAAC,IAAI,wBAAc,CACxB;4BAEC,KAAK,GAAG,CAAC,CAAC;wBACX,CAAC,EACD,UAAC,OAAO;4BAEP,EAAE,CAAA,CAAC,KAAK,IAAE,MAAM,CAAC,MAAM,CAAC;gCAAC,KAAK,GAAG,CAAC,CAAC;4BACnC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;wBAC7C,CAAC,EACD,IAAI,CACJ,CAAC;oBACH,CAAC,CACD,CAAC;gBACH,CAAC;gBAEM,uBAAY,GAAnB;oBAAuB,cAAW;yBAAX,WAAW,CAAX,sBAAW,CAAX,IAAW;wBAAX,6BAAW;;oBAEjC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC/B,CAAC;gBAEM,gBAAK,GAAZ;oBAGC,MAAM,CAAC,IAAI,gBAAgB,CAAI,kBAAkB,CAAC,CAAC;gBACpD,CAAC;gBAIM,iBAAM,GAAb,UAAiB,OAAS,EAAE,KAAuB;oBAAvB,qBAAuB,GAAvB,gBAAuB;oBAElD,EAAE,CAAA,CAAC,CAAC,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC;wBACb,MAAM,CAAC,UAAU,CAAC,KAAK,EAAK,CAAC;oBAE9B,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,iBAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC;0BACrD,IAAI,gBAAgB,CACtB;4BAEC,IAAI,CAAC,GAAU,KAAK,CAAC;4BACrB,IAAI,KAAK,GAAU,CAAC,CAAC;4BAErB,MAAM,CAAC,IAAI,wBAAc,CACxB,cAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EACpB,UAAC,OAAO,IAAI,OAAA,CAAC,KAAK,EAAE,GAAC,CAAC,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,EAA3C,CAA2C,EACvD,IAAI,EACJ,KAAK,CACL,CAAC;wBACH,CAAC,CACD;0BACE,IAAI,UAAU,CAChB;4BACC,OAAA,IAAI,wBAAc,CACjB,IAAI,EACJ,UAAC,OAAO,IAAI,OAAA,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,EAA5B,CAA4B,EACxC,IAAI,CACJ;wBAJD,CAIC,CACF,CAAC;gBACH,CAAC;gBAGM,6BAAkB,GAAzB,UACC,WAAmB,EACnB,SAA6B;oBAG7B,MAAM,CAAC,IAAI,kBAAkB,CAC5B;wBAEC,IAAI,OAAS,CAAC;wBACd,MAAM,CAAC,IAAI,wBAAc,CACxB;4BAEC,OAAO,GAAG,WAAW,EAAE,CAAC;wBACzB,CAAC,EAED,UAAC,OAAO,IAAI,OAAA,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,EAA5B,CAA4B,EAExC;4BAEC,SAAS,CAAC,OAAO,CAAC,CAAC;wBACpB,CAAC,EAED,IAAI,CAEJ,CAAC;oBACH,CAAC,CACD,CAAC;gBACH,CAAC;gBAOM,eAAI,GAAX,UAAe,OAAS;oBAEvB,MAAM,CAAC,UAAU,CAAC,MAAM,CAAI,OAAO,EAAE,CAAC,CAAC,CAAC;gBACzC,CAAC;gBAIM,gBAAK,GAAZ,UACC,KAAY,EACZ,KAAY,EACZ,IAAe;oBAAf,oBAAe,GAAf,QAAe;oBAEf,EAAE,CAAA,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;wBACnB,MAAM,IAAI,qCAA2B,CAAC,OAAO,EAAE,KAAK,EAAE,0BAA0B,CAAC,CAAC;oBAEnF,EAAE,CAAA,CAAC,CAAC,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC;wBACb,MAAM,CAAC,UAAU,CAAC,KAAK,EAAU,CAAC;oBAEnC,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC;wBACR,MAAM,IAAI,qCAA2B,CAAC,MAAM,EAAE,IAAI,EAAE,uBAAuB,CAAC,CAAC;oBAE9E,EAAE,CAAA,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;wBAClB,MAAM,IAAI,qCAA2B,CAAC,MAAM,EAAE,IAAI,EAAE,0BAA0B,CAAC,CAAC;oBAEjF,iBAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;oBAE/B,MAAM,CAAC,IAAI,gBAAgB,CAC1B;wBAEC,IAAI,KAAY,CAAC;wBACjB,IAAI,CAAC,GAAU,KAAK,CAAC;wBACrB,IAAI,KAAK,GAAU,CAAC,CAAC;wBAErB,MAAM,CAAC,IAAI,wBAAc,CACxB;4BAEC,KAAK,GAAG,CAAC,CAAC;4BACV,KAAK,GAAG,KAAK,CAAC;wBACf,CAAC,EAED,UAAC,OAAO;4BAEP,IAAI,MAAM,GACL,KAAK,EAAE,GAAC,CAAC;mCACN,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;4BAEnC,EAAE,CAAA,CAAC,MAAM,IAAI,KAAK,GAAC,KAAK,CAAC;gCACxB,KAAK,IAAI,IAAI,CAAC;4BAEf,MAAM,CAAC,MAAM,CAAC;wBACf,CAAC,EAED,KAAK,CACL,CAAC;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC;gBAEM,oBAAS,GAAhB,UACC,KAAY,EACZ,KAAY,EACZ,IAAe;oBAAf,oBAAe,GAAf,QAAe;oBAEf,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,CAAC;oBAE1B,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;gBAC7C,CAAC;gBAGM,qBAAU,GAAjB,UACC,KAAgB,EAChB,IAAe;oBADf,qBAAgB,GAAhB,SAAgB;oBAChB,oBAAe,GAAf,QAAe;oBAEf,EAAE,CAAA,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;wBACnB,MAAM,IAAI,qCAA2B,CAAC,OAAO,EAAE,KAAK,EAAE,0BAA0B,CAAC,CAAC;oBAEnF,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC;wBACR,MAAM,IAAI,qCAA2B,CAAC,MAAM,EAAE,IAAI,EAAE,uBAAuB,CAAC,CAAC;oBAE9E,EAAE,CAAA,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;wBAClB,MAAM,IAAI,qCAA2B,CAAC,MAAM,EAAE,IAAI,EAAE,0BAA0B,CAAC,CAAC;oBAEjF,MAAM,CAAC,IAAI,kBAAkB,CAC5B;wBAEC,IAAI,KAAY,CAAC;wBAEjB,MAAM,CAAC,IAAI,wBAAc,CACxB;4BAEC,KAAK,GAAG,KAAK,CAAC;wBACf,CAAC,EAED,UAAC,OAAO;4BAEP,IAAI,OAAO,GAAU,KAAK,CAAC;4BAC3B,KAAK,IAAI,IAAI,CAAC;4BACd,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;wBACrC,CAAC,EAED,IAAI,CACJ,CAAC;oBACH,CAAC,CACD,CAAC;gBACH,CAAC;gBAEM,6BAAkB,GAAzB,UACC,KAAgB,EAChB,IAAe;oBADf,qBAAgB,GAAhB,SAAgB;oBAChB,oBAAe,GAAf,QAAe;oBAEf,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;gBAC5C,CAAC;gBAEM,kBAAO,GAAd,UACC,KAAY,EACZ,EAAS,EACT,IAAe;oBAAf,oBAAe,GAAf,QAAe;oBAEf,EAAE,CAAA,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;wBAC7B,MAAM,IAAI,qCAA2B,CAAC,IAAI,EAAE,EAAE,EAAE,0BAA0B,CAAC,CAAC;oBAE7E,EAAE,CAAA,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;wBAC1B,MAAM,IAAI,qCAA2B,CAAC,MAAM,EAAE,IAAI,EAAE,mCAAmC,CAAC,CAAC;oBAG1F,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAEtB,MAAM,CAAC,IAAI,gBAAgB,CAC1B;wBAEC,IAAI,KAAY,CAAC;wBAEjB,MAAM,CAAC,IAAI,wBAAc,CAAS,cAAQ,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,EACzD,KAAK,GAAC,EAAE;;gCAEP,UAAC,OAAsB;oCAEtB,IAAI,MAAM,GAAW,KAAK,IAAE,EAAE,IAAI,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;oCAE7D,EAAE,CAAA,CAAC,MAAM,CAAC;wCACT,KAAK,IAAI,IAAI,CAAC;oCAEf,MAAM,CAAC,MAAM,CAAC;gCACf,CAAC;;gCAED,UAAC,OAAsB;oCAEtB,IAAI,MAAM,GAAW,KAAK,IAAE,EAAE,IAAI,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;oCAE7D,EAAE,CAAA,CAAC,MAAM,CAAC;wCACT,KAAK,IAAI,IAAI,CAAC;oCAEf,MAAM,CAAC,MAAM,CAAC;gCACf,CAAC,EACA,KAAK,CAAC,CAAC;oBACX,CAAC,CACD,CAAC;gBACH,CAAC;gBAEM,kBAAO,GAAd,UAAe,KAAY,EAAE,OAAW,EAAE,KAAiB;oBAAjB,qBAAiB,GAAjB,UAAiB;oBAE1D,EAAE,CAAA,CAAC,KAAK,KAAG,IAAI,IAAI,KAAK,KAAG,KAAK,CAAC;wBAChC,MAAM,IAAI,+BAAqB,CAAC,OAAO,CAAC,CAAC;oBAC1C,IAAI,IAAI,GAAG,OAAO,KAAK,CAAC;oBACxB,EAAE,CAAA,CAAC,IAAI,IAAE,eAAI,CAAC,MAAM,CAAC;wBACpB,MAAM,IAAI,KAAK,CAAC,sCAAsC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;oBAEvE,EAAE,CAAA,CAAC,OAAO,YAAY,MAAM,CAAC,CAC7B,CAAC;wBACA,KAAK,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;wBACzC,KAAK,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;wBACxC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;oBAC1B,CAAC;oBAED,EAAE,CAAA,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAI,CAAC,CAAC,CAAC;wBAAC,KAAK,IAAI,GAAG,CAAC;oBAE1C,MAAM,CAAC,IAAI,gBAAgB,CAC1B;wBAEC,IAAI,KAAY,CAAC;wBACjB,MAAM,CAAC,IAAI,wBAAc,CACxB;4BAEC,KAAK,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;wBACpC,CAAC,EAED,UAAC,OAAO;4BAGP,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;4BAC9B,MAAM,CAAC,CAAC,KAAK,KAAG,IAAI,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;wBAC5D,CAAC,CACD,CAAC;oBACH,CAAC,CACD,CAAC;gBACH,CAAC;gBAIM,mBAAQ,GAAf,UAAmB,OAA4B,EAAE,KAAuB;oBAAvB,qBAAuB,GAAvB,gBAAuB;oBAGvE,EAAE,CAAA,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,IAAE,CAAC,CAAC;wBAC3B,MAAM,CAAC,UAAU,CAAC,KAAK,EAAK,CAAC;oBAE9B,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,iBAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC;;4BAEvD,IAAI,gBAAgB,CACnB;gCAEC,IAAI,CAAC,GAAU,KAAK,CAAC;gCACrB,IAAI,KAAK,GAAU,CAAC,CAAC;gCAErB,MAAM,CAAC,IAAI,wBAAc,CACxB;oCAEC,KAAK,GAAG,CAAC,CAAC;gCACX,CAAC,EAED,UAAC,OAAO;oCAEP,IAAI,OAAO,GAAU,KAAK,EAAE,CAAC;oCAC7B,MAAM,CAAC,OAAO,GAAC,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;gCAC3D,CAAC,EAED,KAAK,CACL,CAAC;4BACH,CAAC,CAAC;;4BAEH,IAAI,kBAAkB,CACrB;gCAEC,IAAI,KAAK,GAAU,CAAC,CAAC;gCACrB,MAAM,CAAC,IAAI,wBAAc,CACxB;oCAEC,KAAK,GAAG,CAAC,CAAC;gCACX,CAAC,EAED,UAAC,OAAO,IAAI,OAAA,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,EAArC,CAAqC,EAEjD,IAAI,CACJ,CAAC;4BACH,CAAC,CAAC,CAAC;gBACN,CAAC;gBAEM,iBAAM,GAAb,UACC,IAAM,EACN,YAA2B,EAC3B,QAAwB;oBAAxB,wBAAwB,GAAxB,gBAAwB;oBAExB,MAAM,CAAC,IAAI,kBAAkB,CAC5B;wBAEC,IAAI,KAAK,GAAU,CAAC,CAAC;wBACrB,IAAI,KAAO,CAAC;wBACZ,IAAI,OAAe,CAAC;wBACpB,MAAM,CAAC,IAAI,wBAAc,CACxB;4BAEC,KAAK,GAAG,CAAC,CAAC;4BACV,KAAK,GAAG,IAAI,CAAC;4BACb,OAAO,GAAG,CAAC,QAAQ,CAAC;wBACrB,CAAC,EAED,UAAC,OAAO;4BAEP,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC;4BAChB,EAAE,CAAA,CAAC,OAAO,CAAC;gCACV,OAAO,GAAG,KAAK,CAAC;4BACjB,IAAI;gCACH,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;4BAChC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;wBACnC,CAAC,EAED,IAAI,CACJ,CAAC;oBACH,CAAC,CACD,CAAC;gBACH,CAAC;gBAEM,kBAAO,GAAd,UACC,UAAgC,EAChC,MAAwC;oBAIxC,oBAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;gBAC7B,CAAC;gBAEM,cAAG,GAAV,UACC,UAAgC,EAChC,QAA4B;oBAI5B,MAAM,CAAC,gBAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;gBAElC,CAAC;gBAGM,cAAG,GAAV,UAAW,MAA+B;oBAEzC,MAAM,CAAC,MAAM;yBACX,SAAS,CAAC,UAAA,CAAC,IAAG,OAAA,CAAC,IAAG,CAAC,QAAQ,EAAb,CAAa,EAAE,IAAI,CAAC;yBAClC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gBAChC,CAAC;gBAEM,cAAG,GAAV,UAAW,MAA+B;oBAEzC,MAAM,CAAC,MAAM;yBACX,SAAS,CAAC,UAAA,CAAC,IAAG,OAAA,CAAC,IAAG,CAAC,QAAQ,EAAb,CAAa,EAAE,IAAI,CAAC;yBAClC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAC/B,CAAC;gBAQM,gBAAK,GAAZ,UACC,WAAqD;oBAErD,EAAE,CAAA,CAAC,CAAC,WAAW,CAAC;wBACf,MAAM,IAAI,+BAAqB,CAAC,aAAa,CAAC,CAAC;oBAEhD,MAAM,CAAC,IAAI,UAAU,CACpB;wBAEC,IAAI,KAA2B,CAAC;wBAChC,IAAI,cAAiD,CAAC;wBACtD,IAAI,KAAY,CAAC;wBAEjB,MAAM,CAAC,IAAI,wBAAc,CACxB;4BAEC,KAAK,GAAG,CAAC,CAAC;4BACV,KAAK,GAAG,IAAI,eAAK,EAAkB,CAAC;4BACpC,cAAc,GAAG,iBAAc,CAAC,WAAW,CAAC,CAAC;wBAC9C,CAAC,EAED,UAAC,OAAO;4BAEP,IAAI,CAAgB,CAAC;4BAGrB,EAAE,CAAA,CAAC,cAAc,CAAC,CAAC,CAAC;gCACnB,OAAM,CAAC,CAAC,IAAI,cAAc,CAAC,QAAQ,EAAE,EACrC,CAAC;oCACA,IAAI,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC;oCAC/B,CAAC,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC,IAAI,iBAAc,CAAC,CAAC,CAAC,CAAC,CAAC;gCACnD,CAAC;gCAED,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC;oCACL,cAAc,GAAG,IAAI,CAAC;4BACxB,CAAC;4BAED,OAAM,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gCACzB,CAAC,GAAG,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;4BAC5C,CAAC;4BAED,MAAM,CAAC,CAAC;kCACL,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC;kCAC9B,OAAO,CAAC,UAAU,EAAE,CAAC;wBAEzB,CAAC,EAED;4BAEC,iBAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;4BAC5B,iBAAO,CAAC,cAAc,EAAC,KAAK,CAAC,CAAC;4BAC9B,cAAc,GAAG,IAAI,CAAC;4BACtB,KAAK,GAAG,IAAI,CAAC;wBACd,CAAC,CACD,CAAC;oBACH,CAAC,CACD,CAAC;gBACH,CAAC;gBAID,6BAAQ,GAAR,UACC,MAA+E,EAC/E,WAAqB,EACrB,SAAkC;oBAAlC,yBAAkC,GAAlC,YAAoB,IAAI,CAAC,SAAS;oBAElC,MAAM,CAAgB,gBAAK,CAAC,QAAQ,YAAC,MAAM,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;gBACtE,CAAC;gBAID,yBAAI,GAAJ,UAAK,KAAY;oBAEhB,MAAM,CAAgB,gBAAK,CAAC,IAAI,YAAC,KAAK,CAAC,CAAC;gBACzC,CAAC;gBAED,8BAAS,GAAT,UAAU,SAAsB;oBAE/B,IAAI,CAAC,eAAe,EAAE,CAAC;oBACvB,MAAM,CAAC,IAAI,CAAC,QAAQ,CACnB,UAAC,OAAS,EAAE,KAAa;wBACxB,OAAA,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC;8BACtB,CAAqB;8BACrB,CAAuB;oBAF1B,CAE0B,CAC3B,CAAC;gBACH,CAAC;gBAED,8BAAS,GAAT,UAAU,SAAsB;oBAE/B,IAAI,CAAC,eAAe,EAAE,CAAC;oBAEvB,EAAE,CAAA,CAAC,CAAC,SAAS,CAAC;wBACb,MAAM,IAAI,+BAAqB,CAAC,WAAW,CAAC,CAAC;oBAE9C,MAAM,CAAC,IAAI,CAAC,QAAQ,CACnB,UAAC,OAAS,EAAE,KAAa;wBACxB,OAAA,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC;8BACtB,CAAuB;8BACvB,CAAsB;oBAFzB,CAEyB,EAC1B,IAAI,EACJ,IAAI,CACJ,CAAC;gBACH,CAAC;gBAGD,8BAAS,GAAT,UAAU,SAAsB,EAAE,iBAA0B;oBAE3D,IAAI,CAAC,eAAe,EAAE,CAAC;oBAEvB,EAAE,CAAA,CAAC,CAAC,SAAS,CAAC;wBACb,MAAM,IAAI,+BAAqB,CAAC,WAAW,CAAC,CAAC;oBAE9C,EAAE,CAAA,CAAC,CAAC,iBAAiB,CAAC;wBACrB,MAAM,CAAC,IAAI,CAAC,QAAQ,CACnB,UAAC,OAAS,EAAE,KAAa;4BACxB,OAAA,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC;kCACtB,CAAsB;kCACtB,CAAuB;wBAF1B,CAE0B,EAC3B,IAAI,EACJ,IAAI,CACJ,CAAC;oBAEH,IAAI,KAAK,GAAW,KAAK,CAAC;oBAC1B,MAAM,CAAC,IAAI,CAAC,QAAQ,CACnB,UAAC,OAAS,EAAE,KAAa;wBAExB,EAAE,CAAA,CAAC,KAAK,CAAC;4BACR,MAAM,CAAC,CAAsB,CAAC;wBAE/B,KAAK,GAAG,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;wBAClC,MAAM,CAAC,CAAuB,CAAC;oBAChC,CAAC,EACD;wBAEC,KAAK,GAAG,KAAK,CAAC;oBACf,CAAC,EACD,IAAI,CACJ,CAAC;gBACH,CAAC;gBAGD,4BAAO,GAAP,UAAQ,MAA+B;oBAGtC,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,CAAC,CAAC,eAAe,EAAE,CAAC;oBACpB,2BAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;oBAE5B,IAAI,KAAK,GAAU,CAAC,CAAC;oBAErB,eAAK,CACJ,CAAC,CAAC,aAAa,EAAE,EAAE,UAAA,CAAC;wBAEnB,2BAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;wBAG5B,OAAM,CAAC,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,EACzC,CAAC;4BACA,EAAE,CAAA,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,KAAG,KAAK,CAAC;gCACrC,KAAK,CAAC;wBACR,CAAC;oBACF,CAAC,CACD,CAAC;gBACH,CAAC;gBAGD,4BAAO,GAAP,UAAQ,SAAuB;oBAE9B,MAAM,CAAC,SAAS;0BACb,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE;0BAC/B,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACpB,CAAC;gBAED,2BAAM,GAAN,UAAO,MAAU,EAAE,KAAgB;oBAAhB,qBAAgB,GAAhB,SAAgB;oBAElC,IAAI,CAAC,eAAe,EAAE,CAAC;oBACvB,EAAE,CAAA,CAAC,CAAC,MAAM,CAAC;wBAAC,MAAM,IAAI,+BAAqB,CAAC,QAAQ,CAAC,CAAC;oBACtD,iBAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;oBAGnC,oBAAO,CAAI,IAAI,EAAE,UAAC,CAAC,EAAE,CAAC;wBAErB,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;oBACtB,CAAC,CAAC,CAAC;oBAEH,MAAM,CAAC,MAAM,CAAC;gBACf,CAAC;gBAED,6BAAQ,GAAR,UACC,WAA6B,EAC7B,eAAwD,EACxD,eAA6D;oBAD7D,+BAAwD,GAAxD,kBAAsC,SAAS,CAAC,QAAQ;oBACxD,+BAA6D,GAA7D,kBAA2C,SAAS,CAAC,QAAQ;oBAE7D,IAAI,IAAI,GAA8B,IAAI,oBAAU,CAAiB,eAAe,CAAC,CAAC;oBACtF,IAAI,CAAC,OAAO,CACX,UAAA,CAAC;wBAEA,IAAI,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;wBACzB,IAAI,OAAO,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;wBAEjC,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;wBAC/B,EAAE,CAAA,CAAC,KAAK,KAAG,KAAK,CAAC;4BAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBACtC,IAAI;4BAAC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;oBACzC,CAAC,CACD,CAAC;oBACF,MAAM,CAAC,IAAI,MAAM,CAAe,IAAI,CAAC,CAAC;gBACvC,CAAC;gBAED,0BAAK,GAAL,UACC,WAA+B,EAC/B,eAAoC;oBAEpC,IAAI,GAAG,GAAiB,EAAE,CAAC;oBAC3B,IAAI,CAAC,OAAO,CAAC,UAAC,CAAC,EAAE,CAAC;wBAEjB,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAChD,CAAC,CAAC,CAAC;oBACH,MAAM,CAAC,GAAG,CAAC;gBACZ,CAAC;gBAED,iCAAY,GAAZ,UACC,WAA6B,EAC7B,eAAmC,EACnC,eAA6D;oBAA7D,+BAA6D,GAA7D,kBAA2C,SAAS,CAAC,QAAQ;oBAE7D,IAAI,IAAI,GAA4B,IAAI,oBAAU,CAAe,eAAe,CAAC,CAAC;oBAClF,IAAI,CAAC,OAAO,CAAC,UAAC,CAAC,EAAE,CAAC,IAAI,OAAA,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAA5D,CAA4D,CAAC,CAAC;oBACpF,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBAED,mCAAc,GAAd,UAAe,SAAqB,EAAE,QAAiD;oBAAxE,yBAAqB,GAArB,cAAqB;oBAAE,wBAAiD,GAAjD,WAA+B,SAAS,CAAC,QAAQ;oBAEtF,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACxD,CAAC;gBAKD,mCAAc,GAAd,UAAe,KAAgB;oBAAhB,qBAAgB,GAAhB,SAAgB;oBAE9B,IAAI,CAAC,GAAG,IAAI,CAAC;oBAEb,EAAE,CAAA,CAAC,CAAC,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC;wBACb,MAAM,CAAC,CAAC,CAAC;oBAEV,EAAE,CAAA,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;wBACnB,MAAM,CAAC,UAAU,CAAC,KAAK,EAAK,CAAC;oBAE9B,iBAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;oBAC/B,IAAI,CAAC,GAAG,KAAK,CAAC;oBAEd,MAAM,CAAC,IAAI,UAAU,CACpB;wBAEC,IAAI,UAAyB,CAAC;wBAC9B,IAAI,CAAU,CAAC;wBAEf,MAAM,CAAC,IAAI,wBAAc,CACxB;4BAEC,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;4BAC/B,CAAC,GAAG,IAAI,eAAK,EAAK,CAAC;wBACpB,CAAC,EAED,UAAC,OAAO;4BAEP,OAAM,UAAU,CAAC,QAAQ,EAAE,EAC3B,CAAC;gCAEA,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;gCAG9B,EAAE,CAAA,CAAC,CAAC,CAAC,KAAK,GAAC,CAAC,CAAC;oCAEZ,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;4BAC1C,CAAC;4BACD,MAAM,CAAC,KAAK,CAAC;wBACd,CAAC,EAED;4BAEC,iBAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;wBACxB,CAAC,CACD,CAAC;oBACH,CAAC,CACD,CAAC;gBACH,CAAC;gBAED,+BAAU,GAAV,UAAW,KAAY;oBAEtB,EAAE,CAAA,CAAC,CAAC,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC;wBACb,MAAM,CAAC,UAAU,CAAC,KAAK,EAAK,CAAC;oBAE9B,IAAI,CAAC,GAAG,IAAI,CAAC;oBAEb,EAAE,CAAA,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;wBACnB,MAAM,CAAC,CAAC,CAAC;oBAEV,iBAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;oBAG/B,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE;yBAChB,IAAI,CAAC,KAAK,CAAC;yBACX,OAAO,EAAE,CAAC;gBACb,CAAC;gBAID,0BAAK,GAAL,UAAM,SAAsB;oBAE3B,MAAM,CAAgB,gBAAK,CAAC,KAAK,YAAC,SAAS,CAAC,CAAC;gBAC9C,CAAC;gBAED,2BAAM,GAAN,UAAgB,QAA6B;oBAE5C,MAAM,CAAsB,gBAAK,CAAC,MAAM,YAAC,QAAQ,CAAC,CAAC;gBACpD,CAAC;gBAUD,+BAAU,GAAV,UACC,kBAAuD,EACvD,cAAoD;oBAEpD,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;gBAC7D,CAAC;gBAID,2BAAM,GAAN,UAAO,QAA8C;oBAA9C,wBAA8C,GAA9C,WAA4B,SAAS,CAAC,QAAQ;oBAEpD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAC/B,CAAC;gBAED,4BAAO,GAAP;oBAEC,IAAI,CAAC,GAAG,IAAI,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;oBAC9C,2BAAc,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;oBAE7B,MAAM,CAAC,IAAI,UAAU,CACpB;wBAEC,IAAI,MAAU,CAAC;wBACf,IAAI,KAAK,GAAU,CAAC,CAAC;wBAErB,MAAM,CAAC,IAAI,wBAAc,CACxB;4BAEC,eAAe,CAAC,QAAQ,CAAC,CAAC;4BAC1B,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;4BACrB,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;wBACvB,CAAC,EAED,UAAC,OAAO,IAAI,OAAA,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC,EAA7C,CAA6C,EAEzD;4BAEC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;wBACnB,CAAC,CACD,CAAC;oBACH,CAAC,EAED;wBAEC,QAAQ,GAAG,IAAI,CAAC;oBACjB,CAAC,CACD,CAAC;gBACH,CAAC;gBAED,4BAAO,GAAP;oBAEC,IAAI,CAAC,GAAG,IAAI,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;oBAC9C,2BAAc,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;oBAE7B,MAAM,CAAC,IAAI,UAAU,CACpB;wBAEC,IAAI,MAAU,CAAC;wBACf,IAAI,QAAe,CAAC;wBACpB,IAAI,GAAU,CAAC;wBAEf,MAAM,CAAC,IAAI,wBAAc,CACxB;4BAEC,eAAe,CAAC,QAAQ,CAAC,CAAC;4BAC1B,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;4BACrB,QAAQ,GAAG,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;wBAChC,CAAC,EAED,UAAC,OAAO;4BAGP,EAAE,CAAA,CAAC,CAAC,GAAG,CAAC;gCACP,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;4BAE7B,IAAI,aAAa,GAAG,iBAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;4BACxC,IAAI,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;4BAE1C,MAAM,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;4BACtC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;4BAEnB,EAAE,CAAA,CAAC,GAAG,GAAC,EAAE,IAAE,CAAC,CAAC;gCACZ,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC;4BAErB,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;wBAC3C,CAAC,EAED;4BAEC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;wBACnB,CAAC,CACD,CAAC;oBACH,CAAC,EAED;wBAEC,QAAQ,GAAG,IAAI,CAAC;oBACjB,CAAC,CACD,CAAC;gBACH,CAAC;gBAED,0BAAK,GAAL,UAAM,SAAuB;oBAE5B,IAAI,KAAK,GAAU,CAAC,CAAC;oBACrB,IAAI,CAAC,OAAO,CACX,SAAS;;4BAGR,UAAC,CAAC,EAAE,CAAC;gCAEJ,EAAE,CAAA,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oCAAA,EAAE,KAAK,CAAC;4BAC5B,CAAC;;4BAGD;gCAEC,EAAE,KAAK,CAAC;4BACT,CAAC,CACF,CAAC;oBAEF,MAAM,CAAC,KAAK,CAAC;gBACd,CAAC;gBAGD,wBAAG,GAAH,UAAI,SAAsB;oBAEzB,EAAE,CAAA,CAAC,CAAC,SAAS,CAAC;wBACb,MAAM,IAAI,+BAAqB,CAAC,WAAW,CAAC,CAAC;oBAE9C,IAAI,MAAM,GAAG,IAAI,CAAC;oBAClB,IAAI,CAAC,OAAO,CAAC,UAAC,CAAC,EAAE,CAAC;wBAEjB,EAAE,CAAA,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CACpB,CAAC;4BACA,MAAM,GAAG,KAAK,CAAC;4BACf,MAAM,CAAC,KAAK,CAAC;wBACd,CAAC;oBACF,CAAC,CAAC,CAAC;oBACH,MAAM,CAAC,MAAM,CAAC;gBACf,CAAC;gBAGD,0BAAK,GAAL,UAAM,SAAsB;oBAE3B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC5B,CAAC;gBAGD,wBAAG,GAAH,UAAI,SAAuB;oBAE1B,EAAE,CAAA,CAAC,CAAC,SAAS,CAAC;wBACb,MAAM,CAAC,gBAAK,CAAC,GAAG,WAAE,CAAC;oBAEpB,IAAI,MAAM,GAAG,KAAK,CAAC;oBAGnB,IAAI,CAAC,OAAO,CACX,UAAC,CAAC,EAAE,CAAC;wBAEJ,MAAM,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBACzB,MAAM,CAAC,CAAC,MAAM,CAAC;oBAChB,CAAC,CAAC,CAAC;oBACJ,MAAM,CAAC,MAAM,CAAC;gBAEf,CAAC;gBAGD,yBAAI,GAAJ,UAAK,SAAsB;oBAE1B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC5B,CAAC;gBAGD,6BAAQ,GAAR,UAAmB,KAAO,EAAE,eAAsC;oBAEjE,MAAM,CAAC,eAAe;0BACnB,IAAI,CAAC,GAAG,CAAC,UAAA,CAAC,IAAG,OAAA,eAAe,CAAC,CAAC,CAAC,KAAG,eAAe,CAAC,KAAK,CAAC,EAA3C,CAA2C,CAAC;0BACzD,IAAI,CAAC,GAAG,CAAC,UAAA,CAAC,IAAG,OAAA,CAAC,KAAG,KAAK,EAAT,CAAS,CAAC,CAAC;gBAC5B,CAAC;gBAKD,4BAAO,GAAP,UAAkB,KAAO,EAAE,eAAsC;oBAEhE,IAAI,KAAK,GAAU,CAAC,CAAC,CAAC;oBACtB,IAAI,CAAC,OAAO,CACX,eAAe;;4BAEd,UAAC,OAAS,EAAE,CAAS;gCAEpB,EAAE,CAAA,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CACjF,CAAC;oCACA,KAAK,GAAG,CAAC,CAAC;oCACV,MAAM,CAAC,KAAK,CAAC;gCACd,CAAC;4BACF,CAAC;;4BAED,UAAC,OAAS,EAAE,CAAS;gCAGpB,EAAE,CAAA,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CACzC,CAAC;oCACA,KAAK,GAAG,CAAC,CAAC;oCACV,MAAM,CAAC,KAAK,CAAC;gCACd,CAAC;4BACF,CAAC,CAAC,CAAC;oBAGL,MAAM,CAAC,KAAK,CAAC;gBACd,CAAC;gBAED,gCAAW,GAAX,UAAsB,KAAO,EAAE,eAAsC;oBAEpE,IAAI,MAAM,GAAU,CAAC,CAAC,CAAC;oBACvB,IAAI,CAAC,OAAO,CACX,eAAe;;4BAEd,UAAC,OAAS,EAAE,CAAS;gCAEpB,EAAE,CAAA,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;oCAAC,MAAM;0CACrF,CAAC,CAAC;4BACN,CAAC;;4BAGD,UAAC,OAAS,EAAE,CAAS;gCAEpB,EAAE,CAAA,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;oCAAC,MAAM,GAAG,CAAC,CAAC;4BACtD,CAAC,CAAC,CAAC;oBAEL,MAAM,CAAC,MAAM,CAAC;gBACf,CAAC;gBAED,0BAAK,GAAL,UAAM,WAAyC;oBAE9C,MAAM,CAAgB,gBAAK,CAAC,KAAK,YAAC,WAAW,CAAC,CAAC;gBAChD,CAAC;gBAED,2BAAM,GAAN;oBAAO,qBAA2C;yBAA3C,WAA2C,CAA3C,sBAA2C,CAA3C,IAA2C;wBAA3C,oCAA2C;;oBAEjD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBAChC,CAAC;gBAGD,8BAAS,GAAT,UACC,MAA4B,EAC5B,eAAsC;oBAEtC,IAAI,CAAC,GAAG,IAAI,CAAC;oBAEb,MAAM,CAAC,IAAI,UAAU,CACpB;wBAEC,IAAI,UAAyB,CAAC;wBAC9B,IAAI,IAA0B,CAAC;wBAC/B,IAAI,IAA0B,CAAC;wBAE/B,MAAM,CAAC,IAAI,wBAAc,CACxB;4BAEC,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;4BAE/B,IAAI,GAAG,IAAI,oBAAU,CAAa,eAAe,CAAC,CAAC;4BACnD,IAAI,GAAG,IAAI,oBAAU,CAAa,eAAe,CAAC,CAAC;4BAEnD,oBAAO,CAAC,MAAM,EAAE,UAAA,GAAG;gCAElB,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;4BAC/B,CAAC,CAAC,CAAC;wBACJ,CAAC,EAED,UAAC,OAAO;4BAEP,OAAM,UAAU,CAAC,QAAQ,EAAE,EAC3B,CAAC;gCACA,IAAI,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;gCACjC,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAC3D,CAAC;oCACA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;oCAClC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gCACrC,CAAC;4BACF,CAAC;4BACD,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;wBAC7B,CAAC,EAED;4BAEC,iBAAO,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;wBACjC,CAAC,EACD,CAAC,CAAC,UAAU,CACZ,CAAC;oBACH,CAAC,EACD,IAAI,EACJ,CAAC,CAAC,UAAU,CACZ,CAAC;gBACH,CAAC;gBAED,kCAAa,GAAb,UACC,MAA4B,EAC5B,gBAAwD;oBAAxD,gCAAwD,GAAxD,mBAAyC,MAAM,CAAC,QAAQ;oBAExD,MAAM,CAAC,eAAK,CACX,IAAI,CAAC,aAAa,EAAE,EACpB,UAAA,EAAE,IAAG,OAAA,eAAK,CACT,iBAAc,CAAC,MAAM,CAAC,EACtB,UAAA,EAAE;wBAGD,2BAAc,CAAC,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC;wBAE7C,OAAM,EAAE,CAAC,QAAQ,EAAE,EACnB,CAAC;4BACA,EAAE,CAAA,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;gCAC9D,MAAM,CAAC,KAAK,CAAC;wBACf,CAAC;wBAED,MAAM,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;oBACvB,CAAC,CACD,EAfI,CAeJ,CACD,CAAC;gBACH,CAAC;gBAeD,2BAAM,GAAN,UAAc,IAAQ;oBAErB,MAAM,CAAoB,gBAAK,CAAC,MAAM,YAAC,IAAI,CAAC,CAAC;gBAC9C,CAAC;gBAED,2BAAM,GAAN,UACC,MAA4B,EAC5B,eAAsC;oBAEtC,MAAM,CAAgB,gBAAK,CAAC,MAAM,YAAC,MAAM,EAAE,eAAe,CAAC,CAAC;gBAC7D,CAAC;gBAED,6BAAQ,GAAR,UAAS,eAA6B;oBAErC,MAAM,CAAgB,gBAAK,CAAC,QAAQ,YAAC,eAAe,CAAC,CAAC;gBACvD,CAAC;gBAED,yCAAoB,GAApB,UAA+B,eAA0D;oBAA1D,+BAA0D,GAA1D,kBAAwC,SAAS,CAAC,QAAQ;oBAExF,MAAM,CAAgB,gBAAK,CAAC,oBAAoB,YAAC,eAAe,CAAC,CAAC;gBACnE,CAAC;gBAID,4BAAO,GAAP,UAAiC,WAAkD;oBAAlD,2BAAkD,GAAlD,cAAgC,SAAS,CAAC,QAAQ;oBAElF,MAAM,CAAC,IAAI,iBAAiB,CAAS,IAAI,EAAE,WAAW,EAAE,CAAe,CAAC,CAAC;gBAC1E,CAAC;gBAED,+BAAU,GAAV,UAAW,UAAwB;oBAElC,MAAM,CAAC,IAAI,iBAAiB,CAAQ,IAAI,EAAE,IAAI,EAAE,CAAe,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;gBACpF,CAAC;gBAED,uCAAkB,GAAlB,UAAmB,UAAwB;oBAE1C,MAAM,CAAC,IAAI,iBAAiB,CAAQ,IAAI,EAAE,IAAI,EAAE,EAAgB,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;gBACrF,CAAC;gBAED,sCAAiB,GAAjB,UAA2C,WAAkD;oBAAlD,2BAAkD,GAAlD,cAAgC,SAAS,CAAC,QAAQ;oBAE5F,MAAM,CAAC,IAAI,iBAAiB,CAAS,IAAI,EAAE,WAAW,EAAE,EAAgB,CAAC,CAAC;gBAC3E,CAAC;gBAkDD,2BAAM,GAAN,UAAO,IAAW;oBAEjB,MAAM,CAAkB,gBAAK,CAAC,MAAM,YAAC,IAAI,CAAC,CAAC;gBAC5C,CAAC;gBAYD,4BAAO,GAAP,UACC,WAA6B,EAC7B,eAAsC,EACtC,eAAyC;oBAH1C,iBAUC;oBALA,EAAE,CAAA,CAAC,CAAC,eAAe,CAAC;wBAAC,eAAe,GAAG,SAAS,CAAC,QAAQ,CAAC;oBAC1D,MAAM,CAAC,IAAI,UAAU,CACpB,cAAM,OAAA,KAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,eAAe,EAAE,eAAe,CAAC;yBAChE,aAAa,EAAE,EADX,CACW,CACjB,CAAC;gBACH,CAAC;gBAQD,gCAAW,GAAX,UACC,WAA6B,EAC7B,eAAsC,EACtC,cACiF,EACjF,eACqB;oBAHrB,8BACiF,GADjF,iBACG,UAAC,GAAQ,EAAE,QAAmB,IAAK,OAAA,IAAI,QAAQ,CAAiB,GAAG,EAAE,QAAQ,CAAC,EAA3C,CAA2C;oBACjF,+BACqB,GADrB,kBACG,SAAS,CAAC,QAAQ;oBAGrB,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,EAAE,CAAA,CAAC,CAAC,eAAe,CAAC;wBAAC,eAAe,GAAG,SAAS,CAAC,QAAQ,CAAC;oBAC1D,MAAM,CAAC,IAAI,UAAU,CACpB;wBAEC,IAAI,UAAyB,CAAC;wBAC9B,IAAI,GAAQ,CAAC;wBACb,IAAI,UAAmB,CAAC;wBACxB,IAAI,KAAgB,CAAC;wBACrB,IAAI,GAAU,CAAC;wBAEf,MAAM,CAAC,IAAI,wBAAc,CACxB;4BAEC,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;4BAC/B,EAAE,CAAA,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CACzB,CAAC;gCACA,GAAG,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;gCACtC,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;gCAClC,KAAK,GAAG,CAAC,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;gCAC9C,GAAG,GAAG,CAAC,CAAC;4BACT,CAAC;4BACD,IAAI;gCACH,KAAK,GAAG,IAAI,CAAC;wBACf,CAAC,EAED,UAAC,OAAO;4BAEP,EAAE,CAAA,CAAC,CAAC,KAAK,CAAC;gCACT,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;4BAE7B,IAAI,OAAe,EAAE,CAAG,CAAC;4BACzB,OAAM,CAAC,OAAO,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC,EACvC,CAAC;gCACA,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC;gCACvB,EAAE,CAAA,CAAC,UAAU,KAAG,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;oCAC/C,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;gCACnC,IAAI;oCACH,KAAK,CAAC;4BACR,CAAC;4BAED,IAAI,MAAM,GACH,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;4BAElC,EAAE,CAAA,CAAC,OAAO,CAAC,CACX,CAAC;gCACA,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC;gCACvB,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gCACrB,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;gCAClC,KAAK,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;gCAC7B,GAAG,GAAG,CAAC,CAAC;4BACT,CAAC;4BACD,IAAI,CACJ,CAAC;gCACA,KAAK,GAAG,IAAI,CAAC;4BACd,CAAC;4BAED,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;wBACpC,CAAC,EAED;4BAEC,iBAAO,CAAC,UAAU,CAAC,CAAC;4BACpB,KAAK,GAAG,IAAI,CAAC;wBACd,CAAC,CACD,CAAC;oBACH,CAAC,CACD,CAAC;gBACH,CAAC;gBAMD,8BAAS,GAAT,UACC,IAAoB,EACpB,IAAO;oBAEP,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC;gBAC9C,CAAC;gBAED,4BAAO,GAAP,UAAQ,QAA+C;oBAA/C,wBAA+C,GAA/C,WAA+B,eAAI,CAAC,WAAW;oBAEtD,IAAI,KAAK,GAAG,CAAC,CAAC;oBACd,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC;wBAEvB,KAAK,EAAE,CAAC;wBACR,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBACvB,CAAC,CAAC,CAAC;oBAEH,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;0BAC1B,GAAG;0BACH,CAAC,GAAG,GAAC,KAAK,CAAC,CAAC;gBAChB,CAAC;gBAGD,wBAAG,GAAH;oBAEC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gBAC1C,CAAC;gBAED,wBAAG,GAAH;oBAEC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBACzC,CAAC;gBAED,0BAAK,GAAL,UAAgB,WAAsD;oBAAtD,2BAAsD,GAAtD,cAAoC,SAAS,CAAC,QAAQ;oBAErE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAC,CAAG,EAAE,CAAG,IAAK,OAAA,CAAC,WAAW,CAAC,CAAC,CAAC,GAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAvC,CAAuC,CAAC,CAAC;gBAC9E,CAAC;gBAED,0BAAK,GAAL,UAAgB,WAAsD;oBAAtD,2BAAsD,GAAtD,cAAoC,SAAS,CAAC,QAAQ;oBAErE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAC,CAAG,EAAE,CAAG,IAAK,OAAA,CAAC,WAAW,CAAC,CAAC,CAAC,GAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAvC,CAAuC,CAAC,CAAC;gBAC9E,CAAC;gBAGD,wBAAG,GAAH,UAAI,QAA+C;oBAA/C,wBAA+C,GAA/C,WAA+B,eAAI,CAAC,WAAW;oBAElD,IAAI,GAAG,GAAG,CAAC,CAAC;oBAGZ,IAAI,WAAW,GAAG,CAAC,CAAC;oBAEpB,IAAI,CAAC,OAAO,CACX,UAAA,CAAC;wBAEA,IAAI,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBACxB,EAAE,CAAA,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAChB,CAAC;4BACA,GAAG,GAAG,GAAG,CAAC;4BACV,MAAM,CAAC,KAAK,CAAC;wBACd,CAAC;wBACD,EAAE,CAAA,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;4BAClB,GAAG,IAAI,KAAK,CAAC;wBACd,IAAI;4BACH,WAAW;gCACV,KAAK,GAAC,CAAC;oCACN,CAAC,CAAC,CAAC,CAAC;oCACJ,CAAC,CAAC,CAAC,CAAC,CAAC;oBACT,CAAC,CACD,CAAC;oBAEF,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,WAAW,GAAG,CAAC,WAAW,GAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC;gBACxE,CAAC;gBAGD,4BAAO,GAAP,UAAQ,QAA+C;oBAA/C,wBAA+C,GAA/C,WAA+B,eAAI,CAAC,WAAW;oBAEtD,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAW,KAAK,CAAC;oBAEvC,IAAI,CAAC,OAAO,CACX,UAAC,CAAC,EAAE,CAAC;wBAEJ,MAAM,GAAG,IAAI,CAAC;wBACd,IAAI,KAAK,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBAC3B,EAAE,CAAA,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAChB,CAAC;4BACA,MAAM,GAAG,GAAG,CAAC;4BACb,MAAM,CAAC,KAAK,CAAC;wBACd,CAAC;wBAED,EAAE,CAAA,CAAC,KAAK,IAAE,CAAC,CAAC,CACZ,CAAC;4BACA,MAAM,GAAG,CAAC,CAAC;4BACX,MAAM,CAAC,KAAK,CAAC;wBACd,CAAC;wBAID,MAAM,IAAI,KAAK,CAAC;oBACjB,CAAC,CACD,CAAC;oBAEF,MAAM,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC;gBACjD,CAAC;gBAOD,6BAAQ,GAAR,UAAS,QAA+C;oBAA/C,wBAA+C,GAA/C,WAA+B,eAAI,CAAC,WAAW;oBAEvD,IAAI,KAAK,GAAG,CAAC,CAAC;oBACd,IAAI,MAAM,GAAU,GAAG,CAAC;oBAExB,IAAI,CAAC,OAAO,CACX,UAAC,CAAC,EAAE,CAAC;wBAEJ,IAAI,KAAK,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBAC3B,KAAK,EAAE,CAAC;wBAER,EAAE,CAAA,CAAC,KAAK,KAAG,CAAC,CAAC,CACb,CAAC;4BACA,MAAM,GAAG,KAAK,CAAC;wBAChB,CAAC;wBACD,IAAI,CACJ,CAAC;4BACA,EAAE,CAAA,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,KAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CACjD,CAAC;gCACA,MAAM,GAAG,GAAG,CAAC;gCACb,MAAM,CAAC,KAAK,CAAC;4BACd,CAAC;4BAED,MAAM,IAAI,KAAK,CAAC;wBACjB,CAAC;oBAEF,CAAC,CACD,CAAC;oBAEF,EAAE,CAAA,CAAC,KAAK,KAAG,CAAC,CAAC;wBACZ,MAAM,GAAG,GAAG,CAAC;oBAEd,MAAM,CAAC,MAAM,CAAC;gBACf,CAAC;gBAMD,yBAAI,GAAJ;oBAEC,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,CAAC,CAAC,eAAe,EAAE,CAAC;oBAEpB,IAAI,KAAK,GAAK,SAAS,CAAC;oBACxB,IAAI,KAAK,GAAW,KAAK,CAAC;oBAC1B,CAAC,CAAC,OAAO,CACR,UAAA,CAAC;wBAEA,KAAK,GAAG,IAAI,CAAC;wBACb,KAAK,GAAG,CAAC,CAAC;oBACX,CAAC,CACD,CAAC;oBAEF,EAAE,CAAA,CAAC,CAAC,KAAK,CAAC;wBAAC,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;oBACvE,MAAM,CAAC,KAAK,CAAC;gBACd,CAAC;gBAED,kCAAa,GAAb,UAAc,YAAqB;oBAArB,4BAAqB,GAArB,mBAAqB;oBAElC,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,CAAC,CAAC,eAAe,EAAE,CAAC;oBAEpB,IAAI,KAAK,GAAK,SAAS,CAAC;oBACxB,IAAI,KAAK,GAAW,KAAK,CAAC;oBAC1B,CAAC,CAAC,OAAO,CACR,UAAA,CAAC;wBAEA,KAAK,GAAG,IAAI,CAAC;wBACb,KAAK,GAAG,CAAC,CAAC;oBACX,CAAC,CACD,CAAC;oBACF,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,YAAY,GAAG,KAAK,CAAC;gBACxC,CAAC;gBAID,0BAAK,GAAL;oBAEC,MAAM,CAAgB,gBAAK,CAAC,KAAK,WAAE,CAAC;gBACrC,CAAC;gBAGD,+BAAU,GAAV,UAAW,OAAqB;oBAE/B,MAAM,CAAgB,gBAAK,CAAC,UAAU,YAAC,OAAO,CAAC,CAAC;gBACjD,CAAC;gBAGD,kCAAa,GAAb,UAAc,MAAe;oBAE5B,MAAM,CAAgB,gBAAK,CAAC,aAAa,YAAC,MAAM,CAAC,CAAC;gBACnD,CAAC;gBAED,4BAAO,GAAP;oBAEC,IAAI,CAAC,GAAG,IAAI,EAAE,QAAQ,GAAW,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;oBAEtD,IAAI,KAAS,CAAC;oBACd,IAAI,UAAyB,CAAC;oBAE9B,MAAM,CAAC,IAAI,UAAU,CACpB;wBAGC,IAAI,KAAK,GAAU,CAAC,CAAC;wBAErB,MAAM,CAAC,IAAI,wBAAc,CACxB;4BAEC,eAAe,CAAC,QAAQ,CAAC,CAAC;4BAC1B,EAAE,CAAA,CAAC,CAAC,UAAU,CAAC;gCACd,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;4BAChC,EAAE,CAAA,CAAC,CAAC,KAAK,CAAC;gCACT,KAAK,GAAG,EAAE,CAAC;4BACZ,KAAK,GAAG,CAAC,CAAC;wBACX,CAAC,EAED,UAAC,OAAO;4BAEP,eAAe,CAAC,QAAQ,CAAC,CAAC;4BAE1B,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC;4BAEhB,EAAE,CAAA,CAAC,CAAC,IAAE,KAAK,CAAC,MAAM,CAAC,CACnB,CAAC;gCACA,MAAM,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;sCAC3B,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC;sCAClD,KAAK,CAAC;4BACV,CAAC;4BAED,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;wBACtC,CAAC,CACD,CAAC;oBACH,CAAC,EAED;wBAEC,QAAQ,GAAG,IAAI,CAAC;wBAChB,EAAE,CAAA,CAAC,KAAK,CAAC;4BACR,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;wBAClB,KAAK,GAAG,IAAI,CAAC;wBAEb,iBAAO,CAAC,UAAU,CAAC,CAAC;wBACpB,UAAU,GAAG,IAAI,CAAC;oBACnB,CAAC,CACD,CAAC;gBACH,CAAC;gBAGF,iBAAC;YAAD,CAAC,AAtnDD,CACQ,kBAAkB,GAqnDzB;YAtnDD,mCAsnDC,CAAA;YAID;gBACQ,oCAAa;gBAEpB,0BACC,iBAAsC,EACtC,SAAqB;oBAErB,kBAAM,iBAAiB,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;gBAC5C,CAAC;gBAEF,uBAAC;YAAD,CAAC,AAVD,CACQ,UAAU,GASjB;YAVD,+CAUC,CAAA;YAED;gBACQ,mCAAmB;gBAI1B,yBAAY,MAAgB;oBAE3B,kBAAM;wBAEL,CAAC,CAAC,eAAe,EAAE,CAAC;wBACpB,MAAM,CAAC,IAAI,yBAAe,CAAI;4BAE7B,CAAC,CAAC,eAAe,CAAC,8CAA8C,EAAE,iBAAiB,CAAC,CAAC;4BAErF,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;wBAClB,CAAC,CAAC,CAAC;oBACJ,CAAC,CAAC,CAAC;oBAEH,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,CAAC,CAAC,qBAAqB,GAAG,iBAAiB,CAAC;oBAC5C,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC;gBAEpB,CAAC;gBAES,oCAAU,GAApB;oBAEC,gBAAK,CAAC,UAAU,WAAE,CAAC;oBACnB,IAAI,CAAC,OAAO,GAAQ,IAAI,CAAC;gBAC1B,CAAC;gBAED,sBAAI,mCAAM;yBAAV;wBAEC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;oBACrB,CAAC;;;mBAAA;gBAED,iCAAO,GAAP;oBAEC,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,CAAC,CAAC,eAAe,EAAE,CAAC;oBAEpB,MAAM,CAAC,oBAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBAC3B,CAAC;gBAED,sCAAY,GAAZ;oBAEC,MAAM,CAAC,IAAI,eAAe,CAAI,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC7C,CAAC;gBAGD,iCAAO,GAAP,UAAQ,MAA+B;oBAEtC,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,CAAC,CAAC,eAAe,EAAE,CAAC;oBAEpB,oBAAO,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC5B,CAAC;gBAID,6BAAG,GAAH,UAAI,SAAuB;oBAE1B,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,CAAC,CAAC,eAAe,EAAE,CAAC;oBAEpB,IAAI,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;oBAC5C,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,SAAS,IAAI,gBAAK,CAAC,GAAG,YAAC,SAAS,CAAC,CAAC,CAAC;gBACpD,CAAC;gBAED,+BAAK,GAAL,UAAM,SAAuB;oBAE5B,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,CAAC,CAAC,eAAe,EAAE,CAAC;oBAEpB,IAAI,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;oBAC5C,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,GAAG,gBAAK,CAAC,KAAK,YAAC,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC;gBAC1D,CAAC;gBAED,4CAAkB,GAAlB,UAAmB,KAAY,EAAE,YAAqB;oBAArB,4BAAqB,GAArB,mBAAqB;oBAErD,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,CAAC,CAAC,eAAe,EAAE,CAAC;oBACpB,iBAAO,CAAC,mBAAmB,CAAC,KAAK,EAAC,OAAO,CAAC,CAAC;oBAE3C,IAAI,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC;oBACvB,MAAM,CAAC,KAAK,GAAC,MAAM,CAAC,MAAM;0BACvB,MAAM,CAAC,KAAK,CAAC;0BACb,YAAY,CAAC;gBACjB,CAAC;gBAED,8BAAI,GAAJ;oBAEC,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,CAAC,CAAC,eAAe,EAAE,CAAC;oBAEpB,IAAI,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;oBAC5C,MAAM,CAAC,CAAC,GAAG,CAAC;0BACT,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;0BACf,gBAAK,CAAC,IAAI,WAAE,CAAC;gBACjB,CAAC;gBAED,uCAAa,GAAb,UAAc,YAAqB;oBAArB,4BAAqB,GAArB,mBAAqB;oBAElC,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,CAAC,CAAC,eAAe,EAAE,CAAC;oBAEpB,IAAI,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;oBAC5C,MAAM,CAAC,GAAG;0BACP,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;0BACf,YAAY,CAAC;gBACjB,CAAC;gBAED,8BAAI,GAAJ,UAAK,KAAY;oBAGhB,IAAI,CAAC,GAAG,IAAI,CAAC;oBAEb,EAAE,CAAA,CAAC,CAAC,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC;wBACb,MAAM,CAAC,CAAC,CAAC;oBAEV,MAAM,CAAC,IAAI,UAAU,CACpB,cAAM,OAAA,IAAI,yBAAe,CAAI,cAAM,OAAA,CAAC,CAAC,OAAO,EAAT,CAAS,EAAE,KAAK,CAAC,EAA9C,CAA8C,CACpD,CAAC;gBACH,CAAC;gBAED,wCAAc,GAAd,UAAe,KAAgB;oBAAhB,qBAAgB,GAAhB,SAAgB;oBAE9B,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;gBACzC,CAAC;gBAED,oCAAU,GAAV,UAAW,KAAY;oBAEtB,EAAE,CAAA,CAAC,CAAC,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC;wBACb,MAAM,CAAC,UAAU,CAAC,KAAK,EAAK,CAAC;oBAE9B,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,EAAE,CAAA,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;wBACnB,MAAM,CAAC,CAAC,CAAC;oBAEV,IAAI,GAAG,GAAG,CAAC,CAAC,OAAO;0BAChB,CAAC,CAAC,OAAO,CAAC,MAAM;0BAChB,CAAC,CAAC;oBAEL,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;gBAC5B,CAAC;gBAED,iCAAO,GAAP;oBAEC,IAAI,CAAC,GAAG,IAAI,CAAC;oBAEb,MAAM,CAAC,IAAI,UAAU,CACpB,cAAM,OAAA,IAAI,yBAAe,CACxB,cAAM,OAAA,CAAC,CAAC,OAAO,EAAT,CAAS,EAAE,CAAC,CAAC,OAAO;0BACvB,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;0BACtB,CAAC,EAAE,CAAC,CAAC,CACR,EAJK,CAIL,CACD,CAAC;gBACH,CAAC;gBAED,iCAAO,GAAP;oBAEC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBAC5B,CAAC;gBAED,uCAAa,GAAb,UACC,MAA4B,EAC5B,gBAAwD;oBAAxD,gCAAwD,GAAxD,mBAAyC,MAAM,CAAC,QAAQ;oBAExD,EAAE,CAAA,CAAC,eAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;wBAC3B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;oBAErE,EAAE,CAAA,CAAC,MAAM,YAAY,eAAe,CAAC;wBACpC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;oBAE5D,MAAM,CAAC,gBAAK,CAAC,aAAa,YAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;gBACtD,CAAC;gBAGD,wCAAc,GAAd,UAAe,SAAqB,EAAE,QAAiD;oBAAxE,yBAAqB,GAArB,cAAqB;oBAAE,wBAAiD,GAAjD,WAA+B,SAAS,CAAC,QAAQ;oBAEtF,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;oBACrB,MAAM,CAAC,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;0BACtB,CAAE,CAAC,IAAI,CAAC,SAAS,CAAC;0BAC7B,gBAAK,CAAC,cAAc,YAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;gBAC9C,CAAC;gBAEF,sBAAC;YAAD,CAAC,AA1LD,CACQ,gBAAgB,GAyLvB;YASD;gBACQ,4BAAyB;gBAGhC,kBAAoB,SAAc,EAAE,QAAmB;oBAEtD,kBAAM,QAAQ,CAAC,CAAC;oBAFG,cAAS,GAAT,SAAS,CAAK;gBAGlC,CAAC;gBAED,sBAAI,yBAAG;yBAAP;wBAEC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;oBACvB,CAAC;;;mBAAA;gBACF,eAAC;YAAD,CAAC,AAbD,CACQ,eAAe,GAYtB;YAWD;gBAIC,gBAAoB,WAAwC;oBAAxC,gBAAW,GAAX,WAAW,CAA6B;gBAE5D,CAAC;gBAED,sBAAI,yBAAK;yBAAT;wBAEC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;oBAC/B,CAAC;;;mBAAA;gBAED,oBAAG,GAAH,UAAI,GAAQ;oBAEX,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACvC,CAAC;gBAED,yBAAQ,GAAR,UAAS,GAAQ;oBAEhB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBAC1C,CAAC;gBAED,8BAAa,GAAb;oBAGC,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,IAAI,UAAuD,CAAC;oBAE5D,MAAM,CAAC,IAAI,wBAAc,CACxB;wBAEC,UAAU,GAAG,CAAC,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;oBAC5C,CAAC,EACD,UAAC,OAAO;wBAGP,EAAE,CAAA,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;4BACzB,MAAM,CAAC,KAAK,CAAC;wBAEd,IAAI,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;wBAEjC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,QAAQ,CAAiB,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;oBACtF,CAAC,EACD;wBAEC,iBAAO,CAAC,UAAU,CAAC,CAAC;oBACrB,CAAC,CACD,CAAC;gBACH,CAAC;gBAEF,aAAC;YAAD,CAAC,AAnDD,IAmDC;YAYD;gBACQ,qCAAmB;gBAG1B,2BACS,MAAqB,EACtB,WAAiC,EACjC,KAAW,EACX,MAAgC,EAChC,QAAuC;oBAA9C,wBAA8C,GAA9C,WAAgC,MAAM,CAAC,OAAO;oBAE9C,kBAAM,IAAI,CAAC,CAAC;oBANJ,WAAM,GAAN,MAAM,CAAe;oBACtB,gBAAW,GAAX,WAAW,CAAsB;oBACjC,UAAK,GAAL,KAAK,CAAM;oBACX,WAAM,GAAN,MAAM,CAA0B;oBAChC,aAAQ,GAAR,QAAQ,CAA+B;oBAG9C,2BAAc,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC5C,CAAC;gBAEO,mDAAuB,GAA/B,UACC,WAAiC,EACjC,KAAW;oBAEX,MAAM,CAAC,IAAI,iBAAiB,CAAa,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;gBACjF,CAAC;gBAED,kCAAM,GAAN,UAAO,WAAiC;oBAEvC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,CAAe,CAAC,CAAC;gBACnE,CAAC;gBAED,qCAAS,GAAT,UAAU,UAAwB;oBAEjC,MAAM,CAAC,IAAI,iBAAiB,CAAQ,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAe,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;gBAC3F,CAAC;gBAED,4CAAgB,GAAhB,UAAiB,WAAiC;oBAEjD,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,EAAgB,CAAC,CAAC;gBACpE,CAAC;gBAED,6CAAiB,GAAjB,UAAkB,UAAwB;oBAEzC,MAAM,CAAC,IAAI,iBAAiB,CAAQ,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,EAAgB,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;gBAC5F,CAAC;gBAED,yCAAa,GAAb;oBAEC,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,IAAI,MAAU,CAAC;oBACf,IAAI,OAAgB,CAAC;oBACrB,IAAI,KAAK,GAAU,CAAC,CAAC;oBAErB,MAAM,CAAC,IAAI,wBAAc,CACxB;wBAEC,KAAK,GAAG,CAAC,CAAC;wBACV,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;wBACtC,OAAO,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;oBAC9D,CAAC,EAED,UAAC,OAAO;wBAEP,MAAM,CAAC,CAAC,KAAK,GAAC,OAAO,CAAC,MAAM,CAAC;8BAC1B,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;8BAC7C,KAAK,CAAC;oBACV,CAAC,EAED;wBAEC,EAAE,CAAA,CAAC,MAAM,CAAC;4BACT,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;wBACnB,MAAM,GAAG,IAAI,CAAC;wBACd,EAAE,CAAA,CAAC,OAAO,CAAC;4BACV,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;wBACpB,OAAO,GAAG,IAAI,CAAC;oBAChB,CAAC,EAED,KAAK,CACL,CAAC;gBACH,CAAC;gBAES,sCAAU,GAApB;oBAEC,gBAAK,CAAC,UAAU,WAAE,CAAC;oBACnB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;oBACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;oBACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;oBAClB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACpB,CAAC;gBAEF,wBAAC;YAAD,CAAC,AAvFD,CACQ,gBAAgB,GAsFvB;YA+CD,oBAAe,UAAU,EAAC"} \ No newline at end of file +{"version":3,"file":"Linq.js","sourceRoot":"","sources":["../../../source/System.Linq/Linq.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/system/System/Collections/Array/Compare.d.ts b/dist/system/System/Collections/Array/Compare.d.ts index 2ce82c2d..84dc3239 100644 --- a/dist/system/System/Collections/Array/Compare.d.ts +++ b/dist/system/System/Collections/Array/Compare.d.ts @@ -1,11 +1,11 @@ -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { Primitive } from "../../Primitive"; +import { EqualityComparison, Comparison } from "../../FunctionTypes"; +import { IArray } from "./IArray"; +import { IComparable } from "../../IComparable"; export declare function areAllEqual(arrays: any[][], strict?: boolean, equalityComparer?: EqualityComparison): boolean; export declare function areEqual(a: IArray, b: IArray, strict?: boolean, equalityComparer?: EqualityComparison): boolean; export declare function areEquivalent(a: IArray, b: IArray): boolean; diff --git a/dist/system/System/Collections/Array/Compare.js b/dist/system/System/Collections/Array/Compare.js index 55f56770..28dbfffa 100644 --- a/dist/system/System/Collections/Array/Compare.js +++ b/dist/system/System/Collections/Array/Compare.js @@ -35,7 +35,7 @@ System.register(["../../Compare", "../../Types"], function(exports_1, context_1) function areEqual(a, b, strict, equalityComparer) { if (equalityComparer === void 0) { equalityComparer = Values.areEqual; } var len = validateSize(a, b); - if (Types_1.default.isBoolean(len)) + if (Types_1.Type.isBoolean(len)) return len; for (var i = 0; i < len; i++) { if (!equalityComparer(a[i], b[i], strict)) @@ -54,15 +54,16 @@ System.register(["../../Compare", "../../Types"], function(exports_1, context_1) b = []; b.length = len; } - for (var i = 0; i < len; i++) + for (var i = 0; i < len; i++) { b[i] = a[i]; + } b.sort(comparer); return b; } function areEquivalent(a, b, comparer) { if (comparer === void 0) { comparer = Values.compare; } var len = validateSize(a, b); - if (Types_1.default.isBoolean(len)) + if (Types_1.Type.isBoolean(len)) return len; a = sort(a, comparer); b = sort(b, comparer); diff --git a/dist/system/System/Collections/Array/Compare.js.map b/dist/system/System/Collections/Array/Compare.js.map index c2dab257..fd5d757e 100644 --- a/dist/system/System/Collections/Array/Compare.js.map +++ b/dist/system/System/Collections/Array/Compare.js.map @@ -1 +1 @@ -{"version":3,"file":"Compare.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Array/Compare.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Compare.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Array/Compare.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/system/System/Collections/Array/Dispatch.d.ts b/dist/system/System/Collections/Array/Dispatch.d.ts index d9d28acc..1910df44 100644 --- a/dist/system/System/Collections/Array/Dispatch.d.ts +++ b/dist/system/System/Collections/Array/Dispatch.d.ts @@ -1,9 +1,8 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { IArray } from "./IArray"; export interface DispatchErrorHandler { (ex?: any, i?: number): void; } diff --git a/dist/system/System/Collections/Array/Dispatch.js b/dist/system/System/Collections/Array/Dispatch.js index 7025ca8d..de31d3c4 100644 --- a/dist/system/System/Collections/Array/Dispatch.js +++ b/dist/system/System/Collections/Array/Dispatch.js @@ -19,7 +19,7 @@ System.register(["../../Types", "./Utility"], function(exports_1, context_1) { catch (ex) { if (!trap) throw ex; - else if (Types_1.default.isFunction(trap)) + else if (Types_1.Type.isFunction(trap)) trap(ex, i); } } @@ -42,7 +42,7 @@ System.register(["../../Types", "./Utility"], function(exports_1, context_1) { result[i] = VOID0; if (!trap) throw ex; - else if (Types_1.default.isFunction(trap)) + else if (Types_1.Type.isFunction(trap)) trap(ex, i); } } diff --git a/dist/system/System/Collections/Array/Dispatch.js.map b/dist/system/System/Collections/Array/Dispatch.js.map index a4828774..79fe3002 100644 --- a/dist/system/System/Collections/Array/Dispatch.js.map +++ b/dist/system/System/Collections/Array/Dispatch.js.map @@ -1 +1 @@ -{"version":3,"file":"Dispatch.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Array/Dispatch.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;QAOG,KAAK;IA4BX,gBACC,SAAkC,EAClC,OAAS,EAAE,IAAkC;QAE7C,EAAE,CAAA,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,CAAC,CACjC,CAAC;YACA,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAC,GAAG,EAAE,CAAC,EAAE,EACjD,CAAC;gBACA,IAAI,EAAE,GAAY,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC/B,EAAE,CAAA,CAAC,CAAC,EAAE,CAAC;oBAAC,QAAQ,CAAC;gBACjB,IACA,CAAC;oBACA,EAAE,CAAC,OAAO,CAAC,CAAC;gBACb,CACA;gBAAA,KAAK,CAAA,CAAC,EAAE,CAAC,CACT,CAAC;oBACA,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC;wBACR,MAAM,EAAE,CAAC;oBACV,IAAI,CAAC,EAAE,CAAA,CAAC,eAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;wBAC7B,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;gBACd,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAvBD,2BAuBC,CAAA;IAWD,gBACC,SAAsC,EACtC,OAAS,EAAE,IAAkC;QAG7C,EAAE,CAAA,CAAC,CAAC,SAAS,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC;QAE3B,IAAI,MAAM,GAAS,cAAI,CAAC,SAAS,CAAC,CAAC;QACnC,EAAE,CAAA,CAAC,SAAS,CAAC,MAAM,CAAC,CACpB,CAAC;YAEA,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAC,GAAG,EAAE,CAAC,EAAE,EAC9C,CAAC;gBACA,IAAI,EAAE,GAAY,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC5B,IACA,CAAC;oBACA,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE;0BACX,EAAE,CAAC,OAAO,CAAC;0BACX,KAAK,CAAC;gBACV,CACA;gBAAA,KAAK,CAAA,CAAC,EAAE,CAAC,CACT,CAAC;oBACA,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;oBAClB,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC;wBACR,MAAM,EAAE,CAAC;oBACV,IAAI,CAAC,EAAE,CAAA,CAAC,eAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;wBAC7B,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;gBACd,CAAC;YACF,CAAC;QACF,CAAC;QAED,MAAM,CAAC,MAAM,CAAC;IAEf,CAAC;IAjCD,2BAiCC,CAAA;IAUD,kBACC,SAAkC,EAClC,OAAS,EAAE,IAAkC;QAE7C,MAAM,CAAC,cAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IALD,+BAKC,CAAA;;;;;;;;;;YA9GK,KAAK,GAAO,KAAI,CAAC,CAAC,CAAC,CAAC;YAgH1B,oBAAe,QAAQ,EAAC"} \ No newline at end of file +{"version":3,"file":"Dispatch.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Array/Dispatch.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;QAMG,KAAK;IA4BX,gBACC,SAAkC,EAClC,OAAS,EAAE,IAAkC;QAE7C,EAAE,CAAA,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,CAAC,CACjC,CAAC;YACA,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAC,GAAG,EAAE,CAAC,EAAE,EACjD,CAAC;gBACA,IAAI,EAAE,GAAY,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC/B,EAAE,CAAA,CAAC,CAAC,EAAE,CAAC;oBAAC,QAAQ,CAAC;gBACjB,IACA,CAAC;oBACA,EAAE,CAAC,OAAO,CAAC,CAAC;gBACb,CACA;gBAAA,KAAK,CAAA,CAAC,EAAE,CAAC,CACT,CAAC;oBACA,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC;wBACR,MAAM,EAAE,CAAC;oBACV,IAAI,CAAC,EAAE,CAAA,CAAC,YAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;wBAC7B,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;gBACd,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAvBD,2BAuBC,CAAA;IAWD,gBACC,SAAsC,EACtC,OAAS,EAAE,IAAkC;QAG7C,EAAE,CAAA,CAAC,CAAC,SAAS,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC;QAE3B,IAAI,MAAM,GAAS,cAAI,CAAC,SAAS,CAAC,CAAC;QACnC,EAAE,CAAA,CAAC,SAAS,CAAC,MAAM,CAAC,CACpB,CAAC;YAEA,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAC,GAAG,EAAE,CAAC,EAAE,EAC9C,CAAC;gBACA,IAAI,EAAE,GAAY,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC5B,IACA,CAAC;oBACA,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE;0BACX,EAAE,CAAC,OAAO,CAAC;0BACX,KAAK,CAAC;gBACV,CACA;gBAAA,KAAK,CAAA,CAAC,EAAE,CAAC,CACT,CAAC;oBACA,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;oBAClB,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC;wBACR,MAAM,EAAE,CAAC;oBACV,IAAI,CAAC,EAAE,CAAA,CAAC,YAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;wBAC7B,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;gBACd,CAAC;YACF,CAAC;QACF,CAAC;QAED,MAAM,CAAC,MAAM,CAAC;IAEf,CAAC;IAjCD,2BAiCC,CAAA;IAUD,kBACC,SAAkC,EAClC,OAAS,EAAE,IAAkC;QAE7C,MAAM,CAAC,cAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IALD,+BAKC,CAAA;;;;;;;;;;YA9GK,KAAK,GAAO,KAAI,CAAC,CAAC,CAAC,CAAC;YAgH1B,oBAAe,QAAQ,EAAC"} \ No newline at end of file diff --git a/dist/system/System/Collections/Array/ReadOnlyArrayWrapper.d.ts b/dist/system/System/Collections/Array/ReadOnlyArrayWrapper.d.ts index 88e74cbc..f27159ff 100644 --- a/dist/system/System/Collections/Array/ReadOnlyArrayWrapper.d.ts +++ b/dist/system/System/Collections/Array/ReadOnlyArrayWrapper.d.ts @@ -2,7 +2,8 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import ReadOnlyCollectionBase from "../ReadOnlyCollectionBase"; +import { ReadOnlyCollectionBase } from "../ReadOnlyCollectionBase"; +import { IArray } from "./IArray"; export default class ReadOnlyArrayWrapper extends ReadOnlyCollectionBase { constructor(array: IArray); getValueAt: (index: number) => T; diff --git a/dist/system/System/Collections/Array/ReadOnlyArrayWrapper.js b/dist/system/System/Collections/Array/ReadOnlyArrayWrapper.js index 028bca3f..f3cccba2 100644 --- a/dist/system/System/Collections/Array/ReadOnlyArrayWrapper.js +++ b/dist/system/System/Collections/Array/ReadOnlyArrayWrapper.js @@ -2,7 +2,7 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -System.register(["../../Exceptions/ArgumentNullException", "../Enumeration/Enumerator", "../ReadOnlyCollectionBase"], function(exports_1, context_1) { +System.register(["../../Exceptions/ArgumentNullException", "../ReadOnlyCollectionBase", "../Enumeration/Enumerator"], function(exports_1, context_1) { "use strict"; var __moduleName = context_1 && context_1.id; var __extends = (this && this.__extends) || function (d, b) { @@ -10,18 +10,18 @@ System.register(["../../Exceptions/ArgumentNullException", "../Enumeration/Enume function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; - var ArgumentNullException_1, Enumerator_1, ReadOnlyCollectionBase_1; + var ArgumentNullException_1, ReadOnlyCollectionBase_1, Enumerator_1; var ReadOnlyArrayWrapper; return { setters:[ function (ArgumentNullException_1_1) { ArgumentNullException_1 = ArgumentNullException_1_1; }, - function (Enumerator_1_1) { - Enumerator_1 = Enumerator_1_1; - }, function (ReadOnlyCollectionBase_1_1) { ReadOnlyCollectionBase_1 = ReadOnlyCollectionBase_1_1; + }, + function (Enumerator_1_1) { + Enumerator_1 = Enumerator_1_1; }], execute: function() { ReadOnlyArrayWrapper = (function (_super) { @@ -29,14 +29,14 @@ System.register(["../../Exceptions/ArgumentNullException", "../Enumeration/Enume function ReadOnlyArrayWrapper(array) { _super.call(this); if (!array) - throw new ArgumentNullException_1.default('array'); + throw new ArgumentNullException_1.ArgumentNullException('array'); var _ = this; _._getCount = function () { return array.length; }; _.getEnumerator = function () { return Enumerator_1.from(array); }; _.getValueAt = function (i) { return array[i]; }; } return ReadOnlyArrayWrapper; - }(ReadOnlyCollectionBase_1.default)); + }(ReadOnlyCollectionBase_1.ReadOnlyCollectionBase)); exports_1("default", ReadOnlyArrayWrapper); } } diff --git a/dist/system/System/Collections/Array/ReadOnlyArrayWrapper.js.map b/dist/system/System/Collections/Array/ReadOnlyArrayWrapper.js.map index aa512a09..47ae6b79 100644 --- a/dist/system/System/Collections/Array/ReadOnlyArrayWrapper.js.map +++ b/dist/system/System/Collections/Array/ReadOnlyArrayWrapper.js.map @@ -1 +1 @@ -{"version":3,"file":"ReadOnlyArrayWrapper.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Array/ReadOnlyArrayWrapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;YAMH;gBAAqD,wCAAyB;gBAG7E,8BAAY,KAAe;oBAE1B,iBAAO,CAAC;oBACR,EAAE,CAAA,CAAC,CAAC,KAAK,CAAC;wBACT,MAAM,IAAI,+BAAqB,CAAC,OAAO,CAAC,CAAC;oBAE1C,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,CAAC,CAAC,SAAS,GAAG,cAAM,OAAA,KAAK,CAAC,MAAM,EAAZ,CAAY,CAAC;oBACjC,CAAC,CAAC,aAAa,GAAG,cAAM,OAAA,iBAAc,CAAC,KAAK,CAAC,EAArB,CAAqB,CAAC;oBAC9C,CAAC,CAAC,UAAU,GAAG,UAAA,CAAC,IAAI,OAAA,KAAK,CAAC,CAAC,CAAC,EAAR,CAAQ,CAAC;gBAC9B,CAAC;gBAGF,2BAAC;YAAD,CAAC,AAhBD,CAAqD,gCAAsB,GAgB1E;YAhBD,0CAgBC,CAAA"} \ No newline at end of file +{"version":3,"file":"ReadOnlyArrayWrapper.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Array/ReadOnlyArrayWrapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;YAOH;gBAAqD,wCAAyB;gBAG7E,8BAAY,KAAe;oBAE1B,iBAAO,CAAC;oBACR,EAAE,CAAA,CAAC,CAAC,KAAK,CAAC;wBACT,MAAM,IAAI,6CAAqB,CAAC,OAAO,CAAC,CAAC;oBAE1C,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,CAAC,CAAC,SAAS,GAAG,cAAM,OAAA,KAAK,CAAC,MAAM,EAAZ,CAAY,CAAC;oBACjC,CAAC,CAAC,aAAa,GAAG,cAAM,OAAA,iBAAc,CAAC,KAAK,CAAC,EAArB,CAAqB,CAAC;oBAC9C,CAAC,CAAC,UAAU,GAAG,UAAA,CAAC,IAAI,OAAA,KAAK,CAAC,CAAC,CAAC,EAAR,CAAQ,CAAC;gBAC9B,CAAC;gBAGF,2BAAC;YAAD,CAAC,AAhBD,CAAqD,+CAAsB,GAgB1E;YAhBD,0CAgBC,CAAA"} \ No newline at end of file diff --git a/dist/system/System/Collections/Array/Sort.d.ts b/dist/system/System/Collections/Array/Sort.d.ts index 5524bcb8..3201c0e9 100644 --- a/dist/system/System/Collections/Array/Sort.d.ts +++ b/dist/system/System/Collections/Array/Sort.d.ts @@ -1,9 +1,9 @@ -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { Primitive } from "../../Primitive"; +import { Selector, Comparison } from "../../FunctionTypes"; +import { Order } from "../Sorting/Order"; export declare function createComparer(selector: Selector, order?: Order | Order[], equivalentToNaN?: any): Comparison; export { createComparer as default, createComparer as by }; diff --git a/dist/system/System/Collections/Array/Sort.js b/dist/system/System/Collections/Array/Sort.js index 2bceffd1..a6a90d29 100644 --- a/dist/system/System/Collections/Array/Sort.js +++ b/dist/system/System/Collections/Array/Sort.js @@ -2,7 +2,7 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -System.register(['../../Types', '../../Compare'], function(exports_1, context_1) { +System.register(["../../Types", "../../Compare"], function(exports_1, context_1) { "use strict"; var __moduleName = context_1 && context_1.id; var Types_1, Compare_1; @@ -14,7 +14,7 @@ System.register(['../../Types', '../../Compare'], function(exports_1, context_1) function createComparer(selector, order, equivalentToNaN) { if (order === void 0) { order = 1; } if (equivalentToNaN === void 0) { equivalentToNaN = NaN; } - var nanHasEquivalent = !Types_1.default.isTrueNaN(equivalentToNaN); + var nanHasEquivalent = !Types_1.Type.isTrueNaN(equivalentToNaN); return function (a, b) { var aValue = ensureArray(selector(a)); var bValue = ensureArray(selector(b)); @@ -25,9 +25,9 @@ System.register(['../../Types', '../../Compare'], function(exports_1, context_1) ? (i < oArray.length ? oArray[i] : 1) : order; if (nanHasEquivalent) { - if (Types_1.default.isTrueNaN(vA)) + if (Types_1.Type.isTrueNaN(vA)) vA = equivalentToNaN; - if (Types_1.default.isTrueNaN(vB)) + if (Types_1.Type.isTrueNaN(vB)) vB = equivalentToNaN; } var r = Compare_1.compare(vA, vB); diff --git a/dist/system/System/Collections/Array/Sort.js.map b/dist/system/System/Collections/Array/Sort.js.map index 79d69b9d..8abfe172 100644 --- a/dist/system/System/Collections/Array/Sort.js.map +++ b/dist/system/System/Collections/Array/Sort.js.map @@ -1 +1 @@ -{"version":3,"file":"Sort.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Array/Sort.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;IASH,qBAAwB,KAAW;QAElC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;cACnB,KAAK;cACV,CAAI,KAAK,CAAC,CAAC;IACf,CAAC;IAyBD,wBACC,QAA4C,EAC5C,KAAuC,EACvC,eAAyB;QADzB,qBAAuC,GAAvC,SAAuC;QACvC,+BAAyB,GAAzB,qBAAyB;QAEzB,IAAI,gBAAgB,GAAG,CAAC,eAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAExD,MAAM,CAAC,UAAC,CAAmB,EAAE,CAAmB;YAG/C,IAAI,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAEjD,IAAI,MAAM,GAAW,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;YACzD,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAC,GAAG,EAAE,CAAC,EAAE,EACzB,CAAC;gBACA,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,EAC9B,CAAC,GAAI,MAAM;sBACR,CAAC,CAAC,GAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAe,CAAC;sBACxC,KAAK,CAAC;gBAEpB,EAAE,CAAA,CAAC,gBAAgB,CAAC,CACpB,CAAC;oBACA,EAAE,CAAA,CAAC,eAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;wBACrB,EAAE,GAAG,eAAe,CAAC;oBACtB,EAAE,CAAA,CAAC,eAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;wBACrB,EAAE,GAAG,eAAe,CAAC;gBAEvB,CAAC;gBAED,IAAI,CAAC,GAAG,iBAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBACxB,EAAE,CAAA,CAAC,CAAC,KAAG,CAAmB,CAAC;oBAC1B,MAAM,CAAC,CAAC,GAAC,CAAC,CAAC;YAEb,CAAC;YAED,MAAM,CAAC,CAAC,CAAC;QACV,CAAC,CAAC;IACH,CAAC;IAvCD,2CAuCC,CAAA;;;;;;;;;;YAGkB,oCAAO;YACP,+BAAE"} \ No newline at end of file +{"version":3,"file":"Sort.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Array/Sort.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;IAUH,qBAAwB,KAAW;QAElC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;cACnB,KAAK;cACV,CAAI,KAAK,CAAC,CAAC;IACf,CAAC;IAyBD,wBACC,QAA4C,EAC5C,KAAuC,EACvC,eAAyB;QADzB,qBAAuC,GAAvC,SAAuC;QACvC,+BAAyB,GAAzB,qBAAyB;QAEzB,IAAI,gBAAgB,GAAG,CAAC,YAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAExD,MAAM,CAAC,UAAC,CAAmB,EAAE,CAAmB;YAG/C,IAAI,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAEjD,IAAI,MAAM,GAAW,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;YACzD,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAC,GAAG,EAAE,CAAC,EAAE,EACzB,CAAC;gBACA,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,EAC9B,CAAC,GAAoB,MAAM;sBACxB,CAAC,CAAC,GAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAe,CAAC;sBACxC,KAAK,CAAC;gBAEpB,EAAE,CAAA,CAAC,gBAAgB,CAAC,CACpB,CAAC;oBACA,EAAE,CAAA,CAAC,YAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;wBACrB,EAAE,GAAG,eAAe,CAAC;oBACtB,EAAE,CAAA,CAAC,YAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;wBACrB,EAAE,GAAG,eAAe,CAAC;gBAEvB,CAAC;gBAED,IAAI,CAAC,GAAG,iBAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBACxB,EAAE,CAAA,CAAC,CAAC,KAAG,CAAmB,CAAC;oBAC1B,MAAM,CAAC,CAAC,GAAC,CAAC,CAAC;YAEb,CAAC;YAED,MAAM,CAAC,CAAC,CAAC;QACV,CAAC,CAAC;IACH,CAAC;IAvCD,2CAuCC,CAAA;;;;;;;;;;YAGkB,oCAAO;YACP,+BAAE"} \ No newline at end of file diff --git a/dist/system/System/Collections/Array/Utility.d.ts b/dist/system/System/Collections/Array/Utility.d.ts index 2314ac04..9c7b0c7f 100644 --- a/dist/system/System/Collections/Array/Utility.d.ts +++ b/dist/system/System/Collections/Array/Utility.d.ts @@ -1,9 +1,9 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { EqualityComparison, Predicate, Action } from "../../FunctionTypes"; +import { IArray } from "./IArray"; export declare function initialize(length: number): T[]; export declare function copy(source: IArray, sourceIndex?: number, length?: number): T[]; export declare function copyTo>(source: IArray, destination: TDestination, sourceIndex?: number, destinationIndex?: number, length?: number): TDestination; diff --git a/dist/system/System/Collections/Array/Utility.js b/dist/system/System/Collections/Array/Utility.js index 5c70dac3..5bf7141c 100644 --- a/dist/system/System/Collections/Array/Utility.js +++ b/dist/system/System/Collections/Array/Utility.js @@ -8,7 +8,7 @@ System.register(["../../Types", "../../Integer", "../../Compare", "../../Excepti var Types_1, Integer_1, Compare_1, ArgumentException_1, ArgumentNullException_1, ArgumentOutOfRangeException_1; var CBN, CB0, CBL0, VFN; function initialize(length) { - Integer_1.default.assert(length, 'length'); + Integer_1.Integer.assert(length, 'length'); var array; if (length > 65536) array = new Array(length); @@ -32,21 +32,21 @@ System.register(["../../Types", "../../Integer", "../../Compare", "../../Excepti if (destinationIndex === void 0) { destinationIndex = 0; } if (length === void 0) { length = Infinity; } if (!source) - throw new ArgumentNullException_1.default('source', CBN); + throw new ArgumentNullException_1.ArgumentNullException('source', CBN); if (!destination) - throw new ArgumentNullException_1.default('destination', CBN); + throw new ArgumentNullException_1.ArgumentNullException('destination', CBN); if (sourceIndex < 0) - throw new ArgumentOutOfRangeException_1.default('sourceIndex', sourceIndex, CBL0); + throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('sourceIndex', sourceIndex, CBL0); var sourceLength = source.length; if (!sourceLength) return destination; if (sourceIndex >= sourceLength) - throw new ArgumentOutOfRangeException_1.default('sourceIndex', sourceIndex, 'Must be less than the length of the source array.'); + throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('sourceIndex', sourceIndex, 'Must be less than the length of the source array.'); if (destination.length < 0) - throw new ArgumentOutOfRangeException_1.default('destinationIndex', destinationIndex, CBL0); + throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('destinationIndex', destinationIndex, CBL0); var maxLength = source.length - sourceIndex; if (isFinite(length) && length > maxLength) - throw new ArgumentOutOfRangeException_1.default('sourceIndex', sourceIndex, 'Source index + length cannot exceed the length of the source array.'); + throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('sourceIndex', sourceIndex, 'Source index + length cannot exceed the length of the source array.'); length = Math.min(length, maxLength); var newLength = destinationIndex + length; if (newLength > destination.length) @@ -61,7 +61,7 @@ System.register(["../../Types", "../../Integer", "../../Compare", "../../Excepti if (equalityComparer === void 0) { equalityComparer = Compare_1.areEqual; } var len = array && array.length; if (len) { - if (Array.isArray(array) && !Types_1.default.isTrueNaN(item)) + if (Array.isArray(array) && !Types_1.Type.isTrueNaN(item)) return array.indexOf(item); for (var i = 0; i < len; i++) { if (equalityComparer(array[i], item)) @@ -80,7 +80,7 @@ System.register(["../../Types", "../../Integer", "../../Compare", "../../Excepti if (!array || !array.length || max === 0) return 0; if (max < 0) - throw new ArgumentOutOfRangeException_1.default('max', max, CBL0); + throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('max', max, CBL0); if (!max) max = Infinity; var count = 0; @@ -99,12 +99,12 @@ System.register(["../../Types", "../../Integer", "../../Compare", "../../Excepti if (start === void 0) { start = 0; } if (!array) return; - Integer_1.default.assertZeroOrGreater(start, 'start'); + Integer_1.Integer.assertZeroOrGreater(start, 'start'); if (!stop && stop !== 0) stop = array.length; - Integer_1.default.assert(stop, 'stop'); + Integer_1.Integer.assert(stop, 'stop'); if (stop < start) - throw new ArgumentOutOfRangeException_1.default("stop", stop, "is less than start"); + throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException("stop", stop, "is less than start"); for (var i = start; i < stop; i++) { array[i] = value; } @@ -118,7 +118,7 @@ System.register(["../../Types", "../../Integer", "../../Compare", "../../Excepti function register(array, item, equalityComparer) { if (equalityComparer === void 0) { equalityComparer = Compare_1.areEqual; } if (!array) - throw new ArgumentNullException_1.default('array', CBN); + throw new ArgumentNullException_1.ArgumentNullException('array', CBN); var len = array.length; var ok = !len || !contains(array, item, equalityComparer); if (ok) @@ -128,9 +128,9 @@ System.register(["../../Types", "../../Integer", "../../Compare", "../../Excepti exports_1("register", register); function findIndex(array, predicate) { if (!array) - throw new ArgumentNullException_1.default('array', CBN); - if (!Types_1.default.isFunction(predicate)) - throw new ArgumentException_1.default('predicate', 'Must be a function.'); + throw new ArgumentNullException_1.ArgumentNullException('array', CBN); + if (!Types_1.Type.isFunction(predicate)) + throw new ArgumentException_1.ArgumentException('predicate', 'Must be a function.'); var len = array.length; if (Array.isArray(array)) { for (var i = 0; i < len; i++) { @@ -166,10 +166,10 @@ System.register(["../../Types", "../../Integer", "../../Compare", "../../Excepti exports_1("applyTo", applyTo); function removeIndex(array, index) { if (!array) - throw new ArgumentNullException_1.default('array', CBN); - Integer_1.default.assert(index, 'index'); + throw new ArgumentNullException_1.ArgumentNullException('array', CBN); + Integer_1.Integer.assert(index, 'index'); if (index < 0) - throw new ArgumentOutOfRangeException_1.default('index', index, CBL0); + throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('index', index, CBL0); var exists = index < array.length; if (exists) array.splice(index, 1); @@ -181,7 +181,7 @@ System.register(["../../Types", "../../Integer", "../../Compare", "../../Excepti if (!array || !array.length || max === 0) return 0; if (max < 0) - throw new ArgumentOutOfRangeException_1.default('max', max, CBL0); + throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('max', max, CBL0); var count = 0; if (!max || !isFinite(max)) { for (var i = (array.length - 1); i >= 0; i--) { @@ -209,9 +209,9 @@ System.register(["../../Types", "../../Integer", "../../Compare", "../../Excepti } exports_1("remove", remove); function repeat(element, count) { - Integer_1.default.assert(count, 'count'); + Integer_1.Integer.assert(count, 'count'); if (count < 0) - throw new ArgumentOutOfRangeException_1.default('count', count, CBL0); + throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('count', count, CBL0); var result = initialize(count); for (var i = 0; i < count; i++) { result[i] = element; @@ -222,11 +222,11 @@ System.register(["../../Types", "../../Integer", "../../Compare", "../../Excepti function range(first, count, step) { if (step === void 0) { step = 1; } if (isNaN(first) || !isFinite(first)) - throw new ArgumentOutOfRangeException_1.default('first', first, VFN); + throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('first', first, VFN); if (isNaN(count) || !isFinite(count)) - throw new ArgumentOutOfRangeException_1.default('count', count, VFN); + throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('count', count, VFN); if (count < 0) - throw new ArgumentOutOfRangeException_1.default('count', count, CBL0); + throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('count', count, CBL0); var result = initialize(count); for (var i = 0; i < count; i++) { result[i] = first; @@ -238,7 +238,7 @@ System.register(["../../Types", "../../Integer", "../../Compare", "../../Excepti function rangeUntil(first, until, step) { if (step === void 0) { step = 1; } if (step == 0) - throw new ArgumentOutOfRangeException_1.default('step', step, CB0); + throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('step', step, CB0); return range(first, (until - first) / step, step); } exports_1("rangeUntil", rangeUntil); diff --git a/dist/system/System/Collections/Array/Utility.js.map b/dist/system/System/Collections/Array/Utility.js.map index 0c99b213..abd7cf00 100644 --- a/dist/system/System/Collections/Array/Utility.js.map +++ b/dist/system/System/Collections/Array/Utility.js.map @@ -1 +1 @@ -{"version":3,"file":"Utility.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Array/Utility.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Utility.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Array/Utility.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/system/System/Collections/CollectionBase.d.ts b/dist/system/System/Collections/CollectionBase.d.ts index d3ff773a..9508abd6 100644 --- a/dist/system/System/Collections/CollectionBase.d.ts +++ b/dist/system/System/Collections/CollectionBase.d.ts @@ -1,11 +1,15 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import DisposableBase from "../Disposable/DisposableBase"; -declare abstract class CollectionBase extends DisposableBase implements ICollection, IEnumerateEach { +import { DisposableBase } from "../Disposable/DisposableBase"; +import { ICollection } from "./ICollection"; +import { IEnumerator } from "./Enumeration/IEnumerator"; +import { IEnumerateEach } from "./Enumeration/IEnumerateEach"; +import { EqualityComparison, Predicate, Action } from "../FunctionTypes"; +import { IEnumerableOrArray } from "./IEnumerableOrArray"; +import { IArray } from "./Array/IArray"; +export declare abstract class CollectionBase extends DisposableBase implements ICollection, IEnumerateEach { protected _equalityComparer: EqualityComparison; constructor(source?: IEnumerableOrArray, _equalityComparer?: EqualityComparison); protected abstract getCount(): number; diff --git a/dist/system/System/Collections/CollectionBase.js b/dist/system/System/Collections/CollectionBase.js index 081a5244..3fd2716d 100644 --- a/dist/system/System/Collections/CollectionBase.js +++ b/dist/system/System/Collections/CollectionBase.js @@ -64,11 +64,11 @@ System.register(["./Enumeration/Enumerator", "../Compare", "../Exceptions/Argume CollectionBase.prototype.assertModifiable = function () { this.throwIfDisposed(CMDC); if (this.getIsReadOnly()) - throw new InvalidOperationException_1.default(CMRO); + throw new InvalidOperationException_1.InvalidOperationException(CMRO); }; CollectionBase.prototype.assertVersion = function (version) { if (version != this._version) - throw new InvalidOperationException_1.default("Collection was modified."); + throw new InvalidOperationException_1.InvalidOperationException("Collection was modified."); }; CollectionBase.prototype._onModified = function () { }; CollectionBase.prototype._signalModification = function (increment) { @@ -217,7 +217,7 @@ System.register(["./Enumeration/Enumerator", "../Compare", "../Exceptions/Argume CollectionBase.prototype.copyTo = function (target, index) { if (index === void 0) { index = 0; } if (!target) - throw new ArgumentNullException_1.default('target'); + throw new ArgumentNullException_1.ArgumentNullException('target'); var count = this.getCount(), newLength = count + index; if (target.length < newLength) target.length = newLength; @@ -232,7 +232,8 @@ System.register(["./Enumeration/Enumerator", "../Compare", "../Exceptions/Argume return this.copyTo(count > 65536 ? new Array(count) : []); }; return CollectionBase; - }(DisposableBase_1.default)); + }(DisposableBase_1.DisposableBase)); + exports_1("CollectionBase", CollectionBase); exports_1("default",CollectionBase); } } diff --git a/dist/system/System/Collections/CollectionBase.js.map b/dist/system/System/Collections/CollectionBase.js.map index 48fab318..67ee19e2 100644 --- a/dist/system/System/Collections/CollectionBase.js.map +++ b/dist/system/System/Collections/CollectionBase.js.map @@ -1 +1 @@ -{"version":3,"file":"CollectionBase.js","sourceRoot":"","sources":["../../../../source/System/Collections/CollectionBase.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"CollectionBase.js","sourceRoot":"","sources":["../../../../source/System/Collections/CollectionBase.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/system/System/Collections/Dictionaries/Dictionary.d.ts b/dist/system/System/Collections/Dictionaries/Dictionary.d.ts index 8ce9d526..990f04d1 100644 --- a/dist/system/System/Collections/Dictionaries/Dictionary.d.ts +++ b/dist/system/System/Collections/Dictionaries/Dictionary.d.ts @@ -1,14 +1,16 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Original: http://linqjs.codeplex.com/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { IKeyValuePair } from "../../KeyValuePair"; +import { IEnumerator } from "../Enumeration/IEnumerator"; +import { ILinkedNode } from "../ILinkedListNode"; +import { Selector } from "../../FunctionTypes"; import DictionaryBase from "./DictionaryBase"; export interface IHashEntry extends ILinkedNode>, IKeyValuePair { } -export default class Dictionary extends DictionaryBase { +export declare class Dictionary extends DictionaryBase { private _keyComparer; private _entries; private _buckets; @@ -24,3 +26,4 @@ export default class Dictionary extends DictionaryBase /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import CollectionBase from "../CollectionBase"; -declare abstract class DictionaryBase extends CollectionBase> implements IDictionary { +import { CollectionBase } from "../CollectionBase"; +import { IKeyValuePair, KeyValuePair } from "../../KeyValuePair"; +import { IDictionary } from "./IDictionary"; +import { IEnumerator } from "../Enumeration/IEnumerator"; +import { IEnumerableOrArray } from "../IEnumerableOrArray"; +export declare abstract class DictionaryBase extends CollectionBase> implements IDictionary { constructor(source?: IEnumerableOrArray>); protected _onValueModified(key: TKey, value: TValue, old: TValue): void; protected _addInternal(item: KeyValuePair): boolean; diff --git a/dist/system/System/Collections/Dictionaries/DictionaryBase.js b/dist/system/System/Collections/Dictionaries/DictionaryBase.js index c5decd80..1f5bc0dc 100644 --- a/dist/system/System/Collections/Dictionaries/DictionaryBase.js +++ b/dist/system/System/Collections/Dictionaries/DictionaryBase.js @@ -3,7 +3,7 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ System.register(["../../Compare", "../Enumeration/Enumerator", "../CollectionBase", "../Enumeration/EnumeratorBase", "../../Exceptions/ArgumentNullException", "../../Exceptions/InvalidOperationException", "../../KeyValueExtract"], function(exports_1, context_1) { - 'use strict'; + "use strict"; var __moduleName = context_1 && context_1.id; var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; @@ -47,8 +47,8 @@ System.register(["../../Compare", "../Enumeration/Enumerator", "../CollectionBas DictionaryBase.prototype._addInternal = function (item) { var _this = this; if (!item) - throw new ArgumentNullException_1.default('item', 'Dictionaries must use a valid key/value pair. \'' + item + '\' is not allowed.'); - return KeyValueExtract_1.default(item, function (key, value) { return _this.addByKeyValue(key, value); }); + throw new ArgumentNullException_1.ArgumentNullException('item', 'Dictionaries must use a valid key/value pair. \'' + item + '\' is not allowed.'); + return KeyValueExtract_1.extractKeyValue(item, function (key, value) { return _this.addByKeyValue(key, value); }); }; DictionaryBase.prototype._clearInternal = function () { var _ = this, count = 0; @@ -63,7 +63,7 @@ System.register(["../../Compare", "../Enumeration/Enumerator", "../CollectionBas var _this = this; if (!item || !this.getCount()) return false; - return KeyValueExtract_1.default(item, function (key, value) { + return KeyValueExtract_1.extractKeyValue(item, function (key, value) { var v = _this.getValue(key); return Compare_1.areEqual(value, v); }); @@ -72,7 +72,7 @@ System.register(["../../Compare", "../Enumeration/Enumerator", "../CollectionBas var _this = this; if (!item) return 0; - return KeyValueExtract_1.default(item, function (key, value) { + return KeyValueExtract_1.extractKeyValue(item, function (key, value) { var v = _this.getValue(key); return (Compare_1.areEqual(value, v) && _this.removeByKey(key)) ? 1 : 0; @@ -90,10 +90,10 @@ System.register(["../../Compare", "../Enumeration/Enumerator", "../CollectionBas }); DictionaryBase.prototype.addByKeyValue = function (key, value) { if (value === VOID0) - throw new InvalidOperationException_1.default("Cannot add 'undefined' as a value."); + throw new InvalidOperationException_1.InvalidOperationException("Cannot add 'undefined' as a value."); var _ = this; if (_.containsKey(key)) { - var ex = new InvalidOperationException_1.default("Adding a key/value when the key already exists."); + var ex = new InvalidOperationException_1.InvalidOperationException("Adding a key/value when the key already exists."); ex.data['key'] = key; ex.data['value'] = value; throw ex; @@ -146,7 +146,7 @@ System.register(["../../Compare", "../Enumeration/Enumerator", "../CollectionBas if (!pairs) return 0; var changed = 0; - Enumerator_1.forEach(pairs, function (pair) { return KeyValueExtract_1.default(pair, function (key, value) { + Enumerator_1.forEach(pairs, function (pair) { return KeyValueExtract_1.extractKeyValue(pair, function (key, value) { if (_._setValueInternal(key, value)) changed++; }); }); @@ -155,7 +155,7 @@ System.register(["../../Compare", "../Enumeration/Enumerator", "../CollectionBas DictionaryBase.prototype.getEnumerator = function () { var _ = this; var ver, keys, len, i = 0; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { ver = _._version; keys = _.getKeys(); len = keys.length; @@ -170,7 +170,8 @@ System.register(["../../Compare", "../Enumeration/Enumerator", "../CollectionBas }); }; return DictionaryBase; - }(CollectionBase_1.default)); + }(CollectionBase_1.CollectionBase)); + exports_1("DictionaryBase", DictionaryBase); exports_1("default",DictionaryBase); } } diff --git a/dist/system/System/Collections/Dictionaries/DictionaryBase.js.map b/dist/system/System/Collections/Dictionaries/DictionaryBase.js.map index f847c368..c525d82f 100644 --- a/dist/system/System/Collections/Dictionaries/DictionaryBase.js.map +++ b/dist/system/System/Collections/Dictionaries/DictionaryBase.js.map @@ -1 +1 @@ -{"version":3,"file":"DictionaryBase.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Dictionaries/DictionaryBase.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"DictionaryBase.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Dictionaries/DictionaryBase.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/system/System/Collections/Dictionaries/OrderedStringKeyDictionary.d.ts b/dist/system/System/Collections/Dictionaries/OrderedStringKeyDictionary.d.ts index 159e833b..ffe4df7a 100644 --- a/dist/system/System/Collections/Dictionaries/OrderedStringKeyDictionary.d.ts +++ b/dist/system/System/Collections/Dictionaries/OrderedStringKeyDictionary.d.ts @@ -2,8 +2,9 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import StringKeyDictionary from "./StringKeyDictionary"; -export default class OrderedStringKeyDictionary extends StringKeyDictionary implements IOrderedDictionary { +import { StringKeyDictionary } from "./StringKeyDictionary"; +import { IOrderedDictionary } from "./IDictionary"; +export declare class OrderedStringKeyDictionary extends StringKeyDictionary implements IOrderedDictionary { private _order; constructor(); indexOfKey(key: string): number; @@ -15,3 +16,4 @@ export default class OrderedStringKeyDictionary extends StringKeyDiction removeByIndex(index: number): boolean; protected getKeys(): string[]; } +export default OrderedStringKeyDictionary; diff --git a/dist/system/System/Collections/Dictionaries/OrderedStringKeyDictionary.js b/dist/system/System/Collections/Dictionaries/OrderedStringKeyDictionary.js index aa23d99d..f607b47f 100644 --- a/dist/system/System/Collections/Dictionaries/OrderedStringKeyDictionary.js +++ b/dist/system/System/Collections/Dictionaries/OrderedStringKeyDictionary.js @@ -3,7 +3,7 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ System.register(["../Array/Utility", "./StringKeyDictionary", "../../Exceptions/ArgumentOutOfRangeException"], function(exports_1, context_1) { - 'use strict'; + "use strict"; var __moduleName = context_1 && context_1.id; var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; @@ -50,9 +50,9 @@ System.register(["../Array/Utility", "./StringKeyDictionary", "../../Exceptions/ OrderedStringKeyDictionary.prototype.setByIndex = function (index, value) { var _ = this, order = _._order; if (index < 0) - throw new ArgumentOutOfRangeException_1.default('index', index, 'Is less than zero.'); + throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('index', index, 'Is less than zero.'); if (index >= order.length) - throw new ArgumentOutOfRangeException_1.default('index', index, 'Is greater than the count.'); + throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('index', index, 'Is greater than the count.'); return _.setValue(order[index], value); }; OrderedStringKeyDictionary.prototype.importValues = function (values) { @@ -81,8 +81,9 @@ System.register(["../Array/Utility", "./StringKeyDictionary", "../../Exceptions/ return o.length && o.filter(function (key) { return _.containsKey(key); }) || []; }; return OrderedStringKeyDictionary; - }(StringKeyDictionary_1.default)); - exports_1("default", OrderedStringKeyDictionary); + }(StringKeyDictionary_1.StringKeyDictionary)); + exports_1("OrderedStringKeyDictionary", OrderedStringKeyDictionary); + exports_1("default",OrderedStringKeyDictionary); } } }); diff --git a/dist/system/System/Collections/Dictionaries/OrderedStringKeyDictionary.js.map b/dist/system/System/Collections/Dictionaries/OrderedStringKeyDictionary.js.map index 7e1b1c97..6b0b8760 100644 --- a/dist/system/System/Collections/Dictionaries/OrderedStringKeyDictionary.js.map +++ b/dist/system/System/Collections/Dictionaries/OrderedStringKeyDictionary.js.map @@ -1 +1 @@ -{"version":3,"file":"OrderedStringKeyDictionary.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Dictionaries/OrderedStringKeyDictionary.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"OrderedStringKeyDictionary.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Dictionaries/OrderedStringKeyDictionary.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/system/System/Collections/Dictionaries/StringKeyDictionary.d.ts b/dist/system/System/Collections/Dictionaries/StringKeyDictionary.d.ts index 15152615..2b7c006a 100644 --- a/dist/system/System/Collections/Dictionaries/StringKeyDictionary.d.ts +++ b/dist/system/System/Collections/Dictionaries/StringKeyDictionary.d.ts @@ -1,10 +1,11 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import DictionaryBase from "./DictionaryBase"; -export default class StringKeyDictionary extends DictionaryBase implements IStringKeyDictionary { +import { IStringKeyDictionary, IMap } from "./IDictionary"; +import { IKeyValuePair } from "../../KeyValuePair"; +import { DictionaryBase } from "./DictionaryBase"; +export declare class StringKeyDictionary extends DictionaryBase implements IStringKeyDictionary { private _count; private _map; protected _getEntry(key: string): IKeyValuePair; @@ -18,3 +19,4 @@ export default class StringKeyDictionary extends DictionaryBase /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import IndexEnumerator from "./IndexEnumerator"; -export default class ArrayEnumerator extends IndexEnumerator { +import { IndexEnumerator } from "./IndexEnumerator"; +import { IArray } from "../Array/IArray"; +export declare class ArrayEnumerator extends IndexEnumerator { constructor(arrayFactory: () => IArray, start?: number, step?: number); constructor(array: IArray, start?: number, step?: number); } +export default ArrayEnumerator; diff --git a/dist/system/System/Collections/Enumeration/ArrayEnumerator.js b/dist/system/System/Collections/Enumeration/ArrayEnumerator.js index abe01da3..bf8955b1 100644 --- a/dist/system/System/Collections/Enumeration/ArrayEnumerator.js +++ b/dist/system/System/Collections/Enumeration/ArrayEnumerator.js @@ -3,7 +3,7 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ System.register(["./IndexEnumerator", "../../Types"], function(exports_1, context_1) { - 'use strict'; + "use strict"; var __moduleName = context_1 && context_1.id; var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; @@ -27,13 +27,19 @@ System.register(["./IndexEnumerator", "../../Types"], function(exports_1, contex if (start === void 0) { start = 0; } if (step === void 0) { step = 1; } _super.call(this, function () { - var array = Types_1.default.isFunction(arrayOrFactory) ? arrayOrFactory() : arrayOrFactory; - return { source: array, pointer: start, length: array ? array.length : 0, step: step }; + var array = Types_1.Type.isFunction(arrayOrFactory) ? arrayOrFactory() : arrayOrFactory; + return { + source: array, + pointer: start, + length: array ? array.length : 0, + step: step + }; }); } return ArrayEnumerator; - }(IndexEnumerator_1.default)); - exports_1("default", ArrayEnumerator); + }(IndexEnumerator_1.IndexEnumerator)); + exports_1("ArrayEnumerator", ArrayEnumerator); + exports_1("default",ArrayEnumerator); } } }); diff --git a/dist/system/System/Collections/Enumeration/ArrayEnumerator.js.map b/dist/system/System/Collections/Enumeration/ArrayEnumerator.js.map index 23835ba3..9e115ed1 100644 --- a/dist/system/System/Collections/Enumeration/ArrayEnumerator.js.map +++ b/dist/system/System/Collections/Enumeration/ArrayEnumerator.js.map @@ -1 +1 @@ -{"version":3,"file":"ArrayEnumerator.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Enumeration/ArrayEnumerator.ts"],"names":[],"mappings":"AAAA;;;GAGG;;IAGH,YAAY,CAAC;;;;;;;;;;;;;;;;;;YAKb;gBACiC,mCAAkB;gBAIlD,yBAAY,cAAkB,EAAE,KAAgB,EAAE,IAAe;oBAAjC,qBAAgB,GAAhB,SAAgB;oBAAE,oBAAe,GAAf,QAAe;oBAEhE,kBACC;wBAEC,IAAI,KAAK,GAAG,eAAI,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,cAAc,EAAE,GAAG,cAAc,CAAC;wBAChF,MAAM,CAAC,EAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAC,CAAC;oBACtF,CAAC,CACD,CAAC;gBACH,CAAC;gBACF,sBAAC;YAAD,CAAC,AAfD,CACiC,yBAAe,GAc/C;YAfD,qCAeC,CAAA"} \ No newline at end of file +{"version":3,"file":"ArrayEnumerator.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Enumeration/ArrayEnumerator.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;YAOH;gBAAwC,mCAAkB;gBAIzD,yBAAY,cAAkB,EAAE,KAAgB,EAAE,IAAe;oBAAjC,qBAAgB,GAAhB,SAAgB;oBAAE,oBAAe,GAAf,QAAe;oBAEhE,kBACC;wBAEC,IAAI,KAAK,GAAG,YAAI,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,cAAc,EAAE,GAAG,cAAc,CAAC;wBAChF,MAAM,CAAC;4BACN,MAAM,EAAE,KAAK;4BACb,OAAO,EAAE,KAAK;4BACd,MAAM,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC;4BAChC,IAAI,EAAE,IAAI;yBACV,CAAC;oBACH,CAAC,CACD,CAAC;gBACH,CAAC;gBACF,sBAAC;YAAD,CAAC,AAnBD,CAAwC,iCAAe,GAmBtD;YAnBD,6CAmBC,CAAA;YAED,oBAAe,eAAe,EAAC"} \ No newline at end of file diff --git a/dist/system/System/Collections/Enumeration/Enumerator.d.ts b/dist/system/System/Collections/Enumeration/Enumerator.d.ts index 4001711b..b0c4a155 100644 --- a/dist/system/System/Collections/Enumeration/Enumerator.d.ts +++ b/dist/system/System/Collections/Enumeration/Enumerator.d.ts @@ -1,13 +1,11 @@ -/// -/// -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { Selector } from "../../FunctionTypes"; +import { IEnumerator } from "./IEnumerator"; +import { IEnumerable } from "./IEnumerable"; +import { IEnumerableOrArray } from "../IEnumerableOrArray"; export declare function throwIfEndless(isEndless: boolean): void; export declare const empty: IEnumerator; export declare function from(source: IEnumerableOrArray): IEnumerator; diff --git a/dist/system/System/Collections/Enumeration/Enumerator.js b/dist/system/System/Collections/Enumeration/Enumerator.js index ec150bc1..5c28683c 100644 --- a/dist/system/System/Collections/Enumeration/Enumerator.js +++ b/dist/system/System/Collections/Enumeration/Enumerator.js @@ -3,17 +3,17 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ System.register(["../../Disposable/dispose", "../../Types", "./ArrayEnumerator", "./IndexEnumerator", "./UnsupportedEnumerableException"], function(exports_1, context_1) { - 'use strict'; + "use strict"; var __moduleName = context_1 && context_1.id; var dispose_1, Types_1, ArrayEnumerator_1, IndexEnumerator_1, UnsupportedEnumerableException_1; var VOID0, STRING_EMPTY, ENDLESS_EXCEPTION_MESSAGE, EmptyEnumerator, Empty, empty; function throwIfEndless(isEndless) { if (isEndless) - throw new UnsupportedEnumerableException_1.default(ENDLESS_EXCEPTION_MESSAGE); + throw new UnsupportedEnumerableException_1.UnsupportedEnumerableException(ENDLESS_EXCEPTION_MESSAGE); } exports_1("throwIfEndless", throwIfEndless); function initArrayFrom(source) { - if (Array.isArray(source) || Types_1.default.isString(source)) { + if (Array.isArray(source) || Types_1.Type.isString(source)) { var len = source.length; if (isFinite(len)) { if (len > 65535) @@ -29,9 +29,9 @@ System.register(["../../Disposable/dispose", "../../Types", "./ArrayEnumerator", if (!source) return Empty; if (Array.isArray(source)) - return new ArrayEnumerator_1.default(source); - if (Types_1.default.isArrayLike(source)) { - return new IndexEnumerator_1.default(function () { + return new ArrayEnumerator_1.ArrayEnumerator(source); + if (Types_1.Type.isArrayLike(source)) { + return new IndexEnumerator_1.IndexEnumerator(function () { return { source: source, length: source.length, @@ -40,7 +40,7 @@ System.register(["../../Disposable/dispose", "../../Types", "./ArrayEnumerator", }; }); } - if (!Types_1.default.isPrimitive(source)) { + if (!Types_1.Type.isPrimitive(source)) { if (isEnumerable(source)) return source.getEnumerator(); } @@ -48,20 +48,20 @@ System.register(["../../Disposable/dispose", "../../Types", "./ArrayEnumerator", } exports_1("from", from); function isEnumerable(instance) { - return Types_1.default.hasMemberOfType(instance, "getEnumerator", Types_1.default.FUNCTION); + return Types_1.Type.hasMemberOfType(instance, "getEnumerator", Types_1.Type.FUNCTION); } exports_1("isEnumerable", isEnumerable); function isEnumerableOrArrayLike(instance) { - return Types_1.default.isArrayLike(instance) || isEnumerable(instance); + return Types_1.Type.isArrayLike(instance) || isEnumerable(instance); } exports_1("isEnumerableOrArrayLike", isEnumerableOrArrayLike); function isEnumerator(instance) { - return Types_1.default.hasMemberOfType(instance, "moveNext", Types_1.default.FUNCTION); + return Types_1.Type.hasMemberOfType(instance, "moveNext", Types_1.Type.FUNCTION); } exports_1("isEnumerator", isEnumerator); function forEach(e, action) { if (e !== VOID0 && e !== null) { - if (Types_1.default.isArrayLike(e)) { + if (Types_1.Type.isArrayLike(e)) { throwIfEndless(!isFinite(e.length)); for (var i = 0; i < e.length; i++) { if (action(e[i], i) === false) @@ -94,14 +94,14 @@ System.register(["../../Disposable/dispose", "../../Types", "./ArrayEnumerator", return source.slice(); var result = initArrayFrom(source); if (!forEach(source, function (e, i) { result[i] = e; })) - throw new UnsupportedEnumerableException_1.default(); + throw new UnsupportedEnumerableException_1.UnsupportedEnumerableException(); return result; } exports_1("toArray", toArray); function map(source, selector) { var result = initArrayFrom(source); if (!forEach(source, function (e, i) { result[i] = selector(e); })) - throw new UnsupportedEnumerableException_1.default(); + throw new UnsupportedEnumerableException_1.UnsupportedEnumerableException(); return result; } exports_1("map", map); diff --git a/dist/system/System/Collections/Enumeration/Enumerator.js.map b/dist/system/System/Collections/Enumeration/Enumerator.js.map index 904186cb..b91b149a 100644 --- a/dist/system/System/Collections/Enumeration/Enumerator.js.map +++ b/dist/system/System/Collections/Enumeration/Enumerator.js.map @@ -1 +1 @@ -{"version":3,"file":"Enumerator.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Enumeration/Enumerator.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Enumerator.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Enumeration/Enumerator.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/system/System/Collections/Enumeration/EnumeratorBase.d.ts b/dist/system/System/Collections/Enumeration/EnumeratorBase.d.ts index 8ed548b8..e86eaee3 100644 --- a/dist/system/System/Collections/Enumeration/EnumeratorBase.d.ts +++ b/dist/system/System/Collections/Enumeration/EnumeratorBase.d.ts @@ -1,13 +1,12 @@ -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import DisposableBase from "../../Disposable/DisposableBase"; -export default class EnumeratorBase extends DisposableBase implements IEnumerator { +import { DisposableBase } from "../../Disposable/DisposableBase"; +import { IEnumerator } from "./IEnumerator"; +import { IIteratorResult } from "./IIterator"; +import { IYield } from "./IYield"; +export declare class EnumeratorBase extends DisposableBase implements IEnumerator { private _initializer; private _tryGetNext; private _yielder; @@ -24,3 +23,4 @@ export default class EnumeratorBase extends DisposableBase implements IEnumer next(): IIteratorResult; protected _onDispose(): void; } +export default EnumeratorBase; diff --git a/dist/system/System/Collections/Enumeration/EnumeratorBase.js b/dist/system/System/Collections/Enumeration/EnumeratorBase.js index 348d42cc..fd689ead 100644 --- a/dist/system/System/Collections/Enumeration/EnumeratorBase.js +++ b/dist/system/System/Collections/Enumeration/EnumeratorBase.js @@ -3,7 +3,7 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ System.register(["../../Types", "../../Disposable/DisposableBase", "../../Disposable/ObjectPool"], function(exports_1, context_1) { - 'use strict'; + "use strict"; var __moduleName = context_1 && context_1.id; var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; @@ -15,7 +15,7 @@ System.register(["../../Types", "../../Disposable/DisposableBase", "../../Dispos function yielder(recycle) { if (!yielderPool) yielderPool - = new ObjectPool_1.default(40, function () { return new Yielder(); }); + = new ObjectPool_1.ObjectPool(40, function () { return new Yielder(); }); if (!recycle) return yielderPool.take(); recycle.yieldBreak(); @@ -68,11 +68,11 @@ System.register(["../../Types", "../../Disposable/DisposableBase", "../../Dispos this._initializer = _initializer; this._tryGetNext = _tryGetNext; this.reset(); - if (Types_1.default.isBoolean(isEndless)) + if (Types_1.Type.isBoolean(isEndless)) this._isEndless = isEndless; - else if (Types_1.default.isBoolean(disposer)) + else if (Types_1.Type.isBoolean(disposer)) this._isEndless = disposer; - if (Types_1.default.isFunction(disposer)) + if (Types_1.Type.isFunction(disposer)) this._disposer = disposer; } Object.defineProperty(EnumeratorBase.prototype, "current", { @@ -156,8 +156,9 @@ System.register(["../../Types", "../../Disposable/DisposableBase", "../../Dispos } }; return EnumeratorBase; - }(DisposableBase_1.default)); - exports_1("default", EnumeratorBase); + }(DisposableBase_1.DisposableBase)); + exports_1("EnumeratorBase", EnumeratorBase); + exports_1("default",EnumeratorBase); } } }); diff --git a/dist/system/System/Collections/Enumeration/EnumeratorBase.js.map b/dist/system/System/Collections/Enumeration/EnumeratorBase.js.map index 64f086db..5bc54f4c 100644 --- a/dist/system/System/Collections/Enumeration/EnumeratorBase.js.map +++ b/dist/system/System/Collections/Enumeration/EnumeratorBase.js.map @@ -1 +1 @@ -{"version":3,"file":"EnumeratorBase.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Enumeration/EnumeratorBase.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"EnumeratorBase.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Enumeration/EnumeratorBase.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/system/System/Collections/Enumeration/IndexEnumerator.d.ts b/dist/system/System/Collections/Enumeration/IndexEnumerator.d.ts index e85a88be..d5df161c 100644 --- a/dist/system/System/Collections/Enumeration/IndexEnumerator.d.ts +++ b/dist/system/System/Collections/Enumeration/IndexEnumerator.d.ts @@ -2,8 +2,8 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import EnumeratorBase from "./EnumeratorBase"; -export default class IndexEnumerator extends EnumeratorBase { +import { EnumeratorBase } from "./EnumeratorBase"; +export declare class IndexEnumerator extends EnumeratorBase { constructor(sourceFactory: () => { source: { [index: number]: T; @@ -13,3 +13,4 @@ export default class IndexEnumerator extends EnumeratorBase { step?: number; }); } +export default IndexEnumerator; diff --git a/dist/system/System/Collections/Enumeration/IndexEnumerator.js b/dist/system/System/Collections/Enumeration/IndexEnumerator.js index 5473df22..bb76d03e 100644 --- a/dist/system/System/Collections/Enumeration/IndexEnumerator.js +++ b/dist/system/System/Collections/Enumeration/IndexEnumerator.js @@ -3,7 +3,7 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ System.register(["./EnumeratorBase"], function(exports_1, context_1) { - 'use strict'; + "use strict"; var __moduleName = context_1 && context_1.id; var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; @@ -62,8 +62,9 @@ System.register(["./EnumeratorBase"], function(exports_1, context_1) { this._isEndless = false; } return IndexEnumerator; - }(EnumeratorBase_1.default)); - exports_1("default", IndexEnumerator); + }(EnumeratorBase_1.EnumeratorBase)); + exports_1("IndexEnumerator", IndexEnumerator); + exports_1("default",IndexEnumerator); } } }); diff --git a/dist/system/System/Collections/Enumeration/IndexEnumerator.js.map b/dist/system/System/Collections/Enumeration/IndexEnumerator.js.map index f98a5594..5be1790f 100644 --- a/dist/system/System/Collections/Enumeration/IndexEnumerator.js.map +++ b/dist/system/System/Collections/Enumeration/IndexEnumerator.js.map @@ -1 +1 @@ -{"version":3,"file":"IndexEnumerator.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Enumeration/IndexEnumerator.ts"],"names":[],"mappings":"AAAA;;;GAGG;;IAEH,YAAY,CAAC;;;;;;;;;;;;;;;YAIb;gBACiC,mCAAiB;gBAGjD,yBACC,aAAuG;oBAGvG,IAAI,MAA0F,CAAC;oBAC/F,kBACC;wBAEC,MAAM,GAAG,aAAa,EAAE,CAAC;wBACzB,EAAE,CAAA,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,CAC3B,CAAC;4BACA,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;4BACxB,EAAE,CAAA,CAAC,GAAG,GAAC,CAAC,CAAC;gCACR,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;4BAEnD,EAAE,CAAA,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gCACjB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;4BAE9C,EAAE,CAAA,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,KAAG,CAAC,CAAC;gCACzB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;4BAC5D,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;4BAC7B,EAAE,CAAA,CAAC,CAAC,OAAO,CAAC;gCACX,OAAO,GAAG,CAAC,CAAC;4BACb,IAAI,CAAC,EAAE,CAAA,CAAC,OAAO,IAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gCACpC,MAAM,IAAI,KAAK,CAAC,yCAAyC,GAAG,OAAO,GAAG,gBAAgB,CAAC,CAAC;4BACzF,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;4BAEzB,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;4BACvB,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC;gCACR,IAAI,GAAG,CAAC,CAAC;4BACV,IAAI,CAAC,EAAE,CAAA,CAAC,IAAI,IAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gCAC9B,MAAM,IAAI,KAAK,CAAC,sCAAsC,GAAG,IAAI,GAAG,gBAAgB,CAAC,CAAC;4BACnF,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;wBACpB,CAAC;oBACF,CAAC,EAED,UAAC,OAAO;wBAEP,IAAI,GAAG,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;wBACxD,EAAE,CAAA,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;4BACrB,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;wBAC7B,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;wBAC7B,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC;wBAC9B,MAAM,CAAC,CAAC,OAAO,GAAC,GAAG,IAAI,OAAO,IAAE,CAAC,CAAC;8BAC/B,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;8BAC3C,OAAO,CAAC,UAAU,EAAE,CAAC;oBACzB,CAAC,EAED;wBAEC,EAAE,CAAA,CAAC,MAAM,CAAC,CACV,CAAC;4BACA,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;wBACtB,CAAC;oBACF,CAAC,CACD,CAAC;oBACF,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACzB,CAAC;gBACF,sBAAC;YAAD,CAAC,AA9DD,CACiC,wBAAc,GA6D9C;YA9DD,qCA8DC,CAAA"} \ No newline at end of file +{"version":3,"file":"IndexEnumerator.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Enumeration/IndexEnumerator.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;;;;;;YAIH;gBAAwC,mCAAiB;gBAGxD,yBACC,aAAuG;oBAGvG,IAAI,MAA0F,CAAC;oBAC/F,kBACC;wBAEC,MAAM,GAAG,aAAa,EAAE,CAAC;wBACzB,EAAE,CAAA,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,CAC3B,CAAC;4BACA,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;4BACxB,EAAE,CAAA,CAAC,GAAG,GAAC,CAAC,CAAC;gCACR,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;4BAEnD,EAAE,CAAA,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gCACjB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;4BAE9C,EAAE,CAAA,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,KAAG,CAAC,CAAC;gCACzB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;4BAC5D,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;4BAC7B,EAAE,CAAA,CAAC,CAAC,OAAO,CAAC;gCACX,OAAO,GAAG,CAAC,CAAC;4BACb,IAAI,CAAC,EAAE,CAAA,CAAC,OAAO,IAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gCACpC,MAAM,IAAI,KAAK,CAAC,yCAAyC,GAAG,OAAO,GAAG,gBAAgB,CAAC,CAAC;4BACzF,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;4BAEzB,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;4BACvB,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC;gCACR,IAAI,GAAG,CAAC,CAAC;4BACV,IAAI,CAAC,EAAE,CAAA,CAAC,IAAI,IAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gCAC9B,MAAM,IAAI,KAAK,CAAC,sCAAsC,GAAG,IAAI,GAAG,gBAAgB,CAAC,CAAC;4BACnF,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;wBACpB,CAAC;oBACF,CAAC,EAED,UAAC,OAAO;wBAEP,IAAI,GAAG,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;wBACxD,EAAE,CAAA,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;4BACrB,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;wBAC7B,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;wBAC7B,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC;wBAC9B,MAAM,CAAC,CAAC,OAAO,GAAC,GAAG,IAAI,OAAO,IAAE,CAAC,CAAC;8BAC/B,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;8BAC3C,OAAO,CAAC,UAAU,EAAE,CAAC;oBACzB,CAAC,EAED;wBAEC,EAAE,CAAA,CAAC,MAAM,CAAC,CACV,CAAC;4BACA,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;wBACtB,CAAC;oBACF,CAAC,CACD,CAAC;oBACF,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACzB,CAAC;gBACF,sBAAC;YAAD,CAAC,AA7DD,CAAwC,+BAAc,GA6DrD;YA7DD,6CA6DC,CAAA;YAED,oBAAe,eAAe,EAAC"} \ No newline at end of file diff --git a/dist/system/System/Collections/Enumeration/UnsupportedEnumerableException.d.ts b/dist/system/System/Collections/Enumeration/UnsupportedEnumerableException.d.ts index b966255b..fc268ec1 100644 --- a/dist/system/System/Collections/Enumeration/UnsupportedEnumerableException.d.ts +++ b/dist/system/System/Collections/Enumeration/UnsupportedEnumerableException.d.ts @@ -3,8 +3,9 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -import SystemException from "../../Exceptions/SystemException"; -export default class UnsupportedEnumerableException extends SystemException { +import { SystemException } from "../../Exceptions/SystemException"; +export declare class UnsupportedEnumerableException extends SystemException { constructor(message?: string); protected getName(): string; } +export default UnsupportedEnumerableException; diff --git a/dist/system/System/Collections/Enumeration/UnsupportedEnumerableException.js b/dist/system/System/Collections/Enumeration/UnsupportedEnumerableException.js index dbe536be..9fba2f80 100644 --- a/dist/system/System/Collections/Enumeration/UnsupportedEnumerableException.js +++ b/dist/system/System/Collections/Enumeration/UnsupportedEnumerableException.js @@ -4,7 +4,7 @@ * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ System.register(["../../Exceptions/SystemException"], function(exports_1, context_1) { - 'use strict'; + "use strict"; var __moduleName = context_1 && context_1.id; var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; @@ -29,8 +29,9 @@ System.register(["../../Exceptions/SystemException"], function(exports_1, contex return NAME; }; return UnsupportedEnumerableException; - }(SystemException_1.default)); - exports_1("default", UnsupportedEnumerableException); + }(SystemException_1.SystemException)); + exports_1("UnsupportedEnumerableException", UnsupportedEnumerableException); + exports_1("default",UnsupportedEnumerableException); } } }); diff --git a/dist/system/System/Collections/Enumeration/UnsupportedEnumerableException.js.map b/dist/system/System/Collections/Enumeration/UnsupportedEnumerableException.js.map index eed744b6..13a61c30 100644 --- a/dist/system/System/Collections/Enumeration/UnsupportedEnumerableException.js.map +++ b/dist/system/System/Collections/Enumeration/UnsupportedEnumerableException.js.map @@ -1 +1 @@ -{"version":3,"file":"UnsupportedEnumerableException.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Enumeration/UnsupportedEnumerableException.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;IAEH,YAAY,CAAC;;;;;;;;QAIP,IAAI;;;;;;;YAAJ,IAAI,GAAU,gCAAgC,CAAC;YAErD;gBAC6C,kDAAe;gBAE3D,wCAAY,OAAe;oBAC1B,kBAAM,OAAO,IAAI,yBAAyB,CAAC,CAAC;gBAC7C,CAAC;gBAES,gDAAO,GAAjB;oBAEC,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBACF,qCAAC;YAAD,CAAC,AAXD,CAC6C,yBAAe,GAU3D;YAXD,oDAWC,CAAA"} \ No newline at end of file +{"version":3,"file":"UnsupportedEnumerableException.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Enumeration/UnsupportedEnumerableException.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;;;;;;;;QAIG,IAAI;;;;;;;YAAJ,IAAI,GAAU,gCAAgC,CAAC;YAErD;gBAAoD,kDAAe;gBAGlE,wCAAY,OAAe;oBAE1B,kBAAM,OAAO,IAAI,yBAAyB,CAAC,CAAC;gBAC7C,CAAC;gBAES,gDAAO,GAAjB;oBAEC,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBACF,qCAAC;YAAD,CAAC,AAZD,CAAoD,iCAAe,GAYlE;YAZD,2EAYC,CAAA;YAED,oBAAe,8BAA8B,EAAC"} \ No newline at end of file diff --git a/dist/system/System/Collections/LinkedList.d.ts b/dist/system/System/Collections/LinkedList.d.ts index 6de7a80e..b3fef8d7 100644 --- a/dist/system/System/Collections/LinkedList.d.ts +++ b/dist/system/System/Collections/LinkedList.d.ts @@ -1,12 +1,14 @@ -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Based Upon: http://msdn.microsoft.com/en-us/library/he2s3bh7%28v=vs.110%29.aspx * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import CollectionBase from "./CollectionBase"; +import { CollectionBase } from "./CollectionBase"; +import { ILinkedListNode } from "./ILinkedListNode"; +import { IEnumerator } from "./Enumeration/IEnumerator"; +import { Predicate, Action, EqualityComparison } from "../FunctionTypes"; +import { ILinkedList } from "./ILinkedList"; +import { IEnumerableOrArray } from "./IEnumerableOrArray"; export default class LinkedList extends CollectionBase implements ILinkedList { private _listInternal; constructor(source?: IEnumerableOrArray, equalityComparer?: EqualityComparison); diff --git a/dist/system/System/Collections/LinkedList.js b/dist/system/System/Collections/LinkedList.js index 73083380..224ef14b 100644 --- a/dist/system/System/Collections/LinkedList.js +++ b/dist/system/System/Collections/LinkedList.js @@ -4,7 +4,7 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ System.register(["../Compare", "./LinkedNodeList", "../Exceptions/InvalidOperationException", "../Exceptions/ArgumentNullException", "./CollectionBase"], function(exports_1, context_1) { - 'use strict'; + "use strict"; var __moduleName = context_1 && context_1.id; var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; @@ -17,7 +17,7 @@ System.register(["../Compare", "./LinkedNodeList", "../Exceptions/InvalidOperati if (!node) return null; if (!list) - throw new ArgumentNullException_1.default("list"); + throw new ArgumentNullException_1.ArgumentNullException("list"); var external = node.external; if (!external) node.external = external = new LinkedListNode(list, node); @@ -25,14 +25,14 @@ System.register(["../Compare", "./LinkedNodeList", "../Exceptions/InvalidOperati } function getInternal(node, list) { if (!node) - throw new ArgumentNullException_1.default("node"); + throw new ArgumentNullException_1.ArgumentNullException("node"); if (!list) - throw new ArgumentNullException_1.default("list"); + throw new ArgumentNullException_1.ArgumentNullException("list"); if (node.list != list) - throw new InvalidOperationException_1.default("Provided node does not belong to this list."); + throw new InvalidOperationException_1.InvalidOperationException("Provided node does not belong to this list."); var n = node._nodeInternal; if (!n) - throw new InvalidOperationException_1.default("Provided node is not valid."); + throw new InvalidOperationException_1.InvalidOperationException("Provided node is not valid."); return n; } return { @@ -61,7 +61,7 @@ System.register(["../Compare", "./LinkedNodeList", "../Exceptions/InvalidOperati } InternalNode.prototype.assertDetached = function () { if (this.next || this.previous) - throw new InvalidOperationException_1.default("Adding a node that is already placed."); + throw new InvalidOperationException_1.InvalidOperationException("Adding a node that is already placed."); }; return InternalNode; }()); @@ -71,7 +71,7 @@ System.register(["../Compare", "./LinkedNodeList", "../Exceptions/InvalidOperati if (equalityComparer === void 0) { equalityComparer = Compare_1.areEqual; } _super.call(this, null, equalityComparer); var _ = this; - _._listInternal = new LinkedNodeList_1.default(); + _._listInternal = new LinkedNodeList_1.LinkedNodeList(); _._importEntries(source); } LinkedList.prototype.getCount = function () { @@ -102,7 +102,7 @@ System.register(["../Compare", "./LinkedNodeList", "../Exceptions/InvalidOperati this._listInternal.forEach(function (node, i) { return action(node.value, i); }); }; LinkedList.prototype.getEnumerator = function () { - return LinkedNodeList_1.default.valueEnumeratorFrom(this._listInternal); + return LinkedNodeList_1.LinkedNodeList.valueEnumeratorFrom(this._listInternal); }; LinkedList.prototype._findFirst = function (entry) { var _ = this, equals = _._equalityComparer, next = _._listInternal.first; @@ -199,7 +199,7 @@ System.register(["../Compare", "./LinkedNodeList", "../Exceptions/InvalidOperati _._signalModification(true); }; return LinkedList; - }(CollectionBase_1.default)); + }(CollectionBase_1.CollectionBase)); exports_1("default", LinkedList); LinkedListNode = (function () { function LinkedListNode(_list, _nodeInternal) { diff --git a/dist/system/System/Collections/LinkedList.js.map b/dist/system/System/Collections/LinkedList.js.map index a8f785b6..57a0a74a 100644 --- a/dist/system/System/Collections/LinkedList.js.map +++ b/dist/system/System/Collections/LinkedList.js.map @@ -1 +1 @@ -{"version":3,"file":"LinkedList.js","sourceRoot":"","sources":["../../../../source/System/Collections/LinkedList.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"LinkedList.js","sourceRoot":"","sources":["../../../../source/System/Collections/LinkedList.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;;;;;;;;;IA+CH,wBAA2B,IAAoB,EAAE,IAAkB;QAElE,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC;YACR,MAAM,CAAC,IAAI,CAAC;QACb,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC;YACR,MAAM,IAAI,6CAAqB,CAAC,MAAM,CAAC,CAAC;QAEzC,IAAI,QAAQ,GAAsB,IAAI,CAAC,QAAQ,CAAC;QAChD,EAAE,CAAA,CAAC,CAAC,QAAQ,CAAC;YACZ,IAAI,CAAC,QAAQ,GAAG,QAAQ,GAAG,IAAI,cAAc,CAAI,IAAI,EAAE,IAAI,CAAC,CAAC;QAE9D,MAAM,CAAC,QAAQ,CAAC;IACjB,CAAC;IAED,qBAAwB,IAAuB,EAAE,IAAkB;QAElE,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC;YACR,MAAM,IAAI,6CAAqB,CAAC,MAAM,CAAC,CAAC;QACzC,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC;YACR,MAAM,IAAI,6CAAqB,CAAC,MAAM,CAAC,CAAC;QAEzC,EAAE,CAAA,CAAC,IAAI,CAAC,IAAI,IAAE,IAAI,CAAC;YAClB,MAAM,IAAI,qDAAyB,CAClC,6CAA6C,CAAC,CAAC;QAEjD,IAAI,CAAC,GAAyB,IAAK,CAAC,aAAa,CAAC;QAClD,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC;YACL,MAAM,IAAI,qDAAyB,CAClC,6BAA6B,CAAC,CAAC;QAEjC,MAAM,CAAC,CAAC,CAAC;IACV,CAAC;;;;;;;;;;;;;;;;;;;YApDD;gBAGC,sBACQ,KAAQ,EACR,QAAyB,EACzB,IAAqB;oBAFrB,UAAK,GAAL,KAAK,CAAG;oBACR,aAAQ,GAAR,QAAQ,CAAiB;oBACzB,SAAI,GAAJ,IAAI,CAAiB;gBAE7B,CAAC;gBAID,qCAAc,GAAd;oBAEC,EAAE,CAAA,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC;wBAC7B,MAAM,IAAI,qDAAyB,CAClC,uCAAuC,CAAC,CAAC;gBAC5C,CAAC;gBAEF,mBAAC;YAAD,CAAC,AAnBD,IAmBC;YAmCD;gBAEQ,8BAAiB;gBAIxB,oBACC,MAA6B,EAC7B,gBAAiD;oBAAjD,gCAAiD,GAAjD,qCAAiD;oBAEjD,kBAAM,IAAI,EAAE,gBAAgB,CAAC,CAAC;oBAC9B,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,CAAC,CAAC,aAAa,GAAG,IAAI,+BAAc,EAAmB,CAAC;oBACxD,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;gBAC1B,CAAC;gBAES,6BAAQ,GAAlB;oBAEC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;gBACvC,CAAC;gBAES,iCAAY,GAAtB,UAAuB,KAAO;oBAE7B,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;oBACpD,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBAES,oCAAe,GAAzB,UAA0B,KAAO,EAAE,GAAqB;oBAArB,mBAAqB,GAArB,cAAqB;oBAEvD,IAAI,CAAC,GAAc,IAAI,EACnB,MAAM,GAAS,CAAC,CAAC,iBAAiB,EAClC,IAAI,GAAW,CAAC,CAAC,aAAa,EAC9B,YAAY,GAAG,CAAC,CAAC;oBAErB,IAAI,CAAC,OAAO,CAAC,UAAA,IAAI;wBAEhB,EAAE,CAAA,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;4BACrD,YAAY,EAAE,CAAC;wBAEhB,MAAM,CAAC,YAAY,GAAC,GAAG,CAAC;oBACzB,CAAC,CAAC,CAAC;oBAEH,MAAM,CAAC,YAAY,CAAC;gBACrB,CAAC;gBAES,mCAAc,GAAxB;oBAEC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;gBACnC,CAAC;gBAGD,4BAAO,GAAP,UACC,MAA+B,EAC/B,OAAuB;oBAAvB,uBAAuB,GAAvB,eAAuB;oBAEvB,EAAE,CAAA,CAAC,OAAO,CAAC;wBAAC,gBAAK,CAAC,OAAO,YAAC,MAAM,EAAE,OAAO,CAAC,CAAC;oBAC3C,IAAI;wBAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,UAAC,IAAI,EAAE,CAAC,IAAG,OAAA,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,EAArB,CAAqB,CAAC,CAAC;gBACnE,CAAC;gBAKD,kCAAa,GAAb;oBAEC,MAAM,CAAC,+BAAc,CAAC,mBAAmB,CAAS,IAAI,CAAC,aAAa,CAAC,CAAC;gBACvE,CAAC;gBAIO,+BAAU,GAAlB,UAAmB,KAAO;oBAGzB,IAAI,CAAC,GAAQ,IAAI,EACb,MAAM,GAAG,CAAC,CAAC,iBAAiB,EAC5B,IAAI,GAAK,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC;oBACnC,OAAM,IAAI,EACV,CAAC;wBACA,EAAE,CAAA,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;4BAC5B,MAAM,CAAC,IAAI,CAAC;wBACb,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;oBAClB,CAAC;oBACD,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBAEO,8BAAS,GAAjB,UAAkB,KAAO;oBAGxB,IAAI,CAAC,GAAQ,IAAI,EACb,MAAM,GAAG,CAAC,CAAC,iBAAiB,EAC5B,IAAI,GAAK,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC;oBAClC,OAAM,IAAI,EACV,CAAC;wBACA,EAAE,CAAA,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;4BAC5B,MAAM,CAAC,IAAI,CAAC;wBACb,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;oBACtB,CAAC;oBACD,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBAED,+BAAU,GAAV,UAAW,KAAO;oBAEjB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,KAAG,CAAC,CAAC;gBAClC,CAAC;gBAED,sBAAI,6BAAK;yBAAT;wBAEC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oBACvD,CAAC;;;mBAAA;gBAED,sBAAI,4BAAI;yBAAR;wBAEC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBACtD,CAAC;;;mBAAA;gBAKD,+BAAU,GAAV,UAAW,KAAY;oBAEtB,IAAI,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBAC/C,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC;wBACR,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,KAAI,CAAC,CAAC,CAAC,CAAC;gBACvC,CAAC;gBAED,8BAAS,GAAT,UAAU,KAAY;oBAErB,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;gBAClE,CAAC;gBAED,yBAAI,GAAJ,UAAK,KAAO;oBAEX,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;gBACrD,CAAC;gBAED,6BAAQ,GAAR,UAAS,KAAO;oBAEf,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;gBACpD,CAAC;gBAED,6BAAQ,GAAR,UAAS,KAAO;oBAEf,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;oBAC1D,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBAChC,CAAC;gBAED,4BAAO,GAAP,UAAQ,KAAO;oBAEd,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACjB,CAAC;gBAED,gCAAW,GAAX;oBAEC,IAAI,CAAC,GAAG,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC;oBAC5C,EAAE,CAAA,CAAC,KAAK,IAAI,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;wBAC7C,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBAC9B,CAAC;gBAED,+BAAU,GAAV;oBAEC,IAAI,CAAC,GAAG,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC;oBAC1C,EAAE,CAAA,CAAC,IAAI,IAAI,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;wBAC3C,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBAC9B,CAAC;gBAGD,+BAAU,GAAV,UAAW,IAAuB;oBAEjC,IAAI,CAAC,GAAG,IAAI,CAAC;oBAEb,EAAE,CAAA,CAAC,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CACpD,CAAC;wBACA,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;wBAC5B,MAAM,CAAC,IAAI,CAAC;oBACb,CAAC;oBAED,MAAM,CAAC,KAAK,CAAC;gBACd,CAAC;gBAED,8BAAS,GAAT,UAAU,MAAyB,EAAE,KAAO;oBAE3C,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,CAAC,CAAC,aAAa,CAAC,aAAa,CAC5B,IAAI,YAAY,CAAC,KAAK,CAAC,EACvB,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CACtB,CAAC;oBAEF,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBAC7B,CAAC;gBAED,6BAAQ,GAAR,UAAS,KAAwB,EAAE,KAAO;oBAEzC,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,CAAC,CAAC,aAAa,CAAC,YAAY,CAC3B,IAAI,YAAY,CAAC,KAAK,CAAC,EACvB,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CACrB,CAAC;oBAEF,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBAC7B,CAAC;gBAED,kCAAa,GAAb,UAAc,IAAuB,EAAE,MAAyB;oBAE/D,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,CAAC,CAAC,aAAa,CAAC,aAAa,CAC5B,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,EACtB,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CACpB,CAAC;oBAEF,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBAC7B,CAAC;gBAED,iCAAY,GAAZ,UAAa,IAAuB,EAAE,KAAwB;oBAE7D,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,IAAI,CAAC,aAAa,CAAC,YAAY,CAC9B,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,EACrB,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CACpB,CAAC;oBAEF,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBAC7B,CAAC;gBAGF,iBAAC;YAAD,CAAC,AA/ND,CAEQ,+BAAc,GA6NrB;YA/ND,gCA+NC,CAAA;YAGD;gBAEC,wBACS,KAAmB,EACnB,aAA6B;oBAD7B,UAAK,GAAL,KAAK,CAAc;oBACnB,kBAAa,GAAb,aAAa,CAAgB;gBAEtC,CAAC;gBAED,sBAAI,gCAAI;yBAAR;wBAEC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;oBACnB,CAAC;;;mBAAA;gBAED,sBAAI,oCAAQ;yBAAZ;wBAEC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;oBAChE,CAAC;;;mBAAA;gBAED,sBAAI,gCAAI;yBAAR;wBAEC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC5D,CAAC;;;mBAAA;gBAED,sBAAI,iCAAK;yBAAT;wBAEC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;oBACjC,CAAC;yBAED,UAAU,CAAG;wBAEZ,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,CAAC,CAAC;oBAC9B,CAAC;;;mBALA;gBAOD,kCAAS,GAAT,UAAU,KAAO;oBAEhB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACnC,CAAC;gBAED,iCAAQ,GAAR,UAAS,KAAO;oBAEf,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAClC,CAAC;gBAED,sCAAa,GAAb,UAAc,MAAyB;oBAEtC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACxC,CAAC;gBAED,qCAAY,GAAZ,UAAa,KAAwB;oBAEpC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACtC,CAAC;gBAED,+BAAM,GAAN;oBAEC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAC7B,CAAC;gBAEF,qBAAC;YAAD,CAAC,AA1DD,IA0DC"} \ No newline at end of file diff --git a/dist/system/System/Collections/LinkedNodeList.d.ts b/dist/system/System/Collections/LinkedNodeList.d.ts index 2f91455d..2baad203 100644 --- a/dist/system/System/Collections/LinkedNodeList.d.ts +++ b/dist/system/System/Collections/LinkedNodeList.d.ts @@ -1,9 +1,15 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -export default class LinkedNodeList> implements ILinkedNodeList, IEnumerateEach, IDisposable { +import { ILinkedNode, ILinkedNodeWithValue } from "./ILinkedListNode"; +import { IEnumerateEach } from "./Enumeration/IEnumerateEach"; +import { IDisposable } from "../Disposable/IDisposable"; +import { ILinkedNodeList } from "./ILinkedList"; +import { IEnumerator } from "./Enumeration/IEnumerator"; +import { Predicate, Selector, Action } from "../FunctionTypes"; +import { IArray } from "./Array/IArray"; +export declare class LinkedNodeList> implements ILinkedNodeList, IEnumerateEach, IDisposable { private _first; private _last; unsafeCount: number; @@ -29,3 +35,4 @@ export default class LinkedNodeList> implements static valueEnumeratorFrom(list: LinkedNodeList>): IEnumerator; static copyValues>(list: LinkedNodeList>, array: TDestination, index?: number): TDestination; } +export default LinkedNodeList; diff --git a/dist/system/System/Collections/LinkedNodeList.js b/dist/system/System/Collections/LinkedNodeList.js index 1260f191..c324eef1 100644 --- a/dist/system/System/Collections/LinkedNodeList.js +++ b/dist/system/System/Collections/LinkedNodeList.js @@ -3,16 +3,16 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ System.register(["../Text/Utility", "../Exceptions/InvalidOperationException", "../Exceptions/ArgumentException", "../Exceptions/ArgumentNullException", "./Enumeration/EnumeratorBase"], function(exports_1, context_1) { - 'use strict'; + "use strict"; var __moduleName = context_1 && context_1.id; var TextUtility, InvalidOperationException_1, ArgumentException_1, ArgumentNullException_1, EnumeratorBase_1; var LinkedNodeList; function assertValidDetached(node, propName) { if (propName === void 0) { propName = 'node'; } if (node == null) - throw new ArgumentNullException_1.default(propName); + throw new ArgumentNullException_1.ArgumentNullException(propName); if (node.next || node.previous) - throw new InvalidOperationException_1.default("Cannot add a node to a LinkedNodeList that is already linked."); + throw new InvalidOperationException_1.InvalidOperationException("Cannot add a node to a LinkedNodeList that is already linked."); } return { setters:[ @@ -74,7 +74,7 @@ System.register(["../Text/Utility", "../Exceptions/InvalidOperationException", " }; LinkedNodeList.prototype.map = function (selector) { if (!selector) - throw new ArgumentNullException_1.default('selector'); + throw new ArgumentNullException_1.ArgumentNullException('selector'); var result = []; this.forEach(function (node) { result.push(selector(node)); @@ -150,7 +150,7 @@ System.register(["../Text/Utility", "../Exceptions/InvalidOperationException", " }; LinkedNodeList.prototype.removeNode = function (node) { if (node == null) - throw new ArgumentNullException_1.default('node'); + throw new ArgumentNullException_1.ArgumentNullException('node'); var _ = this; var prev = node.previous, next = node.next, a = false, b = false; if (prev) @@ -166,7 +166,7 @@ System.register(["../Text/Utility", "../Exceptions/InvalidOperationException", " else b = true; if (a !== b) { - throw new ArgumentException_1.default('node', TextUtility.format("Provided node is has no {0} reference but is not the {1} node!", a ? "previous" : "next", a ? "first" : "last")); + throw new ArgumentException_1.ArgumentException('node', TextUtility.format("Provided node is has no {0} reference but is not the {1} node!", a ? "previous" : "next", a ? "first" : "last")); } var removed = !a && !b; if (removed) @@ -220,7 +220,7 @@ System.register(["../Text/Utility", "../Exceptions/InvalidOperationException", " }; LinkedNodeList.prototype.replace = function (node, replacement) { if (node == null) - throw new ArgumentNullException_1.default('node'); + throw new ArgumentNullException_1.ArgumentNullException('node'); assertValidDetached(replacement, 'replacement'); var _ = this; replacement.previous = node.previous; @@ -236,9 +236,9 @@ System.register(["../Text/Utility", "../Exceptions/InvalidOperationException", " }; LinkedNodeList.valueEnumeratorFrom = function (list) { if (!list) - throw new ArgumentNullException_1.default('list'); + throw new ArgumentNullException_1.ArgumentNullException('list'); var _ = this, current, next; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { current = null; next = list.first; }, function (yielder) { @@ -254,7 +254,7 @@ System.register(["../Text/Utility", "../Exceptions/InvalidOperationException", " if (index === void 0) { index = 0; } if (list && list.first) { if (!array) - throw new ArgumentNullException_1.default('array'); + throw new ArgumentNullException_1.ArgumentNullException('array'); list.forEach(function (node, i) { array[index + i] = node.value; }); @@ -263,7 +263,8 @@ System.register(["../Text/Utility", "../Exceptions/InvalidOperationException", " }; return LinkedNodeList; }()); - exports_1("default", LinkedNodeList); + exports_1("LinkedNodeList", LinkedNodeList); + exports_1("default",LinkedNodeList); } } }); diff --git a/dist/system/System/Collections/LinkedNodeList.js.map b/dist/system/System/Collections/LinkedNodeList.js.map index caf6b2ff..aac62f51 100644 --- a/dist/system/System/Collections/LinkedNodeList.js.map +++ b/dist/system/System/Collections/LinkedNodeList.js.map @@ -1 +1 @@ -{"version":3,"file":"LinkedNodeList.js","sourceRoot":"","sources":["../../../../source/System/Collections/LinkedNodeList.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"LinkedNodeList.js","sourceRoot":"","sources":["../../../../source/System/Collections/LinkedNodeList.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/system/System/Collections/List.d.ts b/dist/system/System/Collections/List.d.ts index 39f8549b..4841979b 100644 --- a/dist/system/System/Collections/List.d.ts +++ b/dist/system/System/Collections/List.d.ts @@ -1,10 +1,15 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import CollectionBase from "./CollectionBase"; -export default class List extends CollectionBase implements IList, IEnumerateEach { +import { CollectionBase } from "./CollectionBase"; +import { Predicate, Action, EqualityComparison } from "../FunctionTypes"; +import { IEnumerator } from "./Enumeration/IEnumerator"; +import { IList } from "./IList"; +import { IEnumerateEach } from "./Enumeration/IEnumerateEach"; +import { IEnumerableOrArray } from "./IEnumerableOrArray"; +import { IArray } from "./Array/IArray"; +export declare class List extends CollectionBase implements IList, IEnumerateEach { protected _source: T[]; constructor(source?: IEnumerableOrArray, equalityComparer?: EqualityComparison); protected getCount(): number; @@ -22,3 +27,4 @@ export default class List extends CollectionBase implements IList, IEnu getEnumerator(): IEnumerator; forEach(action: Predicate | Action, useCopy?: boolean): void; } +export default List; diff --git a/dist/system/System/Collections/List.js b/dist/system/System/Collections/List.js index ee222407..ba04aa45 100644 --- a/dist/system/System/Collections/List.js +++ b/dist/system/System/Collections/List.js @@ -64,7 +64,7 @@ System.register(["../Compare", "./Array/Utility", "./Enumeration/Enumerator", ". return len; }; List.prototype._importEntries = function (entries) { - if (Types_1.default.isArrayLike(entries)) { + if (Types_1.Type.isArrayLike(entries)) { var len = entries.length; if (!len) return 0; @@ -118,15 +118,16 @@ System.register(["../Compare", "./Array/Utility", "./Enumeration/Enumerator", ". return Utility_1.copyTo(this._source, target, 0, index); }; List.prototype.getEnumerator = function () { - return new ArrayEnumerator_1.default(this._source); + return new ArrayEnumerator_1.ArrayEnumerator(this._source); }; List.prototype.forEach = function (action, useCopy) { var s = this._source; Enumerator_1.forEach(useCopy ? s.slice() : s, action); }; return List; - }(CollectionBase_1.default)); - exports_1("default", List); + }(CollectionBase_1.CollectionBase)); + exports_1("List", List); + exports_1("default",List); } } }); diff --git a/dist/system/System/Collections/List.js.map b/dist/system/System/Collections/List.js.map index fd372683..1c9199d2 100644 --- a/dist/system/System/Collections/List.js.map +++ b/dist/system/System/Collections/List.js.map @@ -1 +1 @@ -{"version":3,"file":"List.js","sourceRoot":"","sources":["../../../../source/System/Collections/List.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAWH;gBACQ,wBAAiB;gBAMxB,cACC,MAA6B,EAC7B,gBAAiD;oBAAjD,gCAAiD,GAAjD,qCAAiD;oBAEjD,kBAAM,IAAI,EAAC,gBAAgB,CAAC,CAAC;oBAC7B,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,EAAE,CAAA,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CACzB,CAAC;wBACA,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;oBAC5B,CAAC;oBACD,IAAI,CACJ,CAAC;wBACA,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC;wBACf,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;oBAC1B,CAAC;gBACF,CAAC;gBAES,uBAAQ,GAAlB;oBAEC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;gBAC5B,CAAC;gBAES,2BAAY,GAAtB,UAAuB,KAAO;oBAE7B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACzB,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBAES,8BAAe,GAAzB,UAA0B,KAAO,EAAE,GAAqB;oBAArB,mBAAqB,GAArB,cAAqB;oBAEvD,MAAM,CAAC,gBAAM,CACZ,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EACxB,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBAC1B,CAAC;gBAES,6BAAc,GAAxB;oBAEC,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;oBAC9B,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;oBACxB,MAAM,CAAC,GAAG,CAAC;gBAAC,CAAC;gBAEJ,6BAAc,GAAxB,UAAyB,OAA6B;oBAErD,EAAE,CAAA,CAAC,eAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAC7B,CAAC;wBACA,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;wBACzB,EAAE,CAAA,CAAC,CAAC,GAAG,CAAC;4BAAC,MAAM,CAAC,CAAC,CAAC;wBAClB,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;wBAErB,IAAI,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;wBACrB,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC;wBAChB,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAC,CAAC,GAAC,GAAG,EAAC,CAAC,EAAE,EAAE,CAAC;4BACzB,CAAC,CAAC,CAAC,GAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;wBACzB,CAAC;wBAED,MAAM,CAAC,GAAG,CAAC;oBACZ,CAAC;oBAAC,IAAI,CACN,CAAC;wBACA,MAAM,CAAC,gBAAK,CAAC,cAAc,YAAC,OAAO,CAAC,CAAC;oBACtC,CAAC;gBACF,CAAC;gBAED,kBAAG,GAAH,UAAI,KAAY;oBAEf,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC5B,CAAC;gBAED,kBAAG,GAAH,UAAI,KAAY,EAAE,KAAO;oBAExB,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;oBACrB,EAAE,CAAA,CAAC,KAAK,GAAC,CAAC,CAAC,MAAM,IAAI,kBAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;wBAC9C,MAAM,CAAC,KAAK,CAAC;oBAEd,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;oBACjB,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnB,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBAED,sBAAO,GAAP,UAAQ,IAAM;oBAEb,MAAM,CAAC,iBAAO,CACb,IAAI,CAAC,OAAO,EAAE,IAAI,EAClB,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBAC1B,CAAC;gBAED,qBAAM,GAAN,UAAO,KAAY,EAAE,KAAO;oBAE3B,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;oBACrB,EAAE,CAAA,CAAC,KAAK,GAAC,CAAC,CAAC,MAAM,CAAC,CAClB,CAAC;wBACA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;oBACtC,CAAC;oBACD,IAAI,CACJ,CAAC;wBACA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;oBAC7B,CAAC;oBACD,IAAI,CAAC,WAAW,EAAE,CAAC;gBACpB,CAAC;gBAED,uBAAQ,GAAR,UAAS,KAAY;oBAEpB,EAAE,CAAA,CAAC,qBAAW,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CACpC,CAAC;wBACA,IAAI,CAAC,WAAW,EAAE,CAAC;wBACnB,MAAM,CAAC,IAAI,CAAC;oBACb,CAAC;oBACD,MAAM,CAAC,KAAK,CAAC;gBACd,CAAC;gBAED,uBAAQ,GAAR,UAAS,IAAM;oBAEd,MAAM,CAAC,kBAAQ,CACd,IAAI,CAAC,OAAO,EAAE,IAAI,EAClB,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBAC1B,CAAC;gBAED,qBAAM,GAAN,UAAoC,MAAc,EAAE,KAAa;oBAEhE,MAAM,CAAC,gBAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;gBAC/C,CAAC;gBAED,4BAAa,GAAb;oBAEC,MAAM,CAAC,IAAI,yBAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC1C,CAAC;gBAED,sBAAO,GAAP,UAAQ,MAA6B,EAAE,OAAgB;oBAEtD,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;oBACrB,oBAAO,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;gBAC1C,CAAC;gBAEF,WAAC;YAAD,CAAC,AA3ID,CACQ,wBAAc,GA0IrB;YA3ID,0BA2IC,CAAA"} \ No newline at end of file +{"version":3,"file":"List.js","sourceRoot":"","sources":["../../../../source/System/Collections/List.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/system/System/Collections/Queue.d.ts b/dist/system/System/Collections/Queue.d.ts index e634439d..818016a6 100644 --- a/dist/system/System/Collections/Queue.d.ts +++ b/dist/system/System/Collections/Queue.d.ts @@ -1,15 +1,13 @@ -/// -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Based Upon: http://referencesource.microsoft.com/#System/CompMod/system/collections/generic/queue.cs * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import CollectionBase from "./CollectionBase"; -export default class Queue extends CollectionBase { +import { CollectionBase } from "./CollectionBase"; +import { EqualityComparison, Predicate, Action } from "../FunctionTypes"; +import { IEnumerator } from "./Enumeration/IEnumerator"; +import { IEnumerableOrArray } from "./IEnumerableOrArray"; +export declare class Queue extends CollectionBase { private _array; private _head; private _tail; @@ -33,3 +31,4 @@ export default class Queue extends CollectionBase { trimExcess(threshold?: number): void; getEnumerator(): IEnumerator; } +export default Queue; diff --git a/dist/system/System/Collections/Queue.js b/dist/system/System/Collections/Queue.js index ab60dbc7..24839bed 100644 --- a/dist/system/System/Collections/Queue.js +++ b/dist/system/System/Collections/Queue.js @@ -4,7 +4,7 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ System.register(["../Compare", "./Array/Utility", "../Types", "../Integer", "./Enumeration/EnumeratorBase", "../Exceptions/NotImplementedException", "../Exceptions/InvalidOperationException", "../Exceptions/ArgumentOutOfRangeException", "./CollectionBase"], function(exports_1, context_1) { - 'use strict'; + "use strict"; var __moduleName = context_1 && context_1.id; var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; @@ -15,10 +15,10 @@ System.register(["../Compare", "./Array/Utility", "../Types", "../Integer", "./E var MINIMUM_GROW, SHRINK_THRESHOLD, GROW_FACTOR_HALF, DEFAULT_CAPACITY, emptyArray, Queue; function assertZeroOrGreater(value, property) { if (value < 0) - throw new ArgumentOutOfRangeException_1.default(property, value, "Must be greater than zero"); + throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(property, value, "Must be greater than zero"); } function assertIntegerZeroOrGreater(value, property) { - Integer_1.default.assert(value, property); + Integer_1.Integer.assert(value, property); assertZeroOrGreater(value, property); } return { @@ -68,7 +68,7 @@ System.register(["../Compare", "./Array/Utility", "../Types", "../Integer", "./E if (!source) _._array = emptyArray; else { - if (Types_1.default.isNumber(source)) { + if (Types_1.Type.isNumber(source)) { var capacity = source; assertIntegerZeroOrGreater(capacity, "capacity"); _._array = capacity @@ -77,7 +77,7 @@ System.register(["../Compare", "./Array/Utility", "../Types", "../Integer", "./E } else { var se = source; - _._array = AU.initialize(Types_1.default.isArrayLike(se) + _._array = AU.initialize(Types_1.Type.isArrayLike(se) ? se.length : DEFAULT_CAPACITY); _._importEntries(se); @@ -105,7 +105,7 @@ System.register(["../Compare", "./Array/Utility", "../Types", "../Integer", "./E return true; }; Queue.prototype._removeInternal = function (item, max) { - throw new NotImplementedException_1.default("ICollection\.remove is not implemented in Queue\" + + throw new NotImplementedException_1.NotImplementedException("ICollection\.remove is not implemented in Queue\" + " since it would require destroying the underlying array to remove the item."); }; Queue.prototype._clearInternal = function () { @@ -134,7 +134,7 @@ System.register(["../Compare", "./Array/Utility", "../Types", "../Integer", "./E if (max === void 0) { max = Infinity; } var _ = this, result = []; if (isFinite(max)) { - Integer_1.default.assertZeroOrGreater(max); + Integer_1.Integer.assertZeroOrGreater(max); if (max !== 0) { while (max-- && _._size) { result.push(_._dequeueInternal()); @@ -188,7 +188,7 @@ System.register(["../Compare", "./Array/Utility", "../Types", "../Integer", "./E var _ = this; if (_._size == 0) { if (throwIfEmpty) - throw new InvalidOperationException_1.default("Cannot dequeue an empty queue."); + throw new InvalidOperationException_1.InvalidOperationException("Cannot dequeue an empty queue."); return void 0; } var array = _._array, head = _._head; @@ -225,7 +225,7 @@ System.register(["../Compare", "./Array/Utility", "../Types", "../Integer", "./E }; Queue.prototype.peek = function () { if (this._size == 0) - throw new InvalidOperationException_1.default("Cannot call peek on an empty queue."); + throw new InvalidOperationException_1.InvalidOperationException("Cannot call peek on an empty queue."); return this._array[this._head]; }; Queue.prototype.trimExcess = function (threshold) { @@ -238,7 +238,7 @@ System.register(["../Compare", "./Array/Utility", "../Types", "../Integer", "./E var _ = this; var index; var version; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { version = _._version; index = 0; }, function (yielder) { @@ -249,8 +249,9 @@ System.register(["../Compare", "./Array/Utility", "../Types", "../Integer", "./E }); }; return Queue; - }(CollectionBase_1.default)); - exports_1("default", Queue); + }(CollectionBase_1.CollectionBase)); + exports_1("Queue", Queue); + exports_1("default",Queue); } } }); diff --git a/dist/system/System/Collections/Queue.js.map b/dist/system/System/Collections/Queue.js.map index d38ff6c3..cdcabda0 100644 --- a/dist/system/System/Collections/Queue.js.map +++ b/dist/system/System/Collections/Queue.js.map @@ -1 +1 @@ -{"version":3,"file":"Queue.js","sourceRoot":"","sources":["../../../../source/System/Collections/Queue.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;IAOH,YAAY,CAAC;;;;;;;;QAYP,YAAY,EACZ,gBAAgB,EAEhB,gBAAgB,EAChB,gBAAgB,EAClB,UAAU;IA4Sd,6BAA6B,KAAY,EAAE,QAAe;QAEzD,EAAE,CAAA,CAAC,KAAK,GAAC,CAAC,CAAC;YACV,MAAM,IAAI,qCAA2B,CAAC,QAAQ,EAAE,KAAK,EAAE,2BAA2B,CAAC,CAAC;IAEtF,CAAC;IAED,oCAAoC,KAAY,EAAE,QAAe;QAEhE,iBAAO,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAChC,mBAAmB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YA5TK,YAAY,GAAU,CAAC,CAAC;YACxB,gBAAgB,GAAU,EAAE,CAAC;YAE7B,gBAAgB,GAAU,GAAG,CAAC;YAC9B,gBAAgB,GAAU,YAAY,CAAC;YACzC,UAAU,GAAS,EAAE,CAAC;YAE1B;gBAEQ,yBAAiB;gBASxB,eACC,MAAsC,EACtC,gBAAiD;oBAAjD,gCAAiD,GAAjD,qCAAiD;oBAEjD,kBAAM,IAAI,EAAC,gBAAgB,CAAC,CAAC;oBAC7B,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;oBACZ,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;oBACZ,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;oBAEZ,EAAE,CAAA,CAAC,CAAC,MAAM,CAAC;wBACV,CAAC,CAAC,MAAM,GAAG,UAAU,CAAC;oBACvB,IAAI,CACJ,CAAC;wBACA,EAAE,CAAA,CAAC,eAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CACzB,CAAC;4BACA,IAAI,QAAQ,GAAW,MAAM,CAAC;4BAC9B,0BAA0B,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;4BAEjD,CAAC,CAAC,MAAM,GAAG,QAAQ;kCAChB,EAAE,CAAC,UAAU,CAAI,QAAQ,CAAC;kCAC1B,UAAU,CAAC;wBACf,CAAC;wBACD,IAAI,CACJ,CAAC;4BACA,IAAI,EAAE,GAA2B,MAAM,CAAC;4BACxC,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC,UAAU,CACvB,eAAI,CAAC,WAAW,CAAC,EAAE,CAAC;kCACjB,EAAE,CAAC,MAAM;kCACT,gBAAgB,CACnB,CAAC;4BAEF,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;wBACtB,CAAC;oBACF,CAAC;oBAED,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;gBAC/B,CAAC;gBAES,wBAAQ,GAAlB;oBAEC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;gBACnB,CAAC;gBAES,4BAAY,GAAtB,UAAuB,IAAM;oBAE5B,IAAI,CAAC,GAAG,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,SAAS,CAAC;oBAClE,EAAE,CAAA,CAAC,IAAI,IAAE,GAAG,CAAC,CACb,CAAC;wBACA,IAAI,WAAW,GAAG,GAAG,GAAC,gBAAgB,CAAC;wBACvC,EAAE,CAAA,CAAC,WAAW,GAAC,GAAG,GAAG,YAAY,CAAC;4BACjC,WAAW,GAAG,GAAG,GAAG,YAAY,CAAC;wBAElC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;wBAC3B,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;wBACjB,GAAG,GAAG,CAAC,CAAC,SAAS,CAAC;oBACnB,CAAC;oBAED,IAAI,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC;oBACnB,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;oBACnB,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAC,GAAG,CAAC;oBACzB,CAAC,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC;oBACnB,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBAES,+BAAe,GAAzB,UAA0B,IAAM,EAAE,GAAW;oBAE5C,MAAM,IAAI,iCAAuB,CAChC,0DAA0D;wBAC1D,6EAA6E,CAC7E,CAAC;gBACH,CAAC;gBAES,8BAAc,GAAxB;oBAEC,IAAI,CAAC,GAAG,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC;oBAC/E,EAAE,CAAA,CAAC,IAAI,GAAC,IAAI,CAAC;wBACZ,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;oBAC7B,IAAI,CACJ,CAAC;wBACA,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;wBAC3C,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;oBAC1B,CAAC;oBAED,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;oBACZ,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;oBACZ,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;oBAEZ,CAAC,CAAC,UAAU,EAAE,CAAC;oBAEf,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBAES,0BAAU,GAApB;oBAEC,gBAAK,CAAC,UAAU,WAAE,CAAC;oBACnB,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,EAAE,CAAA,CAAC,CAAC,CAAC,MAAM,IAAE,UAAU,CAAC,CACxB,CAAC;wBACA,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC;wBAClC,CAAC,CAAC,MAAM,GAAG,UAAU,CAAC;oBACvB,CAAC;gBACF,CAAC;gBAMD,oBAAI,GAAJ,UAAK,GAAqB;oBAArB,mBAAqB,GAArB,cAAqB;oBAEzB,IAAI,CAAC,GAAG,IAAI,EAAE,MAAM,GAAO,EAAE,CAAC;oBAE9B,EAAE,CAAA,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CACjB,CAAC;wBACA,iBAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;wBACjC,EAAE,CAAA,CAAC,GAAG,KAAG,CAAC,CAAC,CACX,CAAC;4BACA,OAAM,GAAG,EAAE,IAAI,CAAC,CAAC,KAAK,EACtB,CAAC;gCACA,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC;4BACnC,CAAC;wBACF,CAAC;oBACF,CAAC;oBACD,IAAI,CACJ,CAAC;wBACA,OAAM,CAAC,CAAC,KAAK,EACb,CAAC;4BACA,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC;wBACnC,CAAC;oBACF,CAAC;oBAED,CAAC,CAAC,UAAU,EAAE,CAAC;oBACf,CAAC,CAAC,mBAAmB,EAAE,CAAC;oBAExB,MAAM,CAAC,MAAM,CAAC;gBACf,CAAC;gBAED,uBAAO,GAAP,UAAQ,MAA+B;oBAEtC,gBAAK,CAAC,OAAO,YAAC,MAAM,EAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC;gBAED,2BAAW,GAAX,UAAY,QAAe;oBAG1B,0BAA0B,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;oBAEjD,IAAI,CAAC,GAAG,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,SAAS,CAAC;oBAElD,EAAE,CAAA,CAAC,QAAQ,IAAE,GAAG,CAAC;wBAChB,MAAM,CAAC;oBAER,IAAI,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC;oBAGnD,EAAE,CAAA,CAAC,KAAK,IAAE,UAAU,IAAI,QAAQ,GAAC,GAAG,IAAI,IAAI,GAAC,IAAI,CAAC,CAClD,CAAC;wBACA,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,SAAS,GAAG,QAAQ,CAAC;wBACtC,CAAC,CAAC,QAAQ,EAAE,CAAC;wBACb,MAAM,CAAC;oBACR,CAAC;oBAGD,IAAI,QAAQ,GAAO,EAAE,CAAC,UAAU,CAAI,QAAQ,CAAC,CAAC;oBAC9C,EAAE,CAAA,CAAC,IAAI,GAAC,CAAC,CAAC,CACV,CAAC;wBACA,EAAE,CAAA,CAAC,IAAI,GAAC,IAAI,CAAC,CACb,CAAC;4BACA,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;wBAC3C,CAAC;wBACD,IAAI,CACJ,CAAC;4BACA,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC;4BAChD,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC;wBACjD,CAAC;oBACF,CAAC;oBAED,CAAC,CAAC,MAAM,GAAG,QAAQ,CAAC;oBACpB,CAAC,CAAC,SAAS,GAAG,QAAQ,CAAC;oBACvB,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;oBACZ,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,IAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;oBAEtC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBAC7B,CAAC;gBAED,uBAAO,GAAP,UAAQ,IAAM;oBAEb,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAChB,CAAC;gBAGS,gCAAgB,GAA1B,UAA2B,YAA4B;oBAA5B,4BAA4B,GAA5B,oBAA4B;oBAEtD,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,EAAE,CAAA,CAAC,CAAC,CAAC,KAAK,IAAE,CAAC,CAAC,CACd,CAAC;wBACA,EAAE,CAAA,CAAC,YAAY,CAAC;4BACf,MAAM,IAAI,mCAAyB,CAAC,gCAAgC,CAAC,CAAC;wBACvE,MAAM,CAAC,KAAK,CAAC,CAAC;oBACf,CAAC;oBAED,IAAI,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC;oBAErC,IAAI,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC7B,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;oBACnB,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAC,CAAC,CAAC,SAAS,CAAC;oBAEjC,CAAC,CAAC,KAAK,EAAE,CAAC;oBAEV,CAAC,CAAC,kBAAkB,EAAE,CAAC;oBAEvB,MAAM,CAAC,OAAO,CAAC;gBAChB,CAAC;gBAED,uBAAO,GAAP,UAAQ,YAA4B;oBAA5B,4BAA4B,GAA5B,oBAA4B;oBACnC,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,CAAC,CAAC,gBAAgB,EAAE,CAAC;oBAGrB,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;oBACzB,IAAI,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;oBAG5C,EAAE,CAAA,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,GAAC,CAAC,CAAC,SAAS,GAAC,CAAC,CAAC;wBACpC,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;oBAEhC,CAAC,CAAC,mBAAmB,EAAE,CAAC;oBACxB,MAAM,CAAC,CAAC,CAAC;gBACV,CAAC;gBAGD,0BAAU,GAAV,UAAW,GAAmB;oBAE7B,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;wBAAC,MAAM,CAAC,KAAK,CAAC;oBAC7B,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;oBACvB,EAAE,CAAA,CAAC,GAAG,CAAC;wBAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACf,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBAEO,2BAAW,GAAnB,UAAoB,KAAY;oBAE/B,0BAA0B,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;oBAE3C,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,GAAC,CAAC,CAAC,SAAS,CAAC,CAAC;gBAChD,CAAC;gBAED,oBAAI,GAAJ;oBAEC,EAAE,CAAA,CAAC,IAAI,CAAC,KAAK,IAAE,CAAC,CAAC;wBAChB,MAAM,IAAI,mCAAyB,CAAC,qCAAqC,CAAC,CAAC;oBAE5E,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAChC,CAAC;gBAED,0BAAU,GAAV,UAAW,SAAiB;oBAE3B,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,IAAI,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC;oBACnB,EAAE,CAAA,CAAC,IAAI,GAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,GAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,SAAS,GAAC,IAAI,CAAC,CAAC;wBAC3E,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACtB,CAAC;gBAED,6BAAa,GAAb;oBAEC,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,IAAI,KAAY,CAAC;oBACjB,IAAI,OAAc,CAAC;oBACnB,MAAM,CAAC,IAAI,wBAAc,CACxB;wBAEC,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC;wBACrB,KAAK,GAAG,CAAC,CAAC;oBACX,CAAC,EACD,UAAC,OAAO;wBAEP,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;wBAEzB,EAAE,CAAA,CAAC,KAAK,IAAE,CAAC,CAAC,KAAK,CAAC;4BACjB,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;wBAE7B,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;oBACpD,CAAC,CACD,CAAC;gBACH,CAAC;gBACF,YAAC;YAAD,CAAC,AAxSD,CAEQ,wBAAc,GAsSrB;YAxSD,2BAwSC,CAAA"} \ No newline at end of file +{"version":3,"file":"Queue.js","sourceRoot":"","sources":["../../../../source/System/Collections/Queue.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/system/System/Collections/ReadOnlyCollectionBase.d.ts b/dist/system/System/Collections/ReadOnlyCollectionBase.d.ts index 5633231c..2553028b 100644 --- a/dist/system/System/Collections/ReadOnlyCollectionBase.d.ts +++ b/dist/system/System/Collections/ReadOnlyCollectionBase.d.ts @@ -1,11 +1,10 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import CollectionBase from "./CollectionBase"; -declare abstract class ReadOnlyCollectionBase extends CollectionBase { +import { CollectionBase } from "./CollectionBase"; +import { IEnumerator } from "./Enumeration/IEnumerator"; +export declare abstract class ReadOnlyCollectionBase extends CollectionBase { protected _getCount: () => number; protected getCount(): number; protected getIsReadOnly(): boolean; diff --git a/dist/system/System/Collections/ReadOnlyCollectionBase.js b/dist/system/System/Collections/ReadOnlyCollectionBase.js index 58f8f626..786d897c 100644 --- a/dist/system/System/Collections/ReadOnlyCollectionBase.js +++ b/dist/system/System/Collections/ReadOnlyCollectionBase.js @@ -42,7 +42,8 @@ System.register(["./CollectionBase"], function(exports_1, context_1) { return this._getEnumerator(); }; return ReadOnlyCollectionBase; - }(CollectionBase_1.default)); + }(CollectionBase_1.CollectionBase)); + exports_1("ReadOnlyCollectionBase", ReadOnlyCollectionBase); exports_1("default",ReadOnlyCollectionBase); } } diff --git a/dist/system/System/Collections/ReadOnlyCollectionBase.js.map b/dist/system/System/Collections/ReadOnlyCollectionBase.js.map index baf622ac..ca0a0a6a 100644 --- a/dist/system/System/Collections/ReadOnlyCollectionBase.js.map +++ b/dist/system/System/Collections/ReadOnlyCollectionBase.js.map @@ -1 +1 @@ -{"version":3,"file":"ReadOnlyCollectionBase.js","sourceRoot":"","sources":["../../../../source/System/Collections/ReadOnlyCollectionBase.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;;;;;;YAOH;gBACQ,0CAAiB;gBADzB;oBACQ,8BAAiB;gBAkCzB,CAAC;gBA9BU,yCAAQ,GAAlB;oBAEC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACzB,CAAC;gBAES,8CAAa,GAAvB;oBAEC,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBAES,6CAAY,GAAtB,UAAuB,KAAO;oBAE7B,MAAM,CAAC,KAAK,CAAC;gBACd,CAAC;gBAES,gDAAe,GAAzB,UAA0B,KAAO,EAAE,GAAW;oBAE7C,MAAM,CAAC,CAAC,CAAC;gBACV,CAAC;gBAES,+CAAc,GAAxB;oBAEC,MAAM,CAAC,CAAC,CAAC;gBACV,CAAC;gBAGD,8CAAa,GAAb;oBACC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC9B,CAAC;gBAEF,6BAAC;YAAD,CAAC,AAnCD,CACQ,wBAAc,GAkCrB;YAED,oBAAe,sBAAsB,EAAC"} \ No newline at end of file +{"version":3,"file":"ReadOnlyCollectionBase.js","sourceRoot":"","sources":["../../../../source/System/Collections/ReadOnlyCollectionBase.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;;;;;;YAKH;gBACQ,0CAAiB;gBADzB;oBACQ,8BAAiB;gBAqCzB,CAAC;gBAhCU,yCAAQ,GAAlB;oBAEC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACzB,CAAC;gBAES,8CAAa,GAAvB;oBAEC,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBAES,6CAAY,GAAtB,UAAuB,KAAO;oBAE7B,MAAM,CAAC,KAAK,CAAC;gBACd,CAAC;gBAES,gDAAe,GAAzB,UAA0B,KAAO,EAAE,GAAW;oBAE7C,MAAM,CAAC,CAAC,CAAC;gBACV,CAAC;gBAES,+CAAc,GAAxB;oBAEC,MAAM,CAAC,CAAC,CAAC;gBACV,CAAC;gBAID,8CAAa,GAAb;oBAEC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC9B,CAAC;gBAEF,6BAAC;YAAD,CAAC,AAtCD,CACQ,+BAAc,GAqCrB;YAtCD,2DAsCC,CAAA;YAED,oBAAe,sBAAsB,EAAC"} \ No newline at end of file diff --git a/dist/system/System/Collections/ReadOnlyCollectionWrapper.d.ts b/dist/system/System/Collections/ReadOnlyCollectionWrapper.d.ts index 4b2dbde9..3bd3b498 100644 --- a/dist/system/System/Collections/ReadOnlyCollectionWrapper.d.ts +++ b/dist/system/System/Collections/ReadOnlyCollectionWrapper.d.ts @@ -2,7 +2,8 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import ReadOnlyCollection from "./ReadOnlyCollectionBase"; -export default class ReadOnlyCollectionWrapper extends ReadOnlyCollection { +import { ReadOnlyCollectionBase } from "./ReadOnlyCollectionBase"; +import { ICollection } from "./ICollection"; +export default class ReadOnlyCollectionWrapper extends ReadOnlyCollectionBase { constructor(c: ICollection); } diff --git a/dist/system/System/Collections/ReadOnlyCollectionWrapper.js b/dist/system/System/Collections/ReadOnlyCollectionWrapper.js index 8437b513..74b74072 100644 --- a/dist/system/System/Collections/ReadOnlyCollectionWrapper.js +++ b/dist/system/System/Collections/ReadOnlyCollectionWrapper.js @@ -26,13 +26,13 @@ System.register(["../Exceptions/ArgumentNullException", "./ReadOnlyCollectionBas function ReadOnlyCollectionWrapper(c) { _super.call(this); if (!c) - throw new ArgumentNullException_1.default('collection'); + throw new ArgumentNullException_1.ArgumentNullException('collection'); var _ = this; _._getCount = function () { return c.count; }; _.getEnumerator = function () { return c.getEnumerator(); }; } return ReadOnlyCollectionWrapper; - }(ReadOnlyCollectionBase_1.default)); + }(ReadOnlyCollectionBase_1.ReadOnlyCollectionBase)); exports_1("default", ReadOnlyCollectionWrapper); } } diff --git a/dist/system/System/Collections/ReadOnlyCollectionWrapper.js.map b/dist/system/System/Collections/ReadOnlyCollectionWrapper.js.map index ad9e4503..ff0fe30d 100644 --- a/dist/system/System/Collections/ReadOnlyCollectionWrapper.js.map +++ b/dist/system/System/Collections/ReadOnlyCollectionWrapper.js.map @@ -1 +1 @@ -{"version":3,"file":"ReadOnlyCollectionWrapper.js","sourceRoot":"","sources":["../../../../source/System/Collections/ReadOnlyCollectionWrapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;YAKH;gBAA0D,6CAAqB;gBAE9E,mCAAY,CAAgB;oBAE3B,iBAAO,CAAC;oBAER,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC;wBACL,MAAM,IAAI,+BAAqB,CAAC,YAAY,CAAC,CAAC;oBAE/C,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,CAAC,CAAC,SAAS,GAAG,cAAI,OAAA,CAAC,CAAC,KAAK,EAAP,CAAO,CAAC;oBAC1B,CAAC,CAAC,aAAa,GAAG,cAAK,OAAA,CAAC,CAAC,aAAa,EAAE,EAAjB,CAAiB,CAAC;gBAC1C,CAAC;gBACF,gCAAC;YAAD,CAAC,AAbD,CAA0D,gCAAkB,GAa3E;YAbD,+CAaC,CAAA"} \ No newline at end of file +{"version":3,"file":"ReadOnlyCollectionWrapper.js","sourceRoot":"","sources":["../../../../source/System/Collections/ReadOnlyCollectionWrapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;YAMH;gBAA0D,6CAAyB;gBAElF,mCAAY,CAAgB;oBAE3B,iBAAO,CAAC;oBAER,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC;wBACL,MAAM,IAAI,6CAAqB,CAAC,YAAY,CAAC,CAAC;oBAE/C,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,CAAC,CAAC,SAAS,GAAG,cAAI,OAAA,CAAC,CAAC,KAAK,EAAP,CAAO,CAAC;oBAC1B,CAAC,CAAC,aAAa,GAAG,cAAK,OAAA,CAAC,CAAC,aAAa,EAAE,EAAjB,CAAiB,CAAC;gBAC1C,CAAC;gBACF,gCAAC;YAAD,CAAC,AAbD,CAA0D,+CAAsB,GAa/E;YAbD,+CAaC,CAAA"} \ No newline at end of file diff --git a/dist/system/System/Collections/Set.d.ts b/dist/system/System/Collections/Set.d.ts index b44c6c2d..9d80d8ae 100644 --- a/dist/system/System/Collections/Set.d.ts +++ b/dist/system/System/Collections/Set.d.ts @@ -1,12 +1,12 @@ -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import SetBase from "./SetBase"; -export default class Set extends SetBase { +import { SetBase } from "./SetBase"; +import { ILinkedNodeWithValue } from "./ILinkedListNode"; +import { Primitive } from "../Primitive"; +import { IEnumerableOrArray } from "./IEnumerableOrArray"; +export declare class Set extends SetBase { protected newUsing(source?: IEnumerableOrArray): Set; private _registry; protected _addInternal(item: T): boolean; @@ -15,3 +15,4 @@ export default class Set extends SetBase { protected _getNode(item: T): ILinkedNodeWithValue; protected _removeInternal(item: T, max?: number): number; } +export default Set; diff --git a/dist/system/System/Collections/Set.js b/dist/system/System/Collections/Set.js index 43445cdc..114d365b 100644 --- a/dist/system/System/Collections/Set.js +++ b/dist/system/System/Collections/Set.js @@ -48,8 +48,8 @@ System.register(["../Types", "../Exceptions/ArgumentException", "./SetBase"], fu var _ = this; if (!_.contains(item)) { var type = typeof item; - if (!Types_1.default.isPrimitive(type)) - throw new ArgumentException_1.default("item", "A Set can only index primitives. Complex objects require a HashSet."); + if (!Types_1.Type.isPrimitive(type)) + throw new ArgumentException_1.ArgumentException("item", "A Set can only index primitives. Complex objects require a HashSet."); var r = _._registry; var t = r && r[type]; if (!r) @@ -90,8 +90,9 @@ System.register(["../Types", "../Exceptions/ArgumentException", "./SetBase"], fu return 0; }; return Set; - }(SetBase_1.default)); - exports_1("default", Set); + }(SetBase_1.SetBase)); + exports_1("Set", Set); + exports_1("default",Set); } } }); diff --git a/dist/system/System/Collections/Set.js.map b/dist/system/System/Collections/Set.js.map index 94e50e65..afa8a22d 100644 --- a/dist/system/System/Collections/Set.js.map +++ b/dist/system/System/Collections/Set.js.map @@ -1 +1 @@ -{"version":3,"file":"Set.js","sourceRoot":"","sources":["../../../../source/System/Collections/Set.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Set.js","sourceRoot":"","sources":["../../../../source/System/Collections/Set.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/system/System/Collections/SetBase.d.ts b/dist/system/System/Collections/SetBase.d.ts index 1b129395..efd9f1c3 100644 --- a/dist/system/System/Collections/SetBase.d.ts +++ b/dist/system/System/Collections/SetBase.d.ts @@ -1,13 +1,16 @@ -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import LinkedNodeList from "./LinkedNodeList"; -import CollectionBase from "./CollectionBase"; -declare abstract class SetBase extends CollectionBase implements ISet, IDisposable { +import { LinkedNodeList } from "./LinkedNodeList"; +import { CollectionBase } from "./CollectionBase"; +import { IDisposable } from "../Disposable/IDisposable"; +import { ILinkedNodeWithValue } from "./ILinkedListNode"; +import { Predicate, Action } from "../FunctionTypes"; +import { IEnumerator } from "./Enumeration/IEnumerator"; +import { IEnumerableOrArray } from "./IEnumerableOrArray"; +import { ISet } from "./ISet"; +export declare abstract class SetBase extends CollectionBase implements ISet, IDisposable { constructor(source?: IEnumerableOrArray); protected abstract newUsing(source?: IEnumerableOrArray): SetBase; protected _set: LinkedNodeList>; diff --git a/dist/system/System/Collections/SetBase.js b/dist/system/System/Collections/SetBase.js index e25e1956..dd26933d 100644 --- a/dist/system/System/Collections/SetBase.js +++ b/dist/system/System/Collections/SetBase.js @@ -54,7 +54,7 @@ System.register(["./LinkedNodeList", "../Exceptions/ArgumentNullException", "./E SetBase.prototype._getSet = function () { var s = this._set; if (!s) - this._set = s = new LinkedNodeList_1.default(); + this._set = s = new LinkedNodeList_1.LinkedNodeList(); return s; }; SetBase.prototype.getCount = function () { @@ -63,7 +63,7 @@ System.register(["./LinkedNodeList", "../Exceptions/ArgumentNullException", "./E SetBase.prototype.exceptWith = function (other) { var _ = this; if (!other) - throw new ArgumentNullException_1.default(OTHER); + throw new ArgumentNullException_1.ArgumentNullException(OTHER); Enumerator_1.forEach(other, function (v) { if (_._removeInternal(v)) _._incrementModified(); @@ -72,7 +72,7 @@ System.register(["./LinkedNodeList", "../Exceptions/ArgumentNullException", "./E }; SetBase.prototype.intersectWith = function (other) { if (!other) - throw new ArgumentNullException_1.default(OTHER); + throw new ArgumentNullException_1.ArgumentNullException(OTHER); var _ = this; if (other instanceof SetBase) { var s = _._set; @@ -90,7 +90,7 @@ System.register(["./LinkedNodeList", "../Exceptions/ArgumentNullException", "./E SetBase.prototype.isProperSubsetOf = function (other) { var _this = this; if (!other) - throw new ArgumentNullException_1.default(OTHER); + throw new ArgumentNullException_1.ArgumentNullException(OTHER); return other instanceof SetBase ? other.isProperSupersetOf(this) : dispose_1.using(this.newUsing(other), function (o) { return o.isProperSupersetOf(_this); }); @@ -98,7 +98,7 @@ System.register(["./LinkedNodeList", "../Exceptions/ArgumentNullException", "./E SetBase.prototype.isProperSupersetOf = function (other) { var _this = this; if (!other) - throw new ArgumentNullException_1.default(OTHER); + throw new ArgumentNullException_1.ArgumentNullException(OTHER); var result = true, count; if (other instanceof SetBase) { result = this.isSupersetOf(other); @@ -118,7 +118,7 @@ System.register(["./LinkedNodeList", "../Exceptions/ArgumentNullException", "./E SetBase.prototype.isSubsetOf = function (other) { var _this = this; if (!other) - throw new ArgumentNullException_1.default(OTHER); + throw new ArgumentNullException_1.ArgumentNullException(OTHER); return other instanceof SetBase ? other.isSupersetOf(this) : dispose_1.using(this.newUsing(other), function (o) { return o.isSupersetOf(_this); }); @@ -126,7 +126,7 @@ System.register(["./LinkedNodeList", "../Exceptions/ArgumentNullException", "./E SetBase.prototype.isSupersetOf = function (other) { var _this = this; if (!other) - throw new ArgumentNullException_1.default(OTHER); + throw new ArgumentNullException_1.ArgumentNullException(OTHER); var result = true; Enumerator_1.forEach(other, function (v) { return result = _this.contains(v); @@ -136,14 +136,14 @@ System.register(["./LinkedNodeList", "../Exceptions/ArgumentNullException", "./E SetBase.prototype.overlaps = function (other) { var _this = this; if (!other) - throw new ArgumentNullException_1.default(OTHER); + throw new ArgumentNullException_1.ArgumentNullException(OTHER); var result = false; Enumerator_1.forEach(other, function (v) { return !(result = _this.contains(v)); }); return result; }; SetBase.prototype.setEquals = function (other) { if (!other) - throw new ArgumentNullException_1.default(OTHER); + throw new ArgumentNullException_1.ArgumentNullException(OTHER); return this.getCount() == (other instanceof SetBase ? other.getCount() : dispose_1.using(this.newUsing(other), function (o) { return o.getCount(); })) @@ -151,7 +151,7 @@ System.register(["./LinkedNodeList", "../Exceptions/ArgumentNullException", "./E }; SetBase.prototype.symmetricExceptWith = function (other) { if (!other) - throw new ArgumentNullException_1.default(OTHER); + throw new ArgumentNullException_1.ArgumentNullException(OTHER); var _ = this; if (other instanceof SetBase) { Enumerator_1.forEach(other, function (v) { @@ -187,7 +187,7 @@ System.register(["./LinkedNodeList", "../Exceptions/ArgumentNullException", "./E SetBase.prototype.getEnumerator = function () { var s = this._set; return s && this.getCount() - ? LinkedNodeList_1.default.valueEnumeratorFrom(s) + ? LinkedNodeList_1.LinkedNodeList.valueEnumeratorFrom(s) : Enumerator_1.empty; }; SetBase.prototype.forEach = function (action, useCopy) { @@ -211,7 +211,8 @@ System.register(["./LinkedNodeList", "../Exceptions/ArgumentNullException", "./E return this._removeNode(s && s.last); }; return SetBase; - }(CollectionBase_1.default)); + }(CollectionBase_1.CollectionBase)); + exports_1("SetBase", SetBase); exports_1("default",SetBase); } } diff --git a/dist/system/System/Collections/SetBase.js.map b/dist/system/System/Collections/SetBase.js.map index 74426328..bdd703f7 100644 --- a/dist/system/System/Collections/SetBase.js.map +++ b/dist/system/System/Collections/SetBase.js.map @@ -1 +1 @@ -{"version":3,"file":"SetBase.js","sourceRoot":"","sources":["../../../../source/System/Collections/SetBase.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"SetBase.js","sourceRoot":"","sources":["../../../../source/System/Collections/SetBase.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/system/System/Collections/Sorting/KeySortedContext.d.ts b/dist/system/System/Collections/Sorting/KeySortedContext.d.ts index 36822f6a..4de93bc7 100644 --- a/dist/system/System/Collections/Sorting/KeySortedContext.d.ts +++ b/dist/system/System/Collections/Sorting/KeySortedContext.d.ts @@ -1,16 +1,15 @@ -/// -/// -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import SortContext from "./SortContext"; -export default class KeySortedContext extends SortContext { +import { SortContext } from "./SortContext"; +import { Comparison, Selector } from "../../FunctionTypes"; +import { Comparable } from "../../IComparable"; +import { IComparer } from "../../IComparer"; +import { Order } from "./Order"; +export declare class KeySortedContext extends SortContext { protected _keySelector: Selector; constructor(next: IComparer, _keySelector: Selector, order?: Order, comparer?: Comparison); compare(a: T, b: T): number; } +export default KeySortedContext; diff --git a/dist/system/System/Collections/Sorting/KeySortedContext.js b/dist/system/System/Collections/Sorting/KeySortedContext.js index 09d9e383..24e4debb 100644 --- a/dist/system/System/Collections/Sorting/KeySortedContext.js +++ b/dist/system/System/Collections/Sorting/KeySortedContext.js @@ -3,7 +3,7 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ System.register(["../../Compare", "./SortContext", "../../Functions"], function(exports_1, context_1) { - 'use strict'; + "use strict"; var __moduleName = context_1 && context_1.id; var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; @@ -34,7 +34,7 @@ System.register(["../../Compare", "./SortContext", "../../Functions"], function( } KeySortedContext.prototype.compare = function (a, b) { var _ = this, ks = _._keySelector; - if (!ks || ks == Functions_1.default.Identity) + if (!ks || ks == Functions_1.Functions.Identity) return _super.prototype.compare.call(this, a, b); var d = Values.compare(ks(a), ks(b)); if (d == 0 && _._next) @@ -42,8 +42,9 @@ System.register(["../../Compare", "./SortContext", "../../Functions"], function( return _._order * d; }; return KeySortedContext; - }(SortContext_1.default)); - exports_1("default", KeySortedContext); + }(SortContext_1.SortContext)); + exports_1("KeySortedContext", KeySortedContext); + exports_1("default",KeySortedContext); } } }); diff --git a/dist/system/System/Collections/Sorting/KeySortedContext.js.map b/dist/system/System/Collections/Sorting/KeySortedContext.js.map index 640415f4..3ceccff6 100644 --- a/dist/system/System/Collections/Sorting/KeySortedContext.js.map +++ b/dist/system/System/Collections/Sorting/KeySortedContext.js.map @@ -1 +1 @@ -{"version":3,"file":"KeySortedContext.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Sorting/KeySortedContext.ts"],"names":[],"mappings":"AAAA;;;GAGG;;IAQH,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;YAMb;gBAC2D,oCAAc;gBAExE,0BACC,IAAiB,EACP,YAA6B,EACvC,KAA6B,EAC7B,QAAuC;oBADvC,qBAA6B,GAA7B,SAA6B;oBAC7B,wBAAuC,GAAvC,WAAyB,MAAM,CAAC,OAAO;oBAEvC,kBAAM,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;oBAJnB,iBAAY,GAAZ,YAAY,CAAiB;gBAKxC,CAAC;gBAED,kCAAO,GAAP,UAAQ,CAAG,EAAE,CAAG;oBAEf,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,YAAY,CAAC;oBAClC,EAAE,CAAA,CAAC,CAAC,EAAE,IAAI,EAAE,IAAE,mBAAS,CAAC,QAAQ,CAAC;wBAAC,MAAM,CAAC,gBAAK,CAAC,OAAO,YAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAE7D,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAM,EAAE,CAAC,CAAC,CAAC,EAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC/C,EAAE,CAAA,CAAC,CAAC,IAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;wBAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBACjD,MAAM,CAAC,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC;gBACnB,CAAC;gBACF,uBAAC;YAAD,CAAC,AArBD,CAC2D,qBAAW,GAoBrE;YArBD,sCAqBC,CAAA"} \ No newline at end of file +{"version":3,"file":"KeySortedContext.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Sorting/KeySortedContext.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;YAUH;gBAAkE,oCAAc;gBAE/E,0BACC,IAAiB,EACP,YAA6B,EACvC,KAA6B,EAC7B,QAAuC;oBADvC,qBAA6B,GAA7B,SAA6B;oBAC7B,wBAAuC,GAAvC,WAAyB,MAAM,CAAC,OAAO;oBAEvC,kBAAM,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;oBAJnB,iBAAY,GAAZ,YAAY,CAAiB;gBAKxC,CAAC;gBAED,kCAAO,GAAP,UAAQ,CAAG,EAAE,CAAG;oBAEf,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,YAAY,CAAC;oBAClC,EAAE,CAAA,CAAC,CAAC,EAAE,IAAI,EAAE,IAAE,qBAAS,CAAC,QAAQ,CAAC;wBAAC,MAAM,CAAC,gBAAK,CAAC,OAAO,YAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAE7D,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAM,EAAE,CAAC,CAAC,CAAC,EAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC/C,EAAE,CAAA,CAAC,CAAC,IAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;wBAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBACjD,MAAM,CAAC,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC;gBACnB,CAAC;gBACF,uBAAC;YAAD,CAAC,AApBD,CAAkE,yBAAW,GAoB5E;YApBD,+CAoBC,CAAA;YAED,oBAAe,gBAAgB,EAAC"} \ No newline at end of file diff --git a/dist/system/System/Collections/Sorting/SortContext.d.ts b/dist/system/System/Collections/Sorting/SortContext.d.ts index b459e302..63118bbb 100644 --- a/dist/system/System/Collections/Sorting/SortContext.d.ts +++ b/dist/system/System/Collections/Sorting/SortContext.d.ts @@ -1,12 +1,11 @@ -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -export default class SortContext implements IComparer { +import { Comparison } from "../../FunctionTypes"; +import { IComparer } from "../../IComparer"; +import { Order } from "./Order"; +export declare class SortContext implements IComparer { protected _next: IComparer; protected _comparer: Comparison; protected _order: Order; @@ -15,3 +14,4 @@ export default class SortContext implements IComparer { generateSortedIndexes(source: T[]): number[]; compare(a: T, b: T): number; } +export default SortContext; diff --git a/dist/system/System/Collections/Sorting/SortContext.js b/dist/system/System/Collections/Sorting/SortContext.js index bb6a5ce0..697a3e63 100644 --- a/dist/system/System/Collections/Sorting/SortContext.js +++ b/dist/system/System/Collections/Sorting/SortContext.js @@ -3,7 +3,7 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ System.register(["../../Compare"], function(exports_1, context_1) { - 'use strict'; + "use strict"; var __moduleName = context_1 && context_1.id; var Values; var SortContext; @@ -43,7 +43,8 @@ System.register(["../../Compare"], function(exports_1, context_1) { }; return SortContext; }()); - exports_1("default", SortContext); + exports_1("SortContext", SortContext); + exports_1("default",SortContext); } } }); diff --git a/dist/system/System/Collections/Sorting/SortContext.js.map b/dist/system/System/Collections/Sorting/SortContext.js.map index 7326a1aa..422dd37c 100644 --- a/dist/system/System/Collections/Sorting/SortContext.js.map +++ b/dist/system/System/Collections/Sorting/SortContext.js.map @@ -1 +1 @@ -{"version":3,"file":"SortContext.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Sorting/SortContext.ts"],"names":[],"mappings":"AAAA;;;GAGG;;IAMH,YAAY,CAAC;;;;;;;;;;YAIb;gBAWC,qBACW,KAAkB,EAClB,SAAwC,EACxC,MAA8B;oBADxC,yBAAkD,GAAlD,YAAoC,MAAM,CAAC,OAAO;oBAClD,sBAAwC,GAAxC,UAAwC;oBAF9B,UAAK,GAAL,KAAK,CAAa;oBAClB,cAAS,GAAT,SAAS,CAA+B;oBACxC,WAAM,GAAN,MAAM,CAAwB;gBAEzC,CAAC;gBARD,sBAAI,8BAAK;yBAAT,cACE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;;;mBAAA;gBAevB,2CAAqB,GAArB,UAAsB,MAAU;oBAAhC,iBAMC;oBAJA,EAAE,CAAA,CAAC,MAAM,IAAE,IAAI,CAAC;wBAAC,MAAM,CAAC,EAAE,CAAC;oBAC3B,IAAI,MAAM,GAAY,MAAM,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC,IAAG,OAAA,CAAC,EAAD,CAAC,CAAC,CAAC;oBAC5C,MAAM,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,KAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAlC,CAAkC,CAAC,CAAC;oBAC1D,MAAM,CAAC,MAAM,CAAC;gBACf,CAAC;gBAQD,6BAAO,GAAP,UAAQ,CAAG,EAAE,CAAG;oBAEf,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC1B,EAAE,CAAA,CAAC,CAAC,IAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;wBAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBACjD,MAAM,CAAC,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC;gBACnB,CAAC;gBACF,kBAAC;YAAD,CAAC,AA7CD,IA6CC;YA7CD,iCA6CC,CAAA"} \ No newline at end of file +{"version":3,"file":"SortContext.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Sorting/SortContext.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;YAQH;gBAUC,qBACW,KAAkB,EAClB,SAAwC,EACxC,MAA8B;oBADxC,yBAAkD,GAAlD,YAAoC,MAAM,CAAC,OAAO;oBAClD,sBAAwC,GAAxC,UAAwC;oBAF9B,UAAK,GAAL,KAAK,CAAa;oBAClB,cAAS,GAAT,SAAS,CAA+B;oBACxC,WAAM,GAAN,MAAM,CAAwB;gBAEzC,CAAC;gBARD,sBAAI,8BAAK;yBAAT,cACE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;;;mBAAA;gBAevB,2CAAqB,GAArB,UAAsB,MAAU;oBAAhC,iBAMC;oBAJA,EAAE,CAAA,CAAC,MAAM,IAAE,IAAI,CAAC;wBAAC,MAAM,CAAC,EAAE,CAAC;oBAC3B,IAAI,MAAM,GAAY,MAAM,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC,IAAG,OAAA,CAAC,EAAD,CAAC,CAAC,CAAC;oBAC5C,MAAM,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,KAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAlC,CAAkC,CAAC,CAAC;oBAC1D,MAAM,CAAC,MAAM,CAAC;gBACf,CAAC;gBAQD,6BAAO,GAAP,UAAQ,CAAG,EAAE,CAAG;oBAEf,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC1B,EAAE,CAAA,CAAC,CAAC,IAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;wBAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBACjD,MAAM,CAAC,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC;gBACnB,CAAC;gBACF,kBAAC;YAAD,CAAC,AA5CD,IA4CC;YA5CD,qCA4CC,CAAA;YAED,oBAAe,WAAW,EAAC"} \ No newline at end of file diff --git a/dist/system/System/Compare.d.ts b/dist/system/System/Compare.d.ts index 1d12a4b3..c4be772a 100644 --- a/dist/system/System/Compare.d.ts +++ b/dist/system/System/Compare.d.ts @@ -1,10 +1,10 @@ -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { Primitive } from "./Primitive"; +import { IComparable } from "./IComparable"; +import { CompareResult } from "./CompareResult"; export declare function areEqual(a: any, b: any, strict?: boolean): boolean; export declare function compare(a: IComparable, b: IComparable): number; export declare function compare(a: T, b: T, strict?: boolean): CompareResult; diff --git a/dist/system/System/Compare.js b/dist/system/System/Compare.js index 9607da96..d57a8ad5 100644 --- a/dist/system/System/Compare.js +++ b/dist/system/System/Compare.js @@ -18,9 +18,9 @@ System.register(["./Types"], function(exports_1, context_1) { if (strict === void 0) { strict = true; } if (areEqual(a, b, strict)) return 0; - if (a && Types_1.default.hasMember(a, COMPARE_TO)) + if (a && Types_1.Type.hasMember(a, COMPARE_TO)) return a.compareTo(b); - else if (b && Types_1.default.hasMember(b, COMPARE_TO)) + else if (b && Types_1.Type.hasMember(b, COMPARE_TO)) return -b.compareTo(a); if (a > b || strict && (a === 0 && b == 0 || a === null && b === VOID0)) return 1; @@ -37,15 +37,15 @@ System.register(["./Types"], function(exports_1, context_1) { if (a === null || a === VOID0 || b == null || b === VOID0) { if (!nullEquivalency) return false; - if (Types_1.default.isObject(a)) { + if (Types_1.Type.isObject(a)) { return !Object.keys(a).length; } - if (Types_1.default.isObject(b)) { + if (Types_1.Type.isObject(b)) { return !Object.keys(b).length; } return (a === null || a === VOID0) && (b == null || b === VOID0); } - if (Types_1.default.isObject(a) && Types_1.default.isObject(b)) { + if (Types_1.Type.isObject(a) && Types_1.Type.isObject(b)) { var aKeys = Object.keys(a), bKeys = Object.keys(b), len = aKeys.length; if (len != bKeys.length) return false; @@ -74,7 +74,7 @@ System.register(["./Types"], function(exports_1, context_1) { Types_1 = Types_1_1; }], execute: function() { - isTrueNaN = Types_1.default.isTrueNaN; + isTrueNaN = Types_1.Type.isTrueNaN; VOID0 = void 0; COMPARE_TO = "compareTo"; } diff --git a/dist/system/System/Compare.js.map b/dist/system/System/Compare.js.map index aee15995..c959956f 100644 --- a/dist/system/System/Compare.js.map +++ b/dist/system/System/Compare.js.map @@ -1 +1 @@ -{"version":3,"file":"Compare.js","sourceRoot":"","sources":["../../../source/System/Compare.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Compare.js","sourceRoot":"","sources":["../../../source/System/Compare.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/system/System/Diagnostics/Stopwatch.d.ts b/dist/system/System/Diagnostics/Stopwatch.d.ts index b0bd97a1..e352f2e4 100644 --- a/dist/system/System/Diagnostics/Stopwatch.d.ts +++ b/dist/system/System/Diagnostics/Stopwatch.d.ts @@ -1,9 +1,9 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import TimeSpan from "../Time/TimeSpan"; +import { TimeSpan } from "../Time/TimeSpan"; +import { ITimer } from "../Timers/ITimer"; export default class Stopwatch implements ITimer { static getTimestampMilliseconds(): number; private _elapsed; diff --git a/dist/system/System/Diagnostics/Stopwatch.js b/dist/system/System/Diagnostics/Stopwatch.js index 9bd230c6..2f9ade44 100644 --- a/dist/system/System/Diagnostics/Stopwatch.js +++ b/dist/system/System/Diagnostics/Stopwatch.js @@ -3,7 +3,7 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ System.register(["../Time/TimeSpan"], function(exports_1, context_1) { - 'use strict'; + "use strict"; var __moduleName = context_1 && context_1.id; var TimeSpan_1; var Stopwatch; @@ -38,7 +38,7 @@ System.register(["../Time/TimeSpan"], function(exports_1, context_1) { Stopwatch.measure = function (closure) { var start = getTimestampMilliseconds(); closure(); - return new TimeSpan_1.default(getTimestampMilliseconds() - start); + return new TimeSpan_1.TimeSpan(getTimestampMilliseconds() - start); }; Stopwatch.prototype.start = function () { var _ = this; @@ -68,10 +68,10 @@ System.register(["../Time/TimeSpan"], function(exports_1, context_1) { var e = t - s; _._startTimeStamp = t; _._elapsed += e; - return new TimeSpan_1.default(e); + return new TimeSpan_1.TimeSpan(e); } else - return TimeSpan_1.default.zero; + return TimeSpan_1.TimeSpan.zero; }; Object.defineProperty(Stopwatch.prototype, "currentLapMilliseconds", { get: function () { @@ -85,8 +85,8 @@ System.register(["../Time/TimeSpan"], function(exports_1, context_1) { Object.defineProperty(Stopwatch.prototype, "currentLap", { get: function () { return this._isRunning - ? new TimeSpan_1.default(this.currentLapMilliseconds) - : TimeSpan_1.default.zero; + ? new TimeSpan_1.TimeSpan(this.currentLapMilliseconds) + : TimeSpan_1.TimeSpan.zero; }, enumerable: true, configurable: true @@ -104,7 +104,7 @@ System.register(["../Time/TimeSpan"], function(exports_1, context_1) { }); Object.defineProperty(Stopwatch.prototype, "elapsed", { get: function () { - return new TimeSpan_1.default(this.elapsedMilliseconds); + return new TimeSpan_1.TimeSpan(this.elapsedMilliseconds); }, enumerable: true, configurable: true diff --git a/dist/system/System/Diagnostics/Stopwatch.js.map b/dist/system/System/Diagnostics/Stopwatch.js.map index 9b5f842f..a7f87ce0 100644 --- a/dist/system/System/Diagnostics/Stopwatch.js.map +++ b/dist/system/System/Diagnostics/Stopwatch.js.map @@ -1 +1 @@ -{"version":3,"file":"Stopwatch.js","sourceRoot":"","sources":["../../../../source/System/Diagnostics/Stopwatch.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Stopwatch.js","sourceRoot":"","sources":["../../../../source/System/Diagnostics/Stopwatch.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/system/System/Disposable/DisposableBase.d.ts b/dist/system/System/Disposable/DisposableBase.d.ts index 1acd883f..509f3cf0 100644 --- a/dist/system/System/Disposable/DisposableBase.d.ts +++ b/dist/system/System/Disposable/DisposableBase.d.ts @@ -1,9 +1,9 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -declare abstract class DisposableBase implements IDisposableAware { +import { IDisposableAware } from "./IDisposableAware"; +export declare abstract class DisposableBase implements IDisposableAware { private _finalizer; constructor(_finalizer?: () => void); private _wasDisposed; diff --git a/dist/system/System/Disposable/DisposableBase.js b/dist/system/System/Disposable/DisposableBase.js index 4836815c..79824d4c 100644 --- a/dist/system/System/Disposable/DisposableBase.js +++ b/dist/system/System/Disposable/DisposableBase.js @@ -2,8 +2,8 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -System.register(['./ObjectDisposedException'], function(exports_1, context_1) { - 'use strict'; +System.register(["./ObjectDisposedException"], function(exports_1, context_1) { + "use strict"; var __moduleName = context_1 && context_1.id; var ObjectDisposedException_1; var DisposableBase; @@ -28,7 +28,7 @@ System.register(['./ObjectDisposedException'], function(exports_1, context_1) { DisposableBase.prototype.throwIfDisposed = function (message, objectName) { if (objectName === void 0) { objectName = this._disposableObjectName; } if (this._wasDisposed) - throw new ObjectDisposedException_1.default(objectName, message); + throw new ObjectDisposedException_1.ObjectDisposedException(objectName, message); return true; }; DisposableBase.prototype.dispose = function () { @@ -47,6 +47,7 @@ System.register(['./ObjectDisposedException'], function(exports_1, context_1) { DisposableBase.prototype._onDispose = function () { }; return DisposableBase; }()); + exports_1("DisposableBase", DisposableBase); exports_1("default",DisposableBase); } } diff --git a/dist/system/System/Disposable/DisposableBase.js.map b/dist/system/System/Disposable/DisposableBase.js.map index dad36689..500d2393 100644 --- a/dist/system/System/Disposable/DisposableBase.js.map +++ b/dist/system/System/Disposable/DisposableBase.js.map @@ -1 +1 @@ -{"version":3,"file":"DisposableBase.js","sourceRoot":"","sources":["../../../../source/System/Disposable/DisposableBase.ts"],"names":[],"mappings":"AAAA;;;GAGG;;IAGH,YAAY,CAAC;;;;;;;;;;YAIb;gBAGC,wBAAoB,UAAsB;oBAAtB,eAAU,GAAV,UAAU,CAAY;oBAIlC,iBAAY,GAAW,KAAK,CAAC;gBAFrC,CAAC;gBAGD,sBAAI,uCAAW;yBAAf;wBAEC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;oBAC1B,CAAC;;;mBAAA;gBAKS,wCAAe,GAAzB,UACC,OAAe,EACf,UAA8C;oBAA9C,0BAA8C,GAA9C,aAAoB,IAAI,CAAC,qBAAqB;oBAE9C,EAAE,CAAA,CAAC,IAAI,CAAC,YAAY,CAAC;wBACpB,MAAM,IAAI,iCAAuB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;oBACxD,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBAGD,gCAAO,GAAP;oBAEC,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CACnB,CAAC;wBAGA,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC;wBACtB,IACA,CAAC;4BACA,CAAC,CAAC,UAAU,EAAE,CAAC;wBAChB,CAAC;gCAED,CAAC;4BACA,EAAE,CAAA,CAAC,CAAC,CAAC,UAAU,CAAC;gCACf,CAAC,CAAC,UAAU,EAAE,CAAC;wBACjB,CAAC;oBACF,CAAC;gBACF,CAAC;gBAGS,mCAAU,GAApB,cAA8B,CAAC;gBAEhC,qBAAC;YAAD,CAAC,AAjDD,IAiDC;YAED,oBAAe,cAAc,EAAC"} \ No newline at end of file +{"version":3,"file":"DisposableBase.js","sourceRoot":"","sources":["../../../../source/System/Disposable/DisposableBase.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;YAKH;gBAGC,wBAAoB,UAAsB;oBAAtB,eAAU,GAAV,UAAU,CAAY;oBAIlC,iBAAY,GAAW,KAAK,CAAC;gBAFrC,CAAC;gBAGD,sBAAI,uCAAW;yBAAf;wBAEC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;oBAC1B,CAAC;;;mBAAA;gBAKS,wCAAe,GAAzB,UACC,OAAe,EACf,UAA8C;oBAA9C,0BAA8C,GAA9C,aAAoB,IAAI,CAAC,qBAAqB;oBAE9C,EAAE,CAAA,CAAC,IAAI,CAAC,YAAY,CAAC;wBACpB,MAAM,IAAI,iDAAuB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;oBACxD,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBAGD,gCAAO,GAAP;oBAEC,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CACnB,CAAC;wBAGA,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC;wBACtB,IACA,CAAC;4BACA,CAAC,CAAC,UAAU,EAAE,CAAC;wBAChB,CAAC;gCAED,CAAC;4BACA,EAAE,CAAA,CAAC,CAAC,CAAC,UAAU,CAAC;gCACf,CAAC,CAAC,UAAU,EAAE,CAAC;wBACjB,CAAC;oBACF,CAAC;gBACF,CAAC;gBAGS,mCAAU,GAApB,cAA8B,CAAC;gBAEhC,qBAAC;YAAD,CAAC,AAjDD,IAiDC;YAjDD,2CAiDC,CAAA;YAED,oBAAe,cAAc,EAAC"} \ No newline at end of file diff --git a/dist/system/System/Disposable/ObjectDisposedException.d.ts b/dist/system/System/Disposable/ObjectDisposedException.d.ts index 66e40831..8af0e485 100644 --- a/dist/system/System/Disposable/ObjectDisposedException.d.ts +++ b/dist/system/System/Disposable/ObjectDisposedException.d.ts @@ -1,15 +1,16 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -import Exception from '../Exception'; -import InvalidOperationException from '../Exceptions/InvalidOperationException'; -export default class ObjectDisposedException extends InvalidOperationException { +import { Exception } from "../Exception"; +import { InvalidOperationException } from "../Exceptions/InvalidOperationException"; +import { IDisposableAware } from "./IDisposableAware"; +export declare class ObjectDisposedException extends InvalidOperationException { objectName: string; constructor(objectName: string, message?: string, innerException?: Exception); protected getName(): string; toString(): string; static throwIfDisposed(disposable: IDisposableAware, objectName?: string, message?: string): void; } +export default ObjectDisposedException; diff --git a/dist/system/System/Disposable/ObjectDisposedException.js b/dist/system/System/Disposable/ObjectDisposedException.js index 43bb9c87..99bfdaf4 100644 --- a/dist/system/System/Disposable/ObjectDisposedException.js +++ b/dist/system/System/Disposable/ObjectDisposedException.js @@ -3,8 +3,8 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -System.register(['../Exceptions/InvalidOperationException'], function(exports_1, context_1) { - 'use strict'; +System.register(["../Exceptions/InvalidOperationException"], function(exports_1, context_1) { + "use strict"; var __moduleName = context_1 && context_1.id; var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; @@ -42,8 +42,9 @@ System.register(['../Exceptions/InvalidOperationException'], function(exports_1, throw new ObjectDisposedException(objectName, message); }; return ObjectDisposedException; - }(InvalidOperationException_1.default)); - exports_1("default", ObjectDisposedException); + }(InvalidOperationException_1.InvalidOperationException)); + exports_1("ObjectDisposedException", ObjectDisposedException); + exports_1("default",ObjectDisposedException); } } }); diff --git a/dist/system/System/Disposable/ObjectDisposedException.js.map b/dist/system/System/Disposable/ObjectDisposedException.js.map index d09e454d..49037714 100644 --- a/dist/system/System/Disposable/ObjectDisposedException.js.map +++ b/dist/system/System/Disposable/ObjectDisposedException.js.map @@ -1 +1 @@ -{"version":3,"file":"ObjectDisposedException.js","sourceRoot":"","sources":["../../../../source/System/Disposable/ObjectDisposedException.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;IAGH,YAAY,CAAC;;;;;;;;QAMP,IAAI;;;;;;;YAAJ,IAAI,GAAU,yBAAyB,CAAC;YAE9C;gBAEQ,2CAAyB;gBAMhC,iCACC,UAAiB,EACjB,OAAqB,EACrB,cAA+B;oBAD/B,uBAAqB,GAArB,cAAqB;oBACrB,8BAA+B,GAA/B,qBAA+B;oBAE/B,kBAAM,OAAO,EAAE,cAAc,EAAE,UAAC,CAAC;wBAChC,CAAC,CAAC,UAAU,GAAG,UAAU,CAAC;oBAC3B,CAAC,CAAC,CAAC;gBACJ,CAAC;gBAGS,yCAAO,GAAjB;oBAEC,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBAED,0CAAQ,GAAR;oBAEC,IAAI,CAAC,GAAG,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC;oBACnC,KAAK,GAAG,KAAK,GAAG,CAAC,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAE1C,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC;gBACtD,CAAC;gBAEM,uCAAe,GAAtB,UACC,UAA2B,EAC3B,UAAkB,EAClB,OAAe;oBAEf,EAAE,CAAA,CAAC,UAAU,CAAC,WAAW,CAAC;wBACzB,MAAM,IAAI,uBAAuB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBACzD,CAAC;gBAEF,8BAAC;YAAD,CAAC,AAzCD,CAEQ,mCAAyB,GAuChC;YAzCD,6CAyCC,CAAA"} \ No newline at end of file +{"version":3,"file":"ObjectDisposedException.js","sourceRoot":"","sources":["../../../../source/System/Disposable/ObjectDisposedException.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;;;;;;;;QAOG,IAAI;;;;;;;YAAJ,IAAI,GAAU,yBAAyB,CAAC;YAE9C;gBACQ,2CAAyB;gBAMhC,iCACC,UAAiB,EACjB,OAAqB,EACrB,cAA+B;oBAD/B,uBAAqB,GAArB,cAAqB;oBACrB,8BAA+B,GAA/B,qBAA+B;oBAE/B,kBAAM,OAAO,EAAE,cAAc,EAAE,UAAC,CAAC;wBAChC,CAAC,CAAC,UAAU,GAAG,UAAU,CAAC;oBAC3B,CAAC,CAAC,CAAC;gBACJ,CAAC;gBAGS,yCAAO,GAAjB;oBAEC,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBAED,0CAAQ,GAAR;oBAEC,IAAI,CAAC,GAAG,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC;oBACnC,KAAK,GAAG,KAAK,GAAG,CAAC,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAE1C,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC;gBACtD,CAAC;gBAEM,uCAAe,GAAtB,UACC,UAA2B,EAC3B,UAAkB,EAClB,OAAe;oBAEf,EAAE,CAAA,CAAC,UAAU,CAAC,WAAW,CAAC;wBACzB,MAAM,IAAI,uBAAuB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBACzD,CAAC;gBAEF,8BAAC;YAAD,CAAC,AAxCD,CACQ,qDAAyB,GAuChC;YAxCD,6DAwCC,CAAA;YAED,oBAAe,uBAAuB,EAAC"} \ No newline at end of file diff --git a/dist/system/System/Disposable/ObjectPool.d.ts b/dist/system/System/Disposable/ObjectPool.d.ts index af854543..1dbbcbf5 100644 --- a/dist/system/System/Disposable/ObjectPool.d.ts +++ b/dist/system/System/Disposable/ObjectPool.d.ts @@ -4,8 +4,8 @@ * Based upon ObjectPool from Parallel Extension Extras and other ObjectPool implementations. * Uses .add(T) and .take():T */ -import DisposableBase from "./DisposableBase"; -export default class ObjectPool extends DisposableBase { +import { DisposableBase } from "./DisposableBase"; +export declare class ObjectPool extends DisposableBase { private _maxSize; private _generator; private _pool; @@ -28,3 +28,4 @@ export default class ObjectPool extends DisposableBase { add(o: T): void; take(): T; } +export default ObjectPool; diff --git a/dist/system/System/Disposable/ObjectPool.js b/dist/system/System/Disposable/ObjectPool.js index adece6b5..37592509 100644 --- a/dist/system/System/Disposable/ObjectPool.js +++ b/dist/system/System/Disposable/ObjectPool.js @@ -38,17 +38,17 @@ System.register(["./dispose", "./DisposableBase", "../Tasks/TaskHandler", "../Ex this._generator = _generator; this.autoClearTimeout = 5000; if (isNaN(_maxSize) || _maxSize < 1) - throw new ArgumentOutOfRangeException_1.default(_MAX_SIZE, _maxSize, MUST_BE_GT1); + throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(_MAX_SIZE, _maxSize, MUST_BE_GT1); if (_maxSize > ABSOLUTE_MAX_SIZE) - throw new ArgumentOutOfRangeException_1.default(_MAX_SIZE, _maxSize, MUST_BE_LTM); + throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(_MAX_SIZE, _maxSize, MUST_BE_LTM); this._localAbsMaxSize = Math.min(_maxSize * 2, ABSOLUTE_MAX_SIZE); var _ = this; _._disposableObjectName = OBJECT_POOL; _._pool = []; - _._trimmer = new TaskHandler_1.default(function () { return _._trim(); }); + _._trimmer = new TaskHandler_1.TaskHandler(function () { return _._trim(); }); var clear = function () { return _._clear(); }; - _._flusher = new TaskHandler_1.default(clear); - _._autoFlusher = new TaskHandler_1.default(clear); + _._flusher = new TaskHandler_1.TaskHandler(clear); + _._autoFlusher = new TaskHandler_1.TaskHandler(clear); } Object.defineProperty(ObjectPool.prototype, "maxSize", { get: function () { @@ -68,7 +68,7 @@ System.register(["./dispose", "./DisposableBase", "../Tasks/TaskHandler", "../Ex ObjectPool.prototype._trim = function () { var pool = this._pool; while (pool.length > this._maxSize) { - dispose_1.default.withoutException(pool.pop()); + dispose_1.dispose.withoutException(pool.pop()); } }; ObjectPool.prototype.trim = function (defer) { @@ -80,7 +80,7 @@ System.register(["./dispose", "./DisposableBase", "../Tasks/TaskHandler", "../Ex _._trimmer.cancel(); _._flusher.cancel(); _._autoFlusher.cancel(); - dispose_1.default.these(p, true); + dispose_1.dispose.these(p, true); p.length = 0; }; ObjectPool.prototype.clear = function (defer) { @@ -103,7 +103,7 @@ System.register(["./dispose", "./DisposableBase", "../Tasks/TaskHandler", "../Ex _super.prototype._onDispose.call(this); var _ = this; _._generator = null; - dispose_1.default(_._trimmer, _._flusher, _._autoFlusher); + dispose_1.dispose(_._trimmer, _._flusher, _._autoFlusher); _._trimmer = null; _._flusher = null; _._autoFlusher = null; @@ -121,7 +121,7 @@ System.register(["./dispose", "./DisposableBase", "../Tasks/TaskHandler", "../Ex var _ = this; _.throwIfDisposed(); if (_._pool.length >= _._localAbsMaxSize) { - dispose_1.default(o); + dispose_1.dispose(o); } else { _._pool.push(o); @@ -142,8 +142,9 @@ System.register(["./dispose", "./DisposableBase", "../Tasks/TaskHandler", "../Ex return e; }; return ObjectPool; - }(DisposableBase_1.default)); - exports_1("default", ObjectPool); + }(DisposableBase_1.DisposableBase)); + exports_1("ObjectPool", ObjectPool); + exports_1("default",ObjectPool); } } }); diff --git a/dist/system/System/Disposable/ObjectPool.js.map b/dist/system/System/Disposable/ObjectPool.js.map index a211c585..b17f6d4f 100644 --- a/dist/system/System/Disposable/ObjectPool.js.map +++ b/dist/system/System/Disposable/ObjectPool.js.map @@ -1 +1 @@ -{"version":3,"file":"ObjectPool.js","sourceRoot":"","sources":["../../../../source/System/Disposable/ObjectPool.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ObjectPool.js","sourceRoot":"","sources":["../../../../source/System/Disposable/ObjectPool.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/system/System/Disposable/dispose.d.ts b/dist/system/System/Disposable/dispose.d.ts index ea01844c..e1a6bf42 100644 --- a/dist/system/System/Disposable/dispose.d.ts +++ b/dist/system/System/Disposable/dispose.d.ts @@ -1,9 +1,8 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { IDisposable } from "./IDisposable"; export declare function dispose(...disposables: IDisposable[]): void; export declare module dispose { function deferred(...disposables: IDisposable[]): void; diff --git a/dist/system/System/Disposable/dispose.js b/dist/system/System/Disposable/dispose.js index cfe10cc4..a4b12fa7 100644 --- a/dist/system/System/Disposable/dispose.js +++ b/dist/system/System/Disposable/dispose.js @@ -3,7 +3,7 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ System.register(["../Types"], function(exports_1, context_1) { - 'use strict'; + "use strict"; var __moduleName = context_1 && context_1.id; var Types_1; var dispose; @@ -25,7 +25,7 @@ System.register(["../Types"], function(exports_1, context_1) { } exports_1("using", using); function disposeSingle(disposable, trapExceptions) { - if (disposable && Types_1.default.of(disposable).member('dispose').isFunction) { + if (disposable && Types_1.Type.of(disposable).member('dispose').isFunction) { if (trapExceptions) { try { disposable.dispose(); diff --git a/dist/system/System/Disposable/dispose.js.map b/dist/system/System/Disposable/dispose.js.map index a1929490..e8f5879e 100644 --- a/dist/system/System/Disposable/dispose.js.map +++ b/dist/system/System/Disposable/dispose.js.map @@ -1 +1 @@ -{"version":3,"file":"dispose.js","sourceRoot":"","sources":["../../../../source/System/Disposable/dispose.ts"],"names":[],"mappings":"AAAA;;;GAGG;;IAIH,YAAY,CAAC;;;;IAYb;QAAwB,qBAA4B;aAA5B,WAA4B,CAA5B,sBAA4B,CAA5B,IAA4B;YAA5B,oCAA4B;;QAGnD,oBAAoB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAJD,6BAIC,CAAA;IA4DD,eACC,UAAsB,EACtB,OAA2C;QAE3C,IACA,CAAC;YACA,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC;gBAED,CAAC;YACA,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAClC,CAAC;IACF,CAAC;IAZD,yBAYC,CAAA;IAOD,uBACC,UAAsB,EACtB,cAAsB;QAEtB,EAAE,CAAA,CAAC,UAAU,IAAI,eAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAClE,CAAC;YACA,EAAE,CAAA,CAAC,cAAc,CAAC,CAClB,CAAC;gBACA,IACA,CAAC;oBACA,UAAU,CAAC,OAAO,EAAE,CAAC;gBACtB,CACA;gBAAA,KAAK,CAAA,CAAC,EAAE,CAAC,CACT,CAAC;oBACA,MAAM,CAAC,EAAE,CAAC;gBACX,CAAC;YACF,CAAC;YACD,IAAI;gBACH,UAAU,CAAC,OAAO,EAAE,CAAC;QACvB,CAAC;QAED,MAAM,CAAC,IAAI,CAAC;IACb,CAAC;IAKD,8BACC,WAAyB,EACzB,cAAsB,EACtB,KAAgB;QAAhB,qBAAgB,GAAhB,SAAgB;QAEhB,IAAI,UAAgB,CAAC;QACrB,IAAI,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC;QAE7B,GAAG,CAAA,CAAC,EAAE,KAAK,GAAC,GAAG,EAAE,KAAK,EAAE,EACxB,CAAC;YACA,IAAI,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;YAC9B,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC;gBAAC,QAAQ,CAAC;YACnB,EAAE,CAAA,CAAC,cAAc,CAAC,CAClB,CAAC;gBACA,IAAI,EAAE,GAAG,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACnC,EAAE,CAAA,CAAC,EAAE,CAAC,CACN,CAAC;oBACA,EAAE,CAAA,CAAC,CAAC,UAAU,CAAC;wBAAC,UAAU,GAAG,EAAE,CAAC;oBAChC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACrB,CAAC;YACF,CAAC;YACD,IAAI,CACJ,CAAC;gBACA,IAAI,OAAO,GAAG,KAAK,CAAC;gBACpB,IACA,CAAC;oBACA,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;oBAC3B,OAAO,GAAG,IAAI,CAAC;gBAChB,CAAC;wBAGD,CAAC;oBACA,EAAE,CAAA,CAAC,CAAC,OAAO,IAAI,KAAK,GAAG,CAAC,GAAC,GAAG,CAAC,CAC7B,CAAC;wBAGA,oBAAoB,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;oBACrD,CAAC;gBACF,CAAC;gBAED,EAAE,CAAA,CAAC,CAAC,OAAO,CAAC;oBAAC,KAAK,CAAC;YACpB,CAAC;QACF,CAAC;QAED,MAAM,CAAC,UAAU,CAAC;IACnB,CAAC;;;;;;;YArJD,WAAc,OAAO,EAAC,CAAC;gBAEtB;oBAAyB,qBAA4B;yBAA5B,WAA4B,CAA5B,sBAA4B,CAA5B,IAA4B;wBAA5B,oCAA4B;;oBACpD,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;gBAC7B,CAAC;gBAFe,gBAAQ,WAEvB,CAAA;gBASD;oBAAiC,qBAA4B;yBAA5B,WAA4B,CAA5B,sBAA4B,CAA5B,IAA4B;wBAA5B,oCAA4B;;oBAG5D,MAAM,CAAC,oBAAoB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;gBAChD,CAAC;gBAJe,wBAAgB,mBAI/B,CAAA;gBAQD,eAAsB,WAAyB,EAAE,cAAuB;oBAEvE,MAAM,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM;0BACrC,oBAAoB,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,cAAc,CAAC;0BACzD,IAAI,CAAC;gBACT,CAAC;gBALe,aAAK,QAKpB,CAAA;gBAED,IAAc,KAAK,CAOlB;gBAPD,WAAc,KAAK,EAAC,CAAC;oBACpB,kBAAyB,WAAyB,EAAE,KAAgB;wBAAhB,qBAAgB,GAAhB,SAAgB;wBACnE,EAAE,CAAA,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;4BACtC,EAAE,CAAA,CAAC,CAAC,CAAC,KAAK,IAAE,CAAC,CAAC,CAAC;gCAAC,KAAK,GAAG,CAAC,CAAC;4BAC1B,UAAU,CAAC,oBAAoB,EAAC,KAAK,EAAC,WAAW,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;wBAClE,CAAC;oBACF,CAAC;oBALe,cAAQ,WAKvB,CAAA;gBACF,CAAC,EAPa,KAAK,GAAL,aAAK,KAAL,aAAK,QAOlB;YAEF,CAAC,EAzCa,OAAO,GAAP,OAAO,KAAP,OAAO,QAyCpB;0CAAA;YA8GD,oBAAe,OAAO,EAAC"} \ No newline at end of file +{"version":3,"file":"dispose.js","sourceRoot":"","sources":["../../../../source/System/Disposable/dispose.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/system/System/Events/EventDispatcherBase.d.ts b/dist/system/System/Events/EventDispatcherBase.d.ts index e8e78469..46178690 100644 --- a/dist/system/System/Events/EventDispatcherBase.d.ts +++ b/dist/system/System/Events/EventDispatcherBase.d.ts @@ -1,11 +1,11 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import DisposableBase from "../Disposable/DisposableBase"; -import EventDispatcherEntry from "./EventDispatcherEntry"; +import { DisposableBase } from "../Disposable/DisposableBase"; +import { IEventListener } from "./IEventListener"; +import { EventDispatcherEntry } from "./EventDispatcherEntry"; +import { IEventDispatcher } from "./IEventDispatcher"; export interface IEventBase { type: string; target: TTarget; diff --git a/dist/system/System/Events/EventDispatcherBase.js b/dist/system/System/Events/EventDispatcherBase.js index 0624462c..eb60dfa2 100644 --- a/dist/system/System/Events/EventDispatcherBase.js +++ b/dist/system/System/Events/EventDispatcherBase.js @@ -2,15 +2,15 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -System.register(["../Utility/shallowCopy", "../Disposable/DisposableBase", "../Collections/Array/Utility", "./EventDispatcherEntry", "../Disposable/dispose"], function(exports_1, context_1) { - 'use strict'; +System.register(["../Collections/Array/Utility", "../Utility/shallowCopy", "../Disposable/DisposableBase", "../Disposable/dispose", "./EventDispatcherEntry"], function(exports_1, context_1) { + "use strict"; var __moduleName = context_1 && context_1.id; var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; - var shallowCopy_1, DisposableBase_1, AU, EventDispatcherEntry_1, dispose_1; + var AU, shallowCopy_1, DisposableBase_1, dispose_1, EventDispatcherEntry_1; var DISPOSING, DISPOSED, EventDispatcherBase; function entryFinalizer() { var p = this.params; @@ -19,20 +19,20 @@ System.register(["../Utility/shallowCopy", "../Disposable/DisposableBase", "../C } return { setters:[ + function (AU_1) { + AU = AU_1; + }, function (shallowCopy_1_1) { shallowCopy_1 = shallowCopy_1_1; }, function (DisposableBase_1_1) { DisposableBase_1 = DisposableBase_1_1; }, - function (AU_1) { - AU = AU_1; + function (dispose_1_1) { + dispose_1 = dispose_1_1; }, function (EventDispatcherEntry_1_1) { EventDispatcherEntry_1 = EventDispatcherEntry_1_1; - }, - function (dispose_1_1) { - dispose_1 = dispose_1_1; }], execute: function() { DISPOSING = 'disposing', DISPOSED = 'disposed'; @@ -47,7 +47,7 @@ System.register(["../Utility/shallowCopy", "../Disposable/DisposableBase", "../C var e = this._entries; if (!e) this._entries = e = []; - e.push(new EventDispatcherEntry_1.default(type, listener, { + e.push(new EventDispatcherEntry_1.EventDispatcherEntry(type, listener, { priority: priority || 0, dispatcher: this }, entryFinalizer)); @@ -67,7 +67,7 @@ System.register(["../Utility/shallowCopy", "../Disposable/DisposableBase", "../C }); }; EventDispatcherBase.prototype.removeEventListener = function (type, listener) { - dispose_1.default.these(this._entries.filter(function (entry) { return entry.matches(type, listener); })); + dispose_1.dispose.these(this._entries.filter(function (entry) { return entry.matches(type, listener); })); }; EventDispatcherBase.prototype.dispatchEvent = function (e, params) { var _this = this; @@ -93,7 +93,7 @@ System.register(["../Utility/shallowCopy", "../Disposable/DisposableBase", "../C entries.sort(function (a, b) { return b.params.priority - a.params.priority; }); entries.forEach(function (entry) { var newEvent = Object.create(Event); - shallowCopy_1.default(event, newEvent); + shallowCopy_1.shallowCopy(event, newEvent); newEvent.target = _this; entry.dispatch(newEvent); }); @@ -131,7 +131,7 @@ System.register(["../Utility/shallowCopy", "../Disposable/DisposableBase", "../C } }; return EventDispatcherBase; - }(DisposableBase_1.default)); + }(DisposableBase_1.DisposableBase)); exports_1("default", EventDispatcherBase); } } diff --git a/dist/system/System/Events/EventDispatcherBase.js.map b/dist/system/System/Events/EventDispatcherBase.js.map index 6e63c7c0..0ffb8213 100644 --- a/dist/system/System/Events/EventDispatcherBase.js.map +++ b/dist/system/System/Events/EventDispatcherBase.js.map @@ -1 +1 @@ -{"version":3,"file":"EventDispatcherBase.js","sourceRoot":"","sources":["../../../../source/System/Events/EventDispatcherBase.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"EventDispatcherBase.js","sourceRoot":"","sources":["../../../../source/System/Events/EventDispatcherBase.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/system/System/Events/EventDispatcherEntry.d.ts b/dist/system/System/Events/EventDispatcherEntry.d.ts index 73b2f602..b7248a12 100644 --- a/dist/system/System/Events/EventDispatcherEntry.d.ts +++ b/dist/system/System/Events/EventDispatcherEntry.d.ts @@ -1,10 +1,11 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import DisposableBase from "../Disposable/DisposableBase"; -export default class EventDispatcherEntry extends DisposableBase implements IEquatable> { +import { DisposableBase } from "../Disposable/DisposableBase"; +import { IEventListener } from "./IEventListener"; +import { IEquatable } from "../IEquatable"; +export declare class EventDispatcherEntry extends DisposableBase implements IEquatable> { type: string; listener: IEventListener; params: TParams; @@ -14,3 +15,4 @@ export default class EventDispatcherEntry extends DisposableBase implem matches(type: string, listener: IEventListener): boolean; equals(other: EventDispatcherEntry): boolean; } +export default EventDispatcherEntry; diff --git a/dist/system/System/Events/EventDispatcherEntry.js b/dist/system/System/Events/EventDispatcherEntry.js index c57bc110..1aa285d8 100644 --- a/dist/system/System/Events/EventDispatcherEntry.js +++ b/dist/system/System/Events/EventDispatcherEntry.js @@ -3,7 +3,7 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ System.register(["../Types", "../Disposable/DisposableBase", "../Exceptions/ArgumentNullException", "../Exceptions/ArgumentException", "../Compare"], function(exports_1, context_1) { - 'use strict'; + "use strict"; var __moduleName = context_1 && context_1.id; var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; @@ -39,9 +39,9 @@ System.register(["../Types", "../Disposable/DisposableBase", "../Exceptions/Argu this.listener = listener; this.params = params; if (!listener) - throw new ArgumentNullException_1.default('listener'); - if (Types_1.default.isObject(listener) && !Types_1.default.hasMemberOfType(listener, "handleEvent", Types_1.default.FUNCTION)) - throw new ArgumentException_1.default('listener', "is invalid type. Must be a function or an object with 'handleEvent'."); + throw new ArgumentNullException_1.ArgumentNullException('listener'); + if (Types_1.Type.isObject(listener) && !Types_1.Type.hasMemberOfType(listener, "handleEvent", Types_1.Type.FUNCTION)) + throw new ArgumentException_1.ArgumentException('listener', "is invalid type. Must be a function or an object with 'handleEvent'."); var _ = this; _.type = type; _.listener = listener; @@ -58,7 +58,7 @@ System.register(["../Types", "../Disposable/DisposableBase", "../Exceptions/Argu return false; var l = _.listener, d = l && e.type == _.type; if (d) { - if (Types_1.default.isFunction(l)) + if (Types_1.Type.isFunction(l)) _.listener(e); else l.handleEvent(e); @@ -76,8 +76,9 @@ System.register(["../Types", "../Disposable/DisposableBase", "../Exceptions/Argu && Compare_1.areEquivalent(_.params, other.params, false); }; return EventDispatcherEntry; - }(DisposableBase_1.default)); - exports_1("default", EventDispatcherEntry); + }(DisposableBase_1.DisposableBase)); + exports_1("EventDispatcherEntry", EventDispatcherEntry); + exports_1("default",EventDispatcherEntry); } } }); diff --git a/dist/system/System/Events/EventDispatcherEntry.js.map b/dist/system/System/Events/EventDispatcherEntry.js.map index 56758acc..9f15cc43 100644 --- a/dist/system/System/Events/EventDispatcherEntry.js.map +++ b/dist/system/System/Events/EventDispatcherEntry.js.map @@ -1 +1 @@ -{"version":3,"file":"EventDispatcherEntry.js","sourceRoot":"","sources":["../../../../source/System/Events/EventDispatcherEntry.ts"],"names":[],"mappings":"AAAA;;;GAGG;;IAGH,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;YAQb;gBAEQ,wCAAc;gBAGrB,8BACQ,IAAW,EACX,QAAuB,EACvB,MAAqB,EAC5B,SAAqB;oBADrB,sBAA4B,GAA5B,aAA4B;oBAG5B,kBAAM,SAAS,CAAC,CAAC;oBALV,SAAI,GAAJ,IAAI,CAAO;oBACX,aAAQ,GAAR,QAAQ,CAAe;oBACvB,WAAM,GAAN,MAAM,CAAe;oBAK5B,EAAE,CAAA,CAAC,CAAC,QAAQ,CAAC;wBACZ,MAAM,IAAI,+BAAqB,CAAC,UAAU,CAAC,CAAC;oBAC7C,EAAE,CAAA,CAAC,eAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,aAAa,EAAE,eAAI,CAAC,QAAQ,CAAC,CAAC;wBAC3F,MAAM,IAAI,2BAAiB,CAAC,UAAU,EAAE,uEAAuE,CAAC,CAAC;oBAElH,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;oBACd,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC;oBACtB,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC;oBAClB,CAAC,CAAC,qBAAqB,GAAG,sBAAsB,CAAC;gBAClD,CAAC;gBAES,yCAAU,GAApB;oBAEC,gBAAK,CAAC,UAAU,WAAE,CAAC;oBACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACtB,CAAC;gBAOD,uCAAQ,GAAR,UAAS,CAAO;oBAEf,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,EAAE,CAAA,CAAC,CAAC,CAAC,WAAW,CAAC;wBAAC,MAAM,CAAC,KAAK,CAAC;oBAE/B,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,IAAE,CAAC,CAAC,IAAI,CAAC;oBAC5C,EAAE,CAAA,CAAC,CAAC,CAAC,CACL,CAAC;wBACA,EAAE,CAAA,CAAC,eAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;4BACf,CAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;wBACtB,IAAI;4BACmB,CAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;oBAC1C,CAAC;oBACD,MAAM,CAAC,CAAC,CAAC;gBACV,CAAC;gBAQD,sCAAO,GAAP,UAAQ,IAAW,EAAE,QAAuB;oBAE3C,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,MAAM,CAAC,CAAC,CAAC,IAAI,IAAE,IAAI;2BACf,CAAC,CAAC,QAAQ,IAAE,QAAQ,CAAC;gBAC1B,CAAC;gBAOD,qCAAM,GAAN,UAAO,KAAmC;oBAEzC,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAC,KAAK,CAAC,QAAQ,CAAC;2BACvC,uBAAa,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBAClD,CAAC;gBACF,2BAAC;YAAD,CAAC,AA5ED,CAEQ,wBAAc,GA0ErB;YA5ED,0CA4EC,CAAA"} \ No newline at end of file +{"version":3,"file":"EventDispatcherEntry.js","sourceRoot":"","sources":["../../../../source/System/Events/EventDispatcherEntry.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAUH;gBACQ,wCAAc;gBAGrB,8BACQ,IAAW,EACX,QAAuB,EACvB,MAAqB,EAC5B,SAAqB;oBADrB,sBAA4B,GAA5B,aAA4B;oBAG5B,kBAAM,SAAS,CAAC,CAAC;oBALV,SAAI,GAAJ,IAAI,CAAO;oBACX,aAAQ,GAAR,QAAQ,CAAe;oBACvB,WAAM,GAAN,MAAM,CAAe;oBAK5B,EAAE,CAAA,CAAC,CAAC,QAAQ,CAAC;wBACZ,MAAM,IAAI,6CAAqB,CAAC,UAAU,CAAC,CAAC;oBAC7C,EAAE,CAAA,CAAC,YAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,aAAa,EAAE,YAAI,CAAC,QAAQ,CAAC,CAAC;wBAC3F,MAAM,IAAI,qCAAiB,CAAC,UAAU,EAAE,uEAAuE,CAAC,CAAC;oBAElH,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;oBACd,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC;oBACtB,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC;oBAClB,CAAC,CAAC,qBAAqB,GAAG,sBAAsB,CAAC;gBAClD,CAAC;gBAES,yCAAU,GAApB;oBAEC,gBAAK,CAAC,UAAU,WAAE,CAAC;oBACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACtB,CAAC;gBAOD,uCAAQ,GAAR,UAAS,CAAO;oBAEf,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,EAAE,CAAA,CAAC,CAAC,CAAC,WAAW,CAAC;wBAAC,MAAM,CAAC,KAAK,CAAC;oBAE/B,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,IAAE,CAAC,CAAC,IAAI,CAAC;oBAC5C,EAAE,CAAA,CAAC,CAAC,CAAC,CACL,CAAC;wBACA,EAAE,CAAA,CAAC,YAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;4BACf,CAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;wBACtB,IAAI;4BACmB,CAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;oBAC1C,CAAC;oBACD,MAAM,CAAC,CAAC,CAAC;gBACV,CAAC;gBAQD,sCAAO,GAAP,UAAQ,IAAW,EAAE,QAAuB;oBAE3C,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,MAAM,CAAC,CAAC,CAAC,IAAI,IAAE,IAAI;2BACf,CAAC,CAAC,QAAQ,IAAE,QAAQ,CAAC;gBAC1B,CAAC;gBAOD,qCAAM,GAAN,UAAO,KAAmC;oBAEzC,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC;2BACxC,uBAAa,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBAClD,CAAC;gBACF,2BAAC;YAAD,CAAC,AA3ED,CACQ,+BAAc,GA0ErB;YA3ED,uDA2EC,CAAA;YAED,oBAAe,oBAAoB,EAAC"} \ No newline at end of file diff --git a/dist/system/System/Events/EventSimple.d.ts b/dist/system/System/Events/EventSimple.d.ts index f4fd3db2..58e86841 100644 --- a/dist/system/System/Events/EventSimple.d.ts +++ b/dist/system/System/Events/EventSimple.d.ts @@ -3,6 +3,7 @@ * Based on Netjs mscorlib.ts * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { IDisposable } from "../Disposable/IDisposable"; export default class EventSimple implements IDisposable { private _listeners; add(listener: T): void; diff --git a/dist/system/System/Events/EventSimple.js.map b/dist/system/System/Events/EventSimple.js.map index cca33594..361360a5 100644 --- a/dist/system/System/Events/EventSimple.js.map +++ b/dist/system/System/Events/EventSimple.js.map @@ -1 +1 @@ -{"version":3,"file":"EventSimple.js","sourceRoot":"","sources":["../../../../source/System/Events/EventSimple.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;;;;;;YAMH;gBAAA;oBAES,eAAU,GAAO,EAAE,CAAC;gBAuC7B,CAAC;gBArCA,yBAAG,GAAH,UAAI,QAAU;oBAEb,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAChC,CAAC;gBAED,4BAAM,GAAN,UAAO,QAAU;oBAEhB,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBAC9C,EAAE,CAAA,CAAC,KAAK,GAAC,CAAC,CAAC;wBAAC,MAAM,CAAC;oBACnB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAClC,CAAC;gBAED,8BAAQ,GAAR;oBAAS,gBAAe;yBAAf,WAAe,CAAf,sBAAe,CAAf,IAAe;wBAAf,+BAAe;;oBAEvB,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;oBAChC,GAAG,CAAA,CAAU,UAAS,EAAT,uBAAS,EAAT,uBAAS,EAAT,IAAS,CAAC;wBAAnB,IAAI,CAAC,kBAAA;wBAER,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;qBACf;gBACF,CAAC;gBAED,yCAAmB,GAAnB;oBAEC,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;oBAChC,MAAM,CAAC;wBAEN,GAAG,CAAA,CAAU,UAAS,EAAT,uBAAS,EAAT,uBAAS,EAAT,IAAS,CAAC;4BAAnB,IAAI,CAAC,kBAAA;4BAER,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;yBAClB;oBACF,CAAC,CAAC;gBACH,CAAC;gBAED,6BAAO,GAAP;oBAEC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC5B,CAAC;gBACF,kBAAC;YAAD,CAAC,AAzCD,IAyCC;YAzCD,iCAyCC,CAAA"} \ No newline at end of file +{"version":3,"file":"EventSimple.js","sourceRoot":"","sources":["../../../../source/System/Events/EventSimple.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;;;;;;YASH;gBAAA;oBAES,eAAU,GAAO,EAAE,CAAC;gBAuC7B,CAAC;gBArCA,yBAAG,GAAH,UAAI,QAAU;oBAEb,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAChC,CAAC;gBAED,4BAAM,GAAN,UAAO,QAAU;oBAEhB,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBAC9C,EAAE,CAAA,CAAC,KAAK,GAAC,CAAC,CAAC;wBAAC,MAAM,CAAC;oBACnB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAClC,CAAC;gBAED,8BAAQ,GAAR;oBAAS,gBAAe;yBAAf,WAAe,CAAf,sBAAe,CAAf,IAAe;wBAAf,+BAAe;;oBAEvB,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;oBAChC,GAAG,CAAA,CAAU,UAAS,EAAT,uBAAS,EAAT,uBAAS,EAAT,IAAS,CAAC;wBAAnB,IAAI,CAAC,kBAAA;wBAER,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;qBACf;gBACF,CAAC;gBAED,yCAAmB,GAAnB;oBAEC,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;oBAChC,MAAM,CAAC;wBAEN,GAAG,CAAA,CAAU,UAAS,EAAT,uBAAS,EAAT,uBAAS,EAAT,IAAS,CAAC;4BAAnB,IAAI,CAAC,kBAAA;4BAER,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;yBAClB;oBACF,CAAC,CAAC;gBACH,CAAC;gBAED,6BAAO,GAAP;oBAEC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC5B,CAAC;gBACF,kBAAC;YAAD,CAAC,AAzCD,IAyCC;YAzCD,iCAyCC,CAAA"} \ No newline at end of file diff --git a/dist/system/System/Exception.d.ts b/dist/system/System/Exception.d.ts index dce52d48..418b2f8f 100644 --- a/dist/system/System/Exception.d.ts +++ b/dist/system/System/Exception.d.ts @@ -1,11 +1,11 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -export default class Exception implements Error, IDisposable { +import { IDisposable } from "./Disposable/IDisposable"; +import { IMap } from "./Collections/Dictionaries/IDictionary"; +export declare class Exception implements Error, IDisposable { message: string; name: string; constructor(message?: string, innerException?: Error, beforeSealing?: (ex: any) => void); @@ -16,3 +16,4 @@ export default class Exception implements Error, IDisposable { protected toStringWithoutBrackets(): string; dispose(): void; } +export default Exception; diff --git a/dist/system/System/Exception.js b/dist/system/System/Exception.js index eaebc1df..e7afa08b 100644 --- a/dist/system/System/Exception.js +++ b/dist/system/System/Exception.js @@ -4,7 +4,7 @@ * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ System.register([], function(exports_1, context_1) { - 'use strict'; + "use strict"; var __moduleName = context_1 && context_1.id; var NAME, Exception; return { @@ -48,7 +48,8 @@ System.register([], function(exports_1, context_1) { }; return Exception; }()); - exports_1("default", Exception); + exports_1("Exception", Exception); + exports_1("default",Exception); } } }); diff --git a/dist/system/System/Exception.js.map b/dist/system/System/Exception.js.map index fc68acae..d6a514c6 100644 --- a/dist/system/System/Exception.js.map +++ b/dist/system/System/Exception.js.map @@ -1 +1 @@ -{"version":3,"file":"Exception.js","sourceRoot":"","sources":["../../../source/System/Exception.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;IAIH,YAAY,CAAC;;QAEP,IAAI;;;;YAAJ,IAAI,GAAU,WAAW,CAAC;YAKhC;gBAeC,mBACQ,OAAqB,EAC5B,cAA2B,EAC3B,aAA6B;oBAF7B,uBAA4B,GAA5B,cAA4B;oBAC5B,8BAA2B,GAA3B,qBAA2B;oBADpB,YAAO,GAAP,OAAO,CAAc;oBAI5B,IAAI,CAAC,GAAG,IAAI,CAAC;oBAEb,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;oBACrB,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;oBACZ,EAAE,CAAA,CAAC,cAAc,CAAC;wBACjB,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,cAAc,CAAC;oBAO3C,EAAE,CAAA,CAAC,aAAa,CAAC;wBAAC,aAAa,CAAC,CAAC,CAAC,CAAC;oBAGnC,IAAI,CAAC;wBACJ,IAAI,KAAK,GAAU,CAAM,IAAI,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC;wBAC5C,KAAK,GAAG,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,EAAC,EAAE,CAAC,CAAC,OAAO,CAAC,oBAAoB,EAAC,EAAE,CAAC,IAAI,EAAE,CAAC;wBACrF,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,uBAAuB,EAAE,GAAG,KAAK,CAAC;oBAClD,CAAE;oBAAA,KAAK,CAAA,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA,CAAC;oBAEd,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBAUS,2BAAO,GAAjB,cACE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;gBAKhB,4BAAQ,GAAR;oBAEC,MAAM,CAAC,MAAI,IAAI,CAAC,uBAAuB,EAAE,MAAG,CAAC;gBAC9C,CAAC;gBAES,2CAAuB,GAAjC;oBACC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;oBAC5B,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;gBACvC,CAAC;gBAKD,2BAAO,GAAP;oBAEC,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;oBACrB,GAAG,CAAA,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAClB,CAAC;wBACA,EAAE,CAAA,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;4BACzB,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;oBACjB,CAAC;gBACF,CAAC;gBACF,gBAAC;YAAD,CAAC,AAhFD,IAgFC;YAhFD,+BAgFC,CAAA"} \ No newline at end of file +{"version":3,"file":"Exception.js","sourceRoot":"","sources":["../../../source/System/Exception.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;;QAIG,IAAI;;;;YAAJ,IAAI,GAAU,WAAW,CAAC;YAKhC;gBAcC,mBACQ,OAAqB,EAC5B,cAA2B,EAC3B,aAA6B;oBAF7B,uBAA4B,GAA5B,cAA4B;oBAC5B,8BAA2B,GAA3B,qBAA2B;oBADpB,YAAO,GAAP,OAAO,CAAc;oBAI5B,IAAI,CAAC,GAAG,IAAI,CAAC;oBAEb,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;oBACrB,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;oBACZ,EAAE,CAAA,CAAC,cAAc,CAAC;wBACjB,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,cAAc,CAAC;oBAO3C,EAAE,CAAA,CAAC,aAAa,CAAC;wBAAC,aAAa,CAAC,CAAC,CAAC,CAAC;oBAGnC,IAAI,CAAC;wBACJ,IAAI,KAAK,GAAU,CAAM,IAAI,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC;wBAC5C,KAAK,GAAG,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,EAAC,EAAE,CAAC,CAAC,OAAO,CAAC,oBAAoB,EAAC,EAAE,CAAC,IAAI,EAAE,CAAC;wBACrF,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,uBAAuB,EAAE,GAAG,KAAK,CAAC;oBAClD,CAAE;oBAAA,KAAK,CAAA,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA,CAAC;oBAEd,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBAUS,2BAAO,GAAjB,cACE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;gBAKhB,4BAAQ,GAAR;oBAEC,MAAM,CAAC,MAAI,IAAI,CAAC,uBAAuB,EAAE,MAAG,CAAC;gBAC9C,CAAC;gBAES,2CAAuB,GAAjC;oBACC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;oBAC5B,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;gBACvC,CAAC;gBAKD,2BAAO,GAAP;oBAEC,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;oBACrB,GAAG,CAAA,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAClB,CAAC;wBACA,EAAE,CAAA,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;4BACzB,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;oBACjB,CAAC;gBACF,CAAC;gBACF,gBAAC;YAAD,CAAC,AA/ED,IA+EC;YA/ED,iCA+EC,CAAA;YAED,oBAAe,SAAS,EAAC"} \ No newline at end of file diff --git a/dist/system/System/Exceptions/ArgumentException.d.ts b/dist/system/System/Exceptions/ArgumentException.d.ts index eac4232c..59bd91e1 100644 --- a/dist/system/System/Exceptions/ArgumentException.d.ts +++ b/dist/system/System/Exceptions/ArgumentException.d.ts @@ -3,9 +3,10 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -import SystemException from "./SystemException"; -export default class ArgumentException extends SystemException { +import { SystemException } from "./SystemException"; +export declare class ArgumentException extends SystemException { paramName: string; constructor(paramName: string, message?: string, innerException?: Error, beforeSealing?: (ex: any) => void); protected getName(): string; } +export default ArgumentException; diff --git a/dist/system/System/Exceptions/ArgumentException.js b/dist/system/System/Exceptions/ArgumentException.js index f4c9ea2b..eb997765 100644 --- a/dist/system/System/Exceptions/ArgumentException.js +++ b/dist/system/System/Exceptions/ArgumentException.js @@ -4,7 +4,7 @@ * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ System.register(["./SystemException", "../Text/Utility"], function(exports_1, context_1) { - 'use strict'; + "use strict"; var __moduleName = context_1 && context_1.id; var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; @@ -39,8 +39,9 @@ System.register(["./SystemException", "../Text/Utility"], function(exports_1, co return NAME; }; return ArgumentException; - }(SystemException_1.default)); - exports_1("default", ArgumentException); + }(SystemException_1.SystemException)); + exports_1("ArgumentException", ArgumentException); + exports_1("default",ArgumentException); } } }); diff --git a/dist/system/System/Exceptions/ArgumentException.js.map b/dist/system/System/Exceptions/ArgumentException.js.map index 2e32da98..07f0f7f9 100644 --- a/dist/system/System/Exceptions/ArgumentException.js.map +++ b/dist/system/System/Exceptions/ArgumentException.js.map @@ -1 +1 @@ -{"version":3,"file":"ArgumentException.js","sourceRoot":"","sources":["../../../../source/System/Exceptions/ArgumentException.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;IAEH,YAAY,CAAC;;;;;;;;QAMP,IAAI;;;;;;;;;;YAAJ,IAAI,GAAU,mBAAmB,CAAC;YAExC;gBACgC,qCAAe;gBAM9C,2BACC,SAAgB,EAChB,OAAqB,EACrB,cAA2B,EAC3B,aAA6B;oBAF7B,uBAAqB,GAArB,cAAqB;oBACrB,8BAA2B,GAA3B,qBAA2B;oBAG3B,IAAI,EAAE,GAAG,SAAS,GAAG,CAAC,GAAG,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBACnD,kBAAM,cAAI,CAAC,EAAE,GAAG,CAAC,OAAO,IAAE,EAAE,CAAC,CAAC,EAAE,cAAc,EAAE,UAAC,CAAC;wBACjD,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC;wBACxB,EAAE,CAAA,CAAC,aAAa,CAAC;4BAAC,aAAa,CAAC,CAAC,CAAC,CAAC;oBACpC,CAAC,CAAC,CAAC;gBACJ,CAAC;gBAGS,mCAAO,GAAjB;oBAEC,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBAEF,wBAAC;YAAD,CAAC,AA1BD,CACgC,yBAAe,GAyB9C;YA1BD,uCA0BC,CAAA"} \ No newline at end of file +{"version":3,"file":"ArgumentException.js","sourceRoot":"","sources":["../../../../source/System/Exceptions/ArgumentException.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;;;;;;;;QAOG,IAAI;;;;;;;;;;YAAJ,IAAI,GAAU,mBAAmB,CAAC;YAExC;gBAAuC,qCAAe;gBAMrD,2BACC,SAAgB,EAChB,OAAqB,EACrB,cAA2B,EAC3B,aAA6B;oBAF7B,uBAAqB,GAArB,cAAqB;oBACrB,8BAA2B,GAA3B,qBAA2B;oBAG3B,IAAI,EAAE,GAAG,SAAS,GAAG,CAAC,GAAG,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBACnD,kBAAM,cAAI,CAAC,EAAE,GAAG,CAAC,OAAO,IAAE,EAAE,CAAC,CAAC,EAAE,cAAc,EAAE,UAAC,CAAC;wBACjD,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC;wBACxB,EAAE,CAAA,CAAC,aAAa,CAAC;4BAAC,aAAa,CAAC,CAAC,CAAC,CAAC;oBACpC,CAAC,CAAC,CAAC;gBACJ,CAAC;gBAGS,mCAAO,GAAjB;oBAEC,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBAEF,wBAAC;YAAD,CAAC,AAzBD,CAAuC,iCAAe,GAyBrD;YAzBD,iDAyBC,CAAA;YAED,oBAAe,iBAAiB,EAAC"} \ No newline at end of file diff --git a/dist/system/System/Exceptions/ArgumentNullException.d.ts b/dist/system/System/Exceptions/ArgumentNullException.d.ts index 5cc13038..5d73f022 100644 --- a/dist/system/System/Exceptions/ArgumentNullException.d.ts +++ b/dist/system/System/Exceptions/ArgumentNullException.d.ts @@ -3,8 +3,9 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -import ArgumentException from './ArgumentException'; -export default class ArgumentNullException extends ArgumentException { +import { ArgumentException } from "./ArgumentException"; +export declare class ArgumentNullException extends ArgumentException { constructor(paramName: string, message?: string, innerException?: Error); protected getName(): string; } +export default ArgumentNullException; diff --git a/dist/system/System/Exceptions/ArgumentNullException.js b/dist/system/System/Exceptions/ArgumentNullException.js index a84d272a..7f9b50b1 100644 --- a/dist/system/System/Exceptions/ArgumentNullException.js +++ b/dist/system/System/Exceptions/ArgumentNullException.js @@ -3,8 +3,8 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -System.register(['./ArgumentException'], function(exports_1, context_1) { - 'use strict'; +System.register(["./ArgumentException"], function(exports_1, context_1) { + "use strict"; var __moduleName = context_1 && context_1.id; var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; @@ -31,8 +31,9 @@ System.register(['./ArgumentException'], function(exports_1, context_1) { return NAME; }; return ArgumentNullException; - }(ArgumentException_1.default)); - exports_1("default", ArgumentNullException); + }(ArgumentException_1.ArgumentException)); + exports_1("ArgumentNullException", ArgumentNullException); + exports_1("default",ArgumentNullException); } } }); diff --git a/dist/system/System/Exceptions/ArgumentNullException.js.map b/dist/system/System/Exceptions/ArgumentNullException.js.map index e7d7f108..ac53aab4 100644 --- a/dist/system/System/Exceptions/ArgumentNullException.js.map +++ b/dist/system/System/Exceptions/ArgumentNullException.js.map @@ -1 +1 @@ -{"version":3,"file":"ArgumentNullException.js","sourceRoot":"","sources":["../../../../source/System/Exceptions/ArgumentNullException.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;IAEH,YAAY,CAAC;;;;;;;;QAKP,IAAI;;;;;;;YAAJ,IAAI,GAAU,uBAAuB,CAAC;YAE5C;gBACoC,yCAAiB;gBAEpD,+BACC,SAAgB,EAChB,OAAmB,EACnB,cAA2B;oBAD3B,uBAAmB,GAAnB,YAAmB;oBACnB,8BAA2B,GAA3B,qBAA2B;oBAE3B,kBAAM,SAAS,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;gBAC3C,CAAC;gBAES,uCAAO,GAAjB;oBAEC,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBAEF,4BAAC;YAAD,CAAC,AAhBD,CACoC,2BAAiB,GAepD;YAhBD,2CAgBC,CAAA"} \ No newline at end of file +{"version":3,"file":"ArgumentNullException.js","sourceRoot":"","sources":["../../../../source/System/Exceptions/ArgumentNullException.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;;;;;;;;QAIG,IAAI;;;;;;;YAAJ,IAAI,GAAU,uBAAuB,CAAC;YAE5C;gBAA2C,yCAAiB;gBAE3D,+BACC,SAAgB,EAChB,OAAmB,EACnB,cAA2B;oBAD3B,uBAAmB,GAAnB,YAAmB;oBACnB,8BAA2B,GAA3B,qBAA2B;oBAE3B,kBAAM,SAAS,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;gBAC3C,CAAC;gBAES,uCAAO,GAAjB;oBAEC,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBAEF,4BAAC;YAAD,CAAC,AAfD,CAA2C,qCAAiB,GAe3D;YAfD,yDAeC,CAAA;YAED,oBAAe,qBAAqB,EAAC"} \ No newline at end of file diff --git a/dist/system/System/Exceptions/ArgumentOutOfRangeException.d.ts b/dist/system/System/Exceptions/ArgumentOutOfRangeException.d.ts index 4fd62443..83d0e92b 100644 --- a/dist/system/System/Exceptions/ArgumentOutOfRangeException.d.ts +++ b/dist/system/System/Exceptions/ArgumentOutOfRangeException.d.ts @@ -3,10 +3,11 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -import Exception from "../Exception"; -import ArgumentException from "./ArgumentException"; -export default class ArgumentOutOfRangeException extends ArgumentException { +import { Exception } from "../Exception"; +import { ArgumentException } from "./ArgumentException"; +export declare class ArgumentOutOfRangeException extends ArgumentException { actualValue: string | number | boolean; constructor(paramName: string, actualValue: string | number | boolean, message?: string, innerException?: Exception); protected getName(): string; } +export default ArgumentOutOfRangeException; diff --git a/dist/system/System/Exceptions/ArgumentOutOfRangeException.js b/dist/system/System/Exceptions/ArgumentOutOfRangeException.js index 5f4f3fc9..8435ee71 100644 --- a/dist/system/System/Exceptions/ArgumentOutOfRangeException.js +++ b/dist/system/System/Exceptions/ArgumentOutOfRangeException.js @@ -19,7 +19,6 @@ System.register(["./ArgumentException"], function(exports_1, context_1) { ArgumentException_1 = ArgumentException_1_1; }], execute: function() { - 'use strict'; NAME = 'ArgumentOutOfRangeException'; ArgumentOutOfRangeException = (function (_super) { __extends(ArgumentOutOfRangeException, _super); @@ -34,8 +33,9 @@ System.register(["./ArgumentException"], function(exports_1, context_1) { return NAME; }; return ArgumentOutOfRangeException; - }(ArgumentException_1.default)); - exports_1("default", ArgumentOutOfRangeException); + }(ArgumentException_1.ArgumentException)); + exports_1("ArgumentOutOfRangeException", ArgumentOutOfRangeException); + exports_1("default",ArgumentOutOfRangeException); } } }); diff --git a/dist/system/System/Exceptions/ArgumentOutOfRangeException.js.map b/dist/system/System/Exceptions/ArgumentOutOfRangeException.js.map index 8840a4da..0c5b2a51 100644 --- a/dist/system/System/Exceptions/ArgumentOutOfRangeException.js.map +++ b/dist/system/System/Exceptions/ArgumentOutOfRangeException.js.map @@ -1 +1 @@ -{"version":3,"file":"ArgumentOutOfRangeException.js","sourceRoot":"","sources":["../../../../source/System/Exceptions/ArgumentOutOfRangeException.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;;;;;;;;QAOG,IAAI;;;;;;;YAHV,YAAY,CAAC;YAGP,IAAI,GAAU,6BAA6B,CAAC;YAElD;gBAC0C,+CAAiB;gBAI1D,qCACC,SAAgB,EAChB,WAAiC,EACjC,OAAoB,EACpB,cAA+B;oBAD/B,uBAAoB,GAApB,aAAoB;oBACpB,8BAA+B,GAA/B,qBAA+B;oBAE/B,kBAAM,SAAS,EAAE,CAAE,OAAI,WAAW,QAAI,GAAG,OAAO,EAAG,cAAc,EAAE,UAAC,CAAC;wBACpE,CAAC,CAAC,WAAW,GAAG,WAAW,CAAC;oBAC7B,CAAC,CAAC,CAAC;gBACJ,CAAC;gBAGS,6CAAO,GAAjB;oBAEC,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBAEF,kCAAC;YAAD,CAAC,AAtBD,CAC0C,2BAAiB,GAqB1D;YAtBD,iDAsBC,CAAA"} \ No newline at end of file +{"version":3,"file":"ArgumentOutOfRangeException.js","sourceRoot":"","sources":["../../../../source/System/Exceptions/ArgumentOutOfRangeException.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;;;;;;;;QAMG,IAAI;;;;;;;YAAJ,IAAI,GAAU,6BAA6B,CAAC;YAElD;gBAAiD,+CAAiB;gBAIjE,qCACC,SAAgB,EAChB,WAAiC,EACjC,OAAoB,EACpB,cAA+B;oBAD/B,uBAAoB,GAApB,aAAoB;oBACpB,8BAA+B,GAA/B,qBAA+B;oBAE/B,kBAAM,SAAS,EAAE,CAAE,OAAI,WAAW,QAAI,GAAG,OAAO,EAAG,cAAc,EAAE,UAAC,CAAC;wBACpE,CAAC,CAAC,WAAW,GAAG,WAAW,CAAC;oBAC7B,CAAC,CAAC,CAAC;gBACJ,CAAC;gBAGS,6CAAO,GAAjB;oBAEC,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBAEF,kCAAC;YAAD,CAAC,AArBD,CAAiD,qCAAiB,GAqBjE;YArBD,qEAqBC,CAAA;YAED,oBAAe,2BAA2B,EAAC"} \ No newline at end of file diff --git a/dist/system/System/Exceptions/InvalidOperationException.d.ts b/dist/system/System/Exceptions/InvalidOperationException.d.ts index 4f422d04..a39ff871 100644 --- a/dist/system/System/Exceptions/InvalidOperationException.d.ts +++ b/dist/system/System/Exceptions/InvalidOperationException.d.ts @@ -3,7 +3,8 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -import SystemException from './SystemException'; -export default class InvalidOperationException extends SystemException { +import { SystemException } from "./SystemException"; +export declare class InvalidOperationException extends SystemException { protected getName(): string; } +export default InvalidOperationException; diff --git a/dist/system/System/Exceptions/InvalidOperationException.js b/dist/system/System/Exceptions/InvalidOperationException.js index 67cfae55..f16ef363 100644 --- a/dist/system/System/Exceptions/InvalidOperationException.js +++ b/dist/system/System/Exceptions/InvalidOperationException.js @@ -3,8 +3,8 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -System.register(['./SystemException'], function(exports_1, context_1) { - 'use strict'; +System.register(["./SystemException"], function(exports_1, context_1) { + "use strict"; var __moduleName = context_1 && context_1.id; var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; @@ -29,8 +29,9 @@ System.register(['./SystemException'], function(exports_1, context_1) { return NAME; }; return InvalidOperationException; - }(SystemException_1.default)); - exports_1("default", InvalidOperationException); + }(SystemException_1.SystemException)); + exports_1("InvalidOperationException", InvalidOperationException); + exports_1("default",InvalidOperationException); } } }); diff --git a/dist/system/System/Exceptions/InvalidOperationException.js.map b/dist/system/System/Exceptions/InvalidOperationException.js.map index d29a4958..44059248 100644 --- a/dist/system/System/Exceptions/InvalidOperationException.js.map +++ b/dist/system/System/Exceptions/InvalidOperationException.js.map @@ -1 +1 @@ -{"version":3,"file":"InvalidOperationException.js","sourceRoot":"","sources":["../../../../source/System/Exceptions/InvalidOperationException.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;IAEH,YAAY,CAAC;;;;;;;;QAKP,IAAI;;;;;;;YAAJ,IAAI,GAAU,2BAA2B,CAAC;YAEhD;gBACwC,6CAAe;gBADvD;oBACwC,8BAAe;gBAOvD,CAAC;gBALU,2CAAO,GAAjB;oBAEC,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBAEF,gCAAC;YAAD,CAAC,AARD,CACwC,yBAAe,GAOtD;YARD,+CAQC,CAAA"} \ No newline at end of file +{"version":3,"file":"InvalidOperationException.js","sourceRoot":"","sources":["../../../../source/System/Exceptions/InvalidOperationException.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;;;;;;;;QAIG,IAAI;;;;;;;YAAJ,IAAI,GAAU,2BAA2B,CAAC;YAEhD;gBAA+C,6CAAe;gBAA9D;oBAA+C,8BAAe;gBAQ9D,CAAC;gBALU,2CAAO,GAAjB;oBAEC,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBAEF,gCAAC;YAAD,CAAC,AARD,CAA+C,iCAAe,GAQ7D;YARD,iEAQC,CAAA;YAED,oBAAe,yBAAyB,EAAC"} \ No newline at end of file diff --git a/dist/system/System/Exceptions/NotImplementedException.d.ts b/dist/system/System/Exceptions/NotImplementedException.d.ts index 0225eeb8..a52e3a18 100644 --- a/dist/system/System/Exceptions/NotImplementedException.d.ts +++ b/dist/system/System/Exceptions/NotImplementedException.d.ts @@ -3,7 +3,8 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -import SystemException from './SystemException'; -export default class NotImplementedException extends SystemException { +import { SystemException } from "./SystemException"; +export declare class NotImplementedException extends SystemException { protected getName(): string; } +export default NotImplementedException; diff --git a/dist/system/System/Exceptions/NotImplementedException.js b/dist/system/System/Exceptions/NotImplementedException.js index 196dbe93..30a6ddab 100644 --- a/dist/system/System/Exceptions/NotImplementedException.js +++ b/dist/system/System/Exceptions/NotImplementedException.js @@ -3,8 +3,8 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -System.register(['./SystemException'], function(exports_1, context_1) { - 'use strict'; +System.register(["./SystemException"], function(exports_1, context_1) { + "use strict"; var __moduleName = context_1 && context_1.id; var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; @@ -29,8 +29,9 @@ System.register(['./SystemException'], function(exports_1, context_1) { return NAME; }; return NotImplementedException; - }(SystemException_1.default)); - exports_1("default", NotImplementedException); + }(SystemException_1.SystemException)); + exports_1("NotImplementedException", NotImplementedException); + exports_1("default",NotImplementedException); } } }); diff --git a/dist/system/System/Exceptions/NotImplementedException.js.map b/dist/system/System/Exceptions/NotImplementedException.js.map index d74e3c1f..6f4c0e6f 100644 --- a/dist/system/System/Exceptions/NotImplementedException.js.map +++ b/dist/system/System/Exceptions/NotImplementedException.js.map @@ -1 +1 @@ -{"version":3,"file":"NotImplementedException.js","sourceRoot":"","sources":["../../../../source/System/Exceptions/NotImplementedException.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;IAEH,YAAY,CAAC;;;;;;;;QAKP,IAAI;;;;;;;YAAJ,IAAI,GAAU,yBAAyB,CAAC;YAE9C;gBACsC,2CAAe;gBADrD;oBACsC,8BAAe;gBAOrD,CAAC;gBALU,yCAAO,GAAjB;oBAEC,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBAEF,8BAAC;YAAD,CAAC,AARD,CACsC,yBAAe,GAOpD;YARD,6CAQC,CAAA"} \ No newline at end of file +{"version":3,"file":"NotImplementedException.js","sourceRoot":"","sources":["../../../../source/System/Exceptions/NotImplementedException.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;;;;;;;;QAIG,IAAI;;;;;;;YAAJ,IAAI,GAAU,yBAAyB,CAAC;YAE9C;gBAA6C,2CAAe;gBAA5D;oBAA6C,8BAAe;gBAQ5D,CAAC;gBALU,yCAAO,GAAjB;oBAEC,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBAEF,8BAAC;YAAD,CAAC,AARD,CAA6C,iCAAe,GAQ3D;YARD,6DAQC,CAAA;YAED,oBAAe,uBAAuB,EAAA"} \ No newline at end of file diff --git a/dist/system/System/Exceptions/NullReferenceException.d.ts b/dist/system/System/Exceptions/NullReferenceException.d.ts index 780b64a6..42c3373b 100644 --- a/dist/system/System/Exceptions/NullReferenceException.d.ts +++ b/dist/system/System/Exceptions/NullReferenceException.d.ts @@ -3,7 +3,7 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -import SystemException from './SystemException'; +import { SystemException } from "./SystemException"; export default class NullReferenceException extends SystemException { protected getName(): string; } diff --git a/dist/system/System/Exceptions/NullReferenceException.js b/dist/system/System/Exceptions/NullReferenceException.js index eeddb085..8263c7f0 100644 --- a/dist/system/System/Exceptions/NullReferenceException.js +++ b/dist/system/System/Exceptions/NullReferenceException.js @@ -3,8 +3,8 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -System.register(['./SystemException'], function(exports_1, context_1) { - 'use strict'; +System.register(["./SystemException"], function(exports_1, context_1) { + "use strict"; var __moduleName = context_1 && context_1.id; var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; @@ -29,7 +29,7 @@ System.register(['./SystemException'], function(exports_1, context_1) { return NAME; }; return NullReferenceException; - }(SystemException_1.default)); + }(SystemException_1.SystemException)); exports_1("default", NullReferenceException); } } diff --git a/dist/system/System/Exceptions/NullReferenceException.js.map b/dist/system/System/Exceptions/NullReferenceException.js.map index 3c21a346..6b295e73 100644 --- a/dist/system/System/Exceptions/NullReferenceException.js.map +++ b/dist/system/System/Exceptions/NullReferenceException.js.map @@ -1 +1 @@ -{"version":3,"file":"NullReferenceException.js","sourceRoot":"","sources":["../../../../source/System/Exceptions/NullReferenceException.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;IAEH,YAAY,CAAC;;;;;;;;QAKP,IAAI;;;;;;;YAAJ,IAAI,GAAU,wBAAwB,CAAC;YAE7C;gBACqC,0CAAe;gBADpD;oBACqC,8BAAe;gBAOpD,CAAC;gBALU,wCAAO,GAAjB;oBAEC,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBAEF,6BAAC;YAAD,CAAC,AARD,CACqC,yBAAe,GAOnD;YARD,4CAQC,CAAA"} \ No newline at end of file +{"version":3,"file":"NullReferenceException.js","sourceRoot":"","sources":["../../../../source/System/Exceptions/NullReferenceException.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;;;;;;;;QAKG,IAAI;;;;;;;YAAJ,IAAI,GAAU,wBAAwB,CAAC;YAE7C;gBACqC,0CAAe;gBADpD;oBACqC,8BAAe;gBAOpD,CAAC;gBALU,wCAAO,GAAjB;oBAEC,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBAEF,6BAAC;YAAD,CAAC,AARD,CACqC,iCAAe,GAOnD;YARD,4CAQC,CAAA"} \ No newline at end of file diff --git a/dist/system/System/Exceptions/SystemException.d.ts b/dist/system/System/Exceptions/SystemException.d.ts index 239bfbef..12f92b06 100644 --- a/dist/system/System/Exceptions/SystemException.d.ts +++ b/dist/system/System/Exceptions/SystemException.d.ts @@ -3,7 +3,8 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/system.systemexception%28v=vs.110%29.aspx */ -import Exception from '../Exception'; -export default class SystemException extends Exception { +import { Exception } from "../Exception"; +export declare class SystemException extends Exception { protected getName(): string; } +export default SystemException; diff --git a/dist/system/System/Exceptions/SystemException.js b/dist/system/System/Exceptions/SystemException.js index 4aaadca5..796441cf 100644 --- a/dist/system/System/Exceptions/SystemException.js +++ b/dist/system/System/Exceptions/SystemException.js @@ -3,8 +3,8 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/system.systemexception%28v=vs.110%29.aspx */ -System.register(['../Exception'], function(exports_1, context_1) { - 'use strict'; +System.register(["../Exception"], function(exports_1, context_1) { + "use strict"; var __moduleName = context_1 && context_1.id; var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; @@ -29,8 +29,9 @@ System.register(['../Exception'], function(exports_1, context_1) { return NAME; }; return SystemException; - }(Exception_1.default)); - exports_1("default", SystemException); + }(Exception_1.Exception)); + exports_1("SystemException", SystemException); + exports_1("default",SystemException); } } }); diff --git a/dist/system/System/Exceptions/SystemException.js.map b/dist/system/System/Exceptions/SystemException.js.map index 1a43c2ca..a6deda32 100644 --- a/dist/system/System/Exceptions/SystemException.js.map +++ b/dist/system/System/Exceptions/SystemException.js.map @@ -1 +1 @@ -{"version":3,"file":"SystemException.js","sourceRoot":"","sources":["../../../../source/System/Exceptions/SystemException.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;IAEH,YAAY,CAAC;;;;;;;;QAKP,IAAI;;;;;;;YAAJ,IAAI,GAAU,iBAAiB,CAAC;YAEtC;gBAC8B,mCAAS;gBADvC;oBAC8B,8BAAS;gBAgBvC,CAAC;gBAJU,iCAAO,GAAjB;oBAEC,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBACF,sBAAC;YAAD,CAAC,AAjBD,CAC8B,mBAAS,GAgBtC;YAjBD,qCAiBC,CAAA"} \ No newline at end of file +{"version":3,"file":"SystemException.js","sourceRoot":"","sources":["../../../../source/System/Exceptions/SystemException.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;;;;;;;;QAIG,IAAI;;;;;;;YAAJ,IAAI,GAAU,iBAAiB,CAAC;YAEtC;gBAAqC,mCAAS;gBAA9C;oBAAqC,8BAAS;gBAgB9C,CAAC;gBAJU,iCAAO,GAAjB;oBAEC,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBACF,sBAAC;YAAD,CAAC,AAhBD,CAAqC,qBAAS,GAgB7C;YAhBD,6CAgBC,CAAA;YAED,oBAAe,eAAe,EAAC"} \ No newline at end of file diff --git a/dist/system/System/Functions.d.ts b/dist/system/System/Functions.d.ts index 0262bc62..ecd9b0e2 100644 --- a/dist/system/System/Functions.d.ts +++ b/dist/system/System/Functions.d.ts @@ -2,13 +2,13 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -declare class Functions { +export declare class Functions { Identity(x: T): T; True(): boolean; False(): boolean; Blank(): void; } -declare module Functions { +export declare module Functions { var Identity: (x: T) => T; var True: () => boolean; var False: () => boolean; diff --git a/dist/system/System/Functions.js b/dist/system/System/Functions.js index 9af87c82..6f834a0d 100644 --- a/dist/system/System/Functions.js +++ b/dist/system/System/Functions.js @@ -3,7 +3,7 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ System.register([], function(exports_1, context_1) { - 'use strict'; + "use strict"; var __moduleName = context_1 && context_1.id; var Functions, rootFunctions; return { @@ -18,13 +18,15 @@ System.register([], function(exports_1, context_1) { Functions.prototype.Blank = function () { }; return Functions; }()); + exports_1("Functions", Functions); rootFunctions = new Functions(); (function (Functions) { Functions.Identity = rootFunctions.Identity; Functions.True = rootFunctions.True; Functions.False = rootFunctions.False; Functions.Blank = rootFunctions.Blank; - })(Functions || (Functions = {})); + })(Functions = Functions || (Functions = {})); + exports_1("Functions", Functions); Object.freeze(Functions); exports_1("default",Functions); } diff --git a/dist/system/System/Functions.js.map b/dist/system/System/Functions.js.map index 4c9d131c..61c7838d 100644 --- a/dist/system/System/Functions.js.map +++ b/dist/system/System/Functions.js.map @@ -1 +1 @@ -{"version":3,"file":"Functions.js","sourceRoot":"","sources":["../../../source/System/Functions.ts"],"names":[],"mappings":"AAAA;;;GAGG;;IAEH,YAAY,CAAC;;mBAoCP,aAAa;;;;YA/BnB;gBAAA;gBA6BA,CAAC;gBAtBA,4BAAQ,GAAR,UAAY,CAAG,IACb,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBAMb,wBAAI,GAAJ,cACE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;gBAMhB,yBAAK,GAAL,cACE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAKjB,yBAAK,GAAL,cACE,CAAC;gBACJ,gBAAC;YAAD,CAAC,AA7BD,IA6BC;YAEK,aAAa,GAAa,IAAI,SAAS,EAAE,CAAC;YAIhD,WAAO,SAAS,EAChB,CAAC;gBAKW,kBAAQ,GAChB,aAAa,CAAC,QAAQ,CAAC;gBAMf,cAAI,GACZ,aAAa,CAAC,IAAI,CAAC;gBAMX,eAAK,GACb,aAAa,CAAC,KAAK,CAAC;gBAKZ,eAAK,GACb,aAAa,CAAC,KAAK,CAAC;YACxB,CAAC,EA5BM,SAAS,KAAT,SAAS,QA4Bf;YAGD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAEzB,oBAAe,SAAS,EAAC"} \ No newline at end of file +{"version":3,"file":"Functions.js","sourceRoot":"","sources":["../../../source/System/Functions.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;mBAoCG,aAAa;;;;YA/BnB;gBAAA;gBA6BA,CAAC;gBAtBA,4BAAQ,GAAR,UAAY,CAAG,IACb,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBAMb,wBAAI,GAAJ,cACE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;gBAMhB,yBAAK,GAAL,cACE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAKjB,yBAAK,GAAL,cACE,CAAC;gBACJ,gBAAC;YAAD,CAAC,AA7BD,IA6BC;YA7BD,iCA6BC,CAAA;YAEK,aAAa,GAAa,IAAI,SAAS,EAAE,CAAC;YAIhD,WAAc,SAAS,EACvB,CAAC;gBAKW,kBAAQ,GAChB,aAAa,CAAC,QAAQ,CAAC;gBAMf,cAAI,GACZ,aAAa,CAAC,IAAI,CAAC;gBAMX,eAAK,GACb,aAAa,CAAC,KAAK,CAAC;gBAKZ,eAAK,GACb,aAAa,CAAC,KAAK,CAAC;YACxB,CAAC,EA5Ba,SAAS,GAAT,SAAS,KAAT,SAAS,QA4BtB;8CAAA;YAGD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAEzB,oBAAe,SAAS,EAAC"} \ No newline at end of file diff --git a/dist/system/System/Integer.d.ts b/dist/system/System/Integer.d.ts index 04881834..a6de2daf 100644 --- a/dist/system/System/Integer.d.ts +++ b/dist/system/System/Integer.d.ts @@ -3,6 +3,7 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { IArray } from "./Collections/Array/IArray"; export declare function Integer(n: number): number; export declare module Integer { const MAX_32_BIT: number; diff --git a/dist/system/System/Integer.js b/dist/system/System/Integer.js index 5612e2b4..888fa664 100644 --- a/dist/system/System/Integer.js +++ b/dist/system/System/Integer.js @@ -83,21 +83,21 @@ System.register(["./Exceptions/ArgumentException", "./Exceptions/ArgumentOutOfRa function assert(n, argumentName) { var i = is(n); if (!i) - throw new ArgumentException_1.default(argumentName || 'n', "Must be a integer."); + throw new ArgumentException_1.ArgumentException(argumentName || 'n', "Must be a integer."); return i; } Integer.assert = assert; function assertZeroOrGreater(n, argumentName) { var i = assert(n, argumentName) && n >= 0; if (!i) - throw new ArgumentOutOfRangeException_1.default(argumentName || 'n', n, "Must be a valid integer greater than or equal to zero."); + throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(argumentName || 'n', n, "Must be a valid integer greater than or equal to zero."); return i; } Integer.assertZeroOrGreater = assertZeroOrGreater; function assertPositive(n, argumentName) { var i = assert(n, argumentName) && n > 0; if (!i) - throw new ArgumentOutOfRangeException_1.default(argumentName || 'n', n, "Must be greater than zero."); + throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(argumentName || 'n', n, "Must be greater than zero."); return i; } Integer.assertPositive = assertPositive; diff --git a/dist/system/System/Integer.js.map b/dist/system/System/Integer.js.map index 1f879a52..44a86303 100644 --- a/dist/system/System/Integer.js.map +++ b/dist/system/System/Integer.js.map @@ -1 +1 @@ -{"version":3,"file":"Integer.js","sourceRoot":"","sources":["../../../source/System/Integer.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Integer.js","sourceRoot":"","sources":["../../../source/System/Integer.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/system/System/KeyValueExtract.d.ts b/dist/system/System/KeyValueExtract.d.ts index cfe473b9..8a23ab82 100644 --- a/dist/system/System/KeyValueExtract.d.ts +++ b/dist/system/System/KeyValueExtract.d.ts @@ -2,8 +2,11 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { KeyValuePair, IKeyValuePair } from "./KeyValuePair"; +import { IArray } from "./Collections/Array/IArray"; export declare function isKeyValuePair(kvp: any): kvp is IKeyValuePair; export declare function assertKey(key: TKey, name?: string): TKey; export declare function assertTuple(tuple: IArray, name?: string): void; export declare function assertNotUndefined(value: T, name: string): T; -export default function extractKeyValue(item: KeyValuePair, to: (key: TKey, value: TValue) => TResult): TResult; +export declare function extractKeyValue(item: KeyValuePair, to: (key: TKey, value: TValue) => TResult): TResult; +export default extractKeyValue; diff --git a/dist/system/System/KeyValueExtract.js b/dist/system/System/KeyValueExtract.js index e35d36a1..e8618bdd 100644 --- a/dist/system/System/KeyValueExtract.js +++ b/dist/system/System/KeyValueExtract.js @@ -15,20 +15,20 @@ System.register(["./Exceptions/ArgumentException", "./Exceptions/ArgumentNullExc if (name === void 0) { name = ITEM; } assertNotUndefined(key, name + DOT + KEY); if (key === null) - throw new ArgumentNullException_1.default(name + DOT + KEY); + throw new ArgumentNullException_1.ArgumentNullException(name + DOT + KEY); return key; } exports_1("assertKey", assertKey); function assertTuple(tuple, name) { if (name === void 0) { name = ITEM; } if (tuple.length != 2) - throw new ArgumentException_1.default(name, 'KeyValuePair tuples must be of length 2.'); + throw new ArgumentException_1.ArgumentException(name, 'KeyValuePair tuples must be of length 2.'); assertKey(tuple[0], name); } exports_1("assertTuple", assertTuple); function assertNotUndefined(value, name) { if (value === VOID0) - throw new ArgumentException_1.default(name, CANNOT_BE_UNDEFINED); + throw new ArgumentException_1.ArgumentException(name, CANNOT_BE_UNDEFINED); return value; } exports_1("assertNotUndefined", assertNotUndefined); @@ -44,11 +44,11 @@ System.register(["./Exceptions/ArgumentException", "./Exceptions/ArgumentNullExc value = assertNotUndefined(item.value, ITEM_VALUE); } else { - throw new ArgumentException_1.default(ITEM, INVALID_KVP_MESSAGE); + throw new ArgumentException_1.ArgumentException(ITEM, INVALID_KVP_MESSAGE); } return to(key, value); } - exports_1("default", extractKeyValue); + exports_1("extractKeyValue", extractKeyValue); return { setters:[ function (ArgumentException_1_1) { @@ -59,6 +59,7 @@ System.register(["./Exceptions/ArgumentException", "./Exceptions/ArgumentNullExc }], execute: function() { VOID0 = void 0, DOT = '.', KEY = 'key', VALUE = 'value', ITEM = 'item', ITEM_1 = ITEM + '[1]', ITEM_KEY = ITEM + DOT + KEY, ITEM_VALUE = ITEM + DOT + VALUE, INVALID_KVP_MESSAGE = 'Invalid type. Must be a KeyValuePair or Tuple of length 2.', CANNOT_BE_UNDEFINED = 'Cannot equal undefined.'; + exports_1("default",extractKeyValue); } } }); diff --git a/dist/system/System/KeyValueExtract.js.map b/dist/system/System/KeyValueExtract.js.map index bf8b2a8e..c81bdc5e 100644 --- a/dist/system/System/KeyValueExtract.js.map +++ b/dist/system/System/KeyValueExtract.js.map @@ -1 +1 @@ -{"version":3,"file":"KeyValueExtract.js","sourceRoot":"","sources":["../../../source/System/KeyValueExtract.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;QAMF,KAAK,EACL,GAAG,EACH,GAAG,EACH,KAAK,EACL,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,UAAU,EACV,mBAAmB,EACnB,mBAAmB;IAEpB,wBAA4C,GAAO;QAElD,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACpE,CAAC;IAHD,2CAGC,CAAA;IAED,mBAAgC,GAAQ,EAAE,IAAkB;QAAlB,oBAAkB,GAAlB,WAAkB;QAE3D,kBAAkB,CAAC,GAAG,EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;QAC1C,EAAE,CAAA,CAAC,GAAG,KAAG,IAAI,CAAC;YACb,MAAM,IAAI,+BAAqB,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;QAEnD,MAAM,CAAC,GAAG,CAAC;IACZ,CAAC;IAPD,iCAOC,CAAA;IAGD,qBAA4B,KAAiB,EAAE,IAAkB;QAAlB,oBAAkB,GAAlB,WAAkB;QAEhE,EAAE,CAAA,CAAC,KAAK,CAAC,MAAM,IAAE,CAAC,CAAC;YAClB,MAAM,IAAI,2BAAiB,CAAC,IAAI,EAAE,0CAA0C,CAAC,CAAC;QAE/E,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC;IAND,qCAMC,CAAA;IAGD,4BAAsC,KAAO,EAAE,IAAW;QAEzD,EAAE,CAAA,CAAC,KAAK,KAAG,KAAK,CAAC;YAChB,MAAM,IAAI,2BAAiB,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;QAExD,MAAM,CAAC,KAAK,CAAC;IACd,CAAC;IAND,mDAMC,CAAA;IAGD,yBACC,IAA+B,EAC/B,EAAoC;QAGpC,IAAI,CAAC,GAAG,IAAI,EAAE,GAAQ,EAAE,KAAY,CAAC;QACrC,EAAE,CAAA,CAAC,IAAI,YAAY,KAAK,CAAC,CACzB,CAAC;YACA,WAAW,CAAC,IAAI,CAAC,CAAC;YAClB,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACd,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,CAAC,EAAE,CAAA,CAAC,cAAc,CAAc,IAAI,CAAC,CAAC,CAC1C,CAAC;YACA,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1B,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,CACJ,CAAC;YACA,MAAM,IAAI,2BAAiB,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACvB,CAAC;IAvBD,qCAuBC,CAAA;;;;;;;;;;YAnEA,KAAK,GAAwB,KAAK,CAAC,EACnC,GAAG,GAA0B,GAAG,EAChC,GAAG,GAA0B,KAAK,EAClC,KAAK,GAAwB,OAAO,EACpC,IAAI,GAAyB,MAAM,EACnC,MAAM,GAAuB,IAAI,GAAG,KAAK,EACzC,QAAQ,GAAqB,IAAI,GAAG,GAAG,GAAG,GAAG,EAC7C,UAAU,GAAmB,IAAI,GAAG,GAAG,GAAG,KAAK,EAC/C,mBAAmB,GAAU,6DAA6D,EAC1F,mBAAmB,GAAU,yBAAyB,CAAC"} \ No newline at end of file +{"version":3,"file":"KeyValueExtract.js","sourceRoot":"","sources":["../../../source/System/KeyValueExtract.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;QAQF,KAAK,EACL,GAAG,EACH,GAAG,EACH,KAAK,EACL,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,UAAU,EACV,mBAAmB,EACnB,mBAAmB;IAEpB,wBAA4C,GAAO;QAElD,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACpE,CAAC;IAHD,2CAGC,CAAA;IAED,mBAAgC,GAAQ,EAAE,IAAkB;QAAlB,oBAAkB,GAAlB,WAAkB;QAE3D,kBAAkB,CAAC,GAAG,EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;QAC1C,EAAE,CAAA,CAAC,GAAG,KAAG,IAAI,CAAC;YACb,MAAM,IAAI,6CAAqB,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;QAEnD,MAAM,CAAC,GAAG,CAAC;IACZ,CAAC;IAPD,iCAOC,CAAA;IAGD,qBAA4B,KAAiB,EAAE,IAAkB;QAAlB,oBAAkB,GAAlB,WAAkB;QAEhE,EAAE,CAAA,CAAC,KAAK,CAAC,MAAM,IAAE,CAAC,CAAC;YAClB,MAAM,IAAI,qCAAiB,CAAC,IAAI,EAAE,0CAA0C,CAAC,CAAC;QAE/E,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC;IAND,qCAMC,CAAA;IAGD,4BAAsC,KAAO,EAAE,IAAW;QAEzD,EAAE,CAAA,CAAC,KAAK,KAAG,KAAK,CAAC;YAChB,MAAM,IAAI,qCAAiB,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;QAExD,MAAM,CAAC,KAAK,CAAC;IACd,CAAC;IAND,mDAMC,CAAA;IAGD,yBACC,IAA+B,EAC/B,EAAoC;QAGpC,IAAI,CAAC,GAAG,IAAI,EAAE,GAAQ,EAAE,KAAY,CAAC;QACrC,EAAE,CAAA,CAAC,IAAI,YAAY,KAAK,CAAC,CACzB,CAAC;YACA,WAAW,CAAC,IAAI,CAAC,CAAC;YAClB,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACd,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,CAAC,EAAE,CAAA,CAAC,cAAc,CAAc,IAAI,CAAC,CAAC,CAC1C,CAAC;YACA,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1B,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,CACJ,CAAC;YACA,MAAM,IAAI,qCAAiB,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACvB,CAAC;IAvBD,6CAuBC,CAAA;;;;;;;;;;YAnEA,KAAK,GAAwB,KAAK,CAAC,EACnC,GAAG,GAA0B,GAAG,EAChC,GAAG,GAA0B,KAAK,EAClC,KAAK,GAAwB,OAAO,EACpC,IAAI,GAAyB,MAAM,EACnC,MAAM,GAAuB,IAAI,GAAG,KAAK,EACzC,QAAQ,GAAqB,IAAI,GAAG,GAAG,GAAG,GAAG,EAC7C,UAAU,GAAmB,IAAI,GAAG,GAAG,GAAG,KAAK,EAC/C,mBAAmB,GAAU,6DAA6D,EAC1F,mBAAmB,GAAU,yBAAyB,CAAC;YA4DxD,oBAAe,eAAe,EAAC"} \ No newline at end of file diff --git a/dist/system/System/Lazy.d.ts b/dist/system/System/Lazy.d.ts index de32b287..c682318e 100644 --- a/dist/system/System/Lazy.d.ts +++ b/dist/system/System/Lazy.d.ts @@ -1,11 +1,11 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import DisposableBase from './Disposable/DisposableBase'; -export default class Lazy extends DisposableBase implements ILazy { +import { DisposableBase } from "./Disposable/DisposableBase"; +import { ILazy } from "./ILazy"; +import { Func } from "./FunctionTypes"; +export declare class Lazy extends DisposableBase implements ILazy { private _closure; private _isValueCreated; private _value; @@ -19,3 +19,4 @@ export default class Lazy extends DisposableBase implements ILazy { equals(other: Lazy): boolean; valueEquals(other: Lazy): boolean; } +export default Lazy; diff --git a/dist/system/System/Lazy.js b/dist/system/System/Lazy.js index 37e2ad4c..33ac975f 100644 --- a/dist/system/System/Lazy.js +++ b/dist/system/System/Lazy.js @@ -2,8 +2,8 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -System.register(['./Disposable/DisposableBase'], function(exports_1, context_1) { - 'use strict'; +System.register(["./Disposable/DisposableBase"], function(exports_1, context_1) { + "use strict"; var __moduleName = context_1 && context_1.id; var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; @@ -89,8 +89,9 @@ System.register(['./Disposable/DisposableBase'], function(exports_1, context_1) return this.equals(other) || this.value === other.value; }; return Lazy; - }(DisposableBase_1.default)); - exports_1("default", Lazy); + }(DisposableBase_1.DisposableBase)); + exports_1("Lazy", Lazy); + exports_1("default",Lazy); } } }); diff --git a/dist/system/System/Lazy.js.map b/dist/system/System/Lazy.js.map index a3f143ac..dc705667 100644 --- a/dist/system/System/Lazy.js.map +++ b/dist/system/System/Lazy.js.map @@ -1 +1 @@ -{"version":3,"file":"Lazy.js","sourceRoot":"","sources":["../../../source/System/Lazy.ts"],"names":[],"mappings":"AAAA;;;GAGG;;IAIH,YAAY,CAAC;;;;;;;;;;;;;;;YAIb;gBACsB,wBAAc;gBAMnC,cAAoB,QAAgB;oBAEnC,iBAAO,CAAC;oBAFW,aAAQ,GAAR,QAAQ,CAAQ;oBAGnC,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC;gBACrC,CAAC;gBAED,sBAAI,gCAAc;yBAAlB;wBAEC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;oBAC7B,CAAC;;;mBAAA;gBAGD,sBAAI,0BAAQ;yBAAZ;wBAEC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC/C,CAAC;;;mBAAA;gBAGD,oBAAK,GAAL,UAAM,kBAA2B;oBAChC,IAAI,CAAC,GAAG,IAAI,CAAC;oBAEb,EAAE,CAAA,CAAC,kBAAkB,CAAC;wBACrB,CAAC,CAAC,eAAe,EAAE,CAAC;oBAErB,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;wBAChB,EAAE,CAAA,CAAC,kBAAkB,CAAC;4BACrB,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;wBACpF,MAAM,CAAC,KAAK,CAAC;oBACd,CAAC;oBACD,IAAI,CAAC,CAAC;wBACL,CAAC,CAAC,eAAe,GAAG,KAAK,CAAC;wBAC1B,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;wBAChB,MAAM,CAAC,IAAI,CAAC;oBACb,CAAC;gBACF,CAAC;gBAED,sBAAI,uBAAK;yBAAT;wBAEC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACxB,CAAC;;;mBAAA;gBAED,uBAAQ,GAAR,UAAS,qBAA8B;oBAEtC,IAAI,CAAC,GAAG,IAAI,CAAC;oBAEb,CAAC,CAAC,eAAe,EAAE,CAAC;oBAEpB,IAAI,CAAC;wBACJ,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;4BACrC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;4BACrB,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;4BACb,CAAC,CAAC,eAAe,GAAG,IAAI,CAAC;4BACzB,MAAM,CAAC,CAAC,CAAC;wBACV,CAAC;oBACF,CAAC;4BACO,CAAC;wBACR,EAAE,CAAA,CAAC,qBAAqB,CAAC;4BACxB,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;oBACpB,CAAC;oBAED,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;gBAEjB,CAAC;gBAGS,yBAAU,GAApB;oBACC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;oBACrB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACpB,CAAC;gBAED,qBAAM,GAAN,UAAO,KAAa;oBAEnB,MAAM,CAAC,IAAI,IAAE,KAAK,CAAC;gBACpB,CAAC;gBAED,0BAAW,GAAX,UAAY,KAAa;oBAExB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,KAAG,KAAK,CAAC,KAAK,CAAC;gBACvD,CAAC;gBACF,WAAC;YAAD,CAAC,AAtFD,CACsB,wBAAc,GAqFnC;YAtFD,0BAsFC,CAAA"} \ No newline at end of file +{"version":3,"file":"Lazy.js","sourceRoot":"","sources":["../../../source/System/Lazy.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;;;;;;YAMH;gBAA6B,wBAAc;gBAM1C,cAAoB,QAAgB;oBAEnC,iBAAO,CAAC;oBAFW,aAAQ,GAAR,QAAQ,CAAQ;oBAGnC,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC;gBACrC,CAAC;gBAED,sBAAI,gCAAc;yBAAlB;wBAEC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;oBAC7B,CAAC;;;mBAAA;gBAGD,sBAAI,0BAAQ;yBAAZ;wBAEC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC/C,CAAC;;;mBAAA;gBAGD,oBAAK,GAAL,UAAM,kBAA2B;oBAChC,IAAI,CAAC,GAAG,IAAI,CAAC;oBAEb,EAAE,CAAA,CAAC,kBAAkB,CAAC;wBACrB,CAAC,CAAC,eAAe,EAAE,CAAC;oBAErB,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;wBAChB,EAAE,CAAA,CAAC,kBAAkB,CAAC;4BACrB,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;wBACpF,MAAM,CAAC,KAAK,CAAC;oBACd,CAAC;oBACD,IAAI,CAAC,CAAC;wBACL,CAAC,CAAC,eAAe,GAAG,KAAK,CAAC;wBAC1B,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;wBAChB,MAAM,CAAC,IAAI,CAAC;oBACb,CAAC;gBACF,CAAC;gBAED,sBAAI,uBAAK;yBAAT;wBAEC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACxB,CAAC;;;mBAAA;gBAED,uBAAQ,GAAR,UAAS,qBAA8B;oBAEtC,IAAI,CAAC,GAAG,IAAI,CAAC;oBAEb,CAAC,CAAC,eAAe,EAAE,CAAC;oBAEpB,IAAI,CAAC;wBACJ,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;4BACrC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;4BACrB,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;4BACb,CAAC,CAAC,eAAe,GAAG,IAAI,CAAC;4BACzB,MAAM,CAAC,CAAC,CAAC;wBACV,CAAC;oBACF,CAAC;4BACO,CAAC;wBACR,EAAE,CAAA,CAAC,qBAAqB,CAAC;4BACxB,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;oBACpB,CAAC;oBAED,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;gBAEjB,CAAC;gBAGS,yBAAU,GAApB;oBACC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;oBACrB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACpB,CAAC;gBAED,qBAAM,GAAN,UAAO,KAAa;oBAEnB,MAAM,CAAC,IAAI,IAAE,KAAK,CAAC;gBACpB,CAAC;gBAED,0BAAW,GAAX,UAAY,KAAa;oBAExB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,KAAG,KAAK,CAAC,KAAK,CAAC;gBACvD,CAAC;gBACF,WAAC;YAAD,CAAC,AArFD,CAA6B,+BAAc,GAqF1C;YArFD,uBAqFC,CAAA;YAED,oBAAe,IAAI,EAAC"} \ No newline at end of file diff --git a/dist/system/System/Net/Http/HttpMethod.d.ts b/dist/system/System/Net/Http/HttpMethod.d.ts index d70dbbd8..b9f17ab0 100644 --- a/dist/system/System/Net/Http/HttpMethod.d.ts +++ b/dist/system/System/Net/Http/HttpMethod.d.ts @@ -1,7 +1,7 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based on: https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html */ -export declare const OPTIONS: HttpMethodValue, HEAD: HttpMethodValue, GET: HttpMethodValue, PUT: HttpMethodValue, POST: HttpMethodValue, DELETE: HttpMethodValue, TRACE: HttpMethodValue, CONNECT: HttpMethodValue; +import * as HttpMethod from "./HttpMethodValue"; +export declare const OPTIONS: HttpMethod.Options, HEAD: HttpMethod.Head, GET: HttpMethod.Get, PUT: HttpMethod.Put, POST: HttpMethod.Post, DELETE: HttpMethod.Delete, TRACE: HttpMethod.Trace, CONNECT: HttpMethod.Connect; diff --git a/dist/system/System/Net/Http/HttpMethod.js.map b/dist/system/System/Net/Http/HttpMethod.js.map index 215fedcb..5239da6b 100644 --- a/dist/system/System/Net/Http/HttpMethod.js.map +++ b/dist/system/System/Net/Http/HttpMethod.js.map @@ -1 +1 @@ -{"version":3,"file":"HttpMethod.js","sourceRoot":"","sources":["../../../../../source/System/Net/Http/HttpMethod.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;;QAKF,OAAO,EACP,IAAI,EACJ,GAAG,EACH,GAAG,EACH,IAAI,EACJ,MAAM,EACN,KAAK,EACL,OAAO;;;;YAPP,qBAAA,OAAO,GAAmB,SAAS,CAAA,EACnC,kBAAA,IAAI,GAAsB,MAAM,CAAA,EAChC,iBAAA,GAAG,GAAuB,KAAK,CAAA,EAC/B,iBAAA,GAAG,GAAuB,KAAK,CAAA,EAC/B,kBAAA,IAAI,GAAsB,MAAM,CAAA,EAChC,oBAAA,MAAM,GAAoB,QAAQ,CAAA,EAClC,mBAAA,KAAK,GAAqB,OAAO,CAAA,EACjC,qBAAA,OAAO,GAAmB,SAAS,CAAA,CAAC"} \ No newline at end of file +{"version":3,"file":"HttpMethod.js","sourceRoot":"","sources":["../../../../../source/System/Net/Http/HttpMethod.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;;QAMF,OAAO,EACP,IAAI,EACJ,GAAG,EACH,GAAG,EACH,IAAI,EACJ,MAAM,EACN,KAAK,EACL,OAAO;;;;YAPP,qBAAA,OAAO,GAAsB,SAAS,CAAA,EACtC,kBAAA,IAAI,GAAyB,MAAM,CAAA,EACnC,iBAAA,GAAG,GAA0B,KAAK,CAAA,EAClC,iBAAA,GAAG,GAA0B,KAAK,CAAA,EAClC,kBAAA,IAAI,GAAyB,MAAM,CAAA,EACnC,oBAAA,MAAM,GAAuB,QAAQ,CAAA,EACrC,mBAAA,KAAK,GAAwB,OAAO,CAAA,EACpC,qBAAA,OAAO,GAAsB,SAAS,CAAA,CAAC"} \ No newline at end of file diff --git a/dist/system/System/Net/Http/HttpRequestFactory.d.ts b/dist/system/System/Net/Http/HttpRequestFactory.d.ts index 212c88af..87b2581d 100644 --- a/dist/system/System/Net/Http/HttpRequestFactory.d.ts +++ b/dist/system/System/Net/Http/HttpRequestFactory.d.ts @@ -1,19 +1,21 @@ -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import Uri from "../../Uri/Uri"; -import DisposableBase from "../../Disposable/DisposableBase"; +import * as QueryParam from "../../Uri/QueryParam"; +import { DisposableBase } from "../../Disposable/DisposableBase"; +import { HttpMethodValue } from "./HttpMethodValue"; +import { Uri } from "../../Uri/Uri"; +import { IUri } from "../../Uri/IUri"; +import { IHttpRequestAdapter } from "./IHttpRequestAdapter"; +import { IPromise } from "../../Promises/IPromise"; export default class HttpRequestFactory extends DisposableBase { private _http; protected _uriDefaults: Uri; constructor(_http: IHttpRequestAdapter, uriDefaults?: string | IUri); protected _onDispose(): void; uri(uri: string | IUri): HttpRequestFactory; - params(params: QueryParamsConvertible): HttpRequestFactory; + params(params: QueryParam.Convertible): HttpRequestFactory; request(method: HttpMethodValue, data?: any): IPromise; get(): IPromise; put(): IPromise; diff --git a/dist/system/System/Net/Http/HttpRequestFactory.js b/dist/system/System/Net/Http/HttpRequestFactory.js index 44c1bb7b..0324247f 100644 --- a/dist/system/System/Net/Http/HttpRequestFactory.js +++ b/dist/system/System/Net/Http/HttpRequestFactory.js @@ -2,29 +2,29 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -System.register(["../../Exceptions/ArgumentNullException", "../../Uri/Uri", "../../Disposable/DisposableBase", "./HttpMethod"], function(exports_1, context_1) { - 'use strict'; +System.register(["../../Exceptions/ArgumentNullException", "../../Disposable/DisposableBase", "./HttpMethod", "../../Uri/Uri"], function(exports_1, context_1) { + "use strict"; var __moduleName = context_1 && context_1.id; var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; - var ArgumentNullException_1, Uri_1, DisposableBase_1, HttpMethod_1; + var ArgumentNullException_1, DisposableBase_1, HttpMethod_1, Uri_1; var HttpRequestFactory; return { setters:[ function (ArgumentNullException_1_1) { ArgumentNullException_1 = ArgumentNullException_1_1; }, - function (Uri_1_1) { - Uri_1 = Uri_1_1; - }, function (DisposableBase_1_1) { DisposableBase_1 = DisposableBase_1_1; }, function (HttpMethod_1_1) { HttpMethod_1 = HttpMethod_1_1; + }, + function (Uri_1_1) { + Uri_1 = Uri_1_1; }], execute: function() { HttpRequestFactory = (function (_super) { @@ -34,8 +34,8 @@ System.register(["../../Exceptions/ArgumentNullException", "../../Uri/Uri", "../ this._http = _http; this._disposableObjectName = 'HttpRequestFactory'; if (!_http) - throw new ArgumentNullException_1.default('_http'); - this._uriDefaults = Uri_1.default.from(uriDefaults); + throw new ArgumentNullException_1.ArgumentNullException('_http'); + this._uriDefaults = Uri_1.Uri.from(uriDefaults); } HttpRequestFactory.prototype._onDispose = function () { this._http = null; @@ -44,7 +44,7 @@ System.register(["../../Exceptions/ArgumentNullException", "../../Uri/Uri", "../ HttpRequestFactory.prototype.uri = function (uri) { var _ = this; _.throwIfDisposed(); - var u = Uri_1.default.from(uri, _._uriDefaults); + var u = Uri_1.Uri.from(uri, _._uriDefaults); return _._uriDefaults.equals(u) ? _ : new HttpRequestFactory(_._http, u); @@ -76,7 +76,7 @@ System.register(["../../Exceptions/ArgumentNullException", "../../Uri/Uri", "../ return this.request(HttpMethod_1.DELETE); }; return HttpRequestFactory; - }(DisposableBase_1.default)); + }(DisposableBase_1.DisposableBase)); exports_1("default", HttpRequestFactory); } } diff --git a/dist/system/System/Net/Http/HttpRequestFactory.js.map b/dist/system/System/Net/Http/HttpRequestFactory.js.map index 83592369..286deeff 100644 --- a/dist/system/System/Net/Http/HttpRequestFactory.js.map +++ b/dist/system/System/Net/Http/HttpRequestFactory.js.map @@ -1 +1 @@ -{"version":3,"file":"HttpRequestFactory.js","sourceRoot":"","sources":["../../../../../source/System/Net/Http/HttpRequestFactory.ts"],"names":[],"mappings":"AAAA;;;GAGG;;IAKH,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;YAUb;gBAAgD,sCAAc;gBAK7D,4BACS,KAAyB,EACjC,WAAwB;oBAExB,iBAAO,CAAC;oBAHA,UAAK,GAAL,KAAK,CAAoB;oBAKjC,IAAI,CAAC,qBAAqB,GAAG,oBAAoB,CAAC;oBAElD,EAAE,CAAA,CAAC,CAAC,KAAK,CAAC;wBACT,MAAM,IAAI,+BAAqB,CAAC,OAAO,CAAC,CAAC;oBAE1C,IAAI,CAAC,YAAY,GAAG,aAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC3C,CAAC;gBAES,uCAAU,GAApB;oBAGC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;oBAClB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBAC1B,CAAC;gBAED,gCAAG,GAAH,UAAI,GAAe;oBAGlB,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,CAAC,CAAC,eAAe,EAAE,CAAC;oBACpB,IAAI,CAAC,GAAG,aAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC;oBACtC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;0BAC5B,CAAC;0BACD,IAAI,kBAAkB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBACvC,CAAC;gBAED,mCAAM,GAAN,UAAO,MAA6B;oBAEnC,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,CAAC,CAAC,eAAe,EAAE,CAAC;oBACpB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;gBAClD,CAAC;gBAED,oCAAO,GAAP,UAAiB,MAAsB,EAAE,IAAS;oBAEjD,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,CAAC,CAAC,eAAe,EAAE,CAAC;oBACpB,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;wBACtB,MAAM,EAAE,MAAM;wBACd,GAAG,EAAE,CAAC,CAAC,YAAY;wBACnB,IAAI,EAAE,IAAI;qBACV,CAAC,CAAC;gBACJ,CAAC;gBAGD,gCAAG,GAAH;oBAEC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAU,gBAAG,CAAC,CAAC;gBACnC,CAAC;gBAED,gCAAG,GAAH;oBAEC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAU,gBAAG,CAAC,CAAC;gBACnC,CAAC;gBAED,iCAAI,GAAJ,UAAc,IAAQ;oBAErB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAU,iBAAI,EAAE,IAAI,CAAC,CAAC;gBAC1C,CAAC;gBAED,sCAAQ,GAAR;oBAEC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAU,mBAAM,CAAC,CAAC;gBACtC,CAAC;gBAEF,yBAAC;YAAD,CAAC,AA5ED,CAAgD,wBAAc,GA4E7D;YA5ED,wCA4EC,CAAA"} \ No newline at end of file +{"version":3,"file":"HttpRequestFactory.js","sourceRoot":"","sources":["../../../../../source/System/Net/Http/HttpRequestFactory.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;YAgBH;gBAAgD,sCAAc;gBAK7D,4BACS,KAAyB,EACjC,WAAwB;oBAExB,iBAAO,CAAC;oBAHA,UAAK,GAAL,KAAK,CAAoB;oBAKjC,IAAI,CAAC,qBAAqB,GAAG,oBAAoB,CAAC;oBAElD,EAAE,CAAA,CAAC,CAAC,KAAK,CAAC;wBACT,MAAM,IAAI,6CAAqB,CAAC,OAAO,CAAC,CAAC;oBAE1C,IAAI,CAAC,YAAY,GAAG,SAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC3C,CAAC;gBAES,uCAAU,GAApB;oBAGC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;oBAClB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBAC1B,CAAC;gBAED,gCAAG,GAAH,UAAI,GAAe;oBAGlB,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,CAAC,CAAC,eAAe,EAAE,CAAC;oBACpB,IAAI,CAAC,GAAG,SAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC;oBACtC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;0BAC5B,CAAC;0BACD,IAAI,kBAAkB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBACvC,CAAC;gBAED,mCAAM,GAAN,UAAO,MAA6B;oBAEnC,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,CAAC,CAAC,eAAe,EAAE,CAAC;oBACpB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;gBAClD,CAAC;gBAED,oCAAO,GAAP,UAAiB,MAAsB,EAAE,IAAS;oBAEjD,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,CAAC,CAAC,eAAe,EAAE,CAAC;oBACpB,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;wBACtB,MAAM,EAAE,MAAM;wBACd,GAAG,EAAE,CAAC,CAAC,YAAY;wBACnB,IAAI,EAAE,IAAI;qBACV,CAAC,CAAC;gBACJ,CAAC;gBAGD,gCAAG,GAAH;oBAEC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAU,gBAAG,CAAC,CAAC;gBACnC,CAAC;gBAED,gCAAG,GAAH;oBAEC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAU,gBAAG,CAAC,CAAC;gBACnC,CAAC;gBAED,iCAAI,GAAJ,UAAc,IAAQ;oBAErB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAU,iBAAI,EAAE,IAAI,CAAC,CAAC;gBAC1C,CAAC;gBAED,sCAAQ,GAAR;oBAEC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAU,mBAAM,CAAC,CAAC;gBACtC,CAAC;gBAEF,yBAAC;YAAD,CAAC,AA5ED,CAAgD,+BAAc,GA4E7D;YA5ED,wCA4EC,CAAA"} \ No newline at end of file diff --git a/dist/system/System/Observable/ObservableBase.d.ts b/dist/system/System/Observable/ObservableBase.d.ts index 050d9f79..e45e3351 100644 --- a/dist/system/System/Observable/ObservableBase.d.ts +++ b/dist/system/System/Observable/ObservableBase.d.ts @@ -1,13 +1,13 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Based upon .NET source. * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ -import SubscribableBase from "./SubscribableBase"; -declare abstract class ObservableBase extends SubscribableBase> implements IObservable { +import { SubscribableBase } from "./SubscribableBase"; +import { IObservable } from "./IObservable"; +import { IObserver } from "./IObserver"; +export declare abstract class ObservableBase extends SubscribableBase> implements IObservable { protected _onNext(value: T): void; protected _onError(error: Error): void; protected _onCompleted(): void; diff --git a/dist/system/System/Observable/ObservableBase.js b/dist/system/System/Observable/ObservableBase.js index 88918992..5ad4b02b 100644 --- a/dist/system/System/Observable/ObservableBase.js +++ b/dist/system/System/Observable/ObservableBase.js @@ -5,7 +5,7 @@ * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ System.register(["./SubscribableBase"], function(exports_1, context_1) { - 'use strict'; + "use strict"; var __moduleName = context_1 && context_1.id; var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; @@ -58,7 +58,8 @@ System.register(["./SubscribableBase"], function(exports_1, context_1) { processAction(this._unsubscribeAll(true), function (s) { s.onCompleted && s.onCompleted(); }); }; return ObservableBase; - }(SubscribableBase_1.default)); + }(SubscribableBase_1.SubscribableBase)); + exports_1("ObservableBase", ObservableBase); OBSERVER_ERROR_MESSAGE = 'One or more observers had errors when attempting to pass information.'; exports_1("default",ObservableBase); } diff --git a/dist/system/System/Observable/ObservableBase.js.map b/dist/system/System/Observable/ObservableBase.js.map index f882f617..c6de073d 100644 --- a/dist/system/System/Observable/ObservableBase.js.map +++ b/dist/system/System/Observable/ObservableBase.js.map @@ -1 +1 @@ -{"version":3,"file":"ObservableBase.js","sourceRoot":"","sources":["../../../../source/System/Observable/ObservableBase.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;IAIH,YAAY,CAAC;;;;;;;;wBAoCP,sBAAsB;IAE5B,uBACC,SAAwB,EACxB,OAA8B;QAE9B,IAAI,eAAe,GAAoC,IAAI,CAAC;QAE5D,GAAG,CAAA,CAAU,UAAS,EAAT,uBAAS,EAAT,uBAAS,EAAT,IAAS,CAAC;YAAnB,IAAI,CAAC,kBAAA;YAER,IACA,CAAC;gBACA,OAAO,CAAC,CAAC,CAAC,CAAC;YACZ,CACA;YAAA,KAAK,CAAA,CAAC,EAAE,CAAC,CACT,CAAC;gBACA,eAAe,GAAG,eAAe,IAAI,EAAE,CAAC;gBAExC,eAAe,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAC,CAAC,CAAC;YAC7C,CAAC;SACD;QAED,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QAErB,EAAE,CAAA,CAAC,eAAe,IAAI,eAAe,CAAC,MAAM,CAAC,CAC7C,CAAC;YACA,EAAE,CAAA,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC;gBAC3B,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,eAAe,CAAC,CAAC;YACxD,IAAI;gBAAC,MAAM;oBACV,OAAO,EAAE,sBAAsB;oBAC/B,MAAM,EAAE,eAAe;iBACvB,CAAC;QACH,CAAC;IAEF,CAAC;;;;;;;YAhED;gBACQ,kCAA8B;gBADtC;oBACQ,8BAA8B;gBA2BtC,CAAC;gBAvBU,gCAAO,GAAjB,UAAkB,KAAO;oBAExB,aAAa,CACZ,IAAI,CAAC,eAAe,EAAE,EACtB,UAAA,CAAC,IAAM,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACrC,CAAC;gBACH,CAAC;gBAES,iCAAQ,GAAlB,UAAmB,KAAW;oBAE7B,aAAa,CACZ,IAAI,CAAC,eAAe,EAAE,EACtB,UAAA,CAAC,IAAM,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACvC,CAAC;gBACH,CAAC;gBAES,qCAAY,GAAtB;oBAEC,aAAa,CACZ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAC1B,UAAA,CAAC,IAAM,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAC1C,CAAC;gBACH,CAAC;gBACF,qBAAC;YAAD,CAAC,AA5BD,CACQ,0BAAgB,GA2BvB;YAEK,sBAAsB,GAAU,uEAAuE,CAAC;YAoC9G,oBAAe,cAAc,EAAC"} \ No newline at end of file +{"version":3,"file":"ObservableBase.js","sourceRoot":"","sources":["../../../../source/System/Observable/ObservableBase.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;;;;;;;;;wBAsCG,sBAAsB;IAE5B,uBACC,SAAwB,EACxB,OAA8B;QAE9B,IAAI,eAAe,GAAoC,IAAI,CAAC;QAE5D,GAAG,CAAA,CAAU,UAAS,EAAT,uBAAS,EAAT,uBAAS,EAAT,IAAS,CAAC;YAAnB,IAAI,CAAC,kBAAA;YAER,IACA,CAAC;gBACA,OAAO,CAAC,CAAC,CAAC,CAAC;YACZ,CACA;YAAA,KAAK,CAAA,CAAC,EAAE,CAAC,CACT,CAAC;gBACA,eAAe,GAAG,eAAe,IAAI,EAAE,CAAC;gBAExC,eAAe,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAC,CAAC,CAAC;YAC7C,CAAC;SACD;QAED,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QAErB,EAAE,CAAA,CAAC,eAAe,IAAI,eAAe,CAAC,MAAM,CAAC,CAC7C,CAAC;YACA,EAAE,CAAA,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC;gBAC3B,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,eAAe,CAAC,CAAC;YACxD,IAAI;gBAAC,MAAM;oBACV,OAAO,EAAE,sBAAsB;oBAC/B,MAAM,EAAE,eAAe;iBACvB,CAAC;QACH,CAAC;IAEF,CAAC;;;;;;;YA/DD;gBACQ,kCAA8B;gBADtC;oBACQ,8BAA8B;gBA0BtC,CAAC;gBAvBU,gCAAO,GAAjB,UAAkB,KAAO;oBAExB,aAAa,CACZ,IAAI,CAAC,eAAe,EAAE,EACtB,UAAA,CAAC,IAAM,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACrC,CAAC;gBACH,CAAC;gBAES,iCAAQ,GAAlB,UAAmB,KAAW;oBAE7B,aAAa,CACZ,IAAI,CAAC,eAAe,EAAE,EACtB,UAAA,CAAC,IAAM,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACvC,CAAC;gBACH,CAAC;gBAES,qCAAY,GAAtB;oBAEC,aAAa,CACZ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAC1B,UAAA,CAAC,IAAM,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAC1C,CAAC;gBACH,CAAC;gBACF,qBAAC;YAAD,CAAC,AA3BD,CACQ,mCAAgB,GA0BvB;YA3BD,2CA2BC,CAAA;YAEK,sBAAsB,GAAU,uEAAuE,CAAC;YAoC9G,oBAAe,cAAc,EAAC"} \ No newline at end of file diff --git a/dist/system/System/Observable/ObservableNodeBase.d.ts b/dist/system/System/Observable/ObservableNodeBase.d.ts index 420a0dbc..25d83469 100644 --- a/dist/system/System/Observable/ObservableNodeBase.d.ts +++ b/dist/system/System/Observable/ObservableNodeBase.d.ts @@ -1,5 +1,3 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Based upon .NET source. @@ -7,8 +5,10 @@ * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ import ObservableBase from "./ObservableBase"; -export default class ObservableNodeBase extends ObservableBase implements IObserver { +import { IObserver } from "./IObserver"; +export declare class ObservableNodeBase extends ObservableBase implements IObserver { onNext(value: T): void; onError(error: Error): void; onCompleted(): void; } +export default ObservableNodeBase; diff --git a/dist/system/System/Observable/ObservableNodeBase.js b/dist/system/System/Observable/ObservableNodeBase.js index c410176e..7796520a 100644 --- a/dist/system/System/Observable/ObservableNodeBase.js +++ b/dist/system/System/Observable/ObservableNodeBase.js @@ -5,7 +5,7 @@ * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ System.register(["./ObservableBase"], function(exports_1, context_1) { - 'use strict'; + "use strict"; var __moduleName = context_1 && context_1.id; var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; @@ -36,7 +36,8 @@ System.register(["./ObservableBase"], function(exports_1, context_1) { }; return ObservableNodeBase; }(ObservableBase_1.default)); - exports_1("default", ObservableNodeBase); + exports_1("ObservableNodeBase", ObservableNodeBase); + exports_1("default",ObservableNodeBase); } } }); diff --git a/dist/system/System/Observable/ObservableNodeBase.js.map b/dist/system/System/Observable/ObservableNodeBase.js.map index dae82c03..8dd84101 100644 --- a/dist/system/System/Observable/ObservableNodeBase.js.map +++ b/dist/system/System/Observable/ObservableNodeBase.js.map @@ -1 +1 @@ -{"version":3,"file":"ObservableNodeBase.js","sourceRoot":"","sources":["../../../../source/System/Observable/ObservableNodeBase.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;IAIH,YAAY,CAAC;;;;;;;;;;;;;;;YAKb;gBAEQ,sCAAiB;gBAFzB;oBAEQ,8BAAiB;gBAkBzB,CAAC;gBAdA,mCAAM,GAAN,UAAO,KAAO;oBAEb,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACrB,CAAC;gBAED,oCAAO,GAAP,UAAQ,KAAW;oBAElB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACtB,CAAC;gBAED,wCAAW,GAAX;oBAEC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACrB,CAAC;gBACF,yBAAC;YAAD,CAAC,AApBD,CAEQ,wBAAc,GAkBrB;YApBD,wCAoBC,CAAA"} \ No newline at end of file +{"version":3,"file":"ObservableNodeBase.js","sourceRoot":"","sources":["../../../../source/System/Observable/ObservableNodeBase.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;YAMH;gBACQ,sCAAiB;gBADzB;oBACQ,8BAAiB;gBAkBzB,CAAC;gBAdA,mCAAM,GAAN,UAAO,KAAO;oBAEb,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACrB,CAAC;gBAED,oCAAO,GAAP,UAAQ,KAAW;oBAElB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACtB,CAAC;gBAED,wCAAW,GAAX;oBAEC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACrB,CAAC;gBACF,yBAAC;YAAD,CAAC,AAnBD,CACQ,wBAAc,GAkBrB;YAnBD,mDAmBC,CAAA;YAED,oBAAe,kBAAkB,EAAC"} \ No newline at end of file diff --git a/dist/system/System/Observable/SubscribableBase.d.ts b/dist/system/System/Observable/SubscribableBase.d.ts index 5de54bfc..a292656a 100644 --- a/dist/system/System/Observable/SubscribableBase.d.ts +++ b/dist/system/System/Observable/SubscribableBase.d.ts @@ -1,12 +1,11 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Based upon .NET source. * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ -export default class SubscribableBase implements IDisposable { +import { IDisposable } from "../Disposable/IDisposable"; +export declare class SubscribableBase implements IDisposable { private __subscriptions; protected _getSubscribers(): TSubscriber[]; constructor(); @@ -17,3 +16,4 @@ export default class SubscribableBase implements IDisposable { unsubscribeAll(): void; dispose(): void; } +export default SubscribableBase; diff --git a/dist/system/System/Observable/SubscribableBase.js b/dist/system/System/Observable/SubscribableBase.js index 4ec0a692..127e8b0a 100644 --- a/dist/system/System/Observable/SubscribableBase.js +++ b/dist/system/System/Observable/SubscribableBase.js @@ -5,7 +5,7 @@ * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ System.register(["../Collections/LinkedNodeList", "../Disposable/dispose", "./Subscription"], function(exports_1, context_1) { - 'use strict'; + "use strict"; var __moduleName = context_1 && context_1.id; var LinkedNodeList_1, dispose_1, Subscription_1; var SubscribableBase; @@ -24,7 +24,7 @@ System.register(["../Collections/LinkedNodeList", "../Disposable/dispose", "./Su SubscribableBase = (function () { function SubscribableBase() { this.__subscriptions - = new LinkedNodeList_1.default(); + = new LinkedNodeList_1.LinkedNodeList(); } SubscribableBase.prototype._getSubscribers = function () { return this @@ -41,7 +41,7 @@ System.register(["../Collections/LinkedNodeList", "../Disposable/dispose", "./Su var n = _._findEntryNode(subscriber); if (n) return n.value; - var s = new Subscription_1.default(_, subscriber); + var s = new Subscription_1.Subscription(_, subscriber); _.__subscriptions.addNode({ value: s }); return s; }; @@ -60,7 +60,7 @@ System.register(["../Collections/LinkedNodeList", "../Disposable/dispose", "./Su var s = _s.map(function (n) { return n.value; }); var u = returnSubscribers ? s.map(function (o) { return o.subscriber; }) : null; _s.clear(); - dispose_1.default.these(s); + dispose_1.dispose.these(s); return u; }; SubscribableBase.prototype.unsubscribeAll = function () { @@ -71,7 +71,8 @@ System.register(["../Collections/LinkedNodeList", "../Disposable/dispose", "./Su }; return SubscribableBase; }()); - exports_1("default", SubscribableBase); + exports_1("SubscribableBase", SubscribableBase); + exports_1("default",SubscribableBase); } } }); diff --git a/dist/system/System/Observable/SubscribableBase.js.map b/dist/system/System/Observable/SubscribableBase.js.map index 47d303b1..6d9a78c1 100644 --- a/dist/system/System/Observable/SubscribableBase.js.map +++ b/dist/system/System/Observable/SubscribableBase.js.map @@ -1 +1 @@ -{"version":3,"file":"SubscribableBase.js","sourceRoot":"","sources":["../../../../source/System/Observable/SubscribableBase.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;IAIH,YAAY,CAAC;;;;;;;;;;;;;;;;YAQb;gBAeC;oBAEC,IAAI,CAAC,eAAe;0BACjB,IAAI,wBAAc,EAAmD,CAAC;gBAC1E,CAAC;gBAXS,0CAAe,GAAzB;oBAEC,MAAM,CAAC,IAAI;yBACT,eAAe;yBACf,GAAG,CAAC,UAAA,IAAI,IAAE,OAAA,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAnC,CAAmC,CAAC,CAAC;gBAClD,CAAC;gBAQO,yCAAc,GAAtB,UACC,UAAsB;oBAEtB,MAAM,CAAC,IAAI;yBACT,eAAe;yBACf,IAAI,CAAC,UAAA,CAAC,IAAE,OAAA,CAAC,CAAC,KAAK,CAAC,UAAU,KAAG,UAAU,EAA/B,CAA+B,CAAC,CAAC;gBAC5C,CAAC;gBAGD,oCAAS,GAAT,UAAU,UAAsB;oBAE/B,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;oBACrC,EAAE,CAAA,CAAC,CAAC,CAAC;wBACJ,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;oBAEhB,IAAI,CAAC,GAAG,IAAI,sBAAY,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;oBACxC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,EAAC,KAAK,EAAE,CAAC,EAAC,CAAC,CAAC;oBAEtC,MAAM,CAAC,CAAC,CAAC;gBACV,CAAC;gBAED,sCAAW,GAAX,UAAY,UAAsB;oBAEjC,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;oBACrC,EAAE,CAAA,CAAC,CAAC,CAAC,CACL,CAAC;wBACA,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;wBAChB,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;wBAChC,CAAC,CAAC,OAAO,EAAE,CAAC;oBACb,CAAC;gBACF,CAAC;gBAES,0CAAe,GAAzB,UAA0B,iBAAiC;oBAAjC,iCAAiC,GAAjC,yBAAiC;oBAE1D,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,eAAe,CAAC;oBACrC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,UAAA,CAAC,IAAE,OAAA,CAAC,CAAC,KAAK,EAAP,CAAO,CAAC,CAAC;oBAC3B,IAAI,CAAC,GAAG,iBAAiB,GAAG,CAAC,CAAC,GAAG,CAAC,UAAA,CAAC,IAAE,OAAA,CAAC,CAAC,UAAU,EAAZ,CAAY,CAAC,GAAG,IAAI,CAAC;oBAC1D,EAAE,CAAC,KAAK,EAAE,CAAC;oBAEX,iBAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAEjB,MAAM,CAAC,CAAC,CAAC;gBACV,CAAC;gBAED,yCAAc,GAAd;oBAEC,IAAI,CAAC,eAAe,EAAE,CAAC;gBACxB,CAAC;gBAED,kCAAO,GAAP;oBAEC,IAAI,CAAC,eAAe,EAAE,CAAC;gBACxB,CAAC;gBAEF,uBAAC;YAAD,CAAC,AA7ED,IA6EC;YA7ED,sCA6EC,CAAA"} \ No newline at end of file +{"version":3,"file":"SubscribableBase.js","sourceRoot":"","sources":["../../../../source/System/Observable/SubscribableBase.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;YAUH;gBAcC;oBAEC,IAAI,CAAC,eAAe;0BACjB,IAAI,+BAAc,EAAmD,CAAC;gBAC1E,CAAC;gBAXS,0CAAe,GAAzB;oBAEC,MAAM,CAAC,IAAI;yBACT,eAAe;yBACf,GAAG,CAAC,UAAA,IAAI,IAAE,OAAA,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAnC,CAAmC,CAAC,CAAC;gBAClD,CAAC;gBAQO,yCAAc,GAAtB,UACC,UAAsB;oBAEtB,MAAM,CAAC,IAAI;yBACT,eAAe;yBACf,IAAI,CAAC,UAAA,CAAC,IAAE,OAAA,CAAC,CAAC,KAAK,CAAC,UAAU,KAAG,UAAU,EAA/B,CAA+B,CAAC,CAAC;gBAC5C,CAAC;gBAGD,oCAAS,GAAT,UAAU,UAAsB;oBAE/B,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;oBACrC,EAAE,CAAA,CAAC,CAAC,CAAC;wBACJ,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;oBAEhB,IAAI,CAAC,GAAG,IAAI,2BAAY,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;oBACxC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,EAAC,KAAK,EAAE,CAAC,EAAC,CAAC,CAAC;oBAEtC,MAAM,CAAC,CAAC,CAAC;gBACV,CAAC;gBAED,sCAAW,GAAX,UAAY,UAAsB;oBAEjC,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;oBACrC,EAAE,CAAA,CAAC,CAAC,CAAC,CACL,CAAC;wBACA,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;wBAChB,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;wBAChC,CAAC,CAAC,OAAO,EAAE,CAAC;oBACb,CAAC;gBACF,CAAC;gBAES,0CAAe,GAAzB,UAA0B,iBAAiC;oBAAjC,iCAAiC,GAAjC,yBAAiC;oBAE1D,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,eAAe,CAAC;oBACrC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,UAAA,CAAC,IAAE,OAAA,CAAC,CAAC,KAAK,EAAP,CAAO,CAAC,CAAC;oBAC3B,IAAI,CAAC,GAAG,iBAAiB,GAAG,CAAC,CAAC,GAAG,CAAC,UAAA,CAAC,IAAE,OAAA,CAAC,CAAC,UAAU,EAAZ,CAAY,CAAC,GAAG,IAAI,CAAC;oBAC1D,EAAE,CAAC,KAAK,EAAE,CAAC;oBAEX,iBAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAEjB,MAAM,CAAC,CAAC,CAAC;gBACV,CAAC;gBAED,yCAAc,GAAd;oBAEC,IAAI,CAAC,eAAe,EAAE,CAAC;gBACxB,CAAC;gBAED,kCAAO,GAAP;oBAEC,IAAI,CAAC,eAAe,EAAE,CAAC;gBACxB,CAAC;gBAEF,uBAAC;YAAD,CAAC,AA5ED,IA4EC;YA5ED,+CA4EC,CAAA;YAED,oBAAe,gBAAgB,EAAC"} \ No newline at end of file diff --git a/dist/system/System/Observable/Subscription.d.ts b/dist/system/System/Observable/Subscription.d.ts index ad70893a..d39df22c 100644 --- a/dist/system/System/Observable/Subscription.d.ts +++ b/dist/system/System/Observable/Subscription.d.ts @@ -1,13 +1,12 @@ -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Based upon .NET source. * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ -export default class Subscription implements IDisposableAware { +import { IDisposableAware } from "../Disposable/IDisposableAware"; +import { ISubscribable } from "./ISubscribable"; +export declare class Subscription implements IDisposableAware { private _subscribable; private _subscriber; constructor(_subscribable: ISubscribable, _subscriber: T); @@ -15,3 +14,4 @@ export default class Subscription implements IDisposableAware { wasDisposed: boolean; dispose(): void; } +export default Subscription; diff --git a/dist/system/System/Observable/Subscription.js b/dist/system/System/Observable/Subscription.js index 36c5cf18..5ec8ff7d 100644 --- a/dist/system/System/Observable/Subscription.js +++ b/dist/system/System/Observable/Subscription.js @@ -5,7 +5,7 @@ * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ System.register([], function(exports_1, context_1) { - 'use strict'; + "use strict"; var __moduleName = context_1 && context_1.id; var Subscription; return { @@ -43,7 +43,8 @@ System.register([], function(exports_1, context_1) { }; return Subscription; }()); - exports_1("default", Subscription); + exports_1("Subscription", Subscription); + exports_1("default",Subscription); } } }); diff --git a/dist/system/System/Observable/Subscription.js.map b/dist/system/System/Observable/Subscription.js.map index 0ef900fc..8132dd3b 100644 --- a/dist/system/System/Observable/Subscription.js.map +++ b/dist/system/System/Observable/Subscription.js.map @@ -1 +1 @@ -{"version":3,"file":"Subscription.js","sourceRoot":"","sources":["../../../../source/System/Observable/Subscription.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;IAKH,YAAY,CAAC;;;;;;YAKb;gBAGC,sBACS,aAA+B,EAC/B,WAAc;oBADd,kBAAa,GAAb,aAAa,CAAkB;oBAC/B,gBAAW,GAAX,WAAW,CAAG;oBAEtB,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,WAAW,CAAC;wBAClC,MAAM,6CAA6C,CAAC;gBACtD,CAAC;gBAED,sBAAI,oCAAU;yBAAd;wBACC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;oBACzB,CAAC;;;mBAAA;gBAiBD,sBAAI,qCAAW;yBAAf;wBAEC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;oBACjD,CAAC;;;mBAAA;gBAED,8BAAO,GAAP;oBAEC,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;oBACjC,IAAI,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC;oBAGtC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;oBACxB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;oBAG1B,EAAE,CAAC,CAAC,UAAU,IAAI,YAAY,CAAC,CAC/B,CAAC;wBACA,YAAY,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;oBACtC,CAAC;gBACF,CAAC;gBACF,mBAAC;YAAD,CAAC,AAlDD,IAkDC;YAlDD,kCAkDC,CAAA"} \ No newline at end of file +{"version":3,"file":"Subscription.js","sourceRoot":"","sources":["../../../../source/System/Observable/Subscription.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;;;;;;;YASH;gBAEC,sBACS,aAA+B,EAC/B,WAAc;oBADd,kBAAa,GAAb,aAAa,CAAkB;oBAC/B,gBAAW,GAAX,WAAW,CAAG;oBAEtB,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,WAAW,CAAC;wBAClC,MAAM,6CAA6C,CAAC;gBACtD,CAAC;gBAED,sBAAI,oCAAU;yBAAd;wBACC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;oBACzB,CAAC;;;mBAAA;gBAiBD,sBAAI,qCAAW;yBAAf;wBAEC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;oBACjD,CAAC;;;mBAAA;gBAED,8BAAO,GAAP;oBAEC,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;oBACjC,IAAI,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC;oBAGtC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;oBACxB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;oBAG1B,EAAE,CAAC,CAAC,UAAU,IAAI,YAAY,CAAC,CAC/B,CAAC;wBACA,YAAY,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;oBACtC,CAAC;gBACF,CAAC;gBACF,mBAAC;YAAD,CAAC,AAjDD,IAiDC;YAjDD,uCAiDC,CAAA;YAED,oBAAe,YAAY,EAAC"} \ No newline at end of file diff --git a/dist/system/System/Serialization/Utility.d.ts b/dist/system/System/Serialization/Utility.d.ts index f53d368c..c1308794 100644 --- a/dist/system/System/Serialization/Utility.d.ts +++ b/dist/system/System/Serialization/Utility.d.ts @@ -1,9 +1,9 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { ISerializable } from "./ISerializable"; +import { Primitive } from "../Primitive"; export declare function toString(value: Primitive | ISerializable, defaultForUnknown?: string): string; export declare function isSerializable(instance: any): instance is ISerializable; export declare function toPrimitive(value: string, caseInsensitive?: boolean, unknownHandler?: (v: string) => string): Primitive; diff --git a/dist/system/System/Serialization/Utility.js b/dist/system/System/Serialization/Utility.js index 28d57213..001d1aa4 100644 --- a/dist/system/System/Serialization/Utility.js +++ b/dist/system/System/Serialization/Utility.js @@ -2,7 +2,7 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -System.register(['../Types', '../Exceptions/InvalidOperationException'], function(exports_1, context_1) { +System.register(["../Types", "../Exceptions/InvalidOperationException"], function(exports_1, context_1) { "use strict"; var __moduleName = context_1 && context_1.id; var Types_1, InvalidOperationException_1; @@ -10,12 +10,12 @@ System.register(['../Types', '../Exceptions/InvalidOperationException'], functio function toString(value, defaultForUnknown) { var v = value; switch (typeof v) { - case Types_1.default.UNDEFINED: - case Types_1.default.STRING: + case Types_1.Type.UNDEFINED: + case Types_1.Type.STRING: return v; - case Types_1.default.BOOLEAN: + case Types_1.Type.BOOLEAN: return v ? TRUE : FALSE; - case Types_1.default.NUMBER: + case Types_1.Type.NUMBER: return EMPTY + v; default: if (v === null) @@ -24,14 +24,14 @@ System.register(['../Types', '../Exceptions/InvalidOperationException'], functio return v.serialize(); else if (arguments.length > 1) return defaultForUnknown; - var ex = new InvalidOperationException_1.default('Attempting to serialize unidentifiable type.'); + var ex = new InvalidOperationException_1.InvalidOperationException('Attempting to serialize unidentifiable type.'); ex.data['value'] = v; throw ex; } } exports_1("toString", toString); function isSerializable(instance) { - return Types_1.default.hasMemberOfType(instance, 'serialize', Types_1.default.FUNCTION); + return Types_1.Type.hasMemberOfType(instance, 'serialize', Types_1.Type.FUNCTION); } exports_1("isSerializable", isSerializable); function toPrimitive(value, caseInsensitive, unknownHandler) { @@ -41,7 +41,7 @@ System.register(['../Types', '../Exceptions/InvalidOperationException'], functio switch (value) { case 'null': return null; - case Types_1.default.UNDEFINED: + case Types_1.Type.UNDEFINED: return undefined; case TRUE: return true; diff --git a/dist/system/System/Serialization/Utility.js.map b/dist/system/System/Serialization/Utility.js.map index c27ef763..b2f0ef4f 100644 --- a/dist/system/System/Serialization/Utility.js.map +++ b/dist/system/System/Serialization/Utility.js.map @@ -1 +1 @@ -{"version":3,"file":"Utility.js","sourceRoot":"","sources":["../../../../source/System/Serialization/Utility.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Utility.js","sourceRoot":"","sources":["../../../../source/System/Serialization/Utility.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/system/System/Tasks/TaskHandler.d.ts b/dist/system/System/Tasks/TaskHandler.d.ts index 750d1dd3..c2a1037f 100644 --- a/dist/system/System/Tasks/TaskHandler.d.ts +++ b/dist/system/System/Tasks/TaskHandler.d.ts @@ -3,10 +3,12 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import TaskHandlerBase from "./TaskHandlerBase"; -export default class TaskHandler extends TaskHandlerBase { +import { TaskHandlerBase } from "./TaskHandlerBase"; +import { Closure } from "../FunctionTypes"; +export declare class TaskHandler extends TaskHandlerBase { private _action; constructor(_action: Closure); protected _onExecute(): void; protected _onDispose(): void; } +export default TaskHandler; diff --git a/dist/system/System/Tasks/TaskHandler.js b/dist/system/System/Tasks/TaskHandler.js index cd164dd8..818dfd0a 100644 --- a/dist/system/System/Tasks/TaskHandler.js +++ b/dist/system/System/Tasks/TaskHandler.js @@ -27,7 +27,7 @@ System.register(["./TaskHandlerBase", "../Exceptions/ArgumentNullException"], fu _super.call(this); this._action = _action; if (!_action) - throw new ArgumentNullException_1.default('action'); + throw new ArgumentNullException_1.ArgumentNullException('action'); } TaskHandler.prototype._onExecute = function () { this._action(); @@ -37,8 +37,9 @@ System.register(["./TaskHandlerBase", "../Exceptions/ArgumentNullException"], fu this._action = null; }; return TaskHandler; - }(TaskHandlerBase_1.default)); - exports_1("default", TaskHandler); + }(TaskHandlerBase_1.TaskHandlerBase)); + exports_1("TaskHandler", TaskHandler); + exports_1("default",TaskHandler); } } }); diff --git a/dist/system/System/Tasks/TaskHandler.js.map b/dist/system/System/Tasks/TaskHandler.js.map index cee227d0..ba3cb61a 100644 --- a/dist/system/System/Tasks/TaskHandler.js.map +++ b/dist/system/System/Tasks/TaskHandler.js.map @@ -1 +1 @@ -{"version":3,"file":"TaskHandler.js","sourceRoot":"","sources":["../../../../source/System/Tasks/TaskHandler.ts"],"names":[],"mappings":"AACA;;;GAGG;;;;;;;;;;;;;;;;;;;;YAIH;gBAAyC,+BAAe;gBAEvD,qBAAoB,OAAe;oBAClC,iBAAO,CAAC;oBADW,YAAO,GAAP,OAAO,CAAQ;oBAElC,EAAE,CAAA,CAAC,CAAC,OAAO,CAAC;wBAAC,MAAM,IAAI,+BAAqB,CAAC,QAAQ,CAAC,CAAC;gBACxD,CAAC;gBAES,gCAAU,GAApB;oBAEC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAChB,CAAC;gBAES,gCAAU,GAApB;oBAEC,gBAAK,CAAC,UAAU,WAAE,CAAC;oBACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACrB,CAAC;gBACF,kBAAC;YAAD,CAAC,AAjBD,CAAyC,yBAAe,GAiBvD;YAjBD,iCAiBC,CAAA"} \ No newline at end of file +{"version":3,"file":"TaskHandler.js","sourceRoot":"","sources":["../../../../source/System/Tasks/TaskHandler.ts"],"names":[],"mappings":"AACA;;;GAGG;;;;;;;;;;;;;;;;;;;;YAMH;gBAAiC,+BAAe;gBAE/C,qBAAoB,OAAe;oBAClC,iBAAO,CAAC;oBADW,YAAO,GAAP,OAAO,CAAQ;oBAElC,EAAE,CAAA,CAAC,CAAC,OAAO,CAAC;wBAAC,MAAM,IAAI,6CAAqB,CAAC,QAAQ,CAAC,CAAC;gBACxD,CAAC;gBAES,gCAAU,GAApB;oBAEC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAChB,CAAC;gBAES,gCAAU,GAApB;oBAEC,gBAAK,CAAC,UAAU,WAAE,CAAC;oBACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACrB,CAAC;gBACF,kBAAC;YAAD,CAAC,AAjBD,CAAiC,iCAAe,GAiB/C;YAjBD,qCAiBC,CAAA;YAED,oBAAe,WAAW,EAAC"} \ No newline at end of file diff --git a/dist/system/System/Tasks/TaskHandlerBase.d.ts b/dist/system/System/Tasks/TaskHandlerBase.d.ts index c3945286..abb00e37 100644 --- a/dist/system/System/Tasks/TaskHandlerBase.d.ts +++ b/dist/system/System/Tasks/TaskHandlerBase.d.ts @@ -1,10 +1,10 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import DisposableBase from "../Disposable/DisposableBase"; -declare abstract class TaskHandlerBase extends DisposableBase implements ICancellable { +import { DisposableBase } from "../Disposable/DisposableBase"; +import { ICancellable } from "./ICancellable"; +export declare abstract class TaskHandlerBase extends DisposableBase implements ICancellable { constructor(); protected _id: any; isScheduled: boolean; diff --git a/dist/system/System/Tasks/TaskHandlerBase.js b/dist/system/System/Tasks/TaskHandlerBase.js index 0359440d..0df5d1a8 100644 --- a/dist/system/System/Tasks/TaskHandlerBase.js +++ b/dist/system/System/Tasks/TaskHandlerBase.js @@ -57,7 +57,8 @@ System.register(["../Disposable/DisposableBase"], function(exports_1, context_1) return false; }; return TaskHandlerBase; - }(DisposableBase_1.default)); + }(DisposableBase_1.DisposableBase)); + exports_1("TaskHandlerBase", TaskHandlerBase); exports_1("default",TaskHandlerBase); } } diff --git a/dist/system/System/Tasks/TaskHandlerBase.js.map b/dist/system/System/Tasks/TaskHandlerBase.js.map index 9a13118c..0dacd000 100644 --- a/dist/system/System/Tasks/TaskHandlerBase.js.map +++ b/dist/system/System/Tasks/TaskHandlerBase.js.map @@ -1 +1 @@ -{"version":3,"file":"TaskHandlerBase.js","sourceRoot":"","sources":["../../../../source/System/Tasks/TaskHandlerBase.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;;;;;;YAQH;gBACQ,mCAAc;gBAErB;oBAEC,iBAAO,CAAC;oBACR,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;gBACjB,CAAC;gBAID,sBAAI,wCAAW;yBAAf;wBACC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;oBACnB,CAAC;;;mBAAA;gBAOD,iCAAO,GAAP,UAAQ,KAAa;oBAEpB,IAAI,CAAC,MAAM,EAAE,CAAC;oBACd,EAAE,CAAA,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,GAAC,CAAC,CAAC,CAC3B,CAAC;wBACA,IAAI,CAAC,UAAU,EAAE,CAAC;oBACnB,CAAC;oBACD,IAAI,CAAC,EAAE,CAAA,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CACxB,CAAC;wBACA,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;oBAC9D,CAAC;gBACF,CAAC;gBAGc,wBAAQ,GAAvB,UAAwB,CAAiB;oBAExC,CAAC,CAAC,MAAM,EAAE,CAAC;oBACX,CAAC,CAAC,UAAU,EAAE,CAAC;gBAChB,CAAC;gBAIS,oCAAU,GAApB;oBAEC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACf,CAAC;gBAED,gCAAM,GAAN;oBAEC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;oBAClB,EAAE,CAAA,CAAC,EAAE,CAAC,CACN,CAAC;wBACA,YAAY,CAAC,EAAE,CAAC,CAAC;wBACjB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;wBAChB,MAAM,CAAC,IAAI,CAAC;oBACb,CAAC;oBACD,MAAM,CAAC,KAAK,CAAC;gBACd,CAAC;gBAGF,sBAAC;YAAD,CAAC,AA5DD,CACQ,wBAAc,GA2DrB;YAED,oBAAe,eAAe,EAAC"} \ No newline at end of file +{"version":3,"file":"TaskHandlerBase.js","sourceRoot":"","sources":["../../../../source/System/Tasks/TaskHandlerBase.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;;;;;;YAQH;gBACQ,mCAAc;gBAErB;oBAEC,iBAAO,CAAC;oBACR,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;gBACjB,CAAC;gBAID,sBAAI,wCAAW;yBAAf;wBACC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;oBACnB,CAAC;;;mBAAA;gBAOD,iCAAO,GAAP,UAAQ,KAAa;oBAEpB,IAAI,CAAC,MAAM,EAAE,CAAC;oBACd,EAAE,CAAA,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,GAAC,CAAC,CAAC,CAC3B,CAAC;wBACA,IAAI,CAAC,UAAU,EAAE,CAAC;oBACnB,CAAC;oBACD,IAAI,CAAC,EAAE,CAAA,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CACxB,CAAC;wBACA,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;oBAC9D,CAAC;gBACF,CAAC;gBAGc,wBAAQ,GAAvB,UAAwB,CAAiB;oBAExC,CAAC,CAAC,MAAM,EAAE,CAAC;oBACX,CAAC,CAAC,UAAU,EAAE,CAAC;gBAChB,CAAC;gBAIS,oCAAU,GAApB;oBAEC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACf,CAAC;gBAED,gCAAM,GAAN;oBAEC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;oBAClB,EAAE,CAAA,CAAC,EAAE,CAAC,CACN,CAAC;wBACA,YAAY,CAAC,EAAE,CAAC,CAAC;wBACjB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;wBAChB,MAAM,CAAC,IAAI,CAAC;oBACb,CAAC;oBACD,MAAM,CAAC,KAAK,CAAC;gBACd,CAAC;gBAGF,sBAAC;YAAD,CAAC,AA5DD,CACQ,+BAAc,GA2DrB;YA5DD,6CA4DC,CAAA;YAED,oBAAe,eAAe,EAAC"} \ No newline at end of file diff --git a/dist/system/System/Tasks/defer.d.ts b/dist/system/System/Tasks/defer.d.ts index 2b37b77f..7552d46b 100644 --- a/dist/system/System/Tasks/defer.d.ts +++ b/dist/system/System/Tasks/defer.d.ts @@ -1,7 +1,8 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { ICancellable } from "./ICancellable"; +import { Closure } from "../FunctionTypes"; export default function defer(task: Closure, delay?: number): ICancellable; export declare function interval(task: Function, interval: number, count?: number): ICancellable; diff --git a/dist/system/System/Tasks/defer.js.map b/dist/system/System/Tasks/defer.js.map index f4d2ae24..a89343f8 100644 --- a/dist/system/System/Tasks/defer.js.map +++ b/dist/system/System/Tasks/defer.js.map @@ -1 +1 @@ -{"version":3,"file":"defer.js","sourceRoot":"","sources":["../../../../source/System/Tasks/defer.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;IAwFH,eACC,IAAY,EACZ,KAAa;QAEb,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;IALD,2BAKC,CAAA;IAED,kBACC,IAAa,EACb,QAAe,EACf,KAAuB;QAAvB,qBAAuB,GAAvB,gBAAuB;QAEvB,MAAM,CAAC,IAAI,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC;IAND,+BAMC,CAAA;;;;YAjGD;gBAAA;gBAWA,CAAC;gBAJA,2BAAO,GAAP;oBAEC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACf,CAAC;gBACF,gBAAC;YAAD,CAAC,AAXD,IAWC;YAED;gBAAoB,yBAAS;gBAI5B,eAAY,IAAY,EAAE,KAAa;oBAEtC,iBAAO,CAAC;oBACR,EAAE,CAAA,CAAC,CAAC,CAAC,KAAK,IAAE,CAAC,CAAC,CAAC;wBAAC,KAAK,GAAG,CAAC,CAAC;oBAC1B,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBACzD,CAAC;gBAED,sBAAM,GAAN;oBAEC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;oBAClB,EAAE,CAAA,CAAC,EAAE,CAAC,CACN,CAAC;wBACA,YAAY,CAAC,EAAE,CAAC,CAAC;wBACjB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;wBAChB,MAAM,CAAC,IAAI,CAAC;oBACb,CAAC;oBACD,MAAM,CAAC,KAAK,CAAC;gBACd,CAAC;gBAGc,aAAO,GAAtB,UAAuB,IAAa,EAAE,CAAO;oBAE5C,CAAC,CAAC,MAAM,EAAE,CAAC;oBACX,IAAI,EAAE,CAAC;gBACR,CAAC;gBAEF,YAAC;YAAD,CAAC,AA9BD,CAAoB,SAAS,GA8B5B;YAED;gBAA4B,iCAAS;gBAIpC,uBACC,IAAa,EACb,QAAe,EACP,UAA4B;oBAApC,0BAAoC,GAApC,qBAAoC;oBAEpC,iBAAO,CAAC;oBAFA,eAAU,GAAV,UAAU,CAAkB;oBAGpC,EAAE,CAAA,CAAC,QAAQ,KAAG,IAAI,IAAI,QAAQ,KAAI,KAAI,CAAC,CAAC,CAAC,CAAC;wBACzC,MAAM,oCAAoC,CAAC;oBAC5C,EAAE,CAAA,CAAC,QAAQ,GAAC,CAAC,CAAC;wBACb,MAAM,gCAAgC,CAAC;oBAExC,IAAI,CAAC,GAAG,GAAG,WAAW,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBACrE,CAAC;gBAED,8BAAM,GAAN;oBAEC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;oBAClB,EAAE,CAAA,CAAC,EAAE,CAAC,CACN,CAAC;wBACA,aAAa,CAAC,EAAE,CAAC,CAAC;wBAClB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;wBAChB,MAAM,CAAC,IAAI,CAAC;oBACb,CAAC;oBACD,MAAM,CAAC,KAAK,CAAC;gBACd,CAAC;gBAEc,qBAAO,GAAtB,UAAuB,IAAa,EAAE,CAAe;oBAEpD,EAAE,CAAA,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;wBAAC,CAAC,CAAC,MAAM,EAAE,CAAC;oBACjC,IAAI,EAAE,CAAC;gBACR,CAAC;gBAEF,oBAAC;YAAD,CAAC,AApCD,CAA4B,SAAS,GAoCpC"} \ No newline at end of file +{"version":3,"file":"defer.js","sourceRoot":"","sources":["../../../../source/System/Tasks/defer.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;IAyFH,eACC,IAAY,EACZ,KAAa;QAEb,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;IALD,2BAKC,CAAA;IAED,kBACC,IAAa,EACb,QAAe,EACf,KAAuB;QAAvB,qBAAuB,GAAvB,gBAAuB;QAEvB,MAAM,CAAC,IAAI,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC;IAND,+BAMC,CAAA;;;;YAjGD;gBAAA;gBAWA,CAAC;gBAJA,2BAAO,GAAP;oBAEC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACf,CAAC;gBACF,gBAAC;YAAD,CAAC,AAXD,IAWC;YAED;gBAAoB,yBAAS;gBAI5B,eAAY,IAAY,EAAE,KAAa;oBAEtC,iBAAO,CAAC;oBACR,EAAE,CAAA,CAAC,CAAC,CAAC,KAAK,IAAE,CAAC,CAAC,CAAC;wBAAC,KAAK,GAAG,CAAC,CAAC;oBAC1B,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBACzD,CAAC;gBAED,sBAAM,GAAN;oBAEC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;oBAClB,EAAE,CAAA,CAAC,EAAE,CAAC,CACN,CAAC;wBACA,YAAY,CAAC,EAAE,CAAC,CAAC;wBACjB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;wBAChB,MAAM,CAAC,IAAI,CAAC;oBACb,CAAC;oBACD,MAAM,CAAC,KAAK,CAAC;gBACd,CAAC;gBAGc,aAAO,GAAtB,UAAuB,IAAa,EAAE,CAAO;oBAE5C,CAAC,CAAC,MAAM,EAAE,CAAC;oBACX,IAAI,EAAE,CAAC;gBACR,CAAC;gBAEF,YAAC;YAAD,CAAC,AA9BD,CAAoB,SAAS,GA8B5B;YAED;gBAA4B,iCAAS;gBAIpC,uBACC,IAAa,EACb,QAAe,EACP,UAA4B;oBAApC,0BAAoC,GAApC,qBAAoC;oBAEpC,iBAAO,CAAC;oBAFA,eAAU,GAAV,UAAU,CAAkB;oBAGpC,EAAE,CAAA,CAAC,QAAQ,KAAG,IAAI,IAAI,QAAQ,KAAI,KAAI,CAAC,CAAC,CAAC,CAAC;wBACzC,MAAM,oCAAoC,CAAC;oBAC5C,EAAE,CAAA,CAAC,QAAQ,GAAC,CAAC,CAAC;wBACb,MAAM,gCAAgC,CAAC;oBAExC,IAAI,CAAC,GAAG,GAAG,WAAW,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBACrE,CAAC;gBAED,8BAAM,GAAN;oBAEC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;oBAClB,EAAE,CAAA,CAAC,EAAE,CAAC,CACN,CAAC;wBACA,aAAa,CAAC,EAAE,CAAC,CAAC;wBAClB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;wBAChB,MAAM,CAAC,IAAI,CAAC;oBACb,CAAC;oBACD,MAAM,CAAC,KAAK,CAAC;gBACd,CAAC;gBAEc,qBAAO,GAAtB,UAAuB,IAAa,EAAE,CAAe;oBAEpD,EAAE,CAAA,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;wBAAC,CAAC,CAAC,MAAM,EAAE,CAAC;oBACjC,IAAI,EAAE,CAAC;gBACR,CAAC;gBAEF,oBAAC;YAAD,CAAC,AApCD,CAA4B,SAAS,GAoCpC"} \ No newline at end of file diff --git a/dist/system/System/Tasks/deferImmediate.d.ts b/dist/system/System/Tasks/deferImmediate.d.ts index 9c479d18..7181db61 100644 --- a/dist/system/System/Tasks/deferImmediate.d.ts +++ b/dist/system/System/Tasks/deferImmediate.d.ts @@ -1,8 +1,9 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based on code from: https://github.com/kriskowal/q */ +import { Closure } from "../FunctionTypes"; +import { ICancellable } from "./ICancellable"; export default function deferImmediate(task: Closure): ICancellable; export declare function runAfterDeferred(task: Closure): void; diff --git a/dist/system/System/Tasks/deferImmediate.js b/dist/system/System/Tasks/deferImmediate.js index 734862d3..aa98ee42 100644 --- a/dist/system/System/Tasks/deferImmediate.js +++ b/dist/system/System/Tasks/deferImmediate.js @@ -85,12 +85,11 @@ System.register(["../Types", "../Collections/LinkedNodeList", "../Collections/Qu Queue_1 = Queue_1_1; }], execute: function() { - "use strict"; isNodeJS = false; flushing = false; - immediateQueue = new LinkedNodeList_1.default(); - laterQueue = new Queue_1.default(); - if (Types_1.default.isObject(process) + immediateQueue = new LinkedNodeList_1.LinkedNodeList(); + laterQueue = new Queue_1.Queue(); + if (Types_1.Type.isObject(process) && process.toString() === "[object process]" && process.nextTick) { isNodeJS = true; diff --git a/dist/system/System/Tasks/deferImmediate.js.map b/dist/system/System/Tasks/deferImmediate.js.map index a37da6b2..35b6fdd3 100644 --- a/dist/system/System/Tasks/deferImmediate.js.map +++ b/dist/system/System/Tasks/deferImmediate.js.map @@ -1 +1 @@ -{"version":3,"file":"deferImmediate.js","sourceRoot":"","sources":["../../../../source/System/Tasks/deferImmediate.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"deferImmediate.js","sourceRoot":"","sources":["../../../../source/System/Tasks/deferImmediate.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/system/System/Text/RegexMatchEnumerator.d.ts b/dist/system/System/Text/RegexMatchEnumerator.d.ts index 90c0d0d9..70eb1c89 100644 --- a/dist/system/System/Text/RegexMatchEnumerator.d.ts +++ b/dist/system/System/Text/RegexMatchEnumerator.d.ts @@ -1,9 +1,9 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ import { Regex, Match } from "./RegularExpressions"; +import { IEnumerator } from "../Collections/Enumeration/IEnumerator"; export declare class RegexMatchEnumerator { private _pattern; constructor(pattern: string | RegExp | Regex); diff --git a/dist/system/System/Text/RegexMatchEnumerator.js b/dist/system/System/Text/RegexMatchEnumerator.js index ec675604..4867a682 100644 --- a/dist/system/System/Text/RegexMatchEnumerator.js +++ b/dist/system/System/Text/RegexMatchEnumerator.js @@ -31,7 +31,7 @@ System.register(["./RegularExpressions", "../Collections/Enumeration/Enumerator" RegexMatchEnumerator.prototype.matches = function (input) { var _this = this; var p; - return new EnumeratorBase_1.default(function () { + return new EnumeratorBase_1.EnumeratorBase(function () { p = 0; }, function (yielder) { var match = _this._pattern.match(input, p); diff --git a/dist/system/System/Text/RegexMatchEnumerator.js.map b/dist/system/System/Text/RegexMatchEnumerator.js.map index 2cbe3a15..e46a8290 100644 --- a/dist/system/System/Text/RegexMatchEnumerator.js.map +++ b/dist/system/System/Text/RegexMatchEnumerator.js.map @@ -1 +1 @@ -{"version":3,"file":"RegexMatchEnumerator.js","sourceRoot":"","sources":["../../../../source/System/Text/RegexMatchEnumerator.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;;;;;;;YAMH;gBAIC,8BAAY,OAA2B;oBAEtC,EAAE,CAAA,CAAC,OAAO,YAAY,0BAAK,CAAC,CAC5B,CAAC;wBACA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;oBACzB,CAAC;oBACD,IAAI,CACJ,CAAC;wBACA,IAAI,CAAC,QAAQ,GAAG,IAAI,0BAAK,CAAC,OAAO,CAAC,CAAC;oBACpC,CAAC;gBACF,CAAC;gBAED,sCAAO,GAAP,UAAQ,KAAY;oBAApB,iBAmBC;oBAjBA,IAAI,CAAQ,CAAC;oBACb,MAAM,CAAC,IAAI,wBAAc,CACxB;wBAEC,CAAC,GAAG,CAAC,CAAC;oBACP,CAAC,EACD,UAAA,OAAO;wBAEN,IAAI,KAAK,GAAS,KAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;wBAChD,EAAE,CAAA,CAAC,KAAK,CAAC,OAAO,CAAC,CACjB,CAAC;4BACA,CAAC,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;4BAC/B,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;wBACnC,CAAC;wBAED,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;oBAC7B,CAAC,CAAC,CAAC;gBACL,CAAC;gBAEM,4BAAO,GAAd,UAAe,KAAY,EAAE,OAA2B;oBAEvD,MAAM,CAAC,KAAK,IAAI,OAAO;0BACpB,CAAC,IAAI,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;0BAClD,kBAAK,CAAC;gBACV,CAAC;gBAEF,2BAAC;YAAD,CAAC,AA5CD,IA4CC;YA5CD,uDA4CC,CAAA;YAED,oBAAe,oBAAoB,CAAC,OAAO,EAAC"} \ No newline at end of file +{"version":3,"file":"RegexMatchEnumerator.js","sourceRoot":"","sources":["../../../../source/System/Text/RegexMatchEnumerator.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;;;;;;;YAOH;gBAIC,8BAAY,OAA2B;oBAEtC,EAAE,CAAA,CAAC,OAAO,YAAY,0BAAK,CAAC,CAC5B,CAAC;wBACA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;oBACzB,CAAC;oBACD,IAAI,CACJ,CAAC;wBACA,IAAI,CAAC,QAAQ,GAAG,IAAI,0BAAK,CAAC,OAAO,CAAC,CAAC;oBACpC,CAAC;gBACF,CAAC;gBAED,sCAAO,GAAP,UAAQ,KAAY;oBAApB,iBAmBC;oBAjBA,IAAI,CAAQ,CAAC;oBACb,MAAM,CAAC,IAAI,+BAAc,CACxB;wBAEC,CAAC,GAAG,CAAC,CAAC;oBACP,CAAC,EACD,UAAA,OAAO;wBAEN,IAAI,KAAK,GAAS,KAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;wBAChD,EAAE,CAAA,CAAC,KAAK,CAAC,OAAO,CAAC,CACjB,CAAC;4BACA,CAAC,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;4BAC/B,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;wBACnC,CAAC;wBAED,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;oBAC7B,CAAC,CAAC,CAAC;gBACL,CAAC;gBAEM,4BAAO,GAAd,UAAe,KAAY,EAAE,OAA2B;oBAEvD,MAAM,CAAC,KAAK,IAAI,OAAO;0BACpB,CAAC,IAAI,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;0BAClD,kBAAK,CAAC;gBACV,CAAC;gBAEF,2BAAC;YAAD,CAAC,AA5CD,IA4CC;YA5CD,uDA4CC,CAAA;YAED,oBAAe,oBAAoB,CAAC,OAAO,EAAC"} \ No newline at end of file diff --git a/dist/system/System/Text/RegularExpressions.d.ts b/dist/system/System/Text/RegularExpressions.d.ts index af3b1fbd..e3638f84 100644 --- a/dist/system/System/Text/RegularExpressions.d.ts +++ b/dist/system/System/Text/RegularExpressions.d.ts @@ -1,9 +1,11 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Named groups based on: http://trentrichardson.com/2011/08/02/javascript-regexp-match-named-captures/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { IMap } from "../Collections/Dictionaries/IDictionary"; +import { Primitive } from "../Primitive"; +import { Selector } from "../FunctionTypes"; export declare module RegexOptions { const IGNORE_CASE: string; const I: string; diff --git a/dist/system/System/Text/StringBuilder.d.ts b/dist/system/System/Text/StringBuilder.d.ts index 72f52b4c..a5ee019f 100644 --- a/dist/system/System/Text/StringBuilder.d.ts +++ b/dist/system/System/Text/StringBuilder.d.ts @@ -1,10 +1,10 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * .NET Reference: http://referencesource.microsoft.com/#mscorlib/system/text/StringBuilder.cs * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -export default class StringBuilder implements IDisposable { +import { IDisposable } from "../Disposable/IDisposable"; +export declare class StringBuilder implements IDisposable { private _partArray; private _latest; constructor(...initial: any[]); @@ -19,3 +19,4 @@ export default class StringBuilder implements IDisposable { clear(): void; dispose(): void; } +export default StringBuilder; diff --git a/dist/system/System/Text/StringBuilder.js b/dist/system/System/Text/StringBuilder.js index 5d77909c..a3abd9c6 100644 --- a/dist/system/System/Text/StringBuilder.js +++ b/dist/system/System/Text/StringBuilder.js @@ -3,8 +3,8 @@ * .NET Reference: http://referencesource.microsoft.com/#mscorlib/system/text/StringBuilder.cs * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -System.register(['../Types'], function(exports_1, context_1) { - 'use strict'; +System.register(["../Types"], function(exports_1, context_1) { + "use strict"; var __moduleName = context_1 && context_1.id; var Types_1; var VOID0, StringBuilder; @@ -31,8 +31,8 @@ System.register(['../Types'], function(exports_1, context_1) { var _ = this; _._latest = null; switch (typeof item) { - case Types_1.default.OBJECT: - case Types_1.default.FUNCTION: + case Types_1.Type.OBJECT: + case Types_1.Type.FUNCTION: item = item.toString(); break; } @@ -95,7 +95,8 @@ System.register(['../Types'], function(exports_1, context_1) { }; return StringBuilder; }()); - exports_1("default", StringBuilder); + exports_1("StringBuilder", StringBuilder); + exports_1("default",StringBuilder); } } }); diff --git a/dist/system/System/Text/StringBuilder.js.map b/dist/system/System/Text/StringBuilder.js.map index 7c38798b..ece323b8 100644 --- a/dist/system/System/Text/StringBuilder.js.map +++ b/dist/system/System/Text/StringBuilder.js.map @@ -1 +1 @@ -{"version":3,"file":"StringBuilder.js","sourceRoot":"","sources":["../../../../source/System/Text/StringBuilder.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"StringBuilder.js","sourceRoot":"","sources":["../../../../source/System/Text/StringBuilder.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/system/System/Text/Utility.js b/dist/system/System/Text/Utility.js index 1a7e5276..b0bfca30 100644 --- a/dist/system/System/Text/Utility.js +++ b/dist/system/System/Text/Utility.js @@ -79,12 +79,12 @@ System.register(["../Types"], function(exports_1, context_1) { } var r = params[n]; switch (typeof r) { - case Types_1.default.STRING: - case Types_1.default.NUMBER: - case Types_1.default.BOOLEAN: + case Types_1.Type.STRING: + case Types_1.Type.NUMBER: + case Types_1.Type.BOOLEAN: return r; default: - return (r && Types_1.default.hasMemberOfType(r, "toString", Types_1.default.FUNCTION)) + return (r && Types_1.Type.hasMemberOfType(r, "toString", Types_1.Type.FUNCTION)) ? r.toString() : a; } @@ -92,7 +92,7 @@ System.register(["../Types"], function(exports_1, context_1) { } exports_1("supplant", supplant); function canMatch(source, match) { - if (!Types_1.default.isString(source) || !match) + if (!Types_1.Type.isString(source) || !match) return false; if (source === match) return true; @@ -101,12 +101,12 @@ System.register(["../Types"], function(exports_1, context_1) { } function startsWith(source, pattern) { var m = canMatch(source, pattern); - return Types_1.default.isBoolean(m) ? m : source.indexOf(pattern) == 0; + return Types_1.Type.isBoolean(m) ? m : source.indexOf(pattern) == 0; } exports_1("startsWith", startsWith); function endsWith(source, pattern) { var m = canMatch(source, pattern); - return Types_1.default.isBoolean(m) ? m : source.lastIndexOf(pattern) == (source.length - pattern.length); + return Types_1.Type.isBoolean(m) ? m : source.lastIndexOf(pattern) == (source.length - pattern.length); } exports_1("endsWith", endsWith); return { diff --git a/dist/system/System/Text/Utility.js.map b/dist/system/System/Text/Utility.js.map index 4d556da1..e2719369 100644 --- a/dist/system/System/Text/Utility.js.map +++ b/dist/system/System/Text/Utility.js.map @@ -1 +1 @@ -{"version":3,"file":"Utility.js","sourceRoot":"","sources":["../../../../source/System/Text/Utility.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Utility.js","sourceRoot":"","sources":["../../../../source/System/Text/Utility.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;QAIU,KAAK;IAOlB,qBAA4B,MAAa;QAExC,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QACjB,EAAE,CAAA,CAAC,MAAM,CAAC,MAAM,IAAE,CAAC,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC;QACjC,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAC,CAAC,EAAE,CAAC,EAAE,EAC1C,CAAC;YACA,IAAI,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,GAAG,CAAC,CAAC,IAAI,IAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,CAAC;QACX,CAAC;QACD,MAAM,CAAC,IAAI,CAAC;IACb,CAAC;IAXD,qCAWC,CAAA;IAED,gBAAuB,MAAa,EAAE,KAAY;QAEjD,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,EAAE,CAAA,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CACjB,CAAC;YACA,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAC,KAAK,EAAE,CAAC,EAAE,EAC3B,CAAC;gBACA,MAAM,IAAI,MAAM,CAAC;YAClB,CAAC;QACF,CAAC;QACD,MAAM,CAAC,MAAM,CAAC;IACf,CAAC;IAXD,2BAWC,CAAA;IAID,mBAA0B,SAAa,EAAE,KAAgB;QAAhB,qBAAgB,GAAhB,SAAgB;QAExD,EAAE,CAAA,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAC5B,CAAC;YACA,IAAI,MAAM,GAAG,KAAK,CAAC;YACnB,GAAG,CAAA,CAAa,UAAS,EAAT,uBAAS,EAAT,uBAAS,EAAT,IAAS,CAAC;gBAAtB,IAAI,IAAI,kBAAA;gBAEX,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;aACpC;YACD,MAAM,CAAC,MAAM,CAAC;QACf,CAAC;QACD,IAAI,CACJ,CAAC;YACA,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC;QACtD,CAAC;IACF,CAAC;IAfD,iCAeC,CAAA;IAOD,sBAA6B,MAAa;QAEzC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,qCAAqC,EAAE,MAAM,CAAC,CAAC;IACtE,CAAC;IAHD,uCAGC,CAAA;IAUD,cAAqB,MAAa,EAAE,KAAsB,EAAE,UAAmB;QAE9E,EAAE,CAAA,CAAC,KAAK,KAAG,KAAK,CAAC;YAAC,MAAM,CAAC,MAAM,CAAC;QAChC,EAAE,CAAA,CAAC,KAAK,CAAC,CACT,CAAC;YACA,IAAI,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,GAAW,KAAK,CAAC,CAAC;YAChF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,EAAE,GAAG,GAAG,CAAC,UAAU;kBACzF,GAAG;kBACH,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAZD,uBAYC,CAAA;IAQD,gBAAuB,MAAa;QAAE,cAAa;aAAb,WAAa,CAAb,sBAAa,CAAb,IAAa;YAAb,6BAAa;;QAElD,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC;IAHD,2BAGC,CAAA;IAaD,kBAAyB,MAAa,EAAE,MAA+B;QAEtE,IAAI,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,EACpC,UAAC,CAAQ,EAAE,CAAQ;YAElB,IAAI,CAAC,GAAO,CAAC,CAAC;YACd,EAAE,CAAA,CAAC,QAAQ,CAAC,CACZ,CAAC;gBACA,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACpB,EAAE,CAAA,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAAC,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC;YAED,IAAI,CAAC,GAAS,MAAO,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,CAAA,CAAC,OAAO,CAAC,CAAC,CAChB,CAAC;gBACA,KAAK,YAAI,CAAC,MAAM,CAAC;gBACjB,KAAK,YAAI,CAAC,MAAM,CAAC;gBACjB,KAAK,YAAI,CAAC,OAAO;oBAChB,MAAM,CAAC,CAAC,CAAC;gBACV;oBACC,MAAM,CAAC,CAAC,CAAC,IAAI,YAAI,CAAC,eAAe,CAAC,CAAC,EAAE,UAAU,EAAE,YAAI,CAAC,QAAQ,CAAC,CAAC;0BAC7D,CAAC,CAAC,QAAQ,EAAE;0BACZ,CAAC,CAAC;YACP,CAAC;QACF,CAAC,CACD,CAAC;IACH,CAAC;IA3BD,+BA2BC,CAAA;IAGD,kBAAkB,MAAa,EAAE,KAAY;QAC5C,EAAE,CAAA,CAAC,CAAC,YAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;YAAC,MAAM,CAAC,KAAK,CAAC;QAClD,EAAE,CAAA,CAAC,MAAM,KAAG,KAAK,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC;QAC/B,EAAE,CAAA,CAAC,KAAK,CAAC,MAAM,GAAC,MAAM,CAAC,MAAM,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC;IAC5C,CAAC;IAQD,oBAA2B,MAAa,EAAE,OAAc;QAEvD,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAC,OAAO,CAAC,CAAC;QACjC,MAAM,CAAC,YAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAE,CAAC,CAAC;IAC3D,CAAC;IAJD,mCAIC,CAAA;IAQD,kBAAyB,MAAa,EAAE,OAAc;QAErD,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAC,OAAO,CAAC,CAAC;QACjC,MAAM,CAAC,YAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,IAAE,CAAC,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9F,CAAC;IAJD,+BAIC,CAAA;;;;;;;YApKY,mBAAA,KAAK,GAAU,EAAE,CAAA,CAAC"} \ No newline at end of file diff --git a/dist/system/System/Time/ClockTime.d.ts b/dist/system/System/Time/ClockTime.d.ts index ad96902a..b06f5d2c 100644 --- a/dist/system/System/Time/ClockTime.d.ts +++ b/dist/system/System/Time/ClockTime.d.ts @@ -1,13 +1,11 @@ -/// -/// -/// -/// -/// -/// -/// -/// -import TimeQuantity from './TimeQuantity'; -export default class ClockTime extends TimeQuantity implements IClockTime { +/*! + * @author electricessence / https://github.com/electricessence/ + * Originally based upon .NET source but with many additions and improvements. + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +import { TimeQuantity } from "./TimeQuantity"; +import { IClockTime } from "./ITimeStamp"; +export declare class ClockTime extends TimeQuantity implements IClockTime { days: number; hour: number; minute: number; @@ -20,3 +18,4 @@ export default class ClockTime extends TimeQuantity implements IClockTime { static millisecondsFromTime(hours: number, minutes: number, seconds?: number, milliseconds?: number): number; toString(): string; } +export default ClockTime; diff --git a/dist/system/System/Time/ClockTime.js b/dist/system/System/Time/ClockTime.js index 023820a5..b2172af4 100644 --- a/dist/system/System/Time/ClockTime.js +++ b/dist/system/System/Time/ClockTime.js @@ -1,5 +1,10 @@ -System.register(['./TimeQuantity'], function(exports_1, context_1) { - 'use strict'; +/*! + * @author electricessence / https://github.com/electricessence/ + * Originally based upon .NET source but with many additions and improvements. + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +System.register(["./TimeQuantity"], function(exports_1, context_1) { + "use strict"; var __moduleName = context_1 && context_1.id; var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; @@ -76,8 +81,9 @@ System.register(['./TimeQuantity'], function(exports_1, context_1) { return a.join(", ").replace(", and, ", " and "); }; return ClockTime; - }(TimeQuantity_1.default)); - exports_1("default", ClockTime); + }(TimeQuantity_1.TimeQuantity)); + exports_1("ClockTime", ClockTime); + exports_1("default",ClockTime); } } }); diff --git a/dist/system/System/Time/ClockTime.js.map b/dist/system/System/Time/ClockTime.js.map index 4e9e67e4..ce2de4ff 100644 --- a/dist/system/System/Time/ClockTime.js.map +++ b/dist/system/System/Time/ClockTime.js.map @@ -1 +1 @@ -{"version":3,"file":"ClockTime.js","sourceRoot":"","sources":["../../../../source/System/Time/ClockTime.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ClockTime.js","sourceRoot":"","sources":["../../../../source/System/Time/ClockTime.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/system/System/Time/DateTime.d.ts b/dist/system/System/Time/DateTime.d.ts index 6636427a..dd375441 100644 --- a/dist/system/System/Time/DateTime.d.ts +++ b/dist/system/System/Time/DateTime.d.ts @@ -1,16 +1,15 @@ -/// -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Based on .NET DateTime's interface. * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import ClockTime from './ClockTime'; -import TimeSpan from './TimeSpan'; -declare class DateTime implements ICalendarDate, IDateTime { +import { ICalendarDate, ITimeStamp } from "./ITimeStamp"; +import { TimeSpan } from "./TimeSpan"; +import { ClockTime } from "./ClockTime"; +import { IDateTime } from "./IDateTime"; +import { Gregorian } from "./Calendars"; +import { ITimeQuantity } from "./ITimeQuantity"; +export declare class DateTime implements ICalendarDate, IDateTime { private _value; toJsDate(): Date; private _setJsDate(value); @@ -47,7 +46,7 @@ declare class DateTime implements ICalendarDate, IDateTime { static isLeapYear(year: number): boolean; static daysInMonth(year: number, month: Gregorian.Month): number; } -declare module DateTime { +export declare module DateTime { const enum Kind { Unspecified = 0, Local = 1, diff --git a/dist/system/System/Time/DateTime.js b/dist/system/System/Time/DateTime.js index c9dffd82..3eb06d2f 100644 --- a/dist/system/System/Time/DateTime.js +++ b/dist/system/System/Time/DateTime.js @@ -3,19 +3,19 @@ * Based on .NET DateTime's interface. * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -System.register(['./ClockTime', './TimeSpan', './TimeStamp'], function(exports_1, context_1) { - 'use strict'; +System.register(["./TimeSpan", "./ClockTime", "./TimeStamp"], function(exports_1, context_1) { + "use strict"; var __moduleName = context_1 && context_1.id; - var ClockTime_1, TimeSpan_1, TimeStamp_1; + var TimeSpan_1, ClockTime_1, TimeStamp_1; var DateTime; return { setters:[ - function (ClockTime_1_1) { - ClockTime_1 = ClockTime_1_1; - }, function (TimeSpan_1_1) { TimeSpan_1 = TimeSpan_1_1; }, + function (ClockTime_1_1) { + ClockTime_1 = ClockTime_1_1; + }, function (TimeStamp_1_1) { TimeStamp_1 = TimeStamp_1_1; }], @@ -131,7 +131,7 @@ System.register(['./ClockTime', './TimeSpan', './TimeStamp'], function(exports_1 var _ = this, t = _._time; if (!t) { var d = this._value; - _._time = t = new ClockTime_1.default(d.getHours(), d.getMinutes(), d.getSeconds(), d.getMilliseconds()); + _._time = t = new ClockTime_1.ClockTime(d.getHours(), d.getMinutes(), d.getSeconds(), d.getMilliseconds()); } return t; }, @@ -139,7 +139,7 @@ System.register(['./ClockTime', './TimeSpan', './TimeStamp'], function(exports_1 configurable: true }); DateTime.prototype.toTimeStamp = function () { - return TimeStamp_1.default.from(this); + return TimeStamp_1.TimeStamp.from(this); }; Object.defineProperty(DateTime, "now", { get: function () { @@ -176,7 +176,7 @@ System.register(['./ClockTime', './TimeSpan', './TimeStamp'], function(exports_1 }); DateTime.between = function (first, last) { var f = first instanceof DateTime ? first._value : first, l = last instanceof DateTime ? last._value : last; - return new TimeSpan_1.default(f.getTime() - l.getTime()); + return new TimeSpan_1.TimeSpan(f.getTime() - l.getTime()); }; DateTime.isLeapYear = function (year) { return ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0); @@ -186,6 +186,7 @@ System.register(['./ClockTime', './TimeSpan', './TimeStamp'], function(exports_1 }; return DateTime; }()); + exports_1("DateTime", DateTime); Object.freeze(DateTime); exports_1("default",DateTime); } diff --git a/dist/system/System/Time/DateTime.js.map b/dist/system/System/Time/DateTime.js.map index be90f44d..8d999adf 100644 --- a/dist/system/System/Time/DateTime.js.map +++ b/dist/system/System/Time/DateTime.js.map @@ -1 +1 @@ -{"version":3,"file":"DateTime.js","sourceRoot":"","sources":["../../../../source/System/Time/DateTime.ts"],"names":[],"mappings":"AAKA;;;;GAIG;;IAEH,YAAY,CAAC;;;;;;;;;;;;;;;;YAQb;gBAoBC,kBAAY,KAAsB,EAAE,IAAwC;oBAAhE,qBAAsB,GAAtB,YAAgB,IAAI,EAAE;oBAAE,oBAAwC,GAAxC,QAAwC;oBAE3E,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;oBACf,EAAE,CAAA,CAAC,KAAK,YAAY,QAAQ,CAAC;wBAC5B,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;oBAC7B,IAAI,CAAC,EAAE,CAAA,CAAC,KAAK,YAAY,IAAI,CAAC;wBAC7B,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;oBACrB,IAAI;wBACH,CAAC,CAAC,MAAM,GAAG,KAAK,KAAG,KAAI,CAAC,CAAC,CAAC;8BACvB,IAAI,IAAI,EAAE;8BACV,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrB,CAAC;gBA5BD,2BAAQ,GAAR;oBAEC,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;gBACxC,CAAC;gBAEO,6BAAU,GAAlB,UAAmB,KAAU;oBAE5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;oBAClB,IAAI,CAAC,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBACzC,CAAC;gBAsBD,sBAAI,0BAAI;yBAAR;wBAEC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;oBACnB,CAAC;;;mBAAA;gBAED,sBAAI,0BAAI;yBAAR;wBAEC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;oBAClC,CAAC;;;mBAAA;gBAMD,sBAAI,2BAAK;yBAAT;wBAEC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;oBAC/B,CAAC;;;mBAAA;gBAMD,sBAAI,yBAAG;yBAAP;wBAEC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBAC9B,CAAC;;;mBAAA;gBAED,sBAAI,+BAAS;yBAAb;wBAEC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;oBAC7B,CAAC;;;mBAAA;gBAGD,kCAAe,GAAf,UAAgB,EAAS;oBAExB,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;oBACb,MAAM,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC7D,CAAC;gBAED,6BAAU,GAAV,UAAW,OAAc;oBAExB,OAAO,GAAG,OAAO,IAAI,CAAC,CAAC;oBACvB,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,GAAC,IAA+B,CAAC,CAAC;gBACtE,CAAC;gBAED,6BAAU,GAAV,UAAW,OAAc;oBAExB,OAAO,GAAG,OAAO,IAAI,CAAC,CAAC;oBACvB,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,GAAC,KAA+B,CAAC,CAAC;gBACtE,CAAC;gBAED,2BAAQ,GAAR,UAAS,KAAY;oBAEpB,KAAK,GAAG,KAAK,IAAI,CAAC,CAAC;oBACnB,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,GAAC,OAA6B,CAAC,CAAC;gBAClE,CAAC;gBAED,0BAAO,GAAP,UAAQ,IAAW;oBAElB,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC;oBACjB,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,GAAC,QAA4B,CAAC,CAAC;gBAChE,CAAC;gBAED,4BAAS,GAAT,UAAU,MAAa;oBAEtB,MAAM,GAAG,MAAM,IAAI,CAAC,CAAC;oBACrB,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACxB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAC,MAAM,CAAC,CAAC;oBAChC,MAAM,CAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBACpC,CAAC;gBAED,2BAAQ,GAAR,UAAS,KAAY;oBAEpB,KAAK,GAAG,KAAK,IAAI,CAAC,CAAC;oBACnB,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACxB,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,EAAE,GAAC,KAAK,CAAC,CAAC;oBACrC,MAAM,CAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBACpC,CAAC;gBAQD,sBAAG,GAAH,UAAI,IAAkB;oBAErB,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;gBAC1D,CAAC;gBAOD,2BAAQ,GAAR,UAAS,IAAkB;oBAE1B,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;gBAC3D,CAAC;gBAOD,kCAAe,GAAf,UAAgB,QAAsB;oBAErC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBACzC,CAAC;gBAKD,sBAAI,0BAAI;yBAAR;wBAEC,IAAI,CAAC,GAAG,IAAI,CAAC;wBACb,MAAM,CAAC,IAAI,QAAQ,CAClB,IAAI,IAAI,CACP,CAAC,CAAC,IAAI,EACN,CAAC,CAAC,KAAK,EACP,CAAC,CAAC,GAAG,CACL,EACC,CAAC,CAAC,KAAK,CACT,CAAC;oBACH,CAAC;;;mBAAA;gBAQD,sBAAI,+BAAS;yBAAb;wBAEC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;wBAC1B,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,CACN,CAAC;4BACA,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;4BACpB,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,mBAAS,CAC1B,CAAC,CAAC,QAAQ,EAAE,EACZ,CAAC,CAAC,UAAU,EAAE,EACd,CAAC,CAAC,UAAU,EAAE,EACd,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;wBACvB,CAAC;wBACD,MAAM,CAAC,CAAC,CAAC;oBACV,CAAC;;;mBAAA;gBAKD,8BAAW,GAAX;oBACC,MAAM,CAAC,mBAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC7B,CAAC;gBAMD,sBAAW,eAAG;yBAAd;wBAEC,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;oBACvB,CAAC;;;mBAAA;gBAMD,sBAAI,qCAAe;yBAAnB;wBAEC,IAAI,CAAC,GAAG,IAAI,CAAC;wBACb,EAAE,CAAA,CAAC,CAAC,CAAC,KAAK,IAAE,CAAmB,CAAC;4BAC/B,MAAM,CAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;wBAEjC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;wBACjB,MAAM,CAAC,IAAI,QAAQ,CAClB,IAAI,IAAI,CACP,CAAC,CAAC,cAAc,EAAE,EAClB,CAAC,CAAC,WAAW,EAAE,EACf,CAAC,CAAC,UAAU,EAAE,EACd,CAAC,CAAC,WAAW,EAAE,EACf,CAAC,CAAC,aAAa,EAAE,EACjB,CAAC,CAAC,aAAa,EAAE,EACjB,CAAC,CAAC,kBAAkB,EAAE,CACtB,EACD,CAAiB,CACjB,CAAC;oBACH,CAAC;;;mBAAA;gBAMD,sBAAW,iBAAK;yBAAhB;wBAEC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAC1B,CAAC;;;mBAAA;gBAMD,sBAAW,oBAAQ;yBAAnB;wBAEC,IAAI,KAAK,GAAY,QAAQ,CAAC,KAAK,CAAC;wBACpC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBACzB,CAAC;;;mBAAA;gBAOM,gBAAO,GAAd,UAAe,KAAmB,EAAE,IAAkB;oBAErD,IAAI,CAAC,GAAQ,KAAK,YAAY,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAS,KAAK,EAC/D,CAAC,GAAQ,IAAI,YAAY,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAS,IAAI,CAAC;oBAEjE,MAAM,CAAC,IAAI,kBAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;gBAChD,CAAC;gBAQM,mBAAU,GAAjB,UAAkB,IAAW;oBAC5B,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;gBACpE,CAAC;gBAQM,oBAAW,GAAlB,UAAmB,IAAW,EAAE,KAAqB;oBAEpD,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,EAAC,KAAK,GAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC7C,CAAC;gBAGF,eAAC;YAAD,CAAC,AAtRD,IAsRC;YAYD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAExB,oBAAe,QAAQ,EAAC"} \ No newline at end of file +{"version":3,"file":"DateTime.js","sourceRoot":"","sources":["../../../../source/System/Time/DateTime.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;YAYH;gBAoBC,kBAAY,KAAsB,EAAE,IAAwC;oBAAhE,qBAAsB,GAAtB,YAAgB,IAAI,EAAE;oBAAE,oBAAwC,GAAxC,QAAwC;oBAE3E,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;oBACf,EAAE,CAAA,CAAC,KAAK,YAAY,QAAQ,CAAC;wBAC5B,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;oBAC7B,IAAI,CAAC,EAAE,CAAA,CAAC,KAAK,YAAY,IAAI,CAAC;wBAC7B,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;oBACrB,IAAI;wBACH,CAAC,CAAC,MAAM,GAAG,KAAK,KAAI,KAAI,CAAC,CAAC,CAAC;8BACxB,IAAI,IAAI,EAAE;8BACV,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrB,CAAC;gBA5BD,2BAAQ,GAAR;oBAEC,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;gBACxC,CAAC;gBAEO,6BAAU,GAAlB,UAAmB,KAAU;oBAE5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;oBAClB,IAAI,CAAC,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBACzC,CAAC;gBAsBD,sBAAI,0BAAI;yBAAR;wBAEC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;oBACnB,CAAC;;;mBAAA;gBAED,sBAAI,0BAAI;yBAAR;wBAEC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;oBAClC,CAAC;;;mBAAA;gBAMD,sBAAI,2BAAK;yBAAT;wBAEC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;oBAC/B,CAAC;;;mBAAA;gBAMD,sBAAI,yBAAG;yBAAP;wBAEC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBAC9B,CAAC;;;mBAAA;gBAED,sBAAI,+BAAS;yBAAb;wBAEC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;oBAC7B,CAAC;;;mBAAA;gBAGD,kCAAe,GAAf,UAAgB,EAAS;oBAExB,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;oBACb,MAAM,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC7D,CAAC;gBAED,6BAAU,GAAV,UAAW,OAAc;oBAExB,OAAO,GAAG,OAAO,IAAI,CAAC,CAAC;oBACvB,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,GAAC,IAAuB,CAAC,CAAC;gBAC9D,CAAC;gBAED,6BAAU,GAAV,UAAW,OAAc;oBAExB,OAAO,GAAG,OAAO,IAAI,CAAC,CAAC;oBACvB,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,GAAC,KAAuB,CAAC,CAAC;gBAC9D,CAAC;gBAED,2BAAQ,GAAR,UAAS,KAAY;oBAEpB,KAAK,GAAG,KAAK,IAAI,CAAC,CAAC;oBACnB,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,GAAC,OAAqB,CAAC,CAAC;gBAC1D,CAAC;gBAED,0BAAO,GAAP,UAAQ,IAAW;oBAElB,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC;oBACjB,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,GAAC,QAAoB,CAAC,CAAC;gBACxD,CAAC;gBAED,4BAAS,GAAT,UAAU,MAAa;oBAEtB,MAAM,GAAG,MAAM,IAAI,CAAC,CAAC;oBACrB,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACxB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,CAAC;oBAClC,MAAM,CAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBACpC,CAAC;gBAED,2BAAQ,GAAR,UAAS,KAAY;oBAEpB,KAAK,GAAG,KAAK,IAAI,CAAC,CAAC;oBACnB,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACxB,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,CAAC;oBACvC,MAAM,CAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBACpC,CAAC;gBAQD,sBAAG,GAAH,UAAI,IAAkB;oBAErB,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;gBAC1D,CAAC;gBAOD,2BAAQ,GAAR,UAAS,IAAkB;oBAE1B,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;gBAC3D,CAAC;gBAOD,kCAAe,GAAf,UAAgB,QAAsB;oBAErC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBACzC,CAAC;gBAKD,sBAAI,0BAAI;yBAAR;wBAEC,IAAI,CAAC,GAAG,IAAI,CAAC;wBACb,MAAM,CAAC,IAAI,QAAQ,CAClB,IAAI,IAAI,CACP,CAAC,CAAC,IAAI,EACN,CAAC,CAAC,KAAK,EACP,CAAC,CAAC,GAAG,CACL,EACC,CAAC,CAAC,KAAK,CACT,CAAC;oBACH,CAAC;;;mBAAA;gBAQD,sBAAI,+BAAS;yBAAb;wBAEC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;wBAC1B,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,CACN,CAAC;4BACA,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;4BACpB,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,qBAAS,CAC1B,CAAC,CAAC,QAAQ,EAAE,EACZ,CAAC,CAAC,UAAU,EAAE,EACd,CAAC,CAAC,UAAU,EAAE,EACd,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;wBACvB,CAAC;wBACD,MAAM,CAAC,CAAC,CAAC;oBACV,CAAC;;;mBAAA;gBAKD,8BAAW,GAAX;oBAEC,MAAM,CAAC,qBAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC7B,CAAC;gBAMD,sBAAW,eAAG;yBAAd;wBAEC,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;oBACvB,CAAC;;;mBAAA;gBAMD,sBAAI,qCAAe;yBAAnB;wBAEC,IAAI,CAAC,GAAG,IAAI,CAAC;wBACb,EAAE,CAAA,CAAC,CAAC,CAAC,KAAK,IAAE,CAAmB,CAAC;4BAC/B,MAAM,CAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;wBAEjC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;wBACjB,MAAM,CAAC,IAAI,QAAQ,CAClB,IAAI,IAAI,CACP,CAAC,CAAC,cAAc,EAAE,EAClB,CAAC,CAAC,WAAW,EAAE,EACf,CAAC,CAAC,UAAU,EAAE,EACd,CAAC,CAAC,WAAW,EAAE,EACf,CAAC,CAAC,aAAa,EAAE,EACjB,CAAC,CAAC,aAAa,EAAE,EACjB,CAAC,CAAC,kBAAkB,EAAE,CACtB,EACD,CAAiB,CACjB,CAAC;oBACH,CAAC;;;mBAAA;gBAMD,sBAAW,iBAAK;yBAAhB;wBAEC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAC1B,CAAC;;;mBAAA;gBAMD,sBAAW,oBAAQ;yBAAnB;wBAEC,IAAI,KAAK,GAAY,QAAQ,CAAC,KAAK,CAAC;wBACpC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBACzB,CAAC;;;mBAAA;gBAOM,gBAAO,GAAd,UAAe,KAAmB,EAAE,IAAkB;oBAErD,IAAI,CAAC,GAAQ,KAAK,YAAY,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAS,KAAK,EAC/D,CAAC,GAAQ,IAAI,YAAY,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAS,IAAI,CAAC;oBAEjE,MAAM,CAAC,IAAI,mBAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;gBAChD,CAAC;gBAQM,mBAAU,GAAjB,UAAkB,IAAW;oBAE5B,MAAM,CAAC,CAAC,CAAC,IAAI,GAAC,CAAC,IAAE,CAAC,CAAC,IAAI,CAAC,IAAI,GAAC,GAAG,IAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAC,GAAG,IAAE,CAAC,CAAC,CAAC;gBACxD,CAAC;gBAQM,oBAAW,GAAlB,UAAmB,IAAW,EAAE,KAAqB;oBAGpD,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;gBACjD,CAAC;gBAGF,eAAC;YAAD,CAAC,AAzRD,IAyRC;YAzRD,+BAyRC,CAAA;YAYD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAExB,oBAAe,QAAQ,EAAC"} \ No newline at end of file diff --git a/dist/system/System/Time/HowMany.d.ts b/dist/system/System/Time/HowMany.d.ts deleted file mode 100644 index 314a22e2..00000000 --- a/dist/system/System/Time/HowMany.d.ts +++ /dev/null @@ -1,41 +0,0 @@ -/*! - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -declare module HowMany { - module Hours { - const enum Per { - Day = 24, - } - } - module Minutes { - const enum Per { - Hour = 60, - Day = 1440, - } - } - module Seconds { - const enum Per { - Minute = 60, - Hour = 3600, - Day = 86400, - } - } - module Milliseconds { - const enum Per { - Second = 1000, - Minute = 60000, - Hour = 3600000, - Day = 86400000, - } - } - module Ticks { - const enum Per { - Millisecond = 10000, - Second = 10000000, - Minute = 600000000, - Hour = 36000000000, - Day = 864000000000, - } - } -} diff --git a/dist/system/System/Time/HowMany.js b/dist/system/System/Time/HowMany.js deleted file mode 100644 index 0ad64868..00000000 --- a/dist/system/System/Time/HowMany.js +++ /dev/null @@ -1,5 +0,0 @@ -/*! - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -//# sourceMappingURL=HowMany.js.map \ No newline at end of file diff --git a/dist/system/System/Time/HowMany.js.map b/dist/system/System/Time/HowMany.js.map deleted file mode 100644 index 82128061..00000000 --- a/dist/system/System/Time/HowMany.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"HowMany.js","sourceRoot":"","sources":["../../../../source/System/Time/HowMany.ts"],"names":[],"mappings":"AAAA;;;GAGG"} \ No newline at end of file diff --git a/dist/system/System/Time/TimeQuantity.d.ts b/dist/system/System/Time/TimeQuantity.d.ts index 87e860d0..c6d68ba4 100644 --- a/dist/system/System/Time/TimeQuantity.d.ts +++ b/dist/system/System/Time/TimeQuantity.d.ts @@ -1,13 +1,13 @@ -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import TimeUnit from './TimeUnit'; -export default class TimeQuantity implements IEquatable, IComparable, ITimeQuantity { +import { TimeUnit } from "./TimeUnit"; +import { IEquatable } from "../IEquatable"; +import { IComparable } from "../IComparable"; +import { ITimeQuantity } from "./ITimeQuantity"; +import { ITimeMeasurement } from "./ITimeMeasurement"; +export declare class TimeQuantity implements IEquatable, IComparable, ITimeQuantity { protected _quantity: number; constructor(_quantity?: number); getTotalMilliseconds(): number; @@ -18,3 +18,4 @@ export default class TimeQuantity implements IEquatable, ICompara total: ITimeMeasurement; getTotal(units: TimeUnit): number; } +export default TimeQuantity; diff --git a/dist/system/System/Time/TimeQuantity.js b/dist/system/System/Time/TimeQuantity.js index db18ffa8..949e2993 100644 --- a/dist/system/System/Time/TimeQuantity.js +++ b/dist/system/System/Time/TimeQuantity.js @@ -2,8 +2,8 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -System.register(['../Compare', './TimeUnit'], function(exports_1, context_1) { - 'use strict'; +System.register(["../Compare", "./TimeUnit"], function(exports_1, context_1) { + "use strict"; var __moduleName = context_1 && context_1.id; var Compare_1, TimeUnit_1; var TimeQuantity; @@ -57,11 +57,12 @@ System.register(['../Compare', './TimeUnit'], function(exports_1, context_1) { configurable: true }); TimeQuantity.prototype.getTotal = function (units) { - return TimeUnit_1.default.fromMilliseconds(this.getTotalMilliseconds(), units); + return TimeUnit_1.TimeUnit.fromMilliseconds(this.getTotalMilliseconds(), units); }; return TimeQuantity; }()); - exports_1("default", TimeQuantity); + exports_1("TimeQuantity", TimeQuantity); + exports_1("default",TimeQuantity); } } }); diff --git a/dist/system/System/Time/TimeQuantity.js.map b/dist/system/System/Time/TimeQuantity.js.map index 4024ffa6..82583ea4 100644 --- a/dist/system/System/Time/TimeQuantity.js.map +++ b/dist/system/System/Time/TimeQuantity.js.map @@ -1 +1 @@ -{"version":3,"file":"TimeQuantity.js","sourceRoot":"","sources":["../../../../source/System/Time/TimeQuantity.ts"],"names":[],"mappings":"AAAA;;;GAGG;;IAMH,YAAY,CAAC;;;;;;;;;;;;;YAQb;gBAIC,sBAAsB,SAAoB;oBAA9B,yBAA8B,GAA9B,aAA8B;oBAApB,cAAS,GAAT,SAAS,CAAW;gBAE1C,CAAC;gBAGD,2CAAoB,GAApB;oBAEC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;gBACvB,CAAC;gBAMD,sBAAI,mCAAS;yBAAb;wBAEC,MAAM,CAAC,iBAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC,CAAC;oBAChD,CAAC;;;mBAAA;gBAOD,6BAAM,GAAN,UAAO,KAAmB;oBAEzB,MAAM,CAAC,kBAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBAChG,CAAC;gBAOD,gCAAS,GAAT,UAAU,KAAmB;oBAE5B,MAAM,CAAC,iBAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBAC/F,CAAC;gBAUD,sBAAI,+BAAK;yBAAT;wBAEC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;wBACpB,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,CACN,CAAC;4BACA,IAAI,EAAE,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;4BAErC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAqB,MAAM,CAAC,MAAM,CAAC;gCACjD,KAAK,EAAE,EAAE,GAAC,KAA6B;gCACvC,YAAY,EAAE,EAAE;gCAChB,OAAO,EAAE,EAAE,GAAC,IAA+B;gCAC3C,OAAO,EAAE,EAAE,GAAC,KAA+B;gCAC3C,KAAK,EAAE,EAAE,GAAC,OAA6B;gCACvC,IAAI,EAAE,EAAE,GAAC,QAA4B;6BACrC,CAAC,CAAC;wBACJ,CAAC;wBACD,MAAM,CAAC,CAAC,CAAC;oBACV,CAAC;;;mBAAA;gBAOD,+BAAQ,GAAR,UAAS,KAAc;oBAEtB,MAAM,CAAC,kBAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,KAAK,CAAC,CAAC;gBACtE,CAAC;gBACF,mBAAC;YAAD,CAAC,AA/ED,IA+EC;YA/ED,kCA+EC,CAAA"} \ No newline at end of file +{"version":3,"file":"TimeQuantity.js","sourceRoot":"","sources":["../../../../source/System/Time/TimeQuantity.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;;;;YAcH;gBAGC,sBAAsB,SAAoB;oBAA9B,yBAA8B,GAA9B,aAA8B;oBAApB,cAAS,GAAT,SAAS,CAAW;gBAE1C,CAAC;gBAGD,2CAAoB,GAApB;oBAEC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;gBACvB,CAAC;gBAMD,sBAAI,mCAAS;yBAAb;wBAEC,MAAM,CAAC,iBAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC,CAAC;oBAChD,CAAC;;;mBAAA;gBAOD,6BAAM,GAAN,UAAO,KAAmB;oBAEzB,MAAM,CAAC,kBAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBAChG,CAAC;gBAOD,gCAAS,GAAT,UAAU,KAAmB;oBAE5B,MAAM,CAAC,iBAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBAC/F,CAAC;gBAUD,sBAAI,+BAAK;yBAAT;wBAEC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;wBACpB,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,CACN,CAAC;4BACA,IAAI,EAAE,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;4BAErC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAqB,MAAM,CAAC,MAAM,CAAC;gCACjD,KAAK,EAAE,EAAE,GAAC,KAAqB;gCAC/B,YAAY,EAAE,EAAE;gCAChB,OAAO,EAAE,EAAE,GAAC,IAAuB;gCACnC,OAAO,EAAE,EAAE,GAAC,KAAuB;gCACnC,KAAK,EAAE,EAAE,GAAC,OAAqB;gCAC/B,IAAI,EAAE,EAAE,GAAC,QAAoB;6BAC7B,CAAC,CAAC;wBACJ,CAAC;wBACD,MAAM,CAAC,CAAC,CAAC;oBACV,CAAC;;;mBAAA;gBAOD,+BAAQ,GAAR,UAAS,KAAc;oBAEtB,MAAM,CAAC,mBAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,KAAK,CAAC,CAAC;gBACtE,CAAC;gBACF,mBAAC;YAAD,CAAC,AA9ED,IA8EC;YA9ED,uCA8EC,CAAA;YAED,oBAAe,YAAY,EAAC"} \ No newline at end of file diff --git a/dist/system/System/Time/TimeSpan.d.ts b/dist/system/System/Time/TimeSpan.d.ts index 49f060e5..03f0dba3 100644 --- a/dist/system/System/Time/TimeSpan.d.ts +++ b/dist/system/System/Time/TimeSpan.d.ts @@ -1,16 +1,14 @@ -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Originally based upon .NET source but with many additions and improvements. * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import TimeUnit from './TimeUnit'; -import ClockTime from './ClockTime'; -import TimeQuantity from './TimeQuantity'; -export default class TimeSpan extends TimeQuantity implements ITimeMeasurement { +import { TimeUnit } from "./TimeUnit"; +import { ClockTime } from "./ClockTime"; +import { TimeQuantity } from "./TimeQuantity"; +import { ITimeMeasurement } from "./ITimeMeasurement"; +import { ITimeQuantity } from "./ITimeQuantity"; +export declare class TimeSpan extends TimeQuantity implements ITimeMeasurement { ticks: number; milliseconds: number; seconds: number; @@ -32,3 +30,4 @@ export default class TimeSpan extends TimeQuantity implements ITimeMeasurement { static fromTicks(value: number): TimeSpan; static zero: TimeSpan; } +export default TimeSpan; diff --git a/dist/system/System/Time/TimeSpan.js b/dist/system/System/Time/TimeSpan.js index 58153b0b..e7341776 100644 --- a/dist/system/System/Time/TimeSpan.js +++ b/dist/system/System/Time/TimeSpan.js @@ -3,8 +3,8 @@ * Originally based upon .NET source but with many additions and improvements. * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -System.register(['../Types', './TimeUnit', './ClockTime', './TimeQuantity'], function(exports_1, context_1) { - 'use strict'; +System.register(["../Types", "./TimeUnit", "./ClockTime", "./TimeQuantity"], function(exports_1, context_1) { + "use strict"; var __moduleName = context_1 && context_1.id; var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; @@ -31,8 +31,8 @@ System.register(['../Types', './TimeUnit', './ClockTime', './TimeQuantity'], fun TimeSpan = (function (_super) { __extends(TimeSpan, _super); function TimeSpan(value, units) { - if (units === void 0) { units = TimeUnit_1.default.Milliseconds; } - var ms = TimeUnit_1.default.toMilliseconds(value, units); + if (units === void 0) { units = TimeUnit_1.TimeUnit.Milliseconds; } + var ms = TimeUnit_1.TimeUnit.toMilliseconds(value, units); _super.call(this, ms); var _ = this; _.ticks = ms * 10000; @@ -53,42 +53,42 @@ System.register(['../Types', './TimeUnit', './ClockTime', './TimeQuantity'], fun get: function () { var _ = this, t = _._time; if (!t) - _._time = t = new ClockTime_1.default(_.getTotalMilliseconds()); + _._time = t = new ClockTime_1.ClockTime(_.getTotalMilliseconds()); return t; }, enumerable: true, configurable: true }); TimeSpan.prototype.add = function (other) { - if (Types_1.default.isNumber(other)) + if (Types_1.Type.isNumber(other)) throw new Error("Use .addUnit(value:number,units:TimeUnit) to add a numerical value amount. Default units are milliseconds.\n" + ".add only supports quantifiable time values (ITimeTotal)."); return new TimeSpan(this.getTotalMilliseconds() + other.total.milliseconds); }; TimeSpan.prototype.addUnit = function (value, units) { - if (units === void 0) { units = TimeUnit_1.default.Milliseconds; } - return new TimeSpan(this.getTotalMilliseconds() + TimeUnit_1.default.toMilliseconds(value, units)); + if (units === void 0) { units = TimeUnit_1.TimeUnit.Milliseconds; } + return new TimeSpan(this.getTotalMilliseconds() + TimeUnit_1.TimeUnit.toMilliseconds(value, units)); }; TimeSpan.from = function (value, units) { return new TimeSpan(value, units); }; TimeSpan.fromDays = function (value) { - return new TimeSpan(value, TimeUnit_1.default.Days); + return new TimeSpan(value, TimeUnit_1.TimeUnit.Days); }; TimeSpan.fromHours = function (value) { - return new TimeSpan(value, TimeUnit_1.default.Hours); + return new TimeSpan(value, TimeUnit_1.TimeUnit.Hours); }; TimeSpan.fromMinutes = function (value) { - return new TimeSpan(value, TimeUnit_1.default.Minutes); + return new TimeSpan(value, TimeUnit_1.TimeUnit.Minutes); }; TimeSpan.fromSeconds = function (value) { - return new TimeSpan(value, TimeUnit_1.default.Seconds); + return new TimeSpan(value, TimeUnit_1.TimeUnit.Seconds); }; TimeSpan.fromMilliseconds = function (value) { - return new TimeSpan(value, TimeUnit_1.default.Milliseconds); + return new TimeSpan(value, TimeUnit_1.TimeUnit.Milliseconds); }; TimeSpan.fromTicks = function (value) { - return new TimeSpan(value, TimeUnit_1.default.Ticks); + return new TimeSpan(value, TimeUnit_1.TimeUnit.Ticks); }; Object.defineProperty(TimeSpan, "zero", { get: function () { @@ -98,8 +98,9 @@ System.register(['../Types', './TimeUnit', './ClockTime', './TimeQuantity'], fun configurable: true }); return TimeSpan; - }(TimeQuantity_1.default)); - exports_1("default", TimeSpan); + }(TimeQuantity_1.TimeQuantity)); + exports_1("TimeSpan", TimeSpan); + exports_1("default",TimeSpan); } } }); diff --git a/dist/system/System/Time/TimeSpan.js.map b/dist/system/System/Time/TimeSpan.js.map index 368f0859..82eb97f3 100644 --- a/dist/system/System/Time/TimeSpan.js.map +++ b/dist/system/System/Time/TimeSpan.js.map @@ -1 +1 @@ -{"version":3,"file":"TimeSpan.js","sourceRoot":"","sources":["../../../../source/System/Time/TimeSpan.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"TimeSpan.js","sourceRoot":"","sources":["../../../../source/System/Time/TimeSpan.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/system/System/Time/TimeStamp.d.ts b/dist/system/System/Time/TimeStamp.d.ts index 59213dea..5e85f277 100644 --- a/dist/system/System/Time/TimeStamp.d.ts +++ b/dist/system/System/Time/TimeStamp.d.ts @@ -1,12 +1,11 @@ -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -export default class TimeStamp implements ITimeStamp, IDateTime { +import { ITimeStamp } from "./ITimeStamp"; +import { IDateTime } from "./IDateTime"; +import { Gregorian } from "./Calendars"; +export declare class TimeStamp implements ITimeStamp, IDateTime { year: number; month: Gregorian.Month; day: number; @@ -19,3 +18,4 @@ export default class TimeStamp implements ITimeStamp, IDateTime { toJsDate(): Date; static from(d: Date | IDateTime): TimeStamp; } +export default TimeStamp; diff --git a/dist/system/System/Time/TimeStamp.js b/dist/system/System/Time/TimeStamp.js index 3ef59fc1..9375a740 100644 --- a/dist/system/System/Time/TimeStamp.js +++ b/dist/system/System/Time/TimeStamp.js @@ -2,8 +2,8 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -System.register(['../Types'], function(exports_1, context_1) { - 'use strict'; +System.register(["../Types"], function(exports_1, context_1) { + "use strict"; var __moduleName = context_1 && context_1.id; var Types_1; var TimeStamp; @@ -36,7 +36,7 @@ System.register(['../Types'], function(exports_1, context_1) { return new Date(_.year, _.month, _.day, _.hour, _.minute, _.second, _.millisecond + _.tick / 10000); }; TimeStamp.from = function (d) { - if (!(d instanceof Date) && Types_1.default.hasMember(d, 'toJsDate')) + if (!(d instanceof Date) && Types_1.Type.hasMember(d, 'toJsDate')) d = d.toJsDate(); if (d instanceof Date) { return new TimeStamp(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes(), d.getSeconds(), d.getMilliseconds()); @@ -47,7 +47,8 @@ System.register(['../Types'], function(exports_1, context_1) { }; return TimeStamp; }()); - exports_1("default", TimeStamp); + exports_1("TimeStamp", TimeStamp); + exports_1("default",TimeStamp); } } }); diff --git a/dist/system/System/Time/TimeStamp.js.map b/dist/system/System/Time/TimeStamp.js.map index e6a9afb6..cabe509e 100644 --- a/dist/system/System/Time/TimeStamp.js.map +++ b/dist/system/System/Time/TimeStamp.js.map @@ -1 +1 @@ -{"version":3,"file":"TimeStamp.js","sourceRoot":"","sources":["../../../../source/System/Time/TimeStamp.ts"],"names":[],"mappings":"AAAA;;;GAGG;;IAMH,YAAY,CAAC;;;;;;;;;;YAOb;gBAIC,mBACQ,IAAW,EACX,KAAqB,EACrB,GAAc,EACd,IAAe,EACf,MAAiB,EACjB,MAAiB,EACjB,WAAsB,EACtB,IAAe;oBALtB,mBAAqB,GAArB,OAAqB;oBACrB,oBAAsB,GAAtB,QAAsB;oBACtB,sBAAwB,GAAxB,UAAwB;oBACxB,sBAAwB,GAAxB,UAAwB;oBACxB,2BAA6B,GAA7B,eAA6B;oBAC7B,oBAAsB,GAAtB,QAAsB;oBAPf,SAAI,GAAJ,IAAI,CAAO;oBACX,UAAK,GAAL,KAAK,CAAgB;oBACrB,QAAG,GAAH,GAAG,CAAW;oBACd,SAAI,GAAJ,IAAI,CAAW;oBACf,WAAM,GAAN,MAAM,CAAW;oBACjB,WAAM,GAAN,MAAM,CAAW;oBACjB,gBAAW,GAAX,WAAW,CAAW;oBACtB,SAAI,GAAJ,IAAI,CAAW;oBAKtB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACrB,CAAC;gBAED,4BAAQ,GAAR;oBAEC,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,GAAC,KAA6B,CAAC,CAAC;gBAC3H,CAAC;gBAEM,cAAI,GAAX,UAAY,CAAgB;oBAE3B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,IAAI,eAAI,CAAC,SAAS,CAAC,CAAC,EAAC,UAAU,CAAC,CAAC;wBACxD,CAAC,GAAe,CAAE,CAAC,QAAQ,EAAE,CAAC;oBAC/B,EAAE,CAAA,CAAC,CAAC,YAAY,IAAI,CAAC,CACrB,CAAC;wBACA,MAAM,CAAC,IAAI,SAAS,CACnB,CAAC,CAAC,WAAW,EAAE,EACf,CAAC,CAAC,QAAQ,EAAE,EACZ,CAAC,CAAC,OAAO,EAAE,EACX,CAAC,CAAC,QAAQ,EAAE,EACZ,CAAC,CAAC,UAAU,EAAE,EACd,CAAC,CAAC,UAAU,EAAE,EACd,CAAC,CAAC,eAAe,EAAE,CACnB,CAAC;oBACH,CAAC;oBACD,IAAI,CACJ,CAAC;wBACA,MAAM,KAAK,CAAC,oBAAoB,CAAC,CAAC;oBACnC,CAAC;gBACF,CAAC;gBACF,gBAAC;YAAD,CAAC,AA/CD,IA+CC;YA/CD,+BA+CC,CAAA"} \ No newline at end of file +{"version":3,"file":"TimeStamp.js","sourceRoot":"","sources":["../../../../source/System/Time/TimeStamp.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;YAWH;gBAGC,mBACQ,IAAW,EACX,KAAqB,EACrB,GAAc,EACd,IAAe,EACf,MAAiB,EACjB,MAAiB,EACjB,WAAsB,EACtB,IAAe;oBALtB,mBAAqB,GAArB,OAAqB;oBACrB,oBAAsB,GAAtB,QAAsB;oBACtB,sBAAwB,GAAxB,UAAwB;oBACxB,sBAAwB,GAAxB,UAAwB;oBACxB,2BAA6B,GAA7B,eAA6B;oBAC7B,oBAAsB,GAAtB,QAAsB;oBAPf,SAAI,GAAJ,IAAI,CAAO;oBACX,UAAK,GAAL,KAAK,CAAgB;oBACrB,QAAG,GAAH,GAAG,CAAW;oBACd,SAAI,GAAJ,IAAI,CAAW;oBACf,WAAM,GAAN,MAAM,CAAW;oBACjB,WAAM,GAAN,MAAM,CAAW;oBACjB,gBAAW,GAAX,WAAW,CAAW;oBACtB,SAAI,GAAJ,IAAI,CAAW;oBAKtB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACrB,CAAC;gBAED,4BAAQ,GAAR;oBAEC,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,GAAC,KAAqB,CAAC,CAAC;gBACnH,CAAC;gBAEM,cAAI,GAAX,UAAY,CAAgB;oBAE3B,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,IAAI,YAAI,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;wBACxD,CAAC,GAAe,CAAE,CAAC,QAAQ,EAAE,CAAC;oBAC/B,EAAE,CAAA,CAAC,CAAC,YAAY,IAAI,CAAC,CACrB,CAAC;wBACA,MAAM,CAAC,IAAI,SAAS,CACnB,CAAC,CAAC,WAAW,EAAE,EACf,CAAC,CAAC,QAAQ,EAAE,EACZ,CAAC,CAAC,OAAO,EAAE,EACX,CAAC,CAAC,QAAQ,EAAE,EACZ,CAAC,CAAC,UAAU,EAAE,EACd,CAAC,CAAC,UAAU,EAAE,EACd,CAAC,CAAC,eAAe,EAAE,CACnB,CAAC;oBACH,CAAC;oBACD,IAAI,CACJ,CAAC;wBACA,MAAM,KAAK,CAAC,oBAAoB,CAAC,CAAC;oBACnC,CAAC;gBACF,CAAC;gBACF,gBAAC;YAAD,CAAC,AA9CD,IA8CC;YA9CD,iCA8CC,CAAA;YAED,oBAAe,SAAS,EAAC"} \ No newline at end of file diff --git a/dist/system/System/Time/TimeUnit.d.ts b/dist/system/System/Time/TimeUnit.d.ts index bc3a0069..a312eb74 100644 --- a/dist/system/System/Time/TimeUnit.d.ts +++ b/dist/system/System/Time/TimeUnit.d.ts @@ -1,11 +1,10 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Originally based upon .NET source but with many additions and improvements. * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -declare enum TimeUnit { +import { ITimeQuantity } from "./ITimeQuantity"; +export declare enum TimeUnit { Ticks = 0, Milliseconds = 1, Seconds = 2, @@ -13,7 +12,7 @@ declare enum TimeUnit { Hours = 4, Days = 5, } -declare module TimeUnit { +export declare module TimeUnit { function toMilliseconds(value: number, units?: TimeUnit): number; function fromMilliseconds(ms: number, units: TimeUnit): number; function from(quantity: ITimeQuantity, unit: TimeUnit): number; diff --git a/dist/system/System/Time/TimeUnit.js b/dist/system/System/Time/TimeUnit.js index 76bb0dcc..8fa9e30c 100644 --- a/dist/system/System/Time/TimeUnit.js +++ b/dist/system/System/Time/TimeUnit.js @@ -18,6 +18,7 @@ System.register([], function(exports_1, context_1) { TimeUnit[TimeUnit["Hours"] = 4] = "Hours"; TimeUnit[TimeUnit["Days"] = 5] = "Days"; })(TimeUnit || (TimeUnit = {})); + exports_1("TimeUnit", TimeUnit); (function (TimeUnit) { function toMilliseconds(value, units) { if (units === void 0) { units = TimeUnit.Milliseconds; } @@ -68,7 +69,8 @@ System.register([], function(exports_1, context_1) { return true; } TimeUnit.assertValid = assertValid; - })(TimeUnit || (TimeUnit = {})); + })(TimeUnit = TimeUnit || (TimeUnit = {})); + exports_1("TimeUnit", TimeUnit); Object.freeze(TimeUnit); exports_1("default",TimeUnit); } diff --git a/dist/system/System/Time/TimeUnit.js.map b/dist/system/System/Time/TimeUnit.js.map index b74c2b6c..5c191e03 100644 --- a/dist/system/System/Time/TimeUnit.js.map +++ b/dist/system/System/Time/TimeUnit.js.map @@ -1 +1 @@ -{"version":3,"file":"TimeUnit.js","sourceRoot":"","sources":["../../../../source/System/Time/TimeUnit.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;;;;;;YAMH,WAAK,QAAQ;gBAEZ,yCAAK,CAAA;gBACL,uDAAY,CAAA;gBACZ,6CAAO,CAAA;gBACP,6CAAO,CAAA;gBACP,yCAAK,CAAA;gBACL,uCAAI,CAAA;YACL,CAAC,EARI,QAAQ,KAAR,QAAQ,QAQZ;YAED,WAAO,QAAQ,EACf,CAAC;gBAEA,wBACC,KAAY,EACZ,KAAsC;oBAAtC,qBAAsC,GAAtC,QAAiB,QAAQ,CAAC,YAAY;oBAGtC,MAAM,CAAA,CAAC,KAAK,CAAC,CACb,CAAC;wBACA,KAAK,QAAQ,CAAC,IAAI;4BACjB,KAAK,IAAI,EAAqB,CAAC;wBAChC,KAAK,QAAQ,CAAC,KAAK;4BAClB,KAAK,IAAI,EAAwB,CAAC;wBACnC,KAAK,QAAQ,CAAC,OAAO;4BACpB,KAAK,IAAI,EAA0B,CAAC;wBACrC,KAAK,QAAQ,CAAC,OAAO;4BACpB,KAAK,IAAI,IAA+B,CAAC;wBAC1C,KAAK,QAAQ,CAAC,YAAY;4BACzB,MAAM,CAAC,KAAK,CAAC;wBACd,KAAK,QAAQ,CAAC,KAAK;4BAClB,MAAM,CAAC,KAAK,GAAC,KAA6B,CAAC;wBAC5C;4BACC,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;oBACvC,CAAC;gBACF,CAAC;gBAtBe,uBAAc,iBAsB7B,CAAA;gBAED,0BACC,EAAS,EACT,KAAc;oBAEd,MAAM,CAAA,CAAC,KAAK,CAAC,CACb,CAAC;wBACA,KAAK,QAAQ,CAAC,IAAI;4BACjB,MAAM,CAAC,EAAE,GAAC,QAA4B,CAAC;wBACxC,KAAK,QAAQ,CAAC,KAAK;4BAClB,MAAM,CAAC,EAAE,GAAC,OAA6B,CAAC;wBACzC,KAAK,QAAQ,CAAC,OAAO;4BACpB,MAAM,CAAC,EAAE,GAAC,KAA+B,CAAC;wBAC3C,KAAK,QAAQ,CAAC,OAAO;4BACpB,MAAM,CAAC,EAAE,GAAC,IAA+B,CAAC;wBAC3C,KAAK,QAAQ,CAAC,YAAY;4BACzB,MAAM,CAAC,EAAE,CAAC;wBACX,KAAK,QAAQ,CAAC,KAAK;4BAClB,MAAM,CAAC,EAAE,GAAC,KAA6B,CAAC;wBACzC;4BACC,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;oBACvC,CAAC;gBACF,CAAC;gBArBe,yBAAgB,mBAqB/B,CAAA;gBAED,cAAqB,QAAsB,EAAE,IAAa;oBACzD,MAAM,CAAC,QAAQ,IAAI,gBAAgB,CAAC,QAAQ,CAAC,oBAAoB,EAAE,EAAC,IAAI,CAAC,CAAC;gBAC3E,CAAC;gBAFe,aAAI,OAEnB,CAAA;gBAGD,qBAA4B,IAAa;oBAExC,EAAE,CAAA,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,GAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,GAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAG,IAAI,CAAC;wBACtF,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;oBAEtC,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBANe,oBAAW,cAM1B,CAAA;YAEF,CAAC,EA/DM,QAAQ,KAAR,QAAQ,QA+Dd;YAED,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAExB,oBAAe,QAAQ,EAAC"} \ No newline at end of file +{"version":3,"file":"TimeUnit.js","sourceRoot":"","sources":["../../../../source/System/Time/TimeUnit.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;;;;;;YAKH,WAAY,QAAQ;gBAEnB,yCAAK,CAAA;gBACL,uDAAY,CAAA;gBACZ,6CAAO,CAAA;gBACP,6CAAO,CAAA;gBACP,yCAAK,CAAA;gBACL,uCAAI,CAAA;YACL,CAAC,EARW,QAAQ,KAAR,QAAQ,QAQnB;4CAAA;YAED,WAAc,QAAQ,EACtB,CAAC;gBAEA,wBACC,KAAY,EACZ,KAAsC;oBAAtC,qBAAsC,GAAtC,QAAiB,QAAQ,CAAC,YAAY;oBAGtC,MAAM,CAAA,CAAC,KAAK,CAAC,CACb,CAAC;wBACA,KAAK,QAAQ,CAAC,IAAI;4BACjB,KAAK,IAAI,EAAa,CAAC;wBACxB,KAAK,QAAQ,CAAC,KAAK;4BAClB,KAAK,IAAI,EAAgB,CAAC;wBAC3B,KAAK,QAAQ,CAAC,OAAO;4BACpB,KAAK,IAAI,EAAkB,CAAC;wBAC7B,KAAK,QAAQ,CAAC,OAAO;4BACpB,KAAK,IAAI,IAAuB,CAAC;wBAClC,KAAK,QAAQ,CAAC,YAAY;4BACzB,MAAM,CAAC,KAAK,CAAC;wBACd,KAAK,QAAQ,CAAC,KAAK;4BAClB,MAAM,CAAC,KAAK,GAAC,KAAqB,CAAC;wBACpC;4BACC,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;oBACvC,CAAC;gBACF,CAAC;gBAtBe,uBAAc,iBAsB7B,CAAA;gBAED,0BACC,EAAS,EACT,KAAc;oBAEd,MAAM,CAAA,CAAC,KAAK,CAAC,CACb,CAAC;wBACA,KAAK,QAAQ,CAAC,IAAI;4BACjB,MAAM,CAAC,EAAE,GAAC,QAAoB,CAAC;wBAChC,KAAK,QAAQ,CAAC,KAAK;4BAClB,MAAM,CAAC,EAAE,GAAC,OAAqB,CAAC;wBACjC,KAAK,QAAQ,CAAC,OAAO;4BACpB,MAAM,CAAC,EAAE,GAAC,KAAuB,CAAC;wBACnC,KAAK,QAAQ,CAAC,OAAO;4BACpB,MAAM,CAAC,EAAE,GAAC,IAAuB,CAAC;wBACnC,KAAK,QAAQ,CAAC,YAAY;4BACzB,MAAM,CAAC,EAAE,CAAC;wBACX,KAAK,QAAQ,CAAC,KAAK;4BAClB,MAAM,CAAC,EAAE,GAAC,KAAqB,CAAC;wBACjC;4BACC,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;oBACvC,CAAC;gBACF,CAAC;gBArBe,yBAAgB,mBAqB/B,CAAA;gBAED,cAAqB,QAAsB,EAAE,IAAa;oBAEzD,MAAM,CAAC,QAAQ,IAAI,gBAAgB,CAAC,QAAQ,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;gBAC5E,CAAC;gBAHe,aAAI,OAGnB,CAAA;gBAGD,qBAA4B,IAAa;oBAExC,EAAE,CAAA,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,GAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,GAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAG,IAAI,CAAC;wBACtF,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;oBAEtC,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBANe,oBAAW,cAM1B,CAAA;YAEF,CAAC,EAhEa,QAAQ,GAAR,QAAQ,KAAR,QAAQ,QAgErB;4CAAA;YAED,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAExB,oBAAe,QAAQ,EAAC"} \ No newline at end of file diff --git a/dist/system/System/Time/TimeUnitValue.d.ts b/dist/system/System/Time/TimeUnitValue.d.ts index 782f6cd6..926b9f87 100644 --- a/dist/system/System/Time/TimeUnitValue.d.ts +++ b/dist/system/System/Time/TimeUnitValue.d.ts @@ -1,13 +1,10 @@ -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import TimeUnit from './TimeUnit'; -import TimeQuantity from './TimeQuantity'; +import { TimeUnit } from "./TimeUnit"; +import { TimeQuantity } from "./TimeQuantity"; +import { ITimeQuantity } from "./ITimeQuantity"; export default class TimeUnitValue extends TimeQuantity { private _units; constructor(value: number | ITimeQuantity, _units: TimeUnit); diff --git a/dist/system/System/Time/TimeUnitValue.js b/dist/system/System/Time/TimeUnitValue.js index 1c61953a..d4d68ccd 100644 --- a/dist/system/System/Time/TimeUnitValue.js +++ b/dist/system/System/Time/TimeUnitValue.js @@ -2,8 +2,8 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -System.register(['./TimeUnit', './TimeQuantity'], function(exports_1, context_1) { - 'use strict'; +System.register(["./TimeUnit", "./TimeQuantity"], function(exports_1, context_1) { + "use strict"; var __moduleName = context_1 && context_1.id; var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; @@ -13,7 +13,7 @@ System.register(['./TimeUnit', './TimeQuantity'], function(exports_1, context_1) var TimeUnit_1, TimeQuantity_1; var TimeUnitValue; function getUnitQuantityFrom(q, units) { - return TimeUnit_1.default.fromMilliseconds(q.getTotalMilliseconds(), units); + return TimeUnit_1.TimeUnit.fromMilliseconds(q.getTotalMilliseconds(), units); } return { setters:[ @@ -31,7 +31,7 @@ System.register(['./TimeUnit', './TimeQuantity'], function(exports_1, context_1) ? value : getUnitQuantityFrom(value, _units)); this._units = _units; - TimeUnit_1.default.assertValid(_units); + TimeUnit_1.TimeUnit.assertValid(_units); } Object.defineProperty(TimeUnitValue.prototype, "value", { get: function () { @@ -45,7 +45,7 @@ System.register(['./TimeUnit', './TimeQuantity'], function(exports_1, context_1) configurable: true }); TimeUnitValue.prototype.getTotalMilliseconds = function () { - return TimeUnit_1.default.toMilliseconds(this._quantity, this._units); + return TimeUnit_1.TimeUnit.toMilliseconds(this._quantity, this._units); }; Object.defineProperty(TimeUnitValue.prototype, "units", { get: function () { @@ -59,11 +59,11 @@ System.register(['./TimeUnit', './TimeQuantity'], function(exports_1, context_1) return TimeUnitValue.from(this, units); }; TimeUnitValue.from = function (value, units) { - if (units === void 0) { units = TimeUnit_1.default.Milliseconds; } + if (units === void 0) { units = TimeUnit_1.TimeUnit.Milliseconds; } return new TimeUnitValue(value, units); }; return TimeUnitValue; - }(TimeQuantity_1.default)); + }(TimeQuantity_1.TimeQuantity)); exports_1("default", TimeUnitValue); } } diff --git a/dist/system/System/Time/TimeUnitValue.js.map b/dist/system/System/Time/TimeUnitValue.js.map index 1008f539..cd947399 100644 --- a/dist/system/System/Time/TimeUnitValue.js.map +++ b/dist/system/System/Time/TimeUnitValue.js.map @@ -1 +1 @@ -{"version":3,"file":"TimeUnitValue.js","sourceRoot":"","sources":["../../../../source/System/Time/TimeUnitValue.ts"],"names":[],"mappings":"AAAA;;;GAGG;;IAMH,YAAY,CAAC;;;;;;;;;IAuDb,6BAA6B,CAAe,EAAE,KAAc;QAE3D,MAAM,CAAC,kBAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,oBAAoB,EAAE,EAAE,KAAK,CAAC,CAAC;IACnE,CAAC;;;;;;;;;;YAjDD;gBAC4B,iCAAY;gBAGvC,uBAAY,KAA0B,EAAU,MAAe;oBAE9D,kBAAM,OAAM,CAAC,KAAK,CAAC,IAAE,QAAQ;0BAClB,KAAK;0BACb,mBAAmB,CAAgB,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;oBAJP,WAAM,GAAN,MAAM,CAAS;oBAK9D,kBAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC9B,CAAC;gBAED,sBAAI,gCAAK;yBAAT;wBAEC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;oBACvB,CAAC;yBAED,UAAU,CAAQ;wBAEjB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;wBACnB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;oBACpB,CAAC;;;mBANA;gBAQD,4CAAoB,GAApB;oBAEC,MAAM,CAAC,kBAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC7D,CAAC;gBAGD,sBAAI,gCAAK;yBAAT;wBAEC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;oBACpB,CAAC;;;mBAAA;gBAED,0BAAE,GAAF,UAAG,KAA2B;oBAA3B,qBAA2B,GAA3B,QAAiB,IAAI,CAAC,KAAK;oBAE7B,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAC,KAAK,CAAC,CAAC;gBACvC,CAAC;gBAEM,kBAAI,GAAX,UAAY,KAA0B,EAAE,KAAsC;oBAAtC,qBAAsC,GAAtC,QAAiB,kBAAQ,CAAC,YAAY;oBAE7E,MAAM,CAAC,IAAI,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBACxC,CAAC;gBAEF,oBAAC;YAAD,CAAC,AA5CD,CAC4B,sBAAY,GA2CvC;YA5CD,mCA4CC,CAAA"} \ No newline at end of file +{"version":3,"file":"TimeUnitValue.js","sourceRoot":"","sources":["../../../../source/System/Time/TimeUnitValue.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;;IAwDH,6BAA6B,CAAe,EAAE,KAAc;QAE3D,MAAM,CAAC,mBAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,oBAAoB,EAAE,EAAE,KAAK,CAAC,CAAC;IACnE,CAAC;;;;;;;;;;YAjDD;gBAC4B,iCAAY;gBAGvC,uBAAY,KAA0B,EAAU,MAAe;oBAE9D,kBAAM,OAAM,CAAC,KAAK,CAAC,IAAE,QAAQ;0BAClB,KAAK;0BACb,mBAAmB,CAAgB,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;oBAJP,WAAM,GAAN,MAAM,CAAS;oBAK9D,mBAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC9B,CAAC;gBAED,sBAAI,gCAAK;yBAAT;wBAEC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;oBACvB,CAAC;yBAED,UAAU,CAAQ;wBAEjB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;wBACnB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;oBACpB,CAAC;;;mBANA;gBAQD,4CAAoB,GAApB;oBAEC,MAAM,CAAC,mBAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC7D,CAAC;gBAGD,sBAAI,gCAAK;yBAAT;wBAEC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;oBACpB,CAAC;;;mBAAA;gBAED,0BAAE,GAAF,UAAG,KAA2B;oBAA3B,qBAA2B,GAA3B,QAAiB,IAAI,CAAC,KAAK;oBAE7B,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAC,KAAK,CAAC,CAAC;gBACvC,CAAC;gBAEM,kBAAI,GAAX,UAAY,KAA0B,EAAE,KAAsC;oBAAtC,qBAAsC,GAAtC,QAAiB,mBAAQ,CAAC,YAAY;oBAE7E,MAAM,CAAC,IAAI,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBACxC,CAAC;gBAEF,oBAAC;YAAD,CAAC,AA5CD,CAC4B,2BAAY,GA2CvC;YA5CD,mCA4CC,CAAA"} \ No newline at end of file diff --git a/dist/system/System/Timers/Timer.d.ts b/dist/system/System/Timers/Timer.d.ts index 00797473..61035b51 100644 --- a/dist/system/System/Timers/Timer.d.ts +++ b/dist/system/System/Timers/Timer.d.ts @@ -1,10 +1,10 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import ObservableBase from "./../Observable/ObservableBase"; +import { ICancellable } from "../Tasks/ICancellable"; +import { ObservableBase } from "../Observable/ObservableBase"; +import { ITimer } from "./ITimer"; export default class Timer extends ObservableBase implements ITimer, ICancellable { private _interval; private _maxCount; diff --git a/dist/system/System/Timers/Timer.js b/dist/system/System/Timers/Timer.js index 3b3a49aa..fd27875e 100644 --- a/dist/system/System/Timers/Timer.js +++ b/dist/system/System/Timers/Timer.js @@ -2,7 +2,7 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -System.register(["./../Observable/ObservableBase"], function(exports_1, context_1) { +System.register(["../Observable/ObservableBase"], function(exports_1, context_1) { "use strict"; var __moduleName = context_1 && context_1.id; var __extends = (this && this.__extends) || function (d, b) { @@ -107,7 +107,7 @@ System.register(["./../Observable/ObservableBase"], function(exports_1, context_ } }; return Timer; - }(ObservableBase_1.default)); + }(ObservableBase_1.ObservableBase)); exports_1("default", Timer); } } diff --git a/dist/system/System/Timers/Timer.js.map b/dist/system/System/Timers/Timer.js.map index 4d5ef430..16df788b 100644 --- a/dist/system/System/Timers/Timer.js.map +++ b/dist/system/System/Timers/Timer.js.map @@ -1 +1 @@ -{"version":3,"file":"Timer.js","sourceRoot":"","sources":["../../../../source/System/Timers/Timer.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Timer.js","sourceRoot":"","sources":["../../../../source/System/Timers/Timer.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/system/System/Types.d.ts b/dist/system/System/Types.d.ts index cddf07c8..a1d7cf5e 100644 --- a/dist/system/System/Types.d.ts +++ b/dist/system/System/Types.d.ts @@ -1,9 +1,9 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { Primitive } from "./Primitive"; +import { IArray } from "./Collections/Array/IArray"; export declare class TypeInfo { private target; type: string; diff --git a/dist/system/System/Types.js b/dist/system/System/Types.js index c0dee1ab..140f97c5 100644 --- a/dist/system/System/Types.js +++ b/dist/system/System/Types.js @@ -3,7 +3,7 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ System.register([], function(exports_1, context_1) { - 'use strict'; + "use strict"; var __moduleName = context_1 && context_1.id; var VOID0, _BOOLEAN, _NUMBER, _STRING, _OBJECT, _UNDEFINED, _FUNCTION, LENGTH, typeInfoRegistry, TypeInfo, Type; return { diff --git a/dist/system/System/Types.js.map b/dist/system/System/Types.js.map index 51fa545f..859dfd45 100644 --- a/dist/system/System/Types.js.map +++ b/dist/system/System/Types.js.map @@ -1 +1 @@ -{"version":3,"file":"Types.js","sourceRoot":"","sources":["../../../source/System/Types.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Types.js","sourceRoot":"","sources":["../../../source/System/Types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/system/System/Uri/HostNameType.d.ts b/dist/system/System/Uri/HostNameType.d.ts index b4e74073..57b342ec 100644 --- a/dist/system/System/Uri/HostNameType.d.ts +++ b/dist/system/System/Uri/HostNameType.d.ts @@ -3,7 +3,7 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based on: https://msdn.microsoft.com/en-us/library/system.UriHostNameType%28v=vs.110%29.aspx */ -declare enum UriHostNameType { +export declare enum UriHostNameType { Basic = 0, DNS = 1, IPv4 = 2, diff --git a/dist/system/System/Uri/HostNameType.js b/dist/system/System/Uri/HostNameType.js index ee02802f..0e71901c 100644 --- a/dist/system/System/Uri/HostNameType.js +++ b/dist/system/System/Uri/HostNameType.js @@ -17,6 +17,7 @@ System.register([], function(exports_1, context_1) { UriHostNameType[UriHostNameType["IPv6"] = 3] = "IPv6"; UriHostNameType[UriHostNameType["Unknown"] = 4] = "Unknown"; })(UriHostNameType || (UriHostNameType = {})); + exports_1("UriHostNameType", UriHostNameType); Object.freeze(UriHostNameType); exports_1("default",UriHostNameType); } diff --git a/dist/system/System/Uri/HostNameType.js.map b/dist/system/System/Uri/HostNameType.js.map index 706897f6..fa3c49a5 100644 --- a/dist/system/System/Uri/HostNameType.js.map +++ b/dist/system/System/Uri/HostNameType.js.map @@ -1 +1 @@ -{"version":3,"file":"HostNameType.js","sourceRoot":"","sources":["../../../../source/System/Uri/HostNameType.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;;;;;;YAGH,WAAK,eAAe;gBAInB,uDAAK,CAAA;gBAKL,mDAAG,CAAA;gBAKH,qDAAI,CAAA;gBAKJ,qDAAI,CAAA;gBAKJ,2DAAO,CAAA;YACR,CAAC,EAzBI,eAAe,KAAf,eAAe,QAyBnB;YAED,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YAE/B,oBAAe,eAAe,EAAC"} \ No newline at end of file +{"version":3,"file":"HostNameType.js","sourceRoot":"","sources":["../../../../source/System/Uri/HostNameType.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;;;;;;YAGH,WAAY,eAAe;gBAI1B,uDAAK,CAAA;gBAKL,mDAAG,CAAA;gBAKH,qDAAI,CAAA;gBAKJ,qDAAI,CAAA;gBAKJ,2DAAO,CAAA;YACR,CAAC,EAzBW,eAAe,KAAf,eAAe,QAyB1B;0DAAA;YAED,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YAE/B,oBAAe,eAAe,EAAC"} \ No newline at end of file diff --git a/dist/system/System/Uri/QueryBuilder.d.ts b/dist/system/System/Uri/QueryBuilder.d.ts index 891db685..42637877 100644 --- a/dist/system/System/Uri/QueryBuilder.d.ts +++ b/dist/system/System/Uri/QueryBuilder.d.ts @@ -1,17 +1,16 @@ -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import OrderedStringKeyDictionary from "../Collections/Dictionaries/OrderedStringKeyDictionary"; -export default class QueryBuilder extends OrderedStringKeyDictionary { - constructor(query: QueryParamsConvertible, decodeValues?: boolean); - static init(query: QueryParamsConvertible, decodeValues?: boolean): QueryBuilder; - importQuery(query: QueryParamsConvertible, decodeValues?: boolean): QueryBuilder; +import { OrderedStringKeyDictionary } from "../Collections/Dictionaries/OrderedStringKeyDictionary"; +import * as UriComponent from "./UriComponent"; +import * as QueryParam from "./QueryParam"; +export declare class QueryBuilder extends OrderedStringKeyDictionary { + constructor(query: QueryParam.Convertible, decodeValues?: boolean); + static init(query: QueryParam.Convertible, decodeValues?: boolean): QueryBuilder; + importQuery(query: QueryParam.Convertible, decodeValues?: boolean): QueryBuilder; importFromString(values: string, deserialize?: boolean, decodeValues?: boolean): QueryBuilder; encode(prefixIfNotEmpty?: boolean): string; toString(): string; } +export default QueryBuilder; diff --git a/dist/system/System/Uri/QueryBuilder.js b/dist/system/System/Uri/QueryBuilder.js index 31c9462d..0c3e80d7 100644 --- a/dist/system/System/Uri/QueryBuilder.js +++ b/dist/system/System/Uri/QueryBuilder.js @@ -2,29 +2,29 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -System.register(["../Types", "./QueryParams", "../Collections/Dictionaries/OrderedStringKeyDictionary", "../Collections/Enumeration/Enumerator"], function(exports_1, context_1) { - 'use strict'; +System.register(["../Types", "../Collections/Dictionaries/OrderedStringKeyDictionary", "../Collections/Enumeration/Enumerator", "./QueryParams"], function(exports_1, context_1) { + "use strict"; var __moduleName = context_1 && context_1.id; var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; - var Types_1, QueryParams, OrderedStringKeyDictionary_1, Enumerator_1; + var Types_1, OrderedStringKeyDictionary_1, Enumerator_1, QueryParams; var QueryBuilder; return { setters:[ function (Types_1_1) { Types_1 = Types_1_1; }, - function (QueryParams_1) { - QueryParams = QueryParams_1; - }, function (OrderedStringKeyDictionary_1_1) { OrderedStringKeyDictionary_1 = OrderedStringKeyDictionary_1_1; }, function (Enumerator_1_1) { Enumerator_1 = Enumerator_1_1; + }, + function (QueryParams_1) { + QueryParams = QueryParams_1; }], execute: function() { QueryBuilder = (function (_super) { @@ -40,7 +40,7 @@ System.register(["../Types", "./QueryParams", "../Collections/Dictionaries/Order }; QueryBuilder.prototype.importQuery = function (query, decodeValues) { if (decodeValues === void 0) { decodeValues = true; } - if (Types_1.default.isString(query)) { + if (Types_1.Type.isString(query)) { this.importFromString(query, decodeValues); } else if (Enumerator_1.isEnumerableOrArrayLike(query)) { @@ -75,8 +75,9 @@ System.register(["../Types", "./QueryParams", "../Collections/Dictionaries/Order return this.encode(); }; return QueryBuilder; - }(OrderedStringKeyDictionary_1.default)); - exports_1("default", QueryBuilder); + }(OrderedStringKeyDictionary_1.OrderedStringKeyDictionary)); + exports_1("QueryBuilder", QueryBuilder); + exports_1("default",QueryBuilder); } } }); diff --git a/dist/system/System/Uri/QueryBuilder.js.map b/dist/system/System/Uri/QueryBuilder.js.map index 42f39cd0..fc34d8f1 100644 --- a/dist/system/System/Uri/QueryBuilder.js.map +++ b/dist/system/System/Uri/QueryBuilder.js.map @@ -1 +1 @@ -{"version":3,"file":"QueryBuilder.js","sourceRoot":"","sources":["../../../../source/System/Uri/QueryBuilder.ts"],"names":[],"mappings":"AAAA;;;GAGG;;IAMH,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;YAab;gBAC2B,gCAAiE;gBAG3F,sBACC,KAA4B,EAC5B,YAA2B;oBAA3B,4BAA2B,GAA3B,mBAA2B;oBAE3B,iBAAO,CAAC;oBAER,IAAI,CAAC,WAAW,CAAC,KAAK,EAAC,YAAY,CAAC,CAAC;gBACtC,CAAC;gBAGM,iBAAI,GAAX,UACC,KAA4B,EAC5B,YAA2B;oBAA3B,4BAA2B,GAA3B,mBAA2B;oBAE3B,MAAM,CAAC,IAAI,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;gBAC9C,CAAC;gBAED,kCAAW,GAAX,UACC,KAA4B,EAC5B,YAA2B;oBAA3B,4BAA2B,GAA3B,mBAA2B;oBAE3B,EAAE,CAAA,CAAC,eAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CACxB,CAAC;wBACA,IAAI,CAAC,gBAAgB,CAAS,KAAK,EAAE,YAAY,CAAC,CAAC;oBACpD,CAAC;oBACD,IAAI,CAAC,EAAE,CAAA,CAAC,oCAAuB,CAAC,KAAK,CAAC,CAAC,CACvC,CAAC;wBACA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBAC3B,CAAC;oBACD,IAAI,CACJ,CAAC;wBACA,IAAI,CAAC,SAAS,CAAmB,KAAK,CAAC,CAAC;oBACzC,CAAC;oBAED,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBASD,uCAAgB,GAAhB,UACC,MAAa,EACb,WAA0B,EAC1B,YAA2B;oBAD3B,2BAA0B,GAA1B,kBAA0B;oBAC1B,4BAA2B,GAA3B,mBAA2B;oBAE3B,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,WAAW,CAAC,KAAK,CAAC,MAAM,EACvB,UAAC,GAAG,EAAE,KAAK;wBAEV,EAAE,CAAA,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CACtB,CAAC;4BACA,IAAI,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;4BAC3B,EAAE,CAAA,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gCACtB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;4BAClB,IAAI;gCACH,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAoB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;wBACpD,CAAC;wBACD,IAAI;4BACH,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;oBACzB,CAAC,EACD,WAAW,EACX,YAAY,CAAC,CAAC;oBAEf,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBAOD,6BAAM,GAAN,UAAO,gBAAyB;oBAE/B,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;gBACnD,CAAC;gBAED,+BAAQ,GAAR;oBAEC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACtB,CAAC;gBACF,mBAAC;YAAD,CAAC,AAxFD,CAC2B,oCAA0B,GAuFpD;YAxFD,kCAwFC,CAAA"} \ No newline at end of file +{"version":3,"file":"QueryBuilder.js","sourceRoot":"","sources":["../../../../source/System/Uri/QueryBuilder.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;YAgBH;gBAAkC,gCAAmE;gBAGpG,sBACC,KAA4B,EAC5B,YAA2B;oBAA3B,4BAA2B,GAA3B,mBAA2B;oBAE3B,iBAAO,CAAC;oBAER,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;gBACvC,CAAC;gBAGM,iBAAI,GAAX,UACC,KAA4B,EAC5B,YAA2B;oBAA3B,4BAA2B,GAA3B,mBAA2B;oBAE3B,MAAM,CAAC,IAAI,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;gBAC9C,CAAC;gBAED,kCAAW,GAAX,UACC,KAA4B,EAC5B,YAA2B;oBAA3B,4BAA2B,GAA3B,mBAA2B;oBAG3B,EAAE,CAAA,CAAC,YAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CACxB,CAAC;wBACA,IAAI,CAAC,gBAAgB,CAAS,KAAK,EAAE,YAAY,CAAC,CAAC;oBACpD,CAAC;oBACD,IAAI,CAAC,EAAE,CAAA,CAAC,oCAAuB,CAAC,KAAK,CAAC,CAAC,CACvC,CAAC;wBACA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBAC3B,CAAC;oBACD,IAAI,CACJ,CAAC;wBACA,IAAI,CAAC,SAAS,CAAmB,KAAK,CAAC,CAAC;oBACzC,CAAC;oBAED,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBASD,uCAAgB,GAAhB,UACC,MAAa,EACb,WAA0B,EAC1B,YAA2B;oBAD3B,2BAA0B,GAA1B,kBAA0B;oBAC1B,4BAA2B,GAA3B,mBAA2B;oBAE3B,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,WAAW,CAAC,KAAK,CAAC,MAAM,EACvB,UAAC,GAAG,EAAE,KAAK;wBAEV,EAAE,CAAA,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CACtB,CAAC;4BACA,IAAI,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;4BAC3B,EAAE,CAAA,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gCACtB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;4BAClB,IAAI;gCACH,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAqB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;wBACrD,CAAC;wBACD,IAAI;4BACH,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;oBACzB,CAAC,EACD,WAAW,EACX,YAAY,CAAC,CAAC;oBAEf,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBAMD,6BAAM,GAAN,UAAO,gBAAyB;oBAE/B,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;gBACnD,CAAC;gBAED,+BAAQ,GAAR;oBAEC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACtB,CAAC;gBACF,mBAAC;YAAD,CAAC,AAvFD,CAAkC,uDAA0B,GAuF3D;YAvFD,uCAuFC,CAAA;YAED,oBAAe,YAAY,EAAC"} \ No newline at end of file diff --git a/dist/system/System/Uri/QueryParams.d.ts b/dist/system/System/Uri/QueryParams.d.ts index 6bedb350..f90cd30d 100644 --- a/dist/system/System/Uri/QueryParams.d.ts +++ b/dist/system/System/Uri/QueryParams.d.ts @@ -1,17 +1,20 @@ -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -export declare function encode(values: IUriComponentMap | QueryParamEnumerableOrArray, prefixIfNotEmpty?: boolean): string; -export declare function encodeValue(value: UriComponentValue): string; -export declare function isUriComponentFormattable(instance: any): instance is IUriComponentFormattable; +import * as UriComponent from "./UriComponent"; +import * as QueryParam from "./QueryParam"; +import { IMap } from "../Collections/Dictionaries/IDictionary"; +import { Primitive } from "../Primitive"; +import { IStringKeyValuePair } from "../KeyValuePair"; +export declare function encode(values: UriComponent.Map | QueryParam.EnumerableOrArray, prefixIfNotEmpty?: boolean): string; +export declare function encodeValue(value: UriComponent.Value): string; +export declare function isUriComponentFormattable(instance: any): instance is UriComponent.Formattable; export declare function parse(query: string, entryHandler: (key: string, value: Primitive) => void, deserialize?: boolean, decodeValues?: boolean): void; export declare function parseToMap(query: string, deserialize?: boolean, decodeValues?: boolean): IMap; export declare function parseToArray(query: string, deserialize?: boolean, decodeValues?: boolean): IStringKeyValuePair[]; export declare module Separator { + const Query: string; const Entry: string; const KeyValue: string; } diff --git a/dist/system/System/Uri/QueryParams.js b/dist/system/System/Uri/QueryParams.js index f152ecc7..093501bb 100644 --- a/dist/system/System/Uri/QueryParams.js +++ b/dist/system/System/Uri/QueryParams.js @@ -2,24 +2,24 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -System.register(["../Types", "../Serialization/Utility", "../KeyValueExtract", "../Collections/Enumeration/Enumerator"], function(exports_1, context_1) { - 'use strict'; +System.register(["../Serialization/Utility", "../Types", "../KeyValueExtract", "../Collections/Enumeration/Enumerator"], function(exports_1, context_1) { + "use strict"; var __moduleName = context_1 && context_1.id; - var Types_1, Serialization, KeyValueExtract_1, Enumerator_1; - var ENTRY_SEPARATOR, KEY_VALUE_SEPARATOR, Separator; + var Serialization, Types_1, KeyValueExtract_1, Enumerator_1; + var EMPTY, QUERY_SEPARATOR, ENTRY_SEPARATOR, KEY_VALUE_SEPARATOR, TO_URI_COMPONENT, Separator; function encode(values, prefixIfNotEmpty) { if (!values) - return ''; + return EMPTY; var entries = []; if (Enumerator_1.isEnumerableOrArrayLike(values)) { Enumerator_1.forEach(values, function (entry) { - return KeyValueExtract_1.default(entry, function (key, value) { return appendKeyValue(entries, key, value); }); + return KeyValueExtract_1.extractKeyValue(entry, function (key, value) { return appendKeyValue(entries, key, value); }); }); } else { Object.keys(values).forEach(function (key) { return appendKeyValue(entries, key, values[key]); }); } - return (entries.length && prefixIfNotEmpty ? '?' : '') + return (entries.length && prefixIfNotEmpty ? QUERY_SEPARATOR : EMPTY) + entries.join(ENTRY_SEPARATOR); } exports_1("encode", encode); @@ -38,7 +38,7 @@ System.register(["../Types", "../Serialization/Utility", "../KeyValueExtract", " var v = null; if (isUriComponentFormattable(value)) { v = value.toUriComponent(); - if (v && v.indexOf('&') != 1) + if (v && v.indexOf(ENTRY_SEPARATOR) != 1) throw '.toUriComponent() did not encode the value.'; } else { @@ -48,7 +48,7 @@ System.register(["../Types", "../Serialization/Utility", "../KeyValueExtract", " } exports_1("encodeValue", encodeValue); function isUriComponentFormattable(instance) { - return Types_1.default.hasMemberOfType(instance, "toUriComponent", Types_1.default.FUNCTION); + return Types_1.Type.hasMemberOfType(instance, TO_URI_COMPONENT, Types_1.Type.FUNCTION); } exports_1("isUriComponentFormattable", isUriComponentFormattable); function parse(query, entryHandler, deserialize, decodeValues) { @@ -99,12 +99,12 @@ System.register(["../Types", "../Serialization/Utility", "../KeyValueExtract", " exports_1("parseToArray", parseToArray); return { setters:[ - function (Types_1_1) { - Types_1 = Types_1_1; - }, function (Serialization_1) { Serialization = Serialization_1; }, + function (Types_1_1) { + Types_1 = Types_1_1; + }, function (KeyValueExtract_1_1) { KeyValueExtract_1 = KeyValueExtract_1_1; }, @@ -112,8 +112,9 @@ System.register(["../Types", "../Serialization/Utility", "../KeyValueExtract", " Enumerator_1 = Enumerator_1_1; }], execute: function() { - ENTRY_SEPARATOR = "&", KEY_VALUE_SEPARATOR = "="; + EMPTY = "", QUERY_SEPARATOR = "?", ENTRY_SEPARATOR = "&", KEY_VALUE_SEPARATOR = "=", TO_URI_COMPONENT = "toUriComponent"; (function (Separator) { + Separator.Query = QUERY_SEPARATOR; Separator.Entry = ENTRY_SEPARATOR; Separator.KeyValue = KEY_VALUE_SEPARATOR; })(Separator = Separator || (Separator = {})); diff --git a/dist/system/System/Uri/QueryParams.js.map b/dist/system/System/Uri/QueryParams.js.map index a9308640..c9dcf6b6 100644 --- a/dist/system/System/Uri/QueryParams.js.map +++ b/dist/system/System/Uri/QueryParams.js.map @@ -1 +1 @@ -{"version":3,"file":"QueryParams.js","sourceRoot":"","sources":["../../../../source/System/Uri/QueryParams.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"QueryParams.js","sourceRoot":"","sources":["../../../../source/System/Uri/QueryParams.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/system/System/Uri/Scheme.d.ts b/dist/system/System/Uri/Scheme.d.ts index 5e625ec8..406f9ce0 100644 --- a/dist/system/System/Uri/Scheme.d.ts +++ b/dist/system/System/Uri/Scheme.d.ts @@ -3,19 +3,20 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based on: https://msdn.microsoft.com/en-us/library/system.uri.scheme%28v=vs.110%29.aspx */ -declare enum Scheme { - file = 0, - ftp = 1, - gopher = 2, - http = 3, - https = 4, - ldap = 5, - mailto = 6, - pipe = 7, - tcp = 8, - news = 9, - nntp = 10, - telnet = 11, - uuid = 12, -} -export default Scheme; +import * as Scheme from "./SchemeValue"; +import { SchemeValue } from "./SchemeValue"; +export declare const File: Scheme.File; +export declare const FTP: Scheme.FTP; +export declare const GOPHER: Scheme.Gopher; +export declare const HTTP: Scheme.HTTP; +export declare const HTTPS: Scheme.HTTPS; +export declare const LDAP: Scheme.LDAP; +export declare const MAILTO: Scheme.MailTo; +export declare const PIPE: Scheme.Pipe; +export declare const TCP: Scheme.TCP; +export declare const NEWS: Scheme.NNTP; +export declare const NNTP: Scheme.NNTP; +export declare const TELNET: Scheme.Telnet; +export declare const UUID: Scheme.UUID; +export declare const All: SchemeValue[]; +export declare function isValid(scheme: string): scheme is SchemeValue; diff --git a/dist/system/System/Uri/Scheme.js b/dist/system/System/Uri/Scheme.js index f2d70e15..e2fc03d3 100644 --- a/dist/system/System/Uri/Scheme.js +++ b/dist/system/System/Uri/Scheme.js @@ -6,33 +6,30 @@ System.register([], function(exports_1, context_1) { "use strict"; var __moduleName = context_1 && context_1.id; - var Scheme, PIPE, TCP; + var File, FTP, GOPHER, HTTP, HTTPS, LDAP, MAILTO, PIPE, TCP, NEWS, NNTP, TELNET, UUID, All; + function isValid(scheme) { + return All.indexOf(scheme) != -1; + } + exports_1("isValid", isValid); return { setters:[], execute: function() { - (function (Scheme) { - Scheme[Scheme["file"] = 0] = "file"; - Scheme[Scheme["ftp"] = 1] = "ftp"; - Scheme[Scheme["gopher"] = 2] = "gopher"; - Scheme[Scheme["http"] = 3] = "http"; - Scheme[Scheme["https"] = 4] = "https"; - Scheme[Scheme["ldap"] = 5] = "ldap"; - Scheme[Scheme["mailto"] = 6] = "mailto"; - Scheme[Scheme["pipe"] = 7] = "pipe"; - Scheme[Scheme["tcp"] = 8] = "tcp"; - Scheme[Scheme["news"] = 9] = "news"; - Scheme[Scheme["nntp"] = 10] = "nntp"; - Scheme[Scheme["telnet"] = 11] = "telnet"; - Scheme[Scheme["uuid"] = 12] = "uuid"; - })(Scheme || (Scheme = {})); - PIPE = 'net.pipe'; - TCP = 'net.tcp'; - Scheme[Scheme.pipe] = PIPE; - Scheme[Scheme.tcp] = TCP; - Scheme[PIPE] = Scheme.pipe; - Scheme[TCP] = Scheme.tcp; - Object.freeze(Scheme); - exports_1("default",Scheme); + exports_1("File", File = "file"); + exports_1("FTP", FTP = "ftp"); + exports_1("GOPHER", GOPHER = "gopher"); + exports_1("HTTP", HTTP = "http"); + exports_1("HTTPS", HTTPS = "https"); + exports_1("LDAP", LDAP = "ldap"); + exports_1("MAILTO", MAILTO = "mailto"); + exports_1("PIPE", PIPE = "net.pipe"); + exports_1("TCP", TCP = "net.tcp"); + exports_1("NEWS", NEWS = "news"); + exports_1("NNTP", NNTP = "nntp"); + exports_1("TELNET", TELNET = "telnet"); + exports_1("UUID", UUID = "uuid"); + exports_1("All", All = Object.freeze([ + File, FTP, GOPHER, HTTP, HTTPS, LDAP, MAILTO, PIPE, TCP, NEWS, NNTP, TELNET, UUID + ])); } } }); diff --git a/dist/system/System/Uri/Scheme.js.map b/dist/system/System/Uri/Scheme.js.map index b6d80cdc..7f6dfd3d 100644 --- a/dist/system/System/Uri/Scheme.js.map +++ b/dist/system/System/Uri/Scheme.js.map @@ -1 +1 @@ -{"version":3,"file":"Scheme.js","sourceRoot":"","sources":["../../../../source/System/Uri/Scheme.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;;gBAkFG,IAAI,EACJ,GAAG;;;;YAhFT,WAAK,MAAM;gBAIV,mCAAI,CAAA;gBAMJ,iCAAG,CAAA;gBAMH,uCAAM,CAAA;gBAMN,mCAAI,CAAA;gBAMJ,qCAAK,CAAA;gBAML,mCAAI,CAAA;gBAMJ,uCAAM,CAAA;gBAMN,mCAAI,CAAA;gBAMJ,iCAAG,CAAA;gBAMH,mCAAI,CAAA;gBAMJ,oCAAI,CAAA;gBAMJ,wCAAM,CAAA;gBAKN,oCAAI,CAAA;YACL,CAAC,EA5EI,MAAM,KAAN,MAAM,QA4EV;YAGK,IAAI,GAAG,UAAU,CAAC;YAClB,GAAG,GAAG,SAAS,CAAC;YAEtB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YAC3B,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;YAEnB,MAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;YAC5B,MAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC;YAEhC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAEtB,oBAAe,MAAM,EAAC"} \ No newline at end of file +{"version":3,"file":"Scheme.js","sourceRoot":"","sources":["../../../../source/System/Uri/Scheme.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;;QASU,IAAI,EAMJ,GAAG,EAMH,MAAM,EAMN,IAAI,EAMJ,KAAK,EAML,IAAI,EAMJ,MAAM,EAMN,IAAI,EAMJ,GAAG,EAMH,IAAI,EAMJ,IAAI,EAMJ,MAAM,EAKN,IAAI,EAMJ,GAAG;IAIhB,iBAAwB,MAAa;QACpC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAM,MAAM,CAAC,IAAE,CAAC,CAAC,CAAC;IACrC,CAAC;IAFD,6BAEC,CAAA;;;;YAnFY,kBAAA,IAAI,GAAe,MAAM,CAAA,CAAC;YAM1B,iBAAA,GAAG,GAAc,KAAK,CAAA,CAAC;YAMvB,oBAAA,MAAM,GAAiB,QAAQ,CAAA,CAAC;YAMhC,kBAAA,IAAI,GAAe,MAAM,CAAA,CAAC;YAM1B,mBAAA,KAAK,GAAgB,OAAO,CAAA,CAAC;YAM7B,kBAAA,IAAI,GAAe,MAAM,CAAA,CAAC;YAM1B,oBAAA,MAAM,GAAiB,QAAQ,CAAA,CAAC;YAMhC,kBAAA,IAAI,GAAe,UAAU,CAAA,CAAC;YAM9B,iBAAA,GAAG,GAAc,SAAS,CAAA,CAAC;YAM3B,kBAAA,IAAI,GAAe,MAAM,CAAA,CAAC;YAM1B,kBAAA,IAAI,GAAe,MAAM,CAAA,CAAC;YAM1B,oBAAA,MAAM,GAAiB,QAAQ,CAAA,CAAC;YAKhC,kBAAA,IAAI,GAAe,MAAM,CAAA,CAAC;YAM1B,iBAAA,GAAG,GAAiB,MAAM,CAAC,MAAM,CAAC;gBAC9C,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI;aACjF,CAAC,CAAA,CAAC"} \ No newline at end of file diff --git a/dist/system/System/Uri/Uri.d.ts b/dist/system/System/Uri/Uri.d.ts index b48843c9..07123b10 100644 --- a/dist/system/System/Uri/Uri.d.ts +++ b/dist/system/System/Uri/Uri.d.ts @@ -1,14 +1,15 @@ -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based on: https://en.wikipedia.org/wiki/Uniform_Resource_Identifier */ -import UriScheme from "../Uri/Scheme"; -export default class Uri implements IUri, IEquatable { +import * as QueryParam from "./QueryParam"; +import { SchemeValue } from "./SchemeValue"; +import { IUri } from "./IUri"; +import { IMap } from "../Collections/Dictionaries/IDictionary"; +import { Primitive } from "../Primitive"; +import { IEquatable } from "../IEquatable"; +export declare class Uri implements IUri, IEquatable { scheme: SchemeValue; userInfo: string; host: string; @@ -17,14 +18,14 @@ export default class Uri implements IUri, IEquatable { query: string; fragment: string; queryParams: IMap; - constructor(scheme: UriScheme | SchemeValue, userInfo: string, host: string, port: number, path: string, query?: QueryParamsConvertible, fragment?: string); + constructor(scheme: SchemeValue, userInfo: string, host: string, port: number, path: string, query?: QueryParam.Convertible, fragment?: string); equals(other: IUri): boolean; static from(uri: string | IUri, defaults?: IUri): Uri; static parse(url: string, throwIfInvalid?: boolean): IUri; static tryParse(url: string, out: (result: IUri) => void): boolean; static copyOf(map: IUri): IUri; copyTo(map: IUri): IUri; - updateQuery(query: QueryParamsConvertible): Uri; + updateQuery(query: QueryParam.Convertible): Uri; protected getAbsoluteUri(): string; protected getAuthority(): string; protected getPathAndQuery(): string; @@ -47,3 +48,4 @@ export declare enum Fields { query = 5, fragment = 6, } +export default Uri; diff --git a/dist/system/System/Uri/Uri.js b/dist/system/System/Uri/Uri.js index d008c1ef..13742a89 100644 --- a/dist/system/System/Uri/Uri.js +++ b/dist/system/System/Uri/Uri.js @@ -3,10 +3,10 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based on: https://en.wikipedia.org/wiki/Uniform_Resource_Identifier */ -System.register(["../Types", "../Uri/QueryParams", "../Text/Utility", "../Uri/Scheme", "../Exceptions/ArgumentException", "../Exceptions/ArgumentOutOfRangeException"], function(exports_1, context_1) { - 'use strict'; +System.register(["../Types", "./QueryParams", "./Scheme", "../Text/Utility", "../Exceptions/ArgumentException", "../Exceptions/ArgumentOutOfRangeException"], function(exports_1, context_1) { + "use strict"; var __moduleName = context_1 && context_1.id; - var Types_1, QueryParams, Utility_1, Scheme_1, ArgumentException_1, ArgumentOutOfRangeException_1; + var Types_1, QueryParams, Scheme, Utility_1, ArgumentException_1, ArgumentOutOfRangeException_1; var VOID0, Uri, Fields, SLASH, SLASH2, QM, HASH, EMPTY, AT; function copyUri(from, to) { var i = 0, field; @@ -21,20 +21,20 @@ System.register(["../Types", "../Uri/QueryParams", "../Text/Utility", "../Uri/Sc } function getScheme(scheme) { var s = scheme; - if (Types_1.default.isString(s)) { + if (Types_1.Type.isString(s)) { if (!s) - return VOID0; - s = Scheme_1.default[Utility_1.trim(s).toLowerCase().replace(/[^a-z0-9+.-]+$/g, EMPTY)]; - if (isNaN(s)) - throw new ArgumentOutOfRangeException_1.default('scheme', scheme, 'Invalid scheme.'); - } - if (Types_1.default.isNumber(s, false)) { - s = Scheme_1.default[s]; + return null; + s = Utility_1.trim(s).toLowerCase().replace(/[^a-z0-9+.-]+$/g, EMPTY); if (!s) - throw new ArgumentOutOfRangeException_1.default('scheme', scheme, 'Invalid scheme.'); - return s; + return null; + if (Scheme.isValid(s)) + return s; + } + else { + if (s === null || s === undefined) + return s; } - return VOID0; + throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('scheme', scheme, 'Invalid scheme.'); } function getPort(port) { if (port === 0) @@ -42,22 +42,22 @@ System.register(["../Types", "../Uri/QueryParams", "../Text/Utility", "../Uri/Sc if (!port) return null; var p; - if (Types_1.default.isNumber(port, true)) { + if (Types_1.Type.isNumber(port, true)) { p = port; if (p >= 0 && isFinite(p)) return p; } - else if (Types_1.default.isString(port) && (p = parseInt(port)) && !isNaN(p)) { + else if (Types_1.Type.isString(port) && (p = parseInt(port)) && !isNaN(p)) { return getPort(p); } - throw new ArgumentException_1.default("port", "invalid value"); + throw new ArgumentException_1.ArgumentException("port", "invalid value"); } function getAuthority(uri) { if (!uri.host) { if (uri.userInfo) - throw new ArgumentException_1.default('host', 'Cannot include user info when there is no host.'); - if (Types_1.default.isNumber(uri.port, false)) - throw new ArgumentException_1.default('host', 'Cannot include a port when there is no host.'); + throw new ArgumentException_1.ArgumentException('host', 'Cannot include user info when there is no host.'); + if (Types_1.Type.isNumber(uri.port, false)) + throw new ArgumentException_1.ArgumentException('host', 'Cannot include a port when there is no host.'); } var result = uri.host || EMPTY; if (result) { @@ -90,14 +90,14 @@ System.register(["../Types", "../Uri/QueryParams", "../Text/Utility", "../Uri/Sc + (pathAndQuery || EMPTY) + (fragment || EMPTY); if (part1 && part2 && scheme && !authority) - throw new ArgumentException_1.default('authority', "Cannot format schemed Uri with missing authority."); + throw new ArgumentException_1.ArgumentException('authority', "Cannot format schemed Uri with missing authority."); if (part1 && pathAndQuery && pathAndQuery.indexOf(SLASH) !== 0) part2 = SLASH + part2; return part1 + part2; } function tryParse(url, out) { if (!url) - return new ArgumentException_1.default('url', 'Nothing to parse.'); + return new ArgumentException_1.ArgumentException('url', 'Nothing to parse.'); var i, result = {}; i = url.indexOf(HASH); if (i != -1) { @@ -113,7 +113,7 @@ System.register(["../Types", "../Uri/QueryParams", "../Text/Utility", "../Uri/Sc if (i != -1) { var scheme = Utility_1.trim(url.substring(0, i)), c = /:$/; if (!c.test(scheme)) - return new ArgumentException_1.default('url', 'Scheme was improperly formatted'); + return new ArgumentException_1.ArgumentException('url', 'Scheme was improperly formatted'); scheme = Utility_1.trim(scheme.replace(c, EMPTY)); try { result.scheme = getScheme(scheme) || VOID0; @@ -137,7 +137,7 @@ System.register(["../Types", "../Uri/QueryParams", "../Text/Utility", "../Uri/Sc if (i != -1) { var port = parseInt(Utility_1.trim(url.substring(i + 1))); if (isNaN(port)) - return new ArgumentException_1.default('url', 'Port was invalid.'); + return new ArgumentException_1.ArgumentException('url', 'Port was invalid.'); result.port = port; url = url.substring(0, i); } @@ -155,12 +155,12 @@ System.register(["../Types", "../Uri/QueryParams", "../Text/Utility", "../Uri/Sc function (QueryParams_1) { QueryParams = QueryParams_1; }, + function (Scheme_1) { + Scheme = Scheme_1; + }, function (Utility_1_1) { Utility_1 = Utility_1_1; }, - function (Scheme_1_1) { - Scheme_1 = Scheme_1_1; - }, function (ArgumentException_1_1) { ArgumentException_1 = ArgumentException_1_1; }, @@ -178,7 +178,7 @@ System.register(["../Types", "../Uri/QueryParams", "../Text/Utility", "../Uri/Sc _.port = getPort(port); _.authority = _.getAuthority() || null; _.path = path || null; - if (!Types_1.default.isString(query)) + if (!Types_1.Type.isString(query)) query = QueryParams.encode(query); _.query = formatQuery(query) || null; Object.freeze(_.queryParams @@ -195,7 +195,7 @@ System.register(["../Types", "../Uri/QueryParams", "../Text/Utility", "../Uri/Sc return this === other || this.absoluteUri == Uri.toString(other); }; Uri.from = function (uri, defaults) { - var u = (!uri || Types_1.default.isString(uri)) + var u = (!uri || Types_1.Type.isString(uri)) ? Uri.parse(uri) : uri; return new Uri(u.scheme || defaults && defaults.scheme, u.userInfo || defaults && defaults.userInfo, u.host || defaults && defaults.host, isNaN(u.port) ? defaults && defaults.port : u.port, u.path || defaults && defaults.path, u.query || defaults && defaults.query, u.fragment || defaults && defaults.fragment); }; @@ -253,7 +253,7 @@ System.register(["../Types", "../Uri/QueryParams", "../Text/Utility", "../Uri/Sc }; return Uri; }()); - exports_1("default", Uri); + exports_1("Uri", Uri); (function (Fields) { Fields[Fields["scheme"] = 0] = "scheme"; Fields[Fields["userInfo"] = 1] = "userInfo"; @@ -265,7 +265,8 @@ System.register(["../Types", "../Uri/QueryParams", "../Text/Utility", "../Uri/Sc })(Fields || (Fields = {})); exports_1("Fields", Fields); Object.freeze(Fields); - SLASH = '/', SLASH2 = '//', QM = '?', HASH = '#', EMPTY = '', AT = '@'; + SLASH = '/', SLASH2 = '//', QM = QueryParams.Separator.Query, HASH = '#', EMPTY = '', AT = '@'; + exports_1("default",Uri); } } }); diff --git a/dist/system/System/Uri/Uri.js.map b/dist/system/System/Uri/Uri.js.map index de4168a9..fb5f20ae 100644 --- a/dist/system/System/Uri/Uri.js.map +++ b/dist/system/System/Uri/Uri.js.map @@ -1 +1 @@ -{"version":3,"file":"Uri.js","sourceRoot":"","sources":["../../../../source/System/Uri/Uri.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Uri.js","sourceRoot":"","sources":["../../../../source/System/Uri/Uri.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/system/System/Utility/clone.js b/dist/system/System/Utility/clone.js index 85101445..62d95675 100644 --- a/dist/system/System/Utility/clone.js +++ b/dist/system/System/Utility/clone.js @@ -2,7 +2,7 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -System.register(['../Types'], function(exports_1, context_1) { +System.register(["../Types"], function(exports_1, context_1) { "use strict"; var __moduleName = context_1 && context_1.id; var Types_1; @@ -10,7 +10,7 @@ System.register(['../Types'], function(exports_1, context_1) { if (depth === void 0) { depth = 0; } if (depth < 0) return source; - if (!Types_1.default.isObject(source)) + if (!Types_1.Type.isObject(source)) return source; var result; if (Array.isArray(source)) { diff --git a/dist/system/System/Utility/clone.js.map b/dist/system/System/Utility/clone.js.map index 97adf8b3..53e522a2 100644 --- a/dist/system/System/Utility/clone.js.map +++ b/dist/system/System/Utility/clone.js.map @@ -1 +1 @@ -{"version":3,"file":"clone.js","sourceRoot":"","sources":["../../../../source/System/Utility/clone.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;IAIH,eAA8B,MAAU,EAAE,KAAgB;QAAhB,qBAAgB,GAAhB,SAAgB;QAEzD,EAAE,CAAA,CAAC,KAAK,GAAC,CAAC,CAAC;YACV,MAAM,CAAC,MAAM,CAAC;QAGf,EAAE,CAAA,CAAC,CAAC,eAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAAC,MAAM,CAAC,MAAM,CAAC;QAEzC,IAAI,MAAU,CAAC;QACf,EAAE,CAAA,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CACzB,CAAC;YACA,MAAM,GAAS,MAAO,CAAC,KAAK,EAAE,CAAC;YAC/B,EAAE,CAAA,CAAC,KAAK,GAAC,CAAC,CAAC,CACX,CAAC;gBACA,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EACnC,CAAC;oBACA,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;gBACzC,CAAC;YACF,CAAC;QACF,CAAC;QACD,IAAI,CACJ,CAAC;YACA,MAAM,GAAG,EAAE,CAAC;YACZ,EAAE,CAAA,CAAC,KAAK,GAAC,CAAC,CAAC;gBAAC,GAAG,CAAA,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,CAChC,CAAC;oBAEA,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;gBACzC,CAAC;QACF,CAAC;QAED,MAAM,CAAC,MAAM,CAAC;IAEf,CAAC;IAhCD,2BAgCC,CAAA"} \ No newline at end of file +{"version":3,"file":"clone.js","sourceRoot":"","sources":["../../../../source/System/Utility/clone.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;IAIH,eAA8B,MAAU,EAAE,KAAgB;QAAhB,qBAAgB,GAAhB,SAAgB;QAEzD,EAAE,CAAA,CAAC,KAAK,GAAC,CAAC,CAAC;YACV,MAAM,CAAC,MAAM,CAAC;QAGf,EAAE,CAAA,CAAC,CAAC,YAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAAC,MAAM,CAAC,MAAM,CAAC;QAEzC,IAAI,MAAU,CAAC;QACf,EAAE,CAAA,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CACzB,CAAC;YACA,MAAM,GAAS,MAAO,CAAC,KAAK,EAAE,CAAC;YAC/B,EAAE,CAAA,CAAC,KAAK,GAAC,CAAC,CAAC,CACX,CAAC;gBACA,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EACnC,CAAC;oBACA,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;gBACzC,CAAC;YACF,CAAC;QACF,CAAC;QACD,IAAI,CACJ,CAAC;YACA,MAAM,GAAG,EAAE,CAAC;YACZ,EAAE,CAAA,CAAC,KAAK,GAAC,CAAC,CAAC;gBAAC,GAAG,CAAA,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,CAChC,CAAC;oBAEA,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;gBACzC,CAAC;QACF,CAAC;QAED,MAAM,CAAC,MAAM,CAAC;IAEf,CAAC;IAhCD,2BAgCC,CAAA"} \ No newline at end of file diff --git a/dist/system/System/Utility/shallowCopy.d.ts b/dist/system/System/Utility/shallowCopy.d.ts index df935e23..51512af7 100644 --- a/dist/system/System/Utility/shallowCopy.d.ts +++ b/dist/system/System/Utility/shallowCopy.d.ts @@ -2,4 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -export default function shallowCopy(source: any, target?: any): any; +export declare function shallowCopy(source: any, target?: any): any; +export default shallowCopy; diff --git a/dist/system/System/Utility/shallowCopy.js b/dist/system/System/Utility/shallowCopy.js index f15c7411..356165b7 100644 --- a/dist/system/System/Utility/shallowCopy.js +++ b/dist/system/System/Utility/shallowCopy.js @@ -14,10 +14,11 @@ System.register([], function(exports_1, context_1) { } return target; } - exports_1("default", shallowCopy); + exports_1("shallowCopy", shallowCopy); return { setters:[], execute: function() { + exports_1("default",shallowCopy); } } }); diff --git a/dist/system/System/Utility/shallowCopy.js.map b/dist/system/System/Utility/shallowCopy.js.map index 16f0b1e9..ed08c6c1 100644 --- a/dist/system/System/Utility/shallowCopy.js.map +++ b/dist/system/System/Utility/shallowCopy.js.map @@ -1 +1 @@ -{"version":3,"file":"shallowCopy.js","sourceRoot":"","sources":["../../../../source/System/Utility/shallowCopy.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;IAEH,qBAAoC,MAAU,EAAE,MAAe;QAAf,sBAAe,GAAf,WAAe;QAE9D,EAAE,CAAA,CAAC,MAAM,CAAC,CACV,CAAC;YACA,GAAG,CAAA,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,CACpB,CAAC;gBAEA,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACvB,CAAC;QACF,CAAC;QAED,MAAM,CAAC,MAAM,CAAC;IACf,CAAC;IAZD,iCAYC,CAAA"} \ No newline at end of file +{"version":3,"file":"shallowCopy.js","sourceRoot":"","sources":["../../../../source/System/Utility/shallowCopy.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;IAEH,qBAA4B,MAAU,EAAE,MAAe;QAAf,sBAAe,GAAf,WAAe;QAEtD,EAAE,CAAA,CAAC,MAAM,CAAC,CACV,CAAC;YACA,GAAG,CAAA,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,CACpB,CAAC;gBAEA,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACvB,CAAC;QACF,CAAC;QAED,MAAM,CAAC,MAAM,CAAC;IACf,CAAC;IAZD,qCAYC,CAAA;;;;YAED,oBAAe,WAAW,EAAC"} \ No newline at end of file diff --git a/dist/system/System/Validation/ValidationResult.d.ts b/dist/system/System/Validation/ValidationResult.d.ts index 8fdffed8..563c9625 100644 --- a/dist/system/System/Validation/ValidationResult.d.ts +++ b/dist/system/System/Validation/ValidationResult.d.ts @@ -1,9 +1,9 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { IEquatable } from "../IEquatable"; +import { IValidationResult } from "./IValidationResult"; export default class ValidationResult implements IValidationResult, IEquatable { isValid: boolean; message: string; diff --git a/dist/system/System/Validation/ValidationResult.js b/dist/system/System/Validation/ValidationResult.js index 35cc7cbc..e022e46d 100644 --- a/dist/system/System/Validation/ValidationResult.js +++ b/dist/system/System/Validation/ValidationResult.js @@ -3,7 +3,7 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ System.register([], function(exports_1, context_1) { - 'use strict'; + "use strict"; var __moduleName = context_1 && context_1.id; var valid, ValidationResult; return { diff --git a/dist/system/System/Validation/ValidationResult.js.map b/dist/system/System/Validation/ValidationResult.js.map index 6b62a21e..e555275e 100644 --- a/dist/system/System/Validation/ValidationResult.js.map +++ b/dist/system/System/Validation/ValidationResult.js.map @@ -1 +1 @@ -{"version":3,"file":"ValidationResult.js","sourceRoot":"","sources":["../../../../source/System/Validation/ValidationResult.ts"],"names":[],"mappings":"AAAA;;;GAGG;;IAIH,YAAY,CAAC;;QAEP,KAAK;;;;YAAL,KAAK,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAKzC;gBAOC,0BACQ,OAAuB,EACvB,OAAqB,EACrB,IAAe;oBAFtB,uBAA8B,GAA9B,eAA8B;oBAC9B,uBAA4B,GAA5B,cAA4B;oBAC5B,oBAAsB,GAAtB,WAAsB;oBAFf,YAAO,GAAP,OAAO,CAAgB;oBACvB,YAAO,GAAP,OAAO,CAAc;oBACrB,SAAI,GAAJ,IAAI,CAAW;oBAItB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACrB,CAAC;gBAKD,iCAAM,GAAN,UAAO,KAAuB;oBAE7B,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,MAAM,CAAC,CAAC,CAAC,OAAO,KAAG,KAAK,CAAC,OAAO;2BAC5B,CAAC,CAAC,OAAO,IAAE,CAAC,CAAC,OAAO;2BACpB,CAAC,CAAC,IAAI,IAAE,CAAC,CAAC,IAAI,CAAC;gBACpB,CAAC;gBAOD,sBAAW,yBAAK;yBAAhB;wBACC,MAAM,CAAC,KAAK,CAAC;oBACd,CAAC;;;mBAAA;gBAKM,wBAAO,GAAd,UACC,OAAc,EACd,IAAe;oBAAf,oBAAe,GAAf,WAAe;oBAEf,MAAM,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBACnD,CAAC;gBACF,uBAAC;YAAD,CAAC,AA9CD,IA8CC;YA9CD,sCA8CC,CAAA"} \ No newline at end of file +{"version":3,"file":"ValidationResult.js","sourceRoot":"","sources":["../../../../source/System/Validation/ValidationResult.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;QAKG,KAAK;;;;YAAL,KAAK,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAKzC;gBAOC,0BACQ,OAAuB,EACvB,OAAqB,EACrB,IAAe;oBAFtB,uBAA8B,GAA9B,eAA8B;oBAC9B,uBAA4B,GAA5B,cAA4B;oBAC5B,oBAAsB,GAAtB,WAAsB;oBAFf,YAAO,GAAP,OAAO,CAAgB;oBACvB,YAAO,GAAP,OAAO,CAAc;oBACrB,SAAI,GAAJ,IAAI,CAAW;oBAItB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACrB,CAAC;gBAKD,iCAAM,GAAN,UAAO,KAAuB;oBAE7B,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,MAAM,CAAC,CAAC,CAAC,OAAO,KAAG,KAAK,CAAC,OAAO;2BAC5B,CAAC,CAAC,OAAO,IAAE,CAAC,CAAC,OAAO;2BACpB,CAAC,CAAC,IAAI,IAAE,CAAC,CAAC,IAAI,CAAC;gBACpB,CAAC;gBAOD,sBAAW,yBAAK;yBAAhB;wBACC,MAAM,CAAC,KAAK,CAAC;oBACd,CAAC;;;mBAAA;gBAKM,wBAAO,GAAd,UACC,OAAc,EACd,IAAe;oBAAf,oBAAe,GAAf,WAAe;oBAEf,MAAM,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBACnD,CAAC;gBACF,uBAAC;YAAD,CAAC,AA9CD,IA8CC;YA9CD,sCA8CC,CAAA"} \ No newline at end of file diff --git a/dist/umd.min/System.Linq/Linq.d.ts b/dist/umd.min/System.Linq/Linq.d.ts index 03d8c5c7..eb598fc4 100644 --- a/dist/umd.min/System.Linq/Linq.d.ts +++ b/dist/umd.min/System.Linq/Linq.d.ts @@ -1,19 +1,17 @@ -/// -/// -/// -/// -/// -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Original: http://linqjs.codeplex.com/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import Dictionary from "../System/Collections/Dictionaries/Dictionary"; -import DisposableBase from "../System/Disposable/DisposableBase"; +import { Dictionary } from "../System/Collections/Dictionaries/Dictionary"; +import { DisposableBase } from "../System/Disposable/DisposableBase"; +import { IEnumerator } from "../System/Collections/Enumeration/IEnumerator"; +import { IEnumerable } from "../System/Collections/Enumeration/IEnumerable"; +import { Action, Predicate, Selector, EqualityComparison, Comparison } from "../System/FunctionTypes"; +import { IEnumerableOrArray } from "../System/Collections/IEnumerableOrArray"; +import { IArray } from "../System/Collections/Array/IArray"; +import { IMap } from "../System/Collections/Dictionaries/IDictionary"; +import { Comparable } from "../System/IComparable"; export declare const enum EnumerableAction { Break = 0, Return = 1, diff --git a/dist/umd.min/System.Linq/Linq.js b/dist/umd.min/System.Linq/Linq.js index 166de7be..8624392a 100644 --- a/dist/umd.min/System.Linq/Linq.js +++ b/dist/umd.min/System.Linq/Linq.js @@ -3,6 +3,6 @@ * Original: http://linqjs.codeplex.com/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)};!function(t){if("object"==typeof module&&"object"==typeof module.exports){var e=t(require,exports);void 0!==e&&(module.exports=e)}else"function"==typeof define&&define.amd&&define(["require","exports","../System/Compare","../System/Collections/Array/Compare","../System/Collections/Array/Utility","../System/Collections/Enumeration/Enumerator","../System/Types","../System/Integer","../System/Functions","../System/Collections/Enumeration/ArrayEnumerator","../System/Collections/Enumeration/EnumeratorBase","../System/Collections/Dictionaries/Dictionary","../System/Collections/Queue","../System/Disposable/dispose","../System/Disposable/DisposableBase","../System/Collections/Enumeration/UnsupportedEnumerableException","../System/Disposable/ObjectDisposedException","../System/Collections/Sorting/KeySortedContext","../System/Exceptions/ArgumentNullException","../System/Exceptions/ArgumentOutOfRangeException"],t)}(function(t,e){"use strict";function n(){return a.empty}function r(t,e){return e&&(e.moveNext()?t.enqueue(e):(m.dispose(e),e=null)),e}function o(t,e){void 0===e&&(e=null);var n=new N["default"](e,t.keySelector,t.order,t.comparer);return t.parent?o(t.parent,n):n}function u(t){if(t)throw new g["default"]("Enumerable")}var i=t("../System/Compare"),s=t("../System/Collections/Array/Compare"),f=t("../System/Collections/Array/Utility"),a=t("../System/Collections/Enumeration/Enumerator"),c=t("../System/Types"),l=t("../System/Integer"),p=t("../System/Functions"),d=t("../System/Collections/Enumeration/ArrayEnumerator"),y=t("../System/Collections/Enumeration/EnumeratorBase"),h=t("../System/Collections/Dictionaries/Dictionary"),v=t("../System/Collections/Queue"),m=t("../System/Disposable/dispose"),w=t("../System/Disposable/DisposableBase"),E=t("../System/Collections/Enumeration/UnsupportedEnumerableException"),g=t("../System/Disposable/ObjectDisposedException"),N=t("../System/Collections/Sorting/KeySortedContext"),x=t("../System/Exceptions/ArgumentNullException"),_=t("../System/Exceptions/ArgumentOutOfRangeException"),I={},b=void 0,D=function(t){return 0},R=function(t){function e(){t.apply(this,arguments)}return __extends(e,t),e.prototype.Greater=function(t,e){return t>e?t:e},e.prototype.Lesser=function(t,e){return e>t?t:e},e}(p["default"]),A=new R;Object.freeze(A);var S=function(t){function e(e,n){t.call(this,n),this._enumeratorFactory=e,this._isEndless=!0}return __extends(e,t),Object.defineProperty(e.prototype,"isEndless",{get:function(){return this._isEndless},enumerable:!0,configurable:!0}),e.prototype.getEnumerator=function(){return this.throwIfDisposed(),this._enumeratorFactory()},e.prototype._onDispose=function(){t.prototype._onDispose.call(this),this._enumeratorFactory=null},e.prototype.asEnumerable=function(){var t=this;return t.throwIfDisposed(),new e(function(){return t.getEnumerator()})},e.prototype.doAction=function(t,e,n){void 0===n&&(n=this.isEndless);var r=this,o=!r.throwIfDisposed();return new k(function(){var i,s=0;return new y["default"](function(){u(o),e&&e(),s=0,i=r.getEnumerator()},function(e){for(u(o);i.moveNext();){var n=t(i.current,s++);if(n===!1||0===n)return e.yieldBreak();if(2!==n)return e.yieldReturn(i.current)}return!1},function(){m.dispose(i)},n)},function(){o=!0},n)},e.prototype.force=function(){this.throwIfDisposed(),this.doAction(D).getEnumerator().moveNext()},e.prototype.skip=function(t){var e=this;return e.throwIfDisposed(),isFinite(t)?(l["default"].assert(t,"count"),this.doAction(function(e,n){return t>n?2:1})):k.empty()},e.prototype.take=function(t){if(!(t>0))return k.empty();var e=this;if(e.throwIfDisposed(),!isFinite(t))throw new _["default"]("count",t,"Must be finite.");return l["default"].assert(t,"count"),e.doAction(function(e,n){return t>n},null,!1)},e.prototype.elementAt=function(t){var e=this.elementAtOrDefault(t,I);if(e===I)throw new _["default"]("index",t,"is greater than or equal to the number of elements in source");return e},e.prototype.elementAtOrDefault=function(t,e){void 0===e&&(e=null);var n=this;n.throwIfDisposed(),l["default"].assertZeroOrGreater(t,"index");var r=t;return m.using(this.getEnumerator(),function(t){for(var n=0;t.moveNext();){if(n==r)return t.current;n++}return e})},e.prototype.first=function(){var t=this.firstOrDefault(I);if(t===I)throw new Error("first:The sequence is empty.");return t},e.prototype.firstOrDefault=function(t){void 0===t&&(t=null);var e=this;return e.throwIfDisposed(),m.using(this.getEnumerator(),function(e){return e.moveNext()?e.current:t})},e.prototype.single=function(){var t=this;return t.throwIfDisposed(),m.using(this.getEnumerator(),function(t){if(t.moveNext()){var e=t.current;if(!t.moveNext())return e;throw new Error("single:sequence contains more than one element.")}throw new Error("single:The sequence is empty.")})},e.prototype.singleOrDefault=function(t){void 0===t&&(t=null);var e=this;return e.throwIfDisposed(),m.using(this.getEnumerator(),function(e){if(e.moveNext()){var n=e.current;if(!e.moveNext())return n}return t})},e.prototype.any=function(){var t=this;return t.throwIfDisposed(),m.using(this.getEnumerator(),function(t){return t.moveNext()})},e.prototype.isEmpty=function(){return!this.any()},e.prototype.traverseBreadthFirst=function(t,e){void 0===e&&(e=A.Identity);var n=this,r=n._isEndless||null;return new k(function(){var o,u,i,s=0;return new y["default"](function(){s=0,u=[],i=0,o=n.getEnumerator()},function(n){for(;;){if(o.moveNext())return u[i++]=o.current,n.yieldReturn(e(o.current,s));if(!i)return n.yieldBreak();var r=k.from(u).selectMany(t);if(!r.any())return n.yieldBreak();s++,u=[],i=0,o.dispose(),o=r.getEnumerator()}},function(){m.dispose(o),u.length=0},r)},null,r)},e.prototype.traverseDepthFirst=function(t,e){void 0===e&&(e=A.Identity);var n=this,r=n._isEndless||null;return new k(function(){var o,u,i=[];return new y["default"](function(){o=n.getEnumerator(),u=0},function(n){for(;;){if(o.moveNext()){var r=e(o.current,u);i[u++]=o;var s=k.fromAny(t(o.current));return o=s?s.getEnumerator():a.empty,n.yieldReturn(r)}if(0==u)return!1;o.dispose(),o=i[--u],i.length=u}},function(){try{m.dispose(o)}finally{m.dispose.these(i)}},r)},null,r)},e.prototype.flatten=function(){var t=this,e=t._isEndless||null;return new k(function(){var n,r=null;return new y["default"](function(){n=t.getEnumerator()},function(t){for(;;){if(r){if(r.moveNext())return t.yieldReturn(r.current);r.dispose(),r=null}if(n.moveNext()){var e=n.current,o=!c["default"].isString(e)&&k.fromAny(e);if(o){r=o.selectMany(A.Identity).flatten().getEnumerator();continue}return t.yieldReturn(e)}return t.yieldBreak()}},function(){m.dispose(n,r)},e)},null,e)},e.prototype.pairwise=function(t){var e=this;return new k(function(){var n;return new y["default"](function(){n=e.getEnumerator(),n.moveNext()},function(e){var r=n.current;return n.moveNext()&&e.yieldReturn(t(r,n.current))},function(){m.dispose(n)},e._isEndless)},null,e._isEndless)},e.prototype.scan=function(t,e){var n=e!==b,r=this;return new k(function(){var o,u,i;return new y["default"](function(){o=r.getEnumerator(),i=!0},function(r){return i?(i=!1,n?r.yieldReturn(u=e):o.moveNext()&&r.yieldReturn(u=o.current)):o.moveNext()?r.yieldReturn(u=t(u,o.current)):!1},function(){m.dispose(o)},r._isEndless)},null,r._isEndless)},e.prototype.select=function(t){var e=this,n=!e.throwIfDisposed();return new k(function(){var r,o=0;return new y["default"](function(){u(n),o=0,r=e.getEnumerator()},function(e){return u(n),r.moveNext()?e.yieldReturn(t(r.current,o++)):e.yieldBreak()},function(){m.dispose(r)},e._isEndless)},function(){n=!0},e._isEndless)},e.prototype._selectMany=function(t,e){var n=this,r=n._isEndless||null;return e||(e=function(t,e){return e}),new k(function(){var o,u,i=0;return new y["default"](function(){o=n.getEnumerator(),u=void 0,i=0},function(n){if(u===b&&!o.moveNext())return!1;do{if(!u){var r=t(o.current,i++);if(!r)continue;u=a.from(r)}if(u.moveNext())return n.yieldReturn(e(o.current,u.current));u.dispose(),u=null}while(o.moveNext());return!1},function(){m.dispose(o,u),o=null,u=null},r)},null,r)},e.prototype.selectMany=function(t,e){return this._selectMany(t,e)},e.prototype._choose=function(t){var e=this,n=!e.throwIfDisposed();return new k(function(){var r,o=0;return new y["default"](function(){u(n),o=0,r=e.getEnumerator()},function(e){for(u(n);r.moveNext();){var i=t(r.current,o++);if(null!==i&&i!==b)return e.yieldReturn(i)}return!1},function(){m.dispose(r)},e._isEndless)},function(){n=!0},e._isEndless)},e.prototype.choose=function(t){return void 0===t&&(t=A.Identity),this._choose(t)},e.prototype.where=function(t){var e=this,n=!e.throwIfDisposed();return new k(function(){var r,o=0;return new y["default"](function(){u(n),o=0,r=e.getEnumerator()},function(e){for(u(n);r.moveNext();)if(t(r.current,o++))return e.yieldReturn(r.current);return!1},function(){m.dispose(r)},e._isEndless)},function(){n=!0},e._isEndless)},e.prototype.ofType=function(t){var e;switch(t){case Number:e=c["default"].NUMBER;break;case String:e=c["default"].STRING;break;case Boolean:e=c["default"].BOOLEAN;break;case Function:e=c["default"].FUNCTION;break;default:return this.where(function(e){return e instanceof t})}return this.choose().where(function(t){return typeof t===e})},e.prototype.except=function(t,e){var n=this,r=!n.throwIfDisposed();return new k(function(){var o,i;return new y["default"](function(){u(r),o=n.getEnumerator(),i=new h["default"](e),t&&a.forEach(t,function(t){return i.addByKeyValue(t,!0)})},function(t){for(u(r);o.moveNext();){var e=o.current;if(!i.containsKey(e))return i.addByKeyValue(e,!0),t.yieldReturn(e)}return!1},function(){m.dispose(o),i.clear()},n._isEndless)},function(){r=!0},n._isEndless)},e.prototype.distinct=function(t){return this.except(null,t)},e.prototype.distinctUntilChanged=function(t){void 0===t&&(t=A.Identity);var e=this,n=!e.throwIfDisposed();return new k(function(){var r,o,s=!0;return new y["default"](function(){u(n),r=e.getEnumerator()},function(e){for(u(n);r.moveNext();){var f=t(r.current);if(s)s=!1;else if(i.areEqual(o,f))continue;return o=f,e.yieldReturn(r.current)}return!1},function(){m.dispose(r)},e._isEndless)},function(){n=!0},e._isEndless)},e.prototype.defaultIfEmpty=function(t){void 0===t&&(t=null);var e=this,n=!e.throwIfDisposed();return new k(function(){var r,o;return new y["default"](function(){o=!0,u(n),r=e.getEnumerator()},function(e){return u(n),r.moveNext()?(o=!1,e.yieldReturn(r.current)):o?(o=!1,e.yieldReturn(t)):!1},function(){m.dispose(r)},e._isEndless)},null,e._isEndless)},e.prototype.zip=function(t,e){var n=this;return n.throwIfDisposed(),new k(function(){var r,o,u=0;return new y["default"](function(){u=0,r=n.getEnumerator(),o=a.from(t)},function(t){return r.moveNext()&&o.moveNext()&&t.yieldReturn(e(r.current,o.current,u++))},function(){m.dispose(r,o)})})},e.prototype.zipMultiple=function(t,e){var n=this;return n.throwIfDisposed(),t.length?new k(function(){var r,o,u,i=0;return new y["default"](function(){r=new v["default"](t),i=0,o=n.getEnumerator(),u=null},function(t){if(o.moveNext())for(;;){for(;!u;){if(!r.count)return t.yieldBreak();var n=r.dequeue();n&&(u=a.from(n))}if(u.moveNext())return t.yieldReturn(e(o.current,u.current,i++));u.dispose(),u=null}return t.yieldBreak()},function(){m.dispose(o,r)})}):k.empty()},e.prototype.join=function(t,e,n,r,o){void 0===o&&(o=A.Identity);var u=this;return new k(function(){var i,s,f=null,a=0;return new y["default"](function(){i=u.getEnumerator(),s=k.from(t).toLookup(n,A.Identity,o)},function(t){for(;;){if(null!=f){var n=f[a++];if(n!==b)return t.yieldReturn(r(i.current,n));n=null,a=0}if(!i.moveNext())return t.yieldBreak();var o=e(i.current);f=s.get(o)}},function(){m.dispose(i)})})},e.prototype.groupJoin=function(t,e,n,r,o){void 0===o&&(o=A.Identity);var u=this;return new k(function(){var i,s=null;return new y["default"](function(){i=u.getEnumerator(),s=k.from(t).toLookup(n,A.Identity,o)},function(t){return i.moveNext()&&t.yieldReturn(r(i.current,s.get(e(i.current))))},function(){m.dispose(i)})})},e.prototype.merge=function(t){var e=this,n=e._isEndless||null;return t&&0!=t.length?new k(function(){var r,o;return new y["default"](function(){r=e.getEnumerator(),o=new v["default"](t)},function(t){for(;;){for(;!r&&o.count;)r=a.from(o.dequeue());if(r&&r.moveNext())return t.yieldReturn(r.current);{if(!r)return t.yieldBreak();r.dispose(),r=null}}},function(){m.dispose(r,o)},n)},null,n):e},e.prototype.concat=function(){for(var t=[],e=0;et||!isFinite(t))throw new Error("Invalid buffer size.");l["default"].assert(t,"size");var e,n=this;return new k(function(){var r;return new y["default"](function(){r=n.getEnumerator()},function(n){var o=f.initialize(t);for(e=0;t>e&&r.moveNext();)o[e++]=r.current;return o.length=e,e&&n.yieldReturn(o)},function(){m.dispose(r)},n._isEndless)},null,n._isEndless)},e.prototype.share=function(){var t=this;t.throwIfDisposed();var e;return new k(function(){return e||(e=t.getEnumerator())},function(){m.dispose(e)},t._isEndless)},e}(w["default"]);e.InfiniteEnumerable=S;var k=function(t){function e(e,n,r){void 0===r&&(r=null),t.call(this,e,n),this._isEndless=r}return __extends(e,t),e.from=function(t){var n=e.fromAny(t);if(!n)throw new E["default"];return n},e.fromAny=function(t,n){if(void 0===n&&(n=null),c["default"].isObject(t)||c["default"].isString(t)){if(t instanceof e)return t;if(c["default"].isArrayLike(t))return new B(t);if(a.isEnumerable(t))return new e(function(){return t.getEnumerator()},null,t.isEndless)}return n},e.fromOrEmpty=function(t){return e.fromAny(t)||e.empty()},e.toArray=function(t){return t instanceof e?t.toArray():a.toArray(t)},e.choice=function(t){var e=t&&t.length;if(!e||!isFinite(e))throw new _["default"]("length",length);return new S(function(){return new y["default"](null,function(e){return e.yieldReturn(l["default"].random.select(t))},!0)})},e.chooseFrom=function(){for(var t=[],n=0;n=t.length&&(e=0),n.yieldReturn(t[e++])},!0)})},e.cycleThrough=function(){for(var t=[],n=0;n0?isFinite(n)&&l["default"].assert(n,"count")?new O(function(){var e=n,r=0;return new y["default"](function(){r=0},function(n){return r++0))return e.empty();if(!r)throw new _["default"]("step",r,"Must be a valid value");if(!isFinite(r))throw new _["default"]("step",r,"Must be a finite number.");return l["default"].assert(n,"count"),new O(function(){var e,o=n,u=0;return new y["default"](function(){u=0,e=t},function(t){var i=u++u&&(e+=r),i},!1)})},e.rangeDown=function(t,n,r){return void 0===r&&(r=1),r=-1*Math.abs(r),e.range(t,n,r)},e.toInfinity=function(t,e){if(void 0===t&&(t=0),void 0===e&&(e=1),!isFinite(t))throw new _["default"]("start",t,"Must be a finite number.");if(!e)throw new _["default"]("step",e,"Must be a valid value");if(!isFinite(e))throw new _["default"]("step",e,"Must be a finite number.");return new S(function(){var n;return new y["default"](function(){n=t},function(t){var r=n;return n+=e,t.yieldReturn(r)},!0)})},e.toNegativeInfinity=function(t,n){return void 0===t&&(t=0),void 0===n&&(n=1),e.toInfinity(t,-n)},e.rangeTo=function(t,e,n){if(void 0===n&&(n=1),isNaN(e)||!isFinite(e))throw new _["default"]("to",e,"Must be a finite number.");if(n&&!isFinite(n))throw new _["default"]("step",n,"Must be a finite non-zero number.");return n=Math.abs(n),new O(function(){var r;return new y["default"](function(){r=t},e>t?function(t){var o=e>=r&&t.yieldReturn(r);return o&&(r+=n),o}:function(t){var o=r>=e&&t.yieldReturn(r);return o&&(r-=n),o},!1)})},e.matches=function(t,e,n){if(void 0===n&&(n=""),null===t||t===b)throw new x["default"]("input");var r=typeof t;if(r!=c["default"].STRING)throw new Error("Cannot exec RegExp matches of type '"+r+"'.");return e instanceof RegExp&&(n+=e.ignoreCase?"i":"",n+=e.multiline?"m":"",e=e.source),-1===n.indexOf("g")&&(n+="g"),new O(function(){var r;return new y["default"](function(){r=new RegExp(e,n)},function(e){var n=r.exec(t);return null!==n?e.yieldReturn(n):!1})})},e.generate=function(t,n){return void 0===n&&(n=1/0),isNaN(n)||0>=n?e.empty():isFinite(n)&&l["default"].assert(n,"count")?new O(function(){var e=n,r=0;return new y["default"](function(){r=0},function(n){var o=r++;return e>o&&n.yieldReturn(t(o))},!1)}):new S(function(){var e=0;return new y["default"](function(){e=0},function(n){return n.yieldReturn(t(e++))},!0)})},e.unfold=function(t,e,n){return void 0===n&&(n=!1),new S(function(){var r,o,u=0;return new y["default"](function(){u=0,r=t,o=!n},function(t){var n=u++;return o?o=!1:r=e(r,n),t.yieldReturn(r)},!0)})},e.forEach=function(t,e){a.forEach(t,e)},e.map=function(t,e){return a.map(t,e)},e.max=function(t){return t.takeUntil(function(t){return t==+(1/0)},!0).aggregate(A.Greater)},e.min=function(t){return t.takeUntil(function(t){return t==-(1/0)},!0).aggregate(A.Lesser)},e.weave=function(t){if(!t)throw new x["default"]("enumerables");return new e(function(){var e,n,o;return new y["default"](function(){o=0,e=new v["default"],n=a.from(t)},function(t){var o;if(n){for(;!o&&n.moveNext();){var u=n.current;o=r(e,u&&a.from(u))}o||(n=null)}for(;!o&&e.count;)o=r(e,e.dequeue());return o?t.yieldReturn(o.current):t.yieldBreak()},function(){m.dispose.these(e.dump()),m.dispose(n,e),n=null,e=null})})},e.prototype.doAction=function(e,n,r){return void 0===r&&(r=this.isEndless),t.prototype.doAction.call(this,e,n,r)},e.prototype.skip=function(e){return t.prototype.skip.call(this,e)},e.prototype.skipWhile=function(t){return this.throwIfDisposed(),this.doAction(function(e,n){return t(e,n)?2:1})},e.prototype.takeWhile=function(t){if(this.throwIfDisposed(),!t)throw new x["default"]("predicate");return this.doAction(function(e,n){return t(e,n)?1:0},null,null)},e.prototype.takeUntil=function(t,e){if(this.throwIfDisposed(),!t)throw new x["default"]("predicate");if(!e)return this.doAction(function(e,n){return t(e,n)?0:1},null,null);var n=!1;return this.doAction(function(e,r){return n?0:(n=t(e,r),1)},function(){n=!1},null)},e.prototype.forEach=function(t){var e=this;e.throwIfDisposed(),a.throwIfEndless(e.isEndless);var n=0;m.using(e.getEnumerator(),function(r){for(a.throwIfEndless(r.isEndless);e.throwIfDisposed()&&r.moveNext()&&t(r.current,n++)!==!1;);})},e.prototype.toArray=function(t){return t?this.where(t).toArray():this.copyTo([])},e.prototype.copyTo=function(t,e){if(void 0===e&&(e=0),this.throwIfDisposed(),!t)throw new x["default"]("target");return l["default"].assertZeroOrGreater(e),a.forEach(this,function(n,r){t[r+e]=n}),t},e.prototype.toLookup=function(t,e,n){void 0===e&&(e=A.Identity),void 0===n&&(n=A.Identity);var r=new h["default"](n);return this.forEach(function(n){var o=t(n),u=e(n),i=r.getValue(o);i!==b?i.push(u):r.addByKeyValue(o,[u])}),new F(r)},e.prototype.toMap=function(t,e){var n={};return this.forEach(function(r,o){n[t(r,o)]=e(r,o)}),n},e.prototype.toDictionary=function(t,e,n){void 0===n&&(n=A.Identity);var r=new h["default"](n);return this.forEach(function(n,o){return r.addByKeyValue(t(n,o),e(n,o))}),r},e.prototype.toJoinedString=function(t,e){return void 0===t&&(t=""),void 0===e&&(e=A.Identity),this.select(e).toArray().join(t)},e.prototype.takeExceptLast=function(t){void 0===t&&(t=1);var n=this;if(!(t>0))return n;if(!isFinite(t))return e.empty();l["default"].assert(t,"count");var r=t;return new e(function(){var t,e;return new y["default"](function(){t=n.getEnumerator(),e=new v["default"]},function(n){for(;t.moveNext();)if(e.enqueue(t.current),e.count>r)return n.yieldReturn(e.dequeue());return!1},function(){m.dispose(t,e)})})},e.prototype.skipToLast=function(t){if(!(t>0))return e.empty();var n=this;return isFinite(t)?(l["default"].assert(t,"count"),n.reverse().take(t).reverse()):n},e.prototype.where=function(e){return t.prototype.where.call(this,e)},e.prototype.select=function(e){return t.prototype.select.call(this,e)},e.prototype.selectMany=function(t,e){return this._selectMany(t,e)},e.prototype.choose=function(t){return void 0===t&&(t=A.Identity),this._choose(t)},e.prototype.reverse=function(){var t=this,n=!t.throwIfDisposed();return a.throwIfEndless(t._isEndless),new e(function(){var e,r=0;return new y["default"](function(){u(n),e=t.toArray(),r=e.length},function(t){return r&&t.yieldReturn(e[--r])},function(){e.length=0})},function(){n=!0})},e.prototype.shuffle=function(){var t=this,n=!t.throwIfDisposed();return a.throwIfEndless(t._isEndless),new e(function(){var e,r,o;return new y["default"](function(){u(n),e=t.toArray(),r=o=e.length},function(t){if(!o)return t.yieldBreak();var n=l["default"].random(o),r=e[n];return e[n]=e[--o],e[o]=null,o%32==0&&(e.length=o),t.yieldReturn(r)},function(){e.length=0})},function(){n=!0})},e.prototype.count=function(t){var e=0;return this.forEach(t?function(n,r){t(n,r)&&++e}:function(){++e}),e},e.prototype.all=function(t){if(!t)throw new x["default"]("predicate");var e=!0;return this.forEach(function(n,r){return t(n,r)?void 0:(e=!1,!1)}),e},e.prototype.every=function(t){return this.all(t)},e.prototype.any=function(e){if(!e)return t.prototype.any.call(this);var n=!1;return this.forEach(function(t,r){return n=e(t,r),!n}),n},e.prototype.some=function(t){return this.any(t)},e.prototype.contains=function(t,e){return e?this.any(function(n){return e(n)===e(t)}):this.any(function(e){return e===t})},e.prototype.indexOf=function(t,e){var n=-1;return this.forEach(e?function(r,o){return i.areEqual(e(r,o),e(t,o),!0)?(n=o,!1):void 0}:function(e,r){return i.areEqual(e,t,!0)?(n=r,!1):void 0}),n},e.prototype.lastIndexOf=function(t,e){var n=-1;return this.forEach(e?function(r,o){i.areEqual(e(r,o),e(t,o),!0)&&(n=o)}:function(e,r){i.areEqual(e,t,!0)&&(n=r)}),n},e.prototype.merge=function(e){return t.prototype.merge.call(this,e)},e.prototype.concat=function(){for(var t=[],e=0;et(n)?e:n})},e.prototype.minBy=function(t){return void 0===t&&(t=A.Identity),this.aggregate(function(e,n){return t(e)0?1:-1)}),isNaN(e)?NaN:n?n*(1/0):e},e.prototype.product=function(t){void 0===t&&(t=c["default"].numberOrNaN);var e=1,n=!1;return this.forEach(function(r,o){n=!0;var u=t(r,o);return isNaN(u)?(e=NaN,!1):0==u?(e=0,!1):void(e*=u)}),n&&isNaN(e)?NaN:e},e.prototype.quotient=function(t){void 0===t&&(t=c["default"].numberOrNaN);var e=0,n=NaN;return this.forEach(function(r,o){var u=t(r,o);if(e++,1===e)n=u;else{if(isNaN(u)||0===u||!isFinite(u))return n=NaN,!1;n/=u}}),1===e&&(n=NaN),n},e.prototype.last=function(){var t=this;t.throwIfDisposed();var e=void 0,n=!1;if(t.forEach(function(t){n=!0,e=t}),!n)throw new Error("last:No element satisfies the condition.");return e},e.prototype.lastOrDefault=function(t){void 0===t&&(t=null);var e=this;e.throwIfDisposed();var n=void 0,r=!1;return e.forEach(function(t){r=!0,n=t}),r?n:t},e.prototype.share=function(){return t.prototype.share.call(this)},e.prototype.catchError=function(e){return t.prototype.catchError.call(this,e)},e.prototype.finallyAction=function(e){return t.prototype.finallyAction.call(this,e)},e.prototype.memoize=function(){var t,n,r=this,o=!r.throwIfDisposed();return new e(function(){var e=0;return new y["default"](function(){u(o),n||(n=r.getEnumerator()),t||(t=[]),e=0},function(r){u(o);var i=e++;return i>=t.length?n.moveNext()?r.yieldReturn(t[i]=n.current):!1:r.yieldReturn(t[i])})},function(){o=!0,t&&(t.length=0),t=null,m.dispose(n),n=null})},e}(S);e.Enumerable=k;var O=function(t){function e(e,n){t.call(this,e,n,!1)}return __extends(e,t),e}(k);e.FiniteEnumerable=O;var B=function(t){function e(e){t.call(this,function(){return n.throwIfDisposed(),new d["default"](function(){return n.throwIfDisposed("The underlying ArrayEnumerable was disposed.","ArrayEnumerator"),n._source})});var n=this;n._disposableObjectName="ArrayEnumerable",n._source=e}return __extends(e,t),e.prototype._onDispose=function(){t.prototype._onDispose.call(this),this._source=null},Object.defineProperty(e.prototype,"source",{get:function(){return this._source},enumerable:!0,configurable:!0}),e.prototype.toArray=function(){var t=this;return t.throwIfDisposed(),a.toArray(t._source)},e.prototype.asEnumerable=function(){return new e(this._source)},e.prototype.forEach=function(t){var e=this;e.throwIfDisposed(),a.forEach(e._source,t)},e.prototype.any=function(e){var n=this;n.throwIfDisposed();var r=n._source,o=r.length;return o&&(!e||t.prototype.any.call(this,e))},e.prototype.count=function(e){var n=this;n.throwIfDisposed();var r=n._source,o=r.length;return o&&(e?t.prototype.count.call(this,e):o)},e.prototype.elementAtOrDefault=function(t,e){void 0===e&&(e=null);var n=this;n.throwIfDisposed(),l["default"].assertZeroOrGreater(t,"index");var r=n._source;return t0?new k(function(){return new d["default"](function(){return e._source},t)}):e},e.prototype.takeExceptLast=function(t){void 0===t&&(t=1);var e=this;return e.take(e._source.length-t)},e.prototype.skipToLast=function(t){if(!(t>0))return k.empty();var e=this;if(!isFinite(t))return e;var n=e._source?e._source.length:0;return e.skip(n-t)},e.prototype.reverse=function(){var t=this;return new k(function(){return new d["default"](function(){return t._source},t._source?t._source.length-1:0,-1)})},e.prototype.memoize=function(){return this.asEnumerable()},e.prototype.sequenceEqual=function(n,r){return void 0===r&&(r=i.areEqual),c["default"].isArrayLike(n)?s.areEqual(this.source,n,!0,r):n instanceof e?n.sequenceEqual(this.source,r):t.prototype.sequenceEqual.call(this,n,r)},e.prototype.toJoinedString=function(e,n){void 0===e&&(e=""),void 0===n&&(n=A.Identity);var r=this._source;return!n&&Array.isArray(r)?r.join(e):t.prototype.toJoinedString.call(this,e,n)},e}(O),C=function(t){ -function e(e,n){t.call(this,n),this._groupKey=e}return __extends(e,t),Object.defineProperty(e.prototype,"key",{get:function(){return this._groupKey},enumerable:!0,configurable:!0}),e}(B),F=function(){function t(t){this._dictionary=t}return Object.defineProperty(t.prototype,"count",{get:function(){return this._dictionary.count},enumerable:!0,configurable:!0}),t.prototype.get=function(t){return this._dictionary.getValue(t)},t.prototype.contains=function(t){return this._dictionary.containsKey(t)},t.prototype.getEnumerator=function(){var t,e=this;return new y["default"](function(){t=e._dictionary.getEnumerator()},function(e){if(!t.moveNext())return!1;var n=t.current;return e.yieldReturn(new C(n.key,n.value))},function(){m.dispose(t)})},t}(),q=function(t){function e(e,n,r,o,u){void 0===u&&(u=i.compare),t.call(this,null),this.source=e,this.keySelector=n,this.order=r,this.parent=o,this.comparer=u,a.throwIfEndless(e&&e.isEndless)}return __extends(e,t),e.prototype.createOrderedEnumerable=function(t,n){return new e(this.source,t,n,this)},e.prototype.thenBy=function(t){return this.createOrderedEnumerable(t,1)},e.prototype.thenUsing=function(t){return new e(this.source,null,1,this,t)},e.prototype.thenByDescending=function(t){return this.createOrderedEnumerable(t,-1)},e.prototype.thenUsingReversed=function(t){return new e(this.source,null,-1,this,t)},e.prototype.getEnumerator=function(){var t,e,n=this,r=0;return new y["default"](function(){r=0,t=k.toArray(n.source),e=o(n).generateSortedIndexes(t)},function(n){return re?t:e},e.prototype.Lesser=function(t,e){return e>t?t:e},e}(p.Functions),R=new b;Object.freeze(R);var A=function(t){function e(e,n){t.call(this,n),this._enumeratorFactory=e,this._isEndless=!0}return __extends(e,t),Object.defineProperty(e.prototype,"isEndless",{get:function(){return this._isEndless},enumerable:!0,configurable:!0}),e.prototype.getEnumerator=function(){return this.throwIfDisposed(),this._enumeratorFactory()},e.prototype._onDispose=function(){t.prototype._onDispose.call(this),this._enumeratorFactory=null},e.prototype.asEnumerable=function(){var t=this;return t.throwIfDisposed(),new e(function(){return t.getEnumerator()})},e.prototype.doAction=function(t,e,n){void 0===n&&(n=this.isEndless);var r=this,o=!r.throwIfDisposed();return new O(function(){var u,s=0;return new d.EnumeratorBase(function(){i(o),e&&e(),s=0,u=r.getEnumerator()},function(e){for(i(o);u.moveNext();){var n=t(u.current,s++);if(n===!1||0===n)return e.yieldBreak();if(2!==n)return e.yieldReturn(u.current)}return!1},function(){v.dispose(u)},n)},function(){o=!0},n)},e.prototype.force=function(){this.throwIfDisposed(),this.doAction(B).getEnumerator().moveNext()},e.prototype.skip=function(t){var e=this;return e.throwIfDisposed(),isFinite(t)?(l.Integer.assert(t,"count"),this.doAction(function(e,n){return t>n?2:1})):O.empty()},e.prototype.take=function(t){if(!(t>0))return O.empty();var e=this;if(e.throwIfDisposed(),!isFinite(t))throw new I.ArgumentOutOfRangeException("count",t,"Must be finite.");return l.Integer.assert(t,"count"),e.doAction(function(e,n){return t>n},null,!1)},e.prototype.elementAt=function(t){var e=this.elementAtOrDefault(t,_);if(e===_)throw new I.ArgumentOutOfRangeException("index",t,"is greater than or equal to the number of elements in source");return e},e.prototype.elementAtOrDefault=function(t,e){void 0===e&&(e=null);var n=this;n.throwIfDisposed(),l.Integer.assertZeroOrGreater(t,"index");var r=t;return v.using(this.getEnumerator(),function(t){for(var n=0;t.moveNext();){if(n==r)return t.current;n++}return e})},e.prototype.first=function(){var t=this.firstOrDefault(_);if(t===_)throw new Error("first:The sequence is empty.");return t},e.prototype.firstOrDefault=function(t){void 0===t&&(t=null);var e=this;return e.throwIfDisposed(),v.using(this.getEnumerator(),function(e){return e.moveNext()?e.current:t})},e.prototype.single=function(){var t=this;return t.throwIfDisposed(),v.using(this.getEnumerator(),function(t){if(t.moveNext()){var e=t.current;if(!t.moveNext())return e;throw new Error("single:sequence contains more than one element.")}throw new Error("single:The sequence is empty.")})},e.prototype.singleOrDefault=function(t){void 0===t&&(t=null);var e=this;return e.throwIfDisposed(),v.using(this.getEnumerator(),function(e){if(e.moveNext()){var n=e.current;if(!e.moveNext())return n}return t})},e.prototype.any=function(){var t=this;return t.throwIfDisposed(),v.using(this.getEnumerator(),function(t){return t.moveNext()})},e.prototype.isEmpty=function(){return!this.any()},e.prototype.traverseBreadthFirst=function(t,e){void 0===e&&(e=R.Identity);var n=this,r=n._isEndless||null;return new O(function(){var o,i,u,s=0;return new d.EnumeratorBase(function(){s=0,i=[],u=0,o=n.getEnumerator()},function(n){for(;;){if(o.moveNext())return i[u++]=o.current,n.yieldReturn(e(o.current,s));if(!u)return n.yieldBreak();var r=O.from(i).selectMany(t);if(!r.any())return n.yieldBreak();s++,i=[],u=0,o.dispose(),o=r.getEnumerator()}},function(){v.dispose(o),i.length=0},r)},null,r)},e.prototype.traverseDepthFirst=function(t,e){void 0===e&&(e=R.Identity);var n=this,r=n._isEndless||null;return new O(function(){var o,i,u=[];return new d.EnumeratorBase(function(){o=n.getEnumerator(),i=0},function(n){for(;;){if(o.moveNext()){var r=e(o.current,i);u[i++]=o;var s=O.fromAny(t(o.current));return o=s?s.getEnumerator():c.empty,n.yieldReturn(r)}if(0==i)return!1;o.dispose(),o=u[--i],u.length=i}},function(){try{v.dispose(o)}finally{v.dispose.these(u)}},r)},null,r)},e.prototype.flatten=function(){var t=this,e=t._isEndless||null;return new O(function(){var n,r=null;return new d.EnumeratorBase(function(){n=t.getEnumerator()},function(t){for(;;){if(r){if(r.moveNext())return t.yieldReturn(r.current);r.dispose(),r=null}if(n.moveNext()){var e=n.current,o=!f.Type.isString(e)&&O.fromAny(e);if(o){r=o.selectMany(R.Identity).flatten().getEnumerator();continue}return t.yieldReturn(e)}return t.yieldBreak()}},function(){v.dispose(n,r)},e)},null,e)},e.prototype.pairwise=function(t){var e=this;return new O(function(){var n;return new d.EnumeratorBase(function(){n=e.getEnumerator(),n.moveNext()},function(e){var r=n.current;return n.moveNext()&&e.yieldReturn(t(r,n.current))},function(){v.dispose(n)},e._isEndless)},null,e._isEndless)},e.prototype.scan=function(t,e){var n=e!==D,r=this;return new O(function(){var o,i,u;return new d.EnumeratorBase(function(){o=r.getEnumerator(),u=!0},function(r){return u?(u=!1,n?r.yieldReturn(i=e):o.moveNext()&&r.yieldReturn(i=o.current)):o.moveNext()?r.yieldReturn(i=t(i,o.current)):!1},function(){v.dispose(o)},r._isEndless)},null,r._isEndless)},e.prototype.select=function(t){var e=this,n=!e.throwIfDisposed();return new O(function(){var r,o=0;return new d.EnumeratorBase(function(){i(n),o=0,r=e.getEnumerator()},function(e){return i(n),r.moveNext()?e.yieldReturn(t(r.current,o++)):e.yieldBreak()},function(){v.dispose(r)},e._isEndless)},function(){n=!0},e._isEndless)},e.prototype._selectMany=function(t,e){var n=this,r=n._isEndless||null;return e||(e=function(t,e){return e}),new O(function(){var o,i,u=0;return new d.EnumeratorBase(function(){o=n.getEnumerator(),i=void 0,u=0},function(n){if(i===D&&!o.moveNext())return!1;do{if(!i){var r=t(o.current,u++);if(!r)continue;i=c.from(r)}if(i.moveNext())return n.yieldReturn(e(o.current,i.current));i.dispose(),i=null}while(o.moveNext());return!1},function(){v.dispose(o,i),o=null,i=null},r)},null,r)},e.prototype.selectMany=function(t,e){return this._selectMany(t,e)},e.prototype._choose=function(t){var e=this,n=!e.throwIfDisposed();return new O(function(){var r,o=0;return new d.EnumeratorBase(function(){i(n),o=0,r=e.getEnumerator()},function(e){for(i(n);r.moveNext();){var u=t(r.current,o++);if(null!==u&&u!==D)return e.yieldReturn(u)}return!1},function(){v.dispose(r)},e._isEndless)},function(){n=!0},e._isEndless)},e.prototype.choose=function(t){return void 0===t&&(t=R.Identity),this._choose(t)},e.prototype.where=function(t){var e=this,n=!e.throwIfDisposed();return new O(function(){var r,o=0;return new d.EnumeratorBase(function(){i(n),o=0,r=e.getEnumerator()},function(e){for(i(n);r.moveNext();)if(t(r.current,o++))return e.yieldReturn(r.current);return!1},function(){v.dispose(r)},e._isEndless)},function(){n=!0},e._isEndless)},e.prototype.ofType=function(t){var e;switch(t){case Number:e=f.Type.NUMBER;break;case String:e=f.Type.STRING;break;case Boolean:e=f.Type.BOOLEAN;break;case Function:e=f.Type.FUNCTION;break;default:return this.where(function(e){return e instanceof t})}return this.choose().where(function(t){return typeof t===e})},e.prototype.except=function(t,e){var n=this,r=!n.throwIfDisposed();return new O(function(){var o,u;return new d.EnumeratorBase(function(){i(r),o=n.getEnumerator(),u=new h.Dictionary(e),t&&c.forEach(t,function(t){return u.addByKeyValue(t,!0)})},function(t){for(i(r);o.moveNext();){var e=o.current;if(!u.containsKey(e))return u.addByKeyValue(e,!0),t.yieldReturn(e)}return!1},function(){v.dispose(o),u.clear()},n._isEndless)},function(){r=!0},n._isEndless)},e.prototype.distinct=function(t){return this.except(null,t)},e.prototype.distinctUntilChanged=function(t){void 0===t&&(t=R.Identity);var e=this,n=!e.throwIfDisposed();return new O(function(){var r,o,s=!0;return new d.EnumeratorBase(function(){i(n),r=e.getEnumerator()},function(e){for(i(n);r.moveNext();){var a=t(r.current);if(s)s=!1;else if(u.areEqual(o,a))continue;return o=a,e.yieldReturn(r.current)}return!1},function(){v.dispose(r)},e._isEndless)},function(){n=!0},e._isEndless)},e.prototype.defaultIfEmpty=function(t){void 0===t&&(t=null);var e=this,n=!e.throwIfDisposed();return new O(function(){var r,o;return new d.EnumeratorBase(function(){o=!0,i(n),r=e.getEnumerator()},function(e){return i(n),r.moveNext()?(o=!1,e.yieldReturn(r.current)):o?(o=!1,e.yieldReturn(t)):!1},function(){v.dispose(r)},e._isEndless)},null,e._isEndless)},e.prototype.zip=function(t,e){var n=this;return n.throwIfDisposed(),new O(function(){var r,o,i=0;return new d.EnumeratorBase(function(){i=0,r=n.getEnumerator(),o=c.from(t)},function(t){return r.moveNext()&&o.moveNext()&&t.yieldReturn(e(r.current,o.current,i++))},function(){v.dispose(r,o)})})},e.prototype.zipMultiple=function(t,e){var n=this;return n.throwIfDisposed(),t.length?new O(function(){var r,o,i,u=0;return new d.EnumeratorBase(function(){r=new m.Queue(t),u=0,o=n.getEnumerator(),i=null},function(t){if(o.moveNext())for(;;){for(;!i;){if(!r.count)return t.yieldBreak();var n=r.dequeue();n&&(i=c.from(n))}if(i.moveNext())return t.yieldReturn(e(o.current,i.current,u++));i.dispose(),i=null}return t.yieldBreak()},function(){v.dispose(o,r)})}):O.empty()},e.prototype.join=function(t,e,n,r,o){void 0===o&&(o=R.Identity);var i=this;return new O(function(){var u,s,a=null,c=0;return new d.EnumeratorBase(function(){u=i.getEnumerator(),s=O.from(t).toLookup(n,R.Identity,o)},function(t){for(;;){if(null!=a){var n=a[c++];if(n!==D)return t.yieldReturn(r(u.current,n));n=null,c=0}if(!u.moveNext())return t.yieldBreak();var o=e(u.current);a=s.get(o)}},function(){v.dispose(u)})})},e.prototype.groupJoin=function(t,e,n,r,o){void 0===o&&(o=R.Identity);var i=this;return new O(function(){var u,s=null;return new d.EnumeratorBase(function(){u=i.getEnumerator(),s=O.from(t).toLookup(n,R.Identity,o)},function(t){return u.moveNext()&&t.yieldReturn(r(u.current,s.get(e(u.current))))},function(){v.dispose(u)})})},e.prototype.merge=function(t){var e=this,n=e._isEndless||null;return t&&0!=t.length?new O(function(){var r,o;return new d.EnumeratorBase(function(){r=e.getEnumerator(),o=new m.Queue(t)},function(t){for(;;){for(;!r&&o.count;)r=c.from(o.dequeue());if(r&&r.moveNext())return t.yieldReturn(r.current);{if(!r)return t.yieldBreak();r.dispose(),r=null}}},function(){v.dispose(r,o)},n)},null,n):e},e.prototype.concat=function(){for(var t=[],e=0;et||!isFinite(t))throw new Error("Invalid buffer size.");l.Integer.assert(t,"size");var e,n=this;return new O(function(){var r;return new d.EnumeratorBase(function(){r=n.getEnumerator()},function(n){var o=a.initialize(t);for(e=0;t>e&&r.moveNext();)o[e++]=r.current;return o.length=e,e&&n.yieldReturn(o)},function(){v.dispose(r)},n._isEndless)},null,n._isEndless)},e.prototype.share=function(){var t=this;t.throwIfDisposed();var e;return new O(function(){return e||(e=t.getEnumerator())},function(){v.dispose(e)},t._isEndless)},e}(E.DisposableBase);e.InfiniteEnumerable=A;var O=function(t){function e(e,n,r){void 0===r&&(r=null),t.call(this,e,n),this._isEndless=r}return __extends(e,t),e.from=function(t){var n=e.fromAny(t);if(!n)throw new w.UnsupportedEnumerableException;return n},e.fromAny=function(t,n){if(void 0===n&&(n=null),f.Type.isObject(t)||f.Type.isString(t)){if(t instanceof e)return t;if(f.Type.isArrayLike(t))return new k(t);if(c.isEnumerable(t))return new e(function(){return t.getEnumerator()},null,t.isEndless)}return n},e.fromOrEmpty=function(t){return e.fromAny(t)||e.empty()},e.toArray=function(t){return t instanceof e?t.toArray():c.toArray(t)},e.choice=function(t){var e=t&&t.length;if(!e||!isFinite(e))throw new I.ArgumentOutOfRangeException("length",length);return new A(function(){return new d.EnumeratorBase(null,function(e){return e.yieldReturn(l.Integer.random.select(t))},!0)})},e.chooseFrom=function(){for(var t=[],n=0;n=t.length&&(e=0),n.yieldReturn(t[e++])},!0)})},e.cycleThrough=function(){for(var t=[],n=0;n0?isFinite(n)&&l.Integer.assert(n,"count")?new S(function(){var e=n,r=0;return new d.EnumeratorBase(function(){r=0},function(n){return r++0))return e.empty();if(!r)throw new I.ArgumentOutOfRangeException("step",r,"Must be a valid value");if(!isFinite(r))throw new I.ArgumentOutOfRangeException("step",r,"Must be a finite number.");return l.Integer.assert(n,"count"),new S(function(){var e,o=n,i=0;return new d.EnumeratorBase(function(){i=0,e=t},function(t){var u=i++i&&(e+=r),u},!1)})},e.rangeDown=function(t,n,r){return void 0===r&&(r=1),r=-1*Math.abs(r),e.range(t,n,r)},e.toInfinity=function(t,e){if(void 0===t&&(t=0),void 0===e&&(e=1),!isFinite(t))throw new I.ArgumentOutOfRangeException("start",t,"Must be a finite number.");if(!e)throw new I.ArgumentOutOfRangeException("step",e,"Must be a valid value");if(!isFinite(e))throw new I.ArgumentOutOfRangeException("step",e,"Must be a finite number.");return new A(function(){var n;return new d.EnumeratorBase(function(){n=t},function(t){var r=n;return n+=e,t.yieldReturn(r)},!0)})},e.toNegativeInfinity=function(t,n){return void 0===t&&(t=0),void 0===n&&(n=1),e.toInfinity(t,-n)},e.rangeTo=function(t,e,n){if(void 0===n&&(n=1),isNaN(e)||!isFinite(e))throw new I.ArgumentOutOfRangeException("to",e,"Must be a finite number.");if(n&&!isFinite(n))throw new I.ArgumentOutOfRangeException("step",n,"Must be a finite non-zero number.");return n=Math.abs(n),new S(function(){var r;return new d.EnumeratorBase(function(){r=t},e>t?function(t){var o=e>=r&&t.yieldReturn(r);return o&&(r+=n),o}:function(t){var o=r>=e&&t.yieldReturn(r);return o&&(r-=n),o},!1)})},e.matches=function(t,e,n){if(void 0===n&&(n=""),null===t||t===D)throw new N.ArgumentNullException("input");var r=typeof t;if(r!=f.Type.STRING)throw new Error("Cannot exec RegExp matches of type '"+r+"'.");return e instanceof RegExp&&(n+=e.ignoreCase?"i":"",n+=e.multiline?"m":"",e=e.source),-1===n.indexOf("g")&&(n+="g"),new S(function(){var r;return new d.EnumeratorBase(function(){r=new RegExp(e,n)},function(e){var n=r.exec(t);return null!==n?e.yieldReturn(n):!1})})},e.generate=function(t,n){return void 0===n&&(n=1/0),isNaN(n)||0>=n?e.empty():isFinite(n)&&l.Integer.assert(n,"count")?new S(function(){var e=n,r=0;return new d.EnumeratorBase(function(){r=0},function(n){var o=r++;return e>o&&n.yieldReturn(t(o))},!1)}):new A(function(){var e=0;return new d.EnumeratorBase(function(){e=0},function(n){return n.yieldReturn(t(e++))},!0)})},e.unfold=function(t,e,n){return void 0===n&&(n=!1),new A(function(){var r,o,i=0;return new d.EnumeratorBase(function(){i=0,r=t,o=!n},function(t){var n=i++;return o?o=!1:r=e(r,n),t.yieldReturn(r)},!0)})},e.forEach=function(t,e){c.forEach(t,e)},e.map=function(t,e){return c.map(t,e)},e.max=function(t){return t.takeUntil(function(t){return t==+(1/0)},!0).aggregate(R.Greater)},e.min=function(t){return t.takeUntil(function(t){return t==-(1/0)},!0).aggregate(R.Lesser)},e.weave=function(t){if(!t)throw new N.ArgumentNullException("enumerables");return new e(function(){var e,n,o;return new d.EnumeratorBase(function(){o=0,e=new m.Queue,n=c.from(t)},function(t){var o;if(n){for(;!o&&n.moveNext();){var i=n.current;o=r(e,i&&c.from(i))}o||(n=null)}for(;!o&&e.count;)o=r(e,e.dequeue());return o?t.yieldReturn(o.current):t.yieldBreak()},function(){v.dispose.these(e.dump()),v.dispose(n,e),n=null,e=null})})},e.prototype.doAction=function(e,n,r){return void 0===r&&(r=this.isEndless),t.prototype.doAction.call(this,e,n,r)},e.prototype.skip=function(e){return t.prototype.skip.call(this,e)},e.prototype.skipWhile=function(t){return this.throwIfDisposed(),this.doAction(function(e,n){return t(e,n)?2:1})},e.prototype.takeWhile=function(t){if(this.throwIfDisposed(),!t)throw new N.ArgumentNullException("predicate");return this.doAction(function(e,n){return t(e,n)?1:0},null,null)},e.prototype.takeUntil=function(t,e){if(this.throwIfDisposed(),!t)throw new N.ArgumentNullException("predicate");if(!e)return this.doAction(function(e,n){return t(e,n)?0:1},null,null);var n=!1;return this.doAction(function(e,r){return n?0:(n=t(e,r),1)},function(){n=!1},null)},e.prototype.forEach=function(t){var e=this;e.throwIfDisposed(),c.throwIfEndless(e.isEndless);var n=0;v.using(e.getEnumerator(),function(r){for(c.throwIfEndless(r.isEndless);e.throwIfDisposed()&&r.moveNext()&&t(r.current,n++)!==!1;);})},e.prototype.toArray=function(t){return t?this.where(t).toArray():this.copyTo([])},e.prototype.copyTo=function(t,e){if(void 0===e&&(e=0),this.throwIfDisposed(),!t)throw new N.ArgumentNullException("target");return l.Integer.assertZeroOrGreater(e),c.forEach(this,function(n,r){t[r+e]=n}),t},e.prototype.toLookup=function(t,e,n){void 0===e&&(e=R.Identity),void 0===n&&(n=R.Identity);var r=new h.Dictionary(n);return this.forEach(function(n){var o=t(n),i=e(n),u=r.getValue(o);u!==D?u.push(i):r.addByKeyValue(o,[i])}),new F(r)},e.prototype.toMap=function(t,e){var n={};return this.forEach(function(r,o){n[t(r,o)]=e(r,o)}),n},e.prototype.toDictionary=function(t,e,n){void 0===n&&(n=R.Identity);var r=new h.Dictionary(n);return this.forEach(function(n,o){return r.addByKeyValue(t(n,o),e(n,o))}),r},e.prototype.toJoinedString=function(t,e){return void 0===t&&(t=""),void 0===e&&(e=R.Identity),this.select(e).toArray().join(t)},e.prototype.takeExceptLast=function(t){void 0===t&&(t=1);var n=this;if(!(t>0))return n;if(!isFinite(t))return e.empty();l.Integer.assert(t,"count");var r=t;return new e(function(){var t,e;return new d.EnumeratorBase(function(){t=n.getEnumerator(),e=new m.Queue},function(n){for(;t.moveNext();)if(e.enqueue(t.current),e.count>r)return n.yieldReturn(e.dequeue());return!1},function(){v.dispose(t,e)})})},e.prototype.skipToLast=function(t){if(!(t>0))return e.empty();var n=this;return isFinite(t)?(l.Integer.assert(t,"count"),n.reverse().take(t).reverse()):n},e.prototype.where=function(e){return t.prototype.where.call(this,e)},e.prototype.select=function(e){return t.prototype.select.call(this,e)},e.prototype.selectMany=function(t,e){return this._selectMany(t,e)},e.prototype.choose=function(t){return void 0===t&&(t=R.Identity),this._choose(t)},e.prototype.reverse=function(){var t=this,n=!t.throwIfDisposed();return c.throwIfEndless(t._isEndless),new e(function(){var e,r=0;return new d.EnumeratorBase(function(){i(n),e=t.toArray(),r=e.length},function(t){return r&&t.yieldReturn(e[--r])},function(){e.length=0})},function(){n=!0})},e.prototype.shuffle=function(){var t=this,n=!t.throwIfDisposed();return c.throwIfEndless(t._isEndless),new e(function(){var e,r,o;return new d.EnumeratorBase(function(){i(n),e=t.toArray(),r=o=e.length},function(t){if(!o)return t.yieldBreak();var n=l.Integer.random(o),r=e[n];return e[n]=e[--o],e[o]=null,o%32==0&&(e.length=o),t.yieldReturn(r)},function(){e.length=0})},function(){n=!0})},e.prototype.count=function(t){var e=0;return this.forEach(t?function(n,r){t(n,r)&&++e}:function(){++e}),e},e.prototype.all=function(t){if(!t)throw new N.ArgumentNullException("predicate");var e=!0;return this.forEach(function(n,r){return t(n,r)?void 0:(e=!1,!1)}),e},e.prototype.every=function(t){return this.all(t)},e.prototype.any=function(e){if(!e)return t.prototype.any.call(this);var n=!1;return this.forEach(function(t,r){return n=e(t,r),!n}),n},e.prototype.some=function(t){return this.any(t)},e.prototype.contains=function(t,e){return e?this.any(function(n){return e(n)===e(t)}):this.any(function(e){return e===t})},e.prototype.indexOf=function(t,e){var n=-1;return this.forEach(e?function(r,o){return u.areEqual(e(r,o),e(t,o),!0)?(n=o,!1):void 0}:function(e,r){return u.areEqual(e,t,!0)?(n=r,!1):void 0}),n},e.prototype.lastIndexOf=function(t,e){var n=-1;return this.forEach(e?function(r,o){u.areEqual(e(r,o),e(t,o),!0)&&(n=o)}:function(e,r){u.areEqual(e,t,!0)&&(n=r)}),n},e.prototype.merge=function(e){return t.prototype.merge.call(this,e)},e.prototype.concat=function(){for(var t=[],e=0;et(n)?e:n})},e.prototype.minBy=function(t){return void 0===t&&(t=R.Identity),this.aggregate(function(e,n){return t(e)0?1:-1)}),isNaN(e)?NaN:n?n*(1/0):e},e.prototype.product=function(t){void 0===t&&(t=f.Type.numberOrNaN);var e=1,n=!1;return this.forEach(function(r,o){n=!0;var i=t(r,o);return isNaN(i)?(e=NaN,!1):0==i?(e=0,!1):void(e*=i)}),n&&isNaN(e)?NaN:e},e.prototype.quotient=function(t){void 0===t&&(t=f.Type.numberOrNaN);var e=0,n=NaN;return this.forEach(function(r,o){var i=t(r,o);if(e++,1===e)n=i;else{if(isNaN(i)||0===i||!isFinite(i))return n=NaN,!1;n/=i}}),1===e&&(n=NaN),n},e.prototype.last=function(){var t=this;t.throwIfDisposed();var e=void 0,n=!1;if(t.forEach(function(t){n=!0,e=t}),!n)throw new Error("last:No element satisfies the condition.");return e},e.prototype.lastOrDefault=function(t){void 0===t&&(t=null);var e=this;e.throwIfDisposed();var n=void 0,r=!1;return e.forEach(function(t){r=!0,n=t}),r?n:t},e.prototype.share=function(){return t.prototype.share.call(this)},e.prototype.catchError=function(e){return t.prototype.catchError.call(this,e)},e.prototype.finallyAction=function(e){return t.prototype.finallyAction.call(this,e)},e.prototype.memoize=function(){var t,n,r=this,o=!r.throwIfDisposed();return new e(function(){var e=0;return new d.EnumeratorBase(function(){i(o),n||(n=r.getEnumerator()),t||(t=[]),e=0},function(r){i(o);var u=e++;return u>=t.length?n.moveNext()?r.yieldReturn(t[u]=n.current):!1:r.yieldReturn(t[u])})},function(){o=!0,t&&(t.length=0),t=null,v.dispose(n),n=null})},e}(A);e.Enumerable=O;var S=function(t){function e(e,n){t.call(this,e,n,!1)}return __extends(e,t),e}(O);e.FiniteEnumerable=S;var k=function(t){function e(e){t.call(this,function(){return n.throwIfDisposed(),new y.ArrayEnumerator(function(){return n.throwIfDisposed("The underlying ArrayEnumerable was disposed.","ArrayEnumerator"),n._source})});var n=this;n._disposableObjectName="ArrayEnumerable",n._source=e}return __extends(e,t),e.prototype._onDispose=function(){t.prototype._onDispose.call(this),this._source=null},Object.defineProperty(e.prototype,"source",{get:function(){return this._source},enumerable:!0,configurable:!0}),e.prototype.toArray=function(){var t=this;return t.throwIfDisposed(),c.toArray(t._source)},e.prototype.asEnumerable=function(){return new e(this._source)},e.prototype.forEach=function(t){var e=this;e.throwIfDisposed(),c.forEach(e._source,t)},e.prototype.any=function(e){var n=this;n.throwIfDisposed();var r=n._source,o=r.length;return o&&(!e||t.prototype.any.call(this,e))},e.prototype.count=function(e){var n=this;n.throwIfDisposed();var r=n._source,o=r.length;return o&&(e?t.prototype.count.call(this,e):o)},e.prototype.elementAtOrDefault=function(t,e){void 0===e&&(e=null);var n=this;n.throwIfDisposed(),l.Integer.assertZeroOrGreater(t,"index");var r=n._source;return t0?new O(function(){return new y.ArrayEnumerator(function(){return e._source},t)}):e},e.prototype.takeExceptLast=function(t){void 0===t&&(t=1);var e=this;return e.take(e._source.length-t)},e.prototype.skipToLast=function(t){if(!(t>0))return O.empty();var e=this;if(!isFinite(t))return e;var n=e._source?e._source.length:0;return e.skip(n-t)},e.prototype.reverse=function(){var t=this;return new O(function(){return new y.ArrayEnumerator(function(){return t._source},t._source?t._source.length-1:0,-1)})},e.prototype.memoize=function(){return this.asEnumerable()},e.prototype.sequenceEqual=function(n,r){return void 0===r&&(r=u.areEqual), +f.Type.isArrayLike(n)?s.areEqual(this.source,n,!0,r):n instanceof e?n.sequenceEqual(this.source,r):t.prototype.sequenceEqual.call(this,n,r)},e.prototype.toJoinedString=function(e,n){void 0===e&&(e=""),void 0===n&&(n=R.Identity);var r=this._source;return!n&&Array.isArray(r)?r.join(e):t.prototype.toJoinedString.call(this,e,n)},e}(S),C=function(t){function e(e,n){t.call(this,n),this._groupKey=e}return __extends(e,t),Object.defineProperty(e.prototype,"key",{get:function(){return this._groupKey},enumerable:!0,configurable:!0}),e}(k),F=function(){function t(t){this._dictionary=t}return Object.defineProperty(t.prototype,"count",{get:function(){return this._dictionary.count},enumerable:!0,configurable:!0}),t.prototype.get=function(t){return this._dictionary.getValue(t)},t.prototype.contains=function(t){return this._dictionary.containsKey(t)},t.prototype.getEnumerator=function(){var t,e=this;return new d.EnumeratorBase(function(){t=e._dictionary.getEnumerator()},function(e){if(!t.moveNext())return!1;var n=t.current;return e.yieldReturn(new C(n.key,n.value))},function(){v.dispose(t)})},t}(),T=function(t){function e(e,n,r,o,i){void 0===i&&(i=u.compare),t.call(this,null),this.source=e,this.keySelector=n,this.order=r,this.parent=o,this.comparer=i,c.throwIfEndless(e&&e.isEndless)}return __extends(e,t),e.prototype.createOrderedEnumerable=function(t,n){return new e(this.source,t,n,this)},e.prototype.thenBy=function(t){return this.createOrderedEnumerable(t,1)},e.prototype.thenUsing=function(t){return new e(this.source,null,1,this,t)},e.prototype.thenByDescending=function(t){return this.createOrderedEnumerable(t,-1)},e.prototype.thenUsingReversed=function(t){return new e(this.source,null,-1,this,t)},e.prototype.getEnumerator=function(){var t,e,n=this,r=0;return new d.EnumeratorBase(function(){r=0,t=O.toArray(n.source),e=o(n).generateSortedIndexes(t)},function(n){return r b ? a : b;\n };\n LinqFunctions.prototype.Lesser = function (a, b) {\n return a < b ? a : b;\n };\n return LinqFunctions;\n }(Functions_1.default));\n var Functions = new LinqFunctions();\n Object.freeze(Functions);\n function getEmptyEnumerator() {\n return Enumerator_1.empty;\n }\n var InfiniteEnumerable = (function (_super) {\n __extends(InfiniteEnumerable, _super);\n function InfiniteEnumerable(_enumeratorFactory, finalizer) {\n _super.call(this, finalizer);\n this._enumeratorFactory = _enumeratorFactory;\n this._isEndless = true;\n }\n Object.defineProperty(InfiniteEnumerable.prototype, \"isEndless\", {\n get: function () {\n return this._isEndless;\n },\n enumerable: true,\n configurable: true\n });\n InfiniteEnumerable.prototype.getEnumerator = function () {\n this.throwIfDisposed();\n return this._enumeratorFactory();\n };\n InfiniteEnumerable.prototype._onDispose = function () {\n _super.prototype._onDispose.call(this);\n this._enumeratorFactory = null;\n };\n InfiniteEnumerable.prototype.asEnumerable = function () {\n var _ = this;\n _.throwIfDisposed();\n return new InfiniteEnumerable(function () { return _.getEnumerator(); });\n };\n InfiniteEnumerable.prototype.doAction = function (action, initializer, isEndless) {\n if (isEndless === void 0) { isEndless = this.isEndless; }\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(function () {\n var enumerator;\n var index = 0;\n return new EnumeratorBase_1.default(function () {\n throwIfDisposed(disposed);\n if (initializer)\n initializer();\n index = 0;\n enumerator = _.getEnumerator();\n }, function (yielder) {\n throwIfDisposed(disposed);\n while (enumerator.moveNext()) {\n var actionResult = action(enumerator.current, index++);\n if (actionResult === false || actionResult === 0)\n return yielder.yieldBreak();\n if (actionResult !== 2)\n return yielder.yieldReturn(enumerator.current);\n }\n return false;\n }, function () {\n dispose_1.dispose(enumerator);\n }, isEndless);\n }, function () {\n disposed = true;\n }, isEndless);\n };\n InfiniteEnumerable.prototype.force = function () {\n this.throwIfDisposed();\n this.doAction(BREAK)\n .getEnumerator()\n .moveNext();\n };\n InfiniteEnumerable.prototype.skip = function (count) {\n var _ = this;\n _.throwIfDisposed();\n if (!isFinite(count))\n return Enumerable.empty();\n Integer_1.default.assert(count, \"count\");\n return this.doAction(function (element, index) {\n return index < count\n ? 2\n : 1;\n });\n };\n InfiniteEnumerable.prototype.take = function (count) {\n if (!(count > 0))\n return Enumerable.empty();\n var _ = this;\n _.throwIfDisposed();\n if (!isFinite(count))\n throw new ArgumentOutOfRangeException_1.default('count', count, 'Must be finite.');\n Integer_1.default.assert(count, \"count\");\n return _.doAction(function (element, index) { return index < count; }, null, false);\n };\n InfiniteEnumerable.prototype.elementAt = function (index) {\n var v = this.elementAtOrDefault(index, INVALID_DEFAULT);\n if (v === INVALID_DEFAULT)\n throw new ArgumentOutOfRangeException_1.default('index', index, \"is greater than or equal to the number of elements in source\");\n return v;\n };\n InfiniteEnumerable.prototype.elementAtOrDefault = function (index, defaultValue) {\n if (defaultValue === void 0) { defaultValue = null; }\n var _ = this;\n _.throwIfDisposed();\n Integer_1.default.assertZeroOrGreater(index, 'index');\n var n = index;\n return dispose_1.using(this.getEnumerator(), function (e) {\n var i = 0;\n while (e.moveNext()) {\n if (i == n)\n return e.current;\n i++;\n }\n return defaultValue;\n });\n };\n InfiniteEnumerable.prototype.first = function () {\n var v = this.firstOrDefault(INVALID_DEFAULT);\n if (v === INVALID_DEFAULT)\n throw new Error(\"first:The sequence is empty.\");\n return v;\n };\n InfiniteEnumerable.prototype.firstOrDefault = function (defaultValue) {\n if (defaultValue === void 0) { defaultValue = null; }\n var _ = this;\n _.throwIfDisposed();\n return dispose_1.using(this.getEnumerator(), function (e) { return e.moveNext() ? e.current : defaultValue; });\n };\n InfiniteEnumerable.prototype.single = function () {\n var _ = this;\n _.throwIfDisposed();\n return dispose_1.using(this.getEnumerator(), function (e) {\n if (e.moveNext()) {\n var value = e.current;\n if (!e.moveNext())\n return value;\n throw new Error(\"single:sequence contains more than one element.\");\n }\n throw new Error(\"single:The sequence is empty.\");\n });\n };\n InfiniteEnumerable.prototype.singleOrDefault = function (defaultValue) {\n if (defaultValue === void 0) { defaultValue = null; }\n var _ = this;\n _.throwIfDisposed();\n return dispose_1.using(this.getEnumerator(), function (e) {\n if (e.moveNext()) {\n var value = e.current;\n if (!e.moveNext())\n return value;\n }\n return defaultValue;\n });\n };\n InfiniteEnumerable.prototype.any = function () {\n var _ = this;\n _.throwIfDisposed();\n return dispose_1.using(this.getEnumerator(), function (e) { return e.moveNext(); });\n };\n InfiniteEnumerable.prototype.isEmpty = function () {\n return !this.any();\n };\n InfiniteEnumerable.prototype.traverseBreadthFirst = function (childrenSelector, resultSelector) {\n if (resultSelector === void 0) { resultSelector = Functions.Identity; }\n var _ = this, isEndless = _._isEndless || null;\n return new Enumerable(function () {\n var enumerator;\n var nestLevel = 0;\n var buffer, len;\n return new EnumeratorBase_1.default(function () {\n nestLevel = 0;\n buffer = [];\n len = 0;\n enumerator = _.getEnumerator();\n }, function (yielder) {\n while (true) {\n if (enumerator.moveNext()) {\n buffer[len++] = enumerator.current;\n return yielder.yieldReturn(resultSelector(enumerator.current, nestLevel));\n }\n if (!len)\n return yielder.yieldBreak();\n var next = Enumerable\n .from(buffer)\n .selectMany(childrenSelector);\n if (!next.any()) {\n return yielder.yieldBreak();\n }\n else {\n nestLevel++;\n buffer = [];\n len = 0;\n enumerator.dispose();\n enumerator = next.getEnumerator();\n }\n }\n }, function () {\n dispose_1.dispose(enumerator);\n buffer.length = 0;\n }, isEndless);\n }, null, isEndless);\n };\n InfiniteEnumerable.prototype.traverseDepthFirst = function (childrenSelector, resultSelector) {\n if (resultSelector === void 0) { resultSelector = Functions.Identity; }\n var _ = this, isEndless = _._isEndless || null;\n return new Enumerable(function () {\n var enumeratorStack = [];\n var enumerator;\n var len;\n return new EnumeratorBase_1.default(function () {\n enumerator = _.getEnumerator();\n len = 0;\n }, function (yielder) {\n while (true) {\n if (enumerator.moveNext()) {\n var value = resultSelector(enumerator.current, len);\n enumeratorStack[len++] = enumerator;\n var e = Enumerable.fromAny(childrenSelector(enumerator.current));\n enumerator = e ? e.getEnumerator() : Enumerator_1.empty;\n return yielder.yieldReturn(value);\n }\n if (len == 0)\n return false;\n enumerator.dispose();\n enumerator = enumeratorStack[--len];\n enumeratorStack.length = len;\n }\n }, function () {\n try {\n dispose_1.dispose(enumerator);\n }\n finally {\n dispose_1.dispose.these(enumeratorStack);\n }\n }, isEndless);\n }, null, isEndless);\n };\n InfiniteEnumerable.prototype.flatten = function () {\n var _ = this, isEndless = _._isEndless || null;\n return new Enumerable(function () {\n var enumerator;\n var middleEnumerator = null;\n return new EnumeratorBase_1.default(function () {\n enumerator = _.getEnumerator();\n }, function (yielder) {\n while (true) {\n if (middleEnumerator) {\n if (middleEnumerator.moveNext()) {\n return yielder.yieldReturn(middleEnumerator.current);\n }\n else {\n middleEnumerator.dispose();\n middleEnumerator = null;\n }\n }\n if (enumerator.moveNext()) {\n var c = enumerator.current;\n var e = !Types_1.default.isString(c) && Enumerable.fromAny(c);\n if (e) {\n middleEnumerator\n = e\n .selectMany(Functions.Identity)\n .flatten()\n .getEnumerator();\n continue;\n }\n else {\n return yielder.yieldReturn(c);\n }\n }\n return yielder.yieldBreak();\n }\n }, function () {\n dispose_1.dispose(enumerator, middleEnumerator);\n }, isEndless);\n }, null, isEndless);\n };\n InfiniteEnumerable.prototype.pairwise = function (selector) {\n var _ = this;\n return new Enumerable(function () {\n var enumerator;\n return new EnumeratorBase_1.default(function () {\n enumerator = _.getEnumerator();\n enumerator.moveNext();\n }, function (yielder) {\n var prev = enumerator.current;\n return enumerator.moveNext()\n && yielder.yieldReturn(selector(prev, enumerator.current));\n }, function () {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, null, _._isEndless);\n };\n InfiniteEnumerable.prototype.scan = function (func, seed) {\n var isUseSeed = seed !== VOID0;\n var _ = this;\n return new Enumerable(function () {\n var enumerator;\n var value;\n var isFirst;\n return new EnumeratorBase_1.default(function () {\n enumerator = _.getEnumerator();\n isFirst = true;\n }, function (yielder) {\n if (isFirst) {\n isFirst = false;\n return isUseSeed\n ? yielder.yieldReturn(value = seed)\n : enumerator.moveNext() && yielder.yieldReturn(value\n = enumerator.current);\n }\n return (enumerator.moveNext())\n ? yielder.yieldReturn(value = func(value, enumerator.current))\n : false;\n }, function () {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, null, _._isEndless);\n };\n InfiniteEnumerable.prototype.select = function (selector) {\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(function () {\n var enumerator;\n var index = 0;\n return new EnumeratorBase_1.default(function () {\n throwIfDisposed(disposed);\n index = 0;\n enumerator = _.getEnumerator();\n }, function (yielder) {\n throwIfDisposed(disposed);\n return enumerator.moveNext()\n ? yielder.yieldReturn(selector(enumerator.current, index++))\n : yielder.yieldBreak();\n }, function () {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, function () {\n disposed = true;\n }, _._isEndless);\n };\n InfiniteEnumerable.prototype._selectMany = function (collectionSelector, resultSelector) {\n var _ = this, isEndless = _._isEndless || null;\n if (!resultSelector)\n resultSelector = function (a, b) { return b; };\n return new Enumerable(function () {\n var enumerator;\n var middleEnumerator;\n var index = 0;\n return new EnumeratorBase_1.default(function () {\n enumerator = _.getEnumerator();\n middleEnumerator = undefined;\n index = 0;\n }, function (yielder) {\n if (middleEnumerator === VOID0 && !enumerator.moveNext())\n return false;\n do {\n if (!middleEnumerator) {\n var middleSeq = collectionSelector(enumerator.current, index++);\n if (!middleSeq)\n continue;\n middleEnumerator = Enumerator_1.from(middleSeq);\n }\n if (middleEnumerator.moveNext())\n return yielder.yieldReturn(resultSelector(enumerator.current, middleEnumerator.current));\n middleEnumerator.dispose();\n middleEnumerator = null;\n } while (enumerator.moveNext());\n return false;\n }, function () {\n dispose_1.dispose(enumerator, middleEnumerator);\n enumerator = null;\n middleEnumerator = null;\n }, isEndless);\n }, null, isEndless);\n };\n InfiniteEnumerable.prototype.selectMany = function (collectionSelector, resultSelector) {\n return this._selectMany(collectionSelector, resultSelector);\n };\n InfiniteEnumerable.prototype._choose = function (selector) {\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(function () {\n var enumerator;\n var index = 0;\n return new EnumeratorBase_1.default(function () {\n throwIfDisposed(disposed);\n index = 0;\n enumerator = _.getEnumerator();\n }, function (yielder) {\n throwIfDisposed(disposed);\n while (enumerator.moveNext()) {\n var result = selector(enumerator.current, index++);\n if (result !== null && result !== VOID0)\n return yielder.yieldReturn(result);\n }\n return false;\n }, function () {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, function () {\n disposed = true;\n }, _._isEndless);\n };\n InfiniteEnumerable.prototype.choose = function (selector) {\n if (selector === void 0) { selector = Functions.Identity; }\n return this._choose(selector);\n };\n InfiniteEnumerable.prototype.where = function (predicate) {\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(function () {\n var enumerator;\n var index = 0;\n return new EnumeratorBase_1.default(function () {\n throwIfDisposed(disposed);\n index = 0;\n enumerator = _.getEnumerator();\n }, function (yielder) {\n throwIfDisposed(disposed);\n while (enumerator.moveNext()) {\n if (predicate(enumerator.current, index++))\n return yielder.yieldReturn(enumerator.current);\n }\n return false;\n }, function () {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, function () {\n disposed = true;\n }, _._isEndless);\n };\n InfiniteEnumerable.prototype.ofType = function (type) {\n var typeName;\n switch (type) {\n case Number:\n typeName = Types_1.default.NUMBER;\n break;\n case String:\n typeName = Types_1.default.STRING;\n break;\n case Boolean:\n typeName = Types_1.default.BOOLEAN;\n break;\n case Function:\n typeName = Types_1.default.FUNCTION;\n break;\n default:\n return this\n .where(function (x) { return x instanceof type; });\n }\n return this\n .choose()\n .where(function (x) { return (typeof x) === typeName; });\n };\n InfiniteEnumerable.prototype.except = function (second, compareSelector) {\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(function () {\n var enumerator;\n var keys;\n return new EnumeratorBase_1.default(function () {\n throwIfDisposed(disposed);\n enumerator = _.getEnumerator();\n keys = new Dictionary_1.default(compareSelector);\n if (second)\n Enumerator_1.forEach(second, function (key) { return keys.addByKeyValue(key, true); });\n }, function (yielder) {\n throwIfDisposed(disposed);\n while (enumerator.moveNext()) {\n var current = enumerator.current;\n if (!keys.containsKey(current)) {\n keys.addByKeyValue(current, true);\n return yielder.yieldReturn(current);\n }\n }\n return false;\n }, function () {\n dispose_1.dispose(enumerator);\n keys.clear();\n }, _._isEndless);\n }, function () {\n disposed = true;\n }, _._isEndless);\n };\n InfiniteEnumerable.prototype.distinct = function (compareSelector) {\n return this.except(null, compareSelector);\n };\n InfiniteEnumerable.prototype.distinctUntilChanged = function (compareSelector) {\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(function () {\n var enumerator;\n var compareKey;\n var initial = true;\n return new EnumeratorBase_1.default(function () {\n throwIfDisposed(disposed);\n enumerator = _.getEnumerator();\n }, function (yielder) {\n throwIfDisposed(disposed);\n while (enumerator.moveNext()) {\n var key = compareSelector(enumerator.current);\n if (initial) {\n initial = false;\n }\n else if (Values.areEqual(compareKey, key)) {\n continue;\n }\n compareKey = key;\n return yielder.yieldReturn(enumerator.current);\n }\n return false;\n }, function () {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, function () {\n disposed = true;\n }, _._isEndless);\n };\n InfiniteEnumerable.prototype.defaultIfEmpty = function (defaultValue) {\n if (defaultValue === void 0) { defaultValue = null; }\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(function () {\n var enumerator;\n var isFirst;\n return new EnumeratorBase_1.default(function () {\n isFirst = true;\n throwIfDisposed(disposed);\n enumerator = _.getEnumerator();\n }, function (yielder) {\n throwIfDisposed(disposed);\n if (enumerator.moveNext()) {\n isFirst = false;\n return yielder.yieldReturn(enumerator.current);\n }\n else if (isFirst) {\n isFirst = false;\n return yielder.yieldReturn(defaultValue);\n }\n return false;\n }, function () {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, null, _._isEndless);\n };\n InfiniteEnumerable.prototype.zip = function (second, resultSelector) {\n var _ = this;\n _.throwIfDisposed();\n return new Enumerable(function () {\n var firstEnumerator;\n var secondEnumerator;\n var index = 0;\n return new EnumeratorBase_1.default(function () {\n index = 0;\n firstEnumerator = _.getEnumerator();\n secondEnumerator = Enumerator_1.from(second);\n }, function (yielder) { return firstEnumerator.moveNext()\n && secondEnumerator.moveNext()\n && yielder.yieldReturn(resultSelector(firstEnumerator.current, secondEnumerator.current, index++)); }, function () {\n dispose_1.dispose(firstEnumerator, secondEnumerator);\n });\n });\n };\n InfiniteEnumerable.prototype.zipMultiple = function (second, resultSelector) {\n var _ = this;\n _.throwIfDisposed();\n if (!second.length)\n return Enumerable.empty();\n return new Enumerable(function () {\n var secondTemp;\n var firstEnumerator;\n var secondEnumerator;\n var index = 0;\n return new EnumeratorBase_1.default(function () {\n secondTemp = new Queue_1.default(second);\n index = 0;\n firstEnumerator = _.getEnumerator();\n secondEnumerator = null;\n }, function (yielder) {\n if (firstEnumerator.moveNext()) {\n while (true) {\n while (!secondEnumerator) {\n if (secondTemp.count) {\n var next = secondTemp.dequeue();\n if (next)\n secondEnumerator = Enumerator_1.from(next);\n }\n else\n return yielder.yieldBreak();\n }\n if (secondEnumerator.moveNext())\n return yielder.yieldReturn(resultSelector(firstEnumerator.current, secondEnumerator.current, index++));\n secondEnumerator.dispose();\n secondEnumerator = null;\n }\n }\n return yielder.yieldBreak();\n }, function () {\n dispose_1.dispose(firstEnumerator, secondTemp);\n });\n });\n };\n InfiniteEnumerable.prototype.join = function (inner, outerKeySelector, innerKeySelector, resultSelector, compareSelector) {\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\n var _ = this;\n return new Enumerable(function () {\n var outerEnumerator;\n var lookup;\n var innerElements = null;\n var innerCount = 0;\n return new EnumeratorBase_1.default(function () {\n outerEnumerator = _.getEnumerator();\n lookup = Enumerable.from(inner)\n .toLookup(innerKeySelector, Functions.Identity, compareSelector);\n }, function (yielder) {\n while (true) {\n if (innerElements != null) {\n var innerElement = innerElements[innerCount++];\n if (innerElement !== VOID0)\n return yielder.yieldReturn(resultSelector(outerEnumerator.current, innerElement));\n innerElement = null;\n innerCount = 0;\n }\n if (outerEnumerator.moveNext()) {\n var key = outerKeySelector(outerEnumerator.current);\n innerElements = lookup.get(key);\n }\n else {\n return yielder.yieldBreak();\n }\n }\n }, function () {\n dispose_1.dispose(outerEnumerator);\n });\n });\n };\n InfiniteEnumerable.prototype.groupJoin = function (inner, outerKeySelector, innerKeySelector, resultSelector, compareSelector) {\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\n var _ = this;\n return new Enumerable(function () {\n var enumerator;\n var lookup = null;\n return new EnumeratorBase_1.default(function () {\n enumerator = _.getEnumerator();\n lookup = Enumerable.from(inner)\n .toLookup(innerKeySelector, Functions.Identity, compareSelector);\n }, function (yielder) {\n return enumerator.moveNext()\n && yielder.yieldReturn(resultSelector(enumerator.current, lookup.get(outerKeySelector(enumerator.current))));\n }, function () {\n dispose_1.dispose(enumerator);\n });\n });\n };\n InfiniteEnumerable.prototype.merge = function (enumerables) {\n var _ = this, isEndless = _._isEndless || null;\n if (!enumerables || enumerables.length == 0)\n return _;\n return new Enumerable(function () {\n var enumerator;\n var queue;\n return new EnumeratorBase_1.default(function () {\n enumerator = _.getEnumerator();\n queue = new Queue_1.default(enumerables);\n }, function (yielder) {\n while (true) {\n while (!enumerator && queue.count) {\n enumerator = Enumerator_1.from(queue.dequeue());\n }\n if (enumerator && enumerator.moveNext())\n return yielder.yieldReturn(enumerator.current);\n if (enumerator) {\n enumerator.dispose();\n enumerator = null;\n continue;\n }\n return yielder.yieldBreak();\n }\n }, function () {\n dispose_1.dispose(enumerator, queue);\n }, isEndless);\n }, null, isEndless);\n };\n InfiniteEnumerable.prototype.concat = function () {\n var enumerables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n enumerables[_i - 0] = arguments[_i];\n }\n return this.merge(enumerables);\n };\n InfiniteEnumerable.prototype.union = function (second, compareSelector) {\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\n var _ = this, isEndless = _._isEndless || null;\n return new Enumerable(function () {\n var firstEnumerator;\n var secondEnumerator;\n var keys;\n return new EnumeratorBase_1.default(function () {\n firstEnumerator = _.getEnumerator();\n keys = new Dictionary_1.default(compareSelector);\n }, function (yielder) {\n var current;\n if (secondEnumerator === VOID0) {\n while (firstEnumerator.moveNext()) {\n current = firstEnumerator.current;\n if (!keys.containsKey(current)) {\n keys.addByKeyValue(current, null);\n return yielder.yieldReturn(current);\n }\n }\n secondEnumerator = Enumerator_1.from(second);\n }\n while (secondEnumerator.moveNext()) {\n current = secondEnumerator.current;\n if (!keys.containsKey(current)) {\n keys.addByKeyValue(current, null);\n return yielder.yieldReturn(current);\n }\n }\n return false;\n }, function () {\n dispose_1.dispose(firstEnumerator, secondEnumerator);\n }, isEndless);\n }, null, isEndless);\n };\n InfiniteEnumerable.prototype.insertAt = function (index, other) {\n Integer_1.default.assertZeroOrGreater(index, 'index');\n var n = index;\n var _ = this, isEndless = _._isEndless || null;\n _.throwIfDisposed();\n return new Enumerable(function () {\n var firstEnumerator;\n var secondEnumerator;\n var count = 0;\n var isEnumerated = false;\n return new EnumeratorBase_1.default(function () {\n count = 0;\n firstEnumerator = _.getEnumerator();\n secondEnumerator = Enumerator_1.from(other);\n isEnumerated = false;\n }, function (yielder) {\n if (count == n) {\n isEnumerated = true;\n if (secondEnumerator.moveNext())\n return yielder.yieldReturn(secondEnumerator.current);\n }\n if (firstEnumerator.moveNext()) {\n count++;\n return yielder.yieldReturn(firstEnumerator.current);\n }\n return !isEnumerated\n && secondEnumerator.moveNext()\n && yielder.yieldReturn(secondEnumerator.current);\n }, function () {\n dispose_1.dispose(firstEnumerator, secondEnumerator);\n }, isEndless);\n }, null, isEndless);\n };\n InfiniteEnumerable.prototype.alternateMultiple = function (sequence) {\n var _ = this;\n return new Enumerable(function () {\n var buffer, mode, enumerator, alternateEnumerator;\n return new EnumeratorBase_1.default(function () {\n alternateEnumerator = new ArrayEnumerator_1.default(Enumerable.toArray(sequence));\n enumerator = _.getEnumerator();\n var hasAtLeastOne = enumerator.moveNext();\n mode = hasAtLeastOne\n ? 1\n : 0;\n if (hasAtLeastOne)\n buffer = enumerator.current;\n }, function (yielder) {\n switch (mode) {\n case 0:\n return yielder.yieldBreak();\n case 2:\n if (alternateEnumerator.moveNext())\n return yielder.yieldReturn(alternateEnumerator.current);\n alternateEnumerator.reset();\n mode = 1;\n break;\n }\n var latest = buffer;\n var another = enumerator.moveNext();\n mode = another\n ? 2\n : 0;\n if (another)\n buffer = enumerator.current;\n return yielder.yieldReturn(latest);\n }, function () {\n dispose_1.dispose(enumerator, alternateEnumerator);\n }, _._isEndless);\n }, null, _._isEndless);\n };\n InfiniteEnumerable.prototype.alternateSingle = function (value) {\n return this.alternateMultiple(Enumerable.make(value));\n };\n InfiniteEnumerable.prototype.alternate = function () {\n var sequence = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n sequence[_i - 0] = arguments[_i];\n }\n return this.alternateMultiple(sequence);\n };\n InfiniteEnumerable.prototype.catchError = function (handler) {\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(function () {\n var enumerator;\n return new EnumeratorBase_1.default(function () {\n try {\n throwIfDisposed(disposed);\n enumerator = _.getEnumerator();\n }\n catch (e) {\n }\n }, function (yielder) {\n try {\n throwIfDisposed(disposed);\n if (enumerator.moveNext())\n return yielder.yieldReturn(enumerator.current);\n }\n catch (e) {\n handler(e);\n }\n return false;\n }, function () {\n dispose_1.dispose(enumerator);\n });\n });\n };\n InfiniteEnumerable.prototype.finallyAction = function (action) {\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(function () {\n var enumerator;\n return new EnumeratorBase_1.default(function () {\n throwIfDisposed(disposed);\n enumerator = _.getEnumerator();\n }, function (yielder) {\n throwIfDisposed(disposed);\n return (enumerator.moveNext())\n ? yielder.yieldReturn(enumerator.current)\n : false;\n }, function () {\n try {\n dispose_1.dispose(enumerator);\n }\n finally {\n action();\n }\n });\n });\n };\n InfiniteEnumerable.prototype.buffer = function (size) {\n if (size < 1 || !isFinite(size))\n throw new Error(\"Invalid buffer size.\");\n Integer_1.default.assert(size, \"size\");\n var _ = this, len;\n return new Enumerable(function () {\n var enumerator;\n return new EnumeratorBase_1.default(function () {\n enumerator = _.getEnumerator();\n }, function (yielder) {\n var array = ArrayUtility.initialize(size);\n len = 0;\n while (len < size && enumerator.moveNext()) {\n array[len++] = enumerator.current;\n }\n array.length = len;\n return len && yielder.yieldReturn(array);\n }, function () {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, null, _._isEndless);\n };\n InfiniteEnumerable.prototype.share = function () {\n var _ = this;\n _.throwIfDisposed();\n var sharedEnumerator;\n return new Enumerable(function () {\n return sharedEnumerator || (sharedEnumerator = _.getEnumerator());\n }, function () {\n dispose_1.dispose(sharedEnumerator);\n }, _._isEndless);\n };\n return InfiniteEnumerable;\n }(DisposableBase_1.default));\n exports.InfiniteEnumerable = InfiniteEnumerable;\n var Enumerable = (function (_super) {\n __extends(Enumerable, _super);\n function Enumerable(enumeratorFactory, finalizer, isEndless) {\n if (isEndless === void 0) { isEndless = null; }\n _super.call(this, enumeratorFactory, finalizer);\n this._isEndless = isEndless;\n }\n Enumerable.from = function (source) {\n var e = Enumerable.fromAny(source);\n if (!e)\n throw new UnsupportedEnumerableException_1.default();\n return e;\n };\n Enumerable.fromAny = function (source, defaultEnumerable) {\n if (defaultEnumerable === void 0) { defaultEnumerable = null; }\n if (Types_1.default.isObject(source) || Types_1.default.isString(source)) {\n if (source instanceof Enumerable)\n return source;\n if (Types_1.default.isArrayLike(source))\n return new ArrayEnumerable(source);\n if (Enumerator_1.isEnumerable(source))\n return new Enumerable(function () { return source.getEnumerator(); }, null, source.isEndless);\n }\n return defaultEnumerable;\n };\n Enumerable.fromOrEmpty = function (source) {\n return Enumerable.fromAny(source) || Enumerable.empty();\n };\n Enumerable.toArray = function (source) {\n if (source instanceof Enumerable)\n return source.toArray();\n return Enumerator_1.toArray(source);\n };\n Enumerable.choice = function (values) {\n var len = values && values.length;\n if (!len || !isFinite(len))\n throw new ArgumentOutOfRangeException_1.default('length', length);\n return new InfiniteEnumerable(function () { return new EnumeratorBase_1.default(null, function (yielder) {\n return yielder.yieldReturn(Integer_1.default.random.select(values));\n }, true); });\n };\n Enumerable.chooseFrom = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i - 0] = arguments[_i];\n }\n return Enumerable.choice(args);\n };\n Enumerable.cycle = function (values) {\n var len = values && values.length;\n if (!len || !isFinite(len))\n throw new ArgumentOutOfRangeException_1.default('length', length);\n return new InfiniteEnumerable(function () {\n var index = 0;\n return new EnumeratorBase_1.default(function () {\n index = 0;\n }, function (yielder) {\n if (index >= values.length)\n index = 0;\n return yielder.yieldReturn(values[index++]);\n }, true);\n });\n };\n Enumerable.cycleThrough = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i - 0] = arguments[_i];\n }\n return Enumerable.cycle(args);\n };\n Enumerable.empty = function () {\n return new FiniteEnumerable(getEmptyEnumerator);\n };\n Enumerable.repeat = function (element, count) {\n if (count === void 0) { count = Infinity; }\n if (!(count > 0))\n return Enumerable.empty();\n return isFinite(count) && Integer_1.default.assert(count, \"count\")\n ? new FiniteEnumerable(function () {\n var c = count;\n var index = 0;\n return new EnumeratorBase_1.default(function () { index = 0; }, function (yielder) { return (index++ < c) && yielder.yieldReturn(element); }, null, false);\n })\n : new Enumerable(function () {\n return new EnumeratorBase_1.default(null, function (yielder) { return yielder.yieldReturn(element); }, true);\n });\n };\n Enumerable.repeatWithFinalize = function (initializer, finalizer) {\n return new InfiniteEnumerable(function () {\n var element;\n return new EnumeratorBase_1.default(function () {\n element = initializer();\n }, function (yielder) { return yielder.yieldReturn(element); }, function () {\n finalizer(element);\n }, true);\n });\n };\n Enumerable.make = function (element) {\n return Enumerable.repeat(element, 1);\n };\n Enumerable.range = function (start, count, step) {\n if (step === void 0) { step = 1; }\n if (!isFinite(start))\n throw new ArgumentOutOfRangeException_1.default(\"start\", start, \"Must be a finite number.\");\n if (!(count > 0))\n return Enumerable.empty();\n if (!step)\n throw new ArgumentOutOfRangeException_1.default(\"step\", step, \"Must be a valid value\");\n if (!isFinite(step))\n throw new ArgumentOutOfRangeException_1.default(\"step\", step, \"Must be a finite number.\");\n Integer_1.default.assert(count, \"count\");\n return new FiniteEnumerable(function () {\n var value;\n var c = count;\n var index = 0;\n return new EnumeratorBase_1.default(function () {\n index = 0;\n value = start;\n }, function (yielder) {\n var result = index++ < c\n && yielder.yieldReturn(value);\n if (result && index < count)\n value += step;\n return result;\n }, false);\n });\n };\n Enumerable.rangeDown = function (start, count, step) {\n if (step === void 0) { step = 1; }\n step = Math.abs(step) * -1;\n return Enumerable.range(start, count, step);\n };\n Enumerable.toInfinity = function (start, step) {\n if (start === void 0) { start = 0; }\n if (step === void 0) { step = 1; }\n if (!isFinite(start))\n throw new ArgumentOutOfRangeException_1.default(\"start\", start, \"Must be a finite number.\");\n if (!step)\n throw new ArgumentOutOfRangeException_1.default(\"step\", step, \"Must be a valid value\");\n if (!isFinite(step))\n throw new ArgumentOutOfRangeException_1.default(\"step\", step, \"Must be a finite number.\");\n return new InfiniteEnumerable(function () {\n var value;\n return new EnumeratorBase_1.default(function () {\n value = start;\n }, function (yielder) {\n var current = value;\n value += step;\n return yielder.yieldReturn(current);\n }, true);\n });\n };\n Enumerable.toNegativeInfinity = function (start, step) {\n if (start === void 0) { start = 0; }\n if (step === void 0) { step = 1; }\n return Enumerable.toInfinity(start, -step);\n };\n Enumerable.rangeTo = function (start, to, step) {\n if (step === void 0) { step = 1; }\n if (isNaN(to) || !isFinite(to))\n throw new ArgumentOutOfRangeException_1.default(\"to\", to, \"Must be a finite number.\");\n if (step && !isFinite(step))\n throw new ArgumentOutOfRangeException_1.default(\"step\", step, \"Must be a finite non-zero number.\");\n step = Math.abs(step);\n return new FiniteEnumerable(function () {\n var value;\n return new EnumeratorBase_1.default(function () { value = start; }, start < to\n ?\n function (yielder) {\n var result = value <= to && yielder.yieldReturn(value);\n if (result)\n value += step;\n return result;\n }\n :\n function (yielder) {\n var result = value >= to && yielder.yieldReturn(value);\n if (result)\n value -= step;\n return result;\n }, false);\n });\n };\n Enumerable.matches = function (input, pattern, flags) {\n if (flags === void 0) { flags = \"\"; }\n if (input === null || input === VOID0)\n throw new ArgumentNullException_1.default(\"input\");\n var type = typeof input;\n if (type != Types_1.default.STRING)\n throw new Error(\"Cannot exec RegExp matches of type '\" + type + \"'.\");\n if (pattern instanceof RegExp) {\n flags += (pattern.ignoreCase) ? \"i\" : \"\";\n flags += (pattern.multiline) ? \"m\" : \"\";\n pattern = pattern.source;\n }\n if (flags.indexOf(\"g\") === -1)\n flags += \"g\";\n return new FiniteEnumerable(function () {\n var regex;\n return new EnumeratorBase_1.default(function () {\n regex = new RegExp(pattern, flags);\n }, function (yielder) {\n var match = regex.exec(input);\n return (match !== null) ? yielder.yieldReturn(match) : false;\n });\n });\n };\n Enumerable.generate = function (factory, count) {\n if (count === void 0) { count = Infinity; }\n if (isNaN(count) || count <= 0)\n return Enumerable.empty();\n return isFinite(count) && Integer_1.default.assert(count, \"count\")\n ?\n new FiniteEnumerable(function () {\n var c = count;\n var index = 0;\n return new EnumeratorBase_1.default(function () {\n index = 0;\n }, function (yielder) {\n var current = index++;\n return current < c && yielder.yieldReturn(factory(current));\n }, false);\n })\n :\n new InfiniteEnumerable(function () {\n var index = 0;\n return new EnumeratorBase_1.default(function () {\n index = 0;\n }, function (yielder) { return yielder.yieldReturn(factory(index++)); }, true);\n });\n };\n Enumerable.unfold = function (seed, valueFactory, skipSeed) {\n if (skipSeed === void 0) { skipSeed = false; }\n return new InfiniteEnumerable(function () {\n var index = 0;\n var value;\n var isFirst;\n return new EnumeratorBase_1.default(function () {\n index = 0;\n value = seed;\n isFirst = !skipSeed;\n }, function (yielder) {\n var i = index++;\n if (isFirst)\n isFirst = false;\n else\n value = valueFactory(value, i);\n return yielder.yieldReturn(value);\n }, true);\n });\n };\n Enumerable.forEach = function (enumerable, action) {\n Enumerator_1.forEach(enumerable, action);\n };\n Enumerable.map = function (enumerable, selector) {\n return Enumerator_1.map(enumerable, selector);\n };\n Enumerable.max = function (values) {\n return values\n .takeUntil(function (v) { return v == +Infinity; }, true)\n .aggregate(Functions.Greater);\n };\n Enumerable.min = function (values) {\n return values\n .takeUntil(function (v) { return v == -Infinity; }, true)\n .aggregate(Functions.Lesser);\n };\n Enumerable.weave = function (enumerables) {\n if (!enumerables)\n throw new ArgumentNullException_1.default('enumerables');\n return new Enumerable(function () {\n var queue;\n var mainEnumerator;\n var index;\n return new EnumeratorBase_1.default(function () {\n index = 0;\n queue = new Queue_1.default();\n mainEnumerator = Enumerator_1.from(enumerables);\n }, function (yielder) {\n var e;\n if (mainEnumerator) {\n while (!e && mainEnumerator.moveNext()) {\n var c = mainEnumerator.current;\n e = nextEnumerator(queue, c && Enumerator_1.from(c));\n }\n if (!e)\n mainEnumerator = null;\n }\n while (!e && queue.count) {\n e = nextEnumerator(queue, queue.dequeue());\n }\n return e\n ? yielder.yieldReturn(e.current)\n : yielder.yieldBreak();\n }, function () {\n dispose_1.dispose.these(queue.dump());\n dispose_1.dispose(mainEnumerator, queue);\n mainEnumerator = null;\n queue = null;\n });\n });\n };\n Enumerable.prototype.doAction = function (action, initializer, isEndless) {\n if (isEndless === void 0) { isEndless = this.isEndless; }\n return _super.prototype.doAction.call(this, action, initializer, isEndless);\n };\n Enumerable.prototype.skip = function (count) {\n return _super.prototype.skip.call(this, count);\n };\n Enumerable.prototype.skipWhile = function (predicate) {\n this.throwIfDisposed();\n return this.doAction(function (element, index) {\n return predicate(element, index)\n ? 2\n : 1;\n });\n };\n Enumerable.prototype.takeWhile = function (predicate) {\n this.throwIfDisposed();\n if (!predicate)\n throw new ArgumentNullException_1.default('predicate');\n return this.doAction(function (element, index) {\n return predicate(element, index)\n ? 1\n : 0;\n }, null, null);\n };\n Enumerable.prototype.takeUntil = function (predicate, includeUntilValue) {\n this.throwIfDisposed();\n if (!predicate)\n throw new ArgumentNullException_1.default('predicate');\n if (!includeUntilValue)\n return this.doAction(function (element, index) {\n return predicate(element, index)\n ? 0\n : 1;\n }, null, null);\n var found = false;\n return this.doAction(function (element, index) {\n if (found)\n return 0;\n found = predicate(element, index);\n return 1;\n }, function () {\n found = false;\n }, null);\n };\n Enumerable.prototype.forEach = function (action) {\n var _ = this;\n _.throwIfDisposed();\n Enumerator_1.throwIfEndless(_.isEndless);\n var index = 0;\n dispose_1.using(_.getEnumerator(), function (e) {\n Enumerator_1.throwIfEndless(e.isEndless);\n while (_.throwIfDisposed() && e.moveNext()) {\n if (action(e.current, index++) === false)\n break;\n }\n });\n };\n Enumerable.prototype.toArray = function (predicate) {\n return predicate\n ? this.where(predicate).toArray()\n : this.copyTo([]);\n };\n Enumerable.prototype.copyTo = function (target, index) {\n if (index === void 0) { index = 0; }\n this.throwIfDisposed();\n if (!target)\n throw new ArgumentNullException_1.default(\"target\");\n Integer_1.default.assertZeroOrGreater(index);\n Enumerator_1.forEach(this, function (x, i) {\n target[i + index] = x;\n });\n return target;\n };\n Enumerable.prototype.toLookup = function (keySelector, elementSelector, compareSelector) {\n if (elementSelector === void 0) { elementSelector = Functions.Identity; }\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\n var dict = new Dictionary_1.default(compareSelector);\n this.forEach(function (x) {\n var key = keySelector(x);\n var element = elementSelector(x);\n var array = dict.getValue(key);\n if (array !== VOID0)\n array.push(element);\n else\n dict.addByKeyValue(key, [element]);\n });\n return new Lookup(dict);\n };\n Enumerable.prototype.toMap = function (keySelector, elementSelector) {\n var obj = {};\n this.forEach(function (x, i) {\n obj[keySelector(x, i)] = elementSelector(x, i);\n });\n return obj;\n };\n Enumerable.prototype.toDictionary = function (keySelector, elementSelector, compareSelector) {\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\n var dict = new Dictionary_1.default(compareSelector);\n this.forEach(function (x, i) { return dict.addByKeyValue(keySelector(x, i), elementSelector(x, i)); });\n return dict;\n };\n Enumerable.prototype.toJoinedString = function (separator, selector) {\n if (separator === void 0) { separator = \"\"; }\n if (selector === void 0) { selector = Functions.Identity; }\n return this.select(selector).toArray().join(separator);\n };\n Enumerable.prototype.takeExceptLast = function (count) {\n if (count === void 0) { count = 1; }\n var _ = this;\n if (!(count > 0))\n return _;\n if (!isFinite(count))\n return Enumerable.empty();\n Integer_1.default.assert(count, \"count\");\n var c = count;\n return new Enumerable(function () {\n var enumerator;\n var q;\n return new EnumeratorBase_1.default(function () {\n enumerator = _.getEnumerator();\n q = new Queue_1.default();\n }, function (yielder) {\n while (enumerator.moveNext()) {\n q.enqueue(enumerator.current);\n if (q.count > c)\n return yielder.yieldReturn(q.dequeue());\n }\n return false;\n }, function () {\n dispose_1.dispose(enumerator, q);\n });\n });\n };\n Enumerable.prototype.skipToLast = function (count) {\n if (!(count > 0))\n return Enumerable.empty();\n var _ = this;\n if (!isFinite(count))\n return _;\n Integer_1.default.assert(count, \"count\");\n return _.reverse()\n .take(count)\n .reverse();\n };\n Enumerable.prototype.where = function (predicate) {\n return _super.prototype.where.call(this, predicate);\n };\n Enumerable.prototype.select = function (selector) {\n return _super.prototype.select.call(this, selector);\n };\n Enumerable.prototype.selectMany = function (collectionSelector, resultSelector) {\n return this._selectMany(collectionSelector, resultSelector);\n };\n Enumerable.prototype.choose = function (selector) {\n if (selector === void 0) { selector = Functions.Identity; }\n return this._choose(selector);\n };\n Enumerable.prototype.reverse = function () {\n var _ = this, disposed = !_.throwIfDisposed();\n Enumerator_1.throwIfEndless(_._isEndless);\n return new Enumerable(function () {\n var buffer;\n var index = 0;\n return new EnumeratorBase_1.default(function () {\n throwIfDisposed(disposed);\n buffer = _.toArray();\n index = buffer.length;\n }, function (yielder) { return index && yielder.yieldReturn(buffer[--index]); }, function () {\n buffer.length = 0;\n });\n }, function () {\n disposed = true;\n });\n };\n Enumerable.prototype.shuffle = function () {\n var _ = this, disposed = !_.throwIfDisposed();\n Enumerator_1.throwIfEndless(_._isEndless);\n return new Enumerable(function () {\n var buffer;\n var capacity;\n var len;\n return new EnumeratorBase_1.default(function () {\n throwIfDisposed(disposed);\n buffer = _.toArray();\n capacity = len = buffer.length;\n }, function (yielder) {\n if (!len)\n return yielder.yieldBreak();\n var selectedIndex = Integer_1.default.random(len);\n var selectedValue = buffer[selectedIndex];\n buffer[selectedIndex] = buffer[--len];\n buffer[len] = null;\n if (len % 32 == 0)\n buffer.length = len;\n return yielder.yieldReturn(selectedValue);\n }, function () {\n buffer.length = 0;\n });\n }, function () {\n disposed = true;\n });\n };\n Enumerable.prototype.count = function (predicate) {\n var count = 0;\n this.forEach(predicate\n ?\n function (x, i) {\n if (predicate(x, i))\n ++count;\n }\n :\n function () {\n ++count;\n });\n return count;\n };\n Enumerable.prototype.all = function (predicate) {\n if (!predicate)\n throw new ArgumentNullException_1.default(\"predicate\");\n var result = true;\n this.forEach(function (x, i) {\n if (!predicate(x, i)) {\n result = false;\n return false;\n }\n });\n return result;\n };\n Enumerable.prototype.every = function (predicate) {\n return this.all(predicate);\n };\n Enumerable.prototype.any = function (predicate) {\n if (!predicate)\n return _super.prototype.any.call(this);\n var result = false;\n this.forEach(function (x, i) {\n result = predicate(x, i);\n return !result;\n });\n return result;\n };\n Enumerable.prototype.some = function (predicate) {\n return this.any(predicate);\n };\n Enumerable.prototype.contains = function (value, compareSelector) {\n return compareSelector\n ? this.any(function (v) { return compareSelector(v) === compareSelector(value); })\n : this.any(function (v) { return v === value; });\n };\n Enumerable.prototype.indexOf = function (value, compareSelector) {\n var found = -1;\n this.forEach(compareSelector\n ?\n function (element, i) {\n if (Values.areEqual(compareSelector(element, i), compareSelector(value, i), true)) {\n found = i;\n return false;\n }\n }\n :\n function (element, i) {\n if (Values.areEqual(element, value, true)) {\n found = i;\n return false;\n }\n });\n return found;\n };\n Enumerable.prototype.lastIndexOf = function (value, compareSelector) {\n var result = -1;\n this.forEach(compareSelector\n ?\n function (element, i) {\n if (Values.areEqual(compareSelector(element, i), compareSelector(value, i), true))\n result\n = i;\n }\n :\n function (element, i) {\n if (Values.areEqual(element, value, true))\n result = i;\n });\n return result;\n };\n Enumerable.prototype.merge = function (enumerables) {\n return _super.prototype.merge.call(this, enumerables);\n };\n Enumerable.prototype.concat = function () {\n var enumerables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n enumerables[_i - 0] = arguments[_i];\n }\n return this.merge(enumerables);\n };\n Enumerable.prototype.intersect = function (second, compareSelector) {\n var _ = this;\n return new Enumerable(function () {\n var enumerator;\n var keys;\n var outs;\n return new EnumeratorBase_1.default(function () {\n enumerator = _.getEnumerator();\n keys = new Dictionary_1.default(compareSelector);\n outs = new Dictionary_1.default(compareSelector);\n Enumerator_1.forEach(second, function (key) {\n keys.addByKeyValue(key, true);\n });\n }, function (yielder) {\n while (enumerator.moveNext()) {\n var current = enumerator.current;\n if (!outs.containsKey(current) && keys.containsKey(current)) {\n outs.addByKeyValue(current, true);\n return yielder.yieldReturn(current);\n }\n }\n return yielder.yieldBreak();\n }, function () {\n dispose_1.dispose(enumerator, keys, outs);\n }, _._isEndless);\n }, null, _._isEndless);\n };\n Enumerable.prototype.sequenceEqual = function (second, equalityComparer) {\n if (equalityComparer === void 0) { equalityComparer = Values.areEqual; }\n return dispose_1.using(this.getEnumerator(), function (e1) { return dispose_1.using(Enumerator_1.from(second), function (e2) {\n Enumerator_1.throwIfEndless(e1.isEndless && e2.isEndless);\n while (e1.moveNext()) {\n if (!e2.moveNext() || !equalityComparer(e1.current, e2.current))\n return false;\n }\n return !e2.moveNext();\n }); });\n };\n Enumerable.prototype.ofType = function (type) {\n return _super.prototype.ofType.call(this, type);\n };\n Enumerable.prototype.except = function (second, compareSelector) {\n return _super.prototype.except.call(this, second, compareSelector);\n };\n Enumerable.prototype.distinct = function (compareSelector) {\n return _super.prototype.distinct.call(this, compareSelector);\n };\n Enumerable.prototype.distinctUntilChanged = function (compareSelector) {\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\n return _super.prototype.distinctUntilChanged.call(this, compareSelector);\n };\n Enumerable.prototype.orderBy = function (keySelector) {\n if (keySelector === void 0) { keySelector = Functions.Identity; }\n return new OrderedEnumerable(this, keySelector, 1);\n };\n Enumerable.prototype.orderUsing = function (comparison) {\n return new OrderedEnumerable(this, null, 1, null, comparison);\n };\n Enumerable.prototype.orderUsingReversed = function (comparison) {\n return new OrderedEnumerable(this, null, -1, null, comparison);\n };\n Enumerable.prototype.orderByDescending = function (keySelector) {\n if (keySelector === void 0) { keySelector = Functions.Identity; }\n return new OrderedEnumerable(this, keySelector, -1);\n };\n Enumerable.prototype.buffer = function (size) {\n return _super.prototype.buffer.call(this, size);\n };\n Enumerable.prototype.groupBy = function (keySelector, elementSelector, compareSelector) {\n var _this = this;\n if (!elementSelector)\n elementSelector = Functions.Identity;\n return new Enumerable(function () { return _this.toLookup(keySelector, elementSelector, compareSelector)\n .getEnumerator(); });\n };\n Enumerable.prototype.partitionBy = function (keySelector, elementSelector, resultSelector, compareSelector) {\n if (resultSelector === void 0) { resultSelector = function (key, elements) { return new Grouping(key, elements); }; }\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\n var _ = this;\n if (!elementSelector)\n elementSelector = Functions.Identity;\n return new Enumerable(function () {\n var enumerator;\n var key;\n var compareKey;\n var group;\n var len;\n return new EnumeratorBase_1.default(function () {\n enumerator = _.getEnumerator();\n if (enumerator.moveNext()) {\n key = keySelector(enumerator.current);\n compareKey = compareSelector(key);\n group = [elementSelector(enumerator.current)];\n len = 1;\n }\n else\n group = null;\n }, function (yielder) {\n if (!group)\n return yielder.yieldBreak();\n var hasNext, c;\n while ((hasNext = enumerator.moveNext())) {\n c = enumerator.current;\n if (compareKey === compareSelector(keySelector(c)))\n group[len++] = elementSelector(c);\n else\n break;\n }\n var result = resultSelector(key, group);\n if (hasNext) {\n c = enumerator.current;\n key = keySelector(c);\n compareKey = compareSelector(key);\n group = [elementSelector(c)];\n len = 1;\n }\n else {\n group = null;\n }\n return yielder.yieldReturn(result);\n }, function () {\n dispose_1.dispose(enumerator);\n group = null;\n });\n });\n };\n Enumerable.prototype.aggregate = function (func, seed) {\n return this.scan(func, seed).lastOrDefault();\n };\n Enumerable.prototype.average = function (selector) {\n if (selector === void 0) { selector = Types_1.default.numberOrNaN; }\n var count = 0;\n var sum = this.sum(function (e, i) {\n count++;\n return selector(e, i);\n });\n return (isNaN(sum) || !count)\n ? NaN\n : (sum / count);\n };\n Enumerable.prototype.max = function () {\n return this.aggregate(Functions.Greater);\n };\n Enumerable.prototype.min = function () {\n return this.aggregate(Functions.Lesser);\n };\n Enumerable.prototype.maxBy = function (keySelector) {\n if (keySelector === void 0) { keySelector = Functions.Identity; }\n return this.aggregate(function (a, b) { return (keySelector(a) > keySelector(b)) ? a : b; });\n };\n Enumerable.prototype.minBy = function (keySelector) {\n if (keySelector === void 0) { keySelector = Functions.Identity; }\n return this.aggregate(function (a, b) { return (keySelector(a) < keySelector(b)) ? a : b; });\n };\n Enumerable.prototype.sum = function (selector) {\n if (selector === void 0) { selector = Types_1.default.numberOrNaN; }\n var sum = 0;\n var sumInfinite = 0;\n this.forEach(function (x) {\n var value = selector(x);\n if (isNaN(value)) {\n sum = NaN;\n return false;\n }\n if (isFinite(value))\n sum += value;\n else\n sumInfinite +=\n value > 0 ?\n (+1) :\n (-1);\n });\n return isNaN(sum) ? NaN : (sumInfinite ? (sumInfinite * Infinity) : sum);\n };\n Enumerable.prototype.product = function (selector) {\n if (selector === void 0) { selector = Types_1.default.numberOrNaN; }\n var result = 1, exists = false;\n this.forEach(function (x, i) {\n exists = true;\n var value = selector(x, i);\n if (isNaN(value)) {\n result = NaN;\n return false;\n }\n if (value == 0) {\n result = 0;\n return false;\n }\n result *= value;\n });\n return (exists && isNaN(result)) ? NaN : result;\n };\n Enumerable.prototype.quotient = function (selector) {\n if (selector === void 0) { selector = Types_1.default.numberOrNaN; }\n var count = 0;\n var result = NaN;\n this.forEach(function (x, i) {\n var value = selector(x, i);\n count++;\n if (count === 1) {\n result = value;\n }\n else {\n if (isNaN(value) || value === 0 || !isFinite(value)) {\n result = NaN;\n return false;\n }\n result /= value;\n }\n });\n if (count === 1)\n result = NaN;\n return result;\n };\n Enumerable.prototype.last = function () {\n var _ = this;\n _.throwIfDisposed();\n var value = undefined;\n var found = false;\n _.forEach(function (x) {\n found = true;\n value = x;\n });\n if (!found)\n throw new Error(\"last:No element satisfies the condition.\");\n return value;\n };\n Enumerable.prototype.lastOrDefault = function (defaultValue) {\n if (defaultValue === void 0) { defaultValue = null; }\n var _ = this;\n _.throwIfDisposed();\n var value = undefined;\n var found = false;\n _.forEach(function (x) {\n found = true;\n value = x;\n });\n return (!found) ? defaultValue : value;\n };\n Enumerable.prototype.share = function () {\n return _super.prototype.share.call(this);\n };\n Enumerable.prototype.catchError = function (handler) {\n return _super.prototype.catchError.call(this, handler);\n };\n Enumerable.prototype.finallyAction = function (action) {\n return _super.prototype.finallyAction.call(this, action);\n };\n Enumerable.prototype.memoize = function () {\n var _ = this, disposed = !_.throwIfDisposed();\n var cache;\n var enumerator;\n return new Enumerable(function () {\n var index = 0;\n return new EnumeratorBase_1.default(function () {\n throwIfDisposed(disposed);\n if (!enumerator)\n enumerator = _.getEnumerator();\n if (!cache)\n cache = [];\n index = 0;\n }, function (yielder) {\n throwIfDisposed(disposed);\n var i = index++;\n if (i >= cache.length) {\n return (enumerator.moveNext())\n ? yielder.yieldReturn(cache[i] = enumerator.current)\n : false;\n }\n return yielder.yieldReturn(cache[i]);\n });\n }, function () {\n disposed = true;\n if (cache)\n cache.length = 0;\n cache = null;\n dispose_1.dispose(enumerator);\n enumerator = null;\n });\n };\n return Enumerable;\n }(InfiniteEnumerable));\n exports.Enumerable = Enumerable;\n var FiniteEnumerable = (function (_super) {\n __extends(FiniteEnumerable, _super);\n function FiniteEnumerable(enumeratorFactory, finalizer) {\n _super.call(this, enumeratorFactory, finalizer, false);\n }\n return FiniteEnumerable;\n }(Enumerable));\n exports.FiniteEnumerable = FiniteEnumerable;\n var ArrayEnumerable = (function (_super) {\n __extends(ArrayEnumerable, _super);\n function ArrayEnumerable(source) {\n _super.call(this, function () {\n _.throwIfDisposed();\n return new ArrayEnumerator_1.default(function () {\n _.throwIfDisposed(\"The underlying ArrayEnumerable was disposed.\", \"ArrayEnumerator\");\n return _._source;\n });\n });\n var _ = this;\n _._disposableObjectName = \"ArrayEnumerable\";\n _._source = source;\n }\n ArrayEnumerable.prototype._onDispose = function () {\n _super.prototype._onDispose.call(this);\n this._source = null;\n };\n Object.defineProperty(ArrayEnumerable.prototype, \"source\", {\n get: function () {\n return this._source;\n },\n enumerable: true,\n configurable: true\n });\n ArrayEnumerable.prototype.toArray = function () {\n var _ = this;\n _.throwIfDisposed();\n return Enumerator_1.toArray(_._source);\n };\n ArrayEnumerable.prototype.asEnumerable = function () {\n return new ArrayEnumerable(this._source);\n };\n ArrayEnumerable.prototype.forEach = function (action) {\n var _ = this;\n _.throwIfDisposed();\n Enumerator_1.forEach(_._source, action);\n };\n ArrayEnumerable.prototype.any = function (predicate) {\n var _ = this;\n _.throwIfDisposed();\n var source = _._source, len = source.length;\n return len && (!predicate || _super.prototype.any.call(this, predicate));\n };\n ArrayEnumerable.prototype.count = function (predicate) {\n var _ = this;\n _.throwIfDisposed();\n var source = _._source, len = source.length;\n return len && (predicate ? _super.prototype.count.call(this, predicate) : len);\n };\n ArrayEnumerable.prototype.elementAtOrDefault = function (index, defaultValue) {\n if (defaultValue === void 0) { defaultValue = null; }\n var _ = this;\n _.throwIfDisposed();\n Integer_1.default.assertZeroOrGreater(index, 'index');\n var source = _._source;\n return index < source.length\n ? source[index]\n : defaultValue;\n };\n ArrayEnumerable.prototype.last = function () {\n var _ = this;\n _.throwIfDisposed();\n var source = _._source, len = source.length;\n return (len)\n ? source[len - 1]\n : _super.prototype.last.call(this);\n };\n ArrayEnumerable.prototype.lastOrDefault = function (defaultValue) {\n if (defaultValue === void 0) { defaultValue = null; }\n var _ = this;\n _.throwIfDisposed();\n var source = _._source, len = source.length;\n return len\n ? source[len - 1]\n : defaultValue;\n };\n ArrayEnumerable.prototype.skip = function (count) {\n var _ = this;\n if (!(count > 0))\n return _;\n return new Enumerable(function () { return new ArrayEnumerator_1.default(function () { return _._source; }, count); });\n };\n ArrayEnumerable.prototype.takeExceptLast = function (count) {\n if (count === void 0) { count = 1; }\n var _ = this;\n return _.take(_._source.length - count);\n };\n ArrayEnumerable.prototype.skipToLast = function (count) {\n if (!(count > 0))\n return Enumerable.empty();\n var _ = this;\n if (!isFinite(count))\n return _;\n var len = _._source\n ? _._source.length\n : 0;\n return _.skip(len - count);\n };\n ArrayEnumerable.prototype.reverse = function () {\n var _ = this;\n return new Enumerable(function () { return new ArrayEnumerator_1.default(function () { return _._source; }, _._source\n ? (_._source.length - 1)\n : 0, -1); });\n };\n ArrayEnumerable.prototype.memoize = function () {\n return this.asEnumerable();\n };\n ArrayEnumerable.prototype.sequenceEqual = function (second, equalityComparer) {\n if (equalityComparer === void 0) { equalityComparer = Values.areEqual; }\n if (Types_1.default.isArrayLike(second))\n return Arrays.areEqual(this.source, second, true, equalityComparer);\n if (second instanceof ArrayEnumerable)\n return second.sequenceEqual(this.source, equalityComparer);\n return _super.prototype.sequenceEqual.call(this, second, equalityComparer);\n };\n ArrayEnumerable.prototype.toJoinedString = function (separator, selector) {\n if (separator === void 0) { separator = \"\"; }\n if (selector === void 0) { selector = Functions.Identity; }\n var s = this._source;\n return !selector && Array.isArray(s)\n ? s.join(separator)\n : _super.prototype.toJoinedString.call(this, separator, selector);\n };\n return ArrayEnumerable;\n }(FiniteEnumerable));\n var Grouping = (function (_super) {\n __extends(Grouping, _super);\n function Grouping(_groupKey, elements) {\n _super.call(this, elements);\n this._groupKey = _groupKey;\n }\n Object.defineProperty(Grouping.prototype, \"key\", {\n get: function () {\n return this._groupKey;\n },\n enumerable: true,\n configurable: true\n });\n return Grouping;\n }(ArrayEnumerable));\n var Lookup = (function () {\n function Lookup(_dictionary) {\n this._dictionary = _dictionary;\n }\n Object.defineProperty(Lookup.prototype, \"count\", {\n get: function () {\n return this._dictionary.count;\n },\n enumerable: true,\n configurable: true\n });\n Lookup.prototype.get = function (key) {\n return this._dictionary.getValue(key);\n };\n Lookup.prototype.contains = function (key) {\n return this._dictionary.containsKey(key);\n };\n Lookup.prototype.getEnumerator = function () {\n var _ = this;\n var enumerator;\n return new EnumeratorBase_1.default(function () {\n enumerator = _._dictionary.getEnumerator();\n }, function (yielder) {\n if (!enumerator.moveNext())\n return false;\n var current = enumerator.current;\n return yielder.yieldReturn(new Grouping(current.key, current.value));\n }, function () {\n dispose_1.dispose(enumerator);\n });\n };\n return Lookup;\n }());\n var OrderedEnumerable = (function (_super) {\n __extends(OrderedEnumerable, _super);\n function OrderedEnumerable(source, keySelector, order, parent, comparer) {\n if (comparer === void 0) { comparer = Values.compare; }\n _super.call(this, null);\n this.source = source;\n this.keySelector = keySelector;\n this.order = order;\n this.parent = parent;\n this.comparer = comparer;\n Enumerator_1.throwIfEndless(source && source.isEndless);\n }\n OrderedEnumerable.prototype.createOrderedEnumerable = function (keySelector, order) {\n return new OrderedEnumerable(this.source, keySelector, order, this);\n };\n OrderedEnumerable.prototype.thenBy = function (keySelector) {\n return this.createOrderedEnumerable(keySelector, 1);\n };\n OrderedEnumerable.prototype.thenUsing = function (comparison) {\n return new OrderedEnumerable(this.source, null, 1, this, comparison);\n };\n OrderedEnumerable.prototype.thenByDescending = function (keySelector) {\n return this.createOrderedEnumerable(keySelector, -1);\n };\n OrderedEnumerable.prototype.thenUsingReversed = function (comparison) {\n return new OrderedEnumerable(this.source, null, -1, this, comparison);\n };\n OrderedEnumerable.prototype.getEnumerator = function () {\n var _ = this;\n var buffer;\n var indexes;\n var index = 0;\n return new EnumeratorBase_1.default(function () {\n index = 0;\n buffer = Enumerable.toArray(_.source);\n indexes = createSortContext(_).generateSortedIndexes(buffer);\n }, function (yielder) {\n return (index < indexes.length)\n ? yielder.yieldReturn(buffer[indexes[index++]])\n : false;\n }, function () {\n if (buffer)\n buffer.length = 0;\n buffer = null;\n if (indexes)\n indexes.length = 0;\n indexes = null;\n }, false);\n };\n OrderedEnumerable.prototype._onDispose = function () {\n _super.prototype._onDispose.call(this);\n this.source = null;\n this.keySelector = null;\n this.order = null;\n this.parent = null;\n };\n return OrderedEnumerable;\n }(FiniteEnumerable));\n function nextEnumerator(queue, e) {\n if (e) {\n if (e.moveNext()) {\n queue.enqueue(e);\n }\n else {\n dispose_1.dispose(e);\n e = null;\n }\n }\n return e;\n }\n function createSortContext(orderedEnumerable, currentContext) {\n if (currentContext === void 0) { currentContext = null; }\n var context = new KeySortedContext_1.default(currentContext, orderedEnumerable.keySelector, orderedEnumerable.order, orderedEnumerable.comparer);\n if (orderedEnumerable.parent)\n return createSortContext(orderedEnumerable.parent, context);\n return context;\n }\n function throwIfDisposed(disposed) {\n if (disposed)\n throw new ObjectDisposedException_1.default(\"Enumerable\");\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Enumerable;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Original: http://linqjs.codeplex.com/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n///\r\n///\r\n///\r\n///\r\n///\r\n///\r\n\r\nimport * as Values from \"../System/Compare\";\r\nimport * as Arrays from \"../System/Collections/Array/Compare\";\r\nimport * as ArrayUtility from \"../System/Collections/Array/Utility\";\r\nimport {\r\n\tempty as EmptyEnumerator,\r\n\tfrom as enumeratorFrom,\r\n\tforEach,\r\n\ttoArray,\r\n\tmap,\r\n\tisEnumerable,\r\n\tthrowIfEndless\r\n} from \"../System/Collections/Enumeration/Enumerator\";\r\nimport Type from \"../System/Types\";\r\nimport Integer from \"../System/Integer\";\r\nimport BaseFunctions from \"../System/Functions\";\r\nimport ArrayEnumerator from \"../System/Collections/Enumeration/ArrayEnumerator\";\r\nimport EnumeratorBase from \"../System/Collections/Enumeration/EnumeratorBase\";\r\nimport Dictionary from \"../System/Collections/Dictionaries/Dictionary\";\r\nimport Queue from \"../System/Collections/Queue\";\r\nimport {dispose, using} from \"../System/Disposable/dispose\";\r\nimport DisposableBase from \"../System/Disposable/DisposableBase\";\r\nimport UnsupportedEnumerableException from \"../System/Collections/Enumeration/UnsupportedEnumerableException\";\r\nimport ObjectDisposedException from \"../System/Disposable/ObjectDisposedException\";\r\nimport KeySortedContext from \"../System/Collections/Sorting/KeySortedContext\";\r\nimport ArgumentNullException from \"../System/Exceptions/ArgumentNullException\";\r\nimport ArgumentOutOfRangeException from \"../System/Exceptions/ArgumentOutOfRangeException\";\r\n\r\n// #region Local Constants.\r\n\r\nconst INVALID_DEFAULT:any = {}; // create a private unique instance for referencing.\r\nconst VOID0:any = void 0;\r\nconst BREAK:(e:any)=>EnumerableAction = element => EnumerableAction.Break;\r\n\r\n// Leave internal to avoid accidental overwriting.\r\nclass LinqFunctions extends BaseFunctions\r\n{\r\n\tGreater(a:T, b:T)\r\n\t{\r\n\t\treturn a>b ? a : b;\r\n\t}\r\n\r\n\tLesser(a:T, b:T)\r\n\t{\r\n\t\treturn a\r\n{\r\n\treturn EmptyEnumerator;\r\n}\r\n\r\n// #endregion\r\n\r\n/**\r\n * Defined values for doAction.\r\n */\r\nexport const enum EnumerableAction\r\n{\r\n\tBreak = 0,\r\n\tReturn = 1,\r\n\tSkip = 2\r\n}\r\n\r\n/*\r\n * NOTE: About InfiniteEnumerable and Enumerable.\r\n * There may seem like there's extra overrides here and they may seem unnecessary.\r\n * But after closer inspection you'll see the type chain is retained and\r\n * infinite enumerables are prevented from having features that finite ones have.\r\n *\r\n * I'm not sure if it's the best option to just use overrides, but it honors the typing properly.\r\n */\r\n\r\nexport class InfiniteEnumerable\r\nextends DisposableBase implements IEnumerable\r\n{\r\n\tconstructor(\r\n\t\tprotected _enumeratorFactory:() => IEnumerator,\r\n\t\tfinalizer?:() => void)\r\n\t{\r\n\t\tsuper(finalizer);\r\n\t\tthis._isEndless = true;\r\n\t}\r\n\r\n\tprotected _isEndless:boolean;\r\n\tget isEndless():boolean\r\n\t{\r\n\t\treturn this._isEndless;\r\n\t}\r\n\r\n\t// #region IEnumerable Implementation...\r\n\tgetEnumerator():IEnumerator\r\n\t{\r\n\r\n\t\tthis.throwIfDisposed();\r\n\r\n\t\treturn this._enumeratorFactory();\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\t// #region IDisposable override...\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose(); // Just in case.\r\n\t\tthis._enumeratorFactory = null;\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\t// Return a default (unfiltered) enumerable.\r\n\tasEnumerable():InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\treturn new InfiniteEnumerable(() => _.getEnumerator());\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Similar to forEach, but executes an action for each time a value is enumerated.\r\n\t * If the action explicitly returns false or 0 (EnumerationAction.Break), the enumeration will complete.\r\n\t * If it returns a 2 (EnumerationAction.Skip) it will move on to the next item.\r\n\t * This also automatically handles disposing the enumerator.\r\n\t */\r\n\tdoAction(\r\n\t\taction:Action | Predicate | Selector | Selector,\r\n\t\tinitializer?:()=>void,\r\n\t\tisEndless:boolean = this.isEndless):InfiniteEnumerable\r\n\t{\r\n\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\tif(initializer) initializer();\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\t// May need a way to propagate isEndless\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar actionResult = action(enumerator.current, index++);\r\n\r\n\t\t\t\t\t\t\tif(actionResult===false || actionResult===EnumerableAction.Break)\r\n\t\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\r\n\t\t\t\t\t\t\tif(actionResult!==EnumerableAction.Skip) // || !== 2\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(enumerator.current);\r\n\r\n\t\t\t\t\t\t\t// If actionResult===2, then a signal for skip is received.\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\r\n\t\t\t},\r\n\t\t\t// Using a finalizer value reduces the chance of a circular reference\r\n\t\t\t// since we could simply reference the enumeration and check e.wasDisposed.\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t},\r\n\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tforce():void\r\n\t{\r\n\t\tthis.throwIfDisposed();\r\n\t\tthis.doAction(BREAK)\r\n\t\t\t.getEnumerator()\r\n\t\t\t.moveNext();\r\n\r\n\t}\r\n\r\n\t// #region Indexing/Paging methods.\r\n\tskip(count:number):InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tif(!isFinite(count)) // +Infinity equals skip all so return empty.\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\tInteger.assert(count, \"count\");\r\n\r\n\t\treturn this.doAction(\r\n\t\t\t(element:T, index?:number) =>\r\n\t\t\t\tindex\r\n\t{\r\n\t\tif(!(count>0)) // Out of bounds? Empty.\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tif(!isFinite(count))\r\n\t\t\tthrow new ArgumentOutOfRangeException('count', count, 'Must be finite.');\r\n\r\n\t\tInteger.assert(count, \"count\");\r\n\r\n\t\t// Once action returns false, the enumeration will stop.\r\n\t\treturn >_.doAction((element:T, index?:number) => index\r\n\t\t\t{\r\n\t\t\t\tvar i = 0;\r\n\t\t\t\twhile(e.moveNext())\r\n\t\t\t\t{\r\n\t\t\t\t\tif(i==n) return e.current;\r\n\t\t\t\t\ti++;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn defaultValue;\r\n\t\t\t});\r\n\t}\r\n\r\n\t/* Note: Unlike previous implementations, you could pass a predicate into these methods.\r\n\t * But since under the hood it ends up calling .where(predicate) anyway,\r\n\t * it may be better to remove this to allow for a cleaner signature/override.\r\n\t * JavaScript/TypeScript does not easily allow for a strict method interface like C#.\r\n\t * Having to write extra override logic is error prone and confusing to the consumer.\r\n\t * Removing the predicate here may also cause the consumer of this method to think more about how they structure their query.\r\n\t * The end all difference is that the user must declare .where(predicate) before .first(), .single(), or .last().\r\n\t * */\r\n\r\n\tfirst():T\r\n\t{\r\n\t\tvar v = this.firstOrDefault(INVALID_DEFAULT);\r\n\t\tif(v===INVALID_DEFAULT) throw new Error(\"first:The sequence is empty.\");\r\n\t\treturn v;\r\n\t}\r\n\r\n\tfirstOrDefault(defaultValue:T = null):T\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\treturn using(\r\n\t\t\tthis.getEnumerator(),\r\n\t\t\te=> e.moveNext() ? e.current : defaultValue\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tsingle():T\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\treturn using(\r\n\t\t\tthis.getEnumerator(),\r\n\t\t\te=>\r\n\t\t\t{\r\n\t\t\t\tif(e.moveNext())\r\n\t\t\t\t{\r\n\t\t\t\t\tvar value = e.current;\r\n\t\t\t\t\tif(!e.moveNext()) return value;\r\n\t\t\t\t\tthrow new Error(\"single:sequence contains more than one element.\");\r\n\t\t\t\t}\r\n\t\t\t\tthrow new Error(\"single:The sequence is empty.\");\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tsingleOrDefault(defaultValue:T = null):T\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\treturn using(\r\n\t\t\tthis.getEnumerator(),\r\n\t\t\te=>\r\n\t\t\t{\r\n\t\t\t\tif(e.moveNext())\r\n\t\t\t\t{\r\n\t\t\t\t\tvar value = e.current;\r\n\t\t\t\t\tif(!e.moveNext()) return value;\r\n\t\t\t\t}\r\n\t\t\t\treturn defaultValue;\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tany():boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\treturn using(\r\n\t\t\tthis.getEnumerator(),\r\n\t\t\te=> e.moveNext()\r\n\t\t);\r\n\t}\r\n\r\n\tisEmpty():boolean\r\n\t{\r\n\t\treturn !this.any();\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\r\n\t// #region Projection and Filtering Methods\r\n\r\n\ttraverseBreadthFirst(\r\n\t\tchildrenSelector:(element:T) => IEnumerableOrArray):Enumerable;\r\n\r\n\ttraverseBreadthFirst(\r\n\t\tchildrenSelector:(element:T|TNode) => IEnumerableOrArray):Enumerable;\r\n\r\n\ttraverseBreadthFirst(\r\n\t\tchildrenSelector:(element:T) => IEnumerableOrArray,\r\n\t\tresultSelector?:(element:T, nestLevel?:number) => TResult):Enumerable;\r\n\r\n\ttraverseBreadthFirst(\r\n\t\tchildrenSelector:(element:T|TNode) => IEnumerableOrArray,\r\n\t\tresultSelector?:(element:TNode, nestLevel?:number) => TResult):Enumerable;\r\n\r\n\ttraverseBreadthFirst(\r\n\t\tchildrenSelector:(element:T|TNode) => IEnumerableOrArray,\r\n\t\tresultSelector:(\r\n\t\t\telement:TNode,\r\n\t\t\tnestLevel?:number) => any = Functions.Identity):Enumerable\r\n\t{\r\n\t\tvar _ = this, isEndless = _._isEndless || null; // Is endless is not affirmative if false.\r\n\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar nestLevel:number = 0;\r\n\t\t\t\tvar buffer:any[], len:number;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tnestLevel = 0;\r\n\t\t\t\t\t\tbuffer = [];\r\n\t\t\t\t\t\tlen = 0;\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\twhile(true)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tif(enumerator.moveNext())\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tbuffer[len++] = enumerator.current;\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(resultSelector(enumerator.current, nestLevel));\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(!len)\r\n\t\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\r\n\t\t\t\t\t\t\tvar next = Enumerable\r\n\t\t\t\t\t\t\t\t.from(buffer)\r\n\t\t\t\t\t\t\t\t.selectMany(childrenSelector);\r\n\r\n\t\t\t\t\t\t\tif(!next.any())\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tnestLevel++;\r\n\t\t\t\t\t\t\t\tbuffer = [];\r\n\t\t\t\t\t\t\t\tlen = 0;\r\n\t\t\t\t\t\t\t\tenumerator.dispose();\r\n\t\t\t\t\t\t\t\tenumerator = next.getEnumerator();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t\tbuffer.length = 0;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n\ttraverseDepthFirst(\r\n\t\tchildrenSelector:(element:T) => IEnumerableOrArray):Enumerable;\r\n\r\n\ttraverseDepthFirst(\r\n\t\tchildrenSelector:(element:T|TNode) => IEnumerableOrArray):Enumerable;\r\n\r\n\ttraverseDepthFirst(\r\n\t\tchildrenSelector:(element:T) => IEnumerableOrArray,\r\n\t\tresultSelector?:(element:T, nestLevel?:number) => TResult):Enumerable;\r\n\r\n\ttraverseDepthFirst(\r\n\t\tchildrenSelector:(element:T|TNode) => IEnumerableOrArray,\r\n\t\tresultSelector?:(element:TNode, nestLevel?:number) => TResult):Enumerable;\r\n\r\n\ttraverseDepthFirst(\r\n\t\tchildrenSelector:(element:T|TNode) => IEnumerableOrArray,\r\n\t\tresultSelector:(\r\n\t\t\telement:TNode,\r\n\t\t\tnestLevel?:number) => any = Functions.Identity):Enumerable\r\n\t{\r\n\t\tvar _ = this, isEndless = _._isEndless || null; // Is endless is not affirmative if false.\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\t// Dev Note: May want to consider using an actual stack and not an array.\r\n\t\t\t\tvar enumeratorStack:IEnumerator[] = [];\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar len:number; // Avoid using push/pop since they query .length every time and can be slower.\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tlen = 0;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\twhile(true)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tif(enumerator.moveNext())\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tlet value = resultSelector(enumerator.current, len);\r\n\t\t\t\t\t\t\t\tenumeratorStack[len++] = enumerator;\r\n\t\t\t\t\t\t\t\tlet e = Enumerable.fromAny(childrenSelector(enumerator.current));\r\n\t\t\t\t\t\t\t\tenumerator = e ? e.getEnumerator() : EmptyEnumerator;\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(value);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(len==0) return false;\r\n\r\n\t\t\t\t\t\t\tenumerator.dispose();\r\n\t\t\t\t\t\t\tenumerator = enumeratorStack[--len];\r\n\t\t\t\t\t\t\tenumeratorStack.length = len;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttry\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tfinally\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tdispose.these(enumeratorStack);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tflatten():Enumerable\r\n\t{\r\n\t\tvar _ = this, isEndless = _._isEndless || null; // Is endless is not affirmative if false.;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar middleEnumerator:IEnumerator = null;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\twhile(true)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tif(middleEnumerator)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tif(middleEnumerator.moveNext())\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\treturn yielder.yieldReturn(middleEnumerator.current);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tmiddleEnumerator.dispose();\r\n\t\t\t\t\t\t\t\t\tmiddleEnumerator = null;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(enumerator.moveNext())\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tvar c = enumerator.current;\r\n\t\t\t\t\t\t\t\t// Because strings are enumerable, we can get stuck in an infinite loop.\r\n\t\t\t\t\t\t\t\t// Treat strings as primitives here.\r\n\t\t\t\t\t\t\t\tvar e = !Type.isString(c) && Enumerable.fromAny(c);\r\n\t\t\t\t\t\t\t\tif(e)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tmiddleEnumerator\r\n\t\t\t\t\t\t\t\t\t\t= e\r\n\t\t\t\t\t\t\t\t\t\t.selectMany(Functions.Identity)\r\n\t\t\t\t\t\t\t\t\t\t.flatten()\r\n\t\t\t\t\t\t\t\t\t\t.getEnumerator();\r\n\t\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\treturn yielder.yieldReturn(c);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator, middleEnumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tpairwise(selector:(prev:T, current:T) => TSelect):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tenumerator.moveNext();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar prev = enumerator.current;\r\n\t\t\t\t\t\treturn enumerator.moveNext()\r\n\t\t\t\t\t\t\t&& yielder.yieldReturn(selector(prev, enumerator.current));\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\tscan(func:(a:T, b:T) => T, seed?:T):Enumerable\r\n\t{\r\n\r\n\t\tvar isUseSeed = seed!==VOID0; // For now...\r\n\t\tvar _ = this;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar value:T;\r\n\t\t\t\tvar isFirst:boolean;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tisFirst = true;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(isFirst)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tisFirst = false;\r\n\t\t\t\t\t\t\t//noinspection JSUnusedAssignment\r\n\t\t\t\t\t\t\treturn isUseSeed\r\n\t\t\t\t\t\t\t\t? yielder.yieldReturn(value = seed)\r\n\t\t\t\t\t\t\t\t: enumerator.moveNext() && yielder.yieldReturn(value\r\n\t\t\t\t\t\t\t\t= enumerator.current);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn (enumerator.moveNext())\r\n\t\t\t\t\t\t\t? yielder.yieldReturn(value = func(value, enumerator.current))\r\n\t\t\t\t\t\t\t: false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\tselect(selector:Selector):InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\treturn enumerator.moveNext()\r\n\t\t\t\t\t\t\t? yielder.yieldReturn(selector(enumerator.current, index++))\r\n\t\t\t\t\t\t\t: yielder.yieldBreak();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t},\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\t/*\r\n\tpublic static IEnumerable SelectMany(\r\n\t\tthis IEnumerable source,\r\n\t\tFunc> collectionSelector,\r\n\t\tFunc resultSelector)\r\n\t */\r\n\r\n\tprotected _selectMany(\r\n\t\tcollectionSelector:Selector>,\r\n\t\tresultSelector?:(collection:T, element:TElement) => TResult):Enumerable\r\n\t{\r\n\t\tvar _ = this, isEndless = _._isEndless || null; // Do second enumeration, it will be indeterminate if false.\r\n\t\tif(!resultSelector)\r\n\t\t\tresultSelector = (a:T, b:any) => b;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar middleEnumerator:IEnumerator;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tmiddleEnumerator = undefined;\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\r\n\t\t\t\t\t\t// Just started, and nothing to enumerate? End.\r\n\t\t\t\t\t\tif(middleEnumerator===VOID0 && !enumerator.moveNext())\r\n\t\t\t\t\t\t\treturn false;\r\n\r\n\t\t\t\t\t\t// moveNext has been called at least once...\r\n\t\t\t\t\t\tdo\r\n\t\t\t\t\t\t{\r\n\r\n\t\t\t\t\t\t\t// Initialize middle if there isn't one.\r\n\t\t\t\t\t\t\tif(!middleEnumerator)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tvar middleSeq = collectionSelector(enumerator.current, index++);\r\n\r\n\t\t\t\t\t\t\t\t// Collection is null? Skip it...\r\n\t\t\t\t\t\t\t\tif(!middleSeq)\r\n\t\t\t\t\t\t\t\t\tcontinue;\r\n\r\n\t\t\t\t\t\t\t\tmiddleEnumerator = enumeratorFrom(middleSeq);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(middleEnumerator.moveNext())\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(\r\n\t\t\t\t\t\t\t\t\tresultSelector(\r\n\t\t\t\t\t\t\t\t\t\tenumerator.current, middleEnumerator.current\r\n\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t\t// else no more in this middle? Then clear and reset for next...\r\n\r\n\t\t\t\t\t\t\tmiddleEnumerator.dispose();\r\n\t\t\t\t\t\t\tmiddleEnumerator = null;\r\n\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\twhile(enumerator.moveNext());\r\n\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator, middleEnumerator);\r\n\t\t\t\t\t\tenumerator = null;\r\n\t\t\t\t\t\tmiddleEnumerator = null;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\tselectMany(\r\n\t\tcollectionSelector:Selector>):InfiniteEnumerable;\r\n\r\n\tselectMany(\r\n\t\tcollectionSelector:Selector>,\r\n\t\tresultSelector:(collection:T, element:TElement) => TResult):InfiniteEnumerable;\r\n\r\n\tselectMany(\r\n\t\tcollectionSelector:Selector>,\r\n\t\tresultSelector?:(collection:T, element:any) => TResult):InfiniteEnumerable\r\n\t{\r\n\t\treturn this._selectMany(collectionSelector, resultSelector);\r\n\t}\r\n\r\n\tprotected _choose(selector:Selector):Enumerable\r\n\t{\r\n\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar result = selector(enumerator.current, index++);\r\n\t\t\t\t\t\t\tif(result!==null && result!==VOID0)\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(result);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t},\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns selected values that are not null or undefined.\r\n\t */\r\n\tchoose():InfiniteEnumerable;\r\n\tchoose(selector?:Selector):InfiniteEnumerable\r\n\tchoose(selector:Selector = Functions.Identity):InfiniteEnumerable\r\n\t{\r\n\t\treturn this._choose(selector)\r\n\t}\r\n\r\n\twhere(predicate:Predicate):InfiniteEnumerable\r\n\t{\r\n\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tif(predicate(enumerator.current, index++))\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(enumerator.current);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t},\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\r\n\t}\r\n\r\n\tofType(type:{ new (...params:any[]):TType }):InfiniteEnumerable;\r\n\tofType(type:any):InfiniteEnumerable\r\n\t{\r\n\t\tvar typeName:string;\r\n\t\tswitch(type)\r\n\t\t{\r\n\t\t\tcase Number:\r\n\t\t\t\ttypeName = Type.NUMBER;\r\n\t\t\t\tbreak;\r\n\t\t\tcase String:\r\n\t\t\t\ttypeName = Type.STRING;\r\n\t\t\t\tbreak;\r\n\t\t\tcase Boolean:\r\n\t\t\t\ttypeName = Type.BOOLEAN;\r\n\t\t\t\tbreak;\r\n\t\t\tcase Function:\r\n\t\t\t\ttypeName = Type.FUNCTION;\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\treturn >this\r\n\t\t\t\t\t.where(x=>x instanceof type);\r\n\t\t}\r\n\t\treturn >this\r\n\t\t\t.choose()\r\n\t\t\t.where(x=>(typeof x)===typeName);\r\n\t}\r\n\r\n\texcept(\r\n\t\tsecond:IEnumerableOrArray,\r\n\t\tcompareSelector?:Selector):InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar keys:Dictionary;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tkeys = new Dictionary(compareSelector);\r\n\t\t\t\t\t\tif(second)\r\n\t\t\t\t\t\t\tforEach(second, key => keys.addByKeyValue(key, true));\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar current = enumerator.current;\r\n\t\t\t\t\t\t\tif(!keys.containsKey(current))\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tkeys.addByKeyValue(current, true);\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(current);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t\tkeys.clear();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t},\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\tdistinct(compareSelector?:(value:T) => T):InfiniteEnumerable\r\n\t{\r\n\t\treturn this.except(null, compareSelector);\r\n\t}\r\n\r\n\t// [0,0,0,1,1,1,2,2,2,0,0,0,1,1] results in [0,1,2,0,1];\r\n\tdistinctUntilChanged(compareSelector:Selector = Functions.Identity):InfiniteEnumerable\r\n\t{\r\n\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar compareKey:TCompare;\r\n\t\t\t\tvar initial:boolean = true;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar key = compareSelector(enumerator.current);\r\n\r\n\t\t\t\t\t\t\tif(initial)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tinitial = false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse if(Values.areEqual(compareKey,key))\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tcompareKey = key;\r\n\t\t\t\t\t\t\treturn yielder.yieldReturn(enumerator.current);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t},\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Returns a single default value if empty.\r\n\t * @param defaultValue\r\n\t * @returns {Enumerable}\r\n\t */\r\n\tdefaultIfEmpty(defaultValue:T = null):Enumerable\r\n\t{\r\n\t\tvar _ = this, disposed:boolean = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar isFirst:boolean;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tisFirst = true;\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\tif(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tisFirst = false;\r\n\t\t\t\t\t\t\treturn yielder.yieldReturn(enumerator.current);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if(isFirst)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tisFirst = false;\r\n\t\t\t\t\t\t\treturn yielder.yieldReturn(defaultValue);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\tzip(\r\n\t\tsecond:IEnumerableOrArray,\r\n\t\tresultSelector:(first:T, second:TSecond, index?:number) => TResult):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar firstEnumerator:IEnumerator;\r\n\t\t\t\tvar secondEnumerator:IEnumerator;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tfirstEnumerator = _.getEnumerator();\r\n\t\t\t\t\t\tsecondEnumerator = enumeratorFrom(second);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=> firstEnumerator.moveNext()\r\n\t\t\t\t\t&& secondEnumerator.moveNext()\r\n\t\t\t\t\t&& yielder.yieldReturn(resultSelector(firstEnumerator.current, secondEnumerator.current, index++)),\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(firstEnumerator, secondEnumerator);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tzipMultiple(\r\n\t\tsecond:IArray>,\r\n\t\tresultSelector:(first:T, second:TSecond, index?:number) => TResult):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tif(!second.length)\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar secondTemp:Queue;\r\n\t\t\t\tvar firstEnumerator:IEnumerator;\r\n\t\t\t\tvar secondEnumerator:IEnumerator;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tsecondTemp = new Queue(second);\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tfirstEnumerator = _.getEnumerator();\r\n\t\t\t\t\t\tsecondEnumerator = null;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(firstEnumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\twhile(true)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\twhile(!secondEnumerator)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tif(secondTemp.count)\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\tvar next = secondTemp.dequeue();\r\n\t\t\t\t\t\t\t\t\t\tif(next) // In case by chance next is null, then try again.\r\n\t\t\t\t\t\t\t\t\t\t\tsecondEnumerator = enumeratorFrom(next);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif(secondEnumerator.moveNext())\r\n\t\t\t\t\t\t\t\t\treturn yielder.yieldReturn(\r\n\t\t\t\t\t\t\t\t\t\tresultSelector(firstEnumerator.current, secondEnumerator.current, index++)\r\n\t\t\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t\t\tsecondEnumerator.dispose();\r\n\t\t\t\t\t\t\t\tsecondEnumerator = null;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(firstEnumerator, secondTemp);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\r\n\t// #region Join Methods\r\n\r\n\tjoin(\r\n\t\tinner:IEnumerableOrArray,\r\n\t\touterKeySelector:Selector,\r\n\t\tinnerKeySelector:Selector,\r\n\t\tresultSelector:(outer:T, inner:TInner) => TResult,\r\n\t\tcompareSelector:Selector = Functions.Identity):Enumerable\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar outerEnumerator:IEnumerator;\r\n\t\t\t\tvar lookup:ILookup;\r\n\t\t\t\tvar innerElements:TInner[] = null;\r\n\t\t\t\tvar innerCount:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\touterEnumerator = _.getEnumerator();\r\n\t\t\t\t\t\tlookup = Enumerable.from(inner)\r\n\t\t\t\t\t\t\t.toLookup(innerKeySelector, Functions.Identity, compareSelector);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\twhile(true)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tif(innerElements!=null)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tvar innerElement = innerElements[innerCount++];\r\n\t\t\t\t\t\t\t\tif(innerElement!==VOID0)\r\n\t\t\t\t\t\t\t\t\treturn yielder.yieldReturn(resultSelector(outerEnumerator.current, innerElement));\r\n\r\n\t\t\t\t\t\t\t\tinnerElement = null;\r\n\t\t\t\t\t\t\t\tinnerCount = 0;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(outerEnumerator.moveNext())\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tvar key = outerKeySelector(outerEnumerator.current);\r\n\t\t\t\t\t\t\t\tinnerElements = lookup.get(key);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(outerEnumerator);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tgroupJoin(\r\n\t\tinner:IEnumerableOrArray,\r\n\t\touterKeySelector:Selector,\r\n\t\tinnerKeySelector:Selector,\r\n\t\tresultSelector:(outer:T, inner:TInner[]) => TResult,\r\n\t\tcompareSelector:Selector = Functions.Identity):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar lookup:ILookup = null;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tlookup = Enumerable.from(inner)\r\n\t\t\t\t\t\t\t.toLookup(innerKeySelector, Functions.Identity, compareSelector);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\tenumerator.moveNext()\r\n\t\t\t\t\t&& yielder.yieldReturn(\r\n\t\t\t\t\t\tresultSelector(\r\n\t\t\t\t\t\t\tenumerator.current,\r\n\t\t\t\t\t\t\tlookup.get(outerKeySelector(enumerator.current))\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t),\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tmerge(enumerables:IArray>):InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this, isEndless = _._isEndless || null;\r\n\r\n\t\tif(!enumerables || enumerables.length==0)\r\n\t\t\treturn _;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar queue:Queue>;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t// 1) First get our values...\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tqueue = new Queue>(enumerables);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder) =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\twhile(true)\r\n\t\t\t\t\t\t{\r\n\r\n\t\t\t\t\t\t\twhile(!enumerator && queue.count)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tenumerator = enumeratorFrom(queue.dequeue()); // 4) Keep going and on to step 2. Else fall through to yieldBreak().\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(enumerator && enumerator.moveNext()) // 2) Keep returning until done.\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(enumerator.current);\r\n\r\n\t\t\t\t\t\t\tif(enumerator) // 3) Dispose and reset for next.\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tenumerator.dispose();\r\n\t\t\t\t\t\t\t\tenumerator = null;\r\n\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator, queue); // Just in case this gets disposed early.\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\tconcat(...enumerables:Array>):InfiniteEnumerable\r\n\t{\r\n\t\treturn this.merge(enumerables);\r\n\t}\r\n\r\n\r\n\tunion(\r\n\t\tsecond:IEnumerableOrArray,\r\n\t\tcompareSelector:Selector = Functions.Identity):Enumerable\r\n\t{\r\n\t\tvar _ = this, isEndless = _._isEndless || null;\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar firstEnumerator:IEnumerator;\r\n\t\t\t\tvar secondEnumerator:IEnumerator;\r\n\t\t\t\tvar keys:Dictionary;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfirstEnumerator = _.getEnumerator();\r\n\t\t\t\t\t\tkeys = new Dictionary(compareSelector); // Acting as a HashSet.\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar current:T;\r\n\t\t\t\t\t\tif(secondEnumerator===VOID0)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\twhile(firstEnumerator.moveNext())\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tcurrent = firstEnumerator.current;\r\n\t\t\t\t\t\t\t\tif(!keys.containsKey(current))\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tkeys.addByKeyValue(current, null);\r\n\t\t\t\t\t\t\t\t\treturn yielder.yieldReturn(current);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tsecondEnumerator = enumeratorFrom(second);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\twhile(secondEnumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tcurrent = secondEnumerator.current;\r\n\t\t\t\t\t\t\tif(!keys.containsKey(current))\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tkeys.addByKeyValue(current, null);\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(current);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(firstEnumerator, secondEnumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\tinsertAt(index:number, other:IEnumerableOrArray):Enumerable\r\n\t{\r\n\t\tInteger.assertZeroOrGreater(index,'index');\r\n\t\tvar n:number = index;\r\n\r\n\t\tvar _ = this, isEndless = _._isEndless || null;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\r\n\t\t\t\tvar firstEnumerator:IEnumerator;\r\n\t\t\t\tvar secondEnumerator:IEnumerator;\r\n\r\n\t\t\t\tvar count:number = 0;\r\n\t\t\t\tvar isEnumerated:boolean = false;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcount = 0;\r\n\t\t\t\t\t\tfirstEnumerator = _.getEnumerator();\r\n\t\t\t\t\t\tsecondEnumerator = enumeratorFrom(other);\r\n\t\t\t\t\t\tisEnumerated = false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder) =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(count==n)\r\n\t\t\t\t\t\t{ // Inserting?\r\n\t\t\t\t\t\t\tisEnumerated = true;\r\n\t\t\t\t\t\t\tif(secondEnumerator.moveNext())\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(secondEnumerator.current);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif(firstEnumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tcount++;\r\n\t\t\t\t\t\t\treturn yielder.yieldReturn(firstEnumerator.current);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn !isEnumerated\r\n\t\t\t\t\t\t\t&& secondEnumerator.moveNext()\r\n\t\t\t\t\t\t\t&& yielder.yieldReturn(secondEnumerator.current);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(firstEnumerator, secondEnumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n\talternateMultiple(sequence:IEnumerableOrArray):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar buffer:T,\r\n\t\t\t\t mode:EnumerableAction,\r\n\t\t\t\t enumerator:IEnumerator,\r\n\t\t\t\t alternateEnumerator:IEnumerator;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t// Instead of recalling getEnumerator every time, just reset the existing one.\r\n\t\t\t\t\t\talternateEnumerator = new ArrayEnumerator(\r\n\t\t\t\t\t\t\tEnumerable.toArray(sequence)\r\n\t\t\t\t\t\t); // Freeze\r\n\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\r\n\t\t\t\t\t\tvar hasAtLeastOne = enumerator.moveNext();\r\n\t\t\t\t\t\tmode = hasAtLeastOne\r\n\t\t\t\t\t\t\t? EnumerableAction.Return\r\n\t\t\t\t\t\t\t: EnumerableAction.Break;\r\n\r\n\t\t\t\t\t\tif(hasAtLeastOne)\r\n\t\t\t\t\t\t\tbuffer = enumerator.current;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tswitch(mode)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tcase EnumerableAction.Break: // We're done?\r\n\t\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\r\n\t\t\t\t\t\t\tcase EnumerableAction.Skip:\r\n\t\t\t\t\t\t\t\tif(alternateEnumerator.moveNext())\r\n\t\t\t\t\t\t\t\t\treturn yielder.yieldReturn(alternateEnumerator.current);\r\n\t\t\t\t\t\t\t\talternateEnumerator.reset();\r\n\t\t\t\t\t\t\t\tmode = EnumerableAction.Return;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar latest = buffer;\r\n\r\n\t\t\t\t\t\t// Set up the next round...\r\n\r\n\t\t\t\t\t\t// Is there another one? Set the buffer and setup instruct for the next one to be the alternate.\r\n\t\t\t\t\t\tvar another = enumerator.moveNext();\r\n\t\t\t\t\t\tmode = another\r\n\t\t\t\t\t\t\t? EnumerableAction.Skip\r\n\t\t\t\t\t\t\t: EnumerableAction.Break;\r\n\r\n\t\t\t\t\t\tif(another)\r\n\t\t\t\t\t\t\tbuffer = enumerator.current;\r\n\r\n\t\t\t\t\t\treturn yielder.yieldReturn(latest);\r\n\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator, alternateEnumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\talternateSingle(value:T):Enumerable\r\n\t{\r\n\t\treturn this.alternateMultiple(Enumerable.make(value));\r\n\t}\r\n\r\n\talternate(...sequence:T[]):Enumerable\r\n\t{\r\n\t\treturn this.alternateMultiple(sequence);\r\n\t}\r\n\r\n\r\n\t// #region Error Handling\r\n\tcatchError(handler:(e:any) => void):InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttry\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcatch(e)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t// Don't init...\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttry\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\t\tif(enumerator.moveNext())\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(enumerator.current);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcatch(e)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\thandler(e);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tfinallyAction(action:() => void):InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\treturn (enumerator.moveNext())\r\n\t\t\t\t\t\t\t? yielder.yieldReturn(enumerator.current)\r\n\t\t\t\t\t\t\t: false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttry\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tfinally\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\taction();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tbuffer(size:number):InfiniteEnumerable\r\n\t{\r\n\t\tif(size<1 || !isFinite(size))\r\n\t\t\tthrow new Error(\"Invalid buffer size.\");\r\n\r\n\t\tInteger.assert(size, \"size\");\r\n\r\n\t\tvar _ = this, len:number;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar array:T[] = ArrayUtility.initialize(size);\r\n\t\t\t\t\t\tlen = 0;\r\n\t\t\t\t\t\twhile(len\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tshare():InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar sharedEnumerator:IEnumerator;\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\treturn sharedEnumerator || (sharedEnumerator = _.getEnumerator());\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdispose(sharedEnumerator);\r\n\t\t\t},\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n}\r\n\r\n\r\n/**\r\n * Enumerable is a wrapper class that allows more primitive enumerables to exhibit LINQ behavior.\r\n *\r\n * In C# Enumerable is not an instance but has extensions for IEnumerable.\r\n * In this case, we use Enumerable as the underlying class that is being chained.\r\n */\r\nexport class Enumerable\r\nextends InfiniteEnumerable\r\n{\r\n\r\n\tconstructor(\r\n\t\tenumeratorFactory:() => IEnumerator,\r\n\t\tfinalizer?:() => void,\r\n\t\tisEndless:boolean = null)\r\n\t{\r\n\t\tsuper(enumeratorFactory, finalizer);\r\n\t\tthis._isEndless = isEndless;\r\n\t}\r\n\r\n\t/**\r\n\t * Universal method for converting a primitive enumerables into a LINQ enabled ones.\r\n\t *\r\n\t * Is not limited to TypeScript usages.\r\n\t */\r\n\tstatic from(source:IEnumerableOrArray):Enumerable\r\n\t{\r\n\t\tvar e = Enumerable.fromAny(source);\r\n\t\tif(!e) throw new UnsupportedEnumerableException();\r\n\t\treturn e;\r\n\t}\r\n\r\n\tstatic fromAny(\r\n\t\tsource:any):Enumerable\r\n\r\n\tstatic fromAny(\r\n\t\tsource:IEnumerableOrArray,\r\n\t\tdefaultEnumerable?:Enumerable):Enumerable\r\n\r\n\tstatic fromAny(\r\n\t\tsource:any,\r\n\t\tdefaultEnumerable?:Enumerable):Enumerable\r\n\r\n\tstatic fromAny(\r\n\t\tsource:any,\r\n\t\tdefaultEnumerable:Enumerable = null):Enumerable\r\n\t{\r\n\t\tif(Type.isObject(source) || Type.isString(source))\r\n\t\t{\r\n\t\t\tif(source instanceof Enumerable)\r\n\t\t\t\treturn source;\r\n\r\n\t\t\tif(Type.isArrayLike(source))\r\n\t\t\t\treturn new ArrayEnumerable(source);\r\n\r\n\t\t\tif(isEnumerable(source))\r\n\t\t\t\treturn new Enumerable(\r\n\t\t\t\t\t()=>source.getEnumerator(),\r\n\t\t\t\t\tnull, source.isEndless);\r\n\t\t}\r\n\r\n\t\treturn defaultEnumerable;\r\n\t}\r\n\r\n\tstatic fromOrEmpty(source:IEnumerableOrArray):Enumerable\r\n\t{\r\n\t\treturn Enumerable.fromAny(source) || Enumerable.empty();\r\n\t}\r\n\r\n\t/**\r\n\t * Static helper for converting enumerables to an array.\r\n\t * @param source\r\n\t * @returns {any}\r\n\t */\r\n\tstatic toArray(source:IEnumerableOrArray):T[]\r\n\t{\r\n\t\tif(source instanceof Enumerable)\r\n\t\t\treturn source.toArray();\r\n\r\n\t\treturn toArray(source);\r\n\t}\r\n\r\n\r\n\t//////////////////////////////////////////\r\n\t// #region Static Methods...\r\n\tstatic choice(values:IArray):InfiniteEnumerable\r\n\t{\r\n\t\tvar len = values && values.length;\r\n\t\t// We could return empty if no length, but that would break the typing and produce unexpected results.\r\n\t\t// Enforcing that there must be at least 1 choice is key.\r\n\t\tif(!len || !isFinite(len))\r\n\t\t\tthrow new ArgumentOutOfRangeException('length', length);\r\n\r\n\t\treturn new InfiniteEnumerable(\r\n\t\t\t() => new EnumeratorBase(\r\n\t\t\t\tnull,\r\n\t\t\t\t(yielder)=>\r\n\t\t\t\t\tyielder.yieldReturn(Integer.random.select(values)),\r\n\t\t\t\ttrue // Is endless!\r\n\t\t\t)\r\n\t\t);\r\n\t}\r\n\r\n\tstatic chooseFrom(...args:T[]):InfiniteEnumerable\r\n\t{\r\n\t\treturn Enumerable.choice(args);\r\n\t}\r\n\r\n\tstatic cycle(values:IArray):InfiniteEnumerable\r\n\t{\r\n\t\tvar len = values && values.length;\r\n\t\t// We could return empty if no length, but that would break the typing and produce unexpected results.\r\n\t\t// Enforcing that there must be at least 1 choice is key.\r\n\t\tif(!len || !isFinite(len))\r\n\t\t\tthrow new ArgumentOutOfRangeException('length', length);\r\n\r\n\t\treturn new InfiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar index:number = 0;\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t}, // Reinitialize the value just in case the enumerator is restarted.\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(index>=values.length) index = 0;\r\n\t\t\t\t\t\treturn yielder.yieldReturn(values[index++]);\r\n\t\t\t\t\t},\r\n\t\t\t\t\ttrue // Is endless!\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic cycleThrough(...args:T[]):InfiniteEnumerable\r\n\t{\r\n\t\treturn Enumerable.cycle(args);\r\n\t}\r\n\r\n\tstatic empty():FiniteEnumerable\r\n\t{\r\n\t\t// Could be single static instance, but for safety, we'll make a new one.\r\n\t\treturn new FiniteEnumerable(getEmptyEnumerator);\r\n\t}\r\n\r\n\tstatic repeat(element:T):InfiniteEnumerable;\r\n\tstatic repeat(element:T, count:number):FiniteEnumerable;\r\n\tstatic repeat(element:T, count:number = Infinity):Enumerable\r\n\t{\r\n\t\tif(!(count>0))\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\treturn isFinite(count) && Integer.assert(count, \"count\")\r\n\t\t\t? new FiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar c:number = count;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() => { index = 0; },\r\n\t\t\t\t\t(yielder)=> (index++(\r\n\t\t\t() =>\r\n\t\t\t\tnew EnumeratorBase(\r\n\t\t\t\t\tnull,\r\n\t\t\t\t\t(yielder)=> yielder.yieldReturn(element),\r\n\t\t\t\t\ttrue // Is endless!\r\n\t\t\t\t)\r\n\t\t);\r\n\t}\r\n\r\n\t// Note: this enumeration is endless but can be disposed/cancelled and finalized.\r\n\tstatic repeatWithFinalize(\r\n\t\tinitializer:() => T,\r\n\t\tfinalizer:(element:T) => void):InfiniteEnumerable\r\n\t{\r\n\r\n\t\treturn new InfiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar element:T;\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\telement = initializer();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=> yielder.yieldReturn(element),\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfinalizer(element);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\ttrue // Is endless!\r\n\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * Creates an enumerable of one element.\r\n\t * @param element\r\n\t * @returns {FiniteEnumerable}\r\n\t */\r\n\tstatic make(element:T):FiniteEnumerable\r\n\t{\r\n\t\treturn Enumerable.repeat(element, 1);\r\n\t}\r\n\r\n\t// start and step can be other than integer.\r\n\r\n\tstatic range(\r\n\t\tstart:number,\r\n\t\tcount:number,\r\n\t\tstep:number = 1):FiniteEnumerable\r\n\t{\r\n\t\tif(!isFinite(start))\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"start\", start, \"Must be a finite number.\");\r\n\r\n\t\tif(!(count>0))\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\tif(!step)\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"step\", step, \"Must be a valid value\");\r\n\r\n\t\tif(!isFinite(step))\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"step\", step, \"Must be a finite number.\");\r\n\r\n\t\tInteger.assert(count, \"count\");\r\n\r\n\t\treturn new FiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar value:number;\r\n\t\t\t\tvar c:number = count; // Force integer evaluation.\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tvalue = start;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar result:boolean =\r\n\t\t\t\t\t\t\t index++\r\n\t{\r\n\t\tstep = Math.abs(step)* -1;\r\n\r\n\t\treturn Enumerable.range(start, count, step);\r\n\t}\r\n\r\n\t// step = -1 behaves the same as toNegativeInfinity;\r\n\tstatic toInfinity(\r\n\t\tstart:number = 0,\r\n\t\tstep:number = 1):InfiniteEnumerable\r\n\t{\r\n\t\tif(!isFinite(start))\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"start\", start, \"Must be a finite number.\");\r\n\r\n\t\tif(!step)\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"step\", step, \"Must be a valid value\");\r\n\r\n\t\tif(!isFinite(step))\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"step\", step, \"Must be a finite number.\");\r\n\r\n\t\treturn new InfiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar value:number;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvalue = start;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar current:number = value;\r\n\t\t\t\t\t\tvalue += step;\r\n\t\t\t\t\t\treturn yielder.yieldReturn(current);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\ttrue // Is endless!\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic toNegativeInfinity(\r\n\t\tstart:number = 0,\r\n\t\tstep:number = 1):InfiniteEnumerable\r\n\t{\r\n\t\treturn Enumerable.toInfinity(start, -step);\r\n\t}\r\n\r\n\tstatic rangeTo(\r\n\t\tstart:number,\r\n\t\tto:number,\r\n\t\tstep:number = 1):FiniteEnumerable\r\n\t{\r\n\t\tif(isNaN(to) || !isFinite(to))\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"to\", to, \"Must be a finite number.\");\r\n\r\n\t\tif(step && !isFinite(step))\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"step\", step, \"Must be a finite non-zero number.\");\r\n\r\n\t\t// This way we adjust for the delta from start and to so the user can say +/- step and it will work as expected.\r\n\t\tstep = Math.abs(step);\r\n\r\n\t\treturn new FiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar value:number;\r\n\r\n\t\t\t\treturn new EnumeratorBase(() => { value = start; },\r\n\t\t\t\t\tstart)=>\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar result:boolean = value<=to && yielder.yieldReturn(value);\r\n\r\n\t\t\t\t\t\t\tif(result)\r\n\t\t\t\t\t\t\t\tvalue += step;\r\n\r\n\t\t\t\t\t\t\treturn result;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t:\r\n\t\t\t\t\t\t(yielder:IYield)=>\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar result:boolean = value>=to && yielder.yieldReturn(value);\r\n\r\n\t\t\t\t\t\t\tif(result)\r\n\t\t\t\t\t\t\t\tvalue -= step;\r\n\r\n\t\t\t\t\t\t\treturn result;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t, false);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic matches(input:string, pattern:any, flags:string = \"\"):FiniteEnumerable\r\n\t{\r\n\t\tif(input===null || input===VOID0)\r\n\t\t\tthrow new ArgumentNullException(\"input\");\r\n\t\tvar type = typeof input;\r\n\t\tif(type!=Type.STRING)\r\n\t\t\tthrow new Error(\"Cannot exec RegExp matches of type '\" + type + \"'.\");\r\n\r\n\t\tif(pattern instanceof RegExp)\r\n\t\t{\r\n\t\t\tflags += (pattern.ignoreCase) ? \"i\" : \"\";\r\n\t\t\tflags += (pattern.multiline) ? \"m\" : \"\";\r\n\t\t\tpattern = pattern.source;\r\n\t\t}\r\n\r\n\t\tif(flags.indexOf(\"g\")=== -1) flags += \"g\";\r\n\r\n\t\treturn new FiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar regex:RegExp;\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tregex = new RegExp(pattern, flags);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t// Calling regex.exec consecutively on the same input uses the lastIndex to start the next match.\r\n\t\t\t\t\t\tvar match = regex.exec(input);\r\n\t\t\t\t\t\treturn (match!==null) ? yielder.yieldReturn(match) : false;\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic generate(factory:(index?:number) => T):InfiniteEnumerable;\r\n\tstatic generate(factory:(index?:number) => T, count:number):FiniteEnumerable;\r\n\tstatic generate(factory:(index?:number) => T, count:number = Infinity):InfiniteEnumerable\r\n\t{\r\n\r\n\t\tif(isNaN(count) || count<=0)\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\treturn isFinite(count) && Integer.assert(count, \"count\")\r\n\t\t\t?\r\n\t\t\tnew FiniteEnumerable(\r\n\t\t\t\t() =>\r\n\t\t\t\t{\r\n\t\t\t\t\tvar c:number = count;\r\n\t\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t\t() =>\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar current:number = index++;\r\n\t\t\t\t\t\t\treturn current(\r\n\t\t\t\t() =>\r\n\t\t\t\t{\r\n\t\t\t\t\tvar index:number = 0;\r\n\t\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t\t() =>\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t(yielder)=> yielder.yieldReturn(factory(index++)),\r\n\r\n\t\t\t\t\t\ttrue // Is endless!\r\n\t\t\t\t\t);\r\n\t\t\t\t});\r\n\t}\r\n\r\n\tstatic unfold(\r\n\t\tseed:T,\r\n\t\tvalueFactory:Selector,\r\n\t\tskipSeed:Boolean = false):InfiniteEnumerable\r\n\t{\r\n\t\treturn new InfiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar index:number = 0;\r\n\t\t\t\tvar value:T;\r\n\t\t\t\tvar isFirst:boolean;\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tvalue = seed;\r\n\t\t\t\t\t\tisFirst = !skipSeed;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar i = index++;\r\n\t\t\t\t\t\tif(isFirst)\r\n\t\t\t\t\t\t\tisFirst = false;\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\tvalue = valueFactory(value, i);\r\n\t\t\t\t\t\treturn yielder.yieldReturn(value);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\ttrue // Is endless!\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic forEach(\r\n\t\tenumerable:IEnumerableOrArray,\r\n\t\taction:(element:T, index?:number) => any):void\r\n\t{\r\n\t\t// Will properly dispose created enumerable.\r\n\t\t// Will throw if enumerable is endless.\r\n\t\tforEach(enumerable, action);\r\n\t}\r\n\r\n\tstatic map(\r\n\t\tenumerable:IEnumerableOrArray,\r\n\t\tselector:Selector):TResult[]\r\n\t{\r\n\t\t// Will properly dispose created enumerable.\r\n\t\t// Will throw if enumerable is endless.\r\n\t\treturn map(enumerable, selector);\r\n\r\n\t}\r\n\r\n\t// Slightly optimized versions for numbers.\r\n\tstatic max(values:FiniteEnumerable):number\r\n\t{\r\n\t\treturn values\r\n\t\t\t.takeUntil(v=> v== +Infinity, true)\r\n\t\t\t.aggregate(Functions.Greater);\r\n\t}\r\n\r\n\tstatic min(values:FiniteEnumerable):number\r\n\t{\r\n\t\treturn values\r\n\t\t\t.takeUntil(v=> v== -Infinity, true)\r\n\t\t\t.aggregate(Functions.Lesser);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Takes any set of collections of the same type and weaves them together.\r\n\t * @param enumerables\r\n\t * @returns {Enumerable}\r\n\t */\r\n\tstatic weave(\r\n\t\tenumerables:IEnumerableOrArray>):Enumerable\r\n\t{\r\n\t\tif(!enumerables)\r\n\t\t\tthrow new ArgumentNullException('enumerables');\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar queue:Queue>;\r\n\t\t\t\tvar mainEnumerator:IEnumerator>;\r\n\t\t\t\tvar index:number;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tqueue = new Queue>();\r\n\t\t\t\t\t\tmainEnumerator = enumeratorFrom(enumerables);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tlet e:IEnumerator;\r\n\r\n\t\t\t\t\t\t// First pass...\r\n\t\t\t\t\t\tif(mainEnumerator) {\r\n\t\t\t\t\t\t\twhile(!e && mainEnumerator.moveNext())\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tlet c = mainEnumerator.current;\r\n\t\t\t\t\t\t\t\te = nextEnumerator(queue, c && enumeratorFrom(c));\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(!e)\r\n\t\t\t\t\t\t\t\tmainEnumerator = null;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\twhile(!e && queue.count) {\r\n\t\t\t\t\t\t\te = nextEnumerator(queue, queue.dequeue());\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn e\r\n\t\t\t\t\t\t\t? yielder.yieldReturn(e.current)\r\n\t\t\t\t\t\t\t: yielder.yieldBreak();\r\n\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose.these(queue.dump());\r\n\t\t\t\t\t\tdispose(mainEnumerator,queue);\r\n\t\t\t\t\t\tmainEnumerator = null;\r\n\t\t\t\t\t\tqueue = null;\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\tdoAction(\r\n\t\taction:Action|Predicate|Selector|Selector,\r\n\t\tinitializer?:()=>void,\r\n\t\tisEndless:boolean = this.isEndless):Enumerable\r\n\t{\r\n\t\treturn >super.doAction(action, initializer, isEndless);\r\n\t}\r\n\r\n// #region Indexing/Paging methods.\r\n\r\n\tskip(count:number):Enumerable\r\n\t{\r\n\t\treturn >super.skip(count);\r\n\t}\r\n\r\n\tskipWhile(predicate:Predicate):Enumerable\r\n\t{\r\n\t\tthis.throwIfDisposed();\r\n\t\treturn this.doAction(\r\n\t\t\t(element:T, index?:number) =>\r\n\t\t\t\tpredicate(element, index)\r\n\t\t\t\t\t? EnumerableAction.Skip\r\n\t\t\t\t\t: EnumerableAction.Return\r\n\t\t);\r\n\t}\r\n\r\n\ttakeWhile(predicate:Predicate):Enumerable\r\n\t{\r\n\t\tthis.throwIfDisposed();\r\n\r\n\t\tif(!predicate)\r\n\t\t\tthrow new ArgumentNullException('predicate');\r\n\r\n\t\treturn this.doAction(\r\n\t\t\t(element:T, index?:number) =>\r\n\t\t\t\tpredicate(element, index)\r\n\t\t\t\t\t? EnumerableAction.Return\r\n\t\t\t\t\t: EnumerableAction.Break,\r\n\t\t\tnull,\r\n\t\t\tnull // We don't know the state if it is endless or not.\r\n\t\t);\r\n\t}\r\n\r\n\t// Is like the inverse of take While with the ability to return the value identified by the predicate.\r\n\ttakeUntil(predicate:Predicate, includeUntilValue?:boolean):Enumerable\r\n\t{\r\n\t\tthis.throwIfDisposed();\r\n\r\n\t\tif(!predicate)\r\n\t\t\tthrow new ArgumentNullException('predicate');\r\n\r\n\t\tif(!includeUntilValue)\r\n\t\t\treturn this.doAction(\r\n\t\t\t\t(element:T, index?:number) =>\r\n\t\t\t\t\tpredicate(element, index)\r\n\t\t\t\t\t\t? EnumerableAction.Break\r\n\t\t\t\t\t\t: EnumerableAction.Return,\r\n\t\t\t\tnull,\r\n\t\t\t\tnull // We don't know the state if it is endless or not.\r\n\t\t\t);\r\n\r\n\t\tvar found:boolean = false;\r\n\t\treturn this.doAction(\r\n\t\t\t(element:T, index?:number) =>\r\n\t\t\t{\r\n\t\t\t\tif(found)\r\n\t\t\t\t\treturn EnumerableAction.Break;\r\n\r\n\t\t\t\tfound = predicate(element, index);\r\n\t\t\t\treturn EnumerableAction.Return;\r\n\t\t\t},\r\n\t\t\t()=>\r\n\t\t\t{\r\n\t\t\t\tfound = false;\r\n\t\t\t},\r\n\t\t\tnull // We don't know the state if it is endless or not.\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tforEach(action:Predicate | Action):void\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\tthrowIfEndless(_.isEndless);\r\n\r\n\t\tvar index:number = 0;\r\n\t\t// Return value of action can be anything, but if it is (===) false then the forEach will discontinue.\r\n\t\tusing(\r\n\t\t\t_.getEnumerator(), e=>\r\n\t\t\t{\r\n\t\t\t\tthrowIfEndless(e.isEndless);\r\n\r\n\t\t\t\t// It is possible that subsequently 'action' could cause the enumeration to dispose, so we have to check each time.\r\n\t\t\t\twhile(_.throwIfDisposed() && e.moveNext())\r\n\t\t\t\t{\r\n\t\t\t\t\tif(action(e.current, index++)===false)\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\t// #region Conversion Methods\r\n\ttoArray(predicate?:Predicate):T[]\r\n\t{\r\n\t\treturn predicate\r\n\t\t\t? this.where(predicate).toArray()\r\n\t\t\t: this.copyTo([]);\r\n\t}\r\n\r\n\tcopyTo(target:T[], index:number = 0):T[]\r\n\t{\r\n\t\tthis.throwIfDisposed();\r\n\t\tif(!target) throw new ArgumentNullException(\"target\");\r\n\t\tInteger.assertZeroOrGreater(index);\r\n\r\n\t\t// If not exposing an action that could cause dispose, then use forEach utility instead.\r\n\t\tforEach(this, (x, i)=>\r\n\t\t{\r\n\t\t\ttarget[i + index] = x\r\n\t\t});\r\n\r\n\t\treturn target;\r\n\t}\r\n\r\n\ttoLookup(\r\n\t\tkeySelector:Selector,\r\n\t\telementSelector:Selector = Functions.Identity,\r\n\t\tcompareSelector:Selector = Functions.Identity):ILookup\r\n\t{\r\n\t\tvar dict:Dictionary = new Dictionary(compareSelector);\r\n\t\tthis.forEach(\r\n\t\t\tx=>\r\n\t\t\t{\r\n\t\t\t\tvar key = keySelector(x);\r\n\t\t\t\tvar element = elementSelector(x);\r\n\r\n\t\t\t\tvar array = dict.getValue(key);\r\n\t\t\t\tif(array!==VOID0) array.push(element);\r\n\t\t\t\telse dict.addByKeyValue(key, [element]);\r\n\t\t\t}\r\n\t\t);\r\n\t\treturn new Lookup(dict);\r\n\t}\r\n\r\n\ttoMap(\r\n\t\tkeySelector:Selector,\r\n\t\telementSelector:Selector):IMap\r\n\t{\r\n\t\tvar obj:IMap = {};\r\n\t\tthis.forEach((x, i)=>\r\n\t\t{\r\n\t\t\tobj[keySelector(x, i)] = elementSelector(x, i);\r\n\t\t});\r\n\t\treturn obj;\r\n\t}\r\n\r\n\ttoDictionary(\r\n\t\tkeySelector:Selector,\r\n\t\telementSelector:Selector,\r\n\t\tcompareSelector:Selector = Functions.Identity):Dictionary\r\n\t{\r\n\t\tvar dict:Dictionary = new Dictionary(compareSelector);\r\n\t\tthis.forEach((x, i)=> dict.addByKeyValue(keySelector(x, i), elementSelector(x, i)));\r\n\t\treturn dict;\r\n\t}\r\n\r\n\ttoJoinedString(separator:string = \"\", selector:Selector = Functions.Identity)\r\n\t{\r\n\t\treturn this.select(selector).toArray().join(separator);\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\r\n\ttakeExceptLast(count:number = 1):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\tif(!(count>0)) // Out of bounds?\r\n\t\t\treturn _;\r\n\r\n\t\tif(!isFinite(count)) // +Infinity equals skip all so return empty.\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\tInteger.assert(count, \"count\");\r\n\t\tvar c = count;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar q:Queue;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tq = new Queue();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t// Add the next one to the queue.\r\n\t\t\t\t\t\t\tq.enqueue(enumerator.current);\r\n\r\n\t\t\t\t\t\t\t// Did we reach our quota?\r\n\t\t\t\t\t\t\tif(q.count>c)\r\n\t\t\t\t\t\t\t// Okay then, start returning results.\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(q.dequeue());\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator, q);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tskipToLast(count:number):Enumerable\r\n\t{\r\n\t\tif(!(count>0)) // Out of bounds? Empty.\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\tvar _ = this;\r\n\r\n\t\tif(!isFinite(count)) // Infinity means return all.\r\n\t\t\treturn _;\r\n\r\n\t\tInteger.assert(count, \"count\");\r\n\r\n\t\t// This sets up the query so nothing is done until move next is called.\r\n\t\treturn _.reverse()\r\n\t\t\t.take(count)\r\n\t\t\t.reverse();\r\n\t}\r\n\r\n\t// To help with type guarding.\r\n\r\n\twhere(predicate:Predicate):Enumerable\r\n\t{\r\n\t\treturn >super.where(predicate);\r\n\t}\r\n\r\n\tselect(selector:Selector):Enumerable\r\n\t{\r\n\t\treturn >super.select(selector);\r\n\t}\r\n\r\n\tselectMany(\r\n\t\tcollectionSelector:Selector>):Enumerable;\r\n\r\n\r\n\tselectMany(\r\n\t\tcollectionSelector:Selector>,\r\n\t\tresultSelector:(collection:T, element:TElement)=>TResult):Enumerable;\r\n\r\n\tselectMany(\r\n\t\tcollectionSelector:Selector>,\r\n\t\tresultSelector?:(collection:T, element:any)=>TResult):Enumerable\r\n\t{\r\n\t\treturn this._selectMany(collectionSelector, resultSelector);\r\n\t}\r\n\r\n\tchoose():Enumerable;\r\n\tchoose(selector?:Selector):Enumerable\r\n\tchoose(selector:Selector = Functions.Identity):Enumerable\r\n\t{\r\n\t\treturn this._choose(selector);\r\n\t}\r\n\r\n\treverse():Enumerable\r\n\t{\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\t\tthrowIfEndless(_._isEndless); // Cannot reverse an endless collection...\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar buffer:T[];\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\tbuffer = _.toArray();\r\n\t\t\t\t\t\tindex = buffer.length;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=> index && yielder.yieldReturn(buffer[--index]),\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tbuffer.length = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tshuffle():Enumerable\r\n\t{\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\t\tthrowIfEndless(_._isEndless); // Cannot shuffle an endless collection...\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar buffer:T[];\r\n\t\t\t\tvar capacity:number;\r\n\t\t\t\tvar len:number;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\tbuffer = _.toArray();\r\n\t\t\t\t\t\tcapacity = len = buffer.length;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t// Avoid using major array operations like .slice();\r\n\t\t\t\t\t\tif(!len)\r\n\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\r\n\t\t\t\t\t\tvar selectedIndex = Integer.random(len);\r\n\t\t\t\t\t\tvar selectedValue = buffer[selectedIndex];\r\n\r\n\t\t\t\t\t\tbuffer[selectedIndex] = buffer[--len]; // Take the last one and put it here.\r\n\t\t\t\t\t\tbuffer[len] = null; // clear possible reference.\r\n\r\n\t\t\t\t\t\tif(len%32==0) // Shrink?\r\n\t\t\t\t\t\t\tbuffer.length = len;\r\n\r\n\t\t\t\t\t\treturn yielder.yieldReturn(selectedValue);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tbuffer.length = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tcount(predicate?:Predicate):number\r\n\t{\r\n\t\tvar count:number = 0;\r\n\t\tthis.forEach(\r\n\t\t\tpredicate\r\n\r\n\t\t\t\t?\r\n\t\t\t\t(x, i) =>\r\n\t\t\t\t{\r\n\t\t\t\t\tif(predicate(x, i))++count;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t:\r\n\t\t\t\t() =>\r\n\t\t\t\t{\r\n\t\t\t\t\t++count;\r\n\t\t\t\t}\r\n\t\t);\r\n\r\n\t\treturn count;\r\n\t}\r\n\r\n\t// Akin to '.every' on an array.\r\n\tall(predicate:Predicate):boolean\r\n\t{\r\n\t\tif(!predicate)\r\n\t\t\tthrow new ArgumentNullException(\"predicate\");\r\n\r\n\t\tvar result = true;\r\n\t\tthis.forEach((x, i) =>\r\n\t\t{\r\n\t\t\tif(!predicate(x, i))\r\n\t\t\t{\r\n\t\t\t\tresult = false;\r\n\t\t\t\treturn false; // break\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\r\n\t// 'every' has been added here for parity/compatibility with an array.\r\n\tevery(predicate:Predicate):boolean\r\n\t{\r\n\t\treturn this.all(predicate);\r\n\t}\r\n\r\n\t// Akin to '.some' on an array.\r\n\tany(predicate?:Predicate):boolean\r\n\t{\r\n\t\tif(!predicate)\r\n\t\t\treturn super.any();\r\n\r\n\t\tvar result = false;\r\n\t\t// Splitting the forEach up this way reduces iterative processing.\r\n\t\t// forEach handles the generation and disposal of the enumerator.\r\n\t\tthis.forEach(\r\n\t\t\t(x, i) =>\r\n\t\t\t{\r\n\t\t\t\tresult = predicate(x, i); // false = not found and therefore it should continue. true = found and break;\r\n\t\t\t\treturn !result;\r\n\t\t\t});\r\n\t\treturn result;\r\n\r\n\t}\r\n\r\n\t// 'some' has been added here for parity/compatibility with an array.\r\n\tsome(predicate:Predicate):boolean\r\n\t{\r\n\t\treturn this.any(predicate);\r\n\t}\r\n\r\n\r\n\tcontains(value:T, compareSelector?:Selector):boolean\r\n\t{\r\n\t\treturn compareSelector\r\n\t\t\t? this.any(v=> compareSelector(v)===compareSelector(value))\r\n\t\t\t: this.any(v=> v===value);\r\n\t}\r\n\r\n\t// Originally has an overload for a predicate,\r\n\t// but that's a bad idea since this could be an enumeration of functions and therefore fail the intent.\r\n\t// Better to chain a where statement first to be more explicit.\r\n\tindexOf(value:T, compareSelector?:Selector):number\r\n\t{\r\n\t\tvar found:number = -1;\r\n\t\tthis.forEach(\r\n\t\t\tcompareSelector\r\n\t\t\t\t?\r\n\t\t\t\t(element:T, i?:number) =>\r\n\t\t\t\t{\r\n\t\t\t\t\tif(Values.areEqual(compareSelector(element, i), compareSelector(value, i), true))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfound = i;\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t:\r\n\t\t\t\t(element:T, i?:number) =>\r\n\t\t\t\t{\r\n\t\t\t\t\t// Why? Because NaN doesn't equal NaN. :P\r\n\t\t\t\t\tif(Values.areEqual(element, value, true))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfound = i;\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\r\n\t\treturn found;\r\n\t}\r\n\r\n\tlastIndexOf(value:T, compareSelector?:Selector):number\r\n\t{\r\n\t\tvar result:number = -1;\r\n\t\tthis.forEach(\r\n\t\t\tcompareSelector\r\n\t\t\t\t?\r\n\t\t\t\t(element:T, i?:number) =>\r\n\t\t\t\t{\r\n\t\t\t\t\tif(Values.areEqual(compareSelector(element, i), compareSelector(value, i), true)) result\r\n\t\t\t\t\t\t= i;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t:\r\n\t\t\t\t(element:T, i?:number) =>\r\n\t\t\t\t{\r\n\t\t\t\t\tif(Values.areEqual(element, value, true)) result = i;\r\n\t\t\t\t});\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\tmerge(enumerables:IArray>):Enumerable\r\n\t{\r\n\t\treturn >super.merge(enumerables);\r\n\t}\r\n\r\n\tconcat(...enumerables:Array>):Enumerable\r\n\t{\r\n\t\treturn this.merge(enumerables);\r\n\t}\r\n\r\n\r\n\tintersect(\r\n\t\tsecond:IEnumerableOrArray,\r\n\t\tcompareSelector?:Selector):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar keys:Dictionary;\r\n\t\t\t\tvar outs:Dictionary;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\r\n\t\t\t\t\t\tkeys = new Dictionary(compareSelector);\r\n\t\t\t\t\t\touts = new Dictionary(compareSelector);\r\n\r\n\t\t\t\t\t\tforEach(second, key=>\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tkeys.addByKeyValue(key, true);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar current = enumerator.current;\r\n\t\t\t\t\t\t\tif(!outs.containsKey(current) && keys.containsKey(current))\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\touts.addByKeyValue(current, true);\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(current);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator, keys, outs);\r\n\t\t\t\t\t},\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\tsequenceEqual(\r\n\t\tsecond:IEnumerableOrArray,\r\n\t\tequalityComparer:EqualityComparison = Values.areEqual):boolean\r\n\t{\r\n\t\treturn using(\r\n\t\t\tthis.getEnumerator(),\r\n\t\t\te1=> using(\r\n\t\t\t\tenumeratorFrom(second),\r\n\t\t\t\te2=>\r\n\t\t\t\t{\r\n\t\t\t\t\t// if both are endless, this will never evaluate.\r\n\t\t\t\t\tthrowIfEndless(e1.isEndless && e2.isEndless);\r\n\r\n\t\t\t\t\twhile(e1.moveNext())\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(!e2.moveNext() || !equalityComparer(e1.current, e2.current))\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn !e2.moveNext();\r\n\t\t\t\t}\r\n\t\t\t)\r\n\t\t);\r\n\t}\r\n\r\n\t//isEquivalent(second:IEnumerableOrArray,\r\n\t//\tequalityComparer:EqualityComparison = Values.areEqual):boolean\r\n\t//{\r\n\t//\treturn this\r\n\t//\t\t.orderBy(keySelector)\r\n\t//\t\t.sequenceEqual(Enumerable.from(second).orderBy(keySelector))\r\n\t//}\r\n\r\n\r\n\t// #endregion\r\n\r\n\r\n\tofType(type:{ new (...params:any[]):TType }):Enumerable;\r\n\tofType(type:any):Enumerable\r\n\t{\r\n\t\treturn >super.ofType(type);\r\n\t}\r\n\r\n\texcept(\r\n\t\tsecond:IEnumerableOrArray,\r\n\t\tcompareSelector?:Selector):Enumerable\r\n\t{\r\n\t\treturn >super.except(second, compareSelector);\r\n\t}\r\n\r\n\tdistinct(compareSelector?:(value:T)=>T):Enumerable\r\n\t{\r\n\t\treturn >super.distinct(compareSelector);\r\n\t}\r\n\r\n\tdistinctUntilChanged(compareSelector:Selector = Functions.Identity):Enumerable\r\n\t{\r\n\t\treturn >super.distinctUntilChanged(compareSelector);\r\n\t}\r\n\r\n// #region Ordering Methods\r\n\r\n\torderBy(keySelector:Selector = Functions.Identity):IOrderedEnumerable\r\n\t{\r\n\t\treturn new OrderedEnumerable(this, keySelector, Order.Ascending);\r\n\t}\r\n\r\n\torderUsing(comparison:Comparison):IOrderedEnumerable\r\n\t{\r\n\t\treturn new OrderedEnumerable(this, null, Order.Ascending, null, comparison);\r\n\t}\r\n\r\n\torderUsingReversed(comparison:Comparison):IOrderedEnumerable\r\n\t{\r\n\t\treturn new OrderedEnumerable(this, null, Order.Descending, null, comparison);\r\n\t}\r\n\r\n\torderByDescending(keySelector:Selector = Functions.Identity):IOrderedEnumerable\r\n\t{\r\n\t\treturn new OrderedEnumerable(this, keySelector, Order.Descending);\r\n\t}\r\n\r\n\t/*\r\n\t\t weightedSample(weightSelector) {\r\n\t\t weightSelector = Utils.createLambda(weightSelector);\r\n\t\t var source = this;\r\n\r\n\t\t return new Enumerable(() => {\r\n\t\t var sortedByBound;\r\n\t\t var totalWeight = 0;\r\n\r\n\t\t return new EnumeratorBase(\r\n\t\t () => {\r\n\t\t sortedByBound = source\r\n\t\t .choose(function (x) {\r\n\t\t var weight = weightSelector(x);\r\n\t\t if (weight <= 0) return null; // ignore 0\r\n\r\n\t\t totalWeight += weight;\r\n\t\t return { value: x, bound: totalWeight }\r\n\t\t })\r\n\t\t .toArray();\r\n\t\t },\r\n\t\t () => {\r\n\t\t if (sortedByBound.length > 0) {\r\n\t\t var draw = (Math.random() * totalWeight) + 1;\r\n\r\n\t\t var lower = -1;\r\n\t\t var upper = sortedByBound.length;\r\n\t\t while (upper - lower > 1) {\r\n\t\t var index = ((lower + upper) / 2);\r\n\t\t if (sortedByBound[index].bound >= draw) {\r\n\t\t upper = index;\r\n\t\t }\r\n\t\t else {\r\n\t\t lower = index;\r\n\t\t }\r\n\t\t }\r\n\r\n\t\t return (this).yieldReturn(sortedByBound[upper].value);\r\n\t\t }\r\n\r\n\t\t return (this).yieldBreak();\r\n\t\t },\r\n\t\t Functions.Blank);\r\n\t\t });\r\n\t\t }\r\n\t\t */\r\n\t// #endregion\r\n\r\n\tbuffer(size:number):Enumerable\r\n\t{\r\n\t\treturn >super.buffer(size);\r\n\t}\r\n\r\n\t// #region Grouping Methods\r\n\r\n\t// Originally contained a result selector (not common use), but this could be done simply by a select statement after.\r\n\r\n\r\n\tgroupBy(keySelector:Selector):Enumerable>;\r\n\tgroupBy(\r\n\t\tkeySelector:Selector,\r\n\t\telementSelector?:Selector,\r\n\t\tcompareSelector?:Selector):Enumerable>;\r\n\tgroupBy(\r\n\t\tkeySelector:Selector,\r\n\t\telementSelector?:Selector,\r\n\t\tcompareSelector?:Selector):Enumerable>\r\n\t{\r\n\t\tif(!elementSelector) elementSelector = Functions.Identity; // Allow for 'null' and not just undefined.\r\n\t\treturn new Enumerable>(\r\n\t\t\t() => this.toLookup(keySelector, elementSelector, compareSelector)\r\n\t\t\t\t.getEnumerator()\r\n\t\t);\r\n\t}\r\n\r\n\tpartitionBy(keySelector:Selector):Enumerable>;\r\n\tpartitionBy(\r\n\t\tkeySelector:Selector,\r\n\t\telementSelector:Selector,\r\n\t\tresultSelector?:(key:TKey, element:TElement[]) => IGrouping,\r\n\t\tcompareSelector?:Selector):Enumerable>;\r\n\tpartitionBy(\r\n\t\tkeySelector:Selector,\r\n\t\telementSelector?:Selector,\r\n\t\tresultSelector:(key:TKey, element:TElement[]) => IGrouping\r\n\t\t\t= (key:TKey, elements:TElement[]) => new Grouping(key, elements),\r\n\t\tcompareSelector:Selector\r\n\t\t\t= Functions.Identity):Enumerable>|Enumerable>\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\t\tif(!elementSelector) elementSelector = Functions.Identity; // Allow for 'null' and not just undefined.\r\n\t\treturn new Enumerable>(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar key:TKey;\r\n\t\t\t\tvar compareKey:TCompare;\r\n\t\t\t\tvar group:TElement[];\r\n\t\t\t\tvar len:number;\r\n\r\n\t\t\t\treturn new EnumeratorBase>(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tif(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tkey = keySelector(enumerator.current);\r\n\t\t\t\t\t\t\tcompareKey = compareSelector(key);\r\n\t\t\t\t\t\t\tgroup = [elementSelector(enumerator.current)];\r\n\t\t\t\t\t\t\tlen = 1;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\tgroup = null;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(!group)\r\n\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\r\n\t\t\t\t\t\tvar hasNext:boolean, c:T;\r\n\t\t\t\t\t\twhile((hasNext = enumerator.moveNext()))\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tc = enumerator.current;\r\n\t\t\t\t\t\t\tif(compareKey===compareSelector(keySelector(c)))\r\n\t\t\t\t\t\t\t\tgroup[len++] = elementSelector(c);\r\n\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar result:IGrouping\r\n\t\t\t\t\t\t\t = resultSelector(key, group);\r\n\r\n\t\t\t\t\t\tif(hasNext)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tc = enumerator.current;\r\n\t\t\t\t\t\t\tkey = keySelector(c);\r\n\t\t\t\t\t\t\tcompareKey = compareSelector(key);\r\n\t\t\t\t\t\t\tgroup = [elementSelector(c)];\r\n\t\t\t\t\t\t\tlen = 1;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tgroup = null;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn yielder.yieldReturn(result);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t\tgroup = null;\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\t// #region Aggregate Methods\r\n\r\n\taggregate(\r\n\t\tfunc:(a:T, b:T) => T,\r\n\t\tseed?:T):T\r\n\t{\r\n\t\treturn this.scan(func, seed).lastOrDefault();\r\n\t}\r\n\r\n\taverage(selector:Selector = Type.numberOrNaN):number\r\n\t{\r\n\t\tvar count = 0;\r\n\t\tvar sum = this.sum((e, i)=>\r\n\t\t{\r\n\t\t\tcount++;\r\n\t\t\treturn selector(e, i);\r\n\t\t});\r\n\r\n\t\treturn (isNaN(sum) || !count)\r\n\t\t\t? NaN\r\n\t\t\t: (sum/count);\r\n\t}\r\n\r\n\t// If using numbers, it may be useful to call .takeUntil(v=>v==Infinity,true) before calling max. See static versions for numbers.\r\n\tmax():T\r\n\t{\r\n\t\treturn this.aggregate(Functions.Greater);\r\n\t}\r\n\r\n\tmin():T\r\n\t{\r\n\t\treturn this.aggregate(Functions.Lesser);\r\n\t}\r\n\r\n\tmaxBy(keySelector:Selector = Functions.Identity):T\r\n\t{\r\n\t\treturn this.aggregate((a:T, b:T) => (keySelector(a)>keySelector(b)) ? a : b);\r\n\t}\r\n\r\n\tminBy(keySelector:Selector = Functions.Identity):T\r\n\t{\r\n\t\treturn this.aggregate((a:T, b:T) => (keySelector(a) = Type.numberOrNaN):number\r\n\t{\r\n\t\tvar sum = 0;\r\n\r\n\t\t// This allows for infinity math that doesn't destroy the other values.\r\n\t\tvar sumInfinite = 0; // Needs more investigation since we are really trying to retain signs.\r\n\r\n\t\tthis.forEach(\r\n\t\t\tx=>\r\n\t\t\t{\r\n\t\t\t\tvar value = selector(x);\r\n\t\t\t\tif(isNaN(value))\r\n\t\t\t\t{\r\n\t\t\t\t\tsum = NaN;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tif(isFinite(value))\r\n\t\t\t\t\tsum += value;\r\n\t\t\t\telse\r\n\t\t\t\t\tsumInfinite +=\r\n\t\t\t\t\t\tvalue>0 ?\r\n\t\t\t\t\t\t\t(+1) :\r\n\t\t\t\t\t\t\t(-1);\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\treturn isNaN(sum) ? NaN : (sumInfinite ? (sumInfinite*Infinity) : sum);\r\n\t}\r\n\r\n\t// Multiplication...\r\n\tproduct(selector:Selector = Type.numberOrNaN):number\r\n\t{\r\n\t\tvar result = 1, exists:boolean = false;\r\n\r\n\t\tthis.forEach(\r\n\t\t\t(x, i)=>\r\n\t\t\t{\r\n\t\t\t\texists = true;\r\n\t\t\t\tvar value = selector(x, i);\r\n\t\t\t\tif(isNaN(value))\r\n\t\t\t\t{\r\n\t\t\t\t\tresult = NaN;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(value==0)\r\n\t\t\t\t{\r\n\t\t\t\t\tresult = 0; // Multiplying by zero will always end in zero.\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Multiplication can never recover from infinity and simply must retain signs.\r\n\t\t\t\t// You could cancel out infinity with 1/infinity but no available representation exists.\r\n\t\t\t\tresult *= value;\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\treturn (exists && isNaN(result)) ? NaN : result;\r\n\t}\r\n\r\n\t/**\r\n\t * Takes the first number and divides it by all following.\r\n\t * @param selector\r\n\t * @returns {number}\r\n\t */\r\n\tquotient(selector:Selector = Type.numberOrNaN):number\r\n\t{\r\n\t\tvar count = 0;\r\n\t\tvar result:number = NaN;\r\n\r\n\t\tthis.forEach(\r\n\t\t\t(x, i)=>\r\n\t\t\t{\r\n\t\t\t\tvar value = selector(x, i);\r\n\t\t\t\tcount++;\r\n\r\n\t\t\t\tif(count===1)\r\n\t\t\t\t{\r\n\t\t\t\t\tresult = value;\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tif(isNaN(value) || value===0 || !isFinite(value))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tresult = NaN;\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tresult /= value;\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\tif(count===1)\r\n\t\t\tresult = NaN;\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\t// #region Single Value Return...\r\n\r\n\tlast():T\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar value:T = undefined;\r\n\t\tvar found:boolean = false;\r\n\t\t_.forEach(\r\n\t\t\tx =>\r\n\t\t\t{\r\n\t\t\t\tfound = true;\r\n\t\t\t\tvalue = x;\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\tif(!found) throw new Error(\"last:No element satisfies the condition.\");\r\n\t\treturn value;\r\n\t}\r\n\r\n\tlastOrDefault(defaultValue:T = null):T\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar value:T = undefined;\r\n\t\tvar found:boolean = false;\r\n\t\t_.forEach(\r\n\t\t\tx=>\r\n\t\t\t{\r\n\t\t\t\tfound = true;\r\n\t\t\t\tvalue = x;\r\n\t\t\t}\r\n\t\t);\r\n\t\treturn (!found) ? defaultValue : value;\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\tshare():Enumerable\r\n\t{\r\n\t\treturn >super.share();\r\n\t}\r\n\r\n\r\n\tcatchError(handler:(e:any)=>void):Enumerable\r\n\t{\r\n\t\treturn >super.catchError(handler);\r\n\t}\r\n\r\n\r\n\tfinallyAction(action:()=>void):Enumerable\r\n\t{\r\n\t\treturn >super.finallyAction(action);\r\n\t}\r\n\r\n\tmemoize():Enumerable\r\n\t{\r\n\t\tvar _ = this, disposed:boolean = !_.throwIfDisposed();\r\n\r\n\t\tvar cache:T[];\r\n\t\tvar enumerator:IEnumerator;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\tif(!enumerator)\r\n\t\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tif(!cache)\r\n\t\t\t\t\t\t\tcache = [];\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\tvar i = index++;\r\n\r\n\t\t\t\t\t\tif(i>=cache.length)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\treturn (enumerator.moveNext())\r\n\t\t\t\t\t\t\t\t? yielder.yieldReturn(cache[i] = enumerator.current)\r\n\t\t\t\t\t\t\t\t: false;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn yielder.yieldReturn(cache[i]);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t\tif(cache)\r\n\t\t\t\t\tcache.length = 0;\r\n\t\t\t\tcache = null;\r\n\r\n\t\t\t\tdispose(enumerator);\r\n\t\t\t\tenumerator = null;\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\r\n}\r\n\r\n\r\n// Provided for type guarding.\r\nexport class FiniteEnumerable\r\nextends Enumerable\r\n{\r\n\tconstructor(\r\n\t\tenumeratorFactory:() => IEnumerator,\r\n\t\tfinalizer?:() => void)\r\n\t{\r\n\t\tsuper(enumeratorFactory, finalizer, false);\r\n\t}\r\n\r\n}\r\n\r\nclass ArrayEnumerable\r\nextends FiniteEnumerable\r\n{\r\n\tprivate _source:IArray;\r\n\r\n\tconstructor(source:IArray)\r\n\t{\r\n\t\tsuper(() =>\r\n\t\t{\r\n\t\t\t_.throwIfDisposed();\r\n\t\t\treturn new ArrayEnumerator(() =>\r\n\t\t\t{\r\n\t\t\t\t_.throwIfDisposed(\"The underlying ArrayEnumerable was disposed.\", \"ArrayEnumerator\");\r\n\r\n\t\t\t\treturn _._source; // Should never be null, but ArrayEnumerable if not disposed simply treats null as empty array.\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tvar _ = this;\r\n\t\t_._disposableObjectName = \"ArrayEnumerable\";\r\n\t\t_._source = source;\r\n\r\n\t}\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis._source = null;\r\n\t}\r\n\r\n\tget source():IArray\r\n\t{\r\n\t\treturn this._source;\r\n\t}\r\n\r\n\ttoArray():T[]\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\treturn toArray(_._source);\r\n\t}\r\n\r\n\tasEnumerable():ArrayEnumerable\r\n\t{\r\n\t\treturn new ArrayEnumerable(this._source);\r\n\t}\r\n\r\n\t// Optimize forEach so that subsequent usage is optimized.\r\n\tforEach(action:Predicate | Action):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tforEach(_._source, action);\r\n\t}\r\n\r\n\t// These methods should ALWAYS check for array length before attempting anything.\r\n\r\n\tany(predicate?:Predicate):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar source = _._source, len = source.length;\r\n\t\treturn len && (!predicate || super.any(predicate));\r\n\t}\r\n\r\n\tcount(predicate?:Predicate):number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar source = _._source, len = source.length;\r\n\t\treturn len && (predicate ? super.count(predicate) : len);\r\n\t}\r\n\t\r\n\telementAtOrDefault(index:number, defaultValue:T = null):T\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\tInteger.assertZeroOrGreater(index,'index');\r\n\r\n\t\tvar source = _._source;\r\n\t\treturn index\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\r\n\t\tif(!(count>0))\r\n\t\t\treturn _;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() => new ArrayEnumerator(() => _._source, count)\r\n\t\t);\r\n\t}\r\n\r\n\ttakeExceptLast(count:number = 1):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn _.take(_._source.length - count);\r\n\t}\r\n\r\n\tskipToLast(count:number):Enumerable\r\n\t{\r\n\t\tif(!(count>0))\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\tvar _ = this;\r\n\t\tif(!isFinite(count))\r\n\t\t\treturn _;\r\n\r\n\t\tvar len = _._source\r\n\t\t\t? _._source.length\r\n\t\t\t: 0;\r\n\r\n\t\treturn _.skip(len - count);\r\n\t}\r\n\r\n\treverse():Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() => new ArrayEnumerator(\r\n\t\t\t\t() => _._source, _._source\r\n\t\t\t\t\t? (_._source.length - 1)\r\n\t\t\t\t\t: 0, -1\r\n\t\t\t)\r\n\t\t);\r\n\t}\r\n\r\n\tmemoize():ArrayEnumerable\r\n\t{\r\n\t\treturn this.asEnumerable();\r\n\t}\r\n\r\n\tsequenceEqual(\r\n\t\tsecond:IEnumerableOrArray,\r\n\t\tequalityComparer:EqualityComparison = Values.areEqual):boolean\r\n\t{\r\n\t\tif(Type.isArrayLike(second))\r\n\t\t\treturn Arrays.areEqual(this.source, second, true, equalityComparer);\r\n\r\n\t\tif(second instanceof ArrayEnumerable)\r\n\t\t\treturn second.sequenceEqual(this.source, equalityComparer);\r\n\r\n\t\treturn super.sequenceEqual(second, equalityComparer);\r\n\t}\r\n\r\n\r\n\ttoJoinedString(separator:string = \"\", selector:Selector = Functions.Identity)\r\n\t{\r\n\t\tvar s = this._source;\r\n\t\treturn !selector && Array.isArray(s)\r\n\t\t\t? (>s).join(separator)\r\n\t\t\t: super.toJoinedString(separator, selector);\r\n\t}\r\n\r\n}\r\n\r\n\r\nexport interface IGrouping\r\nextends Enumerable\r\n{\r\n\tkey:TKey;\r\n}\r\n\r\nclass Grouping\r\nextends ArrayEnumerable implements IGrouping\r\n{\r\n\r\n\tconstructor(private _groupKey:TKey, elements:TElement[])\r\n\t{\r\n\t\tsuper(elements);\r\n\t}\r\n\r\n\tget key():TKey\r\n\t{\r\n\t\treturn this._groupKey;\r\n\t}\r\n}\r\n\r\n\r\nexport interface ILookup\r\nextends IEnumerable>\r\n{\r\n\tcount:number;\r\n\tget(key:TKey):TElement[];\r\n\tcontains(key:TKey):boolean;\r\n}\r\n\r\nclass Lookup\r\nimplements ILookup\r\n{\r\n\r\n\tconstructor(private _dictionary:Dictionary)\r\n\t{\r\n\t}\r\n\r\n\tget count():number\r\n\t{\r\n\t\treturn this._dictionary.count;\r\n\t}\r\n\r\n\tget(key:TKey):TElement[]\r\n\t{\r\n\t\treturn this._dictionary.getValue(key);\r\n\t}\r\n\r\n\tcontains(key:TKey):boolean\r\n\t{\r\n\t\treturn this._dictionary.containsKey(key);\r\n\t}\r\n\r\n\tgetEnumerator():IEnumerator>\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\t\tvar enumerator:IEnumerator>;\r\n\r\n\t\treturn new EnumeratorBase>(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tenumerator = _._dictionary.getEnumerator();\r\n\t\t\t},\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\r\n\t\t\t\tif(!enumerator.moveNext())\r\n\t\t\t\t\treturn false;\r\n\r\n\t\t\t\tvar current = enumerator.current;\r\n\r\n\t\t\t\treturn yielder.yieldReturn(new Grouping(current.key, current.value));\r\n\t\t\t},\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdispose(enumerator);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n}\r\n\r\n\r\nexport interface IOrderedEnumerable\r\nextends FiniteEnumerable\r\n{\r\n\tthenBy(keySelector:(value:T) => any):IOrderedEnumerable;\r\n\tthenByDescending(keySelector:(value:T) => any):IOrderedEnumerable;\r\n\tthenUsing(comparison:Comparison):IOrderedEnumerable;\r\n\tthenUsingReversed(comparison:Comparison):IOrderedEnumerable\r\n}\r\n\r\nclass OrderedEnumerable\r\nextends FiniteEnumerable implements IOrderedEnumerable\r\n{\r\n\r\n\tconstructor(\r\n\t\tprivate source:IEnumerable,\r\n\t\tpublic keySelector:(value:T) => TOrderBy,\r\n\t\tpublic order:Order,\r\n\t\tpublic parent?:OrderedEnumerable,\r\n\t\tpublic comparer:Comparison = Values.compare)\r\n\t{\r\n\t\tsuper(null);\r\n\t\tthrowIfEndless(source && source.isEndless);\r\n\t}\r\n\r\n\tprivate createOrderedEnumerable(\r\n\t\tkeySelector:(value:T) => TOrderBy,\r\n\t\torder:Order):IOrderedEnumerable\r\n\t{\r\n\t\treturn new OrderedEnumerable(this.source, keySelector, order, this);\r\n\t}\r\n\r\n\tthenBy(keySelector:(value:T) => TOrderBy):IOrderedEnumerable\r\n\t{\r\n\t\treturn this.createOrderedEnumerable(keySelector, Order.Ascending);\r\n\t}\r\n\r\n\tthenUsing(comparison:Comparison):IOrderedEnumerable\r\n\t{\r\n\t\treturn new OrderedEnumerable(this.source, null, Order.Ascending, this, comparison);\r\n\t}\r\n\r\n\tthenByDescending(keySelector:(value:T) => TOrderBy):IOrderedEnumerable\r\n\t{\r\n\t\treturn this.createOrderedEnumerable(keySelector, Order.Descending);\r\n\t}\r\n\r\n\tthenUsingReversed(comparison:Comparison):IOrderedEnumerable\r\n\t{\r\n\t\treturn new OrderedEnumerable(this.source, null, Order.Descending, this, comparison);\r\n\t}\r\n\r\n\tgetEnumerator():EnumeratorBase\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar buffer:T[];\r\n\t\tvar indexes:number[];\r\n\t\tvar index:number = 0;\r\n\r\n\t\treturn new EnumeratorBase(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tindex = 0;\r\n\t\t\t\tbuffer = Enumerable.toArray(_.source);\r\n\t\t\t\tindexes = createSortContext(_).generateSortedIndexes(buffer);\r\n\t\t\t},\r\n\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\t\t\t\treturn (index\r\n\t\t\t{\r\n\t\t\t\tif(buffer)\r\n\t\t\t\t\tbuffer.length = 0;\r\n\t\t\t\tbuffer = null;\r\n\t\t\t\tif(indexes)\r\n\t\t\t\t\tindexes.length = 0;\r\n\t\t\t\tindexes = null;\r\n\t\t\t},\r\n\r\n\t\t\tfalse\r\n\t\t);\r\n\t}\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis.source = null;\r\n\t\tthis.keySelector = null;\r\n\t\tthis.order = null;\r\n\t\tthis.parent = null;\r\n\t}\r\n\r\n}\r\n\r\n// A private static helper for the weave function.\r\nfunction nextEnumerator(queue:Queue>, e:IEnumerator):IEnumerator {\r\n\tif(e) {\r\n\t\tif(e.moveNext()) {\r\n\t\t\tqueue.enqueue(e);\r\n\t\t} else {\r\n\t\t\tdispose(e);\r\n\t\t\te = null;\r\n\t\t}\r\n\t}\r\n\treturn e;\r\n}\r\n\r\n/**\r\n * Recursively builds a SortContext chain.\r\n * @param orderedEnumerable\r\n * @param currentContext\r\n * @returns {any}\r\n */\r\nfunction createSortContext(\r\n\torderedEnumerable:OrderedEnumerable,\r\n\tcurrentContext:IComparer = null):KeySortedContext\r\n{\r\n\r\n\tvar context = new KeySortedContext(\r\n\t\tcurrentContext,\r\n\t\torderedEnumerable.keySelector,\r\n\t\torderedEnumerable.order,\r\n\t\torderedEnumerable.comparer);\r\n\r\n\tif(orderedEnumerable.parent)\r\n\t\treturn createSortContext(orderedEnumerable.parent, context);\r\n\r\n\treturn context;\r\n}\r\n\r\n// #region Helper Functions...\r\n// This allows for the use of a boolean instead of calling this.throwIfDisposed()\r\n// since there is a strong chance of introducing a circular reference.\r\nfunction throwIfDisposed(disposed:boolean):void\r\n{\r\n\tif(disposed) throw new ObjectDisposedException(\"Enumerable\");\r\n}\r\n// #endregion\r\n\r\nexport default Enumerable;\r\n"]} \ No newline at end of file +{"version":3,"sources":["System.Linq/Linq.js","System.Linq/Linq.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","getEmptyEnumerator","Enumerator_1","empty","nextEnumerator","queue","e","moveNext","enqueue","dispose_1","dispose","createSortContext","orderedEnumerable","currentContext","context","KeySortedContext_1","KeySortedContext","keySelector","order","comparer","parent","throwIfDisposed","disposed","ObjectDisposedException_1","ObjectDisposedException","Values","Arrays","ArrayUtility","Types_1","Integer_1","Functions_1","ArrayEnumerator_1","EnumeratorBase_1","Dictionary_1","Queue_1","DisposableBase_1","UnsupportedEnumerableException_1","ArgumentNullException_1","ArgumentOutOfRangeException_1","INVALID_DEFAULT","VOID0","BREAK","element","LinqFunctions","_super","apply","arguments","Greater","a","Lesser","Functions","freeze","InfiniteEnumerable","_enumeratorFactory","finalizer","call","_isEndless","defineProperty","get","enumerable","configurable","getEnumerator","_onDispose","asEnumerable","_","doAction","action","initializer","isEndless","Enumerable","enumerator","index","EnumeratorBase","yielder","actionResult","current","yieldBreak","yieldReturn","force","skip","count","isFinite","Integer","assert","take","ArgumentOutOfRangeException","elementAt","elementAtOrDefault","defaultValue","assertZeroOrGreater","n","using","i","first","firstOrDefault","Error","single","value","singleOrDefault","any","isEmpty","traverseBreadthFirst","childrenSelector","resultSelector","Identity","buffer","len","nestLevel","next","from","selectMany","length","traverseDepthFirst","enumeratorStack","fromAny","these","flatten","middleEnumerator","c","Type","isString","pairwise","selector","prev","scan","func","seed","isUseSeed","isFirst","select","_selectMany","collectionSelector","middleSeq","_choose","result","choose","where","predicate","ofType","type","typeName","Number","NUMBER","String","STRING","Boolean","BOOLEAN","Function","FUNCTION","x","except","second","compareSelector","keys","Dictionary","forEach","key","addByKeyValue","containsKey","clear","distinct","distinctUntilChanged","compareKey","initial","areEqual","defaultIfEmpty","zip","firstEnumerator","secondEnumerator","zipMultiple","secondTemp","Queue","dequeue","join","inner","outerKeySelector","innerKeySelector","outerEnumerator","lookup","innerElements","innerCount","toLookup","innerElement","groupJoin","merge","enumerables","concat","_i","union","insertAt","other","isEnumerated","alternateMultiple","sequence","mode","alternateEnumerator","ArrayEnumerator","toArray","hasAtLeastOne","reset","latest","another","alternateSingle","make","alternate","catchError","handler","finallyAction","size","array","initialize","share","sharedEnumerator","DisposableBase","enumeratorFactory","source","UnsupportedEnumerableException","defaultEnumerable","isObject","isArrayLike","ArrayEnumerable","isEnumerable","fromOrEmpty","choice","values","random","chooseFrom","args","cycle","cycleThrough","FiniteEnumerable","repeat","Infinity","repeatWithFinalize","range","start","step","rangeDown","Math","abs","toInfinity","toNegativeInfinity","rangeTo","to","isNaN","matches","input","pattern","flags","ArgumentNullException","RegExp","indexOf","regex","match","exec","generate","unfold","valueFactory","skipSeed","map","max","takeUntil","aggregate","min","weave","mainEnumerator","dump","skipWhile","takeWhile","includeUntilValue","found","throwIfEndless","copyTo","target","elementSelector","dict","getValue","push","Lookup","toMap","obj","toDictionary","toJoinedString","separator","takeExceptLast","q","skipToLast","reverse","shuffle","capacity","selectedIndex","selectedValue","all","every","some","contains","lastIndexOf","intersect","outs","sequenceEqual","equalityComparer","e1","e2","orderBy","OrderedEnumerable","orderUsing","comparison","orderUsingReversed","orderByDescending","groupBy","_this","partitionBy","elements","Grouping","group","hasNext","lastOrDefault","average","numberOrNaN","sum","NaN","maxBy","minBy","sumInfinite","product","exists","quotient","last","memoize","cache","_source","_disposableObjectName","s","Array","isArray","_groupKey","_dictionary","compare","createOrderedEnumerable","thenBy","thenUsing","thenByDescending","thenUsingReversed","indexes","generateSortedIndexes"],"mappings":"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","file":"System.Linq/Linq.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Original: http://linqjs.codeplex.com/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../System/Compare\", \"../System/Collections/Array/Compare\", \"../System/Collections/Array/Utility\", \"../System/Collections/Enumeration/Enumerator\", \"../System/Types\", \"../System/Integer\", \"../System/Functions\", \"../System/Collections/Enumeration/ArrayEnumerator\", \"../System/Collections/Enumeration/EnumeratorBase\", \"../System/Collections/Dictionaries/Dictionary\", \"../System/Collections/Queue\", \"../System/Disposable/dispose\", \"../System/Disposable/DisposableBase\", \"../System/Collections/Enumeration/UnsupportedEnumerableException\", \"../System/Disposable/ObjectDisposedException\", \"../System/Collections/Sorting/KeySortedContext\", \"../System/Exceptions/ArgumentNullException\", \"../System/Exceptions/ArgumentOutOfRangeException\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var Values = require(\"../System/Compare\");\n var Arrays = require(\"../System/Collections/Array/Compare\");\n var ArrayUtility = require(\"../System/Collections/Array/Utility\");\n var Enumerator_1 = require(\"../System/Collections/Enumeration/Enumerator\");\n var Types_1 = require(\"../System/Types\");\n var Integer_1 = require(\"../System/Integer\");\n var Functions_1 = require(\"../System/Functions\");\n var ArrayEnumerator_1 = require(\"../System/Collections/Enumeration/ArrayEnumerator\");\n var EnumeratorBase_1 = require(\"../System/Collections/Enumeration/EnumeratorBase\");\n var Dictionary_1 = require(\"../System/Collections/Dictionaries/Dictionary\");\n var Queue_1 = require(\"../System/Collections/Queue\");\n var dispose_1 = require(\"../System/Disposable/dispose\");\n var DisposableBase_1 = require(\"../System/Disposable/DisposableBase\");\n var UnsupportedEnumerableException_1 = require(\"../System/Collections/Enumeration/UnsupportedEnumerableException\");\n var ObjectDisposedException_1 = require(\"../System/Disposable/ObjectDisposedException\");\n var KeySortedContext_1 = require(\"../System/Collections/Sorting/KeySortedContext\");\n var ArgumentNullException_1 = require(\"../System/Exceptions/ArgumentNullException\");\n var ArgumentOutOfRangeException_1 = require(\"../System/Exceptions/ArgumentOutOfRangeException\");\n var INVALID_DEFAULT = {};\n var VOID0 = void 0;\n var BREAK = function (element) { return 0; };\n var LinqFunctions = (function (_super) {\n __extends(LinqFunctions, _super);\n function LinqFunctions() {\n _super.apply(this, arguments);\n }\n LinqFunctions.prototype.Greater = function (a, b) {\n return a > b ? a : b;\n };\n LinqFunctions.prototype.Lesser = function (a, b) {\n return a < b ? a : b;\n };\n return LinqFunctions;\n }(Functions_1.Functions));\n var Functions = new LinqFunctions();\n Object.freeze(Functions);\n function getEmptyEnumerator() {\n return Enumerator_1.empty;\n }\n var InfiniteEnumerable = (function (_super) {\n __extends(InfiniteEnumerable, _super);\n function InfiniteEnumerable(_enumeratorFactory, finalizer) {\n _super.call(this, finalizer);\n this._enumeratorFactory = _enumeratorFactory;\n this._isEndless = true;\n }\n Object.defineProperty(InfiniteEnumerable.prototype, \"isEndless\", {\n get: function () {\n return this._isEndless;\n },\n enumerable: true,\n configurable: true\n });\n InfiniteEnumerable.prototype.getEnumerator = function () {\n this.throwIfDisposed();\n return this._enumeratorFactory();\n };\n InfiniteEnumerable.prototype._onDispose = function () {\n _super.prototype._onDispose.call(this);\n this._enumeratorFactory = null;\n };\n InfiniteEnumerable.prototype.asEnumerable = function () {\n var _ = this;\n _.throwIfDisposed();\n return new InfiniteEnumerable(function () { return _.getEnumerator(); });\n };\n InfiniteEnumerable.prototype.doAction = function (action, initializer, isEndless) {\n if (isEndless === void 0) { isEndless = this.isEndless; }\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(function () {\n var enumerator;\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n throwIfDisposed(disposed);\n if (initializer)\n initializer();\n index = 0;\n enumerator = _.getEnumerator();\n }, function (yielder) {\n throwIfDisposed(disposed);\n while (enumerator.moveNext()) {\n var actionResult = action(enumerator.current, index++);\n if (actionResult === false || actionResult === 0)\n return yielder.yieldBreak();\n if (actionResult !== 2)\n return yielder.yieldReturn(enumerator.current);\n }\n return false;\n }, function () {\n dispose_1.dispose(enumerator);\n }, isEndless);\n }, function () {\n disposed = true;\n }, isEndless);\n };\n InfiniteEnumerable.prototype.force = function () {\n this.throwIfDisposed();\n this.doAction(BREAK)\n .getEnumerator()\n .moveNext();\n };\n InfiniteEnumerable.prototype.skip = function (count) {\n var _ = this;\n _.throwIfDisposed();\n if (!isFinite(count))\n return Enumerable.empty();\n Integer_1.Integer.assert(count, \"count\");\n return this.doAction(function (element, index) {\n return index < count\n ? 2\n : 1;\n });\n };\n InfiniteEnumerable.prototype.take = function (count) {\n if (!(count > 0))\n return Enumerable.empty();\n var _ = this;\n _.throwIfDisposed();\n if (!isFinite(count))\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('count', count, 'Must be finite.');\n Integer_1.Integer.assert(count, \"count\");\n return _.doAction(function (element, index) { return index < count; }, null, false);\n };\n InfiniteEnumerable.prototype.elementAt = function (index) {\n var v = this.elementAtOrDefault(index, INVALID_DEFAULT);\n if (v === INVALID_DEFAULT)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('index', index, \"is greater than or equal to the number of elements in source\");\n return v;\n };\n InfiniteEnumerable.prototype.elementAtOrDefault = function (index, defaultValue) {\n if (defaultValue === void 0) { defaultValue = null; }\n var _ = this;\n _.throwIfDisposed();\n Integer_1.Integer.assertZeroOrGreater(index, 'index');\n var n = index;\n return dispose_1.using(this.getEnumerator(), function (e) {\n var i = 0;\n while (e.moveNext()) {\n if (i == n)\n return e.current;\n i++;\n }\n return defaultValue;\n });\n };\n InfiniteEnumerable.prototype.first = function () {\n var v = this.firstOrDefault(INVALID_DEFAULT);\n if (v === INVALID_DEFAULT)\n throw new Error(\"first:The sequence is empty.\");\n return v;\n };\n InfiniteEnumerable.prototype.firstOrDefault = function (defaultValue) {\n if (defaultValue === void 0) { defaultValue = null; }\n var _ = this;\n _.throwIfDisposed();\n return dispose_1.using(this.getEnumerator(), function (e) { return e.moveNext() ? e.current : defaultValue; });\n };\n InfiniteEnumerable.prototype.single = function () {\n var _ = this;\n _.throwIfDisposed();\n return dispose_1.using(this.getEnumerator(), function (e) {\n if (e.moveNext()) {\n var value = e.current;\n if (!e.moveNext())\n return value;\n throw new Error(\"single:sequence contains more than one element.\");\n }\n throw new Error(\"single:The sequence is empty.\");\n });\n };\n InfiniteEnumerable.prototype.singleOrDefault = function (defaultValue) {\n if (defaultValue === void 0) { defaultValue = null; }\n var _ = this;\n _.throwIfDisposed();\n return dispose_1.using(this.getEnumerator(), function (e) {\n if (e.moveNext()) {\n var value = e.current;\n if (!e.moveNext())\n return value;\n }\n return defaultValue;\n });\n };\n InfiniteEnumerable.prototype.any = function () {\n var _ = this;\n _.throwIfDisposed();\n return dispose_1.using(this.getEnumerator(), function (e) { return e.moveNext(); });\n };\n InfiniteEnumerable.prototype.isEmpty = function () {\n return !this.any();\n };\n InfiniteEnumerable.prototype.traverseBreadthFirst = function (childrenSelector, resultSelector) {\n if (resultSelector === void 0) { resultSelector = Functions.Identity; }\n var _ = this, isEndless = _._isEndless || null;\n return new Enumerable(function () {\n var enumerator;\n var nestLevel = 0;\n var buffer, len;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n nestLevel = 0;\n buffer = [];\n len = 0;\n enumerator = _.getEnumerator();\n }, function (yielder) {\n while (true) {\n if (enumerator.moveNext()) {\n buffer[len++] = enumerator.current;\n return yielder.yieldReturn(resultSelector(enumerator.current, nestLevel));\n }\n if (!len)\n return yielder.yieldBreak();\n var next = Enumerable\n .from(buffer)\n .selectMany(childrenSelector);\n if (!next.any()) {\n return yielder.yieldBreak();\n }\n else {\n nestLevel++;\n buffer = [];\n len = 0;\n enumerator.dispose();\n enumerator = next.getEnumerator();\n }\n }\n }, function () {\n dispose_1.dispose(enumerator);\n buffer.length = 0;\n }, isEndless);\n }, null, isEndless);\n };\n InfiniteEnumerable.prototype.traverseDepthFirst = function (childrenSelector, resultSelector) {\n if (resultSelector === void 0) { resultSelector = Functions.Identity; }\n var _ = this, isEndless = _._isEndless || null;\n return new Enumerable(function () {\n var enumeratorStack = [];\n var enumerator;\n var len;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n enumerator = _.getEnumerator();\n len = 0;\n }, function (yielder) {\n while (true) {\n if (enumerator.moveNext()) {\n var value = resultSelector(enumerator.current, len);\n enumeratorStack[len++] = enumerator;\n var e = Enumerable.fromAny(childrenSelector(enumerator.current));\n enumerator = e ? e.getEnumerator() : Enumerator_1.empty;\n return yielder.yieldReturn(value);\n }\n if (len == 0)\n return false;\n enumerator.dispose();\n enumerator = enumeratorStack[--len];\n enumeratorStack.length = len;\n }\n }, function () {\n try {\n dispose_1.dispose(enumerator);\n }\n finally {\n dispose_1.dispose.these(enumeratorStack);\n }\n }, isEndless);\n }, null, isEndless);\n };\n InfiniteEnumerable.prototype.flatten = function () {\n var _ = this, isEndless = _._isEndless || null;\n return new Enumerable(function () {\n var enumerator;\n var middleEnumerator = null;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n enumerator = _.getEnumerator();\n }, function (yielder) {\n while (true) {\n if (middleEnumerator) {\n if (middleEnumerator.moveNext()) {\n return yielder.yieldReturn(middleEnumerator.current);\n }\n else {\n middleEnumerator.dispose();\n middleEnumerator = null;\n }\n }\n if (enumerator.moveNext()) {\n var c = enumerator.current;\n var e = !Types_1.Type.isString(c) && Enumerable.fromAny(c);\n if (e) {\n middleEnumerator\n = e\n .selectMany(Functions.Identity)\n .flatten()\n .getEnumerator();\n continue;\n }\n else {\n return yielder.yieldReturn(c);\n }\n }\n return yielder.yieldBreak();\n }\n }, function () {\n dispose_1.dispose(enumerator, middleEnumerator);\n }, isEndless);\n }, null, isEndless);\n };\n InfiniteEnumerable.prototype.pairwise = function (selector) {\n var _ = this;\n return new Enumerable(function () {\n var enumerator;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n enumerator = _.getEnumerator();\n enumerator.moveNext();\n }, function (yielder) {\n var prev = enumerator.current;\n return enumerator.moveNext()\n && yielder.yieldReturn(selector(prev, enumerator.current));\n }, function () {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, null, _._isEndless);\n };\n InfiniteEnumerable.prototype.scan = function (func, seed) {\n var isUseSeed = seed !== VOID0;\n var _ = this;\n return new Enumerable(function () {\n var enumerator;\n var value;\n var isFirst;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n enumerator = _.getEnumerator();\n isFirst = true;\n }, function (yielder) {\n if (isFirst) {\n isFirst = false;\n return isUseSeed\n ? yielder.yieldReturn(value = seed)\n : enumerator.moveNext() && yielder.yieldReturn(value\n = enumerator.current);\n }\n return (enumerator.moveNext())\n ? yielder.yieldReturn(value = func(value, enumerator.current))\n : false;\n }, function () {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, null, _._isEndless);\n };\n InfiniteEnumerable.prototype.select = function (selector) {\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(function () {\n var enumerator;\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n throwIfDisposed(disposed);\n index = 0;\n enumerator = _.getEnumerator();\n }, function (yielder) {\n throwIfDisposed(disposed);\n return enumerator.moveNext()\n ? yielder.yieldReturn(selector(enumerator.current, index++))\n : yielder.yieldBreak();\n }, function () {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, function () {\n disposed = true;\n }, _._isEndless);\n };\n InfiniteEnumerable.prototype._selectMany = function (collectionSelector, resultSelector) {\n var _ = this, isEndless = _._isEndless || null;\n if (!resultSelector)\n resultSelector = function (a, b) { return b; };\n return new Enumerable(function () {\n var enumerator;\n var middleEnumerator;\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n enumerator = _.getEnumerator();\n middleEnumerator = undefined;\n index = 0;\n }, function (yielder) {\n if (middleEnumerator === VOID0 && !enumerator.moveNext())\n return false;\n do {\n if (!middleEnumerator) {\n var middleSeq = collectionSelector(enumerator.current, index++);\n if (!middleSeq)\n continue;\n middleEnumerator = Enumerator_1.from(middleSeq);\n }\n if (middleEnumerator.moveNext())\n return yielder.yieldReturn(resultSelector(enumerator.current, middleEnumerator.current));\n middleEnumerator.dispose();\n middleEnumerator = null;\n } while (enumerator.moveNext());\n return false;\n }, function () {\n dispose_1.dispose(enumerator, middleEnumerator);\n enumerator = null;\n middleEnumerator = null;\n }, isEndless);\n }, null, isEndless);\n };\n InfiniteEnumerable.prototype.selectMany = function (collectionSelector, resultSelector) {\n return this._selectMany(collectionSelector, resultSelector);\n };\n InfiniteEnumerable.prototype._choose = function (selector) {\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(function () {\n var enumerator;\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n throwIfDisposed(disposed);\n index = 0;\n enumerator = _.getEnumerator();\n }, function (yielder) {\n throwIfDisposed(disposed);\n while (enumerator.moveNext()) {\n var result = selector(enumerator.current, index++);\n if (result !== null && result !== VOID0)\n return yielder.yieldReturn(result);\n }\n return false;\n }, function () {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, function () {\n disposed = true;\n }, _._isEndless);\n };\n InfiniteEnumerable.prototype.choose = function (selector) {\n if (selector === void 0) { selector = Functions.Identity; }\n return this._choose(selector);\n };\n InfiniteEnumerable.prototype.where = function (predicate) {\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(function () {\n var enumerator;\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n throwIfDisposed(disposed);\n index = 0;\n enumerator = _.getEnumerator();\n }, function (yielder) {\n throwIfDisposed(disposed);\n while (enumerator.moveNext()) {\n if (predicate(enumerator.current, index++))\n return yielder.yieldReturn(enumerator.current);\n }\n return false;\n }, function () {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, function () {\n disposed = true;\n }, _._isEndless);\n };\n InfiniteEnumerable.prototype.ofType = function (type) {\n var typeName;\n switch (type) {\n case Number:\n typeName = Types_1.Type.NUMBER;\n break;\n case String:\n typeName = Types_1.Type.STRING;\n break;\n case Boolean:\n typeName = Types_1.Type.BOOLEAN;\n break;\n case Function:\n typeName = Types_1.Type.FUNCTION;\n break;\n default:\n return this\n .where(function (x) { return x instanceof type; });\n }\n return this\n .choose()\n .where(function (x) { return (typeof x) === typeName; });\n };\n InfiniteEnumerable.prototype.except = function (second, compareSelector) {\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(function () {\n var enumerator;\n var keys;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n throwIfDisposed(disposed);\n enumerator = _.getEnumerator();\n keys = new Dictionary_1.Dictionary(compareSelector);\n if (second)\n Enumerator_1.forEach(second, function (key) { return keys.addByKeyValue(key, true); });\n }, function (yielder) {\n throwIfDisposed(disposed);\n while (enumerator.moveNext()) {\n var current = enumerator.current;\n if (!keys.containsKey(current)) {\n keys.addByKeyValue(current, true);\n return yielder.yieldReturn(current);\n }\n }\n return false;\n }, function () {\n dispose_1.dispose(enumerator);\n keys.clear();\n }, _._isEndless);\n }, function () {\n disposed = true;\n }, _._isEndless);\n };\n InfiniteEnumerable.prototype.distinct = function (compareSelector) {\n return this.except(null, compareSelector);\n };\n InfiniteEnumerable.prototype.distinctUntilChanged = function (compareSelector) {\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(function () {\n var enumerator;\n var compareKey;\n var initial = true;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n throwIfDisposed(disposed);\n enumerator = _.getEnumerator();\n }, function (yielder) {\n throwIfDisposed(disposed);\n while (enumerator.moveNext()) {\n var key = compareSelector(enumerator.current);\n if (initial) {\n initial = false;\n }\n else if (Values.areEqual(compareKey, key)) {\n continue;\n }\n compareKey = key;\n return yielder.yieldReturn(enumerator.current);\n }\n return false;\n }, function () {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, function () {\n disposed = true;\n }, _._isEndless);\n };\n InfiniteEnumerable.prototype.defaultIfEmpty = function (defaultValue) {\n if (defaultValue === void 0) { defaultValue = null; }\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(function () {\n var enumerator;\n var isFirst;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n isFirst = true;\n throwIfDisposed(disposed);\n enumerator = _.getEnumerator();\n }, function (yielder) {\n throwIfDisposed(disposed);\n if (enumerator.moveNext()) {\n isFirst = false;\n return yielder.yieldReturn(enumerator.current);\n }\n else if (isFirst) {\n isFirst = false;\n return yielder.yieldReturn(defaultValue);\n }\n return false;\n }, function () {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, null, _._isEndless);\n };\n InfiniteEnumerable.prototype.zip = function (second, resultSelector) {\n var _ = this;\n _.throwIfDisposed();\n return new Enumerable(function () {\n var firstEnumerator;\n var secondEnumerator;\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n index = 0;\n firstEnumerator = _.getEnumerator();\n secondEnumerator = Enumerator_1.from(second);\n }, function (yielder) { return firstEnumerator.moveNext()\n && secondEnumerator.moveNext()\n && yielder.yieldReturn(resultSelector(firstEnumerator.current, secondEnumerator.current, index++)); }, function () {\n dispose_1.dispose(firstEnumerator, secondEnumerator);\n });\n });\n };\n InfiniteEnumerable.prototype.zipMultiple = function (second, resultSelector) {\n var _ = this;\n _.throwIfDisposed();\n if (!second.length)\n return Enumerable.empty();\n return new Enumerable(function () {\n var secondTemp;\n var firstEnumerator;\n var secondEnumerator;\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n secondTemp = new Queue_1.Queue(second);\n index = 0;\n firstEnumerator = _.getEnumerator();\n secondEnumerator = null;\n }, function (yielder) {\n if (firstEnumerator.moveNext()) {\n while (true) {\n while (!secondEnumerator) {\n if (secondTemp.count) {\n var next = secondTemp.dequeue();\n if (next)\n secondEnumerator = Enumerator_1.from(next);\n }\n else\n return yielder.yieldBreak();\n }\n if (secondEnumerator.moveNext())\n return yielder.yieldReturn(resultSelector(firstEnumerator.current, secondEnumerator.current, index++));\n secondEnumerator.dispose();\n secondEnumerator = null;\n }\n }\n return yielder.yieldBreak();\n }, function () {\n dispose_1.dispose(firstEnumerator, secondTemp);\n });\n });\n };\n InfiniteEnumerable.prototype.join = function (inner, outerKeySelector, innerKeySelector, resultSelector, compareSelector) {\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\n var _ = this;\n return new Enumerable(function () {\n var outerEnumerator;\n var lookup;\n var innerElements = null;\n var innerCount = 0;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n outerEnumerator = _.getEnumerator();\n lookup = Enumerable.from(inner)\n .toLookup(innerKeySelector, Functions.Identity, compareSelector);\n }, function (yielder) {\n while (true) {\n if (innerElements != null) {\n var innerElement = innerElements[innerCount++];\n if (innerElement !== VOID0)\n return yielder.yieldReturn(resultSelector(outerEnumerator.current, innerElement));\n innerElement = null;\n innerCount = 0;\n }\n if (outerEnumerator.moveNext()) {\n var key = outerKeySelector(outerEnumerator.current);\n innerElements = lookup.get(key);\n }\n else {\n return yielder.yieldBreak();\n }\n }\n }, function () {\n dispose_1.dispose(outerEnumerator);\n });\n });\n };\n InfiniteEnumerable.prototype.groupJoin = function (inner, outerKeySelector, innerKeySelector, resultSelector, compareSelector) {\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\n var _ = this;\n return new Enumerable(function () {\n var enumerator;\n var lookup = null;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n enumerator = _.getEnumerator();\n lookup = Enumerable.from(inner)\n .toLookup(innerKeySelector, Functions.Identity, compareSelector);\n }, function (yielder) {\n return enumerator.moveNext()\n && yielder.yieldReturn(resultSelector(enumerator.current, lookup.get(outerKeySelector(enumerator.current))));\n }, function () {\n dispose_1.dispose(enumerator);\n });\n });\n };\n InfiniteEnumerable.prototype.merge = function (enumerables) {\n var _ = this, isEndless = _._isEndless || null;\n if (!enumerables || enumerables.length == 0)\n return _;\n return new Enumerable(function () {\n var enumerator;\n var queue;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n enumerator = _.getEnumerator();\n queue = new Queue_1.Queue(enumerables);\n }, function (yielder) {\n while (true) {\n while (!enumerator && queue.count) {\n enumerator = Enumerator_1.from(queue.dequeue());\n }\n if (enumerator && enumerator.moveNext())\n return yielder.yieldReturn(enumerator.current);\n if (enumerator) {\n enumerator.dispose();\n enumerator = null;\n continue;\n }\n return yielder.yieldBreak();\n }\n }, function () {\n dispose_1.dispose(enumerator, queue);\n }, isEndless);\n }, null, isEndless);\n };\n InfiniteEnumerable.prototype.concat = function () {\n var enumerables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n enumerables[_i - 0] = arguments[_i];\n }\n return this.merge(enumerables);\n };\n InfiniteEnumerable.prototype.union = function (second, compareSelector) {\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\n var _ = this, isEndless = _._isEndless || null;\n return new Enumerable(function () {\n var firstEnumerator;\n var secondEnumerator;\n var keys;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n firstEnumerator = _.getEnumerator();\n keys = new Dictionary_1.Dictionary(compareSelector);\n }, function (yielder) {\n var current;\n if (secondEnumerator === VOID0) {\n while (firstEnumerator.moveNext()) {\n current = firstEnumerator.current;\n if (!keys.containsKey(current)) {\n keys.addByKeyValue(current, null);\n return yielder.yieldReturn(current);\n }\n }\n secondEnumerator = Enumerator_1.from(second);\n }\n while (secondEnumerator.moveNext()) {\n current = secondEnumerator.current;\n if (!keys.containsKey(current)) {\n keys.addByKeyValue(current, null);\n return yielder.yieldReturn(current);\n }\n }\n return false;\n }, function () {\n dispose_1.dispose(firstEnumerator, secondEnumerator);\n }, isEndless);\n }, null, isEndless);\n };\n InfiniteEnumerable.prototype.insertAt = function (index, other) {\n Integer_1.Integer.assertZeroOrGreater(index, 'index');\n var n = index;\n var _ = this, isEndless = _._isEndless || null;\n _.throwIfDisposed();\n return new Enumerable(function () {\n var firstEnumerator;\n var secondEnumerator;\n var count = 0;\n var isEnumerated = false;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n count = 0;\n firstEnumerator = _.getEnumerator();\n secondEnumerator = Enumerator_1.from(other);\n isEnumerated = false;\n }, function (yielder) {\n if (count == n) {\n isEnumerated = true;\n if (secondEnumerator.moveNext())\n return yielder.yieldReturn(secondEnumerator.current);\n }\n if (firstEnumerator.moveNext()) {\n count++;\n return yielder.yieldReturn(firstEnumerator.current);\n }\n return !isEnumerated\n && secondEnumerator.moveNext()\n && yielder.yieldReturn(secondEnumerator.current);\n }, function () {\n dispose_1.dispose(firstEnumerator, secondEnumerator);\n }, isEndless);\n }, null, isEndless);\n };\n InfiniteEnumerable.prototype.alternateMultiple = function (sequence) {\n var _ = this;\n return new Enumerable(function () {\n var buffer, mode, enumerator, alternateEnumerator;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n alternateEnumerator = new ArrayEnumerator_1.ArrayEnumerator(Enumerable.toArray(sequence));\n enumerator = _.getEnumerator();\n var hasAtLeastOne = enumerator.moveNext();\n mode = hasAtLeastOne\n ? 1\n : 0;\n if (hasAtLeastOne)\n buffer = enumerator.current;\n }, function (yielder) {\n switch (mode) {\n case 0:\n return yielder.yieldBreak();\n case 2:\n if (alternateEnumerator.moveNext())\n return yielder.yieldReturn(alternateEnumerator.current);\n alternateEnumerator.reset();\n mode = 1;\n break;\n }\n var latest = buffer;\n var another = enumerator.moveNext();\n mode = another\n ? 2\n : 0;\n if (another)\n buffer = enumerator.current;\n return yielder.yieldReturn(latest);\n }, function () {\n dispose_1.dispose(enumerator, alternateEnumerator);\n }, _._isEndless);\n }, null, _._isEndless);\n };\n InfiniteEnumerable.prototype.alternateSingle = function (value) {\n return this.alternateMultiple(Enumerable.make(value));\n };\n InfiniteEnumerable.prototype.alternate = function () {\n var sequence = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n sequence[_i - 0] = arguments[_i];\n }\n return this.alternateMultiple(sequence);\n };\n InfiniteEnumerable.prototype.catchError = function (handler) {\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(function () {\n var enumerator;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n try {\n throwIfDisposed(disposed);\n enumerator = _.getEnumerator();\n }\n catch (e) {\n }\n }, function (yielder) {\n try {\n throwIfDisposed(disposed);\n if (enumerator.moveNext())\n return yielder.yieldReturn(enumerator.current);\n }\n catch (e) {\n handler(e);\n }\n return false;\n }, function () {\n dispose_1.dispose(enumerator);\n });\n });\n };\n InfiniteEnumerable.prototype.finallyAction = function (action) {\n var _ = this, disposed = !_.throwIfDisposed();\n return new Enumerable(function () {\n var enumerator;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n throwIfDisposed(disposed);\n enumerator = _.getEnumerator();\n }, function (yielder) {\n throwIfDisposed(disposed);\n return (enumerator.moveNext())\n ? yielder.yieldReturn(enumerator.current)\n : false;\n }, function () {\n try {\n dispose_1.dispose(enumerator);\n }\n finally {\n action();\n }\n });\n });\n };\n InfiniteEnumerable.prototype.buffer = function (size) {\n if (size < 1 || !isFinite(size))\n throw new Error(\"Invalid buffer size.\");\n Integer_1.Integer.assert(size, \"size\");\n var _ = this, len;\n return new Enumerable(function () {\n var enumerator;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n enumerator = _.getEnumerator();\n }, function (yielder) {\n var array = ArrayUtility.initialize(size);\n len = 0;\n while (len < size && enumerator.moveNext()) {\n array[len++] = enumerator.current;\n }\n array.length = len;\n return len && yielder.yieldReturn(array);\n }, function () {\n dispose_1.dispose(enumerator);\n }, _._isEndless);\n }, null, _._isEndless);\n };\n InfiniteEnumerable.prototype.share = function () {\n var _ = this;\n _.throwIfDisposed();\n var sharedEnumerator;\n return new Enumerable(function () {\n return sharedEnumerator || (sharedEnumerator = _.getEnumerator());\n }, function () {\n dispose_1.dispose(sharedEnumerator);\n }, _._isEndless);\n };\n return InfiniteEnumerable;\n }(DisposableBase_1.DisposableBase));\n exports.InfiniteEnumerable = InfiniteEnumerable;\n var Enumerable = (function (_super) {\n __extends(Enumerable, _super);\n function Enumerable(enumeratorFactory, finalizer, isEndless) {\n if (isEndless === void 0) { isEndless = null; }\n _super.call(this, enumeratorFactory, finalizer);\n this._isEndless = isEndless;\n }\n Enumerable.from = function (source) {\n var e = Enumerable.fromAny(source);\n if (!e)\n throw new UnsupportedEnumerableException_1.UnsupportedEnumerableException();\n return e;\n };\n Enumerable.fromAny = function (source, defaultEnumerable) {\n if (defaultEnumerable === void 0) { defaultEnumerable = null; }\n if (Types_1.Type.isObject(source) || Types_1.Type.isString(source)) {\n if (source instanceof Enumerable)\n return source;\n if (Types_1.Type.isArrayLike(source))\n return new ArrayEnumerable(source);\n if (Enumerator_1.isEnumerable(source))\n return new Enumerable(function () { return source.getEnumerator(); }, null, source.isEndless);\n }\n return defaultEnumerable;\n };\n Enumerable.fromOrEmpty = function (source) {\n return Enumerable.fromAny(source) || Enumerable.empty();\n };\n Enumerable.toArray = function (source) {\n if (source instanceof Enumerable)\n return source.toArray();\n return Enumerator_1.toArray(source);\n };\n Enumerable.choice = function (values) {\n var len = values && values.length;\n if (!len || !isFinite(len))\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('length', length);\n return new InfiniteEnumerable(function () { return new EnumeratorBase_1.EnumeratorBase(null, function (yielder) {\n return yielder.yieldReturn(Integer_1.Integer.random.select(values));\n }, true); });\n };\n Enumerable.chooseFrom = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i - 0] = arguments[_i];\n }\n return Enumerable.choice(args);\n };\n Enumerable.cycle = function (values) {\n var len = values && values.length;\n if (!len || !isFinite(len))\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('length', length);\n return new InfiniteEnumerable(function () {\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n index = 0;\n }, function (yielder) {\n if (index >= values.length)\n index = 0;\n return yielder.yieldReturn(values[index++]);\n }, true);\n });\n };\n Enumerable.cycleThrough = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i - 0] = arguments[_i];\n }\n return Enumerable.cycle(args);\n };\n Enumerable.empty = function () {\n return new FiniteEnumerable(getEmptyEnumerator);\n };\n Enumerable.repeat = function (element, count) {\n if (count === void 0) { count = Infinity; }\n if (!(count > 0))\n return Enumerable.empty();\n return isFinite(count) && Integer_1.Integer.assert(count, \"count\")\n ? new FiniteEnumerable(function () {\n var c = count;\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(function () { index = 0; }, function (yielder) { return (index++ < c) && yielder.yieldReturn(element); }, null, false);\n })\n : new Enumerable(function () {\n return new EnumeratorBase_1.EnumeratorBase(null, function (yielder) { return yielder.yieldReturn(element); }, true);\n });\n };\n Enumerable.repeatWithFinalize = function (initializer, finalizer) {\n return new InfiniteEnumerable(function () {\n var element;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n element = initializer();\n }, function (yielder) { return yielder.yieldReturn(element); }, function () {\n finalizer(element);\n }, true);\n });\n };\n Enumerable.make = function (element) {\n return Enumerable.repeat(element, 1);\n };\n Enumerable.range = function (start, count, step) {\n if (step === void 0) { step = 1; }\n if (!isFinite(start))\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(\"start\", start, \"Must be a finite number.\");\n if (!(count > 0))\n return Enumerable.empty();\n if (!step)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(\"step\", step, \"Must be a valid value\");\n if (!isFinite(step))\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(\"step\", step, \"Must be a finite number.\");\n Integer_1.Integer.assert(count, \"count\");\n return new FiniteEnumerable(function () {\n var value;\n var c = count;\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n index = 0;\n value = start;\n }, function (yielder) {\n var result = index++ < c\n && yielder.yieldReturn(value);\n if (result && index < count)\n value += step;\n return result;\n }, false);\n });\n };\n Enumerable.rangeDown = function (start, count, step) {\n if (step === void 0) { step = 1; }\n step = Math.abs(step) * -1;\n return Enumerable.range(start, count, step);\n };\n Enumerable.toInfinity = function (start, step) {\n if (start === void 0) { start = 0; }\n if (step === void 0) { step = 1; }\n if (!isFinite(start))\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(\"start\", start, \"Must be a finite number.\");\n if (!step)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(\"step\", step, \"Must be a valid value\");\n if (!isFinite(step))\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(\"step\", step, \"Must be a finite number.\");\n return new InfiniteEnumerable(function () {\n var value;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n value = start;\n }, function (yielder) {\n var current = value;\n value += step;\n return yielder.yieldReturn(current);\n }, true);\n });\n };\n Enumerable.toNegativeInfinity = function (start, step) {\n if (start === void 0) { start = 0; }\n if (step === void 0) { step = 1; }\n return Enumerable.toInfinity(start, -step);\n };\n Enumerable.rangeTo = function (start, to, step) {\n if (step === void 0) { step = 1; }\n if (isNaN(to) || !isFinite(to))\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(\"to\", to, \"Must be a finite number.\");\n if (step && !isFinite(step))\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(\"step\", step, \"Must be a finite non-zero number.\");\n step = Math.abs(step);\n return new FiniteEnumerable(function () {\n var value;\n return new EnumeratorBase_1.EnumeratorBase(function () { value = start; }, start < to\n ?\n function (yielder) {\n var result = value <= to && yielder.yieldReturn(value);\n if (result)\n value += step;\n return result;\n }\n :\n function (yielder) {\n var result = value >= to && yielder.yieldReturn(value);\n if (result)\n value -= step;\n return result;\n }, false);\n });\n };\n Enumerable.matches = function (input, pattern, flags) {\n if (flags === void 0) { flags = \"\"; }\n if (input === null || input === VOID0)\n throw new ArgumentNullException_1.ArgumentNullException(\"input\");\n var type = typeof input;\n if (type != Types_1.Type.STRING)\n throw new Error(\"Cannot exec RegExp matches of type '\" + type + \"'.\");\n if (pattern instanceof RegExp) {\n flags += (pattern.ignoreCase) ? \"i\" : \"\";\n flags += (pattern.multiline) ? \"m\" : \"\";\n pattern = pattern.source;\n }\n if (flags.indexOf(\"g\") === -1)\n flags += \"g\";\n return new FiniteEnumerable(function () {\n var regex;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n regex = new RegExp(pattern, flags);\n }, function (yielder) {\n var match = regex.exec(input);\n return (match !== null) ? yielder.yieldReturn(match) : false;\n });\n });\n };\n Enumerable.generate = function (factory, count) {\n if (count === void 0) { count = Infinity; }\n if (isNaN(count) || count <= 0)\n return Enumerable.empty();\n return isFinite(count) && Integer_1.Integer.assert(count, \"count\")\n ?\n new FiniteEnumerable(function () {\n var c = count;\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n index = 0;\n }, function (yielder) {\n var current = index++;\n return current < c && yielder.yieldReturn(factory(current));\n }, false);\n })\n :\n new InfiniteEnumerable(function () {\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n index = 0;\n }, function (yielder) { return yielder.yieldReturn(factory(index++)); }, true);\n });\n };\n Enumerable.unfold = function (seed, valueFactory, skipSeed) {\n if (skipSeed === void 0) { skipSeed = false; }\n return new InfiniteEnumerable(function () {\n var index = 0;\n var value;\n var isFirst;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n index = 0;\n value = seed;\n isFirst = !skipSeed;\n }, function (yielder) {\n var i = index++;\n if (isFirst)\n isFirst = false;\n else\n value = valueFactory(value, i);\n return yielder.yieldReturn(value);\n }, true);\n });\n };\n Enumerable.forEach = function (enumerable, action) {\n Enumerator_1.forEach(enumerable, action);\n };\n Enumerable.map = function (enumerable, selector) {\n return Enumerator_1.map(enumerable, selector);\n };\n Enumerable.max = function (values) {\n return values\n .takeUntil(function (v) { return v == +Infinity; }, true)\n .aggregate(Functions.Greater);\n };\n Enumerable.min = function (values) {\n return values\n .takeUntil(function (v) { return v == -Infinity; }, true)\n .aggregate(Functions.Lesser);\n };\n Enumerable.weave = function (enumerables) {\n if (!enumerables)\n throw new ArgumentNullException_1.ArgumentNullException('enumerables');\n return new Enumerable(function () {\n var queue;\n var mainEnumerator;\n var index;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n index = 0;\n queue = new Queue_1.Queue();\n mainEnumerator = Enumerator_1.from(enumerables);\n }, function (yielder) {\n var e;\n if (mainEnumerator) {\n while (!e && mainEnumerator.moveNext()) {\n var c = mainEnumerator.current;\n e = nextEnumerator(queue, c && Enumerator_1.from(c));\n }\n if (!e)\n mainEnumerator = null;\n }\n while (!e && queue.count) {\n e = nextEnumerator(queue, queue.dequeue());\n }\n return e\n ? yielder.yieldReturn(e.current)\n : yielder.yieldBreak();\n }, function () {\n dispose_1.dispose.these(queue.dump());\n dispose_1.dispose(mainEnumerator, queue);\n mainEnumerator = null;\n queue = null;\n });\n });\n };\n Enumerable.prototype.doAction = function (action, initializer, isEndless) {\n if (isEndless === void 0) { isEndless = this.isEndless; }\n return _super.prototype.doAction.call(this, action, initializer, isEndless);\n };\n Enumerable.prototype.skip = function (count) {\n return _super.prototype.skip.call(this, count);\n };\n Enumerable.prototype.skipWhile = function (predicate) {\n this.throwIfDisposed();\n return this.doAction(function (element, index) {\n return predicate(element, index)\n ? 2\n : 1;\n });\n };\n Enumerable.prototype.takeWhile = function (predicate) {\n this.throwIfDisposed();\n if (!predicate)\n throw new ArgumentNullException_1.ArgumentNullException('predicate');\n return this.doAction(function (element, index) {\n return predicate(element, index)\n ? 1\n : 0;\n }, null, null);\n };\n Enumerable.prototype.takeUntil = function (predicate, includeUntilValue) {\n this.throwIfDisposed();\n if (!predicate)\n throw new ArgumentNullException_1.ArgumentNullException('predicate');\n if (!includeUntilValue)\n return this.doAction(function (element, index) {\n return predicate(element, index)\n ? 0\n : 1;\n }, null, null);\n var found = false;\n return this.doAction(function (element, index) {\n if (found)\n return 0;\n found = predicate(element, index);\n return 1;\n }, function () {\n found = false;\n }, null);\n };\n Enumerable.prototype.forEach = function (action) {\n var _ = this;\n _.throwIfDisposed();\n Enumerator_1.throwIfEndless(_.isEndless);\n var index = 0;\n dispose_1.using(_.getEnumerator(), function (e) {\n Enumerator_1.throwIfEndless(e.isEndless);\n while (_.throwIfDisposed() && e.moveNext()) {\n if (action(e.current, index++) === false)\n break;\n }\n });\n };\n Enumerable.prototype.toArray = function (predicate) {\n return predicate\n ? this.where(predicate).toArray()\n : this.copyTo([]);\n };\n Enumerable.prototype.copyTo = function (target, index) {\n if (index === void 0) { index = 0; }\n this.throwIfDisposed();\n if (!target)\n throw new ArgumentNullException_1.ArgumentNullException(\"target\");\n Integer_1.Integer.assertZeroOrGreater(index);\n Enumerator_1.forEach(this, function (x, i) {\n target[i + index] = x;\n });\n return target;\n };\n Enumerable.prototype.toLookup = function (keySelector, elementSelector, compareSelector) {\n if (elementSelector === void 0) { elementSelector = Functions.Identity; }\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\n var dict = new Dictionary_1.Dictionary(compareSelector);\n this.forEach(function (x) {\n var key = keySelector(x);\n var element = elementSelector(x);\n var array = dict.getValue(key);\n if (array !== VOID0)\n array.push(element);\n else\n dict.addByKeyValue(key, [element]);\n });\n return new Lookup(dict);\n };\n Enumerable.prototype.toMap = function (keySelector, elementSelector) {\n var obj = {};\n this.forEach(function (x, i) {\n obj[keySelector(x, i)] = elementSelector(x, i);\n });\n return obj;\n };\n Enumerable.prototype.toDictionary = function (keySelector, elementSelector, compareSelector) {\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\n var dict = new Dictionary_1.Dictionary(compareSelector);\n this.forEach(function (x, i) { return dict.addByKeyValue(keySelector(x, i), elementSelector(x, i)); });\n return dict;\n };\n Enumerable.prototype.toJoinedString = function (separator, selector) {\n if (separator === void 0) { separator = \"\"; }\n if (selector === void 0) { selector = Functions.Identity; }\n return this.select(selector).toArray().join(separator);\n };\n Enumerable.prototype.takeExceptLast = function (count) {\n if (count === void 0) { count = 1; }\n var _ = this;\n if (!(count > 0))\n return _;\n if (!isFinite(count))\n return Enumerable.empty();\n Integer_1.Integer.assert(count, \"count\");\n var c = count;\n return new Enumerable(function () {\n var enumerator;\n var q;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n enumerator = _.getEnumerator();\n q = new Queue_1.Queue();\n }, function (yielder) {\n while (enumerator.moveNext()) {\n q.enqueue(enumerator.current);\n if (q.count > c)\n return yielder.yieldReturn(q.dequeue());\n }\n return false;\n }, function () {\n dispose_1.dispose(enumerator, q);\n });\n });\n };\n Enumerable.prototype.skipToLast = function (count) {\n if (!(count > 0))\n return Enumerable.empty();\n var _ = this;\n if (!isFinite(count))\n return _;\n Integer_1.Integer.assert(count, \"count\");\n return _.reverse()\n .take(count)\n .reverse();\n };\n Enumerable.prototype.where = function (predicate) {\n return _super.prototype.where.call(this, predicate);\n };\n Enumerable.prototype.select = function (selector) {\n return _super.prototype.select.call(this, selector);\n };\n Enumerable.prototype.selectMany = function (collectionSelector, resultSelector) {\n return this._selectMany(collectionSelector, resultSelector);\n };\n Enumerable.prototype.choose = function (selector) {\n if (selector === void 0) { selector = Functions.Identity; }\n return this._choose(selector);\n };\n Enumerable.prototype.reverse = function () {\n var _ = this, disposed = !_.throwIfDisposed();\n Enumerator_1.throwIfEndless(_._isEndless);\n return new Enumerable(function () {\n var buffer;\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n throwIfDisposed(disposed);\n buffer = _.toArray();\n index = buffer.length;\n }, function (yielder) { return index && yielder.yieldReturn(buffer[--index]); }, function () {\n buffer.length = 0;\n });\n }, function () {\n disposed = true;\n });\n };\n Enumerable.prototype.shuffle = function () {\n var _ = this, disposed = !_.throwIfDisposed();\n Enumerator_1.throwIfEndless(_._isEndless);\n return new Enumerable(function () {\n var buffer;\n var capacity;\n var len;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n throwIfDisposed(disposed);\n buffer = _.toArray();\n capacity = len = buffer.length;\n }, function (yielder) {\n if (!len)\n return yielder.yieldBreak();\n var selectedIndex = Integer_1.Integer.random(len);\n var selectedValue = buffer[selectedIndex];\n buffer[selectedIndex] = buffer[--len];\n buffer[len] = null;\n if (len % 32 == 0)\n buffer.length = len;\n return yielder.yieldReturn(selectedValue);\n }, function () {\n buffer.length = 0;\n });\n }, function () {\n disposed = true;\n });\n };\n Enumerable.prototype.count = function (predicate) {\n var count = 0;\n this.forEach(predicate\n ?\n function (x, i) {\n if (predicate(x, i))\n ++count;\n }\n :\n function () {\n ++count;\n });\n return count;\n };\n Enumerable.prototype.all = function (predicate) {\n if (!predicate)\n throw new ArgumentNullException_1.ArgumentNullException(\"predicate\");\n var result = true;\n this.forEach(function (x, i) {\n if (!predicate(x, i)) {\n result = false;\n return false;\n }\n });\n return result;\n };\n Enumerable.prototype.every = function (predicate) {\n return this.all(predicate);\n };\n Enumerable.prototype.any = function (predicate) {\n if (!predicate)\n return _super.prototype.any.call(this);\n var result = false;\n this.forEach(function (x, i) {\n result = predicate(x, i);\n return !result;\n });\n return result;\n };\n Enumerable.prototype.some = function (predicate) {\n return this.any(predicate);\n };\n Enumerable.prototype.contains = function (value, compareSelector) {\n return compareSelector\n ? this.any(function (v) { return compareSelector(v) === compareSelector(value); })\n : this.any(function (v) { return v === value; });\n };\n Enumerable.prototype.indexOf = function (value, compareSelector) {\n var found = -1;\n this.forEach(compareSelector\n ?\n function (element, i) {\n if (Values.areEqual(compareSelector(element, i), compareSelector(value, i), true)) {\n found = i;\n return false;\n }\n }\n :\n function (element, i) {\n if (Values.areEqual(element, value, true)) {\n found = i;\n return false;\n }\n });\n return found;\n };\n Enumerable.prototype.lastIndexOf = function (value, compareSelector) {\n var result = -1;\n this.forEach(compareSelector\n ?\n function (element, i) {\n if (Values.areEqual(compareSelector(element, i), compareSelector(value, i), true))\n result\n = i;\n }\n :\n function (element, i) {\n if (Values.areEqual(element, value, true))\n result = i;\n });\n return result;\n };\n Enumerable.prototype.merge = function (enumerables) {\n return _super.prototype.merge.call(this, enumerables);\n };\n Enumerable.prototype.concat = function () {\n var enumerables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n enumerables[_i - 0] = arguments[_i];\n }\n return this.merge(enumerables);\n };\n Enumerable.prototype.intersect = function (second, compareSelector) {\n var _ = this;\n return new Enumerable(function () {\n var enumerator;\n var keys;\n var outs;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n enumerator = _.getEnumerator();\n keys = new Dictionary_1.Dictionary(compareSelector);\n outs = new Dictionary_1.Dictionary(compareSelector);\n Enumerator_1.forEach(second, function (key) {\n keys.addByKeyValue(key, true);\n });\n }, function (yielder) {\n while (enumerator.moveNext()) {\n var current = enumerator.current;\n if (!outs.containsKey(current) && keys.containsKey(current)) {\n outs.addByKeyValue(current, true);\n return yielder.yieldReturn(current);\n }\n }\n return yielder.yieldBreak();\n }, function () {\n dispose_1.dispose(enumerator, keys, outs);\n }, _._isEndless);\n }, null, _._isEndless);\n };\n Enumerable.prototype.sequenceEqual = function (second, equalityComparer) {\n if (equalityComparer === void 0) { equalityComparer = Values.areEqual; }\n return dispose_1.using(this.getEnumerator(), function (e1) { return dispose_1.using(Enumerator_1.from(second), function (e2) {\n Enumerator_1.throwIfEndless(e1.isEndless && e2.isEndless);\n while (e1.moveNext()) {\n if (!e2.moveNext() || !equalityComparer(e1.current, e2.current))\n return false;\n }\n return !e2.moveNext();\n }); });\n };\n Enumerable.prototype.ofType = function (type) {\n return _super.prototype.ofType.call(this, type);\n };\n Enumerable.prototype.except = function (second, compareSelector) {\n return _super.prototype.except.call(this, second, compareSelector);\n };\n Enumerable.prototype.distinct = function (compareSelector) {\n return _super.prototype.distinct.call(this, compareSelector);\n };\n Enumerable.prototype.distinctUntilChanged = function (compareSelector) {\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\n return _super.prototype.distinctUntilChanged.call(this, compareSelector);\n };\n Enumerable.prototype.orderBy = function (keySelector) {\n if (keySelector === void 0) { keySelector = Functions.Identity; }\n return new OrderedEnumerable(this, keySelector, 1);\n };\n Enumerable.prototype.orderUsing = function (comparison) {\n return new OrderedEnumerable(this, null, 1, null, comparison);\n };\n Enumerable.prototype.orderUsingReversed = function (comparison) {\n return new OrderedEnumerable(this, null, -1, null, comparison);\n };\n Enumerable.prototype.orderByDescending = function (keySelector) {\n if (keySelector === void 0) { keySelector = Functions.Identity; }\n return new OrderedEnumerable(this, keySelector, -1);\n };\n Enumerable.prototype.buffer = function (size) {\n return _super.prototype.buffer.call(this, size);\n };\n Enumerable.prototype.groupBy = function (keySelector, elementSelector, compareSelector) {\n var _this = this;\n if (!elementSelector)\n elementSelector = Functions.Identity;\n return new Enumerable(function () { return _this.toLookup(keySelector, elementSelector, compareSelector)\n .getEnumerator(); });\n };\n Enumerable.prototype.partitionBy = function (keySelector, elementSelector, resultSelector, compareSelector) {\n if (resultSelector === void 0) { resultSelector = function (key, elements) { return new Grouping(key, elements); }; }\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\n var _ = this;\n if (!elementSelector)\n elementSelector = Functions.Identity;\n return new Enumerable(function () {\n var enumerator;\n var key;\n var compareKey;\n var group;\n var len;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n enumerator = _.getEnumerator();\n if (enumerator.moveNext()) {\n key = keySelector(enumerator.current);\n compareKey = compareSelector(key);\n group = [elementSelector(enumerator.current)];\n len = 1;\n }\n else\n group = null;\n }, function (yielder) {\n if (!group)\n return yielder.yieldBreak();\n var hasNext, c;\n while ((hasNext = enumerator.moveNext())) {\n c = enumerator.current;\n if (compareKey === compareSelector(keySelector(c)))\n group[len++] = elementSelector(c);\n else\n break;\n }\n var result = resultSelector(key, group);\n if (hasNext) {\n c = enumerator.current;\n key = keySelector(c);\n compareKey = compareSelector(key);\n group = [elementSelector(c)];\n len = 1;\n }\n else {\n group = null;\n }\n return yielder.yieldReturn(result);\n }, function () {\n dispose_1.dispose(enumerator);\n group = null;\n });\n });\n };\n Enumerable.prototype.aggregate = function (func, seed) {\n return this.scan(func, seed).lastOrDefault();\n };\n Enumerable.prototype.average = function (selector) {\n if (selector === void 0) { selector = Types_1.Type.numberOrNaN; }\n var count = 0;\n var sum = this.sum(function (e, i) {\n count++;\n return selector(e, i);\n });\n return (isNaN(sum) || !count)\n ? NaN\n : (sum / count);\n };\n Enumerable.prototype.max = function () {\n return this.aggregate(Functions.Greater);\n };\n Enumerable.prototype.min = function () {\n return this.aggregate(Functions.Lesser);\n };\n Enumerable.prototype.maxBy = function (keySelector) {\n if (keySelector === void 0) { keySelector = Functions.Identity; }\n return this.aggregate(function (a, b) { return (keySelector(a) > keySelector(b)) ? a : b; });\n };\n Enumerable.prototype.minBy = function (keySelector) {\n if (keySelector === void 0) { keySelector = Functions.Identity; }\n return this.aggregate(function (a, b) { return (keySelector(a) < keySelector(b)) ? a : b; });\n };\n Enumerable.prototype.sum = function (selector) {\n if (selector === void 0) { selector = Types_1.Type.numberOrNaN; }\n var sum = 0;\n var sumInfinite = 0;\n this.forEach(function (x) {\n var value = selector(x);\n if (isNaN(value)) {\n sum = NaN;\n return false;\n }\n if (isFinite(value))\n sum += value;\n else\n sumInfinite +=\n value > 0 ?\n (+1) :\n (-1);\n });\n return isNaN(sum) ? NaN : (sumInfinite ? (sumInfinite * Infinity) : sum);\n };\n Enumerable.prototype.product = function (selector) {\n if (selector === void 0) { selector = Types_1.Type.numberOrNaN; }\n var result = 1, exists = false;\n this.forEach(function (x, i) {\n exists = true;\n var value = selector(x, i);\n if (isNaN(value)) {\n result = NaN;\n return false;\n }\n if (value == 0) {\n result = 0;\n return false;\n }\n result *= value;\n });\n return (exists && isNaN(result)) ? NaN : result;\n };\n Enumerable.prototype.quotient = function (selector) {\n if (selector === void 0) { selector = Types_1.Type.numberOrNaN; }\n var count = 0;\n var result = NaN;\n this.forEach(function (x, i) {\n var value = selector(x, i);\n count++;\n if (count === 1) {\n result = value;\n }\n else {\n if (isNaN(value) || value === 0 || !isFinite(value)) {\n result = NaN;\n return false;\n }\n result /= value;\n }\n });\n if (count === 1)\n result = NaN;\n return result;\n };\n Enumerable.prototype.last = function () {\n var _ = this;\n _.throwIfDisposed();\n var value = undefined;\n var found = false;\n _.forEach(function (x) {\n found = true;\n value = x;\n });\n if (!found)\n throw new Error(\"last:No element satisfies the condition.\");\n return value;\n };\n Enumerable.prototype.lastOrDefault = function (defaultValue) {\n if (defaultValue === void 0) { defaultValue = null; }\n var _ = this;\n _.throwIfDisposed();\n var value = undefined;\n var found = false;\n _.forEach(function (x) {\n found = true;\n value = x;\n });\n return (!found) ? defaultValue : value;\n };\n Enumerable.prototype.share = function () {\n return _super.prototype.share.call(this);\n };\n Enumerable.prototype.catchError = function (handler) {\n return _super.prototype.catchError.call(this, handler);\n };\n Enumerable.prototype.finallyAction = function (action) {\n return _super.prototype.finallyAction.call(this, action);\n };\n Enumerable.prototype.memoize = function () {\n var _ = this, disposed = !_.throwIfDisposed();\n var cache;\n var enumerator;\n return new Enumerable(function () {\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n throwIfDisposed(disposed);\n if (!enumerator)\n enumerator = _.getEnumerator();\n if (!cache)\n cache = [];\n index = 0;\n }, function (yielder) {\n throwIfDisposed(disposed);\n var i = index++;\n if (i >= cache.length) {\n return (enumerator.moveNext())\n ? yielder.yieldReturn(cache[i] = enumerator.current)\n : false;\n }\n return yielder.yieldReturn(cache[i]);\n });\n }, function () {\n disposed = true;\n if (cache)\n cache.length = 0;\n cache = null;\n dispose_1.dispose(enumerator);\n enumerator = null;\n });\n };\n return Enumerable;\n }(InfiniteEnumerable));\n exports.Enumerable = Enumerable;\n var FiniteEnumerable = (function (_super) {\n __extends(FiniteEnumerable, _super);\n function FiniteEnumerable(enumeratorFactory, finalizer) {\n _super.call(this, enumeratorFactory, finalizer, false);\n }\n return FiniteEnumerable;\n }(Enumerable));\n exports.FiniteEnumerable = FiniteEnumerable;\n var ArrayEnumerable = (function (_super) {\n __extends(ArrayEnumerable, _super);\n function ArrayEnumerable(source) {\n _super.call(this, function () {\n _.throwIfDisposed();\n return new ArrayEnumerator_1.ArrayEnumerator(function () {\n _.throwIfDisposed(\"The underlying ArrayEnumerable was disposed.\", \"ArrayEnumerator\");\n return _._source;\n });\n });\n var _ = this;\n _._disposableObjectName = \"ArrayEnumerable\";\n _._source = source;\n }\n ArrayEnumerable.prototype._onDispose = function () {\n _super.prototype._onDispose.call(this);\n this._source = null;\n };\n Object.defineProperty(ArrayEnumerable.prototype, \"source\", {\n get: function () {\n return this._source;\n },\n enumerable: true,\n configurable: true\n });\n ArrayEnumerable.prototype.toArray = function () {\n var _ = this;\n _.throwIfDisposed();\n return Enumerator_1.toArray(_._source);\n };\n ArrayEnumerable.prototype.asEnumerable = function () {\n return new ArrayEnumerable(this._source);\n };\n ArrayEnumerable.prototype.forEach = function (action) {\n var _ = this;\n _.throwIfDisposed();\n Enumerator_1.forEach(_._source, action);\n };\n ArrayEnumerable.prototype.any = function (predicate) {\n var _ = this;\n _.throwIfDisposed();\n var source = _._source, len = source.length;\n return len && (!predicate || _super.prototype.any.call(this, predicate));\n };\n ArrayEnumerable.prototype.count = function (predicate) {\n var _ = this;\n _.throwIfDisposed();\n var source = _._source, len = source.length;\n return len && (predicate ? _super.prototype.count.call(this, predicate) : len);\n };\n ArrayEnumerable.prototype.elementAtOrDefault = function (index, defaultValue) {\n if (defaultValue === void 0) { defaultValue = null; }\n var _ = this;\n _.throwIfDisposed();\n Integer_1.Integer.assertZeroOrGreater(index, 'index');\n var source = _._source;\n return index < source.length\n ? source[index]\n : defaultValue;\n };\n ArrayEnumerable.prototype.last = function () {\n var _ = this;\n _.throwIfDisposed();\n var source = _._source, len = source.length;\n return (len)\n ? source[len - 1]\n : _super.prototype.last.call(this);\n };\n ArrayEnumerable.prototype.lastOrDefault = function (defaultValue) {\n if (defaultValue === void 0) { defaultValue = null; }\n var _ = this;\n _.throwIfDisposed();\n var source = _._source, len = source.length;\n return len\n ? source[len - 1]\n : defaultValue;\n };\n ArrayEnumerable.prototype.skip = function (count) {\n var _ = this;\n if (!(count > 0))\n return _;\n return new Enumerable(function () { return new ArrayEnumerator_1.ArrayEnumerator(function () { return _._source; }, count); });\n };\n ArrayEnumerable.prototype.takeExceptLast = function (count) {\n if (count === void 0) { count = 1; }\n var _ = this;\n return _.take(_._source.length - count);\n };\n ArrayEnumerable.prototype.skipToLast = function (count) {\n if (!(count > 0))\n return Enumerable.empty();\n var _ = this;\n if (!isFinite(count))\n return _;\n var len = _._source\n ? _._source.length\n : 0;\n return _.skip(len - count);\n };\n ArrayEnumerable.prototype.reverse = function () {\n var _ = this;\n return new Enumerable(function () { return new ArrayEnumerator_1.ArrayEnumerator(function () { return _._source; }, _._source\n ? (_._source.length - 1)\n : 0, -1); });\n };\n ArrayEnumerable.prototype.memoize = function () {\n return this.asEnumerable();\n };\n ArrayEnumerable.prototype.sequenceEqual = function (second, equalityComparer) {\n if (equalityComparer === void 0) { equalityComparer = Values.areEqual; }\n if (Types_1.Type.isArrayLike(second))\n return Arrays.areEqual(this.source, second, true, equalityComparer);\n if (second instanceof ArrayEnumerable)\n return second.sequenceEqual(this.source, equalityComparer);\n return _super.prototype.sequenceEqual.call(this, second, equalityComparer);\n };\n ArrayEnumerable.prototype.toJoinedString = function (separator, selector) {\n if (separator === void 0) { separator = \"\"; }\n if (selector === void 0) { selector = Functions.Identity; }\n var s = this._source;\n return !selector && Array.isArray(s)\n ? s.join(separator)\n : _super.prototype.toJoinedString.call(this, separator, selector);\n };\n return ArrayEnumerable;\n }(FiniteEnumerable));\n var Grouping = (function (_super) {\n __extends(Grouping, _super);\n function Grouping(_groupKey, elements) {\n _super.call(this, elements);\n this._groupKey = _groupKey;\n }\n Object.defineProperty(Grouping.prototype, \"key\", {\n get: function () {\n return this._groupKey;\n },\n enumerable: true,\n configurable: true\n });\n return Grouping;\n }(ArrayEnumerable));\n var Lookup = (function () {\n function Lookup(_dictionary) {\n this._dictionary = _dictionary;\n }\n Object.defineProperty(Lookup.prototype, \"count\", {\n get: function () {\n return this._dictionary.count;\n },\n enumerable: true,\n configurable: true\n });\n Lookup.prototype.get = function (key) {\n return this._dictionary.getValue(key);\n };\n Lookup.prototype.contains = function (key) {\n return this._dictionary.containsKey(key);\n };\n Lookup.prototype.getEnumerator = function () {\n var _ = this;\n var enumerator;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n enumerator = _._dictionary.getEnumerator();\n }, function (yielder) {\n if (!enumerator.moveNext())\n return false;\n var current = enumerator.current;\n return yielder.yieldReturn(new Grouping(current.key, current.value));\n }, function () {\n dispose_1.dispose(enumerator);\n });\n };\n return Lookup;\n }());\n var OrderedEnumerable = (function (_super) {\n __extends(OrderedEnumerable, _super);\n function OrderedEnumerable(source, keySelector, order, parent, comparer) {\n if (comparer === void 0) { comparer = Values.compare; }\n _super.call(this, null);\n this.source = source;\n this.keySelector = keySelector;\n this.order = order;\n this.parent = parent;\n this.comparer = comparer;\n Enumerator_1.throwIfEndless(source && source.isEndless);\n }\n OrderedEnumerable.prototype.createOrderedEnumerable = function (keySelector, order) {\n return new OrderedEnumerable(this.source, keySelector, order, this);\n };\n OrderedEnumerable.prototype.thenBy = function (keySelector) {\n return this.createOrderedEnumerable(keySelector, 1);\n };\n OrderedEnumerable.prototype.thenUsing = function (comparison) {\n return new OrderedEnumerable(this.source, null, 1, this, comparison);\n };\n OrderedEnumerable.prototype.thenByDescending = function (keySelector) {\n return this.createOrderedEnumerable(keySelector, -1);\n };\n OrderedEnumerable.prototype.thenUsingReversed = function (comparison) {\n return new OrderedEnumerable(this.source, null, -1, this, comparison);\n };\n OrderedEnumerable.prototype.getEnumerator = function () {\n var _ = this;\n var buffer;\n var indexes;\n var index = 0;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n index = 0;\n buffer = Enumerable.toArray(_.source);\n indexes = createSortContext(_).generateSortedIndexes(buffer);\n }, function (yielder) {\n return (index < indexes.length)\n ? yielder.yieldReturn(buffer[indexes[index++]])\n : false;\n }, function () {\n if (buffer)\n buffer.length = 0;\n buffer = null;\n if (indexes)\n indexes.length = 0;\n indexes = null;\n }, false);\n };\n OrderedEnumerable.prototype._onDispose = function () {\n _super.prototype._onDispose.call(this);\n this.source = null;\n this.keySelector = null;\n this.order = null;\n this.parent = null;\n };\n return OrderedEnumerable;\n }(FiniteEnumerable));\n function nextEnumerator(queue, e) {\n if (e) {\n if (e.moveNext()) {\n queue.enqueue(e);\n }\n else {\n dispose_1.dispose(e);\n e = null;\n }\n }\n return e;\n }\n function createSortContext(orderedEnumerable, currentContext) {\n if (currentContext === void 0) { currentContext = null; }\n var context = new KeySortedContext_1.KeySortedContext(currentContext, orderedEnumerable.keySelector, orderedEnumerable.order, orderedEnumerable.comparer);\n if (orderedEnumerable.parent)\n return createSortContext(orderedEnumerable.parent, context);\n return context;\n }\n function throwIfDisposed(disposed) {\n if (disposed)\n throw new ObjectDisposedException_1.ObjectDisposedException(\"Enumerable\");\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Enumerable;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Original: http://linqjs.codeplex.com/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport * as Values from \"../System/Compare\";\r\nimport * as Arrays from \"../System/Collections/Array/Compare\";\r\nimport * as ArrayUtility from \"../System/Collections/Array/Utility\";\r\nimport {\r\n\tempty as EmptyEnumerator,\r\n\tfrom as enumeratorFrom,\r\n\tforEach,\r\n\ttoArray,\r\n\tmap,\r\n\tisEnumerable,\r\n\tthrowIfEndless\r\n} from \"../System/Collections/Enumeration/Enumerator\";\r\nimport {Type} from \"../System/Types\";\r\nimport {Integer} from \"../System/Integer\";\r\nimport {Functions as BaseFunctions} from \"../System/Functions\";\r\nimport {ArrayEnumerator} from \"../System/Collections/Enumeration/ArrayEnumerator\";\r\nimport {EnumeratorBase} from \"../System/Collections/Enumeration/EnumeratorBase\";\r\nimport {Dictionary} from \"../System/Collections/Dictionaries/Dictionary\";\r\nimport {Queue} from \"../System/Collections/Queue\";\r\nimport {dispose, using} from \"../System/Disposable/dispose\";\r\nimport {DisposableBase} from \"../System/Disposable/DisposableBase\";\r\nimport {UnsupportedEnumerableException} from \"../System/Collections/Enumeration/UnsupportedEnumerableException\";\r\nimport {ObjectDisposedException} from \"../System/Disposable/ObjectDisposedException\";\r\nimport {KeySortedContext} from \"../System/Collections/Sorting/KeySortedContext\";\r\nimport {ArgumentNullException} from \"../System/Exceptions/ArgumentNullException\";\r\nimport {ArgumentOutOfRangeException} from \"../System/Exceptions/ArgumentOutOfRangeException\";\r\nimport {IEnumerator} from \"../System/Collections/Enumeration/IEnumerator\";\r\nimport {IEnumerable} from \"../System/Collections/Enumeration/IEnumerable\";\r\nimport {Action, Predicate, Selector, EqualityComparison, Comparison} from \"../System/FunctionTypes\";\r\nimport {IEnumerableOrArray} from \"../System/Collections/IEnumerableOrArray\";\r\nimport {IArray} from \"../System/Collections/Array/IArray\";\r\nimport {IMap} from \"../System/Collections/Dictionaries/IDictionary\";\r\nimport {Comparable} from \"../System/IComparable\";\r\nimport {IComparer} from \"../System/IComparer\";\r\nimport {IKeyValuePair} from \"../System/KeyValuePair\";\r\nimport {Order} from \"../System/Collections/Sorting/Order\";\r\n\r\n// #region Local Constants.\r\n\r\nconst INVALID_DEFAULT:any = {}; // create a private unique instance for referencing.\r\nconst VOID0:any = void 0;\r\nconst BREAK:(e:any)=>EnumerableAction = element => EnumerableAction.Break;\r\n\r\n// Leave internal to avoid accidental overwriting.\r\nclass LinqFunctions extends BaseFunctions\r\n{\r\n\tGreater(a:T, b:T)\r\n\t{\r\n\t\treturn a>b ? a : b;\r\n\t}\r\n\r\n\tLesser(a:T, b:T)\r\n\t{\r\n\t\treturn a\r\n{\r\n\treturn EmptyEnumerator;\r\n}\r\n\r\n// #endregion\r\n\r\n/**\r\n * Defined values for doAction.\r\n */\r\nexport const enum EnumerableAction\r\n{\r\n\tBreak = 0,\r\n\tReturn = 1,\r\n\tSkip = 2\r\n}\r\n\r\n/*\r\n * NOTE: About InfiniteEnumerable and Enumerable.\r\n * There may seem like there's extra overrides here and they may seem unnecessary.\r\n * But after closer inspection you'll see the type chain is retained and\r\n * infinite enumerables are prevented from having features that finite ones have.\r\n *\r\n * I'm not sure if it's the best option to just use overrides, but it honors the typing properly.\r\n */\r\n\r\nexport class InfiniteEnumerable\r\nextends DisposableBase implements IEnumerable\r\n{\r\n\tconstructor(\r\n\t\tprotected _enumeratorFactory:() => IEnumerator,\r\n\t\tfinalizer?:() => void)\r\n\t{\r\n\t\tsuper(finalizer);\r\n\t\tthis._isEndless = true;\r\n\t}\r\n\r\n\tprotected _isEndless:boolean;\r\n\tget isEndless():boolean\r\n\t{\r\n\t\treturn this._isEndless;\r\n\t}\r\n\r\n\t// #region IEnumerable Implementation...\r\n\tgetEnumerator():IEnumerator\r\n\t{\r\n\r\n\t\tthis.throwIfDisposed();\r\n\r\n\t\treturn this._enumeratorFactory();\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\t// #region IDisposable override...\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose(); // Just in case.\r\n\t\tthis._enumeratorFactory = null;\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\t// Return a default (unfiltered) enumerable.\r\n\tasEnumerable():InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\treturn new InfiniteEnumerable(() => _.getEnumerator());\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Similar to forEach, but executes an action for each time a value is enumerated.\r\n\t * If the action explicitly returns false or 0 (EnumerationAction.Break), the enumeration will complete.\r\n\t * If it returns a 2 (EnumerationAction.Skip) it will move on to the next item.\r\n\t * This also automatically handles disposing the enumerator.\r\n\t */\r\n\tdoAction(\r\n\t\taction:Action | Predicate | Selector | Selector,\r\n\t\tinitializer?:()=>void,\r\n\t\tisEndless:boolean = this.isEndless):InfiniteEnumerable\r\n\t{\r\n\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\tif(initializer) initializer();\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\t// May need a way to propagate isEndless\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar actionResult = action(enumerator.current, index++);\r\n\r\n\t\t\t\t\t\t\tif(actionResult===false || actionResult===EnumerableAction.Break)\r\n\t\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\r\n\t\t\t\t\t\t\tif(actionResult!==EnumerableAction.Skip) // || !== 2\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(enumerator.current);\r\n\r\n\t\t\t\t\t\t\t// If actionResult===2, then a signal for skip is received.\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\r\n\t\t\t},\r\n\t\t\t// Using a finalizer value reduces the chance of a circular reference\r\n\t\t\t// since we could simply reference the enumeration and check e.wasDisposed.\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t},\r\n\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tforce():void\r\n\t{\r\n\t\tthis.throwIfDisposed();\r\n\t\tthis.doAction(BREAK)\r\n\t\t\t.getEnumerator()\r\n\t\t\t.moveNext();\r\n\r\n\t}\r\n\r\n\t// #region Indexing/Paging methods.\r\n\tskip(count:number):InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tif(!isFinite(count)) // +Infinity equals skip all so return empty.\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\tInteger.assert(count, \"count\");\r\n\r\n\t\treturn this.doAction(\r\n\t\t\t(element:T, index?:number) =>\r\n\t\t\t\tindex\r\n\t{\r\n\t\tif(!(count>0)) // Out of bounds? Empty.\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tif(!isFinite(count))\r\n\t\t\tthrow new ArgumentOutOfRangeException('count', count, 'Must be finite.');\r\n\r\n\t\tInteger.assert(count, \"count\");\r\n\r\n\t\t// Once action returns false, the enumeration will stop.\r\n\t\treturn >_.doAction((element:T, index?:number) => index\r\n\t\t\t{\r\n\t\t\t\tvar i = 0;\r\n\t\t\t\twhile(e.moveNext())\r\n\t\t\t\t{\r\n\t\t\t\t\tif(i==n) return e.current;\r\n\t\t\t\t\ti++;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn defaultValue;\r\n\t\t\t});\r\n\t}\r\n\r\n\t/* Note: Unlike previous implementations, you could pass a predicate into these methods.\r\n\t * But since under the hood it ends up calling .where(predicate) anyway,\r\n\t * it may be better to remove this to allow for a cleaner signature/override.\r\n\t * JavaScript/TypeScript does not easily allow for a strict method interface like C#.\r\n\t * Having to write extra override logic is error prone and confusing to the consumer.\r\n\t * Removing the predicate here may also cause the consumer of this method to think more about how they structure their query.\r\n\t * The end all difference is that the user must declare .where(predicate) before .first(), .single(), or .last().\r\n\t * */\r\n\r\n\tfirst():T\r\n\t{\r\n\t\tvar v = this.firstOrDefault(INVALID_DEFAULT);\r\n\t\tif(v===INVALID_DEFAULT) throw new Error(\"first:The sequence is empty.\");\r\n\t\treturn v;\r\n\t}\r\n\r\n\tfirstOrDefault(defaultValue:T = null):T\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\treturn using(\r\n\t\t\tthis.getEnumerator(),\r\n\t\t\te=> e.moveNext() ? e.current : defaultValue\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tsingle():T\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\treturn using(\r\n\t\t\tthis.getEnumerator(),\r\n\t\t\te=>\r\n\t\t\t{\r\n\t\t\t\tif(e.moveNext())\r\n\t\t\t\t{\r\n\t\t\t\t\tvar value = e.current;\r\n\t\t\t\t\tif(!e.moveNext()) return value;\r\n\t\t\t\t\tthrow new Error(\"single:sequence contains more than one element.\");\r\n\t\t\t\t}\r\n\t\t\t\tthrow new Error(\"single:The sequence is empty.\");\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tsingleOrDefault(defaultValue:T = null):T\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\treturn using(\r\n\t\t\tthis.getEnumerator(),\r\n\t\t\te=>\r\n\t\t\t{\r\n\t\t\t\tif(e.moveNext())\r\n\t\t\t\t{\r\n\t\t\t\t\tvar value = e.current;\r\n\t\t\t\t\tif(!e.moveNext()) return value;\r\n\t\t\t\t}\r\n\t\t\t\treturn defaultValue;\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tany():boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\treturn using(\r\n\t\t\tthis.getEnumerator(),\r\n\t\t\te=> e.moveNext()\r\n\t\t);\r\n\t}\r\n\r\n\tisEmpty():boolean\r\n\t{\r\n\t\treturn !this.any();\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\r\n\t// #region Projection and Filtering Methods\r\n\r\n\ttraverseBreadthFirst(\r\n\t\tchildrenSelector:(element:T) => IEnumerableOrArray):Enumerable;\r\n\r\n\ttraverseBreadthFirst(\r\n\t\tchildrenSelector:(element:T|TNode) => IEnumerableOrArray):Enumerable;\r\n\r\n\ttraverseBreadthFirst(\r\n\t\tchildrenSelector:(element:T) => IEnumerableOrArray,\r\n\t\tresultSelector?:(element:T, nestLevel?:number) => TResult):Enumerable;\r\n\r\n\ttraverseBreadthFirst(\r\n\t\tchildrenSelector:(element:T|TNode) => IEnumerableOrArray,\r\n\t\tresultSelector?:(element:TNode, nestLevel?:number) => TResult):Enumerable;\r\n\r\n\ttraverseBreadthFirst(\r\n\t\tchildrenSelector:(element:T|TNode) => IEnumerableOrArray,\r\n\t\tresultSelector:(\r\n\t\t\telement:TNode,\r\n\t\t\tnestLevel?:number) => any = Functions.Identity):Enumerable\r\n\t{\r\n\t\tvar _ = this, isEndless = _._isEndless || null; // Is endless is not affirmative if false.\r\n\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar nestLevel:number = 0;\r\n\t\t\t\tvar buffer:any[], len:number;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tnestLevel = 0;\r\n\t\t\t\t\t\tbuffer = [];\r\n\t\t\t\t\t\tlen = 0;\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\twhile(true)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tif(enumerator.moveNext())\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tbuffer[len++] = enumerator.current;\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(resultSelector(enumerator.current, nestLevel));\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(!len)\r\n\t\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\r\n\t\t\t\t\t\t\tvar next = Enumerable\r\n\t\t\t\t\t\t\t\t.from(buffer)\r\n\t\t\t\t\t\t\t\t.selectMany(childrenSelector);\r\n\r\n\t\t\t\t\t\t\tif(!next.any())\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tnestLevel++;\r\n\t\t\t\t\t\t\t\tbuffer = [];\r\n\t\t\t\t\t\t\t\tlen = 0;\r\n\t\t\t\t\t\t\t\tenumerator.dispose();\r\n\t\t\t\t\t\t\t\tenumerator = next.getEnumerator();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t\tbuffer.length = 0;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n\ttraverseDepthFirst(\r\n\t\tchildrenSelector:(element:T) => IEnumerableOrArray):Enumerable;\r\n\r\n\ttraverseDepthFirst(\r\n\t\tchildrenSelector:(element:T|TNode) => IEnumerableOrArray):Enumerable;\r\n\r\n\ttraverseDepthFirst(\r\n\t\tchildrenSelector:(element:T) => IEnumerableOrArray,\r\n\t\tresultSelector?:(element:T, nestLevel?:number) => TResult):Enumerable;\r\n\r\n\ttraverseDepthFirst(\r\n\t\tchildrenSelector:(element:T|TNode) => IEnumerableOrArray,\r\n\t\tresultSelector?:(element:TNode, nestLevel?:number) => TResult):Enumerable;\r\n\r\n\ttraverseDepthFirst(\r\n\t\tchildrenSelector:(element:T|TNode) => IEnumerableOrArray,\r\n\t\tresultSelector:(\r\n\t\t\telement:TNode,\r\n\t\t\tnestLevel?:number) => any = Functions.Identity):Enumerable\r\n\t{\r\n\t\tvar _ = this, isEndless = _._isEndless || null; // Is endless is not affirmative if false.\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\t// Dev Note: May want to consider using an actual stack and not an array.\r\n\t\t\t\tvar enumeratorStack:IEnumerator[] = [];\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar len:number; // Avoid using push/pop since they query .length every time and can be slower.\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tlen = 0;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\twhile(true)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tif(enumerator.moveNext())\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tlet value = resultSelector(enumerator.current, len);\r\n\t\t\t\t\t\t\t\tenumeratorStack[len++] = enumerator;\r\n\t\t\t\t\t\t\t\tlet e = Enumerable.fromAny(childrenSelector(enumerator.current));\r\n\t\t\t\t\t\t\t\tenumerator = e ? e.getEnumerator() : EmptyEnumerator;\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(value);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(len==0) return false;\r\n\r\n\t\t\t\t\t\t\tenumerator.dispose();\r\n\t\t\t\t\t\t\tenumerator = enumeratorStack[--len];\r\n\t\t\t\t\t\t\tenumeratorStack.length = len;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttry\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tfinally\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tdispose.these(enumeratorStack);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tflatten():Enumerable\r\n\t{\r\n\t\tvar _ = this, isEndless = _._isEndless || null; // Is endless is not affirmative if false.;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar middleEnumerator:IEnumerator = null;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\twhile(true)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tif(middleEnumerator)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tif(middleEnumerator.moveNext())\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\treturn yielder.yieldReturn(middleEnumerator.current);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tmiddleEnumerator.dispose();\r\n\t\t\t\t\t\t\t\t\tmiddleEnumerator = null;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(enumerator.moveNext())\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tvar c = enumerator.current;\r\n\t\t\t\t\t\t\t\t// Because strings are enumerable, we can get stuck in an infinite loop.\r\n\t\t\t\t\t\t\t\t// Treat strings as primitives here.\r\n\t\t\t\t\t\t\t\tvar e = !Type.isString(c) && Enumerable.fromAny(c);\r\n\t\t\t\t\t\t\t\tif(e)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tmiddleEnumerator\r\n\t\t\t\t\t\t\t\t\t\t= e\r\n\t\t\t\t\t\t\t\t\t\t.selectMany(Functions.Identity)\r\n\t\t\t\t\t\t\t\t\t\t.flatten()\r\n\t\t\t\t\t\t\t\t\t\t.getEnumerator();\r\n\t\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\treturn yielder.yieldReturn(c);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator, middleEnumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tpairwise(selector:(prev:T, current:T) => TSelect):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tenumerator.moveNext();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar prev = enumerator.current;\r\n\t\t\t\t\t\treturn enumerator.moveNext()\r\n\t\t\t\t\t\t\t&& yielder.yieldReturn(selector(prev, enumerator.current));\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\tscan(func:(a:T, b:T) => T, seed?:T):Enumerable\r\n\t{\r\n\r\n\t\tvar isUseSeed = seed!==VOID0; // For now...\r\n\t\tvar _ = this;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar value:T;\r\n\t\t\t\tvar isFirst:boolean;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tisFirst = true;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(isFirst)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tisFirst = false;\r\n\t\t\t\t\t\t\t//noinspection JSUnusedAssignment\r\n\t\t\t\t\t\t\treturn isUseSeed\r\n\t\t\t\t\t\t\t\t? yielder.yieldReturn(value = seed)\r\n\t\t\t\t\t\t\t\t: enumerator.moveNext() && yielder.yieldReturn(value\r\n\t\t\t\t\t\t\t\t= enumerator.current);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn (enumerator.moveNext())\r\n\t\t\t\t\t\t\t? yielder.yieldReturn(value = func(value, enumerator.current))\r\n\t\t\t\t\t\t\t: false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\tselect(selector:Selector):InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\treturn enumerator.moveNext()\r\n\t\t\t\t\t\t\t? yielder.yieldReturn(selector(enumerator.current, index++))\r\n\t\t\t\t\t\t\t: yielder.yieldBreak();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t},\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\t/*\r\n\tpublic static IEnumerable SelectMany(\r\n\t\tthis IEnumerable source,\r\n\t\tFunc> collectionSelector,\r\n\t\tFunc resultSelector)\r\n\t */\r\n\r\n\tprotected _selectMany(\r\n\t\tcollectionSelector:Selector>,\r\n\t\tresultSelector?:(collection:T, element:TElement) => TResult):Enumerable\r\n\t{\r\n\t\tvar _ = this, isEndless = _._isEndless || null; // Do second enumeration, it will be indeterminate if false.\r\n\t\tif(!resultSelector)\r\n\t\t\tresultSelector = (a:T, b:any) => b;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar middleEnumerator:IEnumerator;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tmiddleEnumerator = undefined;\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\r\n\t\t\t\t\t\t// Just started, and nothing to enumerate? End.\r\n\t\t\t\t\t\tif(middleEnumerator===VOID0 && !enumerator.moveNext())\r\n\t\t\t\t\t\t\treturn false;\r\n\r\n\t\t\t\t\t\t// moveNext has been called at least once...\r\n\t\t\t\t\t\tdo\r\n\t\t\t\t\t\t{\r\n\r\n\t\t\t\t\t\t\t// Initialize middle if there isn't one.\r\n\t\t\t\t\t\t\tif(!middleEnumerator)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tvar middleSeq = collectionSelector(enumerator.current, index++);\r\n\r\n\t\t\t\t\t\t\t\t// Collection is null? Skip it...\r\n\t\t\t\t\t\t\t\tif(!middleSeq)\r\n\t\t\t\t\t\t\t\t\tcontinue;\r\n\r\n\t\t\t\t\t\t\t\tmiddleEnumerator = enumeratorFrom(middleSeq);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(middleEnumerator.moveNext())\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(\r\n\t\t\t\t\t\t\t\t\tresultSelector(\r\n\t\t\t\t\t\t\t\t\t\tenumerator.current, middleEnumerator.current\r\n\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t\t// else no more in this middle? Then clear and reset for next...\r\n\r\n\t\t\t\t\t\t\tmiddleEnumerator.dispose();\r\n\t\t\t\t\t\t\tmiddleEnumerator = null;\r\n\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\twhile(enumerator.moveNext());\r\n\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator, middleEnumerator);\r\n\t\t\t\t\t\tenumerator = null;\r\n\t\t\t\t\t\tmiddleEnumerator = null;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\tselectMany(\r\n\t\tcollectionSelector:Selector>):InfiniteEnumerable;\r\n\r\n\tselectMany(\r\n\t\tcollectionSelector:Selector>,\r\n\t\tresultSelector:(collection:T, element:TElement) => TResult):InfiniteEnumerable;\r\n\r\n\tselectMany(\r\n\t\tcollectionSelector:Selector>,\r\n\t\tresultSelector?:(collection:T, element:any) => TResult):InfiniteEnumerable\r\n\t{\r\n\t\treturn this._selectMany(collectionSelector, resultSelector);\r\n\t}\r\n\r\n\tprotected _choose(selector:Selector):Enumerable\r\n\t{\r\n\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar result = selector(enumerator.current, index++);\r\n\t\t\t\t\t\t\tif(result!==null && result!==VOID0)\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(result);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t},\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns selected values that are not null or undefined.\r\n\t */\r\n\tchoose():InfiniteEnumerable;\r\n\tchoose(selector?:Selector):InfiniteEnumerable\r\n\tchoose(selector:Selector = Functions.Identity):InfiniteEnumerable\r\n\t{\r\n\t\treturn this._choose(selector)\r\n\t}\r\n\r\n\twhere(predicate:Predicate):InfiniteEnumerable\r\n\t{\r\n\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tif(predicate(enumerator.current, index++))\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(enumerator.current);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t},\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\r\n\t}\r\n\r\n\tofType(type:{ new (...params:any[]):TType }):InfiniteEnumerable;\r\n\tofType(type:any):InfiniteEnumerable\r\n\t{\r\n\t\tvar typeName:string;\r\n\t\tswitch(type)\r\n\t\t{\r\n\t\t\tcase Number:\r\n\t\t\t\ttypeName = Type.NUMBER;\r\n\t\t\t\tbreak;\r\n\t\t\tcase String:\r\n\t\t\t\ttypeName = Type.STRING;\r\n\t\t\t\tbreak;\r\n\t\t\tcase Boolean:\r\n\t\t\t\ttypeName = Type.BOOLEAN;\r\n\t\t\t\tbreak;\r\n\t\t\tcase Function:\r\n\t\t\t\ttypeName = Type.FUNCTION;\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\treturn >this\r\n\t\t\t\t\t.where(x=>x instanceof type);\r\n\t\t}\r\n\t\treturn >this\r\n\t\t\t.choose()\r\n\t\t\t.where(x=>(typeof x)===typeName);\r\n\t}\r\n\r\n\texcept(\r\n\t\tsecond:IEnumerableOrArray,\r\n\t\tcompareSelector?:Selector):InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar keys:Dictionary;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tkeys = new Dictionary(compareSelector);\r\n\t\t\t\t\t\tif(second)\r\n\t\t\t\t\t\t\tforEach(second, key => keys.addByKeyValue(key, true));\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar current = enumerator.current;\r\n\t\t\t\t\t\t\tif(!keys.containsKey(current))\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tkeys.addByKeyValue(current, true);\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(current);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t\tkeys.clear();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t},\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\tdistinct(compareSelector?:(value:T) => T):InfiniteEnumerable\r\n\t{\r\n\t\treturn this.except(null, compareSelector);\r\n\t}\r\n\r\n\t// [0,0,0,1,1,1,2,2,2,0,0,0,1,1] results in [0,1,2,0,1];\r\n\tdistinctUntilChanged(compareSelector:Selector = Functions.Identity):InfiniteEnumerable\r\n\t{\r\n\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar compareKey:TCompare;\r\n\t\t\t\tvar initial:boolean = true;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar key = compareSelector(enumerator.current);\r\n\r\n\t\t\t\t\t\t\tif(initial)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tinitial = false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse if(Values.areEqual(compareKey, key))\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tcompareKey = key;\r\n\t\t\t\t\t\t\treturn yielder.yieldReturn(enumerator.current);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t},\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Returns a single default value if empty.\r\n\t * @param defaultValue\r\n\t * @returns {Enumerable}\r\n\t */\r\n\tdefaultIfEmpty(defaultValue:T = null):Enumerable\r\n\t{\r\n\t\tvar _ = this, disposed:boolean = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar isFirst:boolean;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tisFirst = true;\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\tif(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tisFirst = false;\r\n\t\t\t\t\t\t\treturn yielder.yieldReturn(enumerator.current);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if(isFirst)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tisFirst = false;\r\n\t\t\t\t\t\t\treturn yielder.yieldReturn(defaultValue);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\tzip(\r\n\t\tsecond:IEnumerableOrArray,\r\n\t\tresultSelector:(first:T, second:TSecond, index?:number) => TResult):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar firstEnumerator:IEnumerator;\r\n\t\t\t\tvar secondEnumerator:IEnumerator;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tfirstEnumerator = _.getEnumerator();\r\n\t\t\t\t\t\tsecondEnumerator = enumeratorFrom(second);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=> firstEnumerator.moveNext()\r\n\t\t\t\t\t&& secondEnumerator.moveNext()\r\n\t\t\t\t\t&& yielder.yieldReturn(resultSelector(firstEnumerator.current, secondEnumerator.current, index++)),\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(firstEnumerator, secondEnumerator);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tzipMultiple(\r\n\t\tsecond:IArray>,\r\n\t\tresultSelector:(first:T, second:TSecond, index?:number) => TResult):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tif(!second.length)\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar secondTemp:Queue;\r\n\t\t\t\tvar firstEnumerator:IEnumerator;\r\n\t\t\t\tvar secondEnumerator:IEnumerator;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tsecondTemp = new Queue(second);\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tfirstEnumerator = _.getEnumerator();\r\n\t\t\t\t\t\tsecondEnumerator = null;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(firstEnumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\twhile(true)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\twhile(!secondEnumerator)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tif(secondTemp.count)\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\tvar next = secondTemp.dequeue();\r\n\t\t\t\t\t\t\t\t\t\tif(next) // In case by chance next is null, then try again.\r\n\t\t\t\t\t\t\t\t\t\t\tsecondEnumerator = enumeratorFrom(next);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif(secondEnumerator.moveNext())\r\n\t\t\t\t\t\t\t\t\treturn yielder.yieldReturn(\r\n\t\t\t\t\t\t\t\t\t\tresultSelector(firstEnumerator.current, secondEnumerator.current, index++)\r\n\t\t\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t\t\tsecondEnumerator.dispose();\r\n\t\t\t\t\t\t\t\tsecondEnumerator = null;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(firstEnumerator, secondTemp);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\r\n\t// #region Join Methods\r\n\r\n\tjoin(\r\n\t\tinner:IEnumerableOrArray,\r\n\t\touterKeySelector:Selector,\r\n\t\tinnerKeySelector:Selector,\r\n\t\tresultSelector:(outer:T, inner:TInner) => TResult,\r\n\t\tcompareSelector:Selector = Functions.Identity):Enumerable\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar outerEnumerator:IEnumerator;\r\n\t\t\t\tvar lookup:ILookup;\r\n\t\t\t\tvar innerElements:TInner[] = null;\r\n\t\t\t\tvar innerCount:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\touterEnumerator = _.getEnumerator();\r\n\t\t\t\t\t\tlookup = Enumerable.from(inner)\r\n\t\t\t\t\t\t\t.toLookup(innerKeySelector, Functions.Identity, compareSelector);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\twhile(true)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tif(innerElements!=null)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tvar innerElement = innerElements[innerCount++];\r\n\t\t\t\t\t\t\t\tif(innerElement!==VOID0)\r\n\t\t\t\t\t\t\t\t\treturn yielder.yieldReturn(resultSelector(outerEnumerator.current, innerElement));\r\n\r\n\t\t\t\t\t\t\t\tinnerElement = null;\r\n\t\t\t\t\t\t\t\tinnerCount = 0;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(outerEnumerator.moveNext())\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tvar key = outerKeySelector(outerEnumerator.current);\r\n\t\t\t\t\t\t\t\tinnerElements = lookup.get(key);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(outerEnumerator);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tgroupJoin(\r\n\t\tinner:IEnumerableOrArray,\r\n\t\touterKeySelector:Selector,\r\n\t\tinnerKeySelector:Selector,\r\n\t\tresultSelector:(outer:T, inner:TInner[]) => TResult,\r\n\t\tcompareSelector:Selector = Functions.Identity):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar lookup:ILookup = null;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tlookup = Enumerable.from(inner)\r\n\t\t\t\t\t\t\t.toLookup(innerKeySelector, Functions.Identity, compareSelector);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\tenumerator.moveNext()\r\n\t\t\t\t\t&& yielder.yieldReturn(\r\n\t\t\t\t\t\tresultSelector(\r\n\t\t\t\t\t\t\tenumerator.current,\r\n\t\t\t\t\t\t\tlookup.get(outerKeySelector(enumerator.current))\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t),\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tmerge(enumerables:IArray>):InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this, isEndless = _._isEndless || null;\r\n\r\n\t\tif(!enumerables || enumerables.length==0)\r\n\t\t\treturn _;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar queue:Queue>;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t// 1) First get our values...\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tqueue = new Queue>(enumerables);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder) =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\twhile(true)\r\n\t\t\t\t\t\t{\r\n\r\n\t\t\t\t\t\t\twhile(!enumerator && queue.count)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tenumerator = enumeratorFrom(queue.dequeue()); // 4) Keep going and on to step 2. Else fall through to yieldBreak().\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(enumerator && enumerator.moveNext()) // 2) Keep returning until done.\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(enumerator.current);\r\n\r\n\t\t\t\t\t\t\tif(enumerator) // 3) Dispose and reset for next.\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tenumerator.dispose();\r\n\t\t\t\t\t\t\t\tenumerator = null;\r\n\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator, queue); // Just in case this gets disposed early.\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\tconcat(...enumerables:Array>):InfiniteEnumerable\r\n\t{\r\n\t\treturn this.merge(enumerables);\r\n\t}\r\n\r\n\r\n\tunion(\r\n\t\tsecond:IEnumerableOrArray,\r\n\t\tcompareSelector:Selector = Functions.Identity):Enumerable\r\n\t{\r\n\t\tvar _ = this, isEndless = _._isEndless || null;\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar firstEnumerator:IEnumerator;\r\n\t\t\t\tvar secondEnumerator:IEnumerator;\r\n\t\t\t\tvar keys:Dictionary;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfirstEnumerator = _.getEnumerator();\r\n\t\t\t\t\t\tkeys = new Dictionary(compareSelector); // Acting as a HashSet.\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar current:T;\r\n\t\t\t\t\t\tif(secondEnumerator===VOID0)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\twhile(firstEnumerator.moveNext())\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tcurrent = firstEnumerator.current;\r\n\t\t\t\t\t\t\t\tif(!keys.containsKey(current))\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tkeys.addByKeyValue(current, null);\r\n\t\t\t\t\t\t\t\t\treturn yielder.yieldReturn(current);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tsecondEnumerator = enumeratorFrom(second);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\twhile(secondEnumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tcurrent = secondEnumerator.current;\r\n\t\t\t\t\t\t\tif(!keys.containsKey(current))\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tkeys.addByKeyValue(current, null);\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(current);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(firstEnumerator, secondEnumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\tinsertAt(index:number, other:IEnumerableOrArray):Enumerable\r\n\t{\r\n\t\tInteger.assertZeroOrGreater(index, 'index');\r\n\t\tvar n:number = index;\r\n\r\n\t\tvar _ = this, isEndless = _._isEndless || null;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\r\n\t\t\t\tvar firstEnumerator:IEnumerator;\r\n\t\t\t\tvar secondEnumerator:IEnumerator;\r\n\r\n\t\t\t\tvar count:number = 0;\r\n\t\t\t\tvar isEnumerated:boolean = false;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcount = 0;\r\n\t\t\t\t\t\tfirstEnumerator = _.getEnumerator();\r\n\t\t\t\t\t\tsecondEnumerator = enumeratorFrom(other);\r\n\t\t\t\t\t\tisEnumerated = false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder) =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(count==n)\r\n\t\t\t\t\t\t{ // Inserting?\r\n\t\t\t\t\t\t\tisEnumerated = true;\r\n\t\t\t\t\t\t\tif(secondEnumerator.moveNext())\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(secondEnumerator.current);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif(firstEnumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tcount++;\r\n\t\t\t\t\t\t\treturn yielder.yieldReturn(firstEnumerator.current);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn !isEnumerated\r\n\t\t\t\t\t\t\t&& secondEnumerator.moveNext()\r\n\t\t\t\t\t\t\t&& yielder.yieldReturn(secondEnumerator.current);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(firstEnumerator, secondEnumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tisEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\tisEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n\talternateMultiple(sequence:IEnumerableOrArray):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar buffer:T,\r\n\t\t\t\t mode:EnumerableAction,\r\n\t\t\t\t enumerator:IEnumerator,\r\n\t\t\t\t alternateEnumerator:IEnumerator;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t// Instead of recalling getEnumerator every time, just reset the existing one.\r\n\t\t\t\t\t\talternateEnumerator = new ArrayEnumerator(\r\n\t\t\t\t\t\t\tEnumerable.toArray(sequence)\r\n\t\t\t\t\t\t); // Freeze\r\n\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\r\n\t\t\t\t\t\tvar hasAtLeastOne = enumerator.moveNext();\r\n\t\t\t\t\t\tmode = hasAtLeastOne\r\n\t\t\t\t\t\t\t? EnumerableAction.Return\r\n\t\t\t\t\t\t\t: EnumerableAction.Break;\r\n\r\n\t\t\t\t\t\tif(hasAtLeastOne)\r\n\t\t\t\t\t\t\tbuffer = enumerator.current;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tswitch(mode)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tcase EnumerableAction.Break: // We're done?\r\n\t\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\r\n\t\t\t\t\t\t\tcase EnumerableAction.Skip:\r\n\t\t\t\t\t\t\t\tif(alternateEnumerator.moveNext())\r\n\t\t\t\t\t\t\t\t\treturn yielder.yieldReturn(alternateEnumerator.current);\r\n\t\t\t\t\t\t\t\talternateEnumerator.reset();\r\n\t\t\t\t\t\t\t\tmode = EnumerableAction.Return;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar latest = buffer;\r\n\r\n\t\t\t\t\t\t// Set up the next round...\r\n\r\n\t\t\t\t\t\t// Is there another one? Set the buffer and setup instruct for the next one to be the alternate.\r\n\t\t\t\t\t\tvar another = enumerator.moveNext();\r\n\t\t\t\t\t\tmode = another\r\n\t\t\t\t\t\t\t? EnumerableAction.Skip\r\n\t\t\t\t\t\t\t: EnumerableAction.Break;\r\n\r\n\t\t\t\t\t\tif(another)\r\n\t\t\t\t\t\t\tbuffer = enumerator.current;\r\n\r\n\t\t\t\t\t\treturn yielder.yieldReturn(latest);\r\n\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator, alternateEnumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\talternateSingle(value:T):Enumerable\r\n\t{\r\n\t\treturn this.alternateMultiple(Enumerable.make(value));\r\n\t}\r\n\r\n\talternate(...sequence:T[]):Enumerable\r\n\t{\r\n\t\treturn this.alternateMultiple(sequence);\r\n\t}\r\n\r\n\r\n\t// #region Error Handling\r\n\tcatchError(handler:(e:any) => void):InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttry\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcatch(e)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t// Don't init...\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttry\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\t\tif(enumerator.moveNext())\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(enumerator.current);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcatch(e)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\thandler(e);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tfinallyAction(action:() => void):InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\treturn (enumerator.moveNext())\r\n\t\t\t\t\t\t\t? yielder.yieldReturn(enumerator.current)\r\n\t\t\t\t\t\t\t: false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttry\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tfinally\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\taction();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tbuffer(size:number):InfiniteEnumerable\r\n\t{\r\n\t\tif(size<1 || !isFinite(size))\r\n\t\t\tthrow new Error(\"Invalid buffer size.\");\r\n\r\n\t\tInteger.assert(size, \"size\");\r\n\r\n\t\tvar _ = this, len:number;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar array:T[] = ArrayUtility.initialize(size);\r\n\t\t\t\t\t\tlen = 0;\r\n\t\t\t\t\t\twhile(len\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tshare():InfiniteEnumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar sharedEnumerator:IEnumerator;\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\treturn sharedEnumerator || (sharedEnumerator = _.getEnumerator());\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdispose(sharedEnumerator);\r\n\t\t\t},\r\n\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\r\n}\r\n\r\n\r\n/**\r\n * Enumerable is a wrapper class that allows more primitive enumerables to exhibit LINQ behavior.\r\n *\r\n * In C# Enumerable is not an instance but has extensions for IEnumerable.\r\n * In this case, we use Enumerable as the underlying class that is being chained.\r\n */\r\nexport class Enumerable\r\nextends InfiniteEnumerable\r\n{\r\n\r\n\tconstructor(\r\n\t\tenumeratorFactory:() => IEnumerator,\r\n\t\tfinalizer?:() => void,\r\n\t\tisEndless:boolean = null)\r\n\t{\r\n\t\tsuper(enumeratorFactory, finalizer);\r\n\t\tthis._isEndless = isEndless;\r\n\t}\r\n\r\n\t/**\r\n\t * Universal method for converting a primitive enumerables into a LINQ enabled ones.\r\n\t *\r\n\t * Is not limited to TypeScript usages.\r\n\t */\r\n\tstatic from(source:IEnumerableOrArray):Enumerable\r\n\t{\r\n\t\tvar e = Enumerable.fromAny(source);\r\n\t\tif(!e) throw new UnsupportedEnumerableException();\r\n\t\treturn e;\r\n\t}\r\n\r\n\tstatic fromAny(\r\n\t\tsource:any):Enumerable\r\n\r\n\tstatic fromAny(\r\n\t\tsource:IEnumerableOrArray,\r\n\t\tdefaultEnumerable?:Enumerable):Enumerable\r\n\r\n\tstatic fromAny(\r\n\t\tsource:any,\r\n\t\tdefaultEnumerable?:Enumerable):Enumerable\r\n\r\n\tstatic fromAny(\r\n\t\tsource:any,\r\n\t\tdefaultEnumerable:Enumerable = null):Enumerable\r\n\t{\r\n\t\tif(Type.isObject(source) || Type.isString(source))\r\n\t\t{\r\n\t\t\tif(source instanceof Enumerable)\r\n\t\t\t\treturn source;\r\n\r\n\t\t\tif(Type.isArrayLike(source))\r\n\t\t\t\treturn new ArrayEnumerable(source);\r\n\r\n\t\t\tif(isEnumerable(source))\r\n\t\t\t\treturn new Enumerable(\r\n\t\t\t\t\t()=>source.getEnumerator(),\r\n\t\t\t\t\tnull, source.isEndless);\r\n\t\t}\r\n\r\n\t\treturn defaultEnumerable;\r\n\t}\r\n\r\n\tstatic fromOrEmpty(source:IEnumerableOrArray):Enumerable\r\n\t{\r\n\t\treturn Enumerable.fromAny(source) || Enumerable.empty();\r\n\t}\r\n\r\n\t/**\r\n\t * Static helper for converting enumerables to an array.\r\n\t * @param source\r\n\t * @returns {any}\r\n\t */\r\n\tstatic toArray(source:IEnumerableOrArray):T[]\r\n\t{\r\n\t\tif(source instanceof Enumerable)\r\n\t\t\treturn source.toArray();\r\n\r\n\t\treturn toArray(source);\r\n\t}\r\n\r\n\r\n\t//////////////////////////////////////////\r\n\t// #region Static Methods...\r\n\tstatic choice(values:IArray):InfiniteEnumerable\r\n\t{\r\n\t\tvar len = values && values.length;\r\n\t\t// We could return empty if no length, but that would break the typing and produce unexpected results.\r\n\t\t// Enforcing that there must be at least 1 choice is key.\r\n\t\tif(!len || !isFinite(len))\r\n\t\t\tthrow new ArgumentOutOfRangeException('length', length);\r\n\r\n\t\treturn new InfiniteEnumerable(\r\n\t\t\t() => new EnumeratorBase(\r\n\t\t\t\tnull,\r\n\t\t\t\t(yielder)=>\r\n\t\t\t\t\tyielder.yieldReturn(Integer.random.select(values)),\r\n\t\t\t\ttrue // Is endless!\r\n\t\t\t)\r\n\t\t);\r\n\t}\r\n\r\n\tstatic chooseFrom(...args:T[]):InfiniteEnumerable\r\n\t{\r\n\t\treturn Enumerable.choice(args);\r\n\t}\r\n\r\n\tstatic cycle(values:IArray):InfiniteEnumerable\r\n\t{\r\n\t\tvar len = values && values.length;\r\n\t\t// We could return empty if no length, but that would break the typing and produce unexpected results.\r\n\t\t// Enforcing that there must be at least 1 choice is key.\r\n\t\tif(!len || !isFinite(len))\r\n\t\t\tthrow new ArgumentOutOfRangeException('length', length);\r\n\r\n\t\treturn new InfiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar index:number = 0;\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t}, // Reinitialize the value just in case the enumerator is restarted.\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(index>=values.length) index = 0;\r\n\t\t\t\t\t\treturn yielder.yieldReturn(values[index++]);\r\n\t\t\t\t\t},\r\n\t\t\t\t\ttrue // Is endless!\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic cycleThrough(...args:T[]):InfiniteEnumerable\r\n\t{\r\n\t\treturn Enumerable.cycle(args);\r\n\t}\r\n\r\n\tstatic empty():FiniteEnumerable\r\n\t{\r\n\t\t// Could be single static instance, but for safety, we'll make a new one.\r\n\t\treturn new FiniteEnumerable(getEmptyEnumerator);\r\n\t}\r\n\r\n\tstatic repeat(element:T):InfiniteEnumerable;\r\n\tstatic repeat(element:T, count:number):FiniteEnumerable;\r\n\tstatic repeat(element:T, count:number = Infinity):Enumerable\r\n\t{\r\n\t\tif(!(count>0))\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\treturn isFinite(count) && Integer.assert(count, \"count\")\r\n\t\t\t? new FiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar c:number = count;\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() => { index = 0; },\r\n\t\t\t\t\t(yielder)=> (index++(\r\n\t\t\t() =>\r\n\t\t\t\tnew EnumeratorBase(\r\n\t\t\t\t\tnull,\r\n\t\t\t\t\t(yielder)=> yielder.yieldReturn(element),\r\n\t\t\t\t\ttrue // Is endless!\r\n\t\t\t\t)\r\n\t\t);\r\n\t}\r\n\r\n\t// Note: this enumeration is endless but can be disposed/cancelled and finalized.\r\n\tstatic repeatWithFinalize(\r\n\t\tinitializer:() => T,\r\n\t\tfinalizer:(element:T) => void):InfiniteEnumerable\r\n\t{\r\n\r\n\t\treturn new InfiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar element:T;\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\telement = initializer();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=> yielder.yieldReturn(element),\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfinalizer(element);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\ttrue // Is endless!\r\n\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * Creates an enumerable of one element.\r\n\t * @param element\r\n\t * @returns {FiniteEnumerable}\r\n\t */\r\n\tstatic make(element:T):FiniteEnumerable\r\n\t{\r\n\t\treturn Enumerable.repeat(element, 1);\r\n\t}\r\n\r\n\t// start and step can be other than integer.\r\n\r\n\tstatic range(\r\n\t\tstart:number,\r\n\t\tcount:number,\r\n\t\tstep:number = 1):FiniteEnumerable\r\n\t{\r\n\t\tif(!isFinite(start))\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"start\", start, \"Must be a finite number.\");\r\n\r\n\t\tif(!(count>0))\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\tif(!step)\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"step\", step, \"Must be a valid value\");\r\n\r\n\t\tif(!isFinite(step))\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"step\", step, \"Must be a finite number.\");\r\n\r\n\t\tInteger.assert(count, \"count\");\r\n\r\n\t\treturn new FiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar value:number;\r\n\t\t\t\tvar c:number = count; // Force integer evaluation.\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tvalue = start;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar result:boolean =\r\n\t\t\t\t\t\t\t index++\r\n\t{\r\n\t\tstep = Math.abs(step)* -1;\r\n\r\n\t\treturn Enumerable.range(start, count, step);\r\n\t}\r\n\r\n\t// step = -1 behaves the same as toNegativeInfinity;\r\n\tstatic toInfinity(\r\n\t\tstart:number = 0,\r\n\t\tstep:number = 1):InfiniteEnumerable\r\n\t{\r\n\t\tif(!isFinite(start))\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"start\", start, \"Must be a finite number.\");\r\n\r\n\t\tif(!step)\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"step\", step, \"Must be a valid value\");\r\n\r\n\t\tif(!isFinite(step))\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"step\", step, \"Must be a finite number.\");\r\n\r\n\t\treturn new InfiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar value:number;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvalue = start;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar current:number = value;\r\n\t\t\t\t\t\tvalue += step;\r\n\t\t\t\t\t\treturn yielder.yieldReturn(current);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\ttrue // Is endless!\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic toNegativeInfinity(\r\n\t\tstart:number = 0,\r\n\t\tstep:number = 1):InfiniteEnumerable\r\n\t{\r\n\t\treturn Enumerable.toInfinity(start, -step);\r\n\t}\r\n\r\n\tstatic rangeTo(\r\n\t\tstart:number,\r\n\t\tto:number,\r\n\t\tstep:number = 1):FiniteEnumerable\r\n\t{\r\n\t\tif(isNaN(to) || !isFinite(to))\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"to\", to, \"Must be a finite number.\");\r\n\r\n\t\tif(step && !isFinite(step))\r\n\t\t\tthrow new ArgumentOutOfRangeException(\"step\", step, \"Must be a finite non-zero number.\");\r\n\r\n\t\t// This way we adjust for the delta from start and to so the user can say +/- step and it will work as expected.\r\n\t\tstep = Math.abs(step);\r\n\r\n\t\treturn new FiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar value:number;\r\n\r\n\t\t\t\treturn new EnumeratorBase(() => { value = start; },\r\n\t\t\t\t\tstart\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar result:boolean = value<=to && yielder.yieldReturn(value);\r\n\r\n\t\t\t\t\t\t\tif(result)\r\n\t\t\t\t\t\t\t\tvalue += step;\r\n\r\n\t\t\t\t\t\t\treturn result;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t:\r\n\t\t\t\t\t\tyielder=>\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar result:boolean = value>=to && yielder.yieldReturn(value);\r\n\r\n\t\t\t\t\t\t\tif(result)\r\n\t\t\t\t\t\t\t\tvalue -= step;\r\n\r\n\t\t\t\t\t\t\treturn result;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t, false);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic matches(input:string, pattern:any, flags:string = \"\"):FiniteEnumerable\r\n\t{\r\n\t\tif(input===null || input===VOID0)\r\n\t\t\tthrow new ArgumentNullException(\"input\");\r\n\t\tvar type = typeof input;\r\n\t\tif(type!=Type.STRING)\r\n\t\t\tthrow new Error(\"Cannot exec RegExp matches of type '\" + type + \"'.\");\r\n\r\n\t\tif(pattern instanceof RegExp)\r\n\t\t{\r\n\t\t\tflags += (pattern.ignoreCase) ? \"i\" : \"\";\r\n\t\t\tflags += (pattern.multiline) ? \"m\" : \"\";\r\n\t\t\tpattern = pattern.source;\r\n\t\t}\r\n\r\n\t\tif(flags.indexOf(\"g\")=== -1) flags += \"g\";\r\n\r\n\t\treturn new FiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar regex:RegExp;\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tregex = new RegExp(pattern, flags);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t// Calling regex.exec consecutively on the same input uses the lastIndex to start the next match.\r\n\t\t\t\t\t\tvar match = regex.exec(input);\r\n\t\t\t\t\t\treturn (match!==null) ? yielder.yieldReturn(match) : false;\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic generate(factory:(index?:number) => T):InfiniteEnumerable;\r\n\tstatic generate(factory:(index?:number) => T, count:number):FiniteEnumerable;\r\n\tstatic generate(factory:(index?:number) => T, count:number = Infinity):InfiniteEnumerable\r\n\t{\r\n\r\n\t\tif(isNaN(count) || count<=0)\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\treturn isFinite(count) && Integer.assert(count, \"count\")\r\n\t\t\t?\r\n\t\t\tnew FiniteEnumerable(\r\n\t\t\t\t() =>\r\n\t\t\t\t{\r\n\t\t\t\t\tvar c:number = count;\r\n\t\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t\t() =>\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar current:number = index++;\r\n\t\t\t\t\t\t\treturn current(\r\n\t\t\t\t() =>\r\n\t\t\t\t{\r\n\t\t\t\t\tvar index:number = 0;\r\n\t\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t\t() =>\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t(yielder)=> yielder.yieldReturn(factory(index++)),\r\n\r\n\t\t\t\t\t\ttrue // Is endless!\r\n\t\t\t\t\t);\r\n\t\t\t\t});\r\n\t}\r\n\r\n\tstatic unfold(\r\n\t\tseed:T,\r\n\t\tvalueFactory:Selector,\r\n\t\tskipSeed:Boolean = false):InfiniteEnumerable\r\n\t{\r\n\t\treturn new InfiniteEnumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar index:number = 0;\r\n\t\t\t\tvar value:T;\r\n\t\t\t\tvar isFirst:boolean;\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tvalue = seed;\r\n\t\t\t\t\t\tisFirst = !skipSeed;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar i = index++;\r\n\t\t\t\t\t\tif(isFirst)\r\n\t\t\t\t\t\t\tisFirst = false;\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\tvalue = valueFactory(value, i);\r\n\t\t\t\t\t\treturn yielder.yieldReturn(value);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\ttrue // Is endless!\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic forEach(\r\n\t\tenumerable:IEnumerableOrArray,\r\n\t\taction:(element:T, index?:number) => any):void\r\n\t{\r\n\t\t// Will properly dispose created enumerable.\r\n\t\t// Will throw if enumerable is endless.\r\n\t\tforEach(enumerable, action);\r\n\t}\r\n\r\n\tstatic map(\r\n\t\tenumerable:IEnumerableOrArray,\r\n\t\tselector:Selector):TResult[]\r\n\t{\r\n\t\t// Will properly dispose created enumerable.\r\n\t\t// Will throw if enumerable is endless.\r\n\t\treturn map(enumerable, selector);\r\n\r\n\t}\r\n\r\n\t// Slightly optimized versions for numbers.\r\n\tstatic max(values:FiniteEnumerable):number\r\n\t{\r\n\t\treturn values\r\n\t\t\t.takeUntil(v=> v== +Infinity, true)\r\n\t\t\t.aggregate(Functions.Greater);\r\n\t}\r\n\r\n\tstatic min(values:FiniteEnumerable):number\r\n\t{\r\n\t\treturn values\r\n\t\t\t.takeUntil(v=> v== -Infinity, true)\r\n\t\t\t.aggregate(Functions.Lesser);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Takes any set of collections of the same type and weaves them together.\r\n\t * @param enumerables\r\n\t * @returns {Enumerable}\r\n\t */\r\n\tstatic weave(\r\n\t\tenumerables:IEnumerableOrArray>):Enumerable\r\n\t{\r\n\t\tif(!enumerables)\r\n\t\t\tthrow new ArgumentNullException('enumerables');\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar queue:Queue>;\r\n\t\t\t\tvar mainEnumerator:IEnumerator>;\r\n\t\t\t\tvar index:number;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t\tqueue = new Queue>();\r\n\t\t\t\t\t\tmainEnumerator = enumeratorFrom(enumerables);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tlet e:IEnumerator;\r\n\r\n\t\t\t\t\t\t// First pass...\r\n\t\t\t\t\t\tif(mainEnumerator)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\twhile(!e && mainEnumerator.moveNext())\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tlet c = mainEnumerator.current;\r\n\t\t\t\t\t\t\t\te = nextEnumerator(queue, c && enumeratorFrom(c));\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(!e)\r\n\t\t\t\t\t\t\t\tmainEnumerator = null;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\twhile(!e && queue.count)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\te = nextEnumerator(queue, queue.dequeue());\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn e\r\n\t\t\t\t\t\t\t? yielder.yieldReturn(e.current)\r\n\t\t\t\t\t\t\t: yielder.yieldBreak();\r\n\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose.these(queue.dump());\r\n\t\t\t\t\t\tdispose(mainEnumerator, queue);\r\n\t\t\t\t\t\tmainEnumerator = null;\r\n\t\t\t\t\t\tqueue = null;\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\tdoAction(\r\n\t\taction:Action|Predicate|Selector|Selector,\r\n\t\tinitializer?:()=>void,\r\n\t\tisEndless:boolean = this.isEndless):Enumerable\r\n\t{\r\n\t\treturn >super.doAction(action, initializer, isEndless);\r\n\t}\r\n\r\n// #region Indexing/Paging methods.\r\n\r\n\tskip(count:number):Enumerable\r\n\t{\r\n\t\treturn >super.skip(count);\r\n\t}\r\n\r\n\tskipWhile(predicate:Predicate):Enumerable\r\n\t{\r\n\t\tthis.throwIfDisposed();\r\n\t\treturn this.doAction(\r\n\t\t\t(element:T, index?:number) =>\r\n\t\t\t\tpredicate(element, index)\r\n\t\t\t\t\t? EnumerableAction.Skip\r\n\t\t\t\t\t: EnumerableAction.Return\r\n\t\t);\r\n\t}\r\n\r\n\ttakeWhile(predicate:Predicate):Enumerable\r\n\t{\r\n\t\tthis.throwIfDisposed();\r\n\r\n\t\tif(!predicate)\r\n\t\t\tthrow new ArgumentNullException('predicate');\r\n\r\n\t\treturn this.doAction(\r\n\t\t\t(element:T, index?:number) =>\r\n\t\t\t\tpredicate(element, index)\r\n\t\t\t\t\t? EnumerableAction.Return\r\n\t\t\t\t\t: EnumerableAction.Break,\r\n\t\t\tnull,\r\n\t\t\tnull // We don't know the state if it is endless or not.\r\n\t\t);\r\n\t}\r\n\r\n\t// Is like the inverse of take While with the ability to return the value identified by the predicate.\r\n\ttakeUntil(predicate:Predicate, includeUntilValue?:boolean):Enumerable\r\n\t{\r\n\t\tthis.throwIfDisposed();\r\n\r\n\t\tif(!predicate)\r\n\t\t\tthrow new ArgumentNullException('predicate');\r\n\r\n\t\tif(!includeUntilValue)\r\n\t\t\treturn this.doAction(\r\n\t\t\t\t(element:T, index?:number) =>\r\n\t\t\t\t\tpredicate(element, index)\r\n\t\t\t\t\t\t? EnumerableAction.Break\r\n\t\t\t\t\t\t: EnumerableAction.Return,\r\n\t\t\t\tnull,\r\n\t\t\t\tnull // We don't know the state if it is endless or not.\r\n\t\t\t);\r\n\r\n\t\tvar found:boolean = false;\r\n\t\treturn this.doAction(\r\n\t\t\t(element:T, index?:number) =>\r\n\t\t\t{\r\n\t\t\t\tif(found)\r\n\t\t\t\t\treturn EnumerableAction.Break;\r\n\r\n\t\t\t\tfound = predicate(element, index);\r\n\t\t\t\treturn EnumerableAction.Return;\r\n\t\t\t},\r\n\t\t\t()=>\r\n\t\t\t{\r\n\t\t\t\tfound = false;\r\n\t\t\t},\r\n\t\t\tnull // We don't know the state if it is endless or not.\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tforEach(action:Predicate | Action):void\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\tthrowIfEndless(_.isEndless);\r\n\r\n\t\tvar index:number = 0;\r\n\t\t// Return value of action can be anything, but if it is (===) false then the forEach will discontinue.\r\n\t\tusing(\r\n\t\t\t_.getEnumerator(), e=>\r\n\t\t\t{\r\n\t\t\t\tthrowIfEndless(e.isEndless);\r\n\r\n\t\t\t\t// It is possible that subsequently 'action' could cause the enumeration to dispose, so we have to check each time.\r\n\t\t\t\twhile(_.throwIfDisposed() && e.moveNext())\r\n\t\t\t\t{\r\n\t\t\t\t\tif(action(e.current, index++)===false)\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\t// #region Conversion Methods\r\n\ttoArray(predicate?:Predicate):T[]\r\n\t{\r\n\t\treturn predicate\r\n\t\t\t? this.where(predicate).toArray()\r\n\t\t\t: this.copyTo([]);\r\n\t}\r\n\r\n\tcopyTo(target:T[], index:number = 0):T[]\r\n\t{\r\n\t\tthis.throwIfDisposed();\r\n\t\tif(!target) throw new ArgumentNullException(\"target\");\r\n\t\tInteger.assertZeroOrGreater(index);\r\n\r\n\t\t// If not exposing an action that could cause dispose, then use forEach utility instead.\r\n\t\tforEach(this, (x, i)=>\r\n\t\t{\r\n\t\t\ttarget[i + index] = x\r\n\t\t});\r\n\r\n\t\treturn target;\r\n\t}\r\n\r\n\ttoLookup(\r\n\t\tkeySelector:Selector,\r\n\t\telementSelector:Selector = Functions.Identity,\r\n\t\tcompareSelector:Selector = Functions.Identity):ILookup\r\n\t{\r\n\t\tvar dict:Dictionary = new Dictionary(compareSelector);\r\n\t\tthis.forEach(\r\n\t\t\tx=>\r\n\t\t\t{\r\n\t\t\t\tvar key = keySelector(x);\r\n\t\t\t\tvar element = elementSelector(x);\r\n\r\n\t\t\t\tvar array = dict.getValue(key);\r\n\t\t\t\tif(array!==VOID0) array.push(element);\r\n\t\t\t\telse dict.addByKeyValue(key, [element]);\r\n\t\t\t}\r\n\t\t);\r\n\t\treturn new Lookup(dict);\r\n\t}\r\n\r\n\ttoMap(\r\n\t\tkeySelector:Selector,\r\n\t\telementSelector:Selector):IMap\r\n\t{\r\n\t\tvar obj:IMap = {};\r\n\t\tthis.forEach((x, i)=>\r\n\t\t{\r\n\t\t\tobj[keySelector(x, i)] = elementSelector(x, i);\r\n\t\t});\r\n\t\treturn obj;\r\n\t}\r\n\r\n\ttoDictionary(\r\n\t\tkeySelector:Selector,\r\n\t\telementSelector:Selector,\r\n\t\tcompareSelector:Selector = Functions.Identity):Dictionary\r\n\t{\r\n\t\tvar dict:Dictionary = new Dictionary(compareSelector);\r\n\t\tthis.forEach((x, i)=> dict.addByKeyValue(keySelector(x, i), elementSelector(x, i)));\r\n\t\treturn dict;\r\n\t}\r\n\r\n\ttoJoinedString(separator:string = \"\", selector:Selector = Functions.Identity)\r\n\t{\r\n\t\treturn this.select(selector).toArray().join(separator);\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\r\n\ttakeExceptLast(count:number = 1):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\tif(!(count>0)) // Out of bounds?\r\n\t\t\treturn _;\r\n\r\n\t\tif(!isFinite(count)) // +Infinity equals skip all so return empty.\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\tInteger.assert(count, \"count\");\r\n\t\tvar c = count;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar q:Queue;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tq = new Queue();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t// Add the next one to the queue.\r\n\t\t\t\t\t\t\tq.enqueue(enumerator.current);\r\n\r\n\t\t\t\t\t\t\t// Did we reach our quota?\r\n\t\t\t\t\t\t\tif(q.count>c)\r\n\t\t\t\t\t\t\t// Okay then, start returning results.\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(q.dequeue());\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator, q);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tskipToLast(count:number):Enumerable\r\n\t{\r\n\t\tif(!(count>0)) // Out of bounds? Empty.\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\tvar _ = this;\r\n\r\n\t\tif(!isFinite(count)) // Infinity means return all.\r\n\t\t\treturn _;\r\n\r\n\t\tInteger.assert(count, \"count\");\r\n\r\n\t\t// This sets up the query so nothing is done until move next is called.\r\n\t\treturn _.reverse()\r\n\t\t\t.take(count)\r\n\t\t\t.reverse();\r\n\t}\r\n\r\n\t// To help with type guarding.\r\n\r\n\twhere(predicate:Predicate):Enumerable\r\n\t{\r\n\t\treturn >super.where(predicate);\r\n\t}\r\n\r\n\tselect(selector:Selector):Enumerable\r\n\t{\r\n\t\treturn >super.select(selector);\r\n\t}\r\n\r\n\tselectMany(\r\n\t\tcollectionSelector:Selector>):Enumerable;\r\n\r\n\r\n\tselectMany(\r\n\t\tcollectionSelector:Selector>,\r\n\t\tresultSelector:(collection:T, element:TElement)=>TResult):Enumerable;\r\n\r\n\tselectMany(\r\n\t\tcollectionSelector:Selector>,\r\n\t\tresultSelector?:(collection:T, element:any)=>TResult):Enumerable\r\n\t{\r\n\t\treturn this._selectMany(collectionSelector, resultSelector);\r\n\t}\r\n\r\n\tchoose():Enumerable;\r\n\tchoose(selector?:Selector):Enumerable\r\n\tchoose(selector:Selector = Functions.Identity):Enumerable\r\n\t{\r\n\t\treturn this._choose(selector);\r\n\t}\r\n\r\n\treverse():Enumerable\r\n\t{\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\t\tthrowIfEndless(_._isEndless); // Cannot reverse an endless collection...\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar buffer:T[];\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\tbuffer = _.toArray();\r\n\t\t\t\t\t\tindex = buffer.length;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=> index && yielder.yieldReturn(buffer[--index]),\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tbuffer.length = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tshuffle():Enumerable\r\n\t{\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\t\tthrowIfEndless(_._isEndless); // Cannot shuffle an endless collection...\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar buffer:T[];\r\n\t\t\t\tvar capacity:number;\r\n\t\t\t\tvar len:number;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\tbuffer = _.toArray();\r\n\t\t\t\t\t\tcapacity = len = buffer.length;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t// Avoid using major array operations like .slice();\r\n\t\t\t\t\t\tif(!len)\r\n\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\r\n\t\t\t\t\t\tvar selectedIndex = Integer.random(len);\r\n\t\t\t\t\t\tvar selectedValue = buffer[selectedIndex];\r\n\r\n\t\t\t\t\t\tbuffer[selectedIndex] = buffer[--len]; // Take the last one and put it here.\r\n\t\t\t\t\t\tbuffer[len] = null; // clear possible reference.\r\n\r\n\t\t\t\t\t\tif(len%32==0) // Shrink?\r\n\t\t\t\t\t\t\tbuffer.length = len;\r\n\r\n\t\t\t\t\t\treturn yielder.yieldReturn(selectedValue);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tbuffer.length = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tcount(predicate?:Predicate):number\r\n\t{\r\n\t\tvar count:number = 0;\r\n\t\tthis.forEach(\r\n\t\t\tpredicate\r\n\r\n\t\t\t\t?\r\n\t\t\t\t(x, i) =>\r\n\t\t\t\t{\r\n\t\t\t\t\tif(predicate(x, i))++count;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t:\r\n\t\t\t\t() =>\r\n\t\t\t\t{\r\n\t\t\t\t\t++count;\r\n\t\t\t\t}\r\n\t\t);\r\n\r\n\t\treturn count;\r\n\t}\r\n\r\n\t// Akin to '.every' on an array.\r\n\tall(predicate:Predicate):boolean\r\n\t{\r\n\t\tif(!predicate)\r\n\t\t\tthrow new ArgumentNullException(\"predicate\");\r\n\r\n\t\tvar result = true;\r\n\t\tthis.forEach((x, i) =>\r\n\t\t{\r\n\t\t\tif(!predicate(x, i))\r\n\t\t\t{\r\n\t\t\t\tresult = false;\r\n\t\t\t\treturn false; // break\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\r\n\t// 'every' has been added here for parity/compatibility with an array.\r\n\tevery(predicate:Predicate):boolean\r\n\t{\r\n\t\treturn this.all(predicate);\r\n\t}\r\n\r\n\t// Akin to '.some' on an array.\r\n\tany(predicate?:Predicate):boolean\r\n\t{\r\n\t\tif(!predicate)\r\n\t\t\treturn super.any();\r\n\r\n\t\tvar result = false;\r\n\t\t// Splitting the forEach up this way reduces iterative processing.\r\n\t\t// forEach handles the generation and disposal of the enumerator.\r\n\t\tthis.forEach(\r\n\t\t\t(x, i) =>\r\n\t\t\t{\r\n\t\t\t\tresult = predicate(x, i); // false = not found and therefore it should continue. true = found and break;\r\n\t\t\t\treturn !result;\r\n\t\t\t});\r\n\t\treturn result;\r\n\r\n\t}\r\n\r\n\t// 'some' has been added here for parity/compatibility with an array.\r\n\tsome(predicate:Predicate):boolean\r\n\t{\r\n\t\treturn this.any(predicate);\r\n\t}\r\n\r\n\r\n\tcontains(value:T, compareSelector?:Selector):boolean\r\n\t{\r\n\t\treturn compareSelector\r\n\t\t\t? this.any(v=> compareSelector(v)===compareSelector(value))\r\n\t\t\t: this.any(v=> v===value);\r\n\t}\r\n\r\n\t// Originally has an overload for a predicate,\r\n\t// but that's a bad idea since this could be an enumeration of functions and therefore fail the intent.\r\n\t// Better to chain a where statement first to be more explicit.\r\n\tindexOf(value:T, compareSelector?:Selector):number\r\n\t{\r\n\t\tvar found:number = -1;\r\n\t\tthis.forEach(\r\n\t\t\tcompareSelector\r\n\t\t\t\t?\r\n\t\t\t\t(element:T, i?:number) =>\r\n\t\t\t\t{\r\n\t\t\t\t\tif(Values.areEqual(compareSelector(element, i), compareSelector(value, i), true))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfound = i;\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t:\r\n\t\t\t\t(element:T, i?:number) =>\r\n\t\t\t\t{\r\n\t\t\t\t\t// Why? Because NaN doesn't equal NaN. :P\r\n\t\t\t\t\tif(Values.areEqual(element, value, true))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfound = i;\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\r\n\t\treturn found;\r\n\t}\r\n\r\n\tlastIndexOf(value:T, compareSelector?:Selector):number\r\n\t{\r\n\t\tvar result:number = -1;\r\n\t\tthis.forEach(\r\n\t\t\tcompareSelector\r\n\t\t\t\t?\r\n\t\t\t\t(element:T, i?:number) =>\r\n\t\t\t\t{\r\n\t\t\t\t\tif(Values.areEqual(compareSelector(element, i), compareSelector(value, i), true)) result\r\n\t\t\t\t\t\t= i;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t:\r\n\t\t\t\t(element:T, i?:number) =>\r\n\t\t\t\t{\r\n\t\t\t\t\tif(Values.areEqual(element, value, true)) result = i;\r\n\t\t\t\t});\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\tmerge(enumerables:IArray>):Enumerable\r\n\t{\r\n\t\treturn >super.merge(enumerables);\r\n\t}\r\n\r\n\tconcat(...enumerables:Array>):Enumerable\r\n\t{\r\n\t\treturn this.merge(enumerables);\r\n\t}\r\n\r\n\r\n\tintersect(\r\n\t\tsecond:IEnumerableOrArray,\r\n\t\tcompareSelector?:Selector):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar keys:Dictionary;\r\n\t\t\t\tvar outs:Dictionary;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\r\n\t\t\t\t\t\tkeys = new Dictionary(compareSelector);\r\n\t\t\t\t\t\touts = new Dictionary(compareSelector);\r\n\r\n\t\t\t\t\t\tforEach(second, key=>\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tkeys.addByKeyValue(key, true);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar current = enumerator.current;\r\n\t\t\t\t\t\t\tif(!outs.containsKey(current) && keys.containsKey(current))\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\touts.addByKeyValue(current, true);\r\n\t\t\t\t\t\t\t\treturn yielder.yieldReturn(current);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator, keys, outs);\r\n\t\t\t\t\t},\r\n\t\t\t\t\t_._isEndless\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\t\t\t_._isEndless\r\n\t\t);\r\n\t}\r\n\r\n\tsequenceEqual(\r\n\t\tsecond:IEnumerableOrArray,\r\n\t\tequalityComparer:EqualityComparison = Values.areEqual):boolean\r\n\t{\r\n\t\treturn using(\r\n\t\t\tthis.getEnumerator(),\r\n\t\t\te1=> using(\r\n\t\t\t\tenumeratorFrom(second),\r\n\t\t\t\te2=>\r\n\t\t\t\t{\r\n\t\t\t\t\t// if both are endless, this will never evaluate.\r\n\t\t\t\t\tthrowIfEndless(e1.isEndless && e2.isEndless);\r\n\r\n\t\t\t\t\twhile(e1.moveNext())\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(!e2.moveNext() || !equalityComparer(e1.current, e2.current))\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn !e2.moveNext();\r\n\t\t\t\t}\r\n\t\t\t)\r\n\t\t);\r\n\t}\r\n\r\n\t//isEquivalent(second:IEnumerableOrArray,\r\n\t//\tequalityComparer:EqualityComparison = Values.areEqual):boolean\r\n\t//{\r\n\t//\treturn this\r\n\t//\t\t.orderBy(keySelector)\r\n\t//\t\t.sequenceEqual(Enumerable.from(second).orderBy(keySelector))\r\n\t//}\r\n\r\n\r\n\t// #endregion\r\n\r\n\r\n\tofType(type:{ new (...params:any[]):TType }):Enumerable;\r\n\tofType(type:any):Enumerable\r\n\t{\r\n\t\treturn >super.ofType(type);\r\n\t}\r\n\r\n\texcept(\r\n\t\tsecond:IEnumerableOrArray,\r\n\t\tcompareSelector?:Selector):Enumerable\r\n\t{\r\n\t\treturn >super.except(second, compareSelector);\r\n\t}\r\n\r\n\tdistinct(compareSelector?:(value:T)=>T):Enumerable\r\n\t{\r\n\t\treturn >super.distinct(compareSelector);\r\n\t}\r\n\r\n\tdistinctUntilChanged(compareSelector:Selector = Functions.Identity):Enumerable\r\n\t{\r\n\t\treturn >super.distinctUntilChanged(compareSelector);\r\n\t}\r\n\r\n// #region Ordering Methods\r\n\r\n\torderBy(keySelector:Selector = Functions.Identity):IOrderedEnumerable\r\n\t{\r\n\t\treturn new OrderedEnumerable(this, keySelector, Order.Ascending);\r\n\t}\r\n\r\n\torderUsing(comparison:Comparison):IOrderedEnumerable\r\n\t{\r\n\t\treturn new OrderedEnumerable(this, null, Order.Ascending, null, comparison);\r\n\t}\r\n\r\n\torderUsingReversed(comparison:Comparison):IOrderedEnumerable\r\n\t{\r\n\t\treturn new OrderedEnumerable(this, null, Order.Descending, null, comparison);\r\n\t}\r\n\r\n\torderByDescending(keySelector:Selector = Functions.Identity):IOrderedEnumerable\r\n\t{\r\n\t\treturn new OrderedEnumerable(this, keySelector, Order.Descending);\r\n\t}\r\n\r\n\t/*\r\n\t\t weightedSample(weightSelector) {\r\n\t\t weightSelector = Utils.createLambda(weightSelector);\r\n\t\t var source = this;\r\n\r\n\t\t return new Enumerable(() => {\r\n\t\t var sortedByBound;\r\n\t\t var totalWeight = 0;\r\n\r\n\t\t return new EnumeratorBase(\r\n\t\t () => {\r\n\t\t sortedByBound = source\r\n\t\t .choose(function (x) {\r\n\t\t var weight = weightSelector(x);\r\n\t\t if (weight <= 0) return null; // ignore 0\r\n\r\n\t\t totalWeight += weight;\r\n\t\t return { value: x, bound: totalWeight }\r\n\t\t })\r\n\t\t .toArray();\r\n\t\t },\r\n\t\t () => {\r\n\t\t if (sortedByBound.length > 0) {\r\n\t\t var draw = (Math.random() * totalWeight) + 1;\r\n\r\n\t\t var lower = -1;\r\n\t\t var upper = sortedByBound.length;\r\n\t\t while (upper - lower > 1) {\r\n\t\t var index = ((lower + upper) / 2);\r\n\t\t if (sortedByBound[index].bound >= draw) {\r\n\t\t upper = index;\r\n\t\t }\r\n\t\t else {\r\n\t\t lower = index;\r\n\t\t }\r\n\t\t }\r\n\r\n\t\t return (this).yieldReturn(sortedByBound[upper].value);\r\n\t\t }\r\n\r\n\t\t return (this).yieldBreak();\r\n\t\t },\r\n\t\t Functions.Blank);\r\n\t\t });\r\n\t\t }\r\n\t\t */\r\n\t// #endregion\r\n\r\n\tbuffer(size:number):Enumerable\r\n\t{\r\n\t\treturn >super.buffer(size);\r\n\t}\r\n\r\n\t// #region Grouping Methods\r\n\r\n\t// Originally contained a result selector (not common use), but this could be done simply by a select statement after.\r\n\r\n\r\n\tgroupBy(keySelector:Selector):Enumerable>;\r\n\tgroupBy(\r\n\t\tkeySelector:Selector,\r\n\t\telementSelector?:Selector,\r\n\t\tcompareSelector?:Selector):Enumerable>;\r\n\tgroupBy(\r\n\t\tkeySelector:Selector,\r\n\t\telementSelector?:Selector,\r\n\t\tcompareSelector?:Selector):Enumerable>\r\n\t{\r\n\t\tif(!elementSelector) elementSelector = Functions.Identity; // Allow for 'null' and not just undefined.\r\n\t\treturn new Enumerable>(\r\n\t\t\t() => this.toLookup(keySelector, elementSelector, compareSelector)\r\n\t\t\t\t.getEnumerator()\r\n\t\t);\r\n\t}\r\n\r\n\tpartitionBy(keySelector:Selector):Enumerable>;\r\n\tpartitionBy(\r\n\t\tkeySelector:Selector,\r\n\t\telementSelector:Selector,\r\n\t\tresultSelector?:(key:TKey, element:TElement[]) => IGrouping,\r\n\t\tcompareSelector?:Selector):Enumerable>;\r\n\tpartitionBy(\r\n\t\tkeySelector:Selector,\r\n\t\telementSelector?:Selector,\r\n\t\tresultSelector:(key:TKey, element:TElement[]) => IGrouping\r\n\t\t\t= (key:TKey, elements:TElement[]) => new Grouping(key, elements),\r\n\t\tcompareSelector:Selector\r\n\t\t\t= Functions.Identity):Enumerable>|Enumerable>\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\t\tif(!elementSelector) elementSelector = Functions.Identity; // Allow for 'null' and not just undefined.\r\n\t\treturn new Enumerable>(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar enumerator:IEnumerator;\r\n\t\t\t\tvar key:TKey;\r\n\t\t\t\tvar compareKey:TCompare;\r\n\t\t\t\tvar group:TElement[];\r\n\t\t\t\tvar len:number;\r\n\r\n\t\t\t\treturn new EnumeratorBase>(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tif(enumerator.moveNext())\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tkey = keySelector(enumerator.current);\r\n\t\t\t\t\t\t\tcompareKey = compareSelector(key);\r\n\t\t\t\t\t\t\tgroup = [elementSelector(enumerator.current)];\r\n\t\t\t\t\t\t\tlen = 1;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\tgroup = null;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(!group)\r\n\t\t\t\t\t\t\treturn yielder.yieldBreak();\r\n\r\n\t\t\t\t\t\tvar hasNext:boolean, c:T;\r\n\t\t\t\t\t\twhile((hasNext = enumerator.moveNext()))\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tc = enumerator.current;\r\n\t\t\t\t\t\t\tif(compareKey===compareSelector(keySelector(c)))\r\n\t\t\t\t\t\t\t\tgroup[len++] = elementSelector(c);\r\n\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar result:IGrouping\r\n\t\t\t\t\t\t\t = resultSelector(key, group);\r\n\r\n\t\t\t\t\t\tif(hasNext)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tc = enumerator.current;\r\n\t\t\t\t\t\t\tkey = keySelector(c);\r\n\t\t\t\t\t\t\tcompareKey = compareSelector(key);\r\n\t\t\t\t\t\t\tgroup = [elementSelector(c)];\r\n\t\t\t\t\t\t\tlen = 1;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tgroup = null;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn yielder.yieldReturn(result);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdispose(enumerator);\r\n\t\t\t\t\t\tgroup = null;\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\t// #region Aggregate Methods\r\n\r\n\taggregate(\r\n\t\tfunc:(a:T, b:T) => T,\r\n\t\tseed?:T):T\r\n\t{\r\n\t\treturn this.scan(func, seed).lastOrDefault();\r\n\t}\r\n\r\n\taverage(selector:Selector = Type.numberOrNaN):number\r\n\t{\r\n\t\tvar count = 0;\r\n\t\tvar sum = this.sum((e, i)=>\r\n\t\t{\r\n\t\t\tcount++;\r\n\t\t\treturn selector(e, i);\r\n\t\t});\r\n\r\n\t\treturn (isNaN(sum) || !count)\r\n\t\t\t? NaN\r\n\t\t\t: (sum/count);\r\n\t}\r\n\r\n\t// If using numbers, it may be useful to call .takeUntil(v=>v==Infinity,true) before calling max. See static versions for numbers.\r\n\tmax():T\r\n\t{\r\n\t\treturn this.aggregate(Functions.Greater);\r\n\t}\r\n\r\n\tmin():T\r\n\t{\r\n\t\treturn this.aggregate(Functions.Lesser);\r\n\t}\r\n\r\n\tmaxBy(keySelector:Selector = Functions.Identity):T\r\n\t{\r\n\t\treturn this.aggregate((a:T, b:T) => (keySelector(a)>keySelector(b)) ? a : b);\r\n\t}\r\n\r\n\tminBy(keySelector:Selector = Functions.Identity):T\r\n\t{\r\n\t\treturn this.aggregate((a:T, b:T) => (keySelector(a) = Type.numberOrNaN):number\r\n\t{\r\n\t\tvar sum = 0;\r\n\r\n\t\t// This allows for infinity math that doesn't destroy the other values.\r\n\t\tvar sumInfinite = 0; // Needs more investigation since we are really trying to retain signs.\r\n\r\n\t\tthis.forEach(\r\n\t\t\tx=>\r\n\t\t\t{\r\n\t\t\t\tvar value = selector(x);\r\n\t\t\t\tif(isNaN(value))\r\n\t\t\t\t{\r\n\t\t\t\t\tsum = NaN;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tif(isFinite(value))\r\n\t\t\t\t\tsum += value;\r\n\t\t\t\telse\r\n\t\t\t\t\tsumInfinite +=\r\n\t\t\t\t\t\tvalue>0 ?\r\n\t\t\t\t\t\t\t(+1) :\r\n\t\t\t\t\t\t\t(-1);\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\treturn isNaN(sum) ? NaN : (sumInfinite ? (sumInfinite*Infinity) : sum);\r\n\t}\r\n\r\n\t// Multiplication...\r\n\tproduct(selector:Selector = Type.numberOrNaN):number\r\n\t{\r\n\t\tvar result = 1, exists:boolean = false;\r\n\r\n\t\tthis.forEach(\r\n\t\t\t(x, i)=>\r\n\t\t\t{\r\n\t\t\t\texists = true;\r\n\t\t\t\tvar value = selector(x, i);\r\n\t\t\t\tif(isNaN(value))\r\n\t\t\t\t{\r\n\t\t\t\t\tresult = NaN;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(value==0)\r\n\t\t\t\t{\r\n\t\t\t\t\tresult = 0; // Multiplying by zero will always end in zero.\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Multiplication can never recover from infinity and simply must retain signs.\r\n\t\t\t\t// You could cancel out infinity with 1/infinity but no available representation exists.\r\n\t\t\t\tresult *= value;\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\treturn (exists && isNaN(result)) ? NaN : result;\r\n\t}\r\n\r\n\t/**\r\n\t * Takes the first number and divides it by all following.\r\n\t * @param selector\r\n\t * @returns {number}\r\n\t */\r\n\tquotient(selector:Selector = Type.numberOrNaN):number\r\n\t{\r\n\t\tvar count = 0;\r\n\t\tvar result:number = NaN;\r\n\r\n\t\tthis.forEach(\r\n\t\t\t(x, i)=>\r\n\t\t\t{\r\n\t\t\t\tvar value = selector(x, i);\r\n\t\t\t\tcount++;\r\n\r\n\t\t\t\tif(count===1)\r\n\t\t\t\t{\r\n\t\t\t\t\tresult = value;\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tif(isNaN(value) || value===0 || !isFinite(value))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tresult = NaN;\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tresult /= value;\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\tif(count===1)\r\n\t\t\tresult = NaN;\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\t// #region Single Value Return...\r\n\r\n\tlast():T\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar value:T = undefined;\r\n\t\tvar found:boolean = false;\r\n\t\t_.forEach(\r\n\t\t\tx =>\r\n\t\t\t{\r\n\t\t\t\tfound = true;\r\n\t\t\t\tvalue = x;\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\tif(!found) throw new Error(\"last:No element satisfies the condition.\");\r\n\t\treturn value;\r\n\t}\r\n\r\n\tlastOrDefault(defaultValue:T = null):T\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar value:T = undefined;\r\n\t\tvar found:boolean = false;\r\n\t\t_.forEach(\r\n\t\t\tx=>\r\n\t\t\t{\r\n\t\t\t\tfound = true;\r\n\t\t\t\tvalue = x;\r\n\t\t\t}\r\n\t\t);\r\n\t\treturn (!found) ? defaultValue : value;\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\tshare():Enumerable\r\n\t{\r\n\t\treturn >super.share();\r\n\t}\r\n\r\n\r\n\tcatchError(handler:(e:any)=>void):Enumerable\r\n\t{\r\n\t\treturn >super.catchError(handler);\r\n\t}\r\n\r\n\r\n\tfinallyAction(action:()=>void):Enumerable\r\n\t{\r\n\t\treturn >super.finallyAction(action);\r\n\t}\r\n\r\n\tmemoize():Enumerable\r\n\t{\r\n\t\tvar _ = this, disposed:boolean = !_.throwIfDisposed();\r\n\r\n\t\tvar cache:T[];\r\n\t\tvar enumerator:IEnumerator;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\r\n\t\t\t\tvar index:number = 0;\r\n\r\n\t\t\t\treturn new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\t\t\t\t\t\tif(!enumerator)\r\n\t\t\t\t\t\t\tenumerator = _.getEnumerator();\r\n\t\t\t\t\t\tif(!cache)\r\n\t\t\t\t\t\t\tcache = [];\r\n\t\t\t\t\t\tindex = 0;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthrowIfDisposed(disposed);\r\n\r\n\t\t\t\t\t\tvar i = index++;\r\n\r\n\t\t\t\t\t\tif(i>=cache.length)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\treturn (enumerator.moveNext())\r\n\t\t\t\t\t\t\t\t? yielder.yieldReturn(cache[i] = enumerator.current)\r\n\t\t\t\t\t\t\t\t: false;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn yielder.yieldReturn(cache[i]);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdisposed = true;\r\n\t\t\t\tif(cache)\r\n\t\t\t\t\tcache.length = 0;\r\n\t\t\t\tcache = null;\r\n\r\n\t\t\t\tdispose(enumerator);\r\n\t\t\t\tenumerator = null;\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\r\n}\r\n\r\n\r\n// Provided for type guarding.\r\nexport class FiniteEnumerable\r\nextends Enumerable\r\n{\r\n\tconstructor(\r\n\t\tenumeratorFactory:() => IEnumerator,\r\n\t\tfinalizer?:() => void)\r\n\t{\r\n\t\tsuper(enumeratorFactory, finalizer, false);\r\n\t}\r\n\r\n}\r\n\r\nclass ArrayEnumerable\r\nextends FiniteEnumerable\r\n{\r\n\tprivate _source:IArray;\r\n\r\n\tconstructor(source:IArray)\r\n\t{\r\n\t\tsuper(() =>\r\n\t\t{\r\n\t\t\t_.throwIfDisposed();\r\n\t\t\treturn new ArrayEnumerator(() =>\r\n\t\t\t{\r\n\t\t\t\t_.throwIfDisposed(\"The underlying ArrayEnumerable was disposed.\", \"ArrayEnumerator\");\r\n\r\n\t\t\t\treturn _._source; // Should never be null, but ArrayEnumerable if not disposed simply treats null as empty array.\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tvar _ = this;\r\n\t\t_._disposableObjectName = \"ArrayEnumerable\";\r\n\t\t_._source = source;\r\n\r\n\t}\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis._source = null;\r\n\t}\r\n\r\n\tget source():IArray\r\n\t{\r\n\t\treturn this._source;\r\n\t}\r\n\r\n\ttoArray():T[]\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\treturn toArray(_._source);\r\n\t}\r\n\r\n\tasEnumerable():ArrayEnumerable\r\n\t{\r\n\t\treturn new ArrayEnumerable(this._source);\r\n\t}\r\n\r\n\t// Optimize forEach so that subsequent usage is optimized.\r\n\tforEach(action:Predicate | Action):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tforEach(_._source, action);\r\n\t}\r\n\r\n\t// These methods should ALWAYS check for array length before attempting anything.\r\n\r\n\tany(predicate?:Predicate):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar source = _._source, len = source.length;\r\n\t\treturn len && (!predicate || super.any(predicate));\r\n\t}\r\n\r\n\tcount(predicate?:Predicate):number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar source = _._source, len = source.length;\r\n\t\treturn len && (predicate ? super.count(predicate) : len);\r\n\t}\r\n\r\n\telementAtOrDefault(index:number, defaultValue:T = null):T\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\tInteger.assertZeroOrGreater(index, 'index');\r\n\r\n\t\tvar source = _._source;\r\n\t\treturn index\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\r\n\t\tif(!(count>0))\r\n\t\t\treturn _;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() => new ArrayEnumerator(() => _._source, count)\r\n\t\t);\r\n\t}\r\n\r\n\ttakeExceptLast(count:number = 1):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn _.take(_._source.length - count);\r\n\t}\r\n\r\n\tskipToLast(count:number):Enumerable\r\n\t{\r\n\t\tif(!(count>0))\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\tvar _ = this;\r\n\t\tif(!isFinite(count))\r\n\t\t\treturn _;\r\n\r\n\t\tvar len = _._source\r\n\t\t\t? _._source.length\r\n\t\t\t: 0;\r\n\r\n\t\treturn _.skip(len - count);\r\n\t}\r\n\r\n\treverse():Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\treturn new Enumerable(\r\n\t\t\t() => new ArrayEnumerator(\r\n\t\t\t\t() => _._source, _._source\r\n\t\t\t\t\t? (_._source.length - 1)\r\n\t\t\t\t\t: 0, -1\r\n\t\t\t)\r\n\t\t);\r\n\t}\r\n\r\n\tmemoize():ArrayEnumerable\r\n\t{\r\n\t\treturn this.asEnumerable();\r\n\t}\r\n\r\n\tsequenceEqual(\r\n\t\tsecond:IEnumerableOrArray,\r\n\t\tequalityComparer:EqualityComparison = Values.areEqual):boolean\r\n\t{\r\n\t\tif(Type.isArrayLike(second))\r\n\t\t\treturn Arrays.areEqual(this.source, second, true, equalityComparer);\r\n\r\n\t\tif(second instanceof ArrayEnumerable)\r\n\t\t\treturn second.sequenceEqual(this.source, equalityComparer);\r\n\r\n\t\treturn super.sequenceEqual(second, equalityComparer);\r\n\t}\r\n\r\n\r\n\ttoJoinedString(separator:string = \"\", selector:Selector = Functions.Identity)\r\n\t{\r\n\t\tvar s = this._source;\r\n\t\treturn !selector && Array.isArray(s)\r\n\t\t\t? (>s).join(separator)\r\n\t\t\t: super.toJoinedString(separator, selector);\r\n\t}\r\n\r\n}\r\n\r\n\r\nexport interface IGrouping\r\nextends Enumerable\r\n{\r\n\tkey:TKey;\r\n}\r\n\r\nclass Grouping\r\nextends ArrayEnumerable implements IGrouping\r\n{\r\n\r\n\tconstructor(private _groupKey:TKey, elements:TElement[])\r\n\t{\r\n\t\tsuper(elements);\r\n\t}\r\n\r\n\tget key():TKey\r\n\t{\r\n\t\treturn this._groupKey;\r\n\t}\r\n}\r\n\r\n\r\nexport interface ILookup\r\nextends IEnumerable>\r\n{\r\n\tcount:number;\r\n\tget(key:TKey):TElement[];\r\n\tcontains(key:TKey):boolean;\r\n}\r\n\r\nclass Lookup\r\nimplements ILookup\r\n{\r\n\r\n\tconstructor(private _dictionary:Dictionary)\r\n\t{\r\n\t}\r\n\r\n\tget count():number\r\n\t{\r\n\t\treturn this._dictionary.count;\r\n\t}\r\n\r\n\tget(key:TKey):TElement[]\r\n\t{\r\n\t\treturn this._dictionary.getValue(key);\r\n\t}\r\n\r\n\tcontains(key:TKey):boolean\r\n\t{\r\n\t\treturn this._dictionary.containsKey(key);\r\n\t}\r\n\r\n\tgetEnumerator():IEnumerator>\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\t\tvar enumerator:IEnumerator>;\r\n\r\n\t\treturn new EnumeratorBase>(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tenumerator = _._dictionary.getEnumerator();\r\n\t\t\t},\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\r\n\t\t\t\tif(!enumerator.moveNext())\r\n\t\t\t\t\treturn false;\r\n\r\n\t\t\t\tvar current = enumerator.current;\r\n\r\n\t\t\t\treturn yielder.yieldReturn(new Grouping(current.key, current.value));\r\n\t\t\t},\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tdispose(enumerator);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n}\r\n\r\n\r\nexport interface IOrderedEnumerable\r\nextends FiniteEnumerable\r\n{\r\n\tthenBy(keySelector:(value:T) => any):IOrderedEnumerable;\r\n\tthenByDescending(keySelector:(value:T) => any):IOrderedEnumerable;\r\n\tthenUsing(comparison:Comparison):IOrderedEnumerable;\r\n\tthenUsingReversed(comparison:Comparison):IOrderedEnumerable\r\n}\r\n\r\nclass OrderedEnumerable\r\nextends FiniteEnumerable implements IOrderedEnumerable\r\n{\r\n\r\n\tconstructor(\r\n\t\tprivate source:IEnumerable,\r\n\t\tpublic keySelector:(value:T) => TOrderBy,\r\n\t\tpublic order:Order,\r\n\t\tpublic parent?:OrderedEnumerable,\r\n\t\tpublic comparer:Comparison = Values.compare)\r\n\t{\r\n\t\tsuper(null);\r\n\t\tthrowIfEndless(source && source.isEndless);\r\n\t}\r\n\r\n\tprivate createOrderedEnumerable(\r\n\t\tkeySelector:(value:T) => TOrderBy,\r\n\t\torder:Order):IOrderedEnumerable\r\n\t{\r\n\t\treturn new OrderedEnumerable(this.source, keySelector, order, this);\r\n\t}\r\n\r\n\tthenBy(keySelector:(value:T) => TOrderBy):IOrderedEnumerable\r\n\t{\r\n\t\treturn this.createOrderedEnumerable(keySelector, Order.Ascending);\r\n\t}\r\n\r\n\tthenUsing(comparison:Comparison):IOrderedEnumerable\r\n\t{\r\n\t\treturn new OrderedEnumerable(this.source, null, Order.Ascending, this, comparison);\r\n\t}\r\n\r\n\tthenByDescending(keySelector:(value:T) => TOrderBy):IOrderedEnumerable\r\n\t{\r\n\t\treturn this.createOrderedEnumerable(keySelector, Order.Descending);\r\n\t}\r\n\r\n\tthenUsingReversed(comparison:Comparison):IOrderedEnumerable\r\n\t{\r\n\t\treturn new OrderedEnumerable(this.source, null, Order.Descending, this, comparison);\r\n\t}\r\n\r\n\tgetEnumerator():EnumeratorBase\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar buffer:T[];\r\n\t\tvar indexes:number[];\r\n\t\tvar index:number = 0;\r\n\r\n\t\treturn new EnumeratorBase(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tindex = 0;\r\n\t\t\t\tbuffer = Enumerable.toArray(_.source);\r\n\t\t\t\tindexes = createSortContext(_).generateSortedIndexes(buffer);\r\n\t\t\t},\r\n\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\t\t\t\treturn (index\r\n\t\t\t{\r\n\t\t\t\tif(buffer)\r\n\t\t\t\t\tbuffer.length = 0;\r\n\t\t\t\tbuffer = null;\r\n\t\t\t\tif(indexes)\r\n\t\t\t\t\tindexes.length = 0;\r\n\t\t\t\tindexes = null;\r\n\t\t\t},\r\n\r\n\t\t\tfalse\r\n\t\t);\r\n\t}\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis.source = null;\r\n\t\tthis.keySelector = null;\r\n\t\tthis.order = null;\r\n\t\tthis.parent = null;\r\n\t}\r\n\r\n}\r\n\r\n// A private static helper for the weave function.\r\nfunction nextEnumerator(queue:Queue>, e:IEnumerator):IEnumerator\r\n{\r\n\tif(e)\r\n\t{\r\n\t\tif(e.moveNext())\r\n\t\t{\r\n\t\t\tqueue.enqueue(e);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tdispose(e);\r\n\t\t\te = null;\r\n\t\t}\r\n\t}\r\n\treturn e;\r\n}\r\n\r\n/**\r\n * Recursively builds a SortContext chain.\r\n * @param orderedEnumerable\r\n * @param currentContext\r\n * @returns {any}\r\n */\r\nfunction createSortContext(\r\n\torderedEnumerable:OrderedEnumerable,\r\n\tcurrentContext:IComparer = null):KeySortedContext\r\n{\r\n\r\n\tvar context = new KeySortedContext(\r\n\t\tcurrentContext,\r\n\t\torderedEnumerable.keySelector,\r\n\t\torderedEnumerable.order,\r\n\t\torderedEnumerable.comparer);\r\n\r\n\tif(orderedEnumerable.parent)\r\n\t\treturn createSortContext(orderedEnumerable.parent, context);\r\n\r\n\treturn context;\r\n}\r\n\r\n// #region Helper Functions...\r\n// This allows for the use of a boolean instead of calling this.throwIfDisposed()\r\n// since there is a strong chance of introducing a circular reference.\r\nfunction throwIfDisposed(disposed:boolean):void\r\n{\r\n\tif(disposed) throw new ObjectDisposedException(\"Enumerable\");\r\n}\r\n// #endregion\r\n\r\nexport default Enumerable;\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Collections/Array/Compare.d.ts b/dist/umd.min/System/Collections/Array/Compare.d.ts index 2ce82c2d..84dc3239 100644 --- a/dist/umd.min/System/Collections/Array/Compare.d.ts +++ b/dist/umd.min/System/Collections/Array/Compare.d.ts @@ -1,11 +1,11 @@ -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { Primitive } from "../../Primitive"; +import { EqualityComparison, Comparison } from "../../FunctionTypes"; +import { IArray } from "./IArray"; +import { IComparable } from "../../IComparable"; export declare function areAllEqual(arrays: any[][], strict?: boolean, equalityComparer?: EqualityComparison): boolean; export declare function areEqual(a: IArray, b: IArray, strict?: boolean, equalityComparer?: EqualityComparison): boolean; export declare function areEquivalent(a: IArray, b: IArray): boolean; diff --git a/dist/umd.min/System/Collections/Array/Compare.js b/dist/umd.min/System/Collections/Array/Compare.js index 62e04fa4..62804982 100644 --- a/dist/umd.min/System/Collections/Array/Compare.js +++ b/dist/umd.min/System/Collections/Array/Compare.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -!function(r){if("object"==typeof module&&"object"==typeof module.exports){var e=r(require,exports);void 0!==e&&(module.exports=e)}else"function"==typeof define&&define.amd&&define(["require","exports","../../Compare","../../Types"],r)}(function(r,e){"use strict";function n(r,e){if(r&&e&&r===e||!r&&!e)return!0;if(!r||!e)return!1;var n=r.length;return n!==e.length?!1:0===n?!0:n}function t(r,e,n){if(void 0===n&&(n=i.areEqual),!r)throw new Error("ArgumentNullException: 'arrays' cannot be null.");if(r.length<2)throw new Error("Cannot compare a set of arrays less than 2.");for(var t=r[0],a=0,u=r.length;u>a;a++)if(!o(t,r[a],e,n))return!1;return!0}function o(r,e,t,o){void 0===o&&(o=i.areEqual);var a=n(r,e);if(f["default"].isBoolean(a))return a;for(var u=0;a>u;u++)if(!o(r[u],e[u],t))return!1;return!0}function a(r,e){if(!r||r.length<2)return r;var n,t=r.length;t>65536?n=new Array(t):(n=[],n.length=t);for(var o=0;t>o;o++)n[o]=r[o];return n.sort(e),n}function u(r,e,t){void 0===t&&(t=i.compare);var o=n(r,e);if(f["default"].isBoolean(o))return o;r=a(r,t),e=a(e,t);for(var u=0;o>u;u++)if(0!==t(r[u],e[u]))return!1;return!0}var i=r("../../Compare"),f=r("../../Types");e.areAllEqual=t,e.areEqual=o,e.areEquivalent=u}); +!function(r){if("object"==typeof module&&"object"==typeof module.exports){var e=r(require,exports);void 0!==e&&(module.exports=e)}else"function"==typeof define&&define.amd&&define(["require","exports","../../Compare","../../Types"],r)}(function(r,e){"use strict";function n(r,e){if(r&&e&&r===e||!r&&!e)return!0;if(!r||!e)return!1;var n=r.length;return n!==e.length?!1:0===n?!0:n}function t(r,e,n){if(void 0===n&&(n=i.areEqual),!r)throw new Error("ArgumentNullException: 'arrays' cannot be null.");if(r.length<2)throw new Error("Cannot compare a set of arrays less than 2.");for(var t=r[0],a=0,u=r.length;u>a;a++)if(!o(t,r[a],e,n))return!1;return!0}function o(r,e,t,o){void 0===o&&(o=i.areEqual);var a=n(r,e);if(f.Type.isBoolean(a))return a;for(var u=0;a>u;u++)if(!o(r[u],e[u],t))return!1;return!0}function a(r,e){if(!r||r.length<2)return r;var n,t=r.length;t>65536?n=new Array(t):(n=[],n.length=t);for(var o=0;t>o;o++)n[o]=r[o];return n.sort(e),n}function u(r,e,t){void 0===t&&(t=i.compare);var o=n(r,e);if(f.Type.isBoolean(o))return o;r=a(r,t),e=a(e,t);for(var u=0;o>u;u++)if(0!==t(r[u],e[u]))return!1;return!0}var i=r("../../Compare"),f=r("../../Types");e.areAllEqual=t,e.areEqual=o,e.areEquivalent=u}); //# sourceMappingURL=Compare.js.map diff --git a/dist/umd.min/System/Collections/Array/Compare.js.map b/dist/umd.min/System/Collections/Array/Compare.js.map index dc73d15a..39ee8f2a 100644 --- a/dist/umd.min/System/Collections/Array/Compare.js.map +++ b/dist/umd.min/System/Collections/Array/Compare.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Array/Compare.js","System/Collections/Array/Compare.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","validateSize","a","b","len","length","areAllEqual","arrays","strict","equalityComparer","Values","areEqual","Error","first","i","l","Types_1","isBoolean","sort","comparer","Array","areEquivalent","compare"],"mappings":";;;;CAIA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,gBAAiB,eAAgBN,IAEpE,SAAUI,EAASF,GAClB,YCGJ,SAAAM,GAAsBC,EAAeC,GAGpC,GAAGD,GAAKC,GAAKD,IAAIC,IAAMD,IAAMC,EAC5B,OAAO,CAGR,KAAID,IAAMC,EACT,OAAO,CAER,IAAIC,GAAMF,EAAEG,MACZ,OAAGD,KAAMD,EAAEE,QACH,EAGC,IAAND,GACK,EAGDA,EAGR,QAAAE,GACCC,EACAC,EACAC,GAEA,GAFA,SAAAA,IAAAA,EAA2CC,EAAOC,WAE9CJ,EACH,KAAM,IAAIK,OAAM,kDACjB,IAAGL,EAAOF,OAAO,EAChB,KAAM,IAAIO,OAAM,8CAEjB,KAAI,GADAC,GAAQN,EAAO,GACXO,EAAI,EAAGC,EAAIR,EAAOF,OAAUU,EAAFD,EAAKA,IAEtC,IAAIH,EAASE,EAAON,EAAOO,GAAIN,EAAQC,GACtC,OAAO,CAET,QAAO,EAGR,QAAAE,GACCT,EAAaC,EACbK,EACAC,GAAA,SAAAA,IAAAA,EAAyCC,EAAOC,SAEhD,IAAIP,GAAMH,EAAaC,EAAGC,EAC1B,IAAGa,EAAAA,WAAKC,UAAUb,GAAM,MAAgBA,EAExC,KAAI,GAAIU,GAAI,EAAKV,EAAFU,EAAOA,IAErB,IAAIL,EAAiBP,EAAEY,GAAIX,EAAEW,GAAIN,GAChC,OAAO,CAGT,QAAO,EAIR,QAAAU,GAAiBhB,EAAaiB,GAE7B,IAAIjB,GAAKA,EAAEG,OAAO,EAAG,MAAOH,EAE5B,IAAoBC,GAAhBC,EAAMF,EAAEG,MACTD,GAAI,MACND,EAAI,GAAIiB,OAAMhB,IAEdD,KACAA,EAAEE,OAASD,EAEZ,KAAI,GAAIU,GAAI,EAAKV,EAAFU,EAAOA,IACrBX,EAAEW,GAAKZ,EAAEY,EAGV,OADAX,GAAEe,KAAKC,GACAhB,EAMR,QAAAkB,GACCnB,EAAaC,EACbgB,GAAA,SAAAA,IAAAA,EAAyBT,EAAOY,QAEhC,IAAIlB,GAAMH,EAAaC,EAAGC,EAC1B,IAAGa,EAAAA,WAAKC,UAAUb,GAAM,MAAgBA,EAIxCF,GAAIgB,EAAKhB,EAAGiB,GACZhB,EAAIe,EAAKf,EAAGgB,EAEZ,KAAI,GAAIL,GAAI,EAAKV,EAAFU,EAAOA,IAErB,GAA0B,IAAvBK,EAASjB,EAAEY,GAAIX,EAAEW,IACnB,OAAO,CAGT,QAAO,EAvGR,GAAYJ,GAAMb,EAAM,iBACxBmB,EAAAnB,EAAiB,cA2BDF,GAAAW,YAAWA,EAkBXX,EAAAgB,SAAQA,EAuCRhB,EAAA0B,cAAaA","file":"System/Collections/Array/Compare.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../../Compare\", \"../../Types\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var Values = require(\"../../Compare\");\n var Types_1 = require(\"../../Types\");\n function validateSize(a, b) {\n if (a && b && a === b || !a && !b)\n return true;\n if (!a || !b)\n return false;\n var len = a.length;\n if (len !== b.length)\n return false;\n if (len === 0)\n return true;\n return len;\n }\n function areAllEqual(arrays, strict, equalityComparer) {\n if (equalityComparer === void 0) { equalityComparer = Values.areEqual; }\n if (!arrays)\n throw new Error(\"ArgumentNullException: 'arrays' cannot be null.\");\n if (arrays.length < 2)\n throw new Error(\"Cannot compare a set of arrays less than 2.\");\n var first = arrays[0];\n for (var i = 0, l = arrays.length; i < l; i++) {\n if (!areEqual(first, arrays[i], strict, equalityComparer))\n return false;\n }\n return true;\n }\n exports.areAllEqual = areAllEqual;\n function areEqual(a, b, strict, equalityComparer) {\n if (equalityComparer === void 0) { equalityComparer = Values.areEqual; }\n var len = validateSize(a, b);\n if (Types_1.default.isBoolean(len))\n return len;\n for (var i = 0; i < len; i++) {\n if (!equalityComparer(a[i], b[i], strict))\n return false;\n }\n return true;\n }\n exports.areEqual = areEqual;\n function sort(a, comparer) {\n if (!a || a.length < 2)\n return a;\n var len = a.length, b;\n if (len > 65536)\n b = new Array(len);\n else {\n b = [];\n b.length = len;\n }\n for (var i = 0; i < len; i++)\n b[i] = a[i];\n b.sort(comparer);\n return b;\n }\n function areEquivalent(a, b, comparer) {\n if (comparer === void 0) { comparer = Values.compare; }\n var len = validateSize(a, b);\n if (Types_1.default.isBoolean(len))\n return len;\n a = sort(a, comparer);\n b = sort(b, comparer);\n for (var i = 0; i < len; i++) {\n if (comparer(a[i], b[i]) !== 0)\n return false;\n }\n return true;\n }\n exports.areEquivalent = areEquivalent;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n///\r\nimport * as Values from \"../../Compare\";\r\nimport Type from \"../../Types\";\r\n\r\n/* validateSize: Utility for quick validation/invalidation of array equality.\r\n\tWhy this way? Why not pass a closure for the last return?\r\n\tReason: Performance and avoiding the creation of new functions/closures. */\r\nfunction validateSize(a:IArray, b:IArray):any\r\n{\r\n\t// Both valid and are same object, or both are null/undefined.\r\n\tif(a && b && a===b || !a && !b)\r\n\t\treturn true;\r\n\r\n\t// At this point, at least one has to be non-null.\r\n\tif(!a || !b)\r\n\t\treturn false;\r\n\r\n\tvar len = a.length;\r\n\tif(len!==b.length)\r\n\t\treturn false;\r\n\r\n\t// If both are arrays and have zero length, they are equal.\r\n\tif(len===0)\r\n\t\treturn true;\r\n\r\n\t// Return the length for downstream processing.\r\n\treturn len;\r\n}\r\n\r\nexport function areAllEqual(\r\n\tarrays:any[][],\r\n\tstrict?:boolean,\r\n\tequalityComparer:EqualityComparison = Values.areEqual):boolean\r\n{\r\n\tif(!arrays)\r\n\t\tthrow new Error(\"ArgumentNullException: 'arrays' cannot be null.\");\r\n\tif(arrays.length<2)\r\n\t\tthrow new Error(\"Cannot compare a set of arrays less than 2.\");\r\n\tvar first = arrays[0];\r\n\tfor(let i = 0, l = arrays.length; i(\r\n\ta:IArray, b:IArray,\r\n\tstrict?:boolean,\r\n\tequalityComparer:EqualityComparison = Values.areEqual):boolean\r\n{\r\n\tvar len = validateSize(a, b);\r\n\tif(Type.isBoolean(len)) return len;\r\n\r\n\tfor(let i = 0; i(a:IArray, comparer:Comparison):IArray\r\n{\r\n\tif(!a || a.length<2) return a;\r\n\r\n\tvar len = a.length, b:T[];\r\n\tif(len>65536)\r\n\t\tb = new Array(len);\r\n\telse {\r\n\t\tb = [];\r\n\t\tb.length = len;\r\n\t}\r\n\tfor(let i = 0; i(a:IArray, b:IArray):boolean;\r\nexport function areEquivalent(a:IArray>, b:IArray>):boolean;\r\nexport function areEquivalent(a:IArray, b:IArray, comparer:Comparison):boolean;\r\nexport function areEquivalent(\r\n\ta:IArray, b:IArray,\r\n\tcomparer:Comparison = Values.compare):boolean\r\n{\r\n\tvar len = validateSize(a, b);\r\n\tif(Type.isBoolean(len)) return len;\r\n\r\n\t// There might be a better more performant way to do this, but for the moment, this\r\n\t// works quite well.\r\n\ta = sort(a, comparer);\r\n\tb = sort(b, comparer);\r\n\r\n\tfor(let i = 0; i 65536)\n b = new Array(len);\n else {\n b = [];\n b.length = len;\n }\n for (var i = 0; i < len; i++) {\n b[i] = a[i];\n }\n b.sort(comparer);\n return b;\n }\n function areEquivalent(a, b, comparer) {\n if (comparer === void 0) { comparer = Values.compare; }\n var len = validateSize(a, b);\n if (Types_1.Type.isBoolean(len))\n return len;\n a = sort(a, comparer);\n b = sort(b, comparer);\n for (var i = 0; i < len; i++) {\n if (comparer(a[i], b[i]) !== 0)\n return false;\n }\n return true;\n }\n exports.areEquivalent = areEquivalent;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport * as Values from \"../../Compare\";\r\nimport {Type} from \"../../Types\";\r\nimport {Primitive} from \"../../Primitive\";\r\nimport {EqualityComparison, Comparison} from \"../../FunctionTypes\";\r\nimport {IArray} from \"./IArray\";\r\nimport {IComparable} from \"../../IComparable\";\r\n\r\n/* validateSize: Utility for quick validation/invalidation of array equality.\r\n\tWhy this way? Why not pass a closure for the last return?\r\n\tReason: Performance and avoiding the creation of new functions/closures. */\r\nfunction validateSize(a:IArray, b:IArray):any\r\n{\r\n\t// Both valid and are same object, or both are null/undefined.\r\n\tif(a && b && a===b || !a && !b)\r\n\t\treturn true;\r\n\r\n\t// At this point, at least one has to be non-null.\r\n\tif(!a || !b)\r\n\t\treturn false;\r\n\r\n\tvar len = a.length;\r\n\tif(len!==b.length)\r\n\t\treturn false;\r\n\r\n\t// If both are arrays and have zero length, they are equal.\r\n\tif(len===0)\r\n\t\treturn true;\r\n\r\n\t// Return the length for downstream processing.\r\n\treturn len;\r\n}\r\n\r\nexport function areAllEqual(\r\n\tarrays:any[][],\r\n\tstrict?:boolean,\r\n\tequalityComparer:EqualityComparison = Values.areEqual):boolean\r\n{\r\n\tif(!arrays)\r\n\t\tthrow new Error(\"ArgumentNullException: 'arrays' cannot be null.\");\r\n\tif(arrays.length<2)\r\n\t\tthrow new Error(\"Cannot compare a set of arrays less than 2.\");\r\n\tvar first = arrays[0];\r\n\tfor(let i = 0, l = arrays.length; i(\r\n\ta:IArray, b:IArray,\r\n\tstrict?:boolean,\r\n\tequalityComparer:EqualityComparison = Values.areEqual):boolean\r\n{\r\n\tvar len = validateSize(a, b);\r\n\tif(Type.isBoolean(len)) return len;\r\n\r\n\tfor(let i = 0; i(a:IArray, comparer:Comparison):IArray\r\n{\r\n\tif(!a || a.length<2) return a;\r\n\r\n\tvar len = a.length, b:T[];\r\n\tif(len>65536)\r\n\t\tb = new Array(len);\r\n\telse\r\n\t{\r\n\t\tb = [];\r\n\t\tb.length = len;\r\n\t}\r\n\tfor(let i = 0; i(a:IArray, b:IArray):boolean;\r\nexport function areEquivalent(a:IArray>, b:IArray>):boolean;\r\nexport function areEquivalent(a:IArray, b:IArray, comparer:Comparison):boolean;\r\nexport function areEquivalent(\r\n\ta:IArray, b:IArray,\r\n\tcomparer:Comparison = Values.compare):boolean\r\n{\r\n\tvar len = validateSize(a, b);\r\n\tif(Type.isBoolean(len)) return len;\r\n\r\n\t// There might be a better more performant way to do this, but for the moment, this\r\n\t// works quite well.\r\n\ta = sort(a, comparer);\r\n\tb = sort(b, comparer);\r\n\r\n\tfor(let i = 0; i -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { IArray } from "./IArray"; export interface DispatchErrorHandler { (ex?: any, i?: number): void; } diff --git a/dist/umd.min/System/Collections/Array/Dispatch.js b/dist/umd.min/System/Collections/Array/Dispatch.js index 3d5bce7b..98a5aab5 100644 --- a/dist/umd.min/System/Collections/Array/Dispatch.js +++ b/dist/umd.min/System/Collections/Array/Dispatch.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../../Types","./Utility"],e)}(function(e,t){"use strict";function i(e,t,i){if(e&&e.length)for(var o=0,n=e.length;n>o;o++){var f=e[o];if(f)try{f(t)}catch(u){if(!i)throw u;r["default"].isFunction(i)&&i(u,o)}}}function o(e,t,i){if(!e)return null;var o=f.copy(e);if(e.length)for(var n=0,c=o.length;c>n;n++){var a=o[n];try{o[n]=a?a(t):u}catch(l){if(o[n]=u,!i)throw l;r["default"].isFunction(i)&&i(l,n)}}return o}function n(e,t,o){i(f.copy(e),t,o)}var r=e("../../Types"),f=e("./Utility"),u=void 0;t.unsafe=i,t.mapped=o,t.dispatch=n,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=n}); +!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../../Types","./Utility"],e)}(function(e,t){"use strict";function i(e,t,i){if(e&&e.length)for(var o=0,n=e.length;n>o;o++){var f=e[o];if(f)try{f(t)}catch(u){if(!i)throw u;r.Type.isFunction(i)&&i(u,o)}}}function o(e,t,i){if(!e)return null;var o=f.copy(e);if(e.length)for(var n=0,c=o.length;c>n;n++){var p=o[n];try{o[n]=p?p(t):u}catch(a){if(o[n]=u,!i)throw a;r.Type.isFunction(i)&&i(a,n)}}return o}function n(e,t,o){i(f.copy(e),t,o)}var r=e("../../Types"),f=e("./Utility"),u=void 0;t.unsafe=i,t.mapped=o,t.dispatch=n,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=n}); //# sourceMappingURL=Dispatch.js.map diff --git a/dist/umd.min/System/Collections/Array/Dispatch.js.map b/dist/umd.min/System/Collections/Array/Dispatch.js.map index d931ab86..afb82ebb 100644 --- a/dist/umd.min/System/Collections/Array/Dispatch.js.map +++ b/dist/umd.min/System/Collections/Array/Dispatch.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Array/Dispatch.js","System/Collections/Array/Dispatch.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","unsafe","listeners","payload","trap","length","i","len","fn","ex","Types_1","isFunction","mapped","result","Utility_1","copy","VOID0","dispatch","Object","defineProperty","value"],"mappings":";;;;CAIA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,cAAe,aAAcN,IAEhE,SAAUI,EAASF,GAClB,YC0BJ,SAAAM,GACCC,EACAC,EAAWC,GAEX,GAAGF,GAAaA,EAAUG,OAEzB,IAAI,GAAIC,GAAI,EAAGC,EAAML,EAAUG,OAAUE,EAAFD,EAAOA,IAC9C,CACC,GAAIE,GAAcN,EAAUI,EAC5B,IAAIE,EACJ,IAECA,EAAGL,GAEJ,MAAMM,GAEL,IAAIL,EACH,KAAMK,EACCC,GAAAA,WAAKC,WAAWP,IACvBA,EAAKK,EAAIH,KAed,QAAAM,GACCV,EACAC,EAAWC,GAGX,IAAIF,EAAW,MAAO,KAEtB,IAAIW,GAAeC,EAAAC,KAAKb,EACxB,IAAGA,EAAUG,OAGZ,IAAI,GAAIC,GAAI,EAAGC,EAAMM,EAAOR,OAAUE,EAAFD,EAAOA,IAC3C,CACC,GAAIE,GAAcK,EAAOP,EACzB,KAECO,EAAOP,GAAKE,EACTA,EAAGL,GACHa,EAEJ,MAAMP,GAGL,GADAI,EAAOP,GAAKU,GACRZ,EACH,KAAMK,EACCC,GAAAA,WAAKC,WAAWP,IACvBA,EAAKK,EAAIH,IAKb,MAAOO,GAYR,QAAAI,GACCf,EACAC,EAAWC,GAEXH,EAAOa,EAAAC,KAAKb,GAAYC,EAASC,GAhHlC,GAAAM,GAAAb,EAAiB,eACjBiB,EAAAjB,EAAmB,aAEbmB,EAAY,MA4BFrB,GAAAM,OAAMA,EAkCNN,EAAAiB,OAAMA,EA2CNjB,EAAAsB,SAAQA,EAOxBC,OAAAC,eAAAxB,EAAA,cAAAyB,OAAA,ID1DIzB,EAAAA,WC0DWsB","file":"System/Collections/Array/Dispatch.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../../Types\", \"./Utility\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var Types_1 = require(\"../../Types\");\n var Utility_1 = require(\"./Utility\");\n var VOID0 = void (0);\n function unsafe(listeners, payload, trap) {\n if (listeners && listeners.length) {\n for (var i = 0, len = listeners.length; i < len; i++) {\n var fn = listeners[i];\n if (!fn)\n continue;\n try {\n fn(payload);\n }\n catch (ex) {\n if (!trap)\n throw ex;\n else if (Types_1.default.isFunction(trap))\n trap(ex, i);\n }\n }\n }\n }\n exports.unsafe = unsafe;\n function mapped(listeners, payload, trap) {\n if (!listeners)\n return null;\n var result = Utility_1.copy(listeners);\n if (listeners.length) {\n for (var i = 0, len = result.length; i < len; i++) {\n var fn = result[i];\n try {\n result[i] = fn\n ? fn(payload)\n : VOID0;\n }\n catch (ex) {\n result[i] = VOID0;\n if (!trap)\n throw ex;\n else if (Types_1.default.isFunction(trap))\n trap(ex, i);\n }\n }\n }\n return result;\n }\n exports.mapped = mapped;\n function dispatch(listeners, payload, trap) {\n unsafe(Utility_1.copy(listeners), payload, trap);\n }\n exports.dispatch = dispatch;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = dispatch;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\nimport Type from \"../../Types\";\r\nimport {copy} from \"./Utility\";\r\n\r\nconst VOID0:any = void(0);\r\n\r\nexport interface DispatchErrorHandler\r\n{\r\n\t(ex?:any, i?:number):void;\r\n}\r\n\r\n/**\r\n * Simply takes a payload and passes it to all the listeners.\r\n *\r\n * While dispatching:\r\n * * This is an unsafe method if by chance any of the listeners modify the array.\r\n * * It cannot prevent changes to the payload.\r\n *\r\n * Improving safety:\r\n * * Only use a local array that isn't exposed to the listeners.\r\n * * Use the dispatch method instead as it makes a copy of the listeners array.\r\n * * Freeze the listeners array so it can't be modified.\r\n * * Freeze the payload.\r\n *\r\n * Specifying trap will catch any errors and pass them along if trap is a function.\r\n * A payload is used instead of arguments for easy typing.\r\n *\r\n *\r\n * @param listeners\r\n * @param payload\r\n * @param trap\r\n */\r\nexport function unsafe(\r\n\tlisteners:IArray<(payload:T)=>any>,\r\n\tpayload:T, trap?:boolean|DispatchErrorHandler):void\r\n{\r\n\tif(listeners && listeners.length)\r\n\t{\r\n\t\tfor(let i = 0, len = listeners.length; i(\r\n\tlisteners:IArray<(payload:T)=>TResult>,\r\n\tpayload:T, trap?:boolean|DispatchErrorHandler):TResult[]\r\n{\r\n\r\n\tif(!listeners) return null;\r\n\t// Reuse the copy as the array result.\r\n\tvar result:any[] = copy(listeners);\r\n\tif(listeners.length)\r\n\t{\r\n\r\n\t\tfor(let i = 0, len = result.length; i(\r\n\tlisteners:IArray<(payload:T)=>any>,\r\n\tpayload:T, trap?:boolean|DispatchErrorHandler):void\r\n{\r\n\tunsafe(copy(listeners), payload, trap);\r\n}\r\n\r\nexport default dispatch;"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Array/Dispatch.js","System/Collections/Array/Dispatch.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","unsafe","listeners","payload","trap","length","i","len","fn","ex","Types_1","Type","isFunction","mapped","result","Utility_1","copy","VOID0","dispatch","Object","defineProperty","value"],"mappings":";;;;CAIA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,cAAe,aAAcN,IAEhE,SAAUI,EAASF,GAClB,YCyBJ,SAAAM,GACCC,EACAC,EAAWC,GAEX,GAAGF,GAAaA,EAAUG,OAEzB,IAAI,GAAIC,GAAI,EAAGC,EAAML,EAAUG,OAAUE,EAAFD,EAAOA,IAC9C,CACC,GAAIE,GAAcN,EAAUI,EAC5B,IAAIE,EACJ,IAECA,EAAGL,GAEJ,MAAMM,GAEL,IAAIL,EACH,KAAMK,EACCC,GAAAC,KAAKC,WAAWR,IACvBA,EAAKK,EAAIH,KAed,QAAAO,GACCX,EACAC,EAAWC,GAGX,IAAIF,EAAW,MAAO,KAEtB,IAAIY,GAAeC,EAAAC,KAAKd,EACxB,IAAGA,EAAUG,OAGZ,IAAI,GAAIC,GAAI,EAAGC,EAAMO,EAAOT,OAAUE,EAAFD,EAAOA,IAC3C,CACC,GAAIE,GAAcM,EAAOR,EACzB,KAECQ,EAAOR,GAAKE,EACTA,EAAGL,GACHc,EAEJ,MAAMR,GAGL,GADAK,EAAOR,GAAKW,GACRb,EACH,KAAMK,EACCC,GAAAC,KAAKC,WAAWR,IACvBA,EAAKK,EAAIH,IAKb,MAAOQ,GAYR,QAAAI,GACChB,EACAC,EAAWC,GAEXH,EAAOc,EAAAC,KAAKd,GAAYC,EAASC,GAjHlC,GAAAM,GAAAb,EAAmB,eACnBkB,EAAAlB,EAAmB,aAGboB,EAAY,MA4BFtB,GAAAM,OAAMA,EAkCNN,EAAAkB,OAAMA,EA2CNlB,EAAAuB,SAAQA,EAOxBC,OAAAC,eAAAzB,EAAA,cAAA0B,OAAA,IDzDI1B,EAAAA,WCyDWuB","file":"System/Collections/Array/Dispatch.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../../Types\", \"./Utility\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var Types_1 = require(\"../../Types\");\n var Utility_1 = require(\"./Utility\");\n var VOID0 = void (0);\n function unsafe(listeners, payload, trap) {\n if (listeners && listeners.length) {\n for (var i = 0, len = listeners.length; i < len; i++) {\n var fn = listeners[i];\n if (!fn)\n continue;\n try {\n fn(payload);\n }\n catch (ex) {\n if (!trap)\n throw ex;\n else if (Types_1.Type.isFunction(trap))\n trap(ex, i);\n }\n }\n }\n }\n exports.unsafe = unsafe;\n function mapped(listeners, payload, trap) {\n if (!listeners)\n return null;\n var result = Utility_1.copy(listeners);\n if (listeners.length) {\n for (var i = 0, len = result.length; i < len; i++) {\n var fn = result[i];\n try {\n result[i] = fn\n ? fn(payload)\n : VOID0;\n }\n catch (ex) {\n result[i] = VOID0;\n if (!trap)\n throw ex;\n else if (Types_1.Type.isFunction(trap))\n trap(ex, i);\n }\n }\n }\n return result;\n }\n exports.mapped = mapped;\n function dispatch(listeners, payload, trap) {\n unsafe(Utility_1.copy(listeners), payload, trap);\n }\n exports.dispatch = dispatch;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = dispatch;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {Type} from \"../../Types\";\r\nimport {copy} from \"./Utility\";\r\nimport {IArray} from \"./IArray\";\r\n\r\nconst VOID0:any = void(0);\r\n\r\nexport interface DispatchErrorHandler\r\n{\r\n\t(ex?:any, i?:number):void;\r\n}\r\n\r\n/**\r\n * Simply takes a payload and passes it to all the listeners.\r\n *\r\n * While dispatching:\r\n * * This is an unsafe method if by chance any of the listeners modify the array.\r\n * * It cannot prevent changes to the payload.\r\n *\r\n * Improving safety:\r\n * * Only use a local array that isn't exposed to the listeners.\r\n * * Use the dispatch method instead as it makes a copy of the listeners array.\r\n * * Freeze the listeners array so it can't be modified.\r\n * * Freeze the payload.\r\n *\r\n * Specifying trap will catch any errors and pass them along if trap is a function.\r\n * A payload is used instead of arguments for easy typing.\r\n *\r\n *\r\n * @param listeners\r\n * @param payload\r\n * @param trap\r\n */\r\nexport function unsafe(\r\n\tlisteners:IArray<(payload:T)=>any>,\r\n\tpayload:T, trap?:boolean|DispatchErrorHandler):void\r\n{\r\n\tif(listeners && listeners.length)\r\n\t{\r\n\t\tfor(let i = 0, len = listeners.length; i(\r\n\tlisteners:IArray<(payload:T)=>TResult>,\r\n\tpayload:T, trap?:boolean|DispatchErrorHandler):TResult[]\r\n{\r\n\r\n\tif(!listeners) return null;\r\n\t// Reuse the copy as the array result.\r\n\tvar result:any[] = copy(listeners);\r\n\tif(listeners.length)\r\n\t{\r\n\r\n\t\tfor(let i = 0, len = result.length; i(\r\n\tlisteners:IArray<(payload:T)=>any>,\r\n\tpayload:T, trap?:boolean|DispatchErrorHandler):void\r\n{\r\n\tunsafe(copy(listeners), payload, trap);\r\n}\r\n\r\nexport default dispatch;"]} \ No newline at end of file diff --git a/dist/umd.min/System/Collections/Array/ReadOnlyArrayWrapper.d.ts b/dist/umd.min/System/Collections/Array/ReadOnlyArrayWrapper.d.ts index 88e74cbc..f27159ff 100644 --- a/dist/umd.min/System/Collections/Array/ReadOnlyArrayWrapper.d.ts +++ b/dist/umd.min/System/Collections/Array/ReadOnlyArrayWrapper.d.ts @@ -2,7 +2,8 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import ReadOnlyCollectionBase from "../ReadOnlyCollectionBase"; +import { ReadOnlyCollectionBase } from "../ReadOnlyCollectionBase"; +import { IArray } from "./IArray"; export default class ReadOnlyArrayWrapper extends ReadOnlyCollectionBase { constructor(array: IArray); getValueAt: (index: number) => T; diff --git a/dist/umd.min/System/Collections/Array/ReadOnlyArrayWrapper.js b/dist/umd.min/System/Collections/Array/ReadOnlyArrayWrapper.js index 0726a3d8..e7f030ac 100644 --- a/dist/umd.min/System/Collections/Array/ReadOnlyArrayWrapper.js +++ b/dist/umd.min/System/Collections/Array/ReadOnlyArrayWrapper.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(e,t){function n(){this.constructor=e}for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../../Exceptions/ArgumentNullException","../Enumeration/Enumerator","../ReadOnlyCollectionBase"],e)}(function(e,t){"use strict";var n=e("../../Exceptions/ArgumentNullException"),o=e("../Enumeration/Enumerator"),r=e("../ReadOnlyCollectionBase"),u=function(e){function t(t){if(e.call(this),!t)throw new n["default"]("array");var r=this;r._getCount=function(){return t.length},r.getEnumerator=function(){return o.from(t)},r.getValueAt=function(e){return t[e]}}return __extends(t,e),t}(r["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=u}); +var __extends=this&&this.__extends||function(e,t){function n(){this.constructor=e}for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../../Exceptions/ArgumentNullException","../ReadOnlyCollectionBase","../Enumeration/Enumerator"],e)}(function(e,t){"use strict";var n=e("../../Exceptions/ArgumentNullException"),o=e("../ReadOnlyCollectionBase"),r=e("../Enumeration/Enumerator"),u=function(e){function t(t){if(e.call(this),!t)throw new n.ArgumentNullException("array");var o=this;o._getCount=function(){return t.length},o.getEnumerator=function(){return r.from(t)},o.getValueAt=function(e){return t[e]}}return __extends(t,e),t}(o.ReadOnlyCollectionBase);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=u}); //# sourceMappingURL=ReadOnlyArrayWrapper.js.map diff --git a/dist/umd.min/System/Collections/Array/ReadOnlyArrayWrapper.js.map b/dist/umd.min/System/Collections/Array/ReadOnlyArrayWrapper.js.map index 6bbb38b4..27fff405 100644 --- a/dist/umd.min/System/Collections/Array/ReadOnlyArrayWrapper.js.map +++ b/dist/umd.min/System/Collections/Array/ReadOnlyArrayWrapper.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Array/ReadOnlyArrayWrapper.js","System/Collections/Array/ReadOnlyArrayWrapper.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","ArgumentNullException_1","Enumerator_1","ReadOnlyCollectionBase_1","ReadOnlyArrayWrapper","_super","array","call","_","_getCount","length","getEnumerator","from","getValueAt","i","defineProperty","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,yCAA0C,4BAA6B,6BAA8BN,IAExI,SAAUI,EAASF,GAClB,YCZJ,IAAAM,GAAAJ,EAAkC,0CAClCK,EAAAL,EAAqC,6BACrCM,EAAAN,EAAmC,6BAEnCO,EAAA,SAAAC,GAGC,QAAAD,GAAYE,GAGX,GADAD,EAAAE,KAAAxB,OACIuB,EACH,KAAM,IAAIL,GAAAA,WAAsB,QAEjC,IAAIO,GAAIzB,IACRyB,GAAEC,UAAY,WAAM,MAAAH,GAAMI,QAC1BF,EAAEG,cAAgB,WAAM,MAAAT,GAAAU,KAAeN,IACvCE,EAAEK,WAAa,SAAAC,GAAK,MAAAR,GAAMQ,IAI5B,MAhBqDhC,WAAAsB,EAAAC,GAgBrDD,GAhBqDD,EAAAA,WAArDZ,QAAAwB,eAAApB,EAAA,cAAAqB,OAAA,ID0BIrB,EAAAA,WAAkBS","file":"System/Collections/Array/ReadOnlyArrayWrapper.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../../Exceptions/ArgumentNullException\", \"../Enumeration/Enumerator\", \"../ReadOnlyCollectionBase\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var ArgumentNullException_1 = require(\"../../Exceptions/ArgumentNullException\");\n var Enumerator_1 = require(\"../Enumeration/Enumerator\");\n var ReadOnlyCollectionBase_1 = require(\"../ReadOnlyCollectionBase\");\n var ReadOnlyArrayWrapper = (function (_super) {\n __extends(ReadOnlyArrayWrapper, _super);\n function ReadOnlyArrayWrapper(array) {\n _super.call(this);\n if (!array)\n throw new ArgumentNullException_1.default('array');\n var _ = this;\n _._getCount = function () { return array.length; };\n _.getEnumerator = function () { return Enumerator_1.from(array); };\n _.getValueAt = function (i) { return array[i]; };\n }\n return ReadOnlyArrayWrapper;\n }(ReadOnlyCollectionBase_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ReadOnlyArrayWrapper;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport ArgumentNullException from \"../../Exceptions/ArgumentNullException\";\r\nimport {from as enumeratorFrom} from \"../Enumeration/Enumerator\";\r\nimport ReadOnlyCollectionBase from \"../ReadOnlyCollectionBase\";\r\n\r\nexport default class ReadOnlyArrayWrapper extends ReadOnlyCollectionBase\r\n{\r\n\r\n\tconstructor(array:IArray)\r\n\t{\r\n\t\tsuper();\r\n\t\tif(!array)\r\n\t\t\tthrow new ArgumentNullException('array');\r\n\r\n\t\tvar _ = this;\r\n\t\t_._getCount = () => array.length;\r\n\t\t_.getEnumerator = () => enumeratorFrom(array);\r\n\t\t_.getValueAt = i => array[i];\r\n\t}\r\n\r\n\tgetValueAt:(index:number)=>T;\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Array/ReadOnlyArrayWrapper.js","System/Collections/Array/ReadOnlyArrayWrapper.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","ArgumentNullException_1","ReadOnlyCollectionBase_1","Enumerator_1","ReadOnlyArrayWrapper","_super","array","call","ArgumentNullException","_","_getCount","length","getEnumerator","from","getValueAt","i","ReadOnlyCollectionBase","defineProperty","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,yCAA0C,4BAA6B,6BAA8BN,IAExI,SAAUI,EAASF,GAClB,YCZJ,IAAAM,GAAAJ,EAAoC,0CACpCK,EAAAL,EAAqC,6BAErCM,EAAAN,EAAqC,6BAErCO,EAAA,SAAAC,GAGC,QAAAD,GAAYE,GAGX,GADAD,EAAAE,KAAAxB,OACIuB,EACH,KAAM,IAAIL,GAAAO,sBAAsB,QAEjC,IAAIC,GAAI1B,IACR0B,GAAEC,UAAY,WAAM,MAAAJ,GAAMK,QAC1BF,EAAEG,cAAgB,WAAM,MAAAT,GAAAU,KAAeP,IACvCG,EAAEK,WAAa,SAAAC,GAAK,MAAAT,GAAMS,IAI5B,MAhBqDjC,WAAAsB,EAAAC,GAgBrDD,GAhBqDF,EAAAc,uBAArDzB,QAAA0B,eAAAtB,EAAA,cAAAuB,OAAA,IDyBIvB,EAAAA,WAAkBS","file":"System/Collections/Array/ReadOnlyArrayWrapper.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../../Exceptions/ArgumentNullException\", \"../ReadOnlyCollectionBase\", \"../Enumeration/Enumerator\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var ArgumentNullException_1 = require(\"../../Exceptions/ArgumentNullException\");\n var ReadOnlyCollectionBase_1 = require(\"../ReadOnlyCollectionBase\");\n var Enumerator_1 = require(\"../Enumeration/Enumerator\");\n var ReadOnlyArrayWrapper = (function (_super) {\n __extends(ReadOnlyArrayWrapper, _super);\n function ReadOnlyArrayWrapper(array) {\n _super.call(this);\n if (!array)\n throw new ArgumentNullException_1.ArgumentNullException('array');\n var _ = this;\n _._getCount = function () { return array.length; };\n _.getEnumerator = function () { return Enumerator_1.from(array); };\n _.getValueAt = function (i) { return array[i]; };\n }\n return ReadOnlyArrayWrapper;\n }(ReadOnlyCollectionBase_1.ReadOnlyCollectionBase));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ReadOnlyArrayWrapper;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {ArgumentNullException} from \"../../Exceptions/ArgumentNullException\";\r\nimport {ReadOnlyCollectionBase} from \"../ReadOnlyCollectionBase\";\r\nimport {IArray} from \"./IArray\";\r\nimport {from as enumeratorFrom} from \"../Enumeration/Enumerator\";\r\n\r\nexport default class ReadOnlyArrayWrapper extends ReadOnlyCollectionBase\r\n{\r\n\r\n\tconstructor(array:IArray)\r\n\t{\r\n\t\tsuper();\r\n\t\tif(!array)\r\n\t\t\tthrow new ArgumentNullException('array');\r\n\r\n\t\tvar _ = this;\r\n\t\t_._getCount = () => array.length;\r\n\t\t_.getEnumerator = () => enumeratorFrom(array);\r\n\t\t_.getValueAt = i => array[i];\r\n\t}\r\n\r\n\tgetValueAt:(index:number)=>T;\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Collections/Array/Sort.d.ts b/dist/umd.min/System/Collections/Array/Sort.d.ts index 5524bcb8..3201c0e9 100644 --- a/dist/umd.min/System/Collections/Array/Sort.d.ts +++ b/dist/umd.min/System/Collections/Array/Sort.d.ts @@ -1,9 +1,9 @@ -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { Primitive } from "../../Primitive"; +import { Selector, Comparison } from "../../FunctionTypes"; +import { Order } from "../Sorting/Order"; export declare function createComparer(selector: Selector, order?: Order | Order[], equivalentToNaN?: any): Comparison; export { createComparer as default, createComparer as by }; diff --git a/dist/umd.min/System/Collections/Array/Sort.js b/dist/umd.min/System/Collections/Array/Sort.js index 5fff322c..c89b4608 100644 --- a/dist/umd.min/System/Collections/Array/Sort.js +++ b/dist/umd.min/System/Collections/Array/Sort.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -!function(e){if("object"==typeof module&&"object"==typeof module.exports){var r=e(require,exports);void 0!==r&&(module.exports=r)}else"function"==typeof define&&define.amd&&define(["require","exports","../../Types","../../Compare"],e)}(function(e,r){"use strict";function t(e){return Array.isArray(e)?e:[e]}function o(e,r,o){void 0===r&&(r=1),void 0===o&&(o=NaN);var u=!a["default"].isTrueNaN(o);return function(i,f){for(var d=t(e(i)),s=t(e(f)),l=Math.min(d.length,s.length),p=Array.isArray(r)?r:null,c=0;l>c;c++){var y=d[c],m=s[c],v=p?cd;d++){var l=p[d],m=s[d],v=c?d\r\n///\r\n///\r\n\r\nimport Type from '../../Types';\r\nimport {compare} from '../../Compare';\r\n\r\nfunction ensureArray(value:T|T[]):T[]\r\n{\r\n\treturn Array.isArray(value)\r\n\t\t? value\r\n\t\t: [value];\r\n}\r\n\r\n/**\r\n * A factory function that creates a comparer to be used in multi-dimensional sorting.\r\n *\r\n *

Example

\r\n * ```typescript\r\n * var myArray = [{a:1:b:2},{a:3,b:4},{a:1,b:3}];\r\n *\r\n * // First sort by a, then by b.\r\n * myArray.sort(\r\n * createComparer(\r\n * (e)=> [e.a, e.b],\r\n * [Order.Ascending, Order.Descending]\r\n * )\r\n * );\r\n *\r\n * // result: [{a:1,b:3},{a:1:b:2},{a:3,b:4}]\r\n * ```\r\n *\r\n * @param selector\r\n * @param order\r\n * @param equivalentToNaN\r\n * @returns {function((TSource|TSource[]), (TSource|TSource[])): CompareResult}\r\n */\r\nexport function createComparer(\r\n\tselector:Selector,\r\n\torder:Order | Order[] = Order.Ascending,\r\n\tequivalentToNaN:any = NaN):Comparison\r\n{\r\n\tvar nanHasEquivalent = !Type.isTrueNaN(equivalentToNaN);\r\n\r\n\treturn (a:TSource|TSource[], b:TSource|TSource[]):CompareResult=>\r\n\t{\r\n\t\t// Use an array always to ensure a single code path.\r\n\t\tvar aValue = ensureArray(selector(a));\r\n\t\tvar bValue = ensureArray(selector(b));\r\n\t\tvar len = Math.min(aValue.length, bValue.length);\r\n\r\n\t\tvar oArray:Order[] = Array.isArray(order) ? order : null;\r\n\t\tfor(let i = 0; iorder;\r\n\r\n\t\t\tif(nanHasEquivalent)\r\n\t\t\t{\r\n\t\t\t\tif(Type.isTrueNaN(vA))\r\n\t\t\t\t\tvA = equivalentToNaN;\r\n\t\t\t\tif(Type.isTrueNaN(vB))\r\n\t\t\t\t\tvB = equivalentToNaN;\r\n\r\n\t\t\t}\r\n\r\n\t\t\tvar r = compare(vA, vB);\r\n\t\t\tif(r!==CompareResult.Equal)\r\n\t\t\t\treturn o*r;\r\n\r\n\t\t}\r\n\r\n\t\treturn 0;\r\n\t};\r\n}\r\n\r\nexport {\r\n\tcreateComparer as default, // Allow for default import.\r\n\tcreateComparer as by // Alias for Sort.by(...) instead of Sort.createComparer\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Array/Sort.js","System/Collections/Array/Sort.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","ensureArray","value","Array","isArray","createComparer","selector","order","equivalentToNaN","NaN","nanHasEquivalent","Types_1","Type","isTrueNaN","a","b","aValue","bValue","len","Math","min","length","oArray","i","vA","vB","o","r","Compare_1","compare","by"],"mappings":";;;;CAIA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,cAAe,iBAAkBN,IAEpE,SAAUI,EAASF,GAClB,YCCJ,SAAAM,GAAwBC,GAEvB,MAAOC,OAAMC,QAAQF,GACbA,GACDA,GA0BR,QAAAG,GACCC,EACAC,EACAC,GADA,SAAAD,IAAAA,EAAA,GACA,SAAAC,IAAAA,EAAAC,IAEA,IAAIC,IAAoBC,EAAAC,KAAKC,UAAUL,EAEvC,OAAO,UAACM,EAAqBC,GAQ5B,IAAI,GALAC,GAASf,EAAYK,EAASQ,IAC9BG,EAAShB,EAAYK,EAASS,IAC9BG,EAAMC,KAAKC,IAAIJ,EAAOK,OAAQJ,EAAOI,QAErCC,EAAiBnB,MAAMC,QAAQG,GAASA,EAAQ,KAC5CgB,EAAI,EAAKL,EAAFK,EAAOA,IACtB,CACC,GAAIC,GAAKR,EAAOO,GAAIE,EAAKR,EAAOM,GAC5BG,EAAqBJ,EACjBC,EAAED,EAAOD,OAASC,EAAOC,GAAK,EACxBhB,CAEXG,KAECC,EAAAC,KAAKC,UAAUW,KACjBA,EAAKhB,GACHG,EAAAC,KAAKC,UAAUY,KACjBA,EAAKjB,GAIP,IAAImB,GAAIC,EAAAC,QAAQL,EAAIC,EACpB,IAAO,IAAJE,EACF,MAAOD,GAAEC,EAIX,MAAO,IA1ET,GAAAhB,GAAAd,EAAmB,eACnB+B,EAAA/B,EAAsB,gBAoCNF,GAAAU,eAAcA,EA0CXV,EAAAA,WAAOU,EACPV,EAAAmC,GAAEzB","file":"System/Collections/Array/Sort.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../../Types\", \"../../Compare\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var Types_1 = require(\"../../Types\");\n var Compare_1 = require(\"../../Compare\");\n function ensureArray(value) {\n return Array.isArray(value)\n ? value\n : [value];\n }\n function createComparer(selector, order, equivalentToNaN) {\n if (order === void 0) { order = 1; }\n if (equivalentToNaN === void 0) { equivalentToNaN = NaN; }\n var nanHasEquivalent = !Types_1.Type.isTrueNaN(equivalentToNaN);\n return function (a, b) {\n var aValue = ensureArray(selector(a));\n var bValue = ensureArray(selector(b));\n var len = Math.min(aValue.length, bValue.length);\n var oArray = Array.isArray(order) ? order : null;\n for (var i = 0; i < len; i++) {\n var vA = aValue[i], vB = bValue[i], o = oArray\n ? (i < oArray.length ? oArray[i] : 1)\n : order;\n if (nanHasEquivalent) {\n if (Types_1.Type.isTrueNaN(vA))\n vA = equivalentToNaN;\n if (Types_1.Type.isTrueNaN(vB))\n vB = equivalentToNaN;\n }\n var r = Compare_1.compare(vA, vB);\n if (r !== 0)\n return o * r;\n }\n return 0;\n };\n }\n exports.createComparer = createComparer;\n exports.default = createComparer;\n exports.by = createComparer;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {Type} from \"../../Types\";\r\nimport {compare} from \"../../Compare\";\r\nimport {Primitive} from \"../../Primitive\";\r\nimport {Selector, Comparison} from \"../../FunctionTypes\";\r\nimport {CompareResult} from \"../../CompareResult\";\r\nimport {Order} from \"../Sorting/Order\";\r\n\r\nfunction ensureArray(value:T|T[]):T[]\r\n{\r\n\treturn Array.isArray(value)\r\n\t\t? value\r\n\t\t: [value];\r\n}\r\n\r\n/**\r\n * A factory function that creates a comparer to be used in multi-dimensional sorting.\r\n *\r\n *

Example

\r\n * ```typescript\r\n * var myArray = [{a:1:b:2},{a:3,b:4},{a:1,b:3}];\r\n *\r\n * // First sort by a, then by b.\r\n * myArray.sort(\r\n * createComparer(\r\n * (e)=> [e.a, e.b],\r\n * [Order.Ascending, Order.Descending]\r\n * )\r\n * );\r\n *\r\n * // result: [{a:1,b:3},{a:1:b:2},{a:3,b:4}]\r\n * ```\r\n *\r\n * @param selector\r\n * @param order\r\n * @param equivalentToNaN\r\n * @returns {function((TSource|TSource[]), (TSource|TSource[])): CompareResult}\r\n */\r\nexport function createComparer(\r\n\tselector:Selector,\r\n\torder:Order | Order[] = Order.Ascending,\r\n\tequivalentToNaN:any = NaN):Comparison\r\n{\r\n\tvar nanHasEquivalent = !Type.isTrueNaN(equivalentToNaN);\r\n\r\n\treturn (a:TSource|TSource[], b:TSource|TSource[]):CompareResult=>\r\n\t{\r\n\t\t// Use an array always to ensure a single code path.\r\n\t\tvar aValue = ensureArray(selector(a));\r\n\t\tvar bValue = ensureArray(selector(b));\r\n\t\tvar len = Math.min(aValue.length, bValue.length);\r\n\r\n\t\tvar oArray:Order[] = Array.isArray(order) ? order : null;\r\n\t\tfor(let i = 0; iorder;\r\n\r\n\t\t\tif(nanHasEquivalent)\r\n\t\t\t{\r\n\t\t\t\tif(Type.isTrueNaN(vA))\r\n\t\t\t\t\tvA = equivalentToNaN;\r\n\t\t\t\tif(Type.isTrueNaN(vB))\r\n\t\t\t\t\tvB = equivalentToNaN;\r\n\r\n\t\t\t}\r\n\r\n\t\t\tvar r = compare(vA, vB);\r\n\t\t\tif(r!==CompareResult.Equal)\r\n\t\t\t\treturn o*r;\r\n\r\n\t\t}\r\n\r\n\t\treturn 0;\r\n\t};\r\n}\r\n\r\nexport {\r\n\tcreateComparer as default, // Allow for default import.\r\n\tcreateComparer as by // Alias for Sort.by(...) instead of Sort.createComparer\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Collections/Array/Utility.d.ts b/dist/umd.min/System/Collections/Array/Utility.d.ts index 2314ac04..9c7b0c7f 100644 --- a/dist/umd.min/System/Collections/Array/Utility.d.ts +++ b/dist/umd.min/System/Collections/Array/Utility.d.ts @@ -1,9 +1,9 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { EqualityComparison, Predicate, Action } from "../../FunctionTypes"; +import { IArray } from "./IArray"; export declare function initialize(length: number): T[]; export declare function copy(source: IArray, sourceIndex?: number, length?: number): T[]; export declare function copyTo>(source: IArray, destination: TDestination, sourceIndex?: number, destinationIndex?: number, length?: number): TDestination; diff --git a/dist/umd.min/System/Collections/Array/Utility.js b/dist/umd.min/System/Collections/Array/Utility.js index 944400bb..ead159cf 100644 --- a/dist/umd.min/System/Collections/Array/Utility.js +++ b/dist/umd.min/System/Collections/Array/Utility.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../../Types","../../Integer","../../Compare","../../Exceptions/ArgumentException","../../Exceptions/ArgumentNullException","../../Exceptions/ArgumentOutOfRangeException"],e)}(function(e,t){"use strict";function n(e){A["default"].assert(e,"length");var t;return e>65536?t=new Array(e):(t=[],t.length=e),t}function r(e,t,r){return void 0===t&&(t=0),void 0===r&&(r=1/0),e?i(e,n(Math.min(r,Math.max(e.length-t,0))),t,0,r):e}function i(e,t,n,r,i){if(void 0===n&&(n=0),void 0===r&&(r=0),void 0===i&&(i=1/0),!e)throw new N["default"]("source",q);if(!t)throw new N["default"]("destination",q);if(0>n)throw new O["default"]("sourceIndex",n,C);var o=e.length;if(!o)return t;if(n>=o)throw new O["default"]("sourceIndex",n,"Must be less than the length of the source array.");if(t.length<0)throw new O["default"]("destinationIndex",r,C);var a=e.length-n;if(isFinite(i)&&i>a)throw new O["default"]("sourceIndex",n,"Source index + length cannot exceed the length of the source array.");i=Math.min(i,a);var f=r+i;f>t.length&&(t.length=f);for(var u=0;i>u;u++)t[r+u]=e[n+u];return t}function o(e,t,n){void 0===n&&(n=b.areEqual);var r=e&&e.length;if(r){if(Array.isArray(e)&&!E["default"].isTrueNaN(t))return e.indexOf(t);for(var i=0;r>i;i++)if(n(e[i],t))return i}return-1}function a(e,t,n){return void 0===n&&(n=b.areEqual),-1!=o(e,t,n)}function f(e,t,n,r){if(!e||!e.length||0===r)return 0;if(0>r)throw new O["default"]("max",r,C);r||(r=1/0);for(var i=0,o=0,a=e.length;a>o&&(e[o]!==t||(e[o]=n,++i,i!=r));o++);return i}function u(e,t,n,r){if(void 0===n&&(n=0),e){if(A["default"].assertZeroOrGreater(n,"start"),r||0===r||(r=e.length),A["default"].assert(r,"stop"),n>r)throw new O["default"]("stop",r,"is less than start");for(var i=n;r>i;i++)e[i]=t}}function l(e,t,n){void 0===t&&(t=0),u(e,null,t,n)}function s(e,t,n){if(void 0===n&&(n=b.areEqual),!e)throw new N["default"]("array",q);var r=e.length,i=!r||!a(e,t,n);return i&&(e[r]=t),i}function d(e,t){if(!e)throw new N["default"]("array",q);if(!E["default"].isFunction(t))throw new I["default"]("predicate","Must be a function.");var n=e.length;if(Array.isArray(e)){for(var r=0;n>r;r++)if(t(e[r]))return r}else for(var r=0;n>r;r++)if(r in e&&t(e[r]))return r;return-1}function c(e,t){if(e&&t)for(var n=0;nt)throw new O["default"]("index",t,C);var n=tn)throw new O["default"]("max",n,C);var i=0;if(n&&isFinite(n)){for(var o=[],a=0,f=e.length;f>a&&(!r(e[a],t)||(o.push(a),++i,i!=n));a++);for(var a=o.length-1;a>=0;a--)e.splice(o[a],1)}else for(var a=e.length-1;a>=0;a--)r(e[a],t)&&(e.splice(a,1),++i);return i}function p(e,t){if(A["default"].assert(t,"count"),0>t)throw new O["default"]("count",t,C);for(var r=n(t),i=0;t>i;i++)r[i]=e;return r}function w(e,t,r){if(void 0===r&&(r=1),isNaN(e)||!isFinite(e))throw new O["default"]("first",e,F);if(isNaN(t)||!isFinite(t))throw new O["default"]("count",t,F);if(0>t)throw new O["default"]("count",t,C);for(var i=n(t),o=0;t>o;o++)i[o]=e,e+=r;return i}function x(e,t,n){if(void 0===n&&(n=1),0==n)throw new O["default"]("step",n,M);return w(e,(t-e)/n,n)}function m(e){var t={};return e.filter(function(e){return!(e in t)&&(t[e]=!0)})}function y(e,t){void 0===t&&(t=0);for(var n=[],r=0;r0&&(i=y(i,t-1));for(var o=0;o65536?n=new Array(e):(n=[],n.length=e),n}function r(e,n,r){return void 0===n&&(n=0),void 0===r&&(r=1/0),e?i(e,t(Math.min(r,Math.max(e.length-n,0))),n,0,r):e}function i(e,n,t,r,i){if(void 0===t&&(t=0),void 0===r&&(r=0),void 0===i&&(i=1/0),!e)throw new I.ArgumentNullException("source",b);if(!n)throw new I.ArgumentNullException("destination",b);if(0>t)throw new N.ArgumentOutOfRangeException("sourceIndex",t,q);var o=e.length;if(!o)return n;if(t>=o)throw new N.ArgumentOutOfRangeException("sourceIndex",t,"Must be less than the length of the source array.");if(n.length<0)throw new N.ArgumentOutOfRangeException("destinationIndex",r,q);var u=e.length-t;if(isFinite(i)&&i>u)throw new N.ArgumentOutOfRangeException("sourceIndex",t,"Source index + length cannot exceed the length of the source array.");i=Math.min(i,u);var a=r+i;a>n.length&&(n.length=a);for(var f=0;i>f;f++)n[r+f]=e[t+f];return n}function o(e,n,t){void 0===t&&(t=y.areEqual);var r=e&&e.length;if(r){if(Array.isArray(e)&&!O.Type.isTrueNaN(n))return e.indexOf(n);for(var i=0;r>i;i++)if(t(e[i],n))return i}return-1}function u(e,n,t){return void 0===t&&(t=y.areEqual),-1!=o(e,n,t)}function a(e,n,t,r){if(!e||!e.length||0===r)return 0;if(0>r)throw new N.ArgumentOutOfRangeException("max",r,q);r||(r=1/0);for(var i=0,o=0,u=e.length;u>o&&(e[o]!==n||(e[o]=t,++i,i!=r));o++);return i}function f(e,n,t,r){if(void 0===t&&(t=0),e){if(A.Integer.assertZeroOrGreater(t,"start"),r||0===r||(r=e.length),A.Integer.assert(r,"stop"),t>r)throw new N.ArgumentOutOfRangeException("stop",r,"is less than start");for(var i=t;r>i;i++)e[i]=n}}function c(e,n,t){void 0===n&&(n=0),f(e,null,n,t)}function g(e,n,t){if(void 0===t&&(t=y.areEqual),!e)throw new I.ArgumentNullException("array",b);var r=e.length,i=!r||!u(e,n,t);return i&&(e[r]=n),i}function s(e,n){if(!e)throw new I.ArgumentNullException("array",b);if(!O.Type.isFunction(n))throw new R.ArgumentException("predicate","Must be a function.");var t=e.length;if(Array.isArray(e)){for(var r=0;t>r;r++)if(n(e[r]))return r}else for(var r=0;t>r;r++)if(r in e&&n(e[r]))return r;return-1}function l(e,n){if(e&&n)for(var t=0;tn)throw new N.ArgumentOutOfRangeException("index",n,q);var t=nt)throw new N.ArgumentOutOfRangeException("max",t,q);var i=0;if(t&&isFinite(t)){for(var o=[],u=0,a=e.length;a>u&&(!r(e[u],n)||(o.push(u),++i,i!=t));u++);for(var u=o.length-1;u>=0;u--)e.splice(o[u],1)}else for(var u=e.length-1;u>=0;u--)r(e[u],n)&&(e.splice(u,1),++i);return i}function v(e,n){if(A.Integer.assert(n,"count"),0>n)throw new N.ArgumentOutOfRangeException("count",n,q);for(var r=t(n),i=0;n>i;i++)r[i]=e;return r}function d(e,n,r){if(void 0===r&&(r=1),isNaN(e)||!isFinite(e))throw new N.ArgumentOutOfRangeException("first",e,M);if(isNaN(n)||!isFinite(n))throw new N.ArgumentOutOfRangeException("count",n,M);if(0>n)throw new N.ArgumentOutOfRangeException("count",n,q);for(var i=t(n),o=0;n>o;o++)i[o]=e,e+=r;return i}function m(e,n,t){if(void 0===t&&(t=1),0==t)throw new N.ArgumentOutOfRangeException("step",t,T);return d(e,(n-e)/t,t)}function w(e){var n={};return e.filter(function(e){return!(e in n)&&(n[e]=!0)})}function E(e,n){void 0===n&&(n=0);for(var t=[],r=0;r0&&(i=E(i,n-1));for(var o=0;o 65536)\n array = new Array(length);\n else {\n array = [];\n array.length = length;\n }\n return array;\n }\n exports.initialize = initialize;\n function copy(source, sourceIndex, length) {\n if (sourceIndex === void 0) { sourceIndex = 0; }\n if (length === void 0) { length = Infinity; }\n if (!source)\n return source;\n return copyTo(source, initialize(Math.min(length, Math.max(source.length - sourceIndex, 0))), sourceIndex, 0, length);\n }\n exports.copy = copy;\n var CBN = 'Cannot be null.', CB0 = 'Cannot be zero.', CBL0 = 'Cannot be less than zero.', VFN = 'Must be a valid finite number';\n function copyTo(source, destination, sourceIndex, destinationIndex, length) {\n if (sourceIndex === void 0) { sourceIndex = 0; }\n if (destinationIndex === void 0) { destinationIndex = 0; }\n if (length === void 0) { length = Infinity; }\n if (!source)\n throw new ArgumentNullException_1.default('source', CBN);\n if (!destination)\n throw new ArgumentNullException_1.default('destination', CBN);\n if (sourceIndex < 0)\n throw new ArgumentOutOfRangeException_1.default('sourceIndex', sourceIndex, CBL0);\n var sourceLength = source.length;\n if (!sourceLength)\n return destination;\n if (sourceIndex >= sourceLength)\n throw new ArgumentOutOfRangeException_1.default('sourceIndex', sourceIndex, 'Must be less than the length of the source array.');\n if (destination.length < 0)\n throw new ArgumentOutOfRangeException_1.default('destinationIndex', destinationIndex, CBL0);\n var maxLength = source.length - sourceIndex;\n if (isFinite(length) && length > maxLength)\n throw new ArgumentOutOfRangeException_1.default('sourceIndex', sourceIndex, 'Source index + length cannot exceed the length of the source array.');\n length = Math.min(length, maxLength);\n var newLength = destinationIndex + length;\n if (newLength > destination.length)\n destination.length = newLength;\n for (var i = 0; i < length; i++) {\n destination[destinationIndex + i] = source[sourceIndex + i];\n }\n return destination;\n }\n exports.copyTo = copyTo;\n function indexOf(array, item, equalityComparer) {\n if (equalityComparer === void 0) { equalityComparer = Compare_1.areEqual; }\n var len = array && array.length;\n if (len) {\n if (Array.isArray(array) && !Types_1.default.isTrueNaN(item))\n return array.indexOf(item);\n for (var i = 0; i < len; i++) {\n if (equalityComparer(array[i], item))\n return i;\n }\n }\n return -1;\n }\n exports.indexOf = indexOf;\n function contains(array, item, equalityComparer) {\n if (equalityComparer === void 0) { equalityComparer = Compare_1.areEqual; }\n return indexOf(array, item, equalityComparer) != -1;\n }\n exports.contains = contains;\n function replace(array, old, newValue, max) {\n if (!array || !array.length || max === 0)\n return 0;\n if (max < 0)\n throw new ArgumentOutOfRangeException_1.default('max', max, CBL0);\n if (!max)\n max = Infinity;\n var count = 0;\n for (var i = 0, len = array.length; i < len; i++) {\n if (array[i] === old) {\n array[i] = newValue;\n ++count;\n if (count == max)\n break;\n }\n }\n return count;\n }\n exports.replace = replace;\n function updateRange(array, value, start, stop) {\n if (start === void 0) { start = 0; }\n if (!array)\n return;\n Integer_1.default.assertZeroOrGreater(start, 'start');\n if (!stop && stop !== 0)\n stop = array.length;\n Integer_1.default.assert(stop, 'stop');\n if (stop < start)\n throw new ArgumentOutOfRangeException_1.default(\"stop\", stop, \"is less than start\");\n for (var i = start; i < stop; i++) {\n array[i] = value;\n }\n }\n exports.updateRange = updateRange;\n function clear(array, start, stop) {\n if (start === void 0) { start = 0; }\n updateRange(array, null, start, stop);\n }\n exports.clear = clear;\n function register(array, item, equalityComparer) {\n if (equalityComparer === void 0) { equalityComparer = Compare_1.areEqual; }\n if (!array)\n throw new ArgumentNullException_1.default('array', CBN);\n var len = array.length;\n var ok = !len || !contains(array, item, equalityComparer);\n if (ok)\n array[len] = item;\n return ok;\n }\n exports.register = register;\n function findIndex(array, predicate) {\n if (!array)\n throw new ArgumentNullException_1.default('array', CBN);\n if (!Types_1.default.isFunction(predicate))\n throw new ArgumentException_1.default('predicate', 'Must be a function.');\n var len = array.length;\n if (Array.isArray(array)) {\n for (var i = 0; i < len; i++) {\n if (predicate(array[i]))\n return i;\n }\n }\n else {\n for (var i = 0; i < len; i++) {\n if ((i) in (array) && predicate(array[i]))\n return i;\n }\n }\n return -1;\n }\n exports.findIndex = findIndex;\n function forEach(source, action) {\n if (source && action) {\n for (var i = 0; i < source.length; i++) {\n if (action(source[i], i) === false)\n break;\n }\n }\n }\n exports.forEach = forEach;\n function applyTo(target, fn) {\n if (target && fn) {\n for (var i = 0; i < target.length; i++) {\n target[i] = fn(target[i]);\n }\n }\n }\n exports.applyTo = applyTo;\n function removeIndex(array, index) {\n if (!array)\n throw new ArgumentNullException_1.default('array', CBN);\n Integer_1.default.assert(index, 'index');\n if (index < 0)\n throw new ArgumentOutOfRangeException_1.default('index', index, CBL0);\n var exists = index < array.length;\n if (exists)\n array.splice(index, 1);\n return exists;\n }\n exports.removeIndex = removeIndex;\n function remove(array, value, max, equalityComparer) {\n if (equalityComparer === void 0) { equalityComparer = Compare_1.areEqual; }\n if (!array || !array.length || max === 0)\n return 0;\n if (max < 0)\n throw new ArgumentOutOfRangeException_1.default('max', max, CBL0);\n var count = 0;\n if (!max || !isFinite(max)) {\n for (var i = (array.length - 1); i >= 0; i--) {\n if (equalityComparer(array[i], value)) {\n array.splice(i, 1);\n ++count;\n }\n }\n }\n else {\n var found = [];\n for (var i = 0, len = array.length; i < len; i++) {\n if (equalityComparer(array[i], value)) {\n found.push(i);\n ++count;\n if (count == max)\n break;\n }\n }\n for (var i = found.length - 1; i >= 0; i--) {\n array.splice(found[i], 1);\n }\n }\n return count;\n }\n exports.remove = remove;\n function repeat(element, count) {\n Integer_1.default.assert(count, 'count');\n if (count < 0)\n throw new ArgumentOutOfRangeException_1.default('count', count, CBL0);\n var result = initialize(count);\n for (var i = 0; i < count; i++) {\n result[i] = element;\n }\n return result;\n }\n exports.repeat = repeat;\n function range(first, count, step) {\n if (step === void 0) { step = 1; }\n if (isNaN(first) || !isFinite(first))\n throw new ArgumentOutOfRangeException_1.default('first', first, VFN);\n if (isNaN(count) || !isFinite(count))\n throw new ArgumentOutOfRangeException_1.default('count', count, VFN);\n if (count < 0)\n throw new ArgumentOutOfRangeException_1.default('count', count, CBL0);\n var result = initialize(count);\n for (var i = 0; i < count; i++) {\n result[i] = first;\n first += step;\n }\n return result;\n }\n exports.range = range;\n function rangeUntil(first, until, step) {\n if (step === void 0) { step = 1; }\n if (step == 0)\n throw new ArgumentOutOfRangeException_1.default('step', step, CB0);\n return range(first, (until - first) / step, step);\n }\n exports.rangeUntil = rangeUntil;\n function distinct(source) {\n var seen = {};\n return source.filter(function (e) { return !(e in seen) && (seen[e] = true); });\n }\n exports.distinct = distinct;\n function flatten(a, recurseDepth) {\n if (recurseDepth === void 0) { recurseDepth = 0; }\n var result = [];\n for (var i = 0; i < a.length; i++) {\n var x = a[i];\n if (Array.isArray(x)) {\n if (recurseDepth > 0)\n x = flatten(x, recurseDepth - 1);\n for (var n = 0; n < x.length; n++)\n result.push(x[n]);\n }\n else\n result.push(x);\n }\n return result;\n }\n exports.flatten = flatten;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\nimport Type from \"../../Types\";\r\nimport Integer from \"../../Integer\";\r\nimport {areEqual} from \"../../Compare\";\r\nimport ArgumentException from \"../../Exceptions/ArgumentException\";\r\nimport ArgumentNullException from \"../../Exceptions/ArgumentNullException\";\r\nimport ArgumentOutOfRangeException from \"../../Exceptions/ArgumentOutOfRangeException\";\r\n\r\n/**\r\n * Initializes an array depending on the requested capacity.\r\n * The returned array will have a .length equal to the value provided.\r\n * @param length\r\n * @returns {T[]}\r\n */\r\nexport function initialize(length:number):T[]\r\n{\r\n\tInteger.assert(length, 'length');\r\n\t// This logic is based upon JS performance tests that show a significant difference at the level of 65536.\r\n\tvar array:T[];\r\n\tif(length>65536)\r\n\t\tarray = new Array(length);\r\n\telse\r\n\t{\r\n\t\tarray = [];\r\n\t\tarray.length = length;\r\n\t}\r\n\treturn array;\r\n}\r\n\r\n/**\r\n *\r\n * @param source\r\n * @param sourceIndex\r\n * @param length\r\n * @returns {any}\r\n */\r\nexport function copy(\r\n\tsource:IArray,\r\n\tsourceIndex:number = 0,\r\n\tlength:number = Infinity):T[]\r\n{\r\n\tif(!source) return source; // may have passed zero? undefined? or null?\r\n\treturn copyTo(\r\n\t\tsource,\r\n\t\tinitialize(Math.min(length, Math.max(source.length - sourceIndex, 0))),\r\n\t\tsourceIndex, 0, length);\r\n}\r\n\r\nconst\r\n\tCBN = 'Cannot be null.',\r\n\tCB0 = 'Cannot be zero.',\r\n\tCBL0 = 'Cannot be less than zero.',\r\n\tVFN = 'Must be a valid finite number';\r\n\r\n/**\r\n * Copies one array to another.\r\n * @param source\r\n * @param destination\r\n * @param sourceIndex\r\n * @param destinationIndex\r\n * @param length An optional limit to stop copying.\r\n * @returns The destination array.\r\n */\r\nexport function copyTo>(\r\n\tsource:IArray,\r\n\tdestination:TDestination,\r\n\tsourceIndex:number = 0,\r\n\tdestinationIndex:number = 0,\r\n\tlength:number = Infinity):TDestination\r\n{\r\n\tif(!source)\r\n\t\tthrow new ArgumentNullException('source', CBN);\r\n\r\n\tif(!destination)\r\n\t\tthrow new ArgumentNullException('destination', CBN);\r\n\r\n\tif(sourceIndex<0)\r\n\t\tthrow new ArgumentOutOfRangeException('sourceIndex', sourceIndex, CBL0);\r\n\r\n\tvar sourceLength = source.length;\r\n\tif(!sourceLength)\r\n\t\treturn destination;\r\n\tif(sourceIndex>=sourceLength)\r\n\t\tthrow new ArgumentOutOfRangeException('sourceIndex', sourceIndex, 'Must be less than the length of the source array.');\r\n\r\n\tif(destination.length<0)\r\n\t\tthrow new ArgumentOutOfRangeException('destinationIndex', destinationIndex, CBL0);\r\n\r\n\tvar maxLength = source.length - sourceIndex;\r\n\tif(isFinite(length) && length>maxLength)\r\n\t\tthrow new ArgumentOutOfRangeException('sourceIndex', sourceIndex, 'Source index + length cannot exceed the length of the source array.');\r\n\r\n\tlength = Math.min(length, maxLength);\r\n\tvar newLength = destinationIndex + length;\r\n\tif(newLength>destination.length) destination.length = newLength;\r\n\r\n\tfor(let i = 0; i(\r\n\tarray:IArray, item:T,\r\n\tequalityComparer:EqualityComparison = areEqual):number\r\n{\r\n\r\n\tvar len = array && array.length;\r\n\tif(len)\r\n\t{\r\n\t\t// NaN NEVER evaluates its equality so be careful.\r\n\t\tif(Array.isArray(array) && !Type.isTrueNaN(item))\r\n\t\t\treturn array.indexOf(item);\r\n\r\n\t\tfor(let i = 0; i(\r\n\tarray:IArray, item:T,\r\n\tequalityComparer:EqualityComparison = areEqual):boolean\r\n{\r\n\treturn indexOf(array, item, equalityComparer)!= -1;\r\n}\r\n\r\n/**\r\n * Finds and replaces a value from an array. Will replaces all instances unless a maximum is specified.\r\n * @param array\r\n * @param old\r\n * @param newValue\r\n * @param max\r\n * @returns {number}\r\n */\r\nexport function replace(\r\n\tarray:IArray,\r\n\told:T,\r\n\tnewValue:T,\r\n\tmax?:number):number\r\n{\r\n\tif(!array || !array.length || max===0) return 0;\r\n\tif(max<0) throw new ArgumentOutOfRangeException('max', max, CBL0);\r\n\tif(!max) max = Infinity;\r\n\r\n\tvar count = 0;\r\n\r\n\tfor(let i = 0,len=array.length;i(\r\n\tarray:IArray,\r\n\tvalue:T,\r\n\tstart:number = 0,\r\n\tstop?:number):void\r\n{\r\n\tif(!array) return;\r\n\tInteger.assertZeroOrGreater(start, 'start');\r\n\tif(!stop && stop!==0) stop = array.length;\r\n\tInteger.assert(stop, 'stop');\r\n\tif(stop,\r\n\tstart:number = 0,\r\n\tstop?:number):void\r\n{\r\n\tupdateRange(array, null, start, stop);\r\n}\r\n\r\n/**\r\n * Ensures a value exists within an array. If not found, adds to the end.\r\n * @param array\r\n * @param item\r\n * @param {function?} equalityComparer\r\n * @returns {boolean}\r\n */\r\nexport function register(\r\n\tarray:IArray, item:T,\r\n\tequalityComparer:EqualityComparison = areEqual):boolean\r\n{\r\n\tif(!array)\r\n\t\tthrow new ArgumentNullException('array', CBN);\r\n\tvar len = array.length; // avoid querying .length more than once. *\r\n\tvar ok = !len || !contains(array, item, equalityComparer);\r\n\tif(ok) array[len] = item; // * push would query length again.\r\n\treturn ok;\r\n}\r\n\r\n/**\r\n * Returns the first index of which the provided predicate returns true.\r\n * Returns -1 if always false.\r\n * @param array\r\n * @param predicate\r\n * @returns {number}\r\n */\r\nexport function findIndex(array:IArray, predicate:Predicate):number\r\n{\r\n\tif(!array)\r\n\t\tthrow new ArgumentNullException('array', CBN);\r\n\tif(!Type.isFunction(predicate))\r\n\t\tthrow new ArgumentException('predicate', 'Must be a function.');\r\n\r\n\tvar len = array.length;\r\n\tif(Array.isArray(array)) {\r\n\t\tfor(let i = 0; i(\r\n\tsource:IArray,\r\n\taction:Predicate | Action):void\r\n{\r\n\tif(source && action)\r\n\t{\r\n\t\t// Don't cache the length since it is possible that the underlying array changed.\r\n\t\tfor(let i = 0; i(target:IArray, fn:(a:T) => T):void\r\n{\r\n\tif(target && fn)\r\n\t{\r\n\t\tfor(let i = 0; i(array:T[], index:number):boolean\r\n{\r\n\tif(!array)\r\n\t\tthrow new ArgumentNullException('array', CBN);\r\n\r\n\tInteger.assert(index, 'index');\r\n\tif(index<0) throw new ArgumentOutOfRangeException('index', index, CBL0);\r\n\r\n\r\n\tvar exists = index(\r\n\tarray:T[], value:T, max?:number,\r\n\tequalityComparer:EqualityComparison = areEqual):number\r\n{\r\n\tif(!array || !array.length || max===0) return 0;\r\n\tif(max<0) throw new ArgumentOutOfRangeException('max', max, CBL0);\r\n\r\n\tvar count = 0;\r\n\tif(!max || !isFinite(max)) {\r\n\t\t// Don't track the indexes and remove in reverse.\r\n\t\tfor(let i = (array.length - 1); i>=0; i--)\r\n\t\t{\r\n\t\t\tif(equalityComparer(array[i], value))\r\n\t\t\t{\r\n\t\t\t\tarray.splice(i, 1);\r\n\t\t\t\t++count;\r\n\t\t\t}\r\n\t\t}\r\n\t} else {\r\n\t\t// Since the user will expect it to happen in forward order...\r\n\t\tvar found:number[] = []; // indexes;\r\n\t\tfor(let i = 0, len = array.length; i=0;i--) {\r\n\t\t\tarray.splice(found[i], 1);\r\n\t\t}\r\n\t}\r\n\r\n\r\n\treturn count;\r\n}\r\n\r\n/**\r\n * Simply repeats a value the number of times specified.\r\n * @param element\r\n * @param count\r\n * @returns {T[]}\r\n */\r\nexport function repeat(element:T, count:number):T[]\r\n{\r\n\tInteger.assert(count, 'count');\r\n\tif(count<0) throw new ArgumentOutOfRangeException('count', count, CBL0);\r\n\r\n\tvar result = initialize(count);\r\n\tfor(let i = 0; i(count);\r\n\tfor(let i = 0; i !(e in seen) && (seen[e] = true));\r\n}\r\n\r\n/**\r\n * Takes any arrays within an array and inserts the values contained within in place of that array.\r\n * For every count higher than 0 in recurseDepth it will attempt an additional pass. Passing Infinity will flatten all arrays contained.\r\n * @param a\r\n * @param recurseDepth\r\n * @returns {any[]}\r\n */\r\nexport function flatten(a:any[], recurseDepth:number = 0):any[]\r\n{\r\n\tvar result:any[] = [];\r\n\tfor(var i = 0; i0) x = flatten(x, recurseDepth - 1);\r\n\t\t\tfor(var n = 0; n 65536)\n array = new Array(length);\n else {\n array = [];\n array.length = length;\n }\n return array;\n }\n exports.initialize = initialize;\n function copy(source, sourceIndex, length) {\n if (sourceIndex === void 0) { sourceIndex = 0; }\n if (length === void 0) { length = Infinity; }\n if (!source)\n return source;\n return copyTo(source, initialize(Math.min(length, Math.max(source.length - sourceIndex, 0))), sourceIndex, 0, length);\n }\n exports.copy = copy;\n var CBN = 'Cannot be null.', CB0 = 'Cannot be zero.', CBL0 = 'Cannot be less than zero.', VFN = 'Must be a valid finite number';\n function copyTo(source, destination, sourceIndex, destinationIndex, length) {\n if (sourceIndex === void 0) { sourceIndex = 0; }\n if (destinationIndex === void 0) { destinationIndex = 0; }\n if (length === void 0) { length = Infinity; }\n if (!source)\n throw new ArgumentNullException_1.ArgumentNullException('source', CBN);\n if (!destination)\n throw new ArgumentNullException_1.ArgumentNullException('destination', CBN);\n if (sourceIndex < 0)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('sourceIndex', sourceIndex, CBL0);\n var sourceLength = source.length;\n if (!sourceLength)\n return destination;\n if (sourceIndex >= sourceLength)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('sourceIndex', sourceIndex, 'Must be less than the length of the source array.');\n if (destination.length < 0)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('destinationIndex', destinationIndex, CBL0);\n var maxLength = source.length - sourceIndex;\n if (isFinite(length) && length > maxLength)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('sourceIndex', sourceIndex, 'Source index + length cannot exceed the length of the source array.');\n length = Math.min(length, maxLength);\n var newLength = destinationIndex + length;\n if (newLength > destination.length)\n destination.length = newLength;\n for (var i = 0; i < length; i++) {\n destination[destinationIndex + i] = source[sourceIndex + i];\n }\n return destination;\n }\n exports.copyTo = copyTo;\n function indexOf(array, item, equalityComparer) {\n if (equalityComparer === void 0) { equalityComparer = Compare_1.areEqual; }\n var len = array && array.length;\n if (len) {\n if (Array.isArray(array) && !Types_1.Type.isTrueNaN(item))\n return array.indexOf(item);\n for (var i = 0; i < len; i++) {\n if (equalityComparer(array[i], item))\n return i;\n }\n }\n return -1;\n }\n exports.indexOf = indexOf;\n function contains(array, item, equalityComparer) {\n if (equalityComparer === void 0) { equalityComparer = Compare_1.areEqual; }\n return indexOf(array, item, equalityComparer) != -1;\n }\n exports.contains = contains;\n function replace(array, old, newValue, max) {\n if (!array || !array.length || max === 0)\n return 0;\n if (max < 0)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('max', max, CBL0);\n if (!max)\n max = Infinity;\n var count = 0;\n for (var i = 0, len = array.length; i < len; i++) {\n if (array[i] === old) {\n array[i] = newValue;\n ++count;\n if (count == max)\n break;\n }\n }\n return count;\n }\n exports.replace = replace;\n function updateRange(array, value, start, stop) {\n if (start === void 0) { start = 0; }\n if (!array)\n return;\n Integer_1.Integer.assertZeroOrGreater(start, 'start');\n if (!stop && stop !== 0)\n stop = array.length;\n Integer_1.Integer.assert(stop, 'stop');\n if (stop < start)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(\"stop\", stop, \"is less than start\");\n for (var i = start; i < stop; i++) {\n array[i] = value;\n }\n }\n exports.updateRange = updateRange;\n function clear(array, start, stop) {\n if (start === void 0) { start = 0; }\n updateRange(array, null, start, stop);\n }\n exports.clear = clear;\n function register(array, item, equalityComparer) {\n if (equalityComparer === void 0) { equalityComparer = Compare_1.areEqual; }\n if (!array)\n throw new ArgumentNullException_1.ArgumentNullException('array', CBN);\n var len = array.length;\n var ok = !len || !contains(array, item, equalityComparer);\n if (ok)\n array[len] = item;\n return ok;\n }\n exports.register = register;\n function findIndex(array, predicate) {\n if (!array)\n throw new ArgumentNullException_1.ArgumentNullException('array', CBN);\n if (!Types_1.Type.isFunction(predicate))\n throw new ArgumentException_1.ArgumentException('predicate', 'Must be a function.');\n var len = array.length;\n if (Array.isArray(array)) {\n for (var i = 0; i < len; i++) {\n if (predicate(array[i]))\n return i;\n }\n }\n else {\n for (var i = 0; i < len; i++) {\n if ((i) in (array) && predicate(array[i]))\n return i;\n }\n }\n return -1;\n }\n exports.findIndex = findIndex;\n function forEach(source, action) {\n if (source && action) {\n for (var i = 0; i < source.length; i++) {\n if (action(source[i], i) === false)\n break;\n }\n }\n }\n exports.forEach = forEach;\n function applyTo(target, fn) {\n if (target && fn) {\n for (var i = 0; i < target.length; i++) {\n target[i] = fn(target[i]);\n }\n }\n }\n exports.applyTo = applyTo;\n function removeIndex(array, index) {\n if (!array)\n throw new ArgumentNullException_1.ArgumentNullException('array', CBN);\n Integer_1.Integer.assert(index, 'index');\n if (index < 0)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('index', index, CBL0);\n var exists = index < array.length;\n if (exists)\n array.splice(index, 1);\n return exists;\n }\n exports.removeIndex = removeIndex;\n function remove(array, value, max, equalityComparer) {\n if (equalityComparer === void 0) { equalityComparer = Compare_1.areEqual; }\n if (!array || !array.length || max === 0)\n return 0;\n if (max < 0)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('max', max, CBL0);\n var count = 0;\n if (!max || !isFinite(max)) {\n for (var i = (array.length - 1); i >= 0; i--) {\n if (equalityComparer(array[i], value)) {\n array.splice(i, 1);\n ++count;\n }\n }\n }\n else {\n var found = [];\n for (var i = 0, len = array.length; i < len; i++) {\n if (equalityComparer(array[i], value)) {\n found.push(i);\n ++count;\n if (count == max)\n break;\n }\n }\n for (var i = found.length - 1; i >= 0; i--) {\n array.splice(found[i], 1);\n }\n }\n return count;\n }\n exports.remove = remove;\n function repeat(element, count) {\n Integer_1.Integer.assert(count, 'count');\n if (count < 0)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('count', count, CBL0);\n var result = initialize(count);\n for (var i = 0; i < count; i++) {\n result[i] = element;\n }\n return result;\n }\n exports.repeat = repeat;\n function range(first, count, step) {\n if (step === void 0) { step = 1; }\n if (isNaN(first) || !isFinite(first))\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('first', first, VFN);\n if (isNaN(count) || !isFinite(count))\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('count', count, VFN);\n if (count < 0)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('count', count, CBL0);\n var result = initialize(count);\n for (var i = 0; i < count; i++) {\n result[i] = first;\n first += step;\n }\n return result;\n }\n exports.range = range;\n function rangeUntil(first, until, step) {\n if (step === void 0) { step = 1; }\n if (step == 0)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('step', step, CB0);\n return range(first, (until - first) / step, step);\n }\n exports.rangeUntil = rangeUntil;\n function distinct(source) {\n var seen = {};\n return source.filter(function (e) { return !(e in seen) && (seen[e] = true); });\n }\n exports.distinct = distinct;\n function flatten(a, recurseDepth) {\n if (recurseDepth === void 0) { recurseDepth = 0; }\n var result = [];\n for (var i = 0; i < a.length; i++) {\n var x = a[i];\n if (Array.isArray(x)) {\n if (recurseDepth > 0)\n x = flatten(x, recurseDepth - 1);\n for (var n = 0; n < x.length; n++)\n result.push(x[n]);\n }\n else\n result.push(x);\n }\n return result;\n }\n exports.flatten = flatten;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {Type} from \"../../Types\";\r\nimport {Integer} from \"../../Integer\";\r\nimport {areEqual} from \"../../Compare\";\r\nimport {ArgumentException} from \"../../Exceptions/ArgumentException\";\r\nimport {ArgumentNullException} from \"../../Exceptions/ArgumentNullException\";\r\nimport {ArgumentOutOfRangeException} from \"../../Exceptions/ArgumentOutOfRangeException\";\r\nimport {EqualityComparison, Predicate, Action} from \"../../FunctionTypes\";\r\nimport {IArray} from \"./IArray\";\r\n\r\n/**\r\n * Initializes an array depending on the requested capacity.\r\n * The returned array will have a .length equal to the value provided.\r\n * @param length\r\n * @returns {T[]}\r\n */\r\nexport function initialize(length:number):T[]\r\n{\r\n\tInteger.assert(length, 'length');\r\n\t// This logic is based upon JS performance tests that show a significant difference at the level of 65536.\r\n\tvar array:T[];\r\n\tif(length>65536)\r\n\t\tarray = new Array(length);\r\n\telse\r\n\t{\r\n\t\tarray = [];\r\n\t\tarray.length = length;\r\n\t}\r\n\treturn array;\r\n}\r\n\r\n/**\r\n *\r\n * @param source\r\n * @param sourceIndex\r\n * @param length\r\n * @returns {any}\r\n */\r\nexport function copy(\r\n\tsource:IArray,\r\n\tsourceIndex:number = 0,\r\n\tlength:number = Infinity):T[]\r\n{\r\n\tif(!source) return source; // may have passed zero? undefined? or null?\r\n\treturn copyTo(\r\n\t\tsource,\r\n\t\tinitialize(Math.min(length, Math.max(source.length - sourceIndex, 0))),\r\n\t\tsourceIndex, 0, length);\r\n}\r\n\r\nconst\r\n\tCBN = 'Cannot be null.',\r\n\tCB0 = 'Cannot be zero.',\r\n\tCBL0 = 'Cannot be less than zero.',\r\n\tVFN = 'Must be a valid finite number';\r\n\r\n/**\r\n * Copies one array to another.\r\n * @param source\r\n * @param destination\r\n * @param sourceIndex\r\n * @param destinationIndex\r\n * @param length An optional limit to stop copying.\r\n * @returns The destination array.\r\n */\r\nexport function copyTo>(\r\n\tsource:IArray,\r\n\tdestination:TDestination,\r\n\tsourceIndex:number = 0,\r\n\tdestinationIndex:number = 0,\r\n\tlength:number = Infinity):TDestination\r\n{\r\n\tif(!source)\r\n\t\tthrow new ArgumentNullException('source', CBN);\r\n\r\n\tif(!destination)\r\n\t\tthrow new ArgumentNullException('destination', CBN);\r\n\r\n\tif(sourceIndex<0)\r\n\t\tthrow new ArgumentOutOfRangeException('sourceIndex', sourceIndex, CBL0);\r\n\r\n\tvar sourceLength = source.length;\r\n\tif(!sourceLength)\r\n\t\treturn destination;\r\n\tif(sourceIndex>=sourceLength)\r\n\t\tthrow new ArgumentOutOfRangeException('sourceIndex', sourceIndex, 'Must be less than the length of the source array.');\r\n\r\n\tif(destination.length<0)\r\n\t\tthrow new ArgumentOutOfRangeException('destinationIndex', destinationIndex, CBL0);\r\n\r\n\tvar maxLength = source.length - sourceIndex;\r\n\tif(isFinite(length) && length>maxLength)\r\n\t\tthrow new ArgumentOutOfRangeException('sourceIndex', sourceIndex, 'Source index + length cannot exceed the length of the source array.');\r\n\r\n\tlength = Math.min(length, maxLength);\r\n\tvar newLength = destinationIndex + length;\r\n\tif(newLength>destination.length) destination.length = newLength;\r\n\r\n\tfor(let i = 0; i(\r\n\tarray:IArray, item:T,\r\n\tequalityComparer:EqualityComparison = areEqual):number\r\n{\r\n\r\n\tvar len = array && array.length;\r\n\tif(len)\r\n\t{\r\n\t\t// NaN NEVER evaluates its equality so be careful.\r\n\t\tif(Array.isArray(array) && !Type.isTrueNaN(item))\r\n\t\t\treturn array.indexOf(item);\r\n\r\n\t\tfor(let i = 0; i(\r\n\tarray:IArray, item:T,\r\n\tequalityComparer:EqualityComparison = areEqual):boolean\r\n{\r\n\treturn indexOf(array, item, equalityComparer)!= -1;\r\n}\r\n\r\n/**\r\n * Finds and replaces a value from an array. Will replaces all instances unless a maximum is specified.\r\n * @param array\r\n * @param old\r\n * @param newValue\r\n * @param max\r\n * @returns {number}\r\n */\r\nexport function replace(\r\n\tarray:IArray,\r\n\told:T,\r\n\tnewValue:T,\r\n\tmax?:number):number\r\n{\r\n\tif(!array || !array.length || max===0) return 0;\r\n\tif(max<0) throw new ArgumentOutOfRangeException('max', max, CBL0);\r\n\tif(!max) max = Infinity;\r\n\r\n\tvar count = 0;\r\n\r\n\tfor(let i = 0, len = array.length; i(\r\n\tarray:IArray,\r\n\tvalue:T,\r\n\tstart:number = 0,\r\n\tstop?:number):void\r\n{\r\n\tif(!array) return;\r\n\tInteger.assertZeroOrGreater(start, 'start');\r\n\tif(!stop && stop!==0) stop = array.length;\r\n\tInteger.assert(stop, 'stop');\r\n\tif(stop,\r\n\tstart:number = 0,\r\n\tstop?:number):void\r\n{\r\n\tupdateRange(array, null, start, stop);\r\n}\r\n\r\n/**\r\n * Ensures a value exists within an array. If not found, adds to the end.\r\n * @param array\r\n * @param item\r\n * @param {function?} equalityComparer\r\n * @returns {boolean}\r\n */\r\nexport function register(\r\n\tarray:IArray, item:T,\r\n\tequalityComparer:EqualityComparison = areEqual):boolean\r\n{\r\n\tif(!array)\r\n\t\tthrow new ArgumentNullException('array', CBN);\r\n\tvar len = array.length; // avoid querying .length more than once. *\r\n\tvar ok = !len || !contains(array, item, equalityComparer);\r\n\tif(ok) array[len] = item; // * push would query length again.\r\n\treturn ok;\r\n}\r\n\r\n/**\r\n * Returns the first index of which the provided predicate returns true.\r\n * Returns -1 if always false.\r\n * @param array\r\n * @param predicate\r\n * @returns {number}\r\n */\r\nexport function findIndex(array:IArray, predicate:Predicate):number\r\n{\r\n\tif(!array)\r\n\t\tthrow new ArgumentNullException('array', CBN);\r\n\tif(!Type.isFunction(predicate))\r\n\t\tthrow new ArgumentException('predicate', 'Must be a function.');\r\n\r\n\tvar len = array.length;\r\n\tif(Array.isArray(array))\r\n\t{\r\n\t\tfor(let i = 0; i(\r\n\tsource:IArray,\r\n\taction:Predicate | Action):void\r\n{\r\n\tif(source && action)\r\n\t{\r\n\t\t// Don't cache the length since it is possible that the underlying array changed.\r\n\t\tfor(let i = 0; i(target:IArray, fn:(a:T) => T):void\r\n{\r\n\tif(target && fn)\r\n\t{\r\n\t\tfor(let i = 0; i(array:T[], index:number):boolean\r\n{\r\n\tif(!array)\r\n\t\tthrow new ArgumentNullException('array', CBN);\r\n\r\n\tInteger.assert(index, 'index');\r\n\tif(index<0) throw new ArgumentOutOfRangeException('index', index, CBL0);\r\n\r\n\r\n\tvar exists = index(\r\n\tarray:T[], value:T, max?:number,\r\n\tequalityComparer:EqualityComparison = areEqual):number\r\n{\r\n\tif(!array || !array.length || max===0) return 0;\r\n\tif(max<0) throw new ArgumentOutOfRangeException('max', max, CBL0);\r\n\r\n\tvar count = 0;\r\n\tif(!max || !isFinite(max))\r\n\t{\r\n\t\t// Don't track the indexes and remove in reverse.\r\n\t\tfor(let i = (array.length - 1); i>=0; i--)\r\n\t\t{\r\n\t\t\tif(equalityComparer(array[i], value))\r\n\t\t\t{\r\n\t\t\t\tarray.splice(i, 1);\r\n\t\t\t\t++count;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\telse\r\n\t{\r\n\t\t// Since the user will expect it to happen in forward order...\r\n\t\tvar found:number[] = []; // indexes;\r\n\t\tfor(let i = 0, len = array.length; i=0; i--)\r\n\t\t{\r\n\t\t\tarray.splice(found[i], 1);\r\n\t\t}\r\n\t}\r\n\r\n\r\n\treturn count;\r\n}\r\n\r\n/**\r\n * Simply repeats a value the number of times specified.\r\n * @param element\r\n * @param count\r\n * @returns {T[]}\r\n */\r\nexport function repeat(element:T, count:number):T[]\r\n{\r\n\tInteger.assert(count, 'count');\r\n\tif(count<0) throw new ArgumentOutOfRangeException('count', count, CBL0);\r\n\r\n\tvar result = initialize(count);\r\n\tfor(let i = 0; i(count);\r\n\tfor(let i = 0; i !(e in seen) && (seen[e] = true));\r\n}\r\n\r\n/**\r\n * Takes any arrays within an array and inserts the values contained within in place of that array.\r\n * For every count higher than 0 in recurseDepth it will attempt an additional pass. Passing Infinity will flatten all arrays contained.\r\n * @param a\r\n * @param recurseDepth\r\n * @returns {any[]}\r\n */\r\nexport function flatten(a:any[], recurseDepth:number = 0):any[]\r\n{\r\n\tvar result:any[] = [];\r\n\tfor(var i = 0; i0) x = flatten(x, recurseDepth - 1);\r\n\t\t\tfor(var n = 0; n -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import DisposableBase from "../Disposable/DisposableBase"; -declare abstract class CollectionBase extends DisposableBase implements ICollection, IEnumerateEach { +import { DisposableBase } from "../Disposable/DisposableBase"; +import { ICollection } from "./ICollection"; +import { IEnumerator } from "./Enumeration/IEnumerator"; +import { IEnumerateEach } from "./Enumeration/IEnumerateEach"; +import { EqualityComparison, Predicate, Action } from "../FunctionTypes"; +import { IEnumerableOrArray } from "./IEnumerableOrArray"; +import { IArray } from "./Array/IArray"; +export declare abstract class CollectionBase extends DisposableBase implements ICollection, IEnumerateEach { protected _equalityComparer: EqualityComparison; constructor(source?: IEnumerableOrArray, _equalityComparer?: EqualityComparison); protected abstract getCount(): number; diff --git a/dist/umd.min/System/Collections/CollectionBase.js b/dist/umd.min/System/Collections/CollectionBase.js index ce6f6f54..854cafb7 100644 --- a/dist/umd.min/System/Collections/CollectionBase.js +++ b/dist/umd.min/System/Collections/CollectionBase.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(t,e){function o(){this.constructor=t}for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)};!function(t){if("object"==typeof module&&"object"==typeof module.exports){var e=t(require,exports);void 0!==e&&(module.exports=e)}else"function"==typeof define&&define.amd&&define(["require","exports","./Enumeration/Enumerator","../Compare","../Exceptions/ArgumentNullException","../Exceptions/InvalidOperationException","../Disposable/DisposableBase"],t)}(function(t,e){"use strict";var o=t("./Enumeration/Enumerator"),i=t("../Compare"),n=t("../Exceptions/ArgumentNullException"),r=t("../Exceptions/InvalidOperationException"),a=t("../Disposable/DisposableBase"),s="CollectionBase",u="Cannot modify a disposed collection.",p="Cannot modify a read-only collection.",d=function(t){function e(e,o){void 0===o&&(o=i.areEqual),t.call(this),this._equalityComparer=o;var n=this;n._disposableObjectName=s,n._importEntries(e),n._updateRecursion=0,n._modifiedCount=0,n._version=0}return __extends(e,t),Object.defineProperty(e.prototype,"count",{get:function(){return this.getCount()},enumerable:!0,configurable:!0}),e.prototype.getIsReadOnly=function(){return!1},Object.defineProperty(e.prototype,"isReadOnly",{get:function(){return this.getIsReadOnly()},enumerable:!0,configurable:!0}),e.prototype.assertModifiable=function(){if(this.throwIfDisposed(u),this.getIsReadOnly())throw new r["default"](p)},e.prototype.assertVersion=function(t){if(t!=this._version)throw new r["default"]("Collection was modified.")},e.prototype._onModified=function(){},e.prototype._signalModification=function(t){var e=this;if(t&&e._modifiedCount++,e._modifiedCount&&!this._updateRecursion){e._modifiedCount=0,e._version++;try{e._onModified()}catch(o){console.error(o)}return!0}return!1},e.prototype._incrementModified=function(){this._modifiedCount++},Object.defineProperty(e.prototype,"isUpdating",{get:function(){return 0!=this._updateRecursion},enumerable:!0,configurable:!0}),e.prototype.handleUpdate=function(t){if(!t)return!1;var e=this;e.assertModifiable(),e._updateRecursion++;var o=!1;try{(o=t())&&e._modifiedCount++}finally{e._updateRecursion--}return e._signalModification(),o},e.prototype.add=function(t){var e=this;e.assertModifiable(),e._updateRecursion++;try{e._addInternal(t)&&e._modifiedCount++}finally{e._updateRecursion--}e._signalModification()},e.prototype.remove=function(t,e){void 0===e&&(e=1/0);var o=this;o.assertModifiable(),o._updateRecursion++;var i;try{(i=o._removeInternal(t,e))&&o._modifiedCount++}finally{o._updateRecursion--}return o._signalModification(),i},e.prototype.clear=function(){var t=this;t.assertModifiable(),t._updateRecursion++;var e;try{(e=t._clearInternal())&&t._modifiedCount++}finally{t._updateRecursion--}return t._signalModification(),e},e.prototype._onDispose=function(){t.prototype._onDispose.call(this),this._clearInternal(),this._version=0,this._updateRecursion=0,this._modifiedCount=0},e.prototype._importEntries=function(t){var e=this,i=0;if(t)if(Array.isArray(t))for(var n=0,r=t;n65536?new Array(t):[])},e}(a["default"]);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=d}); +var __extends=this&&this.__extends||function(t,e){function o(){this.constructor=t}for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)};!function(t){if("object"==typeof module&&"object"==typeof module.exports){var e=t(require,exports);void 0!==e&&(module.exports=e)}else"function"==typeof define&&define.amd&&define(["require","exports","./Enumeration/Enumerator","../Compare","../Exceptions/ArgumentNullException","../Exceptions/InvalidOperationException","../Disposable/DisposableBase"],t)}(function(t,e){"use strict";var o=t("./Enumeration/Enumerator"),i=t("../Compare"),n=t("../Exceptions/ArgumentNullException"),r=t("../Exceptions/InvalidOperationException"),a=t("../Disposable/DisposableBase"),s="CollectionBase",u="Cannot modify a disposed collection.",p="Cannot modify a read-only collection.",d=function(t){function e(e,o){void 0===o&&(o=i.areEqual),t.call(this),this._equalityComparer=o;var n=this;n._disposableObjectName=s,n._importEntries(e),n._updateRecursion=0,n._modifiedCount=0,n._version=0}return __extends(e,t),Object.defineProperty(e.prototype,"count",{get:function(){return this.getCount()},enumerable:!0,configurable:!0}),e.prototype.getIsReadOnly=function(){return!1},Object.defineProperty(e.prototype,"isReadOnly",{get:function(){return this.getIsReadOnly()},enumerable:!0,configurable:!0}),e.prototype.assertModifiable=function(){if(this.throwIfDisposed(u),this.getIsReadOnly())throw new r.InvalidOperationException(p)},e.prototype.assertVersion=function(t){if(t!=this._version)throw new r.InvalidOperationException("Collection was modified.")},e.prototype._onModified=function(){},e.prototype._signalModification=function(t){var e=this;if(t&&e._modifiedCount++,e._modifiedCount&&!this._updateRecursion){e._modifiedCount=0,e._version++;try{e._onModified()}catch(o){console.error(o)}return!0}return!1},e.prototype._incrementModified=function(){this._modifiedCount++},Object.defineProperty(e.prototype,"isUpdating",{get:function(){return 0!=this._updateRecursion},enumerable:!0,configurable:!0}),e.prototype.handleUpdate=function(t){if(!t)return!1;var e=this;e.assertModifiable(),e._updateRecursion++;var o=!1;try{(o=t())&&e._modifiedCount++}finally{e._updateRecursion--}return e._signalModification(),o},e.prototype.add=function(t){var e=this;e.assertModifiable(),e._updateRecursion++;try{e._addInternal(t)&&e._modifiedCount++}finally{e._updateRecursion--}e._signalModification()},e.prototype.remove=function(t,e){void 0===e&&(e=1/0);var o=this;o.assertModifiable(),o._updateRecursion++;var i;try{(i=o._removeInternal(t,e))&&o._modifiedCount++}finally{o._updateRecursion--}return o._signalModification(),i},e.prototype.clear=function(){var t=this;t.assertModifiable(),t._updateRecursion++;var e;try{(e=t._clearInternal())&&t._modifiedCount++}finally{t._updateRecursion--}return t._signalModification(),e},e.prototype._onDispose=function(){t.prototype._onDispose.call(this),this._clearInternal(),this._version=0,this._updateRecursion=0,this._modifiedCount=0},e.prototype._importEntries=function(t){var e=this,i=0;if(t)if(Array.isArray(t))for(var n=0,r=t;n65536?new Array(t):[])},e}(a.DisposableBase);e.CollectionBase=d,Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=d}); //# sourceMappingURL=CollectionBase.js.map diff --git a/dist/umd.min/System/Collections/CollectionBase.js.map b/dist/umd.min/System/Collections/CollectionBase.js.map index 7eb5fce6..31bf2539 100644 --- a/dist/umd.min/System/Collections/CollectionBase.js.map +++ b/dist/umd.min/System/Collections/CollectionBase.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/CollectionBase.js","System/Collections/CollectionBase.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","Enumerator_1","Compare_1","ArgumentNullException_1","InvalidOperationException_1","DisposableBase_1","NAME","CMDC","CMRO","CollectionBase","_super","source","_equalityComparer","areEqual","call","_","_disposableObjectName","_importEntries","_updateRecursion","_modifiedCount","_version","defineProperty","get","getCount","enumerable","configurable","getIsReadOnly","assertModifiable","throwIfDisposed","assertVersion","version","_onModified","_signalModification","increment","ex","console","error","_incrementModified","handleUpdate","closure","updated","add","entry","_addInternal","remove","max","Infinity","n","_removeInternal","clear","_clearInternal","_onDispose","entries","_this","added","Array","isArray","_i","entries_1","length","e","forEach","importEntries","contains","found","equals","action","useCopy","a","toArray","getEnumerator","copyTo","target","index","count","newLength","moveNext","current","value"],"mappings":"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","file":"System/Collections/CollectionBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"./Enumeration/Enumerator\", \"../Compare\", \"../Exceptions/ArgumentNullException\", \"../Exceptions/InvalidOperationException\", \"../Disposable/DisposableBase\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var Enumerator_1 = require(\"./Enumeration/Enumerator\");\n var Compare_1 = require(\"../Compare\");\n var ArgumentNullException_1 = require(\"../Exceptions/ArgumentNullException\");\n var InvalidOperationException_1 = require(\"../Exceptions/InvalidOperationException\");\n var DisposableBase_1 = require(\"../Disposable/DisposableBase\");\n var NAME = \"CollectionBase\", CMDC = \"Cannot modify a disposed collection.\", CMRO = \"Cannot modify a read-only collection.\";\n var CollectionBase = (function (_super) {\n __extends(CollectionBase, _super);\n function CollectionBase(source, _equalityComparer) {\n if (_equalityComparer === void 0) { _equalityComparer = Compare_1.areEqual; }\n _super.call(this);\n this._equalityComparer = _equalityComparer;\n var _ = this;\n _._disposableObjectName = NAME;\n _._importEntries(source);\n _._updateRecursion = 0;\n _._modifiedCount = 0;\n _._version = 0;\n }\n Object.defineProperty(CollectionBase.prototype, \"count\", {\n get: function () {\n return this.getCount();\n },\n enumerable: true,\n configurable: true\n });\n CollectionBase.prototype.getIsReadOnly = function () {\n return false;\n };\n Object.defineProperty(CollectionBase.prototype, \"isReadOnly\", {\n get: function () {\n return this.getIsReadOnly();\n },\n enumerable: true,\n configurable: true\n });\n CollectionBase.prototype.assertModifiable = function () {\n this.throwIfDisposed(CMDC);\n if (this.getIsReadOnly())\n throw new InvalidOperationException_1.default(CMRO);\n };\n CollectionBase.prototype.assertVersion = function (version) {\n if (version != this._version)\n throw new InvalidOperationException_1.default(\"Collection was modified.\");\n };\n CollectionBase.prototype._onModified = function () { };\n CollectionBase.prototype._signalModification = function (increment) {\n var _ = this;\n if (increment)\n _._modifiedCount++;\n if (_._modifiedCount && !this._updateRecursion) {\n _._modifiedCount = 0;\n _._version++;\n try {\n _._onModified();\n }\n catch (ex) {\n console.error(ex);\n }\n return true;\n }\n return false;\n };\n CollectionBase.prototype._incrementModified = function () { this._modifiedCount++; };\n Object.defineProperty(CollectionBase.prototype, \"isUpdating\", {\n get: function () { return this._updateRecursion != 0; },\n enumerable: true,\n configurable: true\n });\n CollectionBase.prototype.handleUpdate = function (closure) {\n if (!closure)\n return false;\n var _ = this;\n _.assertModifiable();\n _._updateRecursion++;\n var updated = false;\n try {\n if (updated = closure())\n _._modifiedCount++;\n }\n finally {\n _._updateRecursion--;\n }\n _._signalModification();\n return updated;\n };\n CollectionBase.prototype.add = function (entry) {\n var _ = this;\n _.assertModifiable();\n _._updateRecursion++;\n try {\n if (_._addInternal(entry))\n _._modifiedCount++;\n }\n finally {\n _._updateRecursion--;\n }\n _._signalModification();\n };\n CollectionBase.prototype.remove = function (entry, max) {\n if (max === void 0) { max = Infinity; }\n var _ = this;\n _.assertModifiable();\n _._updateRecursion++;\n var n;\n try {\n if (n = _._removeInternal(entry, max))\n _._modifiedCount++;\n }\n finally {\n _._updateRecursion--;\n }\n _._signalModification();\n return n;\n };\n CollectionBase.prototype.clear = function () {\n var _ = this;\n _.assertModifiable();\n _._updateRecursion++;\n var n;\n try {\n if (n = _._clearInternal())\n _._modifiedCount++;\n }\n finally {\n _._updateRecursion--;\n }\n _._signalModification();\n return n;\n };\n CollectionBase.prototype._onDispose = function () {\n _super.prototype._onDispose.call(this);\n this._clearInternal();\n this._version = 0;\n this._updateRecursion = 0;\n this._modifiedCount = 0;\n };\n CollectionBase.prototype._importEntries = function (entries) {\n var _this = this;\n var added = 0;\n if (entries) {\n if (Array.isArray(entries)) {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var e = entries_1[_i];\n if (this._addInternal(e))\n added++;\n }\n }\n else {\n Enumerator_1.forEach(entries, function (e) {\n if (_this._addInternal(e))\n added++;\n });\n }\n }\n return added;\n };\n CollectionBase.prototype.importEntries = function (entries) {\n var _ = this;\n _.assertModifiable();\n _._updateRecursion++;\n var n;\n try {\n if (n = _._importEntries(entries))\n _._modifiedCount++;\n }\n finally {\n _._updateRecursion--;\n }\n _._signalModification();\n return n;\n };\n CollectionBase.prototype.contains = function (entry) {\n if (!this.getCount())\n return false;\n var found = false, equals = this._equalityComparer;\n this.forEach(function (e) { return !(found = equals(entry, e)); });\n return found;\n };\n CollectionBase.prototype.forEach = function (action, useCopy) {\n if (useCopy) {\n var a = this.toArray();\n Enumerator_1.forEach(a, action);\n a.length = 0;\n }\n else {\n Enumerator_1.forEach(this.getEnumerator(), action);\n }\n };\n CollectionBase.prototype.copyTo = function (target, index) {\n if (index === void 0) { index = 0; }\n if (!target)\n throw new ArgumentNullException_1.default('target');\n var count = this.getCount(), newLength = count + index;\n if (target.length < newLength)\n target.length = newLength;\n var e = this.getEnumerator();\n while (e.moveNext()) {\n target[index++] = e.current;\n }\n return target;\n };\n CollectionBase.prototype.toArray = function () {\n var count = this.getCount();\n return this.copyTo(count > 65536 ? new Array(count) : []);\n };\n return CollectionBase;\n }(DisposableBase_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = CollectionBase;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\nimport {forEach} from \"./Enumeration/Enumerator\";\r\nimport {areEqual} from \"../Compare\";\r\nimport ArgumentNullException from \"../Exceptions/ArgumentNullException\";\r\nimport InvalidOperationException from \"../Exceptions/InvalidOperationException\";\r\nimport DisposableBase from \"../Disposable/DisposableBase\";\r\n\r\n//noinspection SpellCheckingInspection\r\nconst NAME = \"CollectionBase\",\r\n CMDC = \"Cannot modify a disposed collection.\",\r\n CMRO = \"Cannot modify a read-only collection.\";\r\n\r\nabstract class CollectionBase\r\nextends DisposableBase implements ICollection, IEnumerateEach\r\n{\r\n\r\n\tconstructor(\r\n\t\tsource?:IEnumerableOrArray,\r\n\t\tprotected _equalityComparer:EqualityComparison = areEqual)\r\n\t{\r\n\t\tsuper();\r\n\t\tvar _ = this;\r\n\t\t_._disposableObjectName = NAME;\r\n\t\t_._importEntries(source);\r\n\t\t_._updateRecursion = 0;\r\n\t\t_._modifiedCount = 0;\r\n\t\t_._version = 0;\r\n\t}\r\n\r\n\r\n\tprotected abstract getCount():number;\r\n\r\n\tget count():number\r\n\t{\r\n\t\treturn this.getCount();\r\n\t}\r\n\r\n\tprotected getIsReadOnly():boolean\r\n\t{\r\n\t\treturn false;\r\n\t}\r\n\r\n\tget isReadOnly():boolean\r\n\t{\r\n\t\treturn this.getIsReadOnly();\r\n\t}\r\n\r\n\tprotected assertModifiable():void\r\n\t{\r\n\t\tthis.throwIfDisposed(CMDC);\r\n\t\tif(this.getIsReadOnly())\r\n\t\t\tthrow new InvalidOperationException(CMRO);\r\n\t}\r\n\r\n\tprotected _version:number; // Provides an easy means of tracking changes and invalidating enumerables.\r\n\tassertVersion(version:number):void\r\n\t{\r\n\t\tif(version!=this._version)\r\n\t\t\tthrow new InvalidOperationException(\"Collection was modified.\");\r\n\t}\r\n\r\n\t/*\r\n\t * Note: Avoid changing modified count by any means but ++;\r\n\t * If setting modified count by the result of a closure it may be a negative number or NaN and ruin the pattern.\r\n\t */\r\n\tprivate _modifiedCount:number;\r\n\tprivate _updateRecursion:number;\r\n\r\n\tprotected _onModified():void {}\r\n\r\n\tprotected _signalModification(increment?:boolean):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(increment) _._modifiedCount++;\r\n\t\tif(_._modifiedCount && !this._updateRecursion)\r\n\t\t{\r\n\t\t\t_._modifiedCount = 0;\r\n\t\t\t_._version++;\r\n\t\t\ttry {\r\n\t\t\t\t_._onModified();\r\n\t\t\t} catch (ex) {\r\n\t\t\t\t// Avoid fatal errors which may have been caused by consumer.\r\n\t\t\t\tconsole.error(ex);\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tprotected _incrementModified():void { this._modifiedCount++; }\r\n\r\n\tget isUpdating():boolean { return this._updateRecursion!=0; }\r\n\r\n\t/**\r\n\t * Takes a closure that if returning true will propagate an update signal.\r\n\t * Multiple update operations can be occurring at once or recursively and the onModified signal will only occur once they're done.\r\n\t * @param closure\r\n\t * @returns {boolean}\r\n\t */\r\n\thandleUpdate(closure?:() => boolean):boolean\r\n\t{\r\n\t\tif(!closure) return false;\r\n\t\tvar _ = this;\r\n\t\t_.assertModifiable();\r\n\t\t_._updateRecursion++;\r\n\t\tvar updated:boolean = false;\r\n\r\n\t\ttry\r\n\t\t{\r\n\t\t\tif(updated = closure())\r\n\t\t\t\t_._modifiedCount++;\r\n\t\t}\r\n\t\tfinally\r\n\t\t{\r\n\t\t\t_._updateRecursion--;\r\n\t\t}\r\n\r\n\t\t_._signalModification();\r\n\r\n\t\treturn updated;\r\n\t}\r\n\r\n\tprotected abstract _addInternal(entry:T):boolean;\r\n\r\n\t/*\r\n\t * Note: for a slight amount more code, we avoid creating functions/closures.\r\n\t * Calling handleUpdate is the correct pattern, but if possible avoid creating another function scope.\r\n\t */\r\n\r\n\tadd(entry:T):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.assertModifiable();\r\n\t\t_._updateRecursion++;\r\n\r\n\t\ttry\r\n\t\t{ if(_._addInternal(entry)) _._modifiedCount++; }\r\n\t\tfinally\r\n\t\t{ _._updateRecursion--; }\r\n\r\n\t\t_._signalModification();\r\n\t}\r\n\r\n\tprotected abstract _removeInternal(entry:T, max?:number):number;\r\n\r\n\tremove(entry:T, max:number = Infinity):number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.assertModifiable();\r\n\t\t_._updateRecursion++;\r\n\r\n\t\tvar n:number;\r\n\t\ttry\r\n\t\t{ if(n = _._removeInternal(entry, max)) _._modifiedCount++; }\r\n\t\tfinally\r\n\t\t{ _._updateRecursion--; }\r\n\r\n\t\t_._signalModification();\r\n\t\treturn n;\r\n\t}\r\n\r\n\tprotected abstract _clearInternal():number;\r\n\r\n\tclear():number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.assertModifiable();\r\n\t\t_._updateRecursion++;\r\n\r\n\t\tvar n:number;\r\n\t\ttry\r\n\t\t{ if(n = _._clearInternal()) _._modifiedCount++; }\r\n\t\tfinally\r\n\t\t{ _._updateRecursion--; }\r\n\r\n\t\t_._signalModification();\r\n\r\n\t\treturn n;\r\n\t}\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis._clearInternal();\r\n\t\tthis._version = 0;\r\n\t\tthis._updateRecursion = 0;\r\n\t\tthis._modifiedCount = 0;\r\n\t}\r\n\r\n\tprotected _importEntries(entries:IEnumerableOrArray):number\r\n\t{\r\n\t\tvar added = 0;\r\n\t\tif(entries)\r\n\t\t{\r\n\t\t\tif(Array.isArray(entries))\r\n\t\t\t{\r\n\t\t\t\t// Optimize for avoiding a new closure.\r\n\t\t\t\tfor(let e of entries)\r\n\t\t\t\t{\r\n\t\t\t\t\tif(this._addInternal(e)) added++;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tforEach(entries, e=>\r\n\t\t\t\t{\r\n\t\t\t\t\tif(this._addInternal(e)) added++;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn added;\r\n\t}\r\n\r\n\timportEntries(entries:IEnumerableOrArray):number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.assertModifiable();\r\n\t\t_._updateRecursion++;\r\n\r\n\t\tvar n:number;\r\n\t\ttry\r\n\t\t{ if(n = _._importEntries(entries)) _._modifiedCount++; }\r\n\t\tfinally\r\n\t\t{ _._updateRecursion--; }\r\n\r\n\t\t_._signalModification();\r\n\t\treturn n;\r\n\t}\r\n\r\n\t// Fundamentally the most important part of the collection.\r\n\tabstract getEnumerator():IEnumerator;\r\n\r\n\tcontains(entry:T):boolean\r\n\t{\r\n\t\tif(!this.getCount()) return false;\r\n\t\tvar found:boolean = false, equals = this._equalityComparer;\r\n\t\tthis.forEach(e => !(found = equals(entry, e)));\r\n\t\treturn found;\r\n\t}\r\n\r\n\tforEach(action:Predicate|Action, useCopy?:boolean):void\r\n\t{\r\n\t\tif(useCopy)\r\n\t\t{\r\n\t\t\tvar a = this.toArray();\r\n\t\t\tforEach(a, action);\r\n\t\t\ta.length = 0;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tforEach(this.getEnumerator(), action);\r\n\t\t}\r\n\t}\r\n\r\n\tcopyTo>(\r\n\t\ttarget:TTarget,\r\n\t\tindex:number = 0):TTarget\r\n\t{\r\n\t\tif(!target) throw new ArgumentNullException('target');\r\n\r\n\t\tvar count = this.getCount(), newLength = count + index;\r\n\t\tif(target.length65536 ? new Array(count) : []);\r\n\t}\r\n\r\n\r\n}\r\n\r\nexport default CollectionBase;"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/CollectionBase.js","System/Collections/CollectionBase.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","Enumerator_1","Compare_1","ArgumentNullException_1","InvalidOperationException_1","DisposableBase_1","NAME","CMDC","CMRO","CollectionBase","_super","source","_equalityComparer","areEqual","call","_","_disposableObjectName","_importEntries","_updateRecursion","_modifiedCount","_version","defineProperty","get","getCount","enumerable","configurable","getIsReadOnly","assertModifiable","throwIfDisposed","InvalidOperationException","assertVersion","version","_onModified","_signalModification","increment","ex","console","error","_incrementModified","handleUpdate","closure","updated","add","entry","_addInternal","remove","max","Infinity","n","_removeInternal","clear","_clearInternal","_onDispose","entries","_this","added","Array","isArray","_i","entries_1","length","e","forEach","importEntries","contains","found","equals","action","useCopy","a","toArray","getEnumerator","copyTo","target","index","ArgumentNullException","count","newLength","moveNext","current","DisposableBase","value"],"mappings":"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","file":"System/Collections/CollectionBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"./Enumeration/Enumerator\", \"../Compare\", \"../Exceptions/ArgumentNullException\", \"../Exceptions/InvalidOperationException\", \"../Disposable/DisposableBase\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var Enumerator_1 = require(\"./Enumeration/Enumerator\");\n var Compare_1 = require(\"../Compare\");\n var ArgumentNullException_1 = require(\"../Exceptions/ArgumentNullException\");\n var InvalidOperationException_1 = require(\"../Exceptions/InvalidOperationException\");\n var DisposableBase_1 = require(\"../Disposable/DisposableBase\");\n var NAME = \"CollectionBase\", CMDC = \"Cannot modify a disposed collection.\", CMRO = \"Cannot modify a read-only collection.\";\n var CollectionBase = (function (_super) {\n __extends(CollectionBase, _super);\n function CollectionBase(source, _equalityComparer) {\n if (_equalityComparer === void 0) { _equalityComparer = Compare_1.areEqual; }\n _super.call(this);\n this._equalityComparer = _equalityComparer;\n var _ = this;\n _._disposableObjectName = NAME;\n _._importEntries(source);\n _._updateRecursion = 0;\n _._modifiedCount = 0;\n _._version = 0;\n }\n Object.defineProperty(CollectionBase.prototype, \"count\", {\n get: function () {\n return this.getCount();\n },\n enumerable: true,\n configurable: true\n });\n CollectionBase.prototype.getIsReadOnly = function () {\n return false;\n };\n Object.defineProperty(CollectionBase.prototype, \"isReadOnly\", {\n get: function () {\n return this.getIsReadOnly();\n },\n enumerable: true,\n configurable: true\n });\n CollectionBase.prototype.assertModifiable = function () {\n this.throwIfDisposed(CMDC);\n if (this.getIsReadOnly())\n throw new InvalidOperationException_1.InvalidOperationException(CMRO);\n };\n CollectionBase.prototype.assertVersion = function (version) {\n if (version != this._version)\n throw new InvalidOperationException_1.InvalidOperationException(\"Collection was modified.\");\n };\n CollectionBase.prototype._onModified = function () { };\n CollectionBase.prototype._signalModification = function (increment) {\n var _ = this;\n if (increment)\n _._modifiedCount++;\n if (_._modifiedCount && !this._updateRecursion) {\n _._modifiedCount = 0;\n _._version++;\n try {\n _._onModified();\n }\n catch (ex) {\n console.error(ex);\n }\n return true;\n }\n return false;\n };\n CollectionBase.prototype._incrementModified = function () { this._modifiedCount++; };\n Object.defineProperty(CollectionBase.prototype, \"isUpdating\", {\n get: function () { return this._updateRecursion != 0; },\n enumerable: true,\n configurable: true\n });\n CollectionBase.prototype.handleUpdate = function (closure) {\n if (!closure)\n return false;\n var _ = this;\n _.assertModifiable();\n _._updateRecursion++;\n var updated = false;\n try {\n if (updated = closure())\n _._modifiedCount++;\n }\n finally {\n _._updateRecursion--;\n }\n _._signalModification();\n return updated;\n };\n CollectionBase.prototype.add = function (entry) {\n var _ = this;\n _.assertModifiable();\n _._updateRecursion++;\n try {\n if (_._addInternal(entry))\n _._modifiedCount++;\n }\n finally {\n _._updateRecursion--;\n }\n _._signalModification();\n };\n CollectionBase.prototype.remove = function (entry, max) {\n if (max === void 0) { max = Infinity; }\n var _ = this;\n _.assertModifiable();\n _._updateRecursion++;\n var n;\n try {\n if (n = _._removeInternal(entry, max))\n _._modifiedCount++;\n }\n finally {\n _._updateRecursion--;\n }\n _._signalModification();\n return n;\n };\n CollectionBase.prototype.clear = function () {\n var _ = this;\n _.assertModifiable();\n _._updateRecursion++;\n var n;\n try {\n if (n = _._clearInternal())\n _._modifiedCount++;\n }\n finally {\n _._updateRecursion--;\n }\n _._signalModification();\n return n;\n };\n CollectionBase.prototype._onDispose = function () {\n _super.prototype._onDispose.call(this);\n this._clearInternal();\n this._version = 0;\n this._updateRecursion = 0;\n this._modifiedCount = 0;\n };\n CollectionBase.prototype._importEntries = function (entries) {\n var _this = this;\n var added = 0;\n if (entries) {\n if (Array.isArray(entries)) {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var e = entries_1[_i];\n if (this._addInternal(e))\n added++;\n }\n }\n else {\n Enumerator_1.forEach(entries, function (e) {\n if (_this._addInternal(e))\n added++;\n });\n }\n }\n return added;\n };\n CollectionBase.prototype.importEntries = function (entries) {\n var _ = this;\n _.assertModifiable();\n _._updateRecursion++;\n var n;\n try {\n if (n = _._importEntries(entries))\n _._modifiedCount++;\n }\n finally {\n _._updateRecursion--;\n }\n _._signalModification();\n return n;\n };\n CollectionBase.prototype.contains = function (entry) {\n if (!this.getCount())\n return false;\n var found = false, equals = this._equalityComparer;\n this.forEach(function (e) { return !(found = equals(entry, e)); });\n return found;\n };\n CollectionBase.prototype.forEach = function (action, useCopy) {\n if (useCopy) {\n var a = this.toArray();\n Enumerator_1.forEach(a, action);\n a.length = 0;\n }\n else {\n Enumerator_1.forEach(this.getEnumerator(), action);\n }\n };\n CollectionBase.prototype.copyTo = function (target, index) {\n if (index === void 0) { index = 0; }\n if (!target)\n throw new ArgumentNullException_1.ArgumentNullException('target');\n var count = this.getCount(), newLength = count + index;\n if (target.length < newLength)\n target.length = newLength;\n var e = this.getEnumerator();\n while (e.moveNext()) {\n target[index++] = e.current;\n }\n return target;\n };\n CollectionBase.prototype.toArray = function () {\n var count = this.getCount();\n return this.copyTo(count > 65536 ? new Array(count) : []);\n };\n return CollectionBase;\n }(DisposableBase_1.DisposableBase));\n exports.CollectionBase = CollectionBase;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = CollectionBase;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {forEach} from \"./Enumeration/Enumerator\";\r\nimport {areEqual} from \"../Compare\";\r\nimport {ArgumentNullException} from \"../Exceptions/ArgumentNullException\";\r\nimport {InvalidOperationException} from \"../Exceptions/InvalidOperationException\";\r\nimport {DisposableBase} from \"../Disposable/DisposableBase\";\r\nimport {ICollection} from \"./ICollection\";\r\nimport {IEnumerator} from \"./Enumeration/IEnumerator\";\r\nimport {IEnumerateEach} from \"./Enumeration/IEnumerateEach\";\r\nimport {EqualityComparison, Predicate, Action} from \"../FunctionTypes\";\r\nimport {IEnumerableOrArray} from \"./IEnumerableOrArray\";\r\nimport {IArray} from \"./Array/IArray\";\r\n\r\n//noinspection SpellCheckingInspection\r\nconst NAME = \"CollectionBase\",\r\n CMDC = \"Cannot modify a disposed collection.\",\r\n CMRO = \"Cannot modify a read-only collection.\";\r\n\r\nexport abstract class CollectionBase\r\nextends DisposableBase implements ICollection, IEnumerateEach\r\n{\r\n\r\n\tconstructor(\r\n\t\tsource?:IEnumerableOrArray,\r\n\t\tprotected _equalityComparer:EqualityComparison = areEqual)\r\n\t{\r\n\t\tsuper();\r\n\t\tvar _ = this;\r\n\t\t_._disposableObjectName = NAME;\r\n\t\t_._importEntries(source);\r\n\t\t_._updateRecursion = 0;\r\n\t\t_._modifiedCount = 0;\r\n\t\t_._version = 0;\r\n\t}\r\n\r\n\r\n\tprotected abstract getCount():number;\r\n\r\n\tget count():number\r\n\t{\r\n\t\treturn this.getCount();\r\n\t}\r\n\r\n\tprotected getIsReadOnly():boolean\r\n\t{\r\n\t\treturn false;\r\n\t}\r\n\r\n\tget isReadOnly():boolean\r\n\t{\r\n\t\treturn this.getIsReadOnly();\r\n\t}\r\n\r\n\tprotected assertModifiable():void\r\n\t{\r\n\t\tthis.throwIfDisposed(CMDC);\r\n\t\tif(this.getIsReadOnly())\r\n\t\t\tthrow new InvalidOperationException(CMRO);\r\n\t}\r\n\r\n\tprotected _version:number; // Provides an easy means of tracking changes and invalidating enumerables.\r\n\tassertVersion(version:number):void\r\n\t{\r\n\t\tif(version!=this._version)\r\n\t\t\tthrow new InvalidOperationException(\"Collection was modified.\");\r\n\t}\r\n\r\n\t/*\r\n\t * Note: Avoid changing modified count by any means but ++;\r\n\t * If setting modified count by the result of a closure it may be a negative number or NaN and ruin the pattern.\r\n\t */\r\n\tprivate _modifiedCount:number;\r\n\tprivate _updateRecursion:number;\r\n\r\n\tprotected _onModified():void {}\r\n\r\n\tprotected _signalModification(increment?:boolean):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(increment) _._modifiedCount++;\r\n\t\tif(_._modifiedCount && !this._updateRecursion)\r\n\t\t{\r\n\t\t\t_._modifiedCount = 0;\r\n\t\t\t_._version++;\r\n\t\t\ttry\r\n\t\t\t{\r\n\t\t\t\t_._onModified();\r\n\t\t\t}\r\n\t\t\tcatch(ex)\r\n\t\t\t{\r\n\t\t\t\t// Avoid fatal errors which may have been caused by consumer.\r\n\t\t\t\tconsole.error(ex);\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tprotected _incrementModified():void { this._modifiedCount++; }\r\n\r\n\tget isUpdating():boolean { return this._updateRecursion!=0; }\r\n\r\n\t/**\r\n\t * Takes a closure that if returning true will propagate an update signal.\r\n\t * Multiple update operations can be occurring at once or recursively and the onModified signal will only occur once they're done.\r\n\t * @param closure\r\n\t * @returns {boolean}\r\n\t */\r\n\thandleUpdate(closure?:() => boolean):boolean\r\n\t{\r\n\t\tif(!closure) return false;\r\n\t\tvar _ = this;\r\n\t\t_.assertModifiable();\r\n\t\t_._updateRecursion++;\r\n\t\tvar updated:boolean = false;\r\n\r\n\t\ttry\r\n\t\t{\r\n\t\t\tif(updated = closure())\r\n\t\t\t\t_._modifiedCount++;\r\n\t\t}\r\n\t\tfinally\r\n\t\t{\r\n\t\t\t_._updateRecursion--;\r\n\t\t}\r\n\r\n\t\t_._signalModification();\r\n\r\n\t\treturn updated;\r\n\t}\r\n\r\n\tprotected abstract _addInternal(entry:T):boolean;\r\n\r\n\t/*\r\n\t * Note: for a slight amount more code, we avoid creating functions/closures.\r\n\t * Calling handleUpdate is the correct pattern, but if possible avoid creating another function scope.\r\n\t */\r\n\r\n\tadd(entry:T):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.assertModifiable();\r\n\t\t_._updateRecursion++;\r\n\r\n\t\ttry\r\n\t\t{ if(_._addInternal(entry)) _._modifiedCount++; }\r\n\t\tfinally\r\n\t\t{ _._updateRecursion--; }\r\n\r\n\t\t_._signalModification();\r\n\t}\r\n\r\n\tprotected abstract _removeInternal(entry:T, max?:number):number;\r\n\r\n\tremove(entry:T, max:number = Infinity):number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.assertModifiable();\r\n\t\t_._updateRecursion++;\r\n\r\n\t\tvar n:number;\r\n\t\ttry\r\n\t\t{ if(n = _._removeInternal(entry, max)) _._modifiedCount++; }\r\n\t\tfinally\r\n\t\t{ _._updateRecursion--; }\r\n\r\n\t\t_._signalModification();\r\n\t\treturn n;\r\n\t}\r\n\r\n\tprotected abstract _clearInternal():number;\r\n\r\n\tclear():number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.assertModifiable();\r\n\t\t_._updateRecursion++;\r\n\r\n\t\tvar n:number;\r\n\t\ttry\r\n\t\t{ if(n = _._clearInternal()) _._modifiedCount++; }\r\n\t\tfinally\r\n\t\t{ _._updateRecursion--; }\r\n\r\n\t\t_._signalModification();\r\n\r\n\t\treturn n;\r\n\t}\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis._clearInternal();\r\n\t\tthis._version = 0;\r\n\t\tthis._updateRecursion = 0;\r\n\t\tthis._modifiedCount = 0;\r\n\t}\r\n\r\n\tprotected _importEntries(entries:IEnumerableOrArray):number\r\n\t{\r\n\t\tvar added = 0;\r\n\t\tif(entries)\r\n\t\t{\r\n\t\t\tif(Array.isArray(entries))\r\n\t\t\t{\r\n\t\t\t\t// Optimize for avoiding a new closure.\r\n\t\t\t\tfor(let e of entries)\r\n\t\t\t\t{\r\n\t\t\t\t\tif(this._addInternal(e)) added++;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tforEach(entries, e=>\r\n\t\t\t\t{\r\n\t\t\t\t\tif(this._addInternal(e)) added++;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn added;\r\n\t}\r\n\r\n\timportEntries(entries:IEnumerableOrArray):number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.assertModifiable();\r\n\t\t_._updateRecursion++;\r\n\r\n\t\tvar n:number;\r\n\t\ttry\r\n\t\t{ if(n = _._importEntries(entries)) _._modifiedCount++; }\r\n\t\tfinally\r\n\t\t{ _._updateRecursion--; }\r\n\r\n\t\t_._signalModification();\r\n\t\treturn n;\r\n\t}\r\n\r\n\t// Fundamentally the most important part of the collection.\r\n\tabstract getEnumerator():IEnumerator;\r\n\r\n\tcontains(entry:T):boolean\r\n\t{\r\n\t\tif(!this.getCount()) return false;\r\n\t\tvar found:boolean = false, equals = this._equalityComparer;\r\n\t\tthis.forEach(e => !(found = equals(entry, e)));\r\n\t\treturn found;\r\n\t}\r\n\r\n\tforEach(action:Predicate|Action, useCopy?:boolean):void\r\n\t{\r\n\t\tif(useCopy)\r\n\t\t{\r\n\t\t\tvar a = this.toArray();\r\n\t\t\tforEach(a, action);\r\n\t\t\ta.length = 0;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tforEach(this.getEnumerator(), action);\r\n\t\t}\r\n\t}\r\n\r\n\tcopyTo>(\r\n\t\ttarget:TTarget,\r\n\t\tindex:number = 0):TTarget\r\n\t{\r\n\t\tif(!target) throw new ArgumentNullException('target');\r\n\r\n\t\tvar count = this.getCount(), newLength = count + index;\r\n\t\tif(target.length65536 ? new Array(count) : []);\r\n\t}\r\n\r\n\r\n}\r\n\r\nexport default CollectionBase;"]} \ No newline at end of file diff --git a/dist/umd.min/System/Collections/Dictionaries/Dictionary.d.ts b/dist/umd.min/System/Collections/Dictionaries/Dictionary.d.ts index 8ce9d526..990f04d1 100644 --- a/dist/umd.min/System/Collections/Dictionaries/Dictionary.d.ts +++ b/dist/umd.min/System/Collections/Dictionaries/Dictionary.d.ts @@ -1,14 +1,16 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Original: http://linqjs.codeplex.com/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { IKeyValuePair } from "../../KeyValuePair"; +import { IEnumerator } from "../Enumeration/IEnumerator"; +import { ILinkedNode } from "../ILinkedListNode"; +import { Selector } from "../../FunctionTypes"; import DictionaryBase from "./DictionaryBase"; export interface IHashEntry extends ILinkedNode>, IKeyValuePair { } -export default class Dictionary extends DictionaryBase { +export declare class Dictionary extends DictionaryBase { private _keyComparer; private _entries; private _buckets; @@ -24,3 +26,4 @@ export default class Dictionary extends DictionaryBase\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport {areEqual} from \"../../Compare\";\r\nimport Type from \"../../Types\";\r\nimport Functions from \"../../Functions\";\r\nimport DictionaryBase from \"./DictionaryBase\";\r\nimport EnumeratorBase from \"../Enumeration/EnumeratorBase\";\r\nimport LinkedNodeList from \"../LinkedNodeList\";\r\nimport ObjectPool from \"../../Disposable/ObjectPool\";\r\n\r\nconst VOID0:any = void 0;\r\n\r\n\r\nexport interface IHashEntry\r\nextends ILinkedNode>, IKeyValuePair {\r\n\r\n}\r\n// LinkedList for Dictionary\r\nclass HashEntry\r\nimplements IHashEntry\r\n{\r\n\tconstructor(\r\n\t\tpublic key?:TKey,\r\n\t\tpublic value?:TValue,\r\n\t\tpublic previous?:IHashEntry,\r\n\t\tpublic next?:IHashEntry)\r\n\t{ }\r\n}\r\n\r\n\r\nvar linkedListPool:ObjectPool>;\r\nfunction linkedNodeList():LinkedNodeList;\r\nfunction linkedNodeList(recycle?:LinkedNodeList):void;\r\nfunction linkedNodeList(recycle?:LinkedNodeList):LinkedNodeList {\r\n\tif(!linkedListPool)\r\n\t\tlinkedListPool\r\n\t\t\t= new ObjectPool>(20,()=>new LinkedNodeList());\r\n\tif(!recycle) return linkedListPool.take();\r\n\trecycle.clear();\r\n\tlinkedListPool.add(recycle);\r\n}\r\n\r\n// static utility methods\r\nfunction callHasOwnProperty(target:any, key:string)\r\n{\r\n\treturn Object.prototype.hasOwnProperty.call(target, key);\r\n}\r\n\r\nconst NULL = \"null\", GET_HASH_CODE = \"getHashCode\";\r\nfunction getHashString(obj:any):string\r\n{\r\n\tif(obj===null) return NULL;\r\n\tif(obj===VOID0) return Type.UNDEFINED;\r\n\r\n\t// See IHashable.\r\n\tif(Type.hasMemberOfType(obj, GET_HASH_CODE, Type.FUNCTION))\r\n\t{\r\n\t\treturn obj.getHashCode();\r\n\t}\r\n\r\n\treturn (typeof obj.toString==Type.FUNCTION)\r\n\t\t? obj.toString()\r\n\t\t: Object.prototype.toString.call(obj);\r\n}\r\n\r\n\r\nexport default\r\nclass Dictionary extends DictionaryBase\r\n{\r\n\t// Retains the order...\r\n\tprivate _entries:LinkedNodeList>;\r\n\tprivate _buckets:IMap>>>;\r\n\r\n\tconstructor(\r\n\t\tprivate _keyComparer:Selector = Functions.Identity)\r\n\t{\r\n\t\tsuper();\r\n\t\tthis._entries = linkedNodeList();\r\n\t\tthis._buckets = {};\r\n\t}\r\n\r\n\tprotected getCount():number\r\n\t{\r\n\t\treturn this._entries.unsafeCount;\r\n\t}\r\n\r\n\r\n\tprivate _getBucket(\r\n\t\thash:string,\r\n\t\tcreateIfMissing?:boolean):LinkedNodeList>>\r\n\t{\r\n\t\tif(hash===null || hash===VOID0 || !createIfMissing && !this.getCount())\r\n\t\t\treturn null;\r\n\r\n\t\tvar buckets = this._buckets;\r\n\t\tvar bucket = callHasOwnProperty(buckets, hash) ? buckets[hash] : VOID0;\r\n\r\n\t\tif(createIfMissing && !bucket)\r\n\t\t\tbuckets[hash]\r\n\t\t\t\t= bucket\r\n\t\t\t\t= linkedNodeList();\r\n\r\n\t\treturn bucket;\r\n\t}\r\n\r\n\tprivate _getBucketEntry(\r\n\t\tkey:TKey,\r\n\t\thash?:string,\r\n\t\tbucket?:LinkedNodeList>>):IHashEntry>\r\n\t{\r\n\t\tif(key===null || key===VOID0 || !this.getCount())\r\n\t\t\treturn null;\r\n\r\n\t\tvar _ = this,\r\n\t\t comparer = _._keyComparer,\r\n\t\t compareKey = comparer(key);\r\n\r\n\t\tif(!bucket) bucket = _._getBucket(hash || getHashString(compareKey));\r\n\r\n\t\treturn bucket && bucket\r\n\t\t\t\t.find(e=>comparer(e.key)===compareKey);\r\n\t}\r\n\r\n\tprotected _getEntry(key:TKey):IHashEntry\r\n\t{\r\n\t\tvar e = this._getBucketEntry(key);\r\n\t\treturn e && e.value;\r\n\t}\r\n\r\n\tgetValue(key:TKey):TValue\r\n\t{\r\n\t\tvar e = this._getEntry(key);\r\n\t\treturn e ? e.value : VOID0;\r\n\t}\r\n\r\n\tprotected _setValueInternal(key:TKey, value:TValue):boolean\r\n\t{\r\n\t\tvar _ = this,\r\n\t\t buckets = _._buckets,\r\n\t\t entries = _._entries,\r\n\t\t comparer = _._keyComparer,\r\n\t\t compareKey = comparer(key),\r\n\t\t hash = getHashString(compareKey),\r\n\t\t bucket = _._getBucket(hash),\r\n\t\t bucketEntry = bucket && _._getBucketEntry(key, hash, bucket);\r\n\r\n\t\t// Entry exits? Delete or update\r\n\t\tif(bucketEntry)\r\n\t\t{\r\n\t\t\tif(value===VOID0)\r\n\t\t\t{\r\n\t\t\t\tlet x = bucket.removeNode(bucketEntry),\r\n\t\t\t\t y = entries.removeNode(bucketEntry.value);\r\n\r\n\t\t\t\tif(x && !bucket.count) {\r\n\t\t\t\t\tdelete buckets[hash];\r\n\t\t\t\t\tlinkedNodeList(bucket);\r\n\t\t\t\t\tbucket = null;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(x!==y) throw \"Entries and buckets are out of sync.\";\r\n\r\n\t\t\t\tif(x) return true;\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\t// We don't expose the internal hash entries so replacing the value is ok.\r\n\t\t\t\tvar old = bucketEntry.value.value;\r\n\t\t\t\tbucketEntry.value.value = value;\r\n\t\t\t\treturn !areEqual(value, old);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\telse if(value!==VOID0)\r\n\t\t{\r\n\t\t\tif(!bucket) bucket = _._getBucket(hash, true);\r\n\t\t\tlet entry = new HashEntry(key, value);\r\n\t\t\tentries.addNode(entry);\r\n\t\t\tbucket.addNode(new HashEntry(key, entry));\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\tprotected _clearInternal():number\r\n\t{\r\n\t\tvar _ = this, buckets = _._buckets;\r\n\r\n\t\t// Ensure reset and clean...\r\n\t\tfor(let key in buckets)\r\n\t\t{\r\n\t\t\tif(buckets.hasOwnProperty(key))\r\n\t\t\t{\r\n\t\t\t\tlet bucket = buckets[key];\r\n\t\t\t\tdelete buckets[key];\r\n\t\t\t\tlinkedNodeList(bucket);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn _._entries.clear();\r\n\t}\r\n\r\n\t/*\r\n\t * Note: super.getEnumerator() works perfectly well,\r\n\t * but enumerating the internal linked node list is much more efficient.\r\n\t */\r\n\tgetEnumerator():IEnumerator>\r\n\t{\r\n\t\tvar _ = this, ver:number, currentEntry:IHashEntry;\r\n\r\n\t\treturn new EnumeratorBase>(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tver = _._version;\r\n\t\t\t\tcurrentEntry = _._entries.first;\r\n\t\t\t},\r\n\t\t\t(yielder) =>\r\n\t\t\t{\r\n\t\t\t\tif(currentEntry!=null)\r\n\t\t\t\t{\r\n\t\t\t\t\t_.assertVersion(ver);\r\n\t\t\t\t\tvar result = {key: currentEntry.key, value: currentEntry.value};\r\n\t\t\t\t\tcurrentEntry = currentEntry.next;\r\n\t\t\t\t\treturn yielder.yieldReturn(result);\r\n\t\t\t\t}\r\n\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tprotected getKeys():TKey[]\r\n\t{\r\n\t\tvar _ = this, result:TKey[] = [];\r\n\t\tvar e = _._entries.first;\r\n\t\twhile(e)\r\n\t\t{\r\n\t\t\tresult.push(e.key);\r\n\t\t\te = e.next;\r\n\t\t}\r\n\t\treturn result;\r\n\t}\r\n\r\n\tprotected getValues():TValue[]\r\n\t{\r\n\t\tvar _ = this, result:TValue[] = [];\r\n\t\tvar e = _._entries.first;\r\n\t\twhile(e)\r\n\t\t{\r\n\t\t\tresult.push(e.value);\r\n\t\t\te = e.next;\r\n\t\t}\r\n\t\treturn result;\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Dictionaries/Dictionary.js","System/Collections/Dictionaries/Dictionary.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","linkedNodeList","recycle","linkedListPool","ObjectPool_1","ObjectPool","LinkedNodeList_1","LinkedNodeList","clear","add","take","callHasOwnProperty","target","key","call","getHashString","obj","NULL","VOID0","Types_1","Type","UNDEFINED","hasMemberOfType","GET_HASH_CODE","FUNCTION","getHashCode","toString","Compare_1","Functions_1","EnumeratorBase_1","DictionaryBase_1","HashEntry","value","previous","next","Dictionary","_super","_keyComparer","Functions","Identity","_entries","_buckets","getCount","unsafeCount","_getBucket","hash","createIfMissing","buckets","bucket","_getBucketEntry","_","comparer","compareKey","find","e","_getEntry","getValue","_setValueInternal","entries","bucketEntry","old","areEqual","x","removeNode","y","count","entry","addNode","_clearInternal","getEnumerator","ver","currentEntry","EnumeratorBase","_version","first","yielder","assertVersion","result","yieldReturn","yieldBreak","getKeys","push","getValues","defineProperty"],"mappings":"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","file":"System/Collections/Dictionaries/Dictionary.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Original: http://linqjs.codeplex.com/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../../Compare\", \"../../Types\", \"../../Functions\", \"../Enumeration/EnumeratorBase\", \"../LinkedNodeList\", \"../../Disposable/ObjectPool\", \"./DictionaryBase\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var Compare_1 = require(\"../../Compare\");\n var Types_1 = require(\"../../Types\");\n var Functions_1 = require(\"../../Functions\");\n var EnumeratorBase_1 = require(\"../Enumeration/EnumeratorBase\");\n var LinkedNodeList_1 = require(\"../LinkedNodeList\");\n var ObjectPool_1 = require(\"../../Disposable/ObjectPool\");\n var DictionaryBase_1 = require(\"./DictionaryBase\");\n var VOID0 = void 0;\n var HashEntry = (function () {\n function HashEntry(key, value, previous, next) {\n this.key = key;\n this.value = value;\n this.previous = previous;\n this.next = next;\n }\n return HashEntry;\n }());\n var linkedListPool;\n function linkedNodeList(recycle) {\n if (!linkedListPool)\n linkedListPool\n = new ObjectPool_1.ObjectPool(20, function () { return new LinkedNodeList_1.LinkedNodeList(); });\n if (!recycle)\n return linkedListPool.take();\n recycle.clear();\n linkedListPool.add(recycle);\n }\n function callHasOwnProperty(target, key) {\n return Object.prototype.hasOwnProperty.call(target, key);\n }\n var NULL = \"null\", GET_HASH_CODE = \"getHashCode\";\n function getHashString(obj) {\n if (obj === null)\n return NULL;\n if (obj === VOID0)\n return Types_1.Type.UNDEFINED;\n if (Types_1.Type.hasMemberOfType(obj, GET_HASH_CODE, Types_1.Type.FUNCTION)) {\n return obj.getHashCode();\n }\n return (typeof obj.toString == Types_1.Type.FUNCTION)\n ? obj.toString()\n : Object.prototype.toString.call(obj);\n }\n var Dictionary = (function (_super) {\n __extends(Dictionary, _super);\n function Dictionary(_keyComparer) {\n if (_keyComparer === void 0) { _keyComparer = Functions_1.Functions.Identity; }\n _super.call(this);\n this._keyComparer = _keyComparer;\n this._entries = linkedNodeList();\n this._buckets = {};\n }\n Dictionary.prototype.getCount = function () {\n return this._entries.unsafeCount;\n };\n Dictionary.prototype._getBucket = function (hash, createIfMissing) {\n if (hash === null || hash === VOID0 || !createIfMissing && !this.getCount())\n return null;\n var buckets = this._buckets;\n var bucket = callHasOwnProperty(buckets, hash) ? buckets[hash] : VOID0;\n if (createIfMissing && !bucket)\n buckets[hash]\n = bucket\n = linkedNodeList();\n return bucket;\n };\n Dictionary.prototype._getBucketEntry = function (key, hash, bucket) {\n if (key === null || key === VOID0 || !this.getCount())\n return null;\n var _ = this, comparer = _._keyComparer, compareKey = comparer(key);\n if (!bucket)\n bucket = _._getBucket(hash || getHashString(compareKey));\n return bucket && bucket\n .find(function (e) { return comparer(e.key) === compareKey; });\n };\n Dictionary.prototype._getEntry = function (key) {\n var e = this._getBucketEntry(key);\n return e && e.value;\n };\n Dictionary.prototype.getValue = function (key) {\n var e = this._getEntry(key);\n return e ? e.value : VOID0;\n };\n Dictionary.prototype._setValueInternal = function (key, value) {\n var _ = this, buckets = _._buckets, entries = _._entries, comparer = _._keyComparer, compareKey = comparer(key), hash = getHashString(compareKey), bucket = _._getBucket(hash), bucketEntry = bucket && _._getBucketEntry(key, hash, bucket);\n if (bucketEntry) {\n if (value === VOID0) {\n var x = bucket.removeNode(bucketEntry), y = entries.removeNode(bucketEntry.value);\n if (x && !bucket.count) {\n delete buckets[hash];\n linkedNodeList(bucket);\n bucket = null;\n }\n if (x !== y)\n throw \"Entries and buckets are out of sync.\";\n if (x)\n return true;\n }\n else {\n var old = bucketEntry.value.value;\n bucketEntry.value.value = value;\n return !Compare_1.areEqual(value, old);\n }\n }\n else if (value !== VOID0) {\n if (!bucket)\n bucket = _._getBucket(hash, true);\n var entry = new HashEntry(key, value);\n entries.addNode(entry);\n bucket.addNode(new HashEntry(key, entry));\n return true;\n }\n return false;\n };\n Dictionary.prototype._clearInternal = function () {\n var _ = this, buckets = _._buckets;\n for (var key in buckets) {\n if (buckets.hasOwnProperty(key)) {\n var bucket = buckets[key];\n delete buckets[key];\n linkedNodeList(bucket);\n }\n }\n return _._entries.clear();\n };\n Dictionary.prototype.getEnumerator = function () {\n var _ = this, ver, currentEntry;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n ver = _._version;\n currentEntry = _._entries.first;\n }, function (yielder) {\n if (currentEntry != null) {\n _.assertVersion(ver);\n var result = { key: currentEntry.key, value: currentEntry.value };\n currentEntry = currentEntry.next;\n return yielder.yieldReturn(result);\n }\n return yielder.yieldBreak();\n });\n };\n Dictionary.prototype.getKeys = function () {\n var _ = this, result = [];\n var e = _._entries.first;\n while (e) {\n result.push(e.key);\n e = e.next;\n }\n return result;\n };\n Dictionary.prototype.getValues = function () {\n var _ = this, result = [];\n var e = _._entries.first;\n while (e) {\n result.push(e.value);\n e = e.next;\n }\n return result;\n };\n return Dictionary;\n }(DictionaryBase_1.default));\n exports.Dictionary = Dictionary;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Dictionary;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Original: http://linqjs.codeplex.com/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {areEqual} from \"../../Compare\";\r\nimport {Type} from \"../../Types\";\r\nimport {Functions} from \"../../Functions\";\r\nimport {EnumeratorBase} from \"../Enumeration/EnumeratorBase\";\r\nimport {LinkedNodeList} from \"../LinkedNodeList\";\r\nimport {ObjectPool} from \"../../Disposable/ObjectPool\";\r\nimport {IMap} from \"./IDictionary\";\r\nimport {IKeyValuePair} from \"../../KeyValuePair\";\r\nimport {IEnumerator} from \"../Enumeration/IEnumerator\";\r\nimport {ILinkedNode} from \"../ILinkedListNode\";\r\nimport {Selector} from \"../../FunctionTypes\";\r\nimport DictionaryBase from \"./DictionaryBase\";\r\n\r\nconst VOID0:any = void 0;\r\n\r\n\r\nexport interface IHashEntry\r\nextends ILinkedNode>, IKeyValuePair\r\n{\r\n\r\n}\r\n// LinkedList for Dictionary\r\nclass HashEntry\r\nimplements IHashEntry\r\n{\r\n\tconstructor(\r\n\t\tpublic key?:TKey,\r\n\t\tpublic value?:TValue,\r\n\t\tpublic previous?:IHashEntry,\r\n\t\tpublic next?:IHashEntry)\r\n\t{ }\r\n}\r\n\r\n\r\nvar linkedListPool:ObjectPool>;\r\nfunction linkedNodeList():LinkedNodeList;\r\nfunction linkedNodeList(recycle?:LinkedNodeList):void;\r\nfunction linkedNodeList(recycle?:LinkedNodeList):LinkedNodeList\r\n{\r\n\tif(!linkedListPool)\r\n\t\tlinkedListPool\r\n\t\t\t= new ObjectPool>(20, ()=>new LinkedNodeList());\r\n\tif(!recycle) return linkedListPool.take();\r\n\trecycle.clear();\r\n\tlinkedListPool.add(recycle);\r\n}\r\n\r\n// static utility methods\r\nfunction callHasOwnProperty(target:any, key:string)\r\n{\r\n\treturn Object.prototype.hasOwnProperty.call(target, key);\r\n}\r\n\r\nconst NULL = \"null\", GET_HASH_CODE = \"getHashCode\";\r\nfunction getHashString(obj:any):string\r\n{\r\n\tif(obj===null) return NULL;\r\n\tif(obj===VOID0) return Type.UNDEFINED;\r\n\r\n\t// See IHashable.\r\n\tif(Type.hasMemberOfType(obj, GET_HASH_CODE, Type.FUNCTION))\r\n\t{\r\n\t\treturn obj.getHashCode();\r\n\t}\r\n\r\n\treturn (typeof obj.toString==Type.FUNCTION)\r\n\t\t? obj.toString()\r\n\t\t: Object.prototype.toString.call(obj);\r\n}\r\n\r\n\r\nexport class Dictionary extends DictionaryBase\r\n{\r\n\t// Retains the order...\r\n\tprivate _entries:LinkedNodeList>;\r\n\tprivate _buckets:IMap>>>;\r\n\r\n\tconstructor(\r\n\t\tprivate _keyComparer:Selector = Functions.Identity)\r\n\t{\r\n\t\tsuper();\r\n\t\tthis._entries = linkedNodeList();\r\n\t\tthis._buckets = {};\r\n\t}\r\n\r\n\tprotected getCount():number\r\n\t{\r\n\t\treturn this._entries.unsafeCount;\r\n\t}\r\n\r\n\r\n\tprivate _getBucket(\r\n\t\thash:string,\r\n\t\tcreateIfMissing?:boolean):LinkedNodeList>>\r\n\t{\r\n\t\tif(hash===null || hash===VOID0 || !createIfMissing && !this.getCount())\r\n\t\t\treturn null;\r\n\r\n\t\tvar buckets = this._buckets;\r\n\t\tvar bucket = callHasOwnProperty(buckets, hash) ? buckets[hash] : VOID0;\r\n\r\n\t\tif(createIfMissing && !bucket)\r\n\t\t\tbuckets[hash]\r\n\t\t\t\t= bucket\r\n\t\t\t\t= linkedNodeList();\r\n\r\n\t\treturn bucket;\r\n\t}\r\n\r\n\tprivate _getBucketEntry(\r\n\t\tkey:TKey,\r\n\t\thash?:string,\r\n\t\tbucket?:LinkedNodeList>>):IHashEntry>\r\n\t{\r\n\t\tif(key===null || key===VOID0 || !this.getCount())\r\n\t\t\treturn null;\r\n\r\n\t\tvar _ = this,\r\n\t\t comparer = _._keyComparer,\r\n\t\t compareKey = comparer(key);\r\n\r\n\t\tif(!bucket) bucket = _._getBucket(hash || getHashString(compareKey));\r\n\r\n\t\treturn bucket && bucket\r\n\t\t\t\t.find(e=>comparer(e.key)===compareKey);\r\n\t}\r\n\r\n\tprotected _getEntry(key:TKey):IHashEntry\r\n\t{\r\n\t\tvar e = this._getBucketEntry(key);\r\n\t\treturn e && e.value;\r\n\t}\r\n\r\n\tgetValue(key:TKey):TValue\r\n\t{\r\n\t\tvar e = this._getEntry(key);\r\n\t\treturn e ? e.value : VOID0;\r\n\t}\r\n\r\n\tprotected _setValueInternal(key:TKey, value:TValue):boolean\r\n\t{\r\n\t\tvar _ = this,\r\n\t\t buckets = _._buckets,\r\n\t\t entries = _._entries,\r\n\t\t comparer = _._keyComparer,\r\n\t\t compareKey = comparer(key),\r\n\t\t hash = getHashString(compareKey),\r\n\t\t bucket = _._getBucket(hash),\r\n\t\t bucketEntry = bucket && _._getBucketEntry(key, hash, bucket);\r\n\r\n\t\t// Entry exits? Delete or update\r\n\t\tif(bucketEntry)\r\n\t\t{\r\n\t\t\tif(value===VOID0)\r\n\t\t\t{\r\n\t\t\t\tlet x = bucket.removeNode(bucketEntry),\r\n\t\t\t\t y = entries.removeNode(bucketEntry.value);\r\n\r\n\t\t\t\tif(x && !bucket.count)\r\n\t\t\t\t{\r\n\t\t\t\t\tdelete buckets[hash];\r\n\t\t\t\t\tlinkedNodeList(bucket);\r\n\t\t\t\t\tbucket = null;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(x!==y) throw \"Entries and buckets are out of sync.\";\r\n\r\n\t\t\t\tif(x) return true;\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\t// We don't expose the internal hash entries so replacing the value is ok.\r\n\t\t\t\tvar old = bucketEntry.value.value;\r\n\t\t\t\tbucketEntry.value.value = value;\r\n\t\t\t\treturn !areEqual(value, old);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\telse if(value!==VOID0)\r\n\t\t{\r\n\t\t\tif(!bucket) bucket = _._getBucket(hash, true);\r\n\t\t\tlet entry = new HashEntry(key, value);\r\n\t\t\tentries.addNode(entry);\r\n\t\t\tbucket.addNode(new HashEntry(key, entry));\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\tprotected _clearInternal():number\r\n\t{\r\n\t\tvar _ = this, buckets = _._buckets;\r\n\r\n\t\t// Ensure reset and clean...\r\n\t\tfor(let key in buckets)\r\n\t\t{\r\n\t\t\tif(buckets.hasOwnProperty(key))\r\n\t\t\t{\r\n\t\t\t\tlet bucket = buckets[key];\r\n\t\t\t\tdelete buckets[key];\r\n\t\t\t\tlinkedNodeList(bucket);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn _._entries.clear();\r\n\t}\r\n\r\n\t/*\r\n\t * Note: super.getEnumerator() works perfectly well,\r\n\t * but enumerating the internal linked node list is much more efficient.\r\n\t */\r\n\tgetEnumerator():IEnumerator>\r\n\t{\r\n\t\tvar _ = this, ver:number, currentEntry:IHashEntry;\r\n\r\n\t\treturn new EnumeratorBase>(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tver = _._version;\r\n\t\t\t\tcurrentEntry = _._entries.first;\r\n\t\t\t},\r\n\t\t\t(yielder) =>\r\n\t\t\t{\r\n\t\t\t\tif(currentEntry!=null)\r\n\t\t\t\t{\r\n\t\t\t\t\t_.assertVersion(ver);\r\n\t\t\t\t\tvar result = {key: currentEntry.key, value: currentEntry.value};\r\n\t\t\t\t\tcurrentEntry = currentEntry.next;\r\n\t\t\t\t\treturn yielder.yieldReturn(result);\r\n\t\t\t\t}\r\n\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tprotected getKeys():TKey[]\r\n\t{\r\n\t\tvar _ = this, result:TKey[] = [];\r\n\t\tvar e = _._entries.first;\r\n\t\twhile(e)\r\n\t\t{\r\n\t\t\tresult.push(e.key);\r\n\t\t\te = e.next;\r\n\t\t}\r\n\t\treturn result;\r\n\t}\r\n\r\n\tprotected getValues():TValue[]\r\n\t{\r\n\t\tvar _ = this, result:TValue[] = [];\r\n\t\tvar e = _._entries.first;\r\n\t\twhile(e)\r\n\t\t{\r\n\t\t\tresult.push(e.value);\r\n\t\t\te = e.next;\r\n\t\t}\r\n\t\treturn result;\r\n\t}\r\n\r\n}\r\n\r\nexport default Dictionary;"]} \ No newline at end of file diff --git a/dist/umd.min/System/Collections/Dictionaries/DictionaryBase.d.ts b/dist/umd.min/System/Collections/Dictionaries/DictionaryBase.d.ts index f931e1a7..e242d770 100644 --- a/dist/umd.min/System/Collections/Dictionaries/DictionaryBase.d.ts +++ b/dist/umd.min/System/Collections/Dictionaries/DictionaryBase.d.ts @@ -1,10 +1,13 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import CollectionBase from "../CollectionBase"; -declare abstract class DictionaryBase extends CollectionBase> implements IDictionary { +import { CollectionBase } from "../CollectionBase"; +import { IKeyValuePair, KeyValuePair } from "../../KeyValuePair"; +import { IDictionary } from "./IDictionary"; +import { IEnumerator } from "../Enumeration/IEnumerator"; +import { IEnumerableOrArray } from "../IEnumerableOrArray"; +export declare abstract class DictionaryBase extends CollectionBase> implements IDictionary { constructor(source?: IEnumerableOrArray>); protected _onValueModified(key: TKey, value: TValue, old: TValue): void; protected _addInternal(item: KeyValuePair): boolean; diff --git a/dist/umd.min/System/Collections/Dictionaries/DictionaryBase.js b/dist/umd.min/System/Collections/Dictionaries/DictionaryBase.js index a7ea246c..8c68eac8 100644 --- a/dist/umd.min/System/Collections/Dictionaries/DictionaryBase.js +++ b/dist/umd.min/System/Collections/Dictionaries/DictionaryBase.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../../Compare","../Enumeration/Enumerator","../CollectionBase","../Enumeration/EnumeratorBase","../../Exceptions/ArgumentNullException","../../Exceptions/InvalidOperationException","../../KeyValueExtract"],e)}(function(e,t){"use strict";var r=e("../../Compare"),n=e("../Enumeration/Enumerator"),o=e("../CollectionBase"),a=e("../Enumeration/EnumeratorBase"),u=e("../../Exceptions/ArgumentNullException"),i=e("../../Exceptions/InvalidOperationException"),l=e("../../KeyValueExtract"),s=void 0,f=function(e){function t(t){e.call(this,t)}return __extends(t,e),t.prototype._onValueModified=function(e,t,r){},t.prototype._addInternal=function(e){var t=this;if(!e)throw new u["default"]("item","Dictionaries must use a valid key/value pair. '"+e+"' is not allowed.");return l["default"](e,function(e,r){return t.addByKeyValue(e,r)})},t.prototype._clearInternal=function(){for(var e=this,t=0,r=0,n=e.keys;ro;){var u=t[o++],i=n.getValue(u);if(i!==s)return a.yieldReturn({key:u,value:i})}return a.yieldBreak()})},t}(o["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=f}); +var __extends=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../../Compare","../Enumeration/Enumerator","../CollectionBase","../Enumeration/EnumeratorBase","../../Exceptions/ArgumentNullException","../../Exceptions/InvalidOperationException","../../KeyValueExtract"],e)}(function(e,t){"use strict";var r=e("../../Compare"),n=e("../Enumeration/Enumerator"),o=e("../CollectionBase"),a=e("../Enumeration/EnumeratorBase"),i=e("../../Exceptions/ArgumentNullException"),u=e("../../Exceptions/InvalidOperationException"),l=e("../../KeyValueExtract"),s=void 0,c=function(e){function t(t){e.call(this,t)}return __extends(t,e),t.prototype._onValueModified=function(e,t,r){},t.prototype._addInternal=function(e){var t=this;if(!e)throw new i.ArgumentNullException("item","Dictionaries must use a valid key/value pair. '"+e+"' is not allowed.");return l.extractKeyValue(e,function(e,r){return t.addByKeyValue(e,r)})},t.prototype._clearInternal=function(){for(var e=this,t=0,r=0,n=e.keys;ro;){var i=t[o++],u=n.getValue(i);if(u!==s)return a.yieldReturn({key:i,value:u})}return a.yieldBreak()})},t}(o.CollectionBase);t.DictionaryBase=c,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=c}); //# sourceMappingURL=DictionaryBase.js.map diff --git a/dist/umd.min/System/Collections/Dictionaries/DictionaryBase.js.map b/dist/umd.min/System/Collections/Dictionaries/DictionaryBase.js.map index 59169441..128ce36a 100644 --- a/dist/umd.min/System/Collections/Dictionaries/DictionaryBase.js.map +++ b/dist/umd.min/System/Collections/Dictionaries/DictionaryBase.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Dictionaries/DictionaryBase.js","System/Collections/Dictionaries/DictionaryBase.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","Compare_1","Enumerator_1","CollectionBase_1","EnumeratorBase_1","ArgumentNullException_1","InvalidOperationException_1","KeyValueExtract_1","VOID0","DictionaryBase","_super","source","call","_onValueModified","key","value","old","_addInternal","item","_this","addByKeyValue","_clearInternal","_","count","_i","_a","keys","length","removeByKey","contains","getCount","getValue","areEqual","_removeInternal","defineProperty","get","getKeys","enumerable","configurable","getValues","containsKey","ex","data","setValue","assertModifiable","changed","_setValueInternal","_signalModification","_getEntry","containsValue","e","getEnumerator","equal","moveNext","current","dispose","removeByValue","importEntries","pairs","_importEntries","forEach","pair","ver","len","i","_version","yielder","assertVersion","yieldReturn","yieldBreak"],"mappings":"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","file":"System/Collections/Dictionaries/DictionaryBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../../Compare\", \"../Enumeration/Enumerator\", \"../CollectionBase\", \"../Enumeration/EnumeratorBase\", \"../../Exceptions/ArgumentNullException\", \"../../Exceptions/InvalidOperationException\", \"../../KeyValueExtract\"], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var Compare_1 = require(\"../../Compare\");\n var Enumerator_1 = require(\"../Enumeration/Enumerator\");\n var CollectionBase_1 = require(\"../CollectionBase\");\n var EnumeratorBase_1 = require(\"../Enumeration/EnumeratorBase\");\n var ArgumentNullException_1 = require(\"../../Exceptions/ArgumentNullException\");\n var InvalidOperationException_1 = require(\"../../Exceptions/InvalidOperationException\");\n var KeyValueExtract_1 = require(\"../../KeyValueExtract\");\n var VOID0 = void (0);\n var DictionaryBase = (function (_super) {\n __extends(DictionaryBase, _super);\n function DictionaryBase(source) {\n _super.call(this, source);\n }\n DictionaryBase.prototype._onValueModified = function (key, value, old) {\n };\n DictionaryBase.prototype._addInternal = function (item) {\n var _this = this;\n if (!item)\n throw new ArgumentNullException_1.default('item', 'Dictionaries must use a valid key/value pair. \\'' + item + '\\' is not allowed.');\n return KeyValueExtract_1.default(item, function (key, value) { return _this.addByKeyValue(key, value); });\n };\n DictionaryBase.prototype._clearInternal = function () {\n var _ = this, count = 0;\n for (var _i = 0, _a = _.keys; _i < _a.length; _i++) {\n var key = _a[_i];\n if (_.removeByKey(key))\n count++;\n }\n return count;\n };\n DictionaryBase.prototype.contains = function (item) {\n var _this = this;\n if (!item || !this.getCount())\n return false;\n return KeyValueExtract_1.default(item, function (key, value) {\n var v = _this.getValue(key);\n return Compare_1.areEqual(value, v);\n });\n };\n DictionaryBase.prototype._removeInternal = function (item) {\n var _this = this;\n if (!item)\n return 0;\n return KeyValueExtract_1.default(item, function (key, value) {\n var v = _this.getValue(key);\n return (Compare_1.areEqual(value, v) && _this.removeByKey(key))\n ? 1 : 0;\n });\n };\n Object.defineProperty(DictionaryBase.prototype, \"keys\", {\n get: function () { return this.getKeys(); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DictionaryBase.prototype, \"values\", {\n get: function () { return this.getValues(); },\n enumerable: true,\n configurable: true\n });\n DictionaryBase.prototype.addByKeyValue = function (key, value) {\n if (value === VOID0)\n throw new InvalidOperationException_1.default(\"Cannot add 'undefined' as a value.\");\n var _ = this;\n if (_.containsKey(key)) {\n var ex = new InvalidOperationException_1.default(\"Adding a key/value when the key already exists.\");\n ex.data['key'] = key;\n ex.data['value'] = value;\n throw ex;\n }\n return _.setValue(key, value);\n };\n DictionaryBase.prototype.setValue = function (key, value) {\n var _ = this;\n _.assertModifiable();\n var changed = false, old = _.getValue(key);\n if (!Compare_1.areEqual(value, old) && _._setValueInternal(key, value)) {\n changed = true;\n _._onValueModified(key, value, old);\n }\n _._signalModification(changed);\n return changed;\n };\n DictionaryBase.prototype.containsKey = function (key) {\n return !!this._getEntry(key);\n };\n DictionaryBase.prototype.containsValue = function (value) {\n var e = this.getEnumerator(), equal = Compare_1.areEqual;\n while (e.moveNext()) {\n if (equal(e.current, value, true)) {\n e.dispose();\n return true;\n }\n }\n return false;\n };\n DictionaryBase.prototype.removeByKey = function (key) {\n return this.setValue(key, VOID0);\n };\n DictionaryBase.prototype.removeByValue = function (value) {\n var _ = this, count = 0, equal = Compare_1.areEqual;\n for (var _i = 0, _a = _.getKeys(); _i < _a.length; _i++) {\n var key = _a[_i];\n if (equal(_.getValue(key), value, true)) {\n _.removeByKey(key);\n count++;\n }\n }\n return count;\n };\n DictionaryBase.prototype.importEntries = function (pairs) {\n return _super.prototype.importEntries.call(this, pairs);\n };\n DictionaryBase.prototype._importEntries = function (pairs) {\n var _ = this;\n if (!pairs)\n return 0;\n var changed = 0;\n Enumerator_1.forEach(pairs, function (pair) { return KeyValueExtract_1.default(pair, function (key, value) {\n if (_._setValueInternal(key, value))\n changed++;\n }); });\n return changed;\n };\n DictionaryBase.prototype.getEnumerator = function () {\n var _ = this;\n var ver, keys, len, i = 0;\n return new EnumeratorBase_1.default(function () {\n ver = _._version;\n keys = _.getKeys();\n len = keys.length;\n }, function (yielder) {\n _.assertVersion(ver);\n while (i < len) {\n var key = keys[i++], value = _.getValue(key);\n if (value !== VOID0)\n return yielder.yieldReturn({ key: key, value: value });\n }\n return yielder.yieldBreak();\n });\n };\n return DictionaryBase;\n }(CollectionBase_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = DictionaryBase;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport {areEqual} from \"../../Compare\";\r\nimport {forEach} from \"../Enumeration/Enumerator\";\r\nimport CollectionBase from \"../CollectionBase\";\r\nimport EnumeratorBase from \"../Enumeration/EnumeratorBase\";\r\nimport ArgumentNullException from \"../../Exceptions/ArgumentNullException\";\r\nimport InvalidOperationException from \"../../Exceptions/InvalidOperationException\";\r\nimport extractKeyValue from \"../../KeyValueExtract\";\r\n\r\nconst VOID0:any = void(0);\r\n\r\n// Design Note: Should DictionaryAbstractBase be IDisposable?\r\nabstract class DictionaryBase\r\nextends CollectionBase> implements IDictionary\r\n{\r\n\tconstructor(source?:IEnumerableOrArray>)\r\n\t{\r\n\t\tsuper(source);\r\n\t}\r\n\r\n\r\n\tprotected _onValueModified(key:TKey, value:TValue, old:TValue):void\r\n\t{\r\n\t}\r\n\r\n\tprotected _addInternal(item:KeyValuePair):boolean\r\n\t{\r\n\t\tif(!item)\r\n\t\t\tthrow new ArgumentNullException(\r\n\t\t\t\t'item', 'Dictionaries must use a valid key/value pair. \\'' + item + '\\' is not allowed.'\r\n\t\t\t);\r\n\r\n\t\treturn extractKeyValue(item,\r\n\t\t\t(key, value)=>this.addByKeyValue(key, value));\r\n\t}\r\n\r\n\tprotected _clearInternal():number\r\n\t{\r\n\t\tvar _ = this, count = 0;\r\n\r\n\t\tfor(let key of _.keys)\r\n\t\t{\r\n\t\t\tif(_.removeByKey(key)) count++;\r\n\t\t}\r\n\r\n\t\treturn count;\r\n\t}\r\n\r\n\tcontains(item:KeyValuePair):boolean\r\n\t{\r\n\t\t// Should never have a null object in the collection.\r\n\t\tif(!item || !this.getCount()) return false;\r\n\r\n\t\treturn extractKeyValue(item,\r\n\t\t\t(key, value)=>\r\n\t\t\t{\r\n\t\t\t\t// Leave as variable for debugging...\r\n\t\t\t\tlet v = this.getValue(key);\r\n\t\t\t\treturn areEqual(value, v);\r\n\t\t\t});\r\n\r\n\t}\r\n\r\n\tprotected _removeInternal(item:IKeyValuePair|[TKey,TValue]):number\r\n\t{\r\n\t\tif(!item) return 0;\r\n\r\n\t\treturn extractKeyValue(item,\r\n\t\t\t(key, value)=>\r\n\t\t\t{\r\n\t\t\t\t// Leave as variable for debugging...\r\n\t\t\t\tlet v = this.getValue(key);\r\n\t\t\t\treturn (areEqual(value, v) && this.removeByKey(key))\r\n\t\t\t\t\t? 1 : 0;\r\n\t\t\t});\r\n\t}\r\n\r\n\t/////////////////////////////////////////\r\n\t// IDictionary\r\n\t/////////////////////////////////////////\r\n\r\n\tprotected abstract getKeys():TKey[];\r\n\r\n\tget keys():TKey[] { return this.getKeys(); }\r\n\r\n\tprotected abstract getValues():TValue[];\r\n\r\n\tget values():TValue[] { return this.getValues(); }\r\n\r\n\r\n\taddByKeyValue(key:TKey, value:TValue):boolean\r\n\t{\r\n\t\tif(value===VOID0)\r\n\t\t\tthrow new InvalidOperationException(\"Cannot add 'undefined' as a value.\");\r\n\r\n\t\tvar _ = this;\r\n\t\tif(_.containsKey(key))\r\n\t\t{\r\n\t\t\tvar ex = new InvalidOperationException(\"Adding a key/value when the key already exists.\");\r\n\t\t\tex.data['key'] = key;\r\n\t\t\tex.data['value'] = value;\r\n\t\t\tthrow ex;\r\n\t\t}\r\n\r\n\t\treturn _.setValue(key, value);\r\n\t}\r\n\r\n\tprotected abstract _getEntry(key:TKey):IKeyValuePair;\r\n\r\n\tabstract getValue(key:TKey):TValue;\r\n\r\n\tprotected abstract _setValueInternal(key:TKey, value:TValue):boolean;\r\n\r\n\tsetValue(key:TKey, value:TValue):boolean\r\n\t{\r\n\t\t// setValue shouldn't need to worry about recursion...\r\n\t\tvar _ = this;\r\n\t\t_.assertModifiable();\r\n\r\n\t\tvar changed = false, old = _.getValue(key); // get the old value here and pass to internal.\r\n\t\tif(!areEqual(value, old) && _._setValueInternal(key, value))\r\n\t\t{\r\n\t\t\tchanged = true;\r\n\t\t\t_._onValueModified(key, value, old)\r\n\t\t}\r\n\r\n\t\t_._signalModification(changed);\r\n\t\treturn changed;\r\n\t}\r\n\r\n\tcontainsKey(key:TKey):boolean\r\n\t{\r\n\t\treturn !!this._getEntry(key);\r\n\t}\r\n\r\n\tcontainsValue(value:TValue):boolean\r\n\t{\r\n\t\tvar e = this.getEnumerator(), equal:(a:any, b:any, strict?:boolean) => boolean = areEqual;\r\n\r\n\t\twhile(e.moveNext())\r\n\t\t{\r\n\t\t\tif(equal(e.current, value, true))\r\n\t\t\t{\r\n\t\t\t\te.dispose();\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tremoveByKey(key:TKey):boolean\r\n\t{\r\n\t\treturn this.setValue(key, VOID0);\r\n\t}\r\n\r\n\tremoveByValue(value:TValue):number\r\n\t{\r\n\t\tvar _ = this, count = 0, equal:(a:any, b:any, strict?:boolean) => boolean = areEqual;\r\n\t\tfor(let key of _.getKeys())\r\n\t\t{\r\n\t\t\tif(equal(_.getValue(key), value, true))\r\n\t\t\t{\r\n\t\t\t\t_.removeByKey(key);\r\n\t\t\t\tcount++;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn count;\r\n\t}\r\n\r\n\timportEntries(pairs:IEnumerableOrArray>):number\r\n\t{\r\n\t\t// Allow piping through to trigger onModified properly.\r\n\t\treturn super.importEntries(pairs);\r\n\t}\r\n\r\n\tprotected _importEntries(pairs:IEnumerableOrArray>):number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(!pairs) return 0;\r\n\t\tlet changed:number = 0;\r\n\t\tforEach(pairs,\r\n\t\t\tpair=>extractKeyValue(pair, (key, value)=>\r\n\t\t\t{\r\n\t\t\t\tif(_._setValueInternal(key, value))\r\n\t\t\t\t\tchanged++;\r\n\t\t\t})\r\n\t\t);\r\n\t\treturn changed;\r\n\t}\r\n\r\n\tgetEnumerator():IEnumerator>\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar ver:number, keys:TKey[], len:number, i = 0;\r\n\t\treturn new EnumeratorBase>(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tver = _._version; // Track the version since getKeys is a copy.\r\n\t\t\t\tkeys = _.getKeys();\r\n\t\t\t\tlen = keys.length;\r\n\t\t\t},\r\n\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\t\t\t\t_.assertVersion(ver);\r\n\r\n\t\t\t\twhile(i\r\nextends CollectionBase> implements IDictionary\r\n{\r\n\tconstructor(source?:IEnumerableOrArray>)\r\n\t{\r\n\t\tsuper(source);\r\n\t}\r\n\r\n\r\n\tprotected _onValueModified(key:TKey, value:TValue, old:TValue):void\r\n\t{\r\n\t}\r\n\r\n\tprotected _addInternal(item:KeyValuePair):boolean\r\n\t{\r\n\t\tif(!item)\r\n\t\t\tthrow new ArgumentNullException(\r\n\t\t\t\t'item', 'Dictionaries must use a valid key/value pair. \\'' + item + '\\' is not allowed.'\r\n\t\t\t);\r\n\r\n\t\treturn extractKeyValue(item,\r\n\t\t\t(key, value)=>this.addByKeyValue(key, value));\r\n\t}\r\n\r\n\tprotected _clearInternal():number\r\n\t{\r\n\t\tvar _ = this, count = 0;\r\n\r\n\t\tfor(let key of _.keys)\r\n\t\t{\r\n\t\t\tif(_.removeByKey(key)) count++;\r\n\t\t}\r\n\r\n\t\treturn count;\r\n\t}\r\n\r\n\tcontains(item:KeyValuePair):boolean\r\n\t{\r\n\t\t// Should never have a null object in the collection.\r\n\t\tif(!item || !this.getCount()) return false;\r\n\r\n\t\treturn extractKeyValue(item,\r\n\t\t\t(key, value)=>\r\n\t\t\t{\r\n\t\t\t\t// Leave as variable for debugging...\r\n\t\t\t\tlet v = this.getValue(key);\r\n\t\t\t\treturn areEqual(value, v);\r\n\t\t\t});\r\n\r\n\t}\r\n\r\n\tprotected _removeInternal(item:IKeyValuePair|[TKey,TValue]):number\r\n\t{\r\n\t\tif(!item) return 0;\r\n\r\n\t\treturn extractKeyValue(item,\r\n\t\t\t(key, value)=>\r\n\t\t\t{\r\n\t\t\t\t// Leave as variable for debugging...\r\n\t\t\t\tlet v = this.getValue(key);\r\n\t\t\t\treturn (areEqual(value, v) && this.removeByKey(key))\r\n\t\t\t\t\t? 1 : 0;\r\n\t\t\t});\r\n\t}\r\n\r\n\t/////////////////////////////////////////\r\n\t// IDictionary\r\n\t/////////////////////////////////////////\r\n\r\n\tprotected abstract getKeys():TKey[];\r\n\r\n\tget keys():TKey[] { return this.getKeys(); }\r\n\r\n\tprotected abstract getValues():TValue[];\r\n\r\n\tget values():TValue[] { return this.getValues(); }\r\n\r\n\r\n\taddByKeyValue(key:TKey, value:TValue):boolean\r\n\t{\r\n\t\tif(value===VOID0)\r\n\t\t\tthrow new InvalidOperationException(\"Cannot add 'undefined' as a value.\");\r\n\r\n\t\tvar _ = this;\r\n\t\tif(_.containsKey(key))\r\n\t\t{\r\n\t\t\tvar ex = new InvalidOperationException(\"Adding a key/value when the key already exists.\");\r\n\t\t\tex.data['key'] = key;\r\n\t\t\tex.data['value'] = value;\r\n\t\t\tthrow ex;\r\n\t\t}\r\n\r\n\t\treturn _.setValue(key, value);\r\n\t}\r\n\r\n\tprotected abstract _getEntry(key:TKey):IKeyValuePair;\r\n\r\n\tabstract getValue(key:TKey):TValue;\r\n\r\n\tprotected abstract _setValueInternal(key:TKey, value:TValue):boolean;\r\n\r\n\tsetValue(key:TKey, value:TValue):boolean\r\n\t{\r\n\t\t// setValue shouldn't need to worry about recursion...\r\n\t\tvar _ = this;\r\n\t\t_.assertModifiable();\r\n\r\n\t\tvar changed = false, old = _.getValue(key); // get the old value here and pass to internal.\r\n\t\tif(!areEqual(value, old) && _._setValueInternal(key, value))\r\n\t\t{\r\n\t\t\tchanged = true;\r\n\t\t\t_._onValueModified(key, value, old)\r\n\t\t}\r\n\r\n\t\t_._signalModification(changed);\r\n\t\treturn changed;\r\n\t}\r\n\r\n\tcontainsKey(key:TKey):boolean\r\n\t{\r\n\t\treturn !!this._getEntry(key);\r\n\t}\r\n\r\n\tcontainsValue(value:TValue):boolean\r\n\t{\r\n\t\tvar e = this.getEnumerator(), equal:(a:any, b:any, strict?:boolean) => boolean = areEqual;\r\n\r\n\t\twhile(e.moveNext())\r\n\t\t{\r\n\t\t\tif(equal(e.current, value, true))\r\n\t\t\t{\r\n\t\t\t\te.dispose();\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tremoveByKey(key:TKey):boolean\r\n\t{\r\n\t\treturn this.setValue(key, VOID0);\r\n\t}\r\n\r\n\tremoveByValue(value:TValue):number\r\n\t{\r\n\t\tvar _ = this, count = 0, equal:(a:any, b:any, strict?:boolean) => boolean = areEqual;\r\n\t\tfor(let key of _.getKeys())\r\n\t\t{\r\n\t\t\tif(equal(_.getValue(key), value, true))\r\n\t\t\t{\r\n\t\t\t\t_.removeByKey(key);\r\n\t\t\t\tcount++;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn count;\r\n\t}\r\n\r\n\timportEntries(pairs:IEnumerableOrArray>):number\r\n\t{\r\n\t\t// Allow piping through to trigger onModified properly.\r\n\t\treturn super.importEntries(pairs);\r\n\t}\r\n\r\n\tprotected _importEntries(pairs:IEnumerableOrArray>):number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(!pairs) return 0;\r\n\t\tlet changed:number = 0;\r\n\t\tforEach(pairs,\r\n\t\t\tpair=>extractKeyValue(pair, (key, value)=>\r\n\t\t\t{\r\n\t\t\t\tif(_._setValueInternal(key, value))\r\n\t\t\t\t\tchanged++;\r\n\t\t\t})\r\n\t\t);\r\n\t\treturn changed;\r\n\t}\r\n\r\n\tgetEnumerator():IEnumerator>\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar ver:number, keys:TKey[], len:number, i = 0;\r\n\t\treturn new EnumeratorBase>(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tver = _._version; // Track the version since getKeys is a copy.\r\n\t\t\t\tkeys = _.getKeys();\r\n\t\t\t\tlen = keys.length;\r\n\t\t\t},\r\n\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\t\t\t\t_.assertVersion(ver);\r\n\r\n\t\t\t\twhile(i extends StringKeyDictionary implements IOrderedDictionary { +import { StringKeyDictionary } from "./StringKeyDictionary"; +import { IOrderedDictionary } from "./IDictionary"; +export declare class OrderedStringKeyDictionary extends StringKeyDictionary implements IOrderedDictionary { private _order; constructor(); indexOfKey(key: string): number; @@ -15,3 +16,4 @@ export default class OrderedStringKeyDictionary extends StringKeyDiction removeByIndex(index: number): boolean; protected getKeys(): string[]; } +export default OrderedStringKeyDictionary; diff --git a/dist/umd.min/System/Collections/Dictionaries/OrderedStringKeyDictionary.js b/dist/umd.min/System/Collections/Dictionaries/OrderedStringKeyDictionary.js index 0bf58c31..20be2fc8 100644 --- a/dist/umd.min/System/Collections/Dictionaries/OrderedStringKeyDictionary.js +++ b/dist/umd.min/System/Collections/Dictionaries/OrderedStringKeyDictionary.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../Array/Utility","./StringKeyDictionary","../../Exceptions/ArgumentOutOfRangeException"],e)}(function(e,t){"use strict";var r=e("../Array/Utility"),n=e("./StringKeyDictionary"),o=e("../../Exceptions/ArgumentOutOfRangeException"),i=void 0,u=function(e){function t(){e.call(this),this._order=[]}return __extends(t,e),t.prototype.indexOfKey=function(e){var t=this._order;return t.length?t.indexOf(e,0):-1},t.prototype.getValueByIndex=function(e){var t=this._order;return ee)throw new o["default"]("index",e,"Is less than zero.");if(e>=n.length)throw new o["default"]("index",e,"Is greater than the count.");return r.setValue(n[e],t)},t.prototype.importValues=function(e){var t=this;return t.handleUpdate(function(){for(var r=!1,n=0;ne)throw new o.ArgumentOutOfRangeException("index",e,"Is less than zero.");if(e>=n.length)throw new o.ArgumentOutOfRangeException("index",e,"Is greater than the count.");return r.setValue(n[e],t)},t.prototype.importValues=function(e){var t=this;return t.handleUpdate(function(){for(var r=!1,n=0;n= order.length)\n throw new ArgumentOutOfRangeException_1.default('index', index, 'Is greater than the count.');\n return _.setValue(order[index], value);\n };\n OrderedStringKeyDictionary.prototype.importValues = function (values) {\n var _ = this;\n return _.handleUpdate(function () {\n var changed = false;\n for (var i = 0; i < values.length; i++) {\n if (_.setByIndex(i, values[i]))\n changed = true;\n }\n return changed;\n });\n };\n OrderedStringKeyDictionary.prototype.setValues = function () {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i - 0] = arguments[_i];\n }\n return this.importValues(values);\n };\n OrderedStringKeyDictionary.prototype.removeByIndex = function (index) {\n return this.setByIndex(index, VOID0);\n };\n OrderedStringKeyDictionary.prototype.getKeys = function () {\n var _ = this, o = _._order;\n return o.length && o.filter(function (key) { return _.containsKey(key); }) || [];\n };\n return OrderedStringKeyDictionary;\n }(StringKeyDictionary_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = OrderedStringKeyDictionary;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport * as ArrayUtility from \"../Array/Utility\";\r\nimport StringKeyDictionary from \"./StringKeyDictionary\";\r\nimport ArgumentOutOfRangeException from \"../../Exceptions/ArgumentOutOfRangeException\";\r\n\r\nconst VOID0:any = void 0;\r\n\r\nexport default\r\nclass OrderedStringKeyDictionary\r\nextends StringKeyDictionary implements IOrderedDictionary\r\n{\r\n\r\n\t// noinspection JSMismatchedCollectionQueryUpdate\r\n\tprivate _order:string[] = []; // Maintains indexes.\r\n\r\n\tconstructor()\r\n\t{\r\n\t\tsuper();\r\n\t}\r\n\r\n\tindexOfKey(key:string):number\r\n\t{\r\n\t\tvar o = this._order;\r\n\t\treturn o.length ? o.indexOf(key, 0) : -1;\r\n\t}\r\n\r\n\tgetValueByIndex(index:number):TValue\r\n\t{\r\n\t\tvar o = this._order;\r\n\t\treturn index=order.length)\r\n\t\t\tthrow new ArgumentOutOfRangeException('index', index, 'Is greater than the count.');\r\n\t\treturn _.setValue(order[index], value);\r\n\t}\r\n\r\n\t// importValues([x,y,z]);\r\n\timportValues(values:TValue[]):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn _.handleUpdate(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar changed:boolean = false;\r\n\t\t\t\tfor(let i = 0; i _.containsKey(key)) || [];\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Dictionaries/OrderedStringKeyDictionary.js","System/Collections/Dictionaries/OrderedStringKeyDictionary.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","ArrayUtility","StringKeyDictionary_1","ArgumentOutOfRangeException_1","VOID0","OrderedStringKeyDictionary","_super","call","_order","indexOfKey","key","o","length","indexOf","getValueByIndex","index","getValue","setValue","value","keepIndex","_","exists","remove","push","setByIndex","order","ArgumentOutOfRangeException","importValues","values","handleUpdate","changed","i","setValues","_i","arguments","removeByIndex","getKeys","filter","containsKey","StringKeyDictionary","defineProperty"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,mBAAoB,wBAAyB,gDAAiDN,IAEjI,SAAUI,EAASF,GAClB,YCZJ,IAAYM,GAAYJ,EAAM,oBAC9BK,EAAAL,EAAkC,yBAClCM,EAAAN,EAA0C,gDAGpCO,EAAY,OAElBC,EAAA,SAAAC,GAOC,QAAAD,KAECC,EAAAC,KAAAxB,MAJOA,KAAAyB,UA8ET,MAlFQ1B,WAAAuB,EAAAC,GAWPD,EAAAf,UAAAmB,WAAA,SAAWC,GAEV,GAAIC,GAAI5B,KAAKyB,MACb,OAAOG,GAAEC,OAASD,EAAEE,QAAQH,EAAK,GAAK,IAGvCL,EAAAf,UAAAwB,gBAAA,SAAgBC,GAEf,GAAIJ,GAAI5B,KAAKyB,MACb,OAAOO,GAAMJ,EAAEC,OAAS7B,KAAKiC,SAASL,EAAEI,IAAUX,GAInDC,EAAAf,UAAA2B,SAAA,SAASP,EAAYQ,EAAcC,GAGlC,GAAIC,GAAIrC,KAAMsC,EAA6B,IAApBD,EAAEX,WAAWC,EAMpC,OALIW,IAAWH,IAAQd,IAASe,EAExBE,GAAUH,IAAQd,IAAUe,GACnClB,EAAaqB,OAAOF,EAAEZ,OAAQE,GAF9BU,EAAEZ,OAAOe,KAAKb,GAIRJ,EAAAhB,UAAM2B,SAAQV,KAAAxB,KAAC2B,EAAKQ,IAG5Bb,EAAAf,UAAAkC,WAAA,SAAWT,EAAcG,GAExB,GAAIE,GAAIrC,KAAM0C,EAAQL,EAAEZ,MACxB,IAAS,EAANO,EACF,KAAM,IAAIZ,GAAAuB,4BAA4B,QAASX,EAAO,qBACvD,IAAGA,GAAOU,EAAMb,OACf,KAAM,IAAIT,GAAAuB,4BAA4B,QAASX,EAAO,6BACvD,OAAOK,GAAEH,SAASQ,EAAMV,GAAQG,IAIjCb,EAAAf,UAAAqC,aAAA,SAAaC,GAEZ,GAAIR,GAAIrC,IACR,OAAOqC,GAAES,aACR,WAGC,IAAI,GADAC,IAAkB,EACdC,EAAI,EAAGA,EAAEH,EAAOhB,OAAQmB,IAE5BX,EAAEI,WAAWO,EAAGH,EAAOG,MACzBD,GAAU,EAEZ,OAAOA,MAOVzB,EAAAf,UAAA0C,UAAA,WDdW,ICcD,GAAAJ,MAAAK,EAAA,EAAAA,EAAAC,UAAAtB,OAAAqB,IAAAL,EAAAK,EAAA,GAAAC,UAAAD,EAET,OAAOlD,MAAK4C,aAAaC,IAG1BvB,EAAAf,UAAA6C,cAAA,SAAcpB,GAEb,MAAOhC,MAAKyC,WAAWT,EAAOX,IAGrBC,EAAAf,UAAA8C,QAAV,WAEC,GAAIhB,GAAIrC,KAAM4B,EAAIS,EAAEZ,MACpB,OAAOG,GAAEC,QAAUD,EAAE0B,OAAO,SAAA3B,GAAM,MAAAU,GAAEkB,YAAY5B,UAGlDL,GAlFQH,EAAAqC,oBADK5C,GAAAU,2BAA0BA,EAqFvCd,OAAAiD,eAAA7C,EAAA,cAAAuB,OAAA,IDhBIvB,EAAAA,WCgBWU","file":"System/Collections/Dictionaries/OrderedStringKeyDictionary.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../Array/Utility\", \"./StringKeyDictionary\", \"../../Exceptions/ArgumentOutOfRangeException\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var ArrayUtility = require(\"../Array/Utility\");\n var StringKeyDictionary_1 = require(\"./StringKeyDictionary\");\n var ArgumentOutOfRangeException_1 = require(\"../../Exceptions/ArgumentOutOfRangeException\");\n var VOID0 = void 0;\n var OrderedStringKeyDictionary = (function (_super) {\n __extends(OrderedStringKeyDictionary, _super);\n function OrderedStringKeyDictionary() {\n _super.call(this);\n this._order = [];\n }\n OrderedStringKeyDictionary.prototype.indexOfKey = function (key) {\n var o = this._order;\n return o.length ? o.indexOf(key, 0) : -1;\n };\n OrderedStringKeyDictionary.prototype.getValueByIndex = function (index) {\n var o = this._order;\n return index < o.length ? this.getValue(o[index]) : VOID0;\n };\n OrderedStringKeyDictionary.prototype.setValue = function (key, value, keepIndex) {\n var _ = this, exists = _.indexOfKey(key) != -1;\n if (!exists && (value !== VOID0 || keepIndex))\n _._order.push(key);\n else if (exists && value === VOID0 && !keepIndex)\n ArrayUtility.remove(_._order, key);\n return _super.prototype.setValue.call(this, key, value);\n };\n OrderedStringKeyDictionary.prototype.setByIndex = function (index, value) {\n var _ = this, order = _._order;\n if (index < 0)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('index', index, 'Is less than zero.');\n if (index >= order.length)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('index', index, 'Is greater than the count.');\n return _.setValue(order[index], value);\n };\n OrderedStringKeyDictionary.prototype.importValues = function (values) {\n var _ = this;\n return _.handleUpdate(function () {\n var changed = false;\n for (var i = 0; i < values.length; i++) {\n if (_.setByIndex(i, values[i]))\n changed = true;\n }\n return changed;\n });\n };\n OrderedStringKeyDictionary.prototype.setValues = function () {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i - 0] = arguments[_i];\n }\n return this.importValues(values);\n };\n OrderedStringKeyDictionary.prototype.removeByIndex = function (index) {\n return this.setByIndex(index, VOID0);\n };\n OrderedStringKeyDictionary.prototype.getKeys = function () {\n var _ = this, o = _._order;\n return o.length && o.filter(function (key) { return _.containsKey(key); }) || [];\n };\n return OrderedStringKeyDictionary;\n }(StringKeyDictionary_1.StringKeyDictionary));\n exports.OrderedStringKeyDictionary = OrderedStringKeyDictionary;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = OrderedStringKeyDictionary;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport * as ArrayUtility from \"../Array/Utility\";\r\nimport {StringKeyDictionary} from \"./StringKeyDictionary\";\r\nimport {ArgumentOutOfRangeException} from \"../../Exceptions/ArgumentOutOfRangeException\";\r\nimport {IOrderedDictionary} from \"./IDictionary\";\r\n\r\nconst VOID0:any = void 0;\r\n\r\nexport class OrderedStringKeyDictionary\r\nextends StringKeyDictionary implements IOrderedDictionary\r\n{\r\n\r\n\t// noinspection JSMismatchedCollectionQueryUpdate\r\n\tprivate _order:string[] = []; // Maintains indexes.\r\n\r\n\tconstructor()\r\n\t{\r\n\t\tsuper();\r\n\t}\r\n\r\n\tindexOfKey(key:string):number\r\n\t{\r\n\t\tvar o = this._order;\r\n\t\treturn o.length ? o.indexOf(key, 0) : -1;\r\n\t}\r\n\r\n\tgetValueByIndex(index:number):TValue\r\n\t{\r\n\t\tvar o = this._order;\r\n\t\treturn index=order.length)\r\n\t\t\tthrow new ArgumentOutOfRangeException('index', index, 'Is greater than the count.');\r\n\t\treturn _.setValue(order[index], value);\r\n\t}\r\n\r\n\t// importValues([x,y,z]);\r\n\timportValues(values:TValue[]):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn _.handleUpdate(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar changed:boolean = false;\r\n\t\t\t\tfor(let i = 0; i _.containsKey(key)) || [];\r\n\t}\r\n\r\n}\r\n\r\nexport default OrderedStringKeyDictionary;\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Collections/Dictionaries/StringKeyDictionary.d.ts b/dist/umd.min/System/Collections/Dictionaries/StringKeyDictionary.d.ts index 15152615..2b7c006a 100644 --- a/dist/umd.min/System/Collections/Dictionaries/StringKeyDictionary.d.ts +++ b/dist/umd.min/System/Collections/Dictionaries/StringKeyDictionary.d.ts @@ -1,10 +1,11 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import DictionaryBase from "./DictionaryBase"; -export default class StringKeyDictionary extends DictionaryBase implements IStringKeyDictionary { +import { IStringKeyDictionary, IMap } from "./IDictionary"; +import { IKeyValuePair } from "../../KeyValuePair"; +import { DictionaryBase } from "./DictionaryBase"; +export declare class StringKeyDictionary extends DictionaryBase implements IStringKeyDictionary { private _count; private _map; protected _getEntry(key: string): IKeyValuePair; @@ -18,3 +19,4 @@ export default class StringKeyDictionary extends DictionaryBasee;e++)t[e]=this._map[t[e]];return t},e.prototype.getCount=function(){return this._count},e}(r["default"]);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=i}); +var __extends=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)};!function(t){if("object"==typeof module&&"object"==typeof module.exports){var e=t(require,exports);void 0!==e&&(module.exports=e)}else"function"==typeof define&&define.amd&&define(["require","exports","../../Compare","./DictionaryBase"],t)}(function(t,e){"use strict";var n=t("../../Compare"),r=t("./DictionaryBase"),o=void 0,i=function(t){function e(){t.apply(this,arguments),this._count=0,this._map={}}return __extends(e,t),e.prototype._getEntry=function(t){return this.containsKey(t)?{key:t,value:this.getValue(t)}:null},e.prototype.containsKey=function(t){return null!==t&&t!==o&&this._count?t in this._map:!1},e.prototype.containsValue=function(t){if(!this._count)return!1;var e=this._map,r=n.areEqual;for(var o in e)if(e.hasOwnProperty(o)&&r(e[o],t))return!0;return!1},e.prototype.getValue=function(t){return null!==t&&t!==o&&this._count?this._map[t]:o},e.prototype._setValueInternal=function(t,e){var n=this,r=n._map,i=r[t];return i!==e?(e===o?t in r&&(delete r[t],n._count--):(r.hasOwnProperty(t)||n._count++,r[t]=e),!0):!1},e.prototype.importMap=function(t){var e=this;return e.handleUpdate(function(){var n=!1;for(var r in t)t.hasOwnProperty(r)&&e.setValue(r,t[r])&&(n=!0);return n})},e.prototype.toMap=function(t){var e=this,n={};if(e._count)for(var r in e._map)if(e._map.hasOwnProperty(r)){var i=e._map[r];t&&(i=t(r,i)),i!==o&&(n[r]=i)}return n},e.prototype.getKeys=function(){return Object.keys(this._map)},e.prototype.getValues=function(){if(!this._count)return[];for(var t=Object.keys(this._map),e=0,n=t.length;n>e;e++)t[e]=this._map[t[e]];return t},e.prototype.getCount=function(){return this._count},e}(r.DictionaryBase);e.StringKeyDictionary=i,Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=i}); //# sourceMappingURL=StringKeyDictionary.js.map diff --git a/dist/umd.min/System/Collections/Dictionaries/StringKeyDictionary.js.map b/dist/umd.min/System/Collections/Dictionaries/StringKeyDictionary.js.map index 33f67529..c7462a46 100644 --- a/dist/umd.min/System/Collections/Dictionaries/StringKeyDictionary.js.map +++ b/dist/umd.min/System/Collections/Dictionaries/StringKeyDictionary.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Dictionaries/StringKeyDictionary.js","System/Collections/Dictionaries/StringKeyDictionary.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","Compare_1","DictionaryBase_1","VOID0","StringKeyDictionary","_super","apply","arguments","_count","_map","_getEntry","key","containsKey","value","getValue","containsValue","map","equal","areEqual","_setValueInternal","_","old","importMap","values","handleUpdate","changed","setValue","toMap","selector","result","getKeys","keys","getValues","i","len","length","getCount","defineProperty"],"mappings":"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","file":"System/Collections/Dictionaries/StringKeyDictionary.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../../Compare\", \"./DictionaryBase\"], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var Compare_1 = require(\"../../Compare\");\n var DictionaryBase_1 = require(\"./DictionaryBase\");\n var VOID0 = void 0;\n var StringKeyDictionary = (function (_super) {\n __extends(StringKeyDictionary, _super);\n function StringKeyDictionary() {\n _super.apply(this, arguments);\n this._count = 0;\n this._map = {};\n }\n StringKeyDictionary.prototype._getEntry = function (key) {\n return !this.containsKey(key)\n ? null : {\n key: key,\n value: this.getValue(key)\n };\n };\n StringKeyDictionary.prototype.containsKey = function (key) {\n if (key === null || key === VOID0 || !this._count)\n return false;\n return (key) in (this._map);\n };\n StringKeyDictionary.prototype.containsValue = function (value) {\n if (!this._count)\n return false;\n var map = this._map, equal = Compare_1.areEqual;\n for (var key in map) {\n if (map.hasOwnProperty(key) && equal(map[key], value))\n return true;\n }\n return false;\n };\n StringKeyDictionary.prototype.getValue = function (key) {\n if (key === null || key === VOID0 || !this._count)\n return VOID0;\n return this._map[key];\n };\n StringKeyDictionary.prototype._setValueInternal = function (key, value) {\n var _ = this, map = _._map, old = map[key];\n if (old !== value) {\n if (value === VOID0) {\n if ((key) in (map)) {\n delete map[key];\n _._count--;\n }\n }\n else {\n if (!map.hasOwnProperty(key))\n _._count++;\n map[key] = value;\n }\n return true;\n }\n return false;\n };\n StringKeyDictionary.prototype.importMap = function (values) {\n var _ = this;\n return _.handleUpdate(function () {\n var changed = false;\n for (var key in values) {\n if (values.hasOwnProperty(key) && _.setValue(key, values[key]))\n changed = true;\n }\n return changed;\n });\n };\n StringKeyDictionary.prototype.toMap = function (selector) {\n var _ = this, result = {};\n if (_._count)\n for (var key in _._map) {\n if (_._map.hasOwnProperty(key)) {\n var value = _._map[key];\n if (selector)\n value = selector(key, value);\n if (value !== VOID0)\n result[key] = value;\n }\n }\n return result;\n };\n StringKeyDictionary.prototype.getKeys = function () {\n return Object.keys(this._map);\n };\n StringKeyDictionary.prototype.getValues = function () {\n if (!this._count)\n return [];\n var result = Object.keys(this._map);\n for (var i = 0, len = result.length; i < len; i++) {\n result[i] = this._map[result[i]];\n }\n return result;\n };\n StringKeyDictionary.prototype.getCount = function () {\n return this._count;\n };\n return StringKeyDictionary;\n }(DictionaryBase_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = StringKeyDictionary;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport {areEqual} from \"../../Compare\";\r\nimport DictionaryBase from \"./DictionaryBase\";\r\n\r\nconst VOID0:any = void 0;\r\n\r\nexport default\r\nclass StringKeyDictionary\r\nextends DictionaryBase implements IStringKeyDictionary\r\n{\r\n\r\n\tprivate _count:number = 0;\r\n\tprivate _map:IMap = {};\r\n\r\n\tprotected _getEntry(key:string):IKeyValuePair\r\n\t{\r\n\t\treturn !this.containsKey(key)\r\n\t\t\t? null : {\r\n\t\t\tkey: key,\r\n\t\t\tvalue: this.getValue(key)\r\n\t\t}\r\n\t}\r\n\r\n\tcontainsKey(key:string):boolean\r\n\t{\r\n\t\tif(key===null || key===VOID0 || !this._count) return false;\r\n\t\treturn (key) in (this._map);\r\n\t}\r\n\r\n\tcontainsValue(value:TValue):boolean\r\n\t{\r\n\t\tif(!this._count) return false;\r\n\t\tvar map = this._map, equal:(a:any, b:any, strict?:boolean) => boolean = areEqual;\r\n\t\tfor(let key in map)\r\n\t\t{\r\n\t\t\tif(map.hasOwnProperty(key) && equal(map[key], value))\r\n\t\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\r\n\tgetValue(key:string):TValue\r\n\t{\r\n\t\tif(key===null || key===VOID0 || !this._count) return VOID0;\r\n\t\treturn this._map[key];\r\n\t}\r\n\r\n\tprotected _setValueInternal(key:string, value:TValue):boolean\r\n\t{\r\n\t\tvar _ = this, map = _._map, old = map[key];\r\n\t\tif(old!==value)\r\n\t\t{\r\n\r\n\t\t\tif(value===VOID0)\r\n\t\t\t{\r\n\t\t\t\tif((key) in (map))\r\n\t\t\t\t{\r\n\t\t\t\t\tdelete map[key];\r\n\t\t\t\t\t_._count--;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tif(!map.hasOwnProperty(key))\r\n\t\t\t\t\t_._count++;\r\n\t\t\t\tmap[key] = value;\r\n\t\t\t}\r\n\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t// Returns true if any value is updated...\r\n\timportMap(values:IMap):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn _.handleUpdate(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar changed:boolean = false;\r\n\t\t\t\tfor(let key in values)\r\n\t\t\t\t{\r\n\t\t\t\t\tif(values.hasOwnProperty(key) && _.setValue(key, values[key]))\r\n\t\t\t\t\t\tchanged = true;\r\n\t\t\t\t}\r\n\t\t\t\treturn changed;\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\ttoMap(selector?:(key:string, value:TValue) => TValue):IMap\r\n\t{\r\n\t\tvar _ = this, result:IMap = {};\r\n\t\tif(_._count) for(let key in _._map)\r\n\t\t{\r\n\t\t\tif(_._map.hasOwnProperty(key)) // This simply satisfies inspection.\r\n\t\t\t{\r\n\t\t\t\tvar value = _._map[key];\r\n\t\t\t\tif(selector)\r\n\t\t\t\t\tvalue = selector(key, value);\r\n\t\t\t\tif(value!==VOID0)\r\n\t\t\t\t\tresult[key] = value;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn result;\r\n\t}\r\n\r\n\tprotected getKeys():string[]\r\n\t{\r\n\t\treturn Object.keys(this._map);\r\n\t}\r\n\r\n\tprotected getValues():TValue[]\r\n\t{\r\n\t\tif(!this._count) return [];\r\n\t\tvar result:any[] = Object.keys(this._map);\r\n\t\tfor(let i = 0, len = result.length; i\r\nextends DictionaryBase implements IStringKeyDictionary\r\n{\r\n\r\n\tprivate _count:number = 0;\r\n\tprivate _map:IMap = {};\r\n\r\n\tprotected _getEntry(key:string):IKeyValuePair\r\n\t{\r\n\t\treturn !this.containsKey(key)\r\n\t\t\t? null : {\r\n\t\t\tkey: key,\r\n\t\t\tvalue: this.getValue(key)\r\n\t\t}\r\n\t}\r\n\r\n\tcontainsKey(key:string):boolean\r\n\t{\r\n\t\tif(key===null || key===VOID0 || !this._count) return false;\r\n\t\treturn (key) in (this._map);\r\n\t}\r\n\r\n\tcontainsValue(value:TValue):boolean\r\n\t{\r\n\t\tif(!this._count) return false;\r\n\t\tvar map = this._map, equal:(a:any, b:any, strict?:boolean) => boolean = areEqual;\r\n\t\tfor(let key in map)\r\n\t\t{\r\n\t\t\tif(map.hasOwnProperty(key) && equal(map[key], value))\r\n\t\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\r\n\tgetValue(key:string):TValue\r\n\t{\r\n\t\tif(key===null || key===VOID0 || !this._count) return VOID0;\r\n\t\treturn this._map[key];\r\n\t}\r\n\r\n\tprotected _setValueInternal(key:string, value:TValue):boolean\r\n\t{\r\n\t\tvar _ = this, map = _._map, old = map[key];\r\n\t\tif(old!==value)\r\n\t\t{\r\n\r\n\t\t\tif(value===VOID0)\r\n\t\t\t{\r\n\t\t\t\tif((key) in (map))\r\n\t\t\t\t{\r\n\t\t\t\t\tdelete map[key];\r\n\t\t\t\t\t_._count--;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tif(!map.hasOwnProperty(key))\r\n\t\t\t\t\t_._count++;\r\n\t\t\t\tmap[key] = value;\r\n\t\t\t}\r\n\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t// Returns true if any value is updated...\r\n\timportMap(values:IMap):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn _.handleUpdate(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar changed:boolean = false;\r\n\t\t\t\tfor(let key in values)\r\n\t\t\t\t{\r\n\t\t\t\t\tif(values.hasOwnProperty(key) && _.setValue(key, values[key]))\r\n\t\t\t\t\t\tchanged = true;\r\n\t\t\t\t}\r\n\t\t\t\treturn changed;\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\ttoMap(selector?:(key:string, value:TValue) => TValue):IMap\r\n\t{\r\n\t\tvar _ = this, result:IMap = {};\r\n\t\tif(_._count) for(let key in _._map)\r\n\t\t{\r\n\t\t\tif(_._map.hasOwnProperty(key)) // This simply satisfies inspection.\r\n\t\t\t{\r\n\t\t\t\tvar value = _._map[key];\r\n\t\t\t\tif(selector)\r\n\t\t\t\t\tvalue = selector(key, value);\r\n\t\t\t\tif(value!==VOID0)\r\n\t\t\t\t\tresult[key] = value;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn result;\r\n\t}\r\n\r\n\tprotected getKeys():string[]\r\n\t{\r\n\t\treturn Object.keys(this._map);\r\n\t}\r\n\r\n\tprotected getValues():TValue[]\r\n\t{\r\n\t\tif(!this._count) return [];\r\n\t\tvar result:any[] = Object.keys(this._map);\r\n\t\tfor(let i = 0, len = result.length; i /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import IndexEnumerator from "./IndexEnumerator"; -export default class ArrayEnumerator extends IndexEnumerator { +import { IndexEnumerator } from "./IndexEnumerator"; +import { IArray } from "../Array/IArray"; +export declare class ArrayEnumerator extends IndexEnumerator { constructor(arrayFactory: () => IArray, start?: number, step?: number); constructor(array: IArray, start?: number, step?: number); } +export default ArrayEnumerator; diff --git a/dist/umd.min/System/Collections/Enumeration/ArrayEnumerator.js b/dist/umd.min/System/Collections/Enumeration/ArrayEnumerator.js index 3094205a..ead0c390 100644 --- a/dist/umd.min/System/Collections/Enumeration/ArrayEnumerator.js +++ b/dist/umd.min/System/Collections/Enumeration/ArrayEnumerator.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(e,t){function o(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","./IndexEnumerator","../../Types"],e)}(function(e,t){"use strict";var o=e("./IndexEnumerator"),n=e("../../Types"),r=function(e){function t(t,o,r){void 0===o&&(o=0),void 0===r&&(r=1),e.call(this,function(){var e=n["default"].isFunction(t)?t():t;return{source:e,pointer:o,length:e?e.length:0,step:r}})}return __extends(t,e),t}(o["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=r}); +var __extends=this&&this.__extends||function(e,t){function n(){this.constructor=e}for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","./IndexEnumerator","../../Types"],e)}(function(e,t){"use strict";var n=e("./IndexEnumerator"),o=e("../../Types"),r=function(e){function t(t,n,r){void 0===n&&(n=0),void 0===r&&(r=1),e.call(this,function(){var e=o.Type.isFunction(t)?t():t;return{source:e,pointer:n,length:e?e.length:0,step:r}})}return __extends(t,e),t}(n.IndexEnumerator);t.ArrayEnumerator=r,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=r}); //# sourceMappingURL=ArrayEnumerator.js.map diff --git a/dist/umd.min/System/Collections/Enumeration/ArrayEnumerator.js.map b/dist/umd.min/System/Collections/Enumeration/ArrayEnumerator.js.map index f6660afd..057ceb82 100644 --- a/dist/umd.min/System/Collections/Enumeration/ArrayEnumerator.js.map +++ b/dist/umd.min/System/Collections/Enumeration/ArrayEnumerator.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Enumeration/ArrayEnumerator.js","System/Collections/Enumeration/ArrayEnumerator.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","IndexEnumerator_1","Types_1","ArrayEnumerator","_super","arrayOrFactory","start","step","call","array","isFunction","source","pointer","length","defineProperty","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,oBAAqB,eAAgBN,IAExE,SAAUI,EAASF,GCVtB,YAEA,IAAAM,GAAAJ,EAA4B,qBAC5BK,EAAAL,EAAiB,eAEjBM,EAAA,SAAAC,GAKC,QAAAD,GAAYE,EAAoBC,EAAkBC,GAAlB,SAAAD,IAAAA,EAAA,GAAkB,SAAAC,IAAAA,EAAA,GAEjDH,EAAAI,KAAAzB,KACC,WAEC,GAAI0B,GAAQP,EAAAA,WAAKQ,WAAWL,GAAkBA,IAAmBA,CACjE,QAAQM,OAAQF,EAAOG,QAASN,EAAOO,OAAQJ,EAAQA,EAAMI,OAAS,EAAGN,KAAMA,KAInF,MAdiCzB,WAAAqB,EAAAC,GAcjCD,GAdiCF,EAAAA,WADjCV,QAAAuB,eAAAnB,EAAA,cAAAoB,OAAA,IDsBIpB,EAAAA,WAAkBQ","file":"System/Collections/Enumeration/ArrayEnumerator.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"./IndexEnumerator\", \"../../Types\"], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var IndexEnumerator_1 = require(\"./IndexEnumerator\");\n var Types_1 = require(\"../../Types\");\n var ArrayEnumerator = (function (_super) {\n __extends(ArrayEnumerator, _super);\n function ArrayEnumerator(arrayOrFactory, start, step) {\n if (start === void 0) { start = 0; }\n if (step === void 0) { step = 1; }\n _super.call(this, function () {\n var array = Types_1.default.isFunction(arrayOrFactory) ? arrayOrFactory() : arrayOrFactory;\n return { source: array, pointer: start, length: array ? array.length : 0, step: step };\n });\n }\n return ArrayEnumerator;\n }(IndexEnumerator_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ArrayEnumerator;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport IndexEnumerator from \"./IndexEnumerator\";\r\nimport Type from \"../../Types\";\r\n\r\nexport default\r\nclass ArrayEnumerator extends IndexEnumerator\r\n{\r\n\tconstructor(arrayFactory:() => IArray, start?:number, step?:number);\r\n\tconstructor(array:IArray, start?:number, step?:number);\r\n\tconstructor(arrayOrFactory:any, start:number = 0, step:number = 1)\r\n\t{\r\n\t\tsuper(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar array = Type.isFunction(arrayOrFactory) ? arrayOrFactory() : arrayOrFactory;\r\n\t\t\t\treturn {source: array, pointer: start, length: array ? array.length : 0, step: step};\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n}\r\n\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Enumeration/ArrayEnumerator.js","System/Collections/Enumeration/ArrayEnumerator.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","IndexEnumerator_1","Types_1","ArrayEnumerator","_super","arrayOrFactory","start","step","call","array","Type","isFunction","source","pointer","length","IndexEnumerator","defineProperty","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,oBAAqB,eAAgBN,IAExE,SAAUI,EAASF,GAClB,YCXJ,IAAAM,GAAAJ,EAA8B,qBAC9BK,EAAAL,EAAmB,eAGnBM,EAAA,SAAAC,GAIC,QAAAD,GAAYE,EAAoBC,EAAkBC,GAAlB,SAAAD,IAAAA,EAAA,GAAkB,SAAAC,IAAAA,EAAA,GAEjDH,EAAAI,KAAAzB,KACC,WAEC,GAAI0B,GAAQP,EAAAQ,KAAKC,WAAWN,GAAkBA,IAAmBA,CACjE,QACCO,OAAQH,EACRI,QAASP,EACTQ,OAAQL,EAAQA,EAAMK,OAAS,EAC/BP,KAAMA,KAKX,MAnBwCzB,WAAAqB,EAAAC,GAmBxCD,GAnBwCF,EAAAc,gBAA3BpB,GAAAQ,gBAAeA,EAqB5BZ,OAAAyB,eAAArB,EAAA,cAAAsB,OAAA,IDQItB,EAAAA,WCRWQ","file":"System/Collections/Enumeration/ArrayEnumerator.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"./IndexEnumerator\", \"../../Types\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var IndexEnumerator_1 = require(\"./IndexEnumerator\");\n var Types_1 = require(\"../../Types\");\n var ArrayEnumerator = (function (_super) {\n __extends(ArrayEnumerator, _super);\n function ArrayEnumerator(arrayOrFactory, start, step) {\n if (start === void 0) { start = 0; }\n if (step === void 0) { step = 1; }\n _super.call(this, function () {\n var array = Types_1.Type.isFunction(arrayOrFactory) ? arrayOrFactory() : arrayOrFactory;\n return {\n source: array,\n pointer: start,\n length: array ? array.length : 0,\n step: step\n };\n });\n }\n return ArrayEnumerator;\n }(IndexEnumerator_1.IndexEnumerator));\n exports.ArrayEnumerator = ArrayEnumerator;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ArrayEnumerator;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {IndexEnumerator} from \"./IndexEnumerator\";\r\nimport {Type} from \"../../Types\";\r\nimport {IArray} from \"../Array/IArray\";\r\n\r\nexport class ArrayEnumerator extends IndexEnumerator\r\n{\r\n\tconstructor(arrayFactory:() => IArray, start?:number, step?:number);\r\n\tconstructor(array:IArray, start?:number, step?:number);\r\n\tconstructor(arrayOrFactory:any, start:number = 0, step:number = 1)\r\n\t{\r\n\t\tsuper(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar array = Type.isFunction(arrayOrFactory) ? arrayOrFactory() : arrayOrFactory;\r\n\t\t\t\treturn {\r\n\t\t\t\t\tsource: array,\r\n\t\t\t\t\tpointer: start,\r\n\t\t\t\t\tlength: array ? array.length : 0,\r\n\t\t\t\t\tstep: step\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n}\r\n\r\nexport default ArrayEnumerator;"]} \ No newline at end of file diff --git a/dist/umd.min/System/Collections/Enumeration/Enumerator.d.ts b/dist/umd.min/System/Collections/Enumeration/Enumerator.d.ts index 4001711b..b0c4a155 100644 --- a/dist/umd.min/System/Collections/Enumeration/Enumerator.d.ts +++ b/dist/umd.min/System/Collections/Enumeration/Enumerator.d.ts @@ -1,13 +1,11 @@ -/// -/// -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { Selector } from "../../FunctionTypes"; +import { IEnumerator } from "./IEnumerator"; +import { IEnumerable } from "./IEnumerable"; +import { IEnumerableOrArray } from "../IEnumerableOrArray"; export declare function throwIfEndless(isEndless: boolean): void; export declare const empty: IEnumerator; export declare function from(source: IEnumerableOrArray): IEnumerator; diff --git a/dist/umd.min/System/Collections/Enumeration/Enumerator.js b/dist/umd.min/System/Collections/Enumeration/Enumerator.js index 10e51776..6e2bfb1f 100644 --- a/dist/umd.min/System/Collections/Enumeration/Enumerator.js +++ b/dist/umd.min/System/Collections/Enumeration/Enumerator.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -!function(e){if("object"==typeof module&&"object"==typeof module.exports){var r=e(require,exports);void 0!==r&&(module.exports=r)}else"function"==typeof define&&define.amd&&define(["require","exports","../../Disposable/dispose","../../Types","./ArrayEnumerator","./IndexEnumerator","./UnsupportedEnumerableException"],e)}(function(e,r){"use strict";function n(e){if(e)throw new m["default"](h)}function t(e){if(Array.isArray(e)||p["default"].isString(e)){var r=e.length;if(isFinite(r)){if(r>65535)return new Array(r);var n=[];return n.length=r,n}}return[]}function u(e){if(!e)return v;if(Array.isArray(e))return new d["default"](e);if(p["default"].isArrayLike(e))return new y["default"](function(){return{source:e,length:e.length,pointer:0,step:1}});if(!p["default"].isPrimitive(e)&&o(e))return e.getEnumerator();throw new Error("Unknown enumerable.")}function o(e){return p["default"].hasMemberOfType(e,"getEnumerator",p["default"].FUNCTION)}function i(e){return p["default"].isArrayLike(e)||o(e)}function f(e){return p["default"].hasMemberOfType(e,"moveNext",p["default"].FUNCTION)}function a(e,r){if(e!==E&&null!==e){if(p["default"].isArrayLike(e)){n(!isFinite(e.length));for(var t=0;t65535)return new Array(r);var n=[];return n.length=r,n}}return[]}function o(e){if(!e)return g;if(Array.isArray(e))return new y.ArrayEnumerator(e);if(l.Type.isArrayLike(e))return new m.IndexEnumerator(function(){return{source:e,length:e.length,pointer:0,step:1}});if(!l.Type.isPrimitive(e)&&i(e))return e.getEnumerator();throw new Error("Unknown enumerable.")}function i(e){return l.Type.hasMemberOfType(e,"getEnumerator",l.Type.FUNCTION)}function u(e){return l.Type.isArrayLike(e)||i(e)}function a(e){return l.Type.hasMemberOfType(e,"moveNext",l.Type.FUNCTION)}function p(e,r){if(e!==E&&null!==e){if(l.Type.isArrayLike(e)){n(!isFinite(e.length));for(var t=0;t 65535)\n return new Array(len);\n var result = [];\n result.length = len;\n return result;\n }\n }\n return [];\n }\n var EmptyEnumerator = (function () {\n function EmptyEnumerator() {\n }\n Object.defineProperty(EmptyEnumerator.prototype, \"current\", {\n get: function () {\n return VOID0;\n },\n enumerable: true,\n configurable: true\n });\n EmptyEnumerator.prototype.moveNext = function () {\n return false;\n };\n EmptyEnumerator.prototype.nextValue = function () {\n return VOID0;\n };\n EmptyEnumerator.prototype.next = function () {\n return {\n value: VOID0,\n done: true\n };\n };\n EmptyEnumerator.prototype.reset = function () { };\n EmptyEnumerator.prototype.dispose = function () { };\n Object.defineProperty(EmptyEnumerator.prototype, \"isEndless\", {\n get: function () {\n return false;\n },\n enumerable: true,\n configurable: true\n });\n return EmptyEnumerator;\n }());\n var Empty = new EmptyEnumerator();\n Object.freeze(Empty);\n exports.empty = Empty;\n function from(source) {\n if (!source)\n return Empty;\n if (Array.isArray(source))\n return new ArrayEnumerator_1.default(source);\n if (Types_1.default.isArrayLike(source)) {\n return new IndexEnumerator_1.default(function () {\n return {\n source: source,\n length: source.length,\n pointer: 0,\n step: 1\n };\n });\n }\n if (!Types_1.default.isPrimitive(source)) {\n if (isEnumerable(source))\n return source.getEnumerator();\n }\n throw new Error(\"Unknown enumerable.\");\n }\n exports.from = from;\n function isEnumerable(instance) {\n return Types_1.default.hasMemberOfType(instance, \"getEnumerator\", Types_1.default.FUNCTION);\n }\n exports.isEnumerable = isEnumerable;\n function isEnumerableOrArrayLike(instance) {\n return Types_1.default.isArrayLike(instance) || isEnumerable(instance);\n }\n exports.isEnumerableOrArrayLike = isEnumerableOrArrayLike;\n function isEnumerator(instance) {\n return Types_1.default.hasMemberOfType(instance, \"moveNext\", Types_1.default.FUNCTION);\n }\n exports.isEnumerator = isEnumerator;\n function forEach(e, action) {\n if (e !== VOID0 && e !== null) {\n if (Types_1.default.isArrayLike(e)) {\n throwIfEndless(!isFinite(e.length));\n for (var i = 0; i < e.length; i++) {\n if (action(e[i], i) === false)\n break;\n }\n return true;\n }\n if (isEnumerator(e)) {\n throwIfEndless(e.isEndless);\n var index = 0;\n while (e.moveNext()) {\n if (action(e.current, index++) === false)\n break;\n }\n return true;\n }\n if (isEnumerable(e)) {\n throwIfEndless(e.isEndless);\n dispose_1.using(e.getEnumerator(), function (f) { return forEach(f, action); });\n return true;\n }\n return false;\n }\n }\n exports.forEach = forEach;\n function toArray(source) {\n if (source === STRING_EMPTY)\n return [];\n if (Array.isArray(source))\n return source.slice();\n var result = initArrayFrom(source);\n if (!forEach(source, function (e, i) { result[i] = e; }))\n throw new UnsupportedEnumerableException_1.default();\n return result;\n }\n exports.toArray = toArray;\n function map(source, selector) {\n var result = initArrayFrom(source);\n if (!forEach(source, function (e, i) { result[i] = selector(e); }))\n throw new UnsupportedEnumerableException_1.default();\n return result;\n }\n exports.map = map;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport {using} from \"../../Disposable/dispose\";\r\nimport Type from \"../../Types\";\r\nimport ArrayEnumerator from \"./ArrayEnumerator\";\r\nimport IndexEnumerator from \"./IndexEnumerator\";\r\nimport UnsupportedEnumerableException from \"./UnsupportedEnumerableException\";\r\n\r\nconst\r\n\tVOID0:any = void(0),\r\n\tSTRING_EMPTY:string = \"\",\r\n\tENDLESS_EXCEPTION_MESSAGE =\r\n\t\t'Cannot call forEach on an endless enumerable. '+\r\n\t\t'Would result in an infinite loop that could hang the current process.';\r\n\r\nexport function throwIfEndless(isEndless:boolean):void {\r\n\tif(isEndless) throw new UnsupportedEnumerableException(ENDLESS_EXCEPTION_MESSAGE);\r\n}\r\n\r\nfunction initArrayFrom(source:IEnumerableOrArray|IEnumerator):any[] {\r\n\tif(Array.isArray(source) || Type.isString(source)) {\r\n\t\tvar len = source.length;\r\n\t\tif(isFinite(len))\r\n\t\t{\r\n\t\t\tif(len>65535) return new Array(len);\r\n\t\t\tvar result:any[] = [];\r\n\t\t\tresult.length = len;\r\n\t\t\treturn result;\r\n\t\t}\r\n\t}\r\n\treturn [];\r\n}\r\n\r\nclass EmptyEnumerator implements IEnumerator\r\n{\r\n\tget current():any\r\n\t{\r\n\t\treturn VOID0;\r\n\t}\r\n\r\n\tmoveNext():boolean\r\n\t{\r\n\t\treturn false;\r\n\t}\r\n\r\n\tnextValue():any\r\n\t{\r\n\t\treturn VOID0;\r\n\t}\r\n\r\n\tnext():IIteratorResult\r\n\t{\r\n\t\treturn {\r\n\t\t\tvalue: VOID0,\r\n\t\t\tdone: true\r\n\t\t}\r\n\t}\r\n\r\n\treset():void { }\r\n\r\n\tdispose():void { }\r\n\r\n\tget isEndless():boolean {\r\n\t\treturn false;\r\n\t}\r\n}\r\n\r\nconst Empty = new EmptyEnumerator();\r\nObject.freeze(Empty);\r\n\r\nexport const empty:IEnumerator = Empty;\r\n\r\n// Could be array, or IEnumerable...\r\nexport function from(source:IEnumerableOrArray):IEnumerator\r\n{\r\n\t// To simplify and prevent null reference exceptions:\r\n\tif(!source)\r\n\t\treturn Empty;\r\n\r\n\tif(Array.isArray(source))\r\n\t\treturn new ArrayEnumerator(source);\r\n\r\n\tif(Type.isArrayLike(source))\r\n\t{\r\n\t\treturn new IndexEnumerator(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\treturn {\r\n\t\t\t\t\tsource: source,\r\n\t\t\t\t\tlength: source.length,\r\n\t\t\t\t\tpointer: 0,\r\n\t\t\t\t\tstep: 1\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tif(!Type.isPrimitive(source))\r\n\t{\r\n\t\tif(isEnumerable(source))\r\n\t\t\treturn source.getEnumerator();\r\n\r\n\t}\r\n\r\n\tthrow new Error(\"Unknown enumerable.\");\r\n}\r\n\r\nexport function isEnumerable(instance:any):instance is IEnumerable\r\n{\r\n\treturn Type.hasMemberOfType>(instance, \"getEnumerator\", Type.FUNCTION);\r\n}\r\n\r\nexport function isEnumerableOrArrayLike(instance:any):instance is IEnumerableOrArray\r\n{\r\n\treturn Type.isArrayLike(instance) || isEnumerable(instance);\r\n}\r\n\r\n\r\nexport function isEnumerator(instance:any):instance is IEnumerator\r\n{\r\n\treturn Type.hasMemberOfType>(instance, \"moveNext\", Type.FUNCTION);\r\n}\r\n\r\n/**\r\n * Flexible method for iterating any enumerable, enumerable, array, or array-like object.\r\n * @param e\r\n * @param action\r\n * @returns true if enumerated, false if null or unrecognized enumerable, void if nothing done\r\n */\r\nexport function forEach(\r\n\te:IEnumerableOrArray|IEnumerator,\r\n\taction:(element:T, index?:number) => any):boolean|void\r\n{\r\n\tif(e!==VOID0 && e!==null) // Allow for empty string.\r\n\t{\r\n\t\tif(Type.isArrayLike(e))\r\n\t\t{\r\n\t\t\t// Assume e.length is constant or at least doesn't deviate to infinite or NaN.\r\n\t\t\tthrowIfEndless(!isFinite(e.length));\r\n\r\n\t\t\tfor(let i = 0; i(e))\r\n\t\t{\r\n\t\t\tthrowIfEndless(e.isEndless);\r\n\r\n\t\t\tvar index = 0;\r\n\t\t\t// Return value of action can be anything, but if it is (===) false then the forEach will discontinue.\r\n\t\t\twhile(e.moveNext())\r\n\t\t\t{\r\n\t\t\t\tif(action(e.current, index++)===false)\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tif(isEnumerable(e))\r\n\t\t{\r\n\t\t\tthrowIfEndless(e.isEndless);\r\n\r\n\t\t\t// For enumerators that aren't EnumerableBase, ensure dispose is called.\r\n\t\t\tusing(\r\n\t\t\t\t(>e).getEnumerator(),\r\n\t\t\t\tf=>forEach(f, action)\r\n\t\t\t);\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n}\r\n\r\n/**\r\n * Converts any enumerable to an array.\r\n * @param source\r\n * @returns {any}\r\n */\r\nexport function toArray(\r\n\tsource:IEnumerableOrArray|IEnumerator):T[]\r\n{\r\n\tif(source===STRING_EMPTY) return [];\r\n\r\n\tif(Array.isArray(source))\r\n\t\treturn source.slice();\r\n\r\n\tvar result:T[] = initArrayFrom(source);\r\n\tif(!forEach(source,(e, i) => { result[i] = e; }))\r\n\t\tthrow new UnsupportedEnumerableException();\r\n\r\n\treturn result;\r\n}\r\n\r\n/**\r\n * Converts any enumerable to an array of selected values.\r\n * @param source\r\n * @param selector\r\n * @returns {TResult[]}\r\n */\r\nexport function map(\r\n\tsource:IEnumerableOrArray|IEnumerator,\r\n\tselector:Selector):TResult[]\r\n{\r\n\tvar result:TResult[] = initArrayFrom(source);\r\n\tif(!forEach(source,(e, i) => { result[i] = selector(e); }))\r\n\t\tthrow new UnsupportedEnumerableException();\r\n\r\n\treturn result;\r\n}"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Enumeration/Enumerator.js","System/Collections/Enumeration/Enumerator.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","throwIfEndless","isEndless","UnsupportedEnumerableException_1","UnsupportedEnumerableException","ENDLESS_EXCEPTION_MESSAGE","initArrayFrom","source","Array","isArray","Types_1","Type","isString","len","length","isFinite","result","from","Empty","ArrayEnumerator_1","ArrayEnumerator","isArrayLike","IndexEnumerator_1","IndexEnumerator","pointer","step","isPrimitive","isEnumerable","getEnumerator","Error","instance","hasMemberOfType","FUNCTION","isEnumerableOrArrayLike","isEnumerator","forEach","e","action","VOID0","i","index","moveNext","current","dispose_1","using","f","toArray","STRING_EMPTY","slice","map","selector","EmptyEnumerator","Object","defineProperty","prototype","get","enumerable","configurable","nextValue","next","value","done","reset","dispose","freeze","empty"],"mappings":"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","file":"System/Collections/Enumeration/Enumerator.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../../Disposable/dispose\", \"../../Types\", \"./ArrayEnumerator\", \"./IndexEnumerator\", \"./UnsupportedEnumerableException\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var dispose_1 = require(\"../../Disposable/dispose\");\n var Types_1 = require(\"../../Types\");\n var ArrayEnumerator_1 = require(\"./ArrayEnumerator\");\n var IndexEnumerator_1 = require(\"./IndexEnumerator\");\n var UnsupportedEnumerableException_1 = require(\"./UnsupportedEnumerableException\");\n var VOID0 = void (0), STRING_EMPTY = \"\", ENDLESS_EXCEPTION_MESSAGE = 'Cannot call forEach on an endless enumerable. ' +\n 'Would result in an infinite loop that could hang the current process.';\n function throwIfEndless(isEndless) {\n if (isEndless)\n throw new UnsupportedEnumerableException_1.UnsupportedEnumerableException(ENDLESS_EXCEPTION_MESSAGE);\n }\n exports.throwIfEndless = throwIfEndless;\n function initArrayFrom(source) {\n if (Array.isArray(source) || Types_1.Type.isString(source)) {\n var len = source.length;\n if (isFinite(len)) {\n if (len > 65535)\n return new Array(len);\n var result = [];\n result.length = len;\n return result;\n }\n }\n return [];\n }\n var EmptyEnumerator = (function () {\n function EmptyEnumerator() {\n }\n Object.defineProperty(EmptyEnumerator.prototype, \"current\", {\n get: function () {\n return VOID0;\n },\n enumerable: true,\n configurable: true\n });\n EmptyEnumerator.prototype.moveNext = function () {\n return false;\n };\n EmptyEnumerator.prototype.nextValue = function () {\n return VOID0;\n };\n EmptyEnumerator.prototype.next = function () {\n return {\n value: VOID0,\n done: true\n };\n };\n EmptyEnumerator.prototype.reset = function () { };\n EmptyEnumerator.prototype.dispose = function () { };\n Object.defineProperty(EmptyEnumerator.prototype, \"isEndless\", {\n get: function () {\n return false;\n },\n enumerable: true,\n configurable: true\n });\n return EmptyEnumerator;\n }());\n var Empty = new EmptyEnumerator();\n Object.freeze(Empty);\n exports.empty = Empty;\n function from(source) {\n if (!source)\n return Empty;\n if (Array.isArray(source))\n return new ArrayEnumerator_1.ArrayEnumerator(source);\n if (Types_1.Type.isArrayLike(source)) {\n return new IndexEnumerator_1.IndexEnumerator(function () {\n return {\n source: source,\n length: source.length,\n pointer: 0,\n step: 1\n };\n });\n }\n if (!Types_1.Type.isPrimitive(source)) {\n if (isEnumerable(source))\n return source.getEnumerator();\n }\n throw new Error(\"Unknown enumerable.\");\n }\n exports.from = from;\n function isEnumerable(instance) {\n return Types_1.Type.hasMemberOfType(instance, \"getEnumerator\", Types_1.Type.FUNCTION);\n }\n exports.isEnumerable = isEnumerable;\n function isEnumerableOrArrayLike(instance) {\n return Types_1.Type.isArrayLike(instance) || isEnumerable(instance);\n }\n exports.isEnumerableOrArrayLike = isEnumerableOrArrayLike;\n function isEnumerator(instance) {\n return Types_1.Type.hasMemberOfType(instance, \"moveNext\", Types_1.Type.FUNCTION);\n }\n exports.isEnumerator = isEnumerator;\n function forEach(e, action) {\n if (e !== VOID0 && e !== null) {\n if (Types_1.Type.isArrayLike(e)) {\n throwIfEndless(!isFinite(e.length));\n for (var i = 0; i < e.length; i++) {\n if (action(e[i], i) === false)\n break;\n }\n return true;\n }\n if (isEnumerator(e)) {\n throwIfEndless(e.isEndless);\n var index = 0;\n while (e.moveNext()) {\n if (action(e.current, index++) === false)\n break;\n }\n return true;\n }\n if (isEnumerable(e)) {\n throwIfEndless(e.isEndless);\n dispose_1.using(e.getEnumerator(), function (f) { return forEach(f, action); });\n return true;\n }\n return false;\n }\n }\n exports.forEach = forEach;\n function toArray(source) {\n if (source === STRING_EMPTY)\n return [];\n if (Array.isArray(source))\n return source.slice();\n var result = initArrayFrom(source);\n if (!forEach(source, function (e, i) { result[i] = e; }))\n throw new UnsupportedEnumerableException_1.UnsupportedEnumerableException();\n return result;\n }\n exports.toArray = toArray;\n function map(source, selector) {\n var result = initArrayFrom(source);\n if (!forEach(source, function (e, i) { result[i] = selector(e); }))\n throw new UnsupportedEnumerableException_1.UnsupportedEnumerableException();\n return result;\n }\n exports.map = map;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {using} from \"../../Disposable/dispose\";\r\nimport {Type} from \"../../Types\";\r\nimport {ArrayEnumerator} from \"./ArrayEnumerator\";\r\nimport {IndexEnumerator} from \"./IndexEnumerator\";\r\nimport {UnsupportedEnumerableException} from \"./UnsupportedEnumerableException\";\r\nimport {Selector} from \"../../FunctionTypes\";\r\nimport {IEnumerator} from \"./IEnumerator\";\r\nimport {IEnumerable} from \"./IEnumerable\";\r\nimport {IIteratorResult} from \"./IIterator\";\r\nimport {IEnumerableOrArray} from \"../IEnumerableOrArray\";\r\n\r\nconst\r\n\tVOID0:any = void(0),\r\n\tSTRING_EMPTY:string = \"\",\r\n\tENDLESS_EXCEPTION_MESSAGE =\r\n\t\t'Cannot call forEach on an endless enumerable. ' +\r\n\t\t'Would result in an infinite loop that could hang the current process.';\r\n\r\nexport function throwIfEndless(isEndless:boolean):void\r\n{\r\n\tif(isEndless) throw new UnsupportedEnumerableException(ENDLESS_EXCEPTION_MESSAGE);\r\n}\r\n\r\nfunction initArrayFrom(source:IEnumerableOrArray|IEnumerator):any[]\r\n{\r\n\tif(Array.isArray(source) || Type.isString(source))\r\n\t{\r\n\t\tvar len = source.length;\r\n\t\tif(isFinite(len))\r\n\t\t{\r\n\t\t\tif(len>65535) return new Array(len);\r\n\t\t\tvar result:any[] = [];\r\n\t\t\tresult.length = len;\r\n\t\t\treturn result;\r\n\t\t}\r\n\t}\r\n\treturn [];\r\n}\r\n\r\nclass EmptyEnumerator implements IEnumerator\r\n{\r\n\tget current():any\r\n\t{\r\n\t\treturn VOID0;\r\n\t}\r\n\r\n\tmoveNext():boolean\r\n\t{\r\n\t\treturn false;\r\n\t}\r\n\r\n\tnextValue():any\r\n\t{\r\n\t\treturn VOID0;\r\n\t}\r\n\r\n\tnext():IIteratorResult\r\n\t{\r\n\t\treturn {\r\n\t\t\tvalue: VOID0,\r\n\t\t\tdone: true\r\n\t\t}\r\n\t}\r\n\r\n\treset():void { }\r\n\r\n\tdispose():void { }\r\n\r\n\tget isEndless():boolean\r\n\t{\r\n\t\treturn false;\r\n\t}\r\n}\r\n\r\nconst Empty = new EmptyEnumerator();\r\nObject.freeze(Empty);\r\n\r\nexport const empty:IEnumerator = Empty;\r\n\r\n// Could be array, or IEnumerable...\r\nexport function from(source:IEnumerableOrArray):IEnumerator\r\n{\r\n\t// To simplify and prevent null reference exceptions:\r\n\tif(!source)\r\n\t\treturn Empty;\r\n\r\n\tif(Array.isArray(source))\r\n\t\treturn new ArrayEnumerator(source);\r\n\r\n\tif(Type.isArrayLike(source))\r\n\t{\r\n\t\treturn new IndexEnumerator(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\treturn {\r\n\t\t\t\t\tsource: source,\r\n\t\t\t\t\tlength: source.length,\r\n\t\t\t\t\tpointer: 0,\r\n\t\t\t\t\tstep: 1\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tif(!Type.isPrimitive(source))\r\n\t{\r\n\t\tif(isEnumerable(source))\r\n\t\t\treturn source.getEnumerator();\r\n\r\n\t}\r\n\r\n\tthrow new Error(\"Unknown enumerable.\");\r\n}\r\n\r\nexport function isEnumerable(instance:any):instance is IEnumerable\r\n{\r\n\treturn Type.hasMemberOfType>(instance, \"getEnumerator\", Type.FUNCTION);\r\n}\r\n\r\nexport function isEnumerableOrArrayLike(instance:any):instance is IEnumerableOrArray\r\n{\r\n\treturn Type.isArrayLike(instance) || isEnumerable(instance);\r\n}\r\n\r\n\r\nexport function isEnumerator(instance:any):instance is IEnumerator\r\n{\r\n\treturn Type.hasMemberOfType>(instance, \"moveNext\", Type.FUNCTION);\r\n}\r\n\r\n/**\r\n * Flexible method for iterating any enumerable, enumerable, array, or array-like object.\r\n * @param e\r\n * @param action\r\n * @returns true if enumerated, false if null or unrecognized enumerable, void if nothing done\r\n */\r\nexport function forEach(\r\n\te:IEnumerableOrArray|IEnumerator,\r\n\taction:(element:T, index?:number) => any):boolean|void\r\n{\r\n\tif(e!==VOID0 && e!==null) // Allow for empty string.\r\n\t{\r\n\t\tif(Type.isArrayLike(e))\r\n\t\t{\r\n\t\t\t// Assume e.length is constant or at least doesn't deviate to infinite or NaN.\r\n\t\t\tthrowIfEndless(!isFinite(e.length));\r\n\r\n\t\t\tfor(let i = 0; i(e))\r\n\t\t{\r\n\t\t\tthrowIfEndless(e.isEndless);\r\n\r\n\t\t\tvar index = 0;\r\n\t\t\t// Return value of action can be anything, but if it is (===) false then the forEach will discontinue.\r\n\t\t\twhile(e.moveNext())\r\n\t\t\t{\r\n\t\t\t\tif(action(e.current, index++)===false)\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tif(isEnumerable(e))\r\n\t\t{\r\n\t\t\tthrowIfEndless(e.isEndless);\r\n\r\n\t\t\t// For enumerators that aren't EnumerableBase, ensure dispose is called.\r\n\t\t\tusing(\r\n\t\t\t\t(>e).getEnumerator(),\r\n\t\t\t\tf=>forEach(f, action)\r\n\t\t\t);\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n}\r\n\r\n/**\r\n * Converts any enumerable to an array.\r\n * @param source\r\n * @returns {any}\r\n */\r\nexport function toArray(\r\n\tsource:IEnumerableOrArray|IEnumerator):T[]\r\n{\r\n\tif(source===STRING_EMPTY) return [];\r\n\r\n\tif(Array.isArray(source))\r\n\t\treturn source.slice();\r\n\r\n\tvar result:T[] = initArrayFrom(source);\r\n\tif(!forEach(source, (e, i) => { result[i] = e; }))\r\n\t\tthrow new UnsupportedEnumerableException();\r\n\r\n\treturn result;\r\n}\r\n\r\n/**\r\n * Converts any enumerable to an array of selected values.\r\n * @param source\r\n * @param selector\r\n * @returns {TResult[]}\r\n */\r\nexport function map(\r\n\tsource:IEnumerableOrArray|IEnumerator,\r\n\tselector:Selector):TResult[]\r\n{\r\n\tvar result:TResult[] = initArrayFrom(source);\r\n\tif(!forEach(source, (e, i) => { result[i] = selector(e); }))\r\n\t\tthrow new UnsupportedEnumerableException();\r\n\r\n\treturn result;\r\n}"]} \ No newline at end of file diff --git a/dist/umd.min/System/Collections/Enumeration/EnumeratorBase.d.ts b/dist/umd.min/System/Collections/Enumeration/EnumeratorBase.d.ts index 8ed548b8..e86eaee3 100644 --- a/dist/umd.min/System/Collections/Enumeration/EnumeratorBase.d.ts +++ b/dist/umd.min/System/Collections/Enumeration/EnumeratorBase.d.ts @@ -1,13 +1,12 @@ -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import DisposableBase from "../../Disposable/DisposableBase"; -export default class EnumeratorBase extends DisposableBase implements IEnumerator { +import { DisposableBase } from "../../Disposable/DisposableBase"; +import { IEnumerator } from "./IEnumerator"; +import { IIteratorResult } from "./IIterator"; +import { IYield } from "./IYield"; +export declare class EnumeratorBase extends DisposableBase implements IEnumerator { private _initializer; private _tryGetNext; private _yielder; @@ -24,3 +23,4 @@ export default class EnumeratorBase extends DisposableBase implements IEnumer next(): IIteratorResult; protected _onDispose(): void; } +export default EnumeratorBase; diff --git a/dist/umd.min/System/Collections/Enumeration/EnumeratorBase.js b/dist/umd.min/System/Collections/Enumeration/EnumeratorBase.js index 81c0576c..48f632b3 100644 --- a/dist/umd.min/System/Collections/Enumeration/EnumeratorBase.js +++ b/dist/umd.min/System/Collections/Enumeration/EnumeratorBase.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../../Types","../../Disposable/DisposableBase","../../Disposable/ObjectPool"],e)}(function(e,t){"use strict";function r(e){return n||(n=new u["default"](40,function(){return new a})),e?(e.yieldBreak(),void n.add(e)):n.take()}var n,i,o=e("../../Types"),s=e("../../Disposable/DisposableBase"),u=e("../../Disposable/ObjectPool"),l=void 0,a=function(){function e(){this._current=l}return Object.defineProperty(e.prototype,"current",{get:function(){return this._current},enumerable:!0,configurable:!0}),e.prototype.yieldReturn=function(e){return this._current=e,!0},e.prototype.yieldBreak=function(){return this._current=l,!1},e.prototype.dispose=function(){this.yieldBreak()},e}();!function(e){e[e.Before=0]="Before",e[e.Running=1]="Running",e[e.After=2]="After"}(i||(i={}));var c=function(e){function t(t,r,n,i){e.call(this),this._initializer=t,this._tryGetNext=r,this.reset(),o["default"].isBoolean(i)?this._isEndless=i:o["default"].isBoolean(n)&&(this._isEndless=n),o["default"].isFunction(n)&&(this._disposer=n)}return __extends(t,e),Object.defineProperty(t.prototype,"current",{get:function(){return this._yielder.current},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isEndless",{get:function(){return this._isEndless},enumerable:!0,configurable:!0}),t.prototype.reset=function(){var e=this;e.throwIfDisposed();var t=e._yielder;t?t.yieldBreak():e._yielder=r(),e._state=i.Before},t.prototype.moveNext=function(){var e=this;try{switch(e._state){case i.Before:e._state=i.Running;var t=e._initializer;t&&t();case i.Running:return e._tryGetNext(e._yielder)?!0:(this.dispose(),!1);case i.After:return!1}}catch(r){throw this.dispose(),r}},t.prototype.nextValue=function(){return this.moveNext()?this._yielder.current:l},t.prototype.next=function(){return this.moveNext()?{value:this._yielder.current,done:!1}:{value:l,done:!0}},t.prototype._onDispose=function(){var e=this,t=e._disposer;e._initializer=null,e._disposer=null;var n=e._yielder;e._yielder=null,r(n);try{t&&t()}finally{this._state=i.After}},t}(s["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=c}); +var __extends=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../../Types","../../Disposable/DisposableBase","../../Disposable/ObjectPool"],e)}(function(e,t){"use strict";function r(e){return n||(n=new u.ObjectPool(40,function(){return new p})),e?(e.yieldBreak(),void n.add(e)):n.take()}var n,i,o=e("../../Types"),s=e("../../Disposable/DisposableBase"),u=e("../../Disposable/ObjectPool"),l=void 0,p=function(){function e(){this._current=l}return Object.defineProperty(e.prototype,"current",{get:function(){return this._current},enumerable:!0,configurable:!0}),e.prototype.yieldReturn=function(e){return this._current=e,!0},e.prototype.yieldBreak=function(){return this._current=l,!1},e.prototype.dispose=function(){this.yieldBreak()},e}();!function(e){e[e.Before=0]="Before",e[e.Running=1]="Running",e[e.After=2]="After"}(i||(i={}));var a=function(e){function t(t,r,n,i){e.call(this),this._initializer=t,this._tryGetNext=r,this.reset(),o.Type.isBoolean(i)?this._isEndless=i:o.Type.isBoolean(n)&&(this._isEndless=n),o.Type.isFunction(n)&&(this._disposer=n)}return __extends(t,e),Object.defineProperty(t.prototype,"current",{get:function(){return this._yielder.current},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isEndless",{get:function(){return this._isEndless},enumerable:!0,configurable:!0}),t.prototype.reset=function(){var e=this;e.throwIfDisposed();var t=e._yielder;t?t.yieldBreak():e._yielder=r(),e._state=i.Before},t.prototype.moveNext=function(){var e=this;try{switch(e._state){case i.Before:e._state=i.Running;var t=e._initializer;t&&t();case i.Running:return e._tryGetNext(e._yielder)?!0:(this.dispose(),!1);case i.After:return!1}}catch(r){throw this.dispose(),r}},t.prototype.nextValue=function(){return this.moveNext()?this._yielder.current:l},t.prototype.next=function(){return this.moveNext()?{value:this._yielder.current,done:!1}:{value:l,done:!0}},t.prototype._onDispose=function(){var e=this,t=e._disposer;e._initializer=null,e._disposer=null;var n=e._yielder;e._yielder=null,r(n);try{t&&t()}finally{this._state=i.After}},t}(s.DisposableBase);t.EnumeratorBase=a,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=a}); //# sourceMappingURL=EnumeratorBase.js.map diff --git a/dist/umd.min/System/Collections/Enumeration/EnumeratorBase.js.map b/dist/umd.min/System/Collections/Enumeration/EnumeratorBase.js.map index 350ca728..8be26639 100644 --- a/dist/umd.min/System/Collections/Enumeration/EnumeratorBase.js.map +++ b/dist/umd.min/System/Collections/Enumeration/EnumeratorBase.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Enumeration/EnumeratorBase.js","System/Collections/Enumeration/EnumeratorBase.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","yielder","recycle","yielderPool","ObjectPool_1","Yielder","yieldBreak","add","take","EnumeratorState","Types_1","DisposableBase_1","VOID0","_current","defineProperty","get","enumerable","configurable","yieldReturn","value","dispose","EnumeratorBase","_super","_initializer","_tryGetNext","disposer","isEndless","call","reset","isBoolean","_isEndless","isFunction","_disposer","_yielder","current","_","throwIfDisposed","y","_state","Before","moveNext","Running","initializer","After","e","nextValue","next","done","_onDispose"],"mappings":"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","file":"System/Collections/Enumeration/EnumeratorBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../../Types\", \"../../Disposable/DisposableBase\", \"../../Disposable/ObjectPool\"], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var Types_1 = require(\"../../Types\");\n var DisposableBase_1 = require(\"../../Disposable/DisposableBase\");\n var ObjectPool_1 = require(\"../../Disposable/ObjectPool\");\n var VOID0 = void (0);\n var yielderPool;\n function yielder(recycle) {\n if (!yielderPool)\n yielderPool\n = new ObjectPool_1.default(40, function () { return new Yielder(); });\n if (!recycle)\n return yielderPool.take();\n recycle.yieldBreak();\n yielderPool.add(recycle);\n }\n var Yielder = (function () {\n function Yielder() {\n this._current = VOID0;\n }\n Object.defineProperty(Yielder.prototype, \"current\", {\n get: function () { return this._current; },\n enumerable: true,\n configurable: true\n });\n Yielder.prototype.yieldReturn = function (value) {\n this._current = value;\n return true;\n };\n Yielder.prototype.yieldBreak = function () {\n this._current = VOID0;\n return false;\n };\n Yielder.prototype.dispose = function () {\n this.yieldBreak();\n };\n return Yielder;\n }());\n var EnumeratorState;\n (function (EnumeratorState) {\n EnumeratorState[EnumeratorState[\"Before\"] = 0] = \"Before\";\n EnumeratorState[EnumeratorState[\"Running\"] = 1] = \"Running\";\n EnumeratorState[EnumeratorState[\"After\"] = 2] = \"After\";\n })(EnumeratorState || (EnumeratorState = {}));\n var EnumeratorBase = (function (_super) {\n __extends(EnumeratorBase, _super);\n function EnumeratorBase(_initializer, _tryGetNext, disposer, isEndless) {\n _super.call(this);\n this._initializer = _initializer;\n this._tryGetNext = _tryGetNext;\n this.reset();\n if (Types_1.default.isBoolean(isEndless))\n this._isEndless = isEndless;\n else if (Types_1.default.isBoolean(disposer))\n this._isEndless = disposer;\n if (Types_1.default.isFunction(disposer))\n this._disposer = disposer;\n }\n Object.defineProperty(EnumeratorBase.prototype, \"current\", {\n get: function () {\n return this._yielder.current;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EnumeratorBase.prototype, \"isEndless\", {\n get: function () {\n return this._isEndless;\n },\n enumerable: true,\n configurable: true\n });\n EnumeratorBase.prototype.reset = function () {\n var _ = this;\n _.throwIfDisposed();\n var y = _._yielder;\n if (y)\n y.yieldBreak();\n else\n _._yielder = yielder();\n _._state = EnumeratorState.Before;\n };\n EnumeratorBase.prototype.moveNext = function () {\n var _ = this;\n try {\n switch (_._state) {\n case EnumeratorState.Before:\n _._state = EnumeratorState.Running;\n var initializer = _._initializer;\n if (initializer)\n initializer();\n case EnumeratorState.Running:\n if (_._tryGetNext(_._yielder)) {\n return true;\n }\n else {\n this.dispose();\n return false;\n }\n case EnumeratorState.After:\n return false;\n }\n }\n catch (e) {\n this.dispose();\n throw e;\n }\n };\n EnumeratorBase.prototype.nextValue = function () {\n return this.moveNext()\n ? this._yielder.current\n : VOID0;\n };\n EnumeratorBase.prototype.next = function () {\n return this.moveNext() ?\n {\n value: this._yielder.current,\n done: false\n } : {\n value: VOID0,\n done: true\n };\n };\n EnumeratorBase.prototype._onDispose = function () {\n var _ = this, disposer = _._disposer;\n _._initializer = null;\n _._disposer = null;\n var y = _._yielder;\n _._yielder = null;\n yielder(y);\n try {\n if (disposer)\n disposer();\n }\n finally {\n this._state = EnumeratorState.After;\n }\n };\n return EnumeratorBase;\n }(DisposableBase_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = EnumeratorBase;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport Type from \"../../Types\";\r\nimport DisposableBase from \"../../Disposable/DisposableBase\";\r\nimport ObjectPool from \"../../Disposable/ObjectPool\";\r\n\r\nconst VOID0:any = void(0);\r\n\r\nvar yielderPool:ObjectPool>;\r\nfunction yielder():Yielder;\r\nfunction yielder(recycle?:Yielder):void;\r\nfunction yielder(recycle?:Yielder):Yielder\r\n{\r\n\tif(!yielderPool)\r\n\t\tyielderPool\r\n\t\t\t= new ObjectPool>(40, ()=>new Yielder());\r\n\tif(!recycle) return yielderPool.take();\r\n\trecycle.yieldBreak();\r\n\tyielderPool.add(recycle);\r\n}\r\n\r\nclass Yielder implements IYield, IDisposable\r\n{\r\n\tprivate _current:T = VOID0;\r\n\tget current():T { return this._current; }\r\n\r\n\tyieldReturn(value:T):boolean\r\n\t{\r\n\t\tthis._current = value;\r\n\t\treturn true;\r\n\t}\r\n\r\n\tyieldBreak():boolean\r\n\t{\r\n\t\tthis._current = VOID0;\r\n\t\treturn false;\r\n\t}\r\n\r\n\tdispose():void\r\n\t{\r\n\t\tthis.yieldBreak();\r\n\t}\r\n}\r\n\r\ntype ActionVoid = ()=>void;\r\n\r\n// IEnumerator State\r\nenum EnumeratorState { Before, Running, After }\r\n\r\n// \"Enumerator\" is conflict JScript's \"Enumerator\"\r\n// Naming this class EnumeratorBase to avoid collision with IE.\r\nexport default\r\nclass EnumeratorBase extends DisposableBase implements IEnumerator\r\n{\r\n\r\n\tprivate _yielder:Yielder;\r\n\tprivate _state:EnumeratorState;\r\n\tprivate _disposer:()=>void;\r\n\r\n\tget current():T\r\n\t{\r\n\t\treturn this._yielder.current;\r\n\t}\r\n\r\n\tconstructor(\r\n\t\tinitializer:() => void,\r\n\t\ttryGetNext:(yielder:IYield) => boolean,\r\n\t\tisEndless?:boolean);\r\n\tconstructor(\r\n\t\tinitializer:() => void,\r\n\t\ttryGetNext:(yielder:IYield) => boolean,\r\n\t\tdisposer?:()=>void,\r\n\t\tisEndless?:boolean);\r\n\tconstructor(\r\n\t\tprivate _initializer:() => void,\r\n\t\tprivate _tryGetNext:(yielder:IYield) => boolean,\r\n\t\tdisposer?:ActionVoid|boolean,\r\n\t\tisEndless?:boolean)\r\n\t{\r\n\t\tsuper();\r\n\t\tthis.reset();\r\n\t\tif(Type.isBoolean(isEndless))\r\n\t\t\tthis._isEndless = isEndless;\r\n\t\telse if(Type.isBoolean(disposer))\r\n\t\t\tthis._isEndless = disposer;\r\n\r\n\t\tif(Type.isFunction(disposer))\r\n\t\t\tthis._disposer = disposer;\r\n\t}\r\n\r\n\tprotected _isEndless:boolean;\r\n\t/*\r\n\t * Provides a mechanism to indicate if this enumerable never ends.\r\n\t * If set to true, some operations that expect a finite result may throw.\r\n\t * Explicit false means it has an end.\r\n\t * Implicit void means unknown.\r\n\t */\r\n\tget isEndless():boolean {\r\n\t\treturn this._isEndless;\r\n\t}\r\n\r\n\treset():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\tvar y = _._yielder;\r\n\t\tif(y) y.yieldBreak(); // Already exists? Reset.\r\n\t\telse _._yielder = yielder(); // New? Get one from the object pool.\r\n\t\t_._state = EnumeratorState.Before;\r\n\t}\r\n\r\n\tmoveNext():boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\ttry\r\n\t\t{\r\n\t\t\tswitch(_._state)\r\n\t\t\t{\r\n\t\t\t\tcase EnumeratorState.Before:\r\n\t\t\t\t\t_._state = EnumeratorState.Running;\r\n\t\t\t\t\tvar initializer = _._initializer;\r\n\t\t\t\t\tif(initializer)\r\n\t\t\t\t\t\tinitializer();\r\n\t\t\t\t// fall through\r\n\t\t\t\tcase EnumeratorState.Running:\r\n\t\t\t\t\tif(_._tryGetNext(_._yielder))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthis.dispose();\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\tcase EnumeratorState.After:\r\n\t\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\t\tcatch(e)\r\n\t\t{\r\n\t\t\tthis.dispose();\r\n\t\t\tthrow e;\r\n\t\t}\r\n\t}\r\n\r\n\tnextValue():T\r\n\t{\r\n\t\treturn this.moveNext()\r\n\t\t\t? this._yielder.current\r\n\t\t\t: VOID0;\r\n\t}\r\n\r\n\t/**\r\n\t * Exposed for compatibility with generators.\r\n\t */\r\n\tnext():IIteratorResult\r\n\t{\r\n\t\treturn this.moveNext() ?\r\n\t\t{\r\n\t\t\tvalue: this._yielder.current,\r\n\t\t\tdone: false\r\n\t\t} : {\r\n\t\t\tvalue: VOID0,\r\n\t\t\tdone: true\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tvar _ = this, disposer = _._disposer;\r\n\r\n\t\t_._initializer = null;\r\n\t\t_._disposer = null;\r\n\r\n\r\n\t\tvar y = _._yielder;\r\n\t\t_._yielder = null;\r\n\t\tyielder(y);\r\n\r\n\t\ttry\r\n\t\t{\r\n\t\t\tif(disposer)\r\n\t\t\t\tdisposer();\r\n\t\t}\r\n\t\tfinally\r\n\t\t{\r\n\t\t\t//if(this._state==EnumeratorState.Running)\r\n\t\t\tthis._state = EnumeratorState.After;\r\n\t\t}\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Enumeration/EnumeratorBase.js","System/Collections/Enumeration/EnumeratorBase.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","yielder","recycle","yielderPool","ObjectPool_1","ObjectPool","Yielder","yieldBreak","add","take","EnumeratorState","Types_1","DisposableBase_1","VOID0","_current","defineProperty","get","enumerable","configurable","yieldReturn","value","dispose","EnumeratorBase","_super","_initializer","_tryGetNext","disposer","isEndless","call","reset","Type","isBoolean","_isEndless","isFunction","_disposer","_yielder","current","_","throwIfDisposed","y","_state","Before","moveNext","Running","initializer","After","e","nextValue","next","done","_onDispose","DisposableBase"],"mappings":"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","file":"System/Collections/Enumeration/EnumeratorBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../../Types\", \"../../Disposable/DisposableBase\", \"../../Disposable/ObjectPool\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var Types_1 = require(\"../../Types\");\n var DisposableBase_1 = require(\"../../Disposable/DisposableBase\");\n var ObjectPool_1 = require(\"../../Disposable/ObjectPool\");\n var VOID0 = void (0);\n var yielderPool;\n function yielder(recycle) {\n if (!yielderPool)\n yielderPool\n = new ObjectPool_1.ObjectPool(40, function () { return new Yielder(); });\n if (!recycle)\n return yielderPool.take();\n recycle.yieldBreak();\n yielderPool.add(recycle);\n }\n var Yielder = (function () {\n function Yielder() {\n this._current = VOID0;\n }\n Object.defineProperty(Yielder.prototype, \"current\", {\n get: function () { return this._current; },\n enumerable: true,\n configurable: true\n });\n Yielder.prototype.yieldReturn = function (value) {\n this._current = value;\n return true;\n };\n Yielder.prototype.yieldBreak = function () {\n this._current = VOID0;\n return false;\n };\n Yielder.prototype.dispose = function () {\n this.yieldBreak();\n };\n return Yielder;\n }());\n var EnumeratorState;\n (function (EnumeratorState) {\n EnumeratorState[EnumeratorState[\"Before\"] = 0] = \"Before\";\n EnumeratorState[EnumeratorState[\"Running\"] = 1] = \"Running\";\n EnumeratorState[EnumeratorState[\"After\"] = 2] = \"After\";\n })(EnumeratorState || (EnumeratorState = {}));\n var EnumeratorBase = (function (_super) {\n __extends(EnumeratorBase, _super);\n function EnumeratorBase(_initializer, _tryGetNext, disposer, isEndless) {\n _super.call(this);\n this._initializer = _initializer;\n this._tryGetNext = _tryGetNext;\n this.reset();\n if (Types_1.Type.isBoolean(isEndless))\n this._isEndless = isEndless;\n else if (Types_1.Type.isBoolean(disposer))\n this._isEndless = disposer;\n if (Types_1.Type.isFunction(disposer))\n this._disposer = disposer;\n }\n Object.defineProperty(EnumeratorBase.prototype, \"current\", {\n get: function () {\n return this._yielder.current;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EnumeratorBase.prototype, \"isEndless\", {\n get: function () {\n return this._isEndless;\n },\n enumerable: true,\n configurable: true\n });\n EnumeratorBase.prototype.reset = function () {\n var _ = this;\n _.throwIfDisposed();\n var y = _._yielder;\n if (y)\n y.yieldBreak();\n else\n _._yielder = yielder();\n _._state = EnumeratorState.Before;\n };\n EnumeratorBase.prototype.moveNext = function () {\n var _ = this;\n try {\n switch (_._state) {\n case EnumeratorState.Before:\n _._state = EnumeratorState.Running;\n var initializer = _._initializer;\n if (initializer)\n initializer();\n case EnumeratorState.Running:\n if (_._tryGetNext(_._yielder)) {\n return true;\n }\n else {\n this.dispose();\n return false;\n }\n case EnumeratorState.After:\n return false;\n }\n }\n catch (e) {\n this.dispose();\n throw e;\n }\n };\n EnumeratorBase.prototype.nextValue = function () {\n return this.moveNext()\n ? this._yielder.current\n : VOID0;\n };\n EnumeratorBase.prototype.next = function () {\n return this.moveNext() ?\n {\n value: this._yielder.current,\n done: false\n } : {\n value: VOID0,\n done: true\n };\n };\n EnumeratorBase.prototype._onDispose = function () {\n var _ = this, disposer = _._disposer;\n _._initializer = null;\n _._disposer = null;\n var y = _._yielder;\n _._yielder = null;\n yielder(y);\n try {\n if (disposer)\n disposer();\n }\n finally {\n this._state = EnumeratorState.After;\n }\n };\n return EnumeratorBase;\n }(DisposableBase_1.DisposableBase));\n exports.EnumeratorBase = EnumeratorBase;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = EnumeratorBase;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {Type} from \"../../Types\";\r\nimport {DisposableBase} from \"../../Disposable/DisposableBase\";\r\nimport {ObjectPool} from \"../../Disposable/ObjectPool\";\r\nimport {IDisposable} from \"../../Disposable/IDisposable\";\r\nimport {IEnumerator} from \"./IEnumerator\";\r\nimport {IIteratorResult} from \"./IIterator\";\r\nimport {IYield} from \"./IYield\";\r\n\r\nconst VOID0:any = void(0);\r\n\r\nvar yielderPool:ObjectPool>;\r\nfunction yielder():Yielder;\r\nfunction yielder(recycle?:Yielder):void;\r\nfunction yielder(recycle?:Yielder):Yielder\r\n{\r\n\tif(!yielderPool)\r\n\t\tyielderPool\r\n\t\t\t= new ObjectPool>(40, ()=>new Yielder());\r\n\tif(!recycle) return yielderPool.take();\r\n\trecycle.yieldBreak();\r\n\tyielderPool.add(recycle);\r\n}\r\n\r\nclass Yielder implements IYield, IDisposable\r\n{\r\n\tprivate _current:T = VOID0;\r\n\tget current():T { return this._current; }\r\n\r\n\tyieldReturn(value:T):boolean\r\n\t{\r\n\t\tthis._current = value;\r\n\t\treturn true;\r\n\t}\r\n\r\n\tyieldBreak():boolean\r\n\t{\r\n\t\tthis._current = VOID0;\r\n\t\treturn false;\r\n\t}\r\n\r\n\tdispose():void\r\n\t{\r\n\t\tthis.yieldBreak();\r\n\t}\r\n}\r\n\r\ntype ActionVoid = ()=>void;\r\n\r\n// IEnumerator State\r\nenum EnumeratorState { Before, Running, After }\r\n\r\n// \"Enumerator\" is conflict JScript's \"Enumerator\"\r\n// Naming this class EnumeratorBase to avoid collision with IE.\r\nexport class EnumeratorBase extends DisposableBase implements IEnumerator\r\n{\r\n\r\n\tprivate _yielder:Yielder;\r\n\tprivate _state:EnumeratorState;\r\n\tprivate _disposer:()=>void;\r\n\r\n\tget current():T\r\n\t{\r\n\t\treturn this._yielder.current;\r\n\t}\r\n\r\n\tconstructor(\r\n\t\tinitializer:() => void,\r\n\t\ttryGetNext:(yielder:IYield) => boolean,\r\n\t\tisEndless?:boolean);\r\n\tconstructor(\r\n\t\tinitializer:() => void,\r\n\t\ttryGetNext:(yielder:IYield) => boolean,\r\n\t\tdisposer?:()=>void,\r\n\t\tisEndless?:boolean);\r\n\tconstructor(\r\n\t\tprivate _initializer:() => void,\r\n\t\tprivate _tryGetNext:(yielder:IYield) => boolean,\r\n\t\tdisposer?:ActionVoid|boolean,\r\n\t\tisEndless?:boolean)\r\n\t{\r\n\t\tsuper();\r\n\t\tthis.reset();\r\n\t\tif(Type.isBoolean(isEndless))\r\n\t\t\tthis._isEndless = isEndless;\r\n\t\telse if(Type.isBoolean(disposer))\r\n\t\t\tthis._isEndless = disposer;\r\n\r\n\t\tif(Type.isFunction(disposer))\r\n\t\t\tthis._disposer = disposer;\r\n\t}\r\n\r\n\tprotected _isEndless:boolean;\r\n\t/*\r\n\t * Provides a mechanism to indicate if this enumerable never ends.\r\n\t * If set to true, some operations that expect a finite result may throw.\r\n\t * Explicit false means it has an end.\r\n\t * Implicit void means unknown.\r\n\t */\r\n\tget isEndless():boolean {\r\n\t\treturn this._isEndless;\r\n\t}\r\n\r\n\treset():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\tvar y = _._yielder;\r\n\t\tif(y) y.yieldBreak(); // Already exists? Reset.\r\n\t\telse _._yielder = yielder(); // New? Get one from the object pool.\r\n\t\t_._state = EnumeratorState.Before;\r\n\t}\r\n\r\n\tmoveNext():boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\ttry\r\n\t\t{\r\n\t\t\tswitch(_._state)\r\n\t\t\t{\r\n\t\t\t\tcase EnumeratorState.Before:\r\n\t\t\t\t\t_._state = EnumeratorState.Running;\r\n\t\t\t\t\tvar initializer = _._initializer;\r\n\t\t\t\t\tif(initializer)\r\n\t\t\t\t\t\tinitializer();\r\n\t\t\t\t// fall through\r\n\t\t\t\tcase EnumeratorState.Running:\r\n\t\t\t\t\tif(_._tryGetNext(_._yielder))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthis.dispose();\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\tcase EnumeratorState.After:\r\n\t\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\t\tcatch(e)\r\n\t\t{\r\n\t\t\tthis.dispose();\r\n\t\t\tthrow e;\r\n\t\t}\r\n\t}\r\n\r\n\tnextValue():T\r\n\t{\r\n\t\treturn this.moveNext()\r\n\t\t\t? this._yielder.current\r\n\t\t\t: VOID0;\r\n\t}\r\n\r\n\t/**\r\n\t * Exposed for compatibility with generators.\r\n\t */\r\n\tnext():IIteratorResult\r\n\t{\r\n\t\treturn this.moveNext() ?\r\n\t\t{\r\n\t\t\tvalue: this._yielder.current,\r\n\t\t\tdone: false\r\n\t\t} : {\r\n\t\t\tvalue: VOID0,\r\n\t\t\tdone: true\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tvar _ = this, disposer = _._disposer;\r\n\r\n\t\t_._initializer = null;\r\n\t\t_._disposer = null;\r\n\r\n\r\n\t\tvar y = _._yielder;\r\n\t\t_._yielder = null;\r\n\t\tyielder(y);\r\n\r\n\t\ttry\r\n\t\t{\r\n\t\t\tif(disposer)\r\n\t\t\t\tdisposer();\r\n\t\t}\r\n\t\tfinally\r\n\t\t{\r\n\t\t\t//if(this._state==EnumeratorState.Running)\r\n\t\t\tthis._state = EnumeratorState.After;\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\nexport default EnumeratorBase;\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Collections/Enumeration/IndexEnumerator.d.ts b/dist/umd.min/System/Collections/Enumeration/IndexEnumerator.d.ts index e85a88be..d5df161c 100644 --- a/dist/umd.min/System/Collections/Enumeration/IndexEnumerator.d.ts +++ b/dist/umd.min/System/Collections/Enumeration/IndexEnumerator.d.ts @@ -2,8 +2,8 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import EnumeratorBase from "./EnumeratorBase"; -export default class IndexEnumerator extends EnumeratorBase { +import { EnumeratorBase } from "./EnumeratorBase"; +export declare class IndexEnumerator extends EnumeratorBase { constructor(sourceFactory: () => { source: { [index: number]: T; @@ -13,3 +13,4 @@ export default class IndexEnumerator extends EnumeratorBase { step?: number; }); } +export default IndexEnumerator; diff --git a/dist/umd.min/System/Collections/Enumeration/IndexEnumerator.js b/dist/umd.min/System/Collections/Enumeration/IndexEnumerator.js index 8f1ebfa1..6b3ba902 100644 --- a/dist/umd.min/System/Collections/Enumeration/IndexEnumerator.js +++ b/dist/umd.min/System/Collections/Enumeration/IndexEnumerator.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(e,r){function t(){this.constructor=e}for(var n in r)r.hasOwnProperty(n)&&(e[n]=r[n]);e.prototype=null===r?Object.create(r):(t.prototype=r.prototype,new t)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var r=e(require,exports);void 0!==r&&(module.exports=r)}else"function"==typeof define&&define.amd&&define(["require","exports","./EnumeratorBase"],e)}(function(e,r){"use strict";var t=e("./EnumeratorBase"),n=function(e){function r(r){var t;e.call(this,function(){if(t=r(),t&&t.source){var e=t.length;if(0>e)throw new Error("length must be zero or greater");if(!isFinite(e))throw new Error("length must finite number");if(e&&0===t.step)throw new Error("Invalid IndexEnumerator step value (0).");var n=t.pointer;if(n){if(n!=Math.floor(n))throw new Error("Invalid IndexEnumerator pointer value ("+n+") has decimal.")}else n=0;t.pointer=n;var o=t.step;if(o){if(o!=Math.floor(o))throw new Error("Invalid IndexEnumerator step value ("+o+") has decimal.")}else o=1;t.step=o}},function(e){var r=t&&t.source?t.length:0;if(!r||isNaN(r))return e.yieldBreak();var n=t.pointer;return t.pointer+=t.step,r>n&&n>=0?e.yieldReturn(t.source[n]):e.yieldBreak()},function(){t&&(t.source=null)}),this._isEndless=!1}return __extends(r,e),r}(t["default"]);Object.defineProperty(r,"__esModule",{value:!0}),r["default"]=n}); +var __extends=this&&this.__extends||function(e,r){function t(){this.constructor=e}for(var n in r)r.hasOwnProperty(n)&&(e[n]=r[n]);e.prototype=null===r?Object.create(r):(t.prototype=r.prototype,new t)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var r=e(require,exports);void 0!==r&&(module.exports=r)}else"function"==typeof define&&define.amd&&define(["require","exports","./EnumeratorBase"],e)}(function(e,r){"use strict";var t=e("./EnumeratorBase"),n=function(e){function r(r){var t;e.call(this,function(){if(t=r(),t&&t.source){var e=t.length;if(0>e)throw new Error("length must be zero or greater");if(!isFinite(e))throw new Error("length must finite number");if(e&&0===t.step)throw new Error("Invalid IndexEnumerator step value (0).");var n=t.pointer;if(n){if(n!=Math.floor(n))throw new Error("Invalid IndexEnumerator pointer value ("+n+") has decimal.")}else n=0;t.pointer=n;var o=t.step;if(o){if(o!=Math.floor(o))throw new Error("Invalid IndexEnumerator step value ("+o+") has decimal.")}else o=1;t.step=o}},function(e){var r=t&&t.source?t.length:0;if(!r||isNaN(r))return e.yieldBreak();var n=t.pointer;return t.pointer+=t.step,r>n&&n>=0?e.yieldReturn(t.source[n]):e.yieldBreak()},function(){t&&(t.source=null)}),this._isEndless=!1}return __extends(r,e),r}(t.EnumeratorBase);r.IndexEnumerator=n,Object.defineProperty(r,"__esModule",{value:!0}),r["default"]=n}); //# sourceMappingURL=IndexEnumerator.js.map diff --git a/dist/umd.min/System/Collections/Enumeration/IndexEnumerator.js.map b/dist/umd.min/System/Collections/Enumeration/IndexEnumerator.js.map index a667a91a..4e279cd3 100644 --- a/dist/umd.min/System/Collections/Enumeration/IndexEnumerator.js.map +++ b/dist/umd.min/System/Collections/Enumeration/IndexEnumerator.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Enumeration/IndexEnumerator.js","System/Collections/Enumeration/IndexEnumerator.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","EnumeratorBase_1","IndexEnumerator","_super","sourceFactory","source","call","len","length","Error","isFinite","step","pointer","Math","floor","yielder","isNaN","yieldBreak","current","yieldReturn","_isEndless","defineProperty","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,oBAAqBN,IAExD,SAAUI,EAASF,GCXtB,YAEA,IAAAM,GAAAJ,EAA2B,oBAE3BK,EAAA,SAAAC,GAIC,QAAAD,GACCE,GAGA,GAAIC,EACJF,GAAAG,KAAAvB,KACC,WAGC,GADAsB,EAASD,IACNC,GAAUA,EAAOA,OACpB,CACC,GAAIE,GAAMF,EAAOG,MACjB,IAAO,EAAJD,EACF,KAAM,IAAIE,OAAM,iCAEjB,KAAIC,SAASH,GACZ,KAAM,IAAIE,OAAM,4BAEjB,IAAGF,GAAqB,IAAdF,EAAOM,KAChB,KAAM,IAAIF,OAAM,0CACjB,IAAIG,GAAUP,EAAOO,OACrB,IAAIA,GAEC,GAAGA,GAASC,KAAKC,MAAMF,GAC3B,KAAM,IAAIH,OAAM,0CAA4CG,EAAU,sBAFtEA,GAAU,CAGXP,GAAOO,QAAUA,CAEjB,IAAID,GAAON,EAAOM,IAClB,IAAIA,GAEC,GAAGA,GAAME,KAAKC,MAAMH,GACxB,KAAM,IAAIF,OAAM,uCAAyCE,EAAO,sBAFhEA,GAAO,CAGRN,GAAOM,KAAOA,IAIhB,SAACI,GAEA,GAAIR,GAAOF,GAAUA,EAAOA,OAAUA,EAAOG,OAAS,CACtD,KAAID,GAAOS,MAAMT,GAChB,MAAOQ,GAAQE,YAChB,IAAIC,GAAUb,EAAOO,OAErB,OADAP,GAAOO,SAAWP,EAAOM,KACTJ,EAARW,GAAeA,GAAS,EAC7BH,EAAQI,YAAYd,EAAOA,OAAOa,IAClCH,EAAQE,cAGZ,WAEIZ,IAEFA,EAAOA,OAAS,QAInBtB,KAAKqC,YAAa,EAEpB,MA7DiCtC,WAAAoB,EAAAC,GA6DjCD,GA7DiCD,EAAAA,WADjCV,QAAA8B,eAAA1B,EAAA,cAAA2B,OAAA,IDwDI3B,EAAAA,WAAkBO","file":"System/Collections/Enumeration/IndexEnumerator.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"./EnumeratorBase\"], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var EnumeratorBase_1 = require(\"./EnumeratorBase\");\n var IndexEnumerator = (function (_super) {\n __extends(IndexEnumerator, _super);\n function IndexEnumerator(sourceFactory) {\n var source;\n _super.call(this, function () {\n source = sourceFactory();\n if (source && source.source) {\n var len = source.length;\n if (len < 0)\n throw new Error(\"length must be zero or greater\");\n if (!isFinite(len))\n throw new Error(\"length must finite number\");\n if (len && source.step === 0)\n throw new Error(\"Invalid IndexEnumerator step value (0).\");\n var pointer = source.pointer;\n if (!pointer)\n pointer = 0;\n else if (pointer != Math.floor(pointer))\n throw new Error(\"Invalid IndexEnumerator pointer value (\" + pointer + \") has decimal.\");\n source.pointer = pointer;\n var step = source.step;\n if (!step)\n step = 1;\n else if (step != Math.floor(step))\n throw new Error(\"Invalid IndexEnumerator step value (\" + step + \") has decimal.\");\n source.step = step;\n }\n }, function (yielder) {\n var len = (source && source.source) ? source.length : 0;\n if (!len || isNaN(len))\n return yielder.yieldBreak();\n var current = source.pointer;\n source.pointer += source.step;\n return (current < len && current >= 0)\n ? yielder.yieldReturn(source.source[current])\n : yielder.yieldBreak();\n }, function () {\n if (source) {\n source.source = null;\n }\n });\n this._isEndless = false;\n }\n return IndexEnumerator;\n }(EnumeratorBase_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = IndexEnumerator;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport EnumeratorBase from \"./EnumeratorBase\";\r\n\r\nexport default\r\nclass IndexEnumerator extends EnumeratorBase\r\n{\r\n\r\n\tconstructor(\r\n\t\tsourceFactory:() => { source: { [index: number]: T }; pointer?: number; length: number; step?: number })\r\n\t{\r\n\r\n\t\tvar source:{ source: { [index: number]: T }; pointer?: number; length: number; step?: number };\r\n\t\tsuper(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tsource = sourceFactory();\r\n\t\t\t\tif(source && source.source)\r\n\t\t\t\t{\r\n\t\t\t\t\tvar len = source.length;\r\n\t\t\t\t\tif(len<0) // Null is allowed but will exit immediately.\r\n\t\t\t\t\t\tthrow new Error(\"length must be zero or greater\");\r\n\r\n\t\t\t\t\tif(!isFinite(len))\r\n\t\t\t\t\t\tthrow new Error(\"length must finite number\");\r\n\r\n\t\t\t\t\tif(len && source.step===0)\r\n\t\t\t\t\t\tthrow new Error(\"Invalid IndexEnumerator step value (0).\");\r\n\t\t\t\t\tvar pointer = source.pointer;\r\n\t\t\t\t\tif(!pointer)\r\n\t\t\t\t\t\tpointer = 0;\r\n\t\t\t\t\telse if(pointer!=Math.floor(pointer))\r\n\t\t\t\t\t\tthrow new Error(\"Invalid IndexEnumerator pointer value (\" + pointer + \") has decimal.\");\r\n\t\t\t\t\tsource.pointer = pointer;\r\n\r\n\t\t\t\t\tvar step = source.step;\r\n\t\t\t\t\tif(!step)\r\n\t\t\t\t\t\tstep = 1;\r\n\t\t\t\t\telse if(step!=Math.floor(step))\r\n\t\t\t\t\t\tthrow new Error(\"Invalid IndexEnumerator step value (\" + step + \") has decimal.\");\r\n\t\t\t\t\tsource.step = step;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\t\t\t\tvar len = (source && source.source) ? source.length : 0;\r\n\t\t\t\tif(!len || isNaN(len))\r\n\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\tvar current = source.pointer;\r\n\t\t\t\tsource.pointer += source.step;\r\n\t\t\t\treturn (current=0)\r\n\t\t\t\t\t? yielder.yieldReturn(source.source[current])\r\n\t\t\t\t\t: yielder.yieldBreak();\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tif(source)\r\n\t\t\t\t{\r\n\t\t\t\t\tsource.source = null;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\t\tthis._isEndless = false;\r\n\t}\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Enumeration/IndexEnumerator.js","System/Collections/Enumeration/IndexEnumerator.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","EnumeratorBase_1","IndexEnumerator","_super","sourceFactory","source","call","len","length","Error","isFinite","step","pointer","Math","floor","yielder","isNaN","yieldBreak","current","yieldReturn","_isEndless","EnumeratorBase","defineProperty","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,oBAAqBN,IAExD,SAAUI,EAASF,GAClB,YCZJ,IAAAM,GAAAJ,EAA6B,oBAE7BK,EAAA,SAAAC,GAGC,QAAAD,GACCE,GAGA,GAAIC,EACJF,GAAAG,KAAAvB,KACC,WAGC,GADAsB,EAASD,IACNC,GAAUA,EAAOA,OACpB,CACC,GAAIE,GAAMF,EAAOG,MACjB,IAAO,EAAJD,EACF,KAAM,IAAIE,OAAM,iCAEjB,KAAIC,SAASH,GACZ,KAAM,IAAIE,OAAM,4BAEjB,IAAGF,GAAqB,IAAdF,EAAOM,KAChB,KAAM,IAAIF,OAAM,0CACjB,IAAIG,GAAUP,EAAOO,OACrB,IAAIA,GAEC,GAAGA,GAASC,KAAKC,MAAMF,GAC3B,KAAM,IAAIH,OAAM,0CAA4CG,EAAU,sBAFtEA,GAAU,CAGXP,GAAOO,QAAUA,CAEjB,IAAID,GAAON,EAAOM,IAClB,IAAIA,GAEC,GAAGA,GAAME,KAAKC,MAAMH,GACxB,KAAM,IAAIF,OAAM,uCAAyCE,EAAO,sBAFhEA,GAAO,CAGRN,GAAOM,KAAOA,IAIhB,SAACI,GAEA,GAAIR,GAAOF,GAAUA,EAAOA,OAAUA,EAAOG,OAAS,CACtD,KAAID,GAAOS,MAAMT,GAChB,MAAOQ,GAAQE,YAChB,IAAIC,GAAUb,EAAOO,OAErB,OADAP,GAAOO,SAAWP,EAAOM,KACTJ,EAARW,GAAeA,GAAS,EAC7BH,EAAQI,YAAYd,EAAOA,OAAOa,IAClCH,EAAQE,cAGZ,WAEIZ,IAEFA,EAAOA,OAAS,QAInBtB,KAAKqC,YAAa,EAEpB,MA7DwCtC,WAAAoB,EAAAC,GA6DxCD,GA7DwCD,EAAAoB,eAA3B1B,GAAAO,gBAAeA,EA+D5BX,OAAA+B,eAAA3B,EAAA,cAAA4B,OAAA,IDJI5B,EAAAA,WCIWO","file":"System/Collections/Enumeration/IndexEnumerator.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"./EnumeratorBase\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var EnumeratorBase_1 = require(\"./EnumeratorBase\");\n var IndexEnumerator = (function (_super) {\n __extends(IndexEnumerator, _super);\n function IndexEnumerator(sourceFactory) {\n var source;\n _super.call(this, function () {\n source = sourceFactory();\n if (source && source.source) {\n var len = source.length;\n if (len < 0)\n throw new Error(\"length must be zero or greater\");\n if (!isFinite(len))\n throw new Error(\"length must finite number\");\n if (len && source.step === 0)\n throw new Error(\"Invalid IndexEnumerator step value (0).\");\n var pointer = source.pointer;\n if (!pointer)\n pointer = 0;\n else if (pointer != Math.floor(pointer))\n throw new Error(\"Invalid IndexEnumerator pointer value (\" + pointer + \") has decimal.\");\n source.pointer = pointer;\n var step = source.step;\n if (!step)\n step = 1;\n else if (step != Math.floor(step))\n throw new Error(\"Invalid IndexEnumerator step value (\" + step + \") has decimal.\");\n source.step = step;\n }\n }, function (yielder) {\n var len = (source && source.source) ? source.length : 0;\n if (!len || isNaN(len))\n return yielder.yieldBreak();\n var current = source.pointer;\n source.pointer += source.step;\n return (current < len && current >= 0)\n ? yielder.yieldReturn(source.source[current])\n : yielder.yieldBreak();\n }, function () {\n if (source) {\n source.source = null;\n }\n });\n this._isEndless = false;\n }\n return IndexEnumerator;\n }(EnumeratorBase_1.EnumeratorBase));\n exports.IndexEnumerator = IndexEnumerator;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = IndexEnumerator;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {EnumeratorBase} from \"./EnumeratorBase\";\r\n\r\nexport class IndexEnumerator extends EnumeratorBase\r\n{\r\n\r\n\tconstructor(\r\n\t\tsourceFactory:() => { source: { [index: number]: T }; pointer?: number; length: number; step?: number })\r\n\t{\r\n\r\n\t\tvar source:{ source: { [index: number]: T }; pointer?: number; length: number; step?: number };\r\n\t\tsuper(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tsource = sourceFactory();\r\n\t\t\t\tif(source && source.source)\r\n\t\t\t\t{\r\n\t\t\t\t\tvar len = source.length;\r\n\t\t\t\t\tif(len<0) // Null is allowed but will exit immediately.\r\n\t\t\t\t\t\tthrow new Error(\"length must be zero or greater\");\r\n\r\n\t\t\t\t\tif(!isFinite(len))\r\n\t\t\t\t\t\tthrow new Error(\"length must finite number\");\r\n\r\n\t\t\t\t\tif(len && source.step===0)\r\n\t\t\t\t\t\tthrow new Error(\"Invalid IndexEnumerator step value (0).\");\r\n\t\t\t\t\tvar pointer = source.pointer;\r\n\t\t\t\t\tif(!pointer)\r\n\t\t\t\t\t\tpointer = 0;\r\n\t\t\t\t\telse if(pointer!=Math.floor(pointer))\r\n\t\t\t\t\t\tthrow new Error(\"Invalid IndexEnumerator pointer value (\" + pointer + \") has decimal.\");\r\n\t\t\t\t\tsource.pointer = pointer;\r\n\r\n\t\t\t\t\tvar step = source.step;\r\n\t\t\t\t\tif(!step)\r\n\t\t\t\t\t\tstep = 1;\r\n\t\t\t\t\telse if(step!=Math.floor(step))\r\n\t\t\t\t\t\tthrow new Error(\"Invalid IndexEnumerator step value (\" + step + \") has decimal.\");\r\n\t\t\t\t\tsource.step = step;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\t\t\t\tvar len = (source && source.source) ? source.length : 0;\r\n\t\t\t\tif(!len || isNaN(len))\r\n\t\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t\tvar current = source.pointer;\r\n\t\t\t\tsource.pointer += source.step;\r\n\t\t\t\treturn (current=0)\r\n\t\t\t\t\t? yielder.yieldReturn(source.source[current])\r\n\t\t\t\t\t: yielder.yieldBreak();\r\n\t\t\t},\r\n\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tif(source)\r\n\t\t\t\t{\r\n\t\t\t\t\tsource.source = null;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\t\tthis._isEndless = false;\r\n\t}\r\n}\r\n\r\nexport default IndexEnumerator;"]} \ No newline at end of file diff --git a/dist/umd.min/System/Collections/Enumeration/UnsupportedEnumerableException.d.ts b/dist/umd.min/System/Collections/Enumeration/UnsupportedEnumerableException.d.ts index b966255b..fc268ec1 100644 --- a/dist/umd.min/System/Collections/Enumeration/UnsupportedEnumerableException.d.ts +++ b/dist/umd.min/System/Collections/Enumeration/UnsupportedEnumerableException.d.ts @@ -3,8 +3,9 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -import SystemException from "../../Exceptions/SystemException"; -export default class UnsupportedEnumerableException extends SystemException { +import { SystemException } from "../../Exceptions/SystemException"; +export declare class UnsupportedEnumerableException extends SystemException { constructor(message?: string); protected getName(): string; } +export default UnsupportedEnumerableException; diff --git a/dist/umd.min/System/Collections/Enumeration/UnsupportedEnumerableException.js b/dist/umd.min/System/Collections/Enumeration/UnsupportedEnumerableException.js index 7972e984..4ac00075 100644 --- a/dist/umd.min/System/Collections/Enumeration/UnsupportedEnumerableException.js +++ b/dist/umd.min/System/Collections/Enumeration/UnsupportedEnumerableException.js @@ -3,5 +3,5 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -var __extends=this&&this.__extends||function(e,t){function o(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../../Exceptions/SystemException"],e)}(function(e,t){"use strict";var o=e("../../Exceptions/SystemException"),n="UnsupportedEnumerableException",r=function(e){function t(t){e.call(this,t||"Unsupported enumerable.")}return __extends(t,e),t.prototype.getName=function(){return n},t}(o["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=r}); +var __extends=this&&this.__extends||function(e,t){function o(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../../Exceptions/SystemException"],e)}(function(e,t){"use strict";var o=e("../../Exceptions/SystemException"),n="UnsupportedEnumerableException",r=function(e){function t(t){e.call(this,t||"Unsupported enumerable.")}return __extends(t,e),t.prototype.getName=function(){return n},t}(o.SystemException);t.UnsupportedEnumerableException=r,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=r}); //# sourceMappingURL=UnsupportedEnumerableException.js.map diff --git a/dist/umd.min/System/Collections/Enumeration/UnsupportedEnumerableException.js.map b/dist/umd.min/System/Collections/Enumeration/UnsupportedEnumerableException.js.map index 347c0e21..93c7d7f6 100644 --- a/dist/umd.min/System/Collections/Enumeration/UnsupportedEnumerableException.js.map +++ b/dist/umd.min/System/Collections/Enumeration/UnsupportedEnumerableException.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Enumeration/UnsupportedEnumerableException.js","System/Collections/Enumeration/UnsupportedEnumerableException.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","SystemException_1","NAME","UnsupportedEnumerableException","_super","message","call","getName","defineProperty","value"],"mappings":";;;;;AAKA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,oCAAqCN,IAExE,SAAUI,EAASF,GCXtB,YAEA,IAAAM,GAAAJ,EAA4B,oCAEtBK,EAAc,iCAEpBC,EAAA,SAAAC,GAGC,QAAAD,GAAYE,GACXD,EAAAE,KAAAvB,KAAMsB,GAAW,2BAOnB,MAV6CvB,WAAAqB,EAAAC,GAMlCD,EAAAb,UAAAiB,QAAV,WAEC,MAAOL,IAETC,GAV6CF,EAAAA,WAD7CV,QAAAiB,eAAAb,EAAA,cAAAc,OAAA,IDoBId,EAAAA,WAAkBQ","file":"System/Collections/Enumeration/UnsupportedEnumerableException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../../Exceptions/SystemException\"], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var SystemException_1 = require(\"../../Exceptions/SystemException\");\n var NAME = 'UnsupportedEnumerableException';\n var UnsupportedEnumerableException = (function (_super) {\n __extends(UnsupportedEnumerableException, _super);\n function UnsupportedEnumerableException(message) {\n _super.call(this, message || \"Unsupported enumerable.\");\n }\n UnsupportedEnumerableException.prototype.getName = function () {\n return NAME;\n };\n return UnsupportedEnumerableException;\n }(SystemException_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = UnsupportedEnumerableException;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport SystemException from \"../../Exceptions/SystemException\";\r\n\r\nconst NAME:string = 'UnsupportedEnumerableException';\r\n\r\nexport default\r\nclass UnsupportedEnumerableException extends SystemException {\r\n\r\n\tconstructor(message?:string){\r\n\t\tsuper(message || \"Unsupported enumerable.\");\r\n\t}\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Enumeration/UnsupportedEnumerableException.js","System/Collections/Enumeration/UnsupportedEnumerableException.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","SystemException_1","NAME","UnsupportedEnumerableException","_super","message","call","getName","SystemException","defineProperty","value"],"mappings":";;;;;AAKA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,oCAAqCN,IAExE,SAAUI,EAASF,GAClB,YCZJ,IAAAM,GAAAJ,EAA8B,oCAExBK,EAAc,iCAEpBC,EAAA,SAAAC,GAGC,QAAAD,GAAYE,GAEXD,EAAAE,KAAAvB,KAAMsB,GAAW,2BAOnB,MAZoDvB,WAAAqB,EAAAC,GAQzCD,EAAAb,UAAAiB,QAAV,WAEC,MAAOL,IAETC,GAZoDF,EAAAO,gBAAvCb,GAAAQ,+BAA8BA,EAc3CZ,OAAAkB,eAAAd,EAAA,cAAAe,OAAA,IDSIf,EAAAA,WCTWQ","file":"System/Collections/Enumeration/UnsupportedEnumerableException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../../Exceptions/SystemException\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var SystemException_1 = require(\"../../Exceptions/SystemException\");\n var NAME = 'UnsupportedEnumerableException';\n var UnsupportedEnumerableException = (function (_super) {\n __extends(UnsupportedEnumerableException, _super);\n function UnsupportedEnumerableException(message) {\n _super.call(this, message || \"Unsupported enumerable.\");\n }\n UnsupportedEnumerableException.prototype.getName = function () {\n return NAME;\n };\n return UnsupportedEnumerableException;\n }(SystemException_1.SystemException));\n exports.UnsupportedEnumerableException = UnsupportedEnumerableException;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = UnsupportedEnumerableException;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\nimport {SystemException} from \"../../Exceptions/SystemException\";\r\n\r\nconst NAME:string = 'UnsupportedEnumerableException';\r\n\r\nexport class UnsupportedEnumerableException extends SystemException\r\n{\r\n\r\n\tconstructor(message?:string)\r\n\t{\r\n\t\tsuper(message || \"Unsupported enumerable.\");\r\n\t}\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n}\r\n\r\nexport default UnsupportedEnumerableException;"]} \ No newline at end of file diff --git a/dist/umd.min/System/Collections/LinkedList.d.ts b/dist/umd.min/System/Collections/LinkedList.d.ts index 6de7a80e..b3fef8d7 100644 --- a/dist/umd.min/System/Collections/LinkedList.d.ts +++ b/dist/umd.min/System/Collections/LinkedList.d.ts @@ -1,12 +1,14 @@ -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Based Upon: http://msdn.microsoft.com/en-us/library/he2s3bh7%28v=vs.110%29.aspx * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import CollectionBase from "./CollectionBase"; +import { CollectionBase } from "./CollectionBase"; +import { ILinkedListNode } from "./ILinkedListNode"; +import { IEnumerator } from "./Enumeration/IEnumerator"; +import { Predicate, Action, EqualityComparison } from "../FunctionTypes"; +import { ILinkedList } from "./ILinkedList"; +import { IEnumerableOrArray } from "./IEnumerableOrArray"; export default class LinkedList extends CollectionBase implements ILinkedList { private _listInternal; constructor(source?: IEnumerableOrArray, equalityComparer?: EqualityComparison); diff --git a/dist/umd.min/System/Collections/LinkedList.js b/dist/umd.min/System/Collections/LinkedList.js index c8eab31e..a34859ad 100644 --- a/dist/umd.min/System/Collections/LinkedList.js +++ b/dist/umd.min/System/Collections/LinkedList.js @@ -3,5 +3,5 @@ * Based Upon: http://msdn.microsoft.com/en-us/library/he2s3bh7%28v=vs.110%29.aspx * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)};!function(t){if("object"==typeof module&&"object"==typeof module.exports){var e=t(require,exports);void 0!==e&&(module.exports=e)}else"function"==typeof define&&define.amd&&define(["require","exports","../Compare","./LinkedNodeList","../Exceptions/InvalidOperationException","../Exceptions/ArgumentNullException","./CollectionBase"],t)}(function(t,e){"use strict";function n(t,e){if(!t)return null;if(!e)throw new s["default"]("list");var n=t.external;return n||(t.external=n=new f(e,t)),n}function o(t,e){if(!t)throw new s["default"]("node");if(!e)throw new s["default"]("list");if(t.list!=e)throw new a["default"]("Provided node does not belong to this list.");var n=t._nodeInternal;if(!n)throw new a["default"]("Provided node is not valid.");return n}var r=t("../Compare"),i=t("./LinkedNodeList"),a=t("../Exceptions/InvalidOperationException"),s=t("../Exceptions/ArgumentNullException"),l=t("./CollectionBase"),u=function(){function t(t,e,n){this.value=t,this.previous=e,this.next=n}return t.prototype.assertDetached=function(){if(this.next||this.previous)throw new a["default"]("Adding a node that is already placed.")},t}(),d=function(t){function e(e,n){void 0===n&&(n=r.areEqual),t.call(this,null,n);var o=this;o._listInternal=new i["default"],o._importEntries(e)}return __extends(e,t),e.prototype.getCount=function(){return this._listInternal.unsafeCount},e.prototype._addInternal=function(t){return this._listInternal.addNode(new u(t)),!0},e.prototype._removeInternal=function(t,e){void 0===e&&(e=1/0);var n=this,o=n._equalityComparer,r=n._listInternal,i=0;return r.forEach(function(n){return o(t,n.value)&&r.removeNode(n)&&i++,e>i}),i},e.prototype._clearInternal=function(){return this._listInternal.clear()},e.prototype.forEach=function(e,n){void 0===n&&(n=!1),n?t.prototype.forEach.call(this,e,n):this._listInternal.forEach(function(t,n){return e(t.value,n)})},e.prototype.getEnumerator=function(){return i["default"].valueEnumeratorFrom(this._listInternal)},e.prototype._findFirst=function(t){for(var e=this,n=e._equalityComparer,o=e._listInternal.first;o;){if(n(t,o.value))return o;o=o.next}return null},e.prototype._findLast=function(t){for(var e=this,n=e._equalityComparer,o=e._listInternal.last;o;){if(n(t,o.value))return o;o=o.previous}return null},e.prototype.removeOnce=function(t){return 0!==this.remove(t,1)},Object.defineProperty(e.prototype,"first",{get:function(){return n(this._listInternal.first,this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"last",{get:function(){return n(this._listInternal.last,this)},enumerable:!0,configurable:!0}),e.prototype.getValueAt=function(t){var e=this._listInternal.getNodeAt(t);return e?void 0:e&&e.value||void 0},e.prototype.getNodeAt=function(t){return n(this._listInternal.getNodeAt(t),this)},e.prototype.find=function(t){return n(this._findFirst(t),this)},e.prototype.findLast=function(t){return n(this._findLast(t),this)},e.prototype.addFirst=function(t){this._listInternal.addNodeBefore(new u(t)),this._signalModification(!0)},e.prototype.addLast=function(t){this.add(t)},e.prototype.removeFirst=function(){var t=this,e=t._listInternal.first;e&&t._listInternal.removeNode(e)&&t._signalModification(!0)},e.prototype.removeLast=function(){var t=this,e=t._listInternal.last;e&&t._listInternal.removeNode(e)&&t._signalModification(!0)},e.prototype.removeNode=function(t){var e=this;return e._listInternal.removeNode(o(t,e))?(e._signalModification(!0),!0):!1},e.prototype.addBefore=function(t,e){var n=this;n._listInternal.addNodeBefore(new u(e),o(t,n)),n._signalModification(!0)},e.prototype.addAfter=function(t,e){var n=this;n._listInternal.addNodeAfter(new u(e),o(t,n)),n._signalModification(!0)},e.prototype.addNodeBefore=function(t,e){var n=this;n._listInternal.addNodeBefore(o(e,n),o(t,n)),n._signalModification(!0)},e.prototype.addNodeAfter=function(t,e){var n=this;this._listInternal.addNodeAfter(o(e,n),o(t,n)),n._signalModification(!0)},e}(l["default"]);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=d;var f=function(){function t(t,e){this._list=t,this._nodeInternal=e}return Object.defineProperty(t.prototype,"list",{get:function(){return this._list},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"previous",{get:function(){return n(this._nodeInternal.previous,this._list)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"next",{get:function(){return n(this._nodeInternal.next,this._list)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"value",{get:function(){return this._nodeInternal.value},set:function(t){this._nodeInternal.value=t},enumerable:!0,configurable:!0}),t.prototype.addBefore=function(t){this._list.addBefore(this,t)},t.prototype.addAfter=function(t){this._list.addAfter(this,t)},t.prototype.addNodeBefore=function(t){this._list.addNodeBefore(this,t)},t.prototype.addNodeAfter=function(t){this._list.addNodeAfter(this,t)},t.prototype.remove=function(){this._list.removeNode(this)},t}()}); +var __extends=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)};!function(t){if("object"==typeof module&&"object"==typeof module.exports){var e=t(require,exports);void 0!==e&&(module.exports=e)}else"function"==typeof define&&define.amd&&define(["require","exports","../Compare","./LinkedNodeList","../Exceptions/InvalidOperationException","../Exceptions/ArgumentNullException","./CollectionBase"],t)}(function(t,e){"use strict";function n(t,e){if(!t)return null;if(!e)throw new s.ArgumentNullException("list");var n=t.external;return n||(t.external=n=new f(e,t)),n}function o(t,e){if(!t)throw new s.ArgumentNullException("node");if(!e)throw new s.ArgumentNullException("list");if(t.list!=e)throw new a.InvalidOperationException("Provided node does not belong to this list.");var n=t._nodeInternal;if(!n)throw new a.InvalidOperationException("Provided node is not valid.");return n}var i=t("../Compare"),r=t("./LinkedNodeList"),a=t("../Exceptions/InvalidOperationException"),s=t("../Exceptions/ArgumentNullException"),l=t("./CollectionBase"),u=function(){function t(t,e,n){this.value=t,this.previous=e,this.next=n}return t.prototype.assertDetached=function(){if(this.next||this.previous)throw new a.InvalidOperationException("Adding a node that is already placed.")},t}(),d=function(t){function e(e,n){void 0===n&&(n=i.areEqual),t.call(this,null,n);var o=this;o._listInternal=new r.LinkedNodeList,o._importEntries(e)}return __extends(e,t),e.prototype.getCount=function(){return this._listInternal.unsafeCount},e.prototype._addInternal=function(t){return this._listInternal.addNode(new u(t)),!0},e.prototype._removeInternal=function(t,e){void 0===e&&(e=1/0);var n=this,o=n._equalityComparer,i=n._listInternal,r=0;return i.forEach(function(n){return o(t,n.value)&&i.removeNode(n)&&r++,e>r}),r},e.prototype._clearInternal=function(){return this._listInternal.clear()},e.prototype.forEach=function(e,n){void 0===n&&(n=!1),n?t.prototype.forEach.call(this,e,n):this._listInternal.forEach(function(t,n){return e(t.value,n)})},e.prototype.getEnumerator=function(){return r.LinkedNodeList.valueEnumeratorFrom(this._listInternal)},e.prototype._findFirst=function(t){for(var e=this,n=e._equalityComparer,o=e._listInternal.first;o;){if(n(t,o.value))return o;o=o.next}return null},e.prototype._findLast=function(t){for(var e=this,n=e._equalityComparer,o=e._listInternal.last;o;){if(n(t,o.value))return o;o=o.previous}return null},e.prototype.removeOnce=function(t){return 0!==this.remove(t,1)},Object.defineProperty(e.prototype,"first",{get:function(){return n(this._listInternal.first,this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"last",{get:function(){return n(this._listInternal.last,this)},enumerable:!0,configurable:!0}),e.prototype.getValueAt=function(t){var e=this._listInternal.getNodeAt(t);return e?void 0:e&&e.value||void 0},e.prototype.getNodeAt=function(t){return n(this._listInternal.getNodeAt(t),this)},e.prototype.find=function(t){return n(this._findFirst(t),this)},e.prototype.findLast=function(t){return n(this._findLast(t),this)},e.prototype.addFirst=function(t){this._listInternal.addNodeBefore(new u(t)),this._signalModification(!0)},e.prototype.addLast=function(t){this.add(t)},e.prototype.removeFirst=function(){var t=this,e=t._listInternal.first;e&&t._listInternal.removeNode(e)&&t._signalModification(!0)},e.prototype.removeLast=function(){var t=this,e=t._listInternal.last;e&&t._listInternal.removeNode(e)&&t._signalModification(!0)},e.prototype.removeNode=function(t){var e=this;return e._listInternal.removeNode(o(t,e))?(e._signalModification(!0),!0):!1},e.prototype.addBefore=function(t,e){var n=this;n._listInternal.addNodeBefore(new u(e),o(t,n)),n._signalModification(!0)},e.prototype.addAfter=function(t,e){var n=this;n._listInternal.addNodeAfter(new u(e),o(t,n)),n._signalModification(!0)},e.prototype.addNodeBefore=function(t,e){var n=this;n._listInternal.addNodeBefore(o(e,n),o(t,n)),n._signalModification(!0)},e.prototype.addNodeAfter=function(t,e){var n=this;this._listInternal.addNodeAfter(o(e,n),o(t,n)),n._signalModification(!0)},e}(l.CollectionBase);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=d;var f=function(){function t(t,e){this._list=t,this._nodeInternal=e}return Object.defineProperty(t.prototype,"list",{get:function(){return this._list},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"previous",{get:function(){return n(this._nodeInternal.previous,this._list)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"next",{get:function(){return n(this._nodeInternal.next,this._list)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"value",{get:function(){return this._nodeInternal.value},set:function(t){this._nodeInternal.value=t},enumerable:!0,configurable:!0}),t.prototype.addBefore=function(t){this._list.addBefore(this,t)},t.prototype.addAfter=function(t){this._list.addAfter(this,t)},t.prototype.addNodeBefore=function(t){this._list.addNodeBefore(this,t)},t.prototype.addNodeAfter=function(t){this._list.addNodeAfter(this,t)},t.prototype.remove=function(){this._list.removeNode(this)},t}()}); //# sourceMappingURL=LinkedList.js.map diff --git a/dist/umd.min/System/Collections/LinkedList.js.map b/dist/umd.min/System/Collections/LinkedList.js.map index 64fb9da1..3eb65977 100644 --- a/dist/umd.min/System/Collections/LinkedList.js.map +++ b/dist/umd.min/System/Collections/LinkedList.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/LinkedList.js","System/Collections/LinkedList.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","ensureExternal","node","list","ArgumentNullException_1","external","LinkedListNode","getInternal","InvalidOperationException_1","n","_nodeInternal","Compare_1","LinkedNodeList_1","CollectionBase_1","InternalNode","value","previous","next","assertDetached","LinkedList","_super","source","equalityComparer","areEqual","call","_","_listInternal","_importEntries","getCount","unsafeCount","_addInternal","entry","addNode","_removeInternal","max","Infinity","equals","_equalityComparer","removedCount","forEach","removeNode","_clearInternal","clear","action","useCopy","i","getEnumerator","valueEnumeratorFrom","_findFirst","first","_findLast","prev","last","removeOnce","remove","defineProperty","get","enumerable","configurable","getValueAt","index","getNodeAt","find","findLast","addFirst","addNodeBefore","_signalModification","addLast","add","removeFirst","removeLast","addBefore","before","addAfter","after","addNodeAfter","_list","set"],"mappings":"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","file":"System/Collections/LinkedList.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based Upon: http://msdn.microsoft.com/en-us/library/he2s3bh7%28v=vs.110%29.aspx\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../Compare\", \"./LinkedNodeList\", \"../Exceptions/InvalidOperationException\", \"../Exceptions/ArgumentNullException\", \"./CollectionBase\"], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var Compare_1 = require(\"../Compare\");\n var LinkedNodeList_1 = require(\"./LinkedNodeList\");\n var InvalidOperationException_1 = require(\"../Exceptions/InvalidOperationException\");\n var ArgumentNullException_1 = require(\"../Exceptions/ArgumentNullException\");\n var CollectionBase_1 = require(\"./CollectionBase\");\n var InternalNode = (function () {\n function InternalNode(value, previous, next) {\n this.value = value;\n this.previous = previous;\n this.next = next;\n }\n InternalNode.prototype.assertDetached = function () {\n if (this.next || this.previous)\n throw new InvalidOperationException_1.default(\"Adding a node that is already placed.\");\n };\n return InternalNode;\n }());\n function ensureExternal(node, list) {\n if (!node)\n return null;\n if (!list)\n throw new ArgumentNullException_1.default(\"list\");\n var external = node.external;\n if (!external)\n node.external = external = new LinkedListNode(list, node);\n return external;\n }\n function getInternal(node, list) {\n if (!node)\n throw new ArgumentNullException_1.default(\"node\");\n if (!list)\n throw new ArgumentNullException_1.default(\"list\");\n if (node.list != list)\n throw new InvalidOperationException_1.default(\"Provided node does not belong to this list.\");\n var n = node._nodeInternal;\n if (!n)\n throw new InvalidOperationException_1.default(\"Provided node is not valid.\");\n return n;\n }\n var LinkedList = (function (_super) {\n __extends(LinkedList, _super);\n function LinkedList(source, equalityComparer) {\n if (equalityComparer === void 0) { equalityComparer = Compare_1.areEqual; }\n _super.call(this, null, equalityComparer);\n var _ = this;\n _._listInternal = new LinkedNodeList_1.default();\n _._importEntries(source);\n }\n LinkedList.prototype.getCount = function () {\n return this._listInternal.unsafeCount;\n };\n LinkedList.prototype._addInternal = function (entry) {\n this._listInternal.addNode(new InternalNode(entry));\n return true;\n };\n LinkedList.prototype._removeInternal = function (entry, max) {\n if (max === void 0) { max = Infinity; }\n var _ = this, equals = _._equalityComparer, list = _._listInternal, removedCount = 0;\n list.forEach(function (node) {\n if (equals(entry, node.value) && list.removeNode(node))\n removedCount++;\n return removedCount < max;\n });\n return removedCount;\n };\n LinkedList.prototype._clearInternal = function () {\n return this._listInternal.clear();\n };\n LinkedList.prototype.forEach = function (action, useCopy) {\n if (useCopy === void 0) { useCopy = false; }\n if (useCopy)\n _super.prototype.forEach.call(this, action, useCopy);\n else\n this._listInternal.forEach(function (node, i) { return action(node.value, i); });\n };\n LinkedList.prototype.getEnumerator = function () {\n return LinkedNodeList_1.default.valueEnumeratorFrom(this._listInternal);\n };\n LinkedList.prototype._findFirst = function (entry) {\n var _ = this, equals = _._equalityComparer, next = _._listInternal.first;\n while (next) {\n if (equals(entry, next.value))\n return next;\n next = next.next;\n }\n return null;\n };\n LinkedList.prototype._findLast = function (entry) {\n var _ = this, equals = _._equalityComparer, prev = _._listInternal.last;\n while (prev) {\n if (equals(entry, prev.value))\n return prev;\n prev = prev.previous;\n }\n return null;\n };\n LinkedList.prototype.removeOnce = function (entry) {\n return this.remove(entry, 1) !== 0;\n };\n Object.defineProperty(LinkedList.prototype, \"first\", {\n get: function () {\n return ensureExternal(this._listInternal.first, this);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedList.prototype, \"last\", {\n get: function () {\n return ensureExternal(this._listInternal.last, this);\n },\n enumerable: true,\n configurable: true\n });\n LinkedList.prototype.getValueAt = function (index) {\n var node = this._listInternal.getNodeAt(index);\n if (!node)\n return node && node.value || void (0);\n };\n LinkedList.prototype.getNodeAt = function (index) {\n return ensureExternal(this._listInternal.getNodeAt(index), this);\n };\n LinkedList.prototype.find = function (entry) {\n return ensureExternal(this._findFirst(entry), this);\n };\n LinkedList.prototype.findLast = function (entry) {\n return ensureExternal(this._findLast(entry), this);\n };\n LinkedList.prototype.addFirst = function (entry) {\n this._listInternal.addNodeBefore(new InternalNode(entry));\n this._signalModification(true);\n };\n LinkedList.prototype.addLast = function (entry) {\n this.add(entry);\n };\n LinkedList.prototype.removeFirst = function () {\n var _ = this, first = _._listInternal.first;\n if (first && _._listInternal.removeNode(first))\n _._signalModification(true);\n };\n LinkedList.prototype.removeLast = function () {\n var _ = this, last = _._listInternal.last;\n if (last && _._listInternal.removeNode(last))\n _._signalModification(true);\n };\n LinkedList.prototype.removeNode = function (node) {\n var _ = this;\n if (_._listInternal.removeNode(getInternal(node, _))) {\n _._signalModification(true);\n return true;\n }\n return false;\n };\n LinkedList.prototype.addBefore = function (before, entry) {\n var _ = this;\n _._listInternal.addNodeBefore(new InternalNode(entry), getInternal(before, _));\n _._signalModification(true);\n };\n LinkedList.prototype.addAfter = function (after, entry) {\n var _ = this;\n _._listInternal.addNodeAfter(new InternalNode(entry), getInternal(after, _));\n _._signalModification(true);\n };\n LinkedList.prototype.addNodeBefore = function (node, before) {\n var _ = this;\n _._listInternal.addNodeBefore(getInternal(before, _), getInternal(node, _));\n _._signalModification(true);\n };\n LinkedList.prototype.addNodeAfter = function (node, after) {\n var _ = this;\n this._listInternal.addNodeAfter(getInternal(after, _), getInternal(node, _));\n _._signalModification(true);\n };\n return LinkedList;\n }(CollectionBase_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = LinkedList;\n var LinkedListNode = (function () {\n function LinkedListNode(_list, _nodeInternal) {\n this._list = _list;\n this._nodeInternal = _nodeInternal;\n }\n Object.defineProperty(LinkedListNode.prototype, \"list\", {\n get: function () {\n return this._list;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedListNode.prototype, \"previous\", {\n get: function () {\n return ensureExternal(this._nodeInternal.previous, this._list);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedListNode.prototype, \"next\", {\n get: function () {\n return ensureExternal(this._nodeInternal.next, this._list);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedListNode.prototype, \"value\", {\n get: function () {\n return this._nodeInternal.value;\n },\n set: function (v) {\n this._nodeInternal.value = v;\n },\n enumerable: true,\n configurable: true\n });\n LinkedListNode.prototype.addBefore = function (entry) {\n this._list.addBefore(this, entry);\n };\n LinkedListNode.prototype.addAfter = function (entry) {\n this._list.addAfter(this, entry);\n };\n LinkedListNode.prototype.addNodeBefore = function (before) {\n this._list.addNodeBefore(this, before);\n };\n LinkedListNode.prototype.addNodeAfter = function (after) {\n this._list.addNodeAfter(this, after);\n };\n LinkedListNode.prototype.remove = function () {\n this._list.removeNode(this);\n };\n return LinkedListNode;\n }());\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based Upon: http://msdn.microsoft.com/en-us/library/he2s3bh7%28v=vs.110%29.aspx\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport {areEqual} from \"../Compare\";\r\nimport LinkedNodeList from \"./LinkedNodeList\";\r\nimport InvalidOperationException from \"../Exceptions/InvalidOperationException\";\r\nimport ArgumentNullException from \"../Exceptions/ArgumentNullException\";\r\nimport CollectionBase from \"./CollectionBase\";\r\n\r\n\r\n/*****************************\r\n * IMPORTANT NOTES ABOUT PERFORMANCE:\r\n * http://jsperf.com/simulating-a-queue\r\n *\r\n * Adding to an array is very fast, but modifying is slow.\r\n * LinkedList wins when modifying contents.\r\n * http://stackoverflow.com/questions/166884/array-versus-linked-list\r\n *****************************/\r\n\r\n/*\r\n * An internal node is used to manage the order without exposing underlying link chain to the consumer.\r\n */\r\nclass InternalNode\r\nimplements ILinkedNode>, INodeWithValue\r\n{\r\n\tconstructor(\r\n\t\tpublic value?:T,\r\n\t\tpublic previous?:InternalNode,\r\n\t\tpublic next?:InternalNode)\r\n\t{\r\n\t}\r\n\r\n\texternal:ILinkedListNode;\r\n\r\n\tassertDetached():void\r\n\t{\r\n\t\tif(this.next || this.previous)\r\n\t\t\tthrow new InvalidOperationException(\r\n\t\t\t\t\"Adding a node that is already placed.\");\r\n\t}\r\n\r\n}\r\n\r\nfunction ensureExternal(node:InternalNode, list:LinkedList):ILinkedListNode\r\n{\r\n\tif(!node)\r\n\t\treturn null;\r\n\tif(!list)\r\n\t\tthrow new ArgumentNullException(\"list\");\r\n\r\n\tvar external:ILinkedListNode = node.external;\r\n\tif(!external)\r\n\t\tnode.external = external = new LinkedListNode(list, node);\r\n\r\n\treturn external;\r\n}\r\n\r\nfunction getInternal(node:ILinkedListNode, list:LinkedList):InternalNode\r\n{\r\n\tif(!node)\r\n\t\tthrow new ArgumentNullException(\"node\");\r\n\tif(!list)\r\n\t\tthrow new ArgumentNullException(\"list\");\r\n\r\n\tif(node.list!=list)\r\n\t\tthrow new InvalidOperationException(\r\n\t\t\t\"Provided node does not belong to this list.\");\r\n\r\n\tvar n:InternalNode = (node)._nodeInternal;\r\n\tif(!n)\r\n\t\tthrow new InvalidOperationException(\r\n\t\t\t\"Provided node is not valid.\");\r\n\r\n\treturn n;\r\n}\r\n\r\nexport default\r\nclass LinkedList\r\nextends CollectionBase implements ILinkedList\r\n{\r\n\tprivate _listInternal:LinkedNodeList>;\r\n\r\n\tconstructor(\r\n\t\tsource?:IEnumerableOrArray,\r\n\t\tequalityComparer:EqualityComparison = areEqual)\r\n\t{\r\n\t\tsuper(null, equalityComparer);\r\n\t\tvar _ = this;\r\n\t\t_._listInternal = new LinkedNodeList>();\r\n\t\t_._importEntries(source);\r\n\t}\r\n\r\n\tprotected getCount():number\r\n\t{\r\n\t\treturn this._listInternal.unsafeCount;\r\n\t}\r\n\r\n\tprotected _addInternal(entry:T):boolean\r\n\t{\r\n\t\tthis._listInternal.addNode(new InternalNode(entry));\r\n\t\treturn true;\r\n\t}\r\n\r\n\tprotected _removeInternal(entry:T, max:number = Infinity):number\r\n\t{\r\n\t\tvar _ = this,\r\n\t\t equals = _._equalityComparer,\r\n\t\t list = _._listInternal,\r\n\t\t removedCount = 0;\r\n\r\n\t\tlist.forEach(node=>\r\n\t\t{\r\n\t\t\tif(equals(entry, node.value) && list.removeNode(node))\r\n\t\t\t\tremovedCount++;\r\n\r\n\t\t\treturn removedCount | Action,\r\n\t\tuseCopy:boolean = false):void\r\n\t{\r\n\t\tif(useCopy) super.forEach(action, useCopy);\r\n\t\telse this._listInternal.forEach((node, i)=>action(node.value, i));\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\t// #region IEnumerable\r\n\tgetEnumerator():IEnumerator\r\n\t{\r\n\t\treturn LinkedNodeList.valueEnumeratorFrom(this._listInternal);\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\tprivate _findFirst(entry:T):InternalNode\r\n\t{\r\n\t\t//noinspection UnnecessaryLocalVariableJS\r\n\t\tvar _ = this,\r\n\t\t equals = _._equalityComparer,\r\n\t\t next = _._listInternal.first;\r\n\t\twhile(next)\r\n\t\t{\r\n\t\t\tif(equals(entry, next.value))\r\n\t\t\t\treturn next;\r\n\t\t\tnext = next.next;\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\tprivate _findLast(entry:T):InternalNode\r\n\t{\r\n\t\t//noinspection UnnecessaryLocalVariableJS\r\n\t\tvar _ = this,\r\n\t\t equals = _._equalityComparer,\r\n\t\t prev = _._listInternal.last;\r\n\t\twhile(prev)\r\n\t\t{\r\n\t\t\tif(equals(entry, prev.value))\r\n\t\t\t\treturn prev;\r\n\t\t\tprev = prev.previous;\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\tremoveOnce(entry:T):boolean\r\n\t{\r\n\t\treturn this.remove(entry, 1)!==0;\r\n\t}\r\n\r\n\tget first():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._listInternal.first, this);\r\n\t}\r\n\r\n\tget last():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._listInternal.last, this);\r\n\t}\r\n\r\n\t// get methods are available for convenience but is an n*index operation.\r\n\r\n\r\n\tgetValueAt(index:number):T\r\n\t{\r\n\t\tvar node = this._listInternal.getNodeAt(index);\r\n\t\tif(!node)\r\n\t\t\treturn node && node.value || void(0);\r\n\t}\r\n\r\n\tgetNodeAt(index:number):ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._listInternal.getNodeAt(index), this);\r\n\t}\r\n\r\n\tfind(entry:T):ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._findFirst(entry), this);\r\n\t}\r\n\r\n\tfindLast(entry:T):ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._findLast(entry), this);\r\n\t}\r\n\r\n\taddFirst(entry:T):void\r\n\t{\r\n\t\tthis._listInternal.addNodeBefore(new InternalNode(entry));\r\n\t\tthis._signalModification(true);\r\n\t}\r\n\r\n\taddLast(entry:T):void\r\n\t{\r\n\t\tthis.add(entry);\r\n\t}\r\n\r\n\tremoveFirst():void\r\n\t{\r\n\t\tvar _ = this, first = _._listInternal.first;\r\n\t\tif(first && _._listInternal.removeNode(first))\r\n\t\t\t_._signalModification(true);\r\n\t}\r\n\r\n\tremoveLast():void\r\n\t{\r\n\t\tvar _ = this, last = _._listInternal.last;\r\n\t\tif(last && _._listInternal.removeNode(last))\r\n\t\t\t_._signalModification(true);\r\n\t}\r\n\r\n\t// Returns true if successful and false if not found (already removed).\r\n\tremoveNode(node:ILinkedListNode):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\tif(_._listInternal.removeNode(getInternal(node, _)))\r\n\t\t{\r\n\t\t\t_._signalModification(true);\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\taddBefore(before:ILinkedListNode, entry:T):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_._listInternal.addNodeBefore(\r\n\t\t\tnew InternalNode(entry),\r\n\t\t\tgetInternal(before, _)\r\n\t\t);\r\n\r\n\t\t_._signalModification(true);\r\n\t}\r\n\r\n\taddAfter(after:ILinkedListNode, entry:T):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_._listInternal.addNodeAfter(\r\n\t\t\tnew InternalNode(entry),\r\n\t\t\tgetInternal(after, _)\r\n\t\t);\r\n\r\n\t\t_._signalModification(true);\r\n\t}\r\n\r\n\taddNodeBefore(node:ILinkedListNode, before:ILinkedListNode):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_._listInternal.addNodeBefore(\r\n\t\t\tgetInternal(before, _),\r\n\t\t\tgetInternal(node, _)\r\n\t\t);\r\n\r\n\t\t_._signalModification(true);\r\n\t}\r\n\r\n\taddNodeAfter(node:ILinkedListNode, after:ILinkedListNode):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tthis._listInternal.addNodeAfter(\r\n\t\t\tgetInternal(after, _),\r\n\t\t\tgetInternal(node, _)\r\n\t\t);\r\n\r\n\t\t_._signalModification(true);\r\n\t}\r\n\r\n\r\n}\r\n\r\n// Use an internal node class to prevent mucking up the LinkedList.\r\nclass LinkedListNode implements ILinkedListNode\r\n{\r\n\tconstructor(\r\n\t\tprivate _list:LinkedList,\r\n\t\tprivate _nodeInternal:InternalNode)\r\n\t{\r\n\t}\r\n\r\n\tget list():LinkedList\r\n\t{\r\n\t\treturn this._list;\r\n\t}\r\n\r\n\tget previous():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._nodeInternal.previous, this._list);\r\n\t}\r\n\r\n\tget next():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._nodeInternal.next, this._list);\r\n\t}\r\n\r\n\tget value():T\r\n\t{\r\n\t\treturn this._nodeInternal.value;\r\n\t}\r\n\r\n\tset value(v:T)\r\n\t{\r\n\t\tthis._nodeInternal.value = v;\r\n\t}\r\n\r\n\taddBefore(entry:T):void\r\n\t{\r\n\t\tthis._list.addBefore(this, entry);\r\n\t}\r\n\r\n\taddAfter(entry:T):void\r\n\t{\r\n\t\tthis._list.addAfter(this, entry);\r\n\t}\r\n\r\n\taddNodeBefore(before:ILinkedListNode):void\r\n\t{\r\n\t\tthis._list.addNodeBefore(this, before);\r\n\t}\r\n\r\n\taddNodeAfter(after:ILinkedListNode):void\r\n\t{\r\n\t\tthis._list.addNodeAfter(this, after);\r\n\t}\r\n\r\n\tremove():void\r\n\t{\r\n\t\tthis._list.removeNode(this);\r\n\t}\r\n\r\n}\r\n\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/LinkedList.js","System/Collections/LinkedList.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","ensureExternal","node","list","ArgumentNullException_1","ArgumentNullException","external","LinkedListNode","getInternal","InvalidOperationException_1","InvalidOperationException","n","_nodeInternal","Compare_1","LinkedNodeList_1","CollectionBase_1","InternalNode","value","previous","next","assertDetached","LinkedList","_super","source","equalityComparer","areEqual","call","_","_listInternal","LinkedNodeList","_importEntries","getCount","unsafeCount","_addInternal","entry","addNode","_removeInternal","max","Infinity","equals","_equalityComparer","removedCount","forEach","removeNode","_clearInternal","clear","action","useCopy","i","getEnumerator","valueEnumeratorFrom","_findFirst","first","_findLast","prev","last","removeOnce","remove","defineProperty","get","enumerable","configurable","getValueAt","index","getNodeAt","find","findLast","addFirst","addNodeBefore","_signalModification","addLast","add","removeFirst","removeLast","addBefore","before","addAfter","after","addNodeAfter","CollectionBase","_list","set"],"mappings":"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","file":"System/Collections/LinkedList.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based Upon: http://msdn.microsoft.com/en-us/library/he2s3bh7%28v=vs.110%29.aspx\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../Compare\", \"./LinkedNodeList\", \"../Exceptions/InvalidOperationException\", \"../Exceptions/ArgumentNullException\", \"./CollectionBase\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var Compare_1 = require(\"../Compare\");\n var LinkedNodeList_1 = require(\"./LinkedNodeList\");\n var InvalidOperationException_1 = require(\"../Exceptions/InvalidOperationException\");\n var ArgumentNullException_1 = require(\"../Exceptions/ArgumentNullException\");\n var CollectionBase_1 = require(\"./CollectionBase\");\n var InternalNode = (function () {\n function InternalNode(value, previous, next) {\n this.value = value;\n this.previous = previous;\n this.next = next;\n }\n InternalNode.prototype.assertDetached = function () {\n if (this.next || this.previous)\n throw new InvalidOperationException_1.InvalidOperationException(\"Adding a node that is already placed.\");\n };\n return InternalNode;\n }());\n function ensureExternal(node, list) {\n if (!node)\n return null;\n if (!list)\n throw new ArgumentNullException_1.ArgumentNullException(\"list\");\n var external = node.external;\n if (!external)\n node.external = external = new LinkedListNode(list, node);\n return external;\n }\n function getInternal(node, list) {\n if (!node)\n throw new ArgumentNullException_1.ArgumentNullException(\"node\");\n if (!list)\n throw new ArgumentNullException_1.ArgumentNullException(\"list\");\n if (node.list != list)\n throw new InvalidOperationException_1.InvalidOperationException(\"Provided node does not belong to this list.\");\n var n = node._nodeInternal;\n if (!n)\n throw new InvalidOperationException_1.InvalidOperationException(\"Provided node is not valid.\");\n return n;\n }\n var LinkedList = (function (_super) {\n __extends(LinkedList, _super);\n function LinkedList(source, equalityComparer) {\n if (equalityComparer === void 0) { equalityComparer = Compare_1.areEqual; }\n _super.call(this, null, equalityComparer);\n var _ = this;\n _._listInternal = new LinkedNodeList_1.LinkedNodeList();\n _._importEntries(source);\n }\n LinkedList.prototype.getCount = function () {\n return this._listInternal.unsafeCount;\n };\n LinkedList.prototype._addInternal = function (entry) {\n this._listInternal.addNode(new InternalNode(entry));\n return true;\n };\n LinkedList.prototype._removeInternal = function (entry, max) {\n if (max === void 0) { max = Infinity; }\n var _ = this, equals = _._equalityComparer, list = _._listInternal, removedCount = 0;\n list.forEach(function (node) {\n if (equals(entry, node.value) && list.removeNode(node))\n removedCount++;\n return removedCount < max;\n });\n return removedCount;\n };\n LinkedList.prototype._clearInternal = function () {\n return this._listInternal.clear();\n };\n LinkedList.prototype.forEach = function (action, useCopy) {\n if (useCopy === void 0) { useCopy = false; }\n if (useCopy)\n _super.prototype.forEach.call(this, action, useCopy);\n else\n this._listInternal.forEach(function (node, i) { return action(node.value, i); });\n };\n LinkedList.prototype.getEnumerator = function () {\n return LinkedNodeList_1.LinkedNodeList.valueEnumeratorFrom(this._listInternal);\n };\n LinkedList.prototype._findFirst = function (entry) {\n var _ = this, equals = _._equalityComparer, next = _._listInternal.first;\n while (next) {\n if (equals(entry, next.value))\n return next;\n next = next.next;\n }\n return null;\n };\n LinkedList.prototype._findLast = function (entry) {\n var _ = this, equals = _._equalityComparer, prev = _._listInternal.last;\n while (prev) {\n if (equals(entry, prev.value))\n return prev;\n prev = prev.previous;\n }\n return null;\n };\n LinkedList.prototype.removeOnce = function (entry) {\n return this.remove(entry, 1) !== 0;\n };\n Object.defineProperty(LinkedList.prototype, \"first\", {\n get: function () {\n return ensureExternal(this._listInternal.first, this);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedList.prototype, \"last\", {\n get: function () {\n return ensureExternal(this._listInternal.last, this);\n },\n enumerable: true,\n configurable: true\n });\n LinkedList.prototype.getValueAt = function (index) {\n var node = this._listInternal.getNodeAt(index);\n if (!node)\n return node && node.value || void (0);\n };\n LinkedList.prototype.getNodeAt = function (index) {\n return ensureExternal(this._listInternal.getNodeAt(index), this);\n };\n LinkedList.prototype.find = function (entry) {\n return ensureExternal(this._findFirst(entry), this);\n };\n LinkedList.prototype.findLast = function (entry) {\n return ensureExternal(this._findLast(entry), this);\n };\n LinkedList.prototype.addFirst = function (entry) {\n this._listInternal.addNodeBefore(new InternalNode(entry));\n this._signalModification(true);\n };\n LinkedList.prototype.addLast = function (entry) {\n this.add(entry);\n };\n LinkedList.prototype.removeFirst = function () {\n var _ = this, first = _._listInternal.first;\n if (first && _._listInternal.removeNode(first))\n _._signalModification(true);\n };\n LinkedList.prototype.removeLast = function () {\n var _ = this, last = _._listInternal.last;\n if (last && _._listInternal.removeNode(last))\n _._signalModification(true);\n };\n LinkedList.prototype.removeNode = function (node) {\n var _ = this;\n if (_._listInternal.removeNode(getInternal(node, _))) {\n _._signalModification(true);\n return true;\n }\n return false;\n };\n LinkedList.prototype.addBefore = function (before, entry) {\n var _ = this;\n _._listInternal.addNodeBefore(new InternalNode(entry), getInternal(before, _));\n _._signalModification(true);\n };\n LinkedList.prototype.addAfter = function (after, entry) {\n var _ = this;\n _._listInternal.addNodeAfter(new InternalNode(entry), getInternal(after, _));\n _._signalModification(true);\n };\n LinkedList.prototype.addNodeBefore = function (node, before) {\n var _ = this;\n _._listInternal.addNodeBefore(getInternal(before, _), getInternal(node, _));\n _._signalModification(true);\n };\n LinkedList.prototype.addNodeAfter = function (node, after) {\n var _ = this;\n this._listInternal.addNodeAfter(getInternal(after, _), getInternal(node, _));\n _._signalModification(true);\n };\n return LinkedList;\n }(CollectionBase_1.CollectionBase));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = LinkedList;\n var LinkedListNode = (function () {\n function LinkedListNode(_list, _nodeInternal) {\n this._list = _list;\n this._nodeInternal = _nodeInternal;\n }\n Object.defineProperty(LinkedListNode.prototype, \"list\", {\n get: function () {\n return this._list;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedListNode.prototype, \"previous\", {\n get: function () {\n return ensureExternal(this._nodeInternal.previous, this._list);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedListNode.prototype, \"next\", {\n get: function () {\n return ensureExternal(this._nodeInternal.next, this._list);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedListNode.prototype, \"value\", {\n get: function () {\n return this._nodeInternal.value;\n },\n set: function (v) {\n this._nodeInternal.value = v;\n },\n enumerable: true,\n configurable: true\n });\n LinkedListNode.prototype.addBefore = function (entry) {\n this._list.addBefore(this, entry);\n };\n LinkedListNode.prototype.addAfter = function (entry) {\n this._list.addAfter(this, entry);\n };\n LinkedListNode.prototype.addNodeBefore = function (before) {\n this._list.addNodeBefore(this, before);\n };\n LinkedListNode.prototype.addNodeAfter = function (after) {\n this._list.addNodeAfter(this, after);\n };\n LinkedListNode.prototype.remove = function () {\n this._list.removeNode(this);\n };\n return LinkedListNode;\n }());\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based Upon: http://msdn.microsoft.com/en-us/library/he2s3bh7%28v=vs.110%29.aspx\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {areEqual} from \"../Compare\";\r\nimport {LinkedNodeList} from \"./LinkedNodeList\";\r\nimport {InvalidOperationException} from \"../Exceptions/InvalidOperationException\";\r\nimport {ArgumentNullException} from \"../Exceptions/ArgumentNullException\";\r\nimport {CollectionBase} from \"./CollectionBase\";\r\nimport {ILinkedListNode, ILinkedNode, INodeWithValue} from \"./ILinkedListNode\";\r\nimport {IEnumerator} from \"./Enumeration/IEnumerator\";\r\nimport {Predicate, Action, EqualityComparison} from \"../FunctionTypes\";\r\nimport {ILinkedList} from \"./ILinkedList\";\r\nimport {IEnumerableOrArray} from \"./IEnumerableOrArray\";\r\n\r\n/*****************************\r\n * IMPORTANT NOTES ABOUT PERFORMANCE:\r\n * http://jsperf.com/simulating-a-queue\r\n *\r\n * Adding to an array is very fast, but modifying is slow.\r\n * LinkedList wins when modifying contents.\r\n * http://stackoverflow.com/questions/166884/array-versus-linked-list\r\n *****************************/\r\n\r\n/*\r\n * An internal node is used to manage the order without exposing underlying link chain to the consumer.\r\n */\r\nclass InternalNode\r\nimplements ILinkedNode>, INodeWithValue\r\n{\r\n\tconstructor(\r\n\t\tpublic value?:T,\r\n\t\tpublic previous?:InternalNode,\r\n\t\tpublic next?:InternalNode)\r\n\t{\r\n\t}\r\n\r\n\texternal:ILinkedListNode;\r\n\r\n\tassertDetached():void\r\n\t{\r\n\t\tif(this.next || this.previous)\r\n\t\t\tthrow new InvalidOperationException(\r\n\t\t\t\t\"Adding a node that is already placed.\");\r\n\t}\r\n\r\n}\r\n\r\nfunction ensureExternal(node:InternalNode, list:LinkedList):ILinkedListNode\r\n{\r\n\tif(!node)\r\n\t\treturn null;\r\n\tif(!list)\r\n\t\tthrow new ArgumentNullException(\"list\");\r\n\r\n\tvar external:ILinkedListNode = node.external;\r\n\tif(!external)\r\n\t\tnode.external = external = new LinkedListNode(list, node);\r\n\r\n\treturn external;\r\n}\r\n\r\nfunction getInternal(node:ILinkedListNode, list:LinkedList):InternalNode\r\n{\r\n\tif(!node)\r\n\t\tthrow new ArgumentNullException(\"node\");\r\n\tif(!list)\r\n\t\tthrow new ArgumentNullException(\"list\");\r\n\r\n\tif(node.list!=list)\r\n\t\tthrow new InvalidOperationException(\r\n\t\t\t\"Provided node does not belong to this list.\");\r\n\r\n\tvar n:InternalNode = (node)._nodeInternal;\r\n\tif(!n)\r\n\t\tthrow new InvalidOperationException(\r\n\t\t\t\"Provided node is not valid.\");\r\n\r\n\treturn n;\r\n}\r\n\r\nexport default\r\nclass LinkedList\r\nextends CollectionBase implements ILinkedList\r\n{\r\n\tprivate _listInternal:LinkedNodeList>;\r\n\r\n\tconstructor(\r\n\t\tsource?:IEnumerableOrArray,\r\n\t\tequalityComparer:EqualityComparison = areEqual)\r\n\t{\r\n\t\tsuper(null, equalityComparer);\r\n\t\tvar _ = this;\r\n\t\t_._listInternal = new LinkedNodeList>();\r\n\t\t_._importEntries(source);\r\n\t}\r\n\r\n\tprotected getCount():number\r\n\t{\r\n\t\treturn this._listInternal.unsafeCount;\r\n\t}\r\n\r\n\tprotected _addInternal(entry:T):boolean\r\n\t{\r\n\t\tthis._listInternal.addNode(new InternalNode(entry));\r\n\t\treturn true;\r\n\t}\r\n\r\n\tprotected _removeInternal(entry:T, max:number = Infinity):number\r\n\t{\r\n\t\tvar _ = this,\r\n\t\t equals = _._equalityComparer,\r\n\t\t list = _._listInternal,\r\n\t\t removedCount = 0;\r\n\r\n\t\tlist.forEach(node=>\r\n\t\t{\r\n\t\t\tif(equals(entry, node.value) && list.removeNode(node))\r\n\t\t\t\tremovedCount++;\r\n\r\n\t\t\treturn removedCount | Action,\r\n\t\tuseCopy:boolean = false):void\r\n\t{\r\n\t\tif(useCopy) super.forEach(action, useCopy);\r\n\t\telse this._listInternal.forEach((node, i)=>action(node.value, i));\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\t// #region IEnumerable\r\n\tgetEnumerator():IEnumerator\r\n\t{\r\n\t\treturn LinkedNodeList.valueEnumeratorFrom(this._listInternal);\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\tprivate _findFirst(entry:T):InternalNode\r\n\t{\r\n\t\t//noinspection UnnecessaryLocalVariableJS\r\n\t\tvar _ = this,\r\n\t\t equals = _._equalityComparer,\r\n\t\t next = _._listInternal.first;\r\n\t\twhile(next)\r\n\t\t{\r\n\t\t\tif(equals(entry, next.value))\r\n\t\t\t\treturn next;\r\n\t\t\tnext = next.next;\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\tprivate _findLast(entry:T):InternalNode\r\n\t{\r\n\t\t//noinspection UnnecessaryLocalVariableJS\r\n\t\tvar _ = this,\r\n\t\t equals = _._equalityComparer,\r\n\t\t prev = _._listInternal.last;\r\n\t\twhile(prev)\r\n\t\t{\r\n\t\t\tif(equals(entry, prev.value))\r\n\t\t\t\treturn prev;\r\n\t\t\tprev = prev.previous;\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\tremoveOnce(entry:T):boolean\r\n\t{\r\n\t\treturn this.remove(entry, 1)!==0;\r\n\t}\r\n\r\n\tget first():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._listInternal.first, this);\r\n\t}\r\n\r\n\tget last():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._listInternal.last, this);\r\n\t}\r\n\r\n\t// get methods are available for convenience but is an n*index operation.\r\n\r\n\r\n\tgetValueAt(index:number):T\r\n\t{\r\n\t\tvar node = this._listInternal.getNodeAt(index);\r\n\t\tif(!node)\r\n\t\t\treturn node && node.value || void(0);\r\n\t}\r\n\r\n\tgetNodeAt(index:number):ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._listInternal.getNodeAt(index), this);\r\n\t}\r\n\r\n\tfind(entry:T):ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._findFirst(entry), this);\r\n\t}\r\n\r\n\tfindLast(entry:T):ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._findLast(entry), this);\r\n\t}\r\n\r\n\taddFirst(entry:T):void\r\n\t{\r\n\t\tthis._listInternal.addNodeBefore(new InternalNode(entry));\r\n\t\tthis._signalModification(true);\r\n\t}\r\n\r\n\taddLast(entry:T):void\r\n\t{\r\n\t\tthis.add(entry);\r\n\t}\r\n\r\n\tremoveFirst():void\r\n\t{\r\n\t\tvar _ = this, first = _._listInternal.first;\r\n\t\tif(first && _._listInternal.removeNode(first))\r\n\t\t\t_._signalModification(true);\r\n\t}\r\n\r\n\tremoveLast():void\r\n\t{\r\n\t\tvar _ = this, last = _._listInternal.last;\r\n\t\tif(last && _._listInternal.removeNode(last))\r\n\t\t\t_._signalModification(true);\r\n\t}\r\n\r\n\t// Returns true if successful and false if not found (already removed).\r\n\tremoveNode(node:ILinkedListNode):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\tif(_._listInternal.removeNode(getInternal(node, _)))\r\n\t\t{\r\n\t\t\t_._signalModification(true);\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\taddBefore(before:ILinkedListNode, entry:T):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_._listInternal.addNodeBefore(\r\n\t\t\tnew InternalNode(entry),\r\n\t\t\tgetInternal(before, _)\r\n\t\t);\r\n\r\n\t\t_._signalModification(true);\r\n\t}\r\n\r\n\taddAfter(after:ILinkedListNode, entry:T):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_._listInternal.addNodeAfter(\r\n\t\t\tnew InternalNode(entry),\r\n\t\t\tgetInternal(after, _)\r\n\t\t);\r\n\r\n\t\t_._signalModification(true);\r\n\t}\r\n\r\n\taddNodeBefore(node:ILinkedListNode, before:ILinkedListNode):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_._listInternal.addNodeBefore(\r\n\t\t\tgetInternal(before, _),\r\n\t\t\tgetInternal(node, _)\r\n\t\t);\r\n\r\n\t\t_._signalModification(true);\r\n\t}\r\n\r\n\taddNodeAfter(node:ILinkedListNode, after:ILinkedListNode):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tthis._listInternal.addNodeAfter(\r\n\t\t\tgetInternal(after, _),\r\n\t\t\tgetInternal(node, _)\r\n\t\t);\r\n\r\n\t\t_._signalModification(true);\r\n\t}\r\n\r\n\r\n}\r\n\r\n// Use an internal node class to prevent mucking up the LinkedList.\r\nclass LinkedListNode implements ILinkedListNode\r\n{\r\n\tconstructor(\r\n\t\tprivate _list:LinkedList,\r\n\t\tprivate _nodeInternal:InternalNode)\r\n\t{\r\n\t}\r\n\r\n\tget list():LinkedList\r\n\t{\r\n\t\treturn this._list;\r\n\t}\r\n\r\n\tget previous():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._nodeInternal.previous, this._list);\r\n\t}\r\n\r\n\tget next():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._nodeInternal.next, this._list);\r\n\t}\r\n\r\n\tget value():T\r\n\t{\r\n\t\treturn this._nodeInternal.value;\r\n\t}\r\n\r\n\tset value(v:T)\r\n\t{\r\n\t\tthis._nodeInternal.value = v;\r\n\t}\r\n\r\n\taddBefore(entry:T):void\r\n\t{\r\n\t\tthis._list.addBefore(this, entry);\r\n\t}\r\n\r\n\taddAfter(entry:T):void\r\n\t{\r\n\t\tthis._list.addAfter(this, entry);\r\n\t}\r\n\r\n\taddNodeBefore(before:ILinkedListNode):void\r\n\t{\r\n\t\tthis._list.addNodeBefore(this, before);\r\n\t}\r\n\r\n\taddNodeAfter(after:ILinkedListNode):void\r\n\t{\r\n\t\tthis._list.addNodeAfter(this, after);\r\n\t}\r\n\r\n\tremove():void\r\n\t{\r\n\t\tthis._list.removeNode(this);\r\n\t}\r\n\r\n}\r\n\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Collections/LinkedNodeList.d.ts b/dist/umd.min/System/Collections/LinkedNodeList.d.ts index 2f91455d..2baad203 100644 --- a/dist/umd.min/System/Collections/LinkedNodeList.d.ts +++ b/dist/umd.min/System/Collections/LinkedNodeList.d.ts @@ -1,9 +1,15 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -export default class LinkedNodeList> implements ILinkedNodeList, IEnumerateEach, IDisposable { +import { ILinkedNode, ILinkedNodeWithValue } from "./ILinkedListNode"; +import { IEnumerateEach } from "./Enumeration/IEnumerateEach"; +import { IDisposable } from "../Disposable/IDisposable"; +import { ILinkedNodeList } from "./ILinkedList"; +import { IEnumerator } from "./Enumeration/IEnumerator"; +import { Predicate, Selector, Action } from "../FunctionTypes"; +import { IArray } from "./Array/IArray"; +export declare class LinkedNodeList> implements ILinkedNodeList, IEnumerateEach, IDisposable { private _first; private _last; unsafeCount: number; @@ -29,3 +35,4 @@ export default class LinkedNodeList> implements static valueEnumeratorFrom(list: LinkedNodeList>): IEnumerator; static copyValues>(list: LinkedNodeList>, array: TDestination, index?: number): TDestination; } +export default LinkedNodeList; diff --git a/dist/umd.min/System/Collections/LinkedNodeList.js b/dist/umd.min/System/Collections/LinkedNodeList.js index 336ca2e4..132762e1 100644 --- a/dist/umd.min/System/Collections/LinkedNodeList.js +++ b/dist/umd.min/System/Collections/LinkedNodeList.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -!function(t){if("object"==typeof module&&"object"==typeof module.exports){var e=t(require,exports);void 0!==e&&(module.exports=e)}else"function"==typeof define&&define.amd&&define(["require","exports","../Text/Utility","../Exceptions/InvalidOperationException","../Exceptions/ArgumentException","../Exceptions/ArgumentNullException","./Enumeration/EnumeratorBase"],t)}(function(t,e){"use strict";function n(t,e){if(void 0===e&&(e="node"),null==t)throw new u["default"](e);if(t.next||t.previous)throw new o["default"]("Cannot add a node to a LinkedNodeList that is already linked.")}var r=t("../Text/Utility"),o=t("../Exceptions/InvalidOperationException"),i=t("../Exceptions/ArgumentException"),u=t("../Exceptions/ArgumentNullException"),s=t("./Enumeration/EnumeratorBase"),f=function(){function t(){this._first=null,this._last=null,this.unsafeCount=0}return Object.defineProperty(t.prototype,"first",{get:function(){return this._first},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"last",{get:function(){return this._last},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"count",{get:function(){for(var t=this._first,e=0;t;)e++,t=t.next;return e},enumerable:!0,configurable:!0}),t.prototype.forEach=function(t){var e=null,n=this.first,r=0;do e=n,n=e&&e.next;while(e&&t(e,r++)!==!1)},t.prototype.map=function(t){if(!t)throw new u["default"]("selector");var e=[];return this.forEach(function(n){e.push(t(n))}),e},t.prototype.clear=function(){var t,e=this,n=0,r=0;for(t=e._first,e._first=null;t;){n++;var o=t;t=t.next,o.next=null}for(t=e._last,e._last=null;t;){r++;var o=t;t=t.previous,o.previous=null}return n!==r&&console.warn("LinkedNodeList: Forward versus reverse count does not match when clearing. Forward: "+n+", Reverse: "+r),e.unsafeCount=0,n},t.prototype.dispose=function(){this.clear()},t.prototype.contains=function(t){return-1!=this.indexOf(t)},t.prototype.getNodeAt=function(t){if(0>t)return null;for(var e=this._first,n=0;e&&tt)return null;for(var e=this._first,n=0;e&&t\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport * as TextUtility from \"../Text/Utility\";\r\nimport InvalidOperationException from \"../Exceptions/InvalidOperationException\";\r\nimport ArgumentException from \"../Exceptions/ArgumentException\";\r\nimport ArgumentNullException from \"../Exceptions/ArgumentNullException\";\r\nimport EnumeratorBase from \"./Enumeration/EnumeratorBase\";\r\n\r\n\r\n/*****************************\r\n * IMPORTANT NOTES ABOUT PERFORMANCE:\r\n * http://jsperf.com/simulating-a-queue\r\n *\r\n * Adding to an array is very fast, but modifying is slow.\r\n * LinkedList wins when modifying contents.\r\n * http://stackoverflow.com/questions/166884/array-versus-linked-list\r\n *****************************/\r\n\r\n/**\r\n * This class is useful for managing a list of linked nodes, but it does not protect against modifying individual links.\r\n * If the consumer modifies a link (sets the previous or next value) it will effectively break the collection.\r\n *\r\n * It is possible to declare a node type of any kind as long as it contains a previous and next value that can reference another node.\r\n * Although not as safe as the included LinkedList, this class has less overhead and is more flexible.\r\n *\r\n * The count (or length) of this LinkedNodeList is not tracked since it could be corrupted at any time.\r\n */\r\nexport default\r\nclass LinkedNodeList>\r\nimplements ILinkedNodeList, IEnumerateEach, IDisposable\r\n{\r\n\r\n\tprivate _first:TNode;\r\n\tprivate _last:TNode;\r\n\tunsafeCount:number;\r\n\r\n\tconstructor()\r\n\t{\r\n\t\tthis._first = null;\r\n\t\tthis._last = null;\r\n\t\tthis.unsafeCount = 0;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * The first node. Will be null if the collection is empty.\r\n\t */\r\n\tget first():TNode\r\n\t{\r\n\t\treturn this._first;\r\n\t}\r\n\r\n\t/**\r\n\t * The last node.\r\n\t */\r\n\tget last():TNode\r\n\t{\r\n\t\treturn this._last;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Iteratively counts the number of linked nodes and returns the value.\r\n\t * @returns {number}\r\n\t */\r\n\tget count():number\r\n\t{\r\n\r\n\t\tvar next = this._first, i:number = 0;\r\n\t\twhile(next)\r\n\t\t{\r\n\t\t\ti++;\r\n\t\t\tnext = next.next;\r\n\t\t}\r\n\r\n\t\treturn i;\r\n\t}\r\n\r\n\t// Note, no need for 'useCopy' since this avoids any modification conflict.\r\n\t// If iterating over a copy is necessary, a copy should be made manually.\r\n\tforEach(\r\n\t\taction:Predicate | Action):void\r\n\t{\r\n\t\tvar current:TNode = null,\r\n\t\t next:TNode = this.first, // Be sure to track the next node so if current node is removed.\r\n\t\t index:number = 0;\r\n\r\n\t\tdo {\r\n\t\t\tcurrent = next;\r\n\t\t\tnext = current && current.next;\r\n\t\t}\r\n\t\twhile(current\r\n\t\t&& action(current, index++)!==false);\r\n\t}\r\n\r\n\tmap(selector:Selector):T[]\r\n\t{\r\n\t\tif(!selector) throw new ArgumentNullException('selector');\r\n\r\n\t\tvar result:T[] = [];\r\n\t\tthis.forEach(node=>\r\n\t\t{\r\n\t\t\tresult.push(selector(node));\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\r\n\t/**\r\n\t * Erases the linked node's references to each other and returns the number of nodes.\r\n\t * @returns {number}\r\n\t */\r\n\tclear():number\r\n\t{\r\n\t\tvar _ = this, n:TNode, cF:number = 0, cL:number = 0;\r\n\r\n\t\t// First, clear in the forward direction.\r\n\t\tn = _._first;\r\n\t\t_._first = null;\r\n\r\n\t\twhile(n)\r\n\t\t{\r\n\t\t\tcF++;\r\n\t\t\tlet current = n;\r\n\t\t\tn = n.next;\r\n\t\t\tcurrent.next = null;\r\n\t\t}\r\n\r\n\t\t// Last, clear in the reverse direction.\r\n\t\tn = _._last;\r\n\t\t_._last = null;\r\n\r\n\t\twhile(n)\r\n\t\t{\r\n\t\t\tcL++;\r\n\t\t\tlet current = n;\r\n\t\t\tn = n.previous;\r\n\t\t\tcurrent.previous = null;\r\n\t\t}\r\n\r\n\t\tif(cF!==cL) console.warn('LinkedNodeList: Forward versus reverse count does not match when clearing. Forward: ' + cF + \", Reverse: \" + cL);\r\n\r\n\t\t_.unsafeCount = 0;\r\n\r\n\t\treturn cF;\r\n\t}\r\n\r\n\t/**\r\n\t * Clears the list.\r\n\t */\r\n\tdispose():void\r\n\t{\r\n\t\tthis.clear();\r\n\t}\r\n\r\n\t/**\r\n\t * Iterates the list to see if a node exists.\r\n\t * @param node\r\n\t * @returns {boolean}\r\n\t */\r\n\tcontains(node:TNode):boolean\r\n\t{\r\n\t\treturn this.indexOf(node)!= -1;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Gets the index of a particular node.\r\n\t * @param index\r\n\t */\r\n\tgetNodeAt(index:number):TNode\r\n\t{\r\n\t\tif(index<0)\r\n\t\t\treturn null;\r\n\r\n\t\tvar next = this._first, i:number = 0;\r\n\t\twhile(next && index):TNode {\r\n\t\tvar node:TNode = null;\r\n\t\tthis.forEach((n,i)=>{\r\n\t\t\tif(condition(n,i)) {\r\n\t\t\t\tnode = n;\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn node;\r\n\t}\r\n\r\n\t/**\r\n\t * Iterates the list to find the specified node and returns its index.\r\n\t * @param node\r\n\t * @returns {boolean}\r\n\t */\r\n\tindexOf(node:TNode):number\r\n\t{\r\n\t\tif(node && (node.previous || node.next))\r\n\t\t{\r\n\r\n\t\t\tvar index = 0;\r\n\t\t\tvar c:TNode, n:TNode = this._first;\r\n\t\t\tdo {\r\n\t\t\t\tc = n;\r\n\t\t\t\tif(c===node) return index;\r\n\t\t\t\tindex++;\r\n\t\t\t}\r\n\t\t\twhile((n = c && c.next));\r\n\t\t}\r\n\r\n\t\treturn -1;\r\n\t}\r\n\r\n\t/**\r\n\t * Removes the first node and returns true if successful.\r\n\t * @returns {boolean}\r\n\t */\r\n\tremoveFirst():boolean\r\n\t{\r\n\t\treturn this.removeNode(this._first);\r\n\t}\r\n\r\n\t/**\r\n\t * Removes the last node and returns true if successful.\r\n\t * @returns {boolean}\r\n\t */\r\n\tremoveLast():boolean\r\n\t{\r\n\t\treturn this.removeNode(this._last);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Removes the specified node.\r\n\t * Returns true if successful and false if not found (already removed).\r\n\t * @param node\r\n\t * @returns {boolean}\r\n\t */\r\n\tremoveNode(node:TNode):boolean\r\n\t{\r\n\t\tif(node==null)\r\n\t\t\tthrow new ArgumentNullException('node');\r\n\r\n\t\tvar _ = this;\r\n\t\tvar prev = node.previous, next = node.next, a:boolean = false, b:boolean = false;\r\n\r\n\t\tif(prev) prev.next = next;\r\n\t\telse if(_._first==node) _._first = next;\r\n\t\telse a = true;\r\n\r\n\t\tif(next) next.previous = prev;\r\n\t\telse if(_._last==node) _._last = prev;\r\n\t\telse b = true;\r\n\r\n\t\tif(a!==b)\r\n\t\t{\r\n\t\t\tthrow new ArgumentException(\r\n\t\t\t\t'node', TextUtility.format(\r\n\t\t\t\t\t\"Provided node is has no {0} reference but is not the {1} node!\",\r\n\t\t\t\t\ta ? \"previous\" : \"next\", a ? \"first\" : \"last\"\r\n\t\t\t\t)\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tvar removed = !a && !b;\r\n\t\tif(removed) _.unsafeCount--;\r\n\t\treturn removed;\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Adds a node to the end of the list.\r\n\t * @param node\r\n\t */\r\n\taddNode(node:TNode):void\r\n\t{\r\n\t\tthis.addNodeAfter(node);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Inserts a node before the specified 'before' node.\r\n\t * If no 'before' node is specified, it inserts it as the first node.\r\n\t * @param node\r\n\t * @param before\r\n\t */\r\n\taddNodeBefore(node:TNode, before?:TNode):void\r\n\t{\r\n\t\tassertValidDetached(node);\r\n\r\n\t\tvar _ = this;\r\n\r\n\t\tif(!before)\r\n\t\t{\r\n\t\t\tbefore = _._first;\r\n\t\t}\r\n\r\n\t\tif(before)\r\n\t\t{\r\n\t\t\tlet prev = before.previous;\r\n\t\t\tnode.previous = prev;\r\n\t\t\tnode.next = before;\r\n\r\n\t\t\tbefore.previous = node;\r\n\t\t\tif(prev) prev.next = node;\r\n\t\t\tif(before==_._first) _._last = node;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t_._first = _._last = node;\r\n\t\t}\r\n\r\n\t\t_.unsafeCount++;\r\n\t}\r\n\r\n\t/**\r\n\t * Inserts a node after the specified 'after' node.\r\n\t * If no 'after' node is specified, it appends it as the last node.\r\n\t * @param node\r\n\t * @param after\r\n\t */\r\n\taddNodeAfter(node:TNode, after?:TNode):void\r\n\t{\r\n\t\tassertValidDetached(node);\r\n\r\n\t\tvar _ = this;\r\n\r\n\t\tif(!after)\r\n\t\t{\r\n\t\t\tafter = _._last;\r\n\t\t}\r\n\r\n\t\tif(after)\r\n\t\t{\r\n\t\t\tlet next = after.next;\r\n\t\t\tnode.next = next;\r\n\t\t\tnode.previous = after;\r\n\r\n\t\t\tafter.next = node;\r\n\t\t\tif(next) next.previous = node;\r\n\t\t\tif(after==_._last) _._last = node;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t_._first = _._last = node;\r\n\t\t}\r\n\r\n\t\t_.unsafeCount++;\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Takes and existing node and replaces it.\r\n\t * @param node\r\n\t * @param replacement\r\n\t */\r\n\treplace(node:TNode, replacement:TNode):void\r\n\t{\r\n\r\n\t\tif(node==null)\r\n\t\t\tthrow new ArgumentNullException('node');\r\n\r\n\t\tassertValidDetached(replacement, 'replacement');\r\n\r\n\t\tvar _ = this;\r\n\t\treplacement.previous = node.previous;\r\n\t\treplacement.next = node.next;\r\n\r\n\t\tif(node.previous) node.previous.next = replacement;\r\n\t\tif(node.next) node.next.previous = replacement;\r\n\r\n\t\tif(node==_._first) _._first = replacement;\r\n\t\tif(node==_._last) _._last = replacement;\r\n\t}\r\n\r\n\tstatic valueEnumeratorFrom(list:LinkedNodeList>):IEnumerator {\r\n\r\n\t\tif(!list) throw new ArgumentNullException('list');\r\n\r\n\t\tvar _ = this,\r\n\t\t current:ILinkedNodeWithValue,\r\n\t\t next:ILinkedNodeWithValue;\r\n\r\n\t\treturn new EnumeratorBase(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\t// Initialize anchor...\r\n\t\t\t\tcurrent = null;\r\n\t\t\t\tnext = list.first;\r\n\t\t\t},\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\r\n\t\t\t\tif(next)\r\n\t\t\t\t{\r\n\t\t\t\t\tcurrent = next;\r\n\t\t\t\t\tnext = current && current.next;\r\n\t\t\t\t\treturn yielder.yieldReturn(current.value);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic copyValues>(\r\n\t\tlist:LinkedNodeList>,\r\n\t\tarray:TDestination,\r\n\t\tindex:number = 0):TDestination\r\n\t{\r\n\t\tif(list && list.first)\r\n\t\t{\r\n\t\t\tif(!array) throw new ArgumentNullException('array');\r\n\r\n\t\t\tlist.forEach(\r\n\t\t\t\t(node, i) =>\r\n\t\t\t\t{\r\n\t\t\t\t\tarray[index + i] = node.value;\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\treturn array;\r\n\t}\r\n\r\n}\r\n\r\nfunction assertValidDetached>(node:TNode, propName:string = 'node')\r\n{\r\n\r\n\tif(node==null)\r\n\t\tthrow new ArgumentNullException(propName);\r\n\r\n\tif(node.next || node.previous)\r\n\t\tthrow new InvalidOperationException(\"Cannot add a node to a LinkedNodeList that is already linked.\");\r\n\r\n}"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/LinkedNodeList.js","System/Collections/LinkedNodeList.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","assertValidDetached","node","propName","ArgumentNullException_1","ArgumentNullException","next","previous","InvalidOperationException_1","InvalidOperationException","TextUtility","ArgumentException_1","EnumeratorBase_1","LinkedNodeList","this","_first","_last","unsafeCount","Object","defineProperty","prototype","get","enumerable","configurable","i","forEach","action","current","first","index","map","selector","result","push","clear","n","_","cF","cL","console","warn","dispose","contains","indexOf","getNodeAt","find","condition","c","removeFirst","removeNode","removeLast","prev","a","b","ArgumentException","format","removed","addNode","addNodeAfter","addNodeBefore","before","after","replace","replacement","valueEnumeratorFrom","list","EnumeratorBase","yielder","yieldReturn","value","yieldBreak","copyValues","array"],"mappings":"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","file":"System/Collections/LinkedNodeList.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../Text/Utility\", \"../Exceptions/InvalidOperationException\", \"../Exceptions/ArgumentException\", \"../Exceptions/ArgumentNullException\", \"./Enumeration/EnumeratorBase\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var TextUtility = require(\"../Text/Utility\");\n var InvalidOperationException_1 = require(\"../Exceptions/InvalidOperationException\");\n var ArgumentException_1 = require(\"../Exceptions/ArgumentException\");\n var ArgumentNullException_1 = require(\"../Exceptions/ArgumentNullException\");\n var EnumeratorBase_1 = require(\"./Enumeration/EnumeratorBase\");\n var LinkedNodeList = (function () {\n function LinkedNodeList() {\n this._first = null;\n this._last = null;\n this.unsafeCount = 0;\n }\n Object.defineProperty(LinkedNodeList.prototype, \"first\", {\n get: function () {\n return this._first;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedNodeList.prototype, \"last\", {\n get: function () {\n return this._last;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedNodeList.prototype, \"count\", {\n get: function () {\n var next = this._first, i = 0;\n while (next) {\n i++;\n next = next.next;\n }\n return i;\n },\n enumerable: true,\n configurable: true\n });\n LinkedNodeList.prototype.forEach = function (action) {\n var current = null, next = this.first, index = 0;\n do {\n current = next;\n next = current && current.next;\n } while (current\n && action(current, index++) !== false);\n };\n LinkedNodeList.prototype.map = function (selector) {\n if (!selector)\n throw new ArgumentNullException_1.ArgumentNullException('selector');\n var result = [];\n this.forEach(function (node) {\n result.push(selector(node));\n });\n return result;\n };\n LinkedNodeList.prototype.clear = function () {\n var _ = this, n, cF = 0, cL = 0;\n n = _._first;\n _._first = null;\n while (n) {\n cF++;\n var current = n;\n n = n.next;\n current.next = null;\n }\n n = _._last;\n _._last = null;\n while (n) {\n cL++;\n var current = n;\n n = n.previous;\n current.previous = null;\n }\n if (cF !== cL)\n console.warn('LinkedNodeList: Forward versus reverse count does not match when clearing. Forward: ' + cF + \", Reverse: \" + cL);\n _.unsafeCount = 0;\n return cF;\n };\n LinkedNodeList.prototype.dispose = function () {\n this.clear();\n };\n LinkedNodeList.prototype.contains = function (node) {\n return this.indexOf(node) != -1;\n };\n LinkedNodeList.prototype.getNodeAt = function (index) {\n if (index < 0)\n return null;\n var next = this._first, i = 0;\n while (next && index < i++) {\n next = next.next;\n }\n return next;\n };\n LinkedNodeList.prototype.find = function (condition) {\n var node = null;\n this.forEach(function (n, i) {\n if (condition(n, i)) {\n node = n;\n return false;\n }\n });\n return node;\n };\n LinkedNodeList.prototype.indexOf = function (node) {\n if (node && (node.previous || node.next)) {\n var index = 0;\n var c, n = this._first;\n do {\n c = n;\n if (c === node)\n return index;\n index++;\n } while ((n = c && c.next));\n }\n return -1;\n };\n LinkedNodeList.prototype.removeFirst = function () {\n return this.removeNode(this._first);\n };\n LinkedNodeList.prototype.removeLast = function () {\n return this.removeNode(this._last);\n };\n LinkedNodeList.prototype.removeNode = function (node) {\n if (node == null)\n throw new ArgumentNullException_1.ArgumentNullException('node');\n var _ = this;\n var prev = node.previous, next = node.next, a = false, b = false;\n if (prev)\n prev.next = next;\n else if (_._first == node)\n _._first = next;\n else\n a = true;\n if (next)\n next.previous = prev;\n else if (_._last == node)\n _._last = prev;\n else\n b = true;\n if (a !== b) {\n throw new ArgumentException_1.ArgumentException('node', TextUtility.format(\"Provided node is has no {0} reference but is not the {1} node!\", a ? \"previous\" : \"next\", a ? \"first\" : \"last\"));\n }\n var removed = !a && !b;\n if (removed)\n _.unsafeCount--;\n return removed;\n };\n LinkedNodeList.prototype.addNode = function (node) {\n this.addNodeAfter(node);\n };\n LinkedNodeList.prototype.addNodeBefore = function (node, before) {\n assertValidDetached(node);\n var _ = this;\n if (!before) {\n before = _._first;\n }\n if (before) {\n var prev = before.previous;\n node.previous = prev;\n node.next = before;\n before.previous = node;\n if (prev)\n prev.next = node;\n if (before == _._first)\n _._last = node;\n }\n else {\n _._first = _._last = node;\n }\n _.unsafeCount++;\n };\n LinkedNodeList.prototype.addNodeAfter = function (node, after) {\n assertValidDetached(node);\n var _ = this;\n if (!after) {\n after = _._last;\n }\n if (after) {\n var next = after.next;\n node.next = next;\n node.previous = after;\n after.next = node;\n if (next)\n next.previous = node;\n if (after == _._last)\n _._last = node;\n }\n else {\n _._first = _._last = node;\n }\n _.unsafeCount++;\n };\n LinkedNodeList.prototype.replace = function (node, replacement) {\n if (node == null)\n throw new ArgumentNullException_1.ArgumentNullException('node');\n assertValidDetached(replacement, 'replacement');\n var _ = this;\n replacement.previous = node.previous;\n replacement.next = node.next;\n if (node.previous)\n node.previous.next = replacement;\n if (node.next)\n node.next.previous = replacement;\n if (node == _._first)\n _._first = replacement;\n if (node == _._last)\n _._last = replacement;\n };\n LinkedNodeList.valueEnumeratorFrom = function (list) {\n if (!list)\n throw new ArgumentNullException_1.ArgumentNullException('list');\n var _ = this, current, next;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n current = null;\n next = list.first;\n }, function (yielder) {\n if (next) {\n current = next;\n next = current && current.next;\n return yielder.yieldReturn(current.value);\n }\n return yielder.yieldBreak();\n });\n };\n LinkedNodeList.copyValues = function (list, array, index) {\n if (index === void 0) { index = 0; }\n if (list && list.first) {\n if (!array)\n throw new ArgumentNullException_1.ArgumentNullException('array');\n list.forEach(function (node, i) {\n array[index + i] = node.value;\n });\n }\n return array;\n };\n return LinkedNodeList;\n }());\n exports.LinkedNodeList = LinkedNodeList;\n function assertValidDetached(node, propName) {\n if (propName === void 0) { propName = 'node'; }\n if (node == null)\n throw new ArgumentNullException_1.ArgumentNullException(propName);\n if (node.next || node.previous)\n throw new InvalidOperationException_1.InvalidOperationException(\"Cannot add a node to a LinkedNodeList that is already linked.\");\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = LinkedNodeList;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport * as TextUtility from \"../Text/Utility\";\r\nimport {InvalidOperationException} from \"../Exceptions/InvalidOperationException\";\r\nimport {ArgumentException} from \"../Exceptions/ArgumentException\";\r\nimport {ArgumentNullException} from \"../Exceptions/ArgumentNullException\";\r\nimport {EnumeratorBase} from \"./Enumeration/EnumeratorBase\";\r\nimport {ILinkedNode, ILinkedNodeWithValue} from \"./ILinkedListNode\";\r\nimport {IEnumerateEach} from \"./Enumeration/IEnumerateEach\";\r\nimport {IDisposable} from \"../Disposable/IDisposable\";\r\nimport {ILinkedNodeList} from \"./ILinkedList\";\r\nimport {IEnumerator} from \"./Enumeration/IEnumerator\";\r\nimport {Predicate, Selector, Action} from \"../FunctionTypes\";\r\nimport {IArray} from \"./Array/IArray\";\r\n\r\n\r\n/*****************************\r\n * IMPORTANT NOTES ABOUT PERFORMANCE:\r\n * http://jsperf.com/simulating-a-queue\r\n *\r\n * Adding to an array is very fast, but modifying is slow.\r\n * LinkedList wins when modifying contents.\r\n * http://stackoverflow.com/questions/166884/array-versus-linked-list\r\n *****************************/\r\n\r\n/**\r\n * This class is useful for managing a list of linked nodes, but it does not protect against modifying individual links.\r\n * If the consumer modifies a link (sets the previous or next value) it will effectively break the collection.\r\n *\r\n * It is possible to declare a node type of any kind as long as it contains a previous and next value that can reference another node.\r\n * Although not as safe as the included LinkedList, this class has less overhead and is more flexible.\r\n *\r\n * The count (or length) of this LinkedNodeList is not tracked since it could be corrupted at any time.\r\n */\r\nexport class LinkedNodeList>\r\nimplements ILinkedNodeList, IEnumerateEach, IDisposable\r\n{\r\n\r\n\tprivate _first:TNode;\r\n\tprivate _last:TNode;\r\n\tunsafeCount:number;\r\n\r\n\tconstructor()\r\n\t{\r\n\t\tthis._first = null;\r\n\t\tthis._last = null;\r\n\t\tthis.unsafeCount = 0;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * The first node. Will be null if the collection is empty.\r\n\t */\r\n\tget first():TNode\r\n\t{\r\n\t\treturn this._first;\r\n\t}\r\n\r\n\t/**\r\n\t * The last node.\r\n\t */\r\n\tget last():TNode\r\n\t{\r\n\t\treturn this._last;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Iteratively counts the number of linked nodes and returns the value.\r\n\t * @returns {number}\r\n\t */\r\n\tget count():number\r\n\t{\r\n\r\n\t\tvar next = this._first, i:number = 0;\r\n\t\twhile(next)\r\n\t\t{\r\n\t\t\ti++;\r\n\t\t\tnext = next.next;\r\n\t\t}\r\n\r\n\t\treturn i;\r\n\t}\r\n\r\n\t// Note, no need for 'useCopy' since this avoids any modification conflict.\r\n\t// If iterating over a copy is necessary, a copy should be made manually.\r\n\tforEach(\r\n\t\taction:Predicate | Action):void\r\n\t{\r\n\t\tvar current:TNode = null,\r\n\t\t next:TNode = this.first, // Be sure to track the next node so if current node is removed.\r\n\t\t index:number = 0;\r\n\r\n\t\tdo {\r\n\t\t\tcurrent = next;\r\n\t\t\tnext = current && current.next;\r\n\t\t}\r\n\t\twhile(current\r\n\t\t&& action(current, index++)!==false);\r\n\t}\r\n\r\n\tmap(selector:Selector):T[]\r\n\t{\r\n\t\tif(!selector) throw new ArgumentNullException('selector');\r\n\r\n\t\tvar result:T[] = [];\r\n\t\tthis.forEach(node=>\r\n\t\t{\r\n\t\t\tresult.push(selector(node));\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\r\n\t/**\r\n\t * Erases the linked node's references to each other and returns the number of nodes.\r\n\t * @returns {number}\r\n\t */\r\n\tclear():number\r\n\t{\r\n\t\tvar _ = this, n:TNode, cF:number = 0, cL:number = 0;\r\n\r\n\t\t// First, clear in the forward direction.\r\n\t\tn = _._first;\r\n\t\t_._first = null;\r\n\r\n\t\twhile(n)\r\n\t\t{\r\n\t\t\tcF++;\r\n\t\t\tlet current = n;\r\n\t\t\tn = n.next;\r\n\t\t\tcurrent.next = null;\r\n\t\t}\r\n\r\n\t\t// Last, clear in the reverse direction.\r\n\t\tn = _._last;\r\n\t\t_._last = null;\r\n\r\n\t\twhile(n)\r\n\t\t{\r\n\t\t\tcL++;\r\n\t\t\tlet current = n;\r\n\t\t\tn = n.previous;\r\n\t\t\tcurrent.previous = null;\r\n\t\t}\r\n\r\n\t\tif(cF!==cL) console.warn('LinkedNodeList: Forward versus reverse count does not match when clearing. Forward: ' + cF + \", Reverse: \" + cL);\r\n\r\n\t\t_.unsafeCount = 0;\r\n\r\n\t\treturn cF;\r\n\t}\r\n\r\n\t/**\r\n\t * Clears the list.\r\n\t */\r\n\tdispose():void\r\n\t{\r\n\t\tthis.clear();\r\n\t}\r\n\r\n\t/**\r\n\t * Iterates the list to see if a node exists.\r\n\t * @param node\r\n\t * @returns {boolean}\r\n\t */\r\n\tcontains(node:TNode):boolean\r\n\t{\r\n\t\treturn this.indexOf(node)!= -1;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Gets the index of a particular node.\r\n\t * @param index\r\n\t */\r\n\tgetNodeAt(index:number):TNode\r\n\t{\r\n\t\tif(index<0)\r\n\t\t\treturn null;\r\n\r\n\t\tvar next = this._first, i:number = 0;\r\n\t\twhile(next && index):TNode {\r\n\t\tvar node:TNode = null;\r\n\t\tthis.forEach((n,i)=>{\r\n\t\t\tif(condition(n,i)) {\r\n\t\t\t\tnode = n;\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn node;\r\n\t}\r\n\r\n\t/**\r\n\t * Iterates the list to find the specified node and returns its index.\r\n\t * @param node\r\n\t * @returns {boolean}\r\n\t */\r\n\tindexOf(node:TNode):number\r\n\t{\r\n\t\tif(node && (node.previous || node.next))\r\n\t\t{\r\n\r\n\t\t\tvar index = 0;\r\n\t\t\tvar c:TNode, n:TNode = this._first;\r\n\t\t\tdo {\r\n\t\t\t\tc = n;\r\n\t\t\t\tif(c===node) return index;\r\n\t\t\t\tindex++;\r\n\t\t\t}\r\n\t\t\twhile((n = c && c.next));\r\n\t\t}\r\n\r\n\t\treturn -1;\r\n\t}\r\n\r\n\t/**\r\n\t * Removes the first node and returns true if successful.\r\n\t * @returns {boolean}\r\n\t */\r\n\tremoveFirst():boolean\r\n\t{\r\n\t\treturn this.removeNode(this._first);\r\n\t}\r\n\r\n\t/**\r\n\t * Removes the last node and returns true if successful.\r\n\t * @returns {boolean}\r\n\t */\r\n\tremoveLast():boolean\r\n\t{\r\n\t\treturn this.removeNode(this._last);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Removes the specified node.\r\n\t * Returns true if successful and false if not found (already removed).\r\n\t * @param node\r\n\t * @returns {boolean}\r\n\t */\r\n\tremoveNode(node:TNode):boolean\r\n\t{\r\n\t\tif(node==null)\r\n\t\t\tthrow new ArgumentNullException('node');\r\n\r\n\t\tvar _ = this;\r\n\t\tvar prev = node.previous, next = node.next, a:boolean = false, b:boolean = false;\r\n\r\n\t\tif(prev) prev.next = next;\r\n\t\telse if(_._first==node) _._first = next;\r\n\t\telse a = true;\r\n\r\n\t\tif(next) next.previous = prev;\r\n\t\telse if(_._last==node) _._last = prev;\r\n\t\telse b = true;\r\n\r\n\t\tif(a!==b)\r\n\t\t{\r\n\t\t\tthrow new ArgumentException(\r\n\t\t\t\t'node', TextUtility.format(\r\n\t\t\t\t\t\"Provided node is has no {0} reference but is not the {1} node!\",\r\n\t\t\t\t\ta ? \"previous\" : \"next\", a ? \"first\" : \"last\"\r\n\t\t\t\t)\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tvar removed = !a && !b;\r\n\t\tif(removed) _.unsafeCount--;\r\n\t\treturn removed;\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Adds a node to the end of the list.\r\n\t * @param node\r\n\t */\r\n\taddNode(node:TNode):void\r\n\t{\r\n\t\tthis.addNodeAfter(node);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Inserts a node before the specified 'before' node.\r\n\t * If no 'before' node is specified, it inserts it as the first node.\r\n\t * @param node\r\n\t * @param before\r\n\t */\r\n\taddNodeBefore(node:TNode, before?:TNode):void\r\n\t{\r\n\t\tassertValidDetached(node);\r\n\r\n\t\tvar _ = this;\r\n\r\n\t\tif(!before)\r\n\t\t{\r\n\t\t\tbefore = _._first;\r\n\t\t}\r\n\r\n\t\tif(before)\r\n\t\t{\r\n\t\t\tlet prev = before.previous;\r\n\t\t\tnode.previous = prev;\r\n\t\t\tnode.next = before;\r\n\r\n\t\t\tbefore.previous = node;\r\n\t\t\tif(prev) prev.next = node;\r\n\t\t\tif(before==_._first) _._last = node;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t_._first = _._last = node;\r\n\t\t}\r\n\r\n\t\t_.unsafeCount++;\r\n\t}\r\n\r\n\t/**\r\n\t * Inserts a node after the specified 'after' node.\r\n\t * If no 'after' node is specified, it appends it as the last node.\r\n\t * @param node\r\n\t * @param after\r\n\t */\r\n\taddNodeAfter(node:TNode, after?:TNode):void\r\n\t{\r\n\t\tassertValidDetached(node);\r\n\r\n\t\tvar _ = this;\r\n\r\n\t\tif(!after)\r\n\t\t{\r\n\t\t\tafter = _._last;\r\n\t\t}\r\n\r\n\t\tif(after)\r\n\t\t{\r\n\t\t\tlet next = after.next;\r\n\t\t\tnode.next = next;\r\n\t\t\tnode.previous = after;\r\n\r\n\t\t\tafter.next = node;\r\n\t\t\tif(next) next.previous = node;\r\n\t\t\tif(after==_._last) _._last = node;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t_._first = _._last = node;\r\n\t\t}\r\n\r\n\t\t_.unsafeCount++;\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Takes and existing node and replaces it.\r\n\t * @param node\r\n\t * @param replacement\r\n\t */\r\n\treplace(node:TNode, replacement:TNode):void\r\n\t{\r\n\r\n\t\tif(node==null)\r\n\t\t\tthrow new ArgumentNullException('node');\r\n\r\n\t\tassertValidDetached(replacement, 'replacement');\r\n\r\n\t\tvar _ = this;\r\n\t\treplacement.previous = node.previous;\r\n\t\treplacement.next = node.next;\r\n\r\n\t\tif(node.previous) node.previous.next = replacement;\r\n\t\tif(node.next) node.next.previous = replacement;\r\n\r\n\t\tif(node==_._first) _._first = replacement;\r\n\t\tif(node==_._last) _._last = replacement;\r\n\t}\r\n\r\n\tstatic valueEnumeratorFrom(list:LinkedNodeList>):IEnumerator {\r\n\r\n\t\tif(!list) throw new ArgumentNullException('list');\r\n\r\n\t\tvar _ = this,\r\n\t\t current:ILinkedNodeWithValue,\r\n\t\t next:ILinkedNodeWithValue;\r\n\r\n\t\treturn new EnumeratorBase(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\t// Initialize anchor...\r\n\t\t\t\tcurrent = null;\r\n\t\t\t\tnext = list.first;\r\n\t\t\t},\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\r\n\t\t\t\tif(next)\r\n\t\t\t\t{\r\n\t\t\t\t\tcurrent = next;\r\n\t\t\t\t\tnext = current && current.next;\r\n\t\t\t\t\treturn yielder.yieldReturn(current.value);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic copyValues>(\r\n\t\tlist:LinkedNodeList>,\r\n\t\tarray:TDestination,\r\n\t\tindex:number = 0):TDestination\r\n\t{\r\n\t\tif(list && list.first)\r\n\t\t{\r\n\t\t\tif(!array) throw new ArgumentNullException('array');\r\n\r\n\t\t\tlist.forEach(\r\n\t\t\t\t(node, i) =>\r\n\t\t\t\t{\r\n\t\t\t\t\tarray[index + i] = node.value;\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\treturn array;\r\n\t}\r\n\r\n}\r\n\r\nfunction assertValidDetached>(node:TNode, propName:string = 'node')\r\n{\r\n\r\n\tif(node==null)\r\n\t\tthrow new ArgumentNullException(propName);\r\n\r\n\tif(node.next || node.previous)\r\n\t\tthrow new InvalidOperationException(\"Cannot add a node to a LinkedNodeList that is already linked.\");\r\n\r\n}\r\n\r\nexport default LinkedNodeList;"]} \ No newline at end of file diff --git a/dist/umd.min/System/Collections/List.d.ts b/dist/umd.min/System/Collections/List.d.ts index 39f8549b..4841979b 100644 --- a/dist/umd.min/System/Collections/List.d.ts +++ b/dist/umd.min/System/Collections/List.d.ts @@ -1,10 +1,15 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import CollectionBase from "./CollectionBase"; -export default class List extends CollectionBase implements IList, IEnumerateEach { +import { CollectionBase } from "./CollectionBase"; +import { Predicate, Action, EqualityComparison } from "../FunctionTypes"; +import { IEnumerator } from "./Enumeration/IEnumerator"; +import { IList } from "./IList"; +import { IEnumerateEach } from "./Enumeration/IEnumerateEach"; +import { IEnumerableOrArray } from "./IEnumerableOrArray"; +import { IArray } from "./Array/IArray"; +export declare class List extends CollectionBase implements IList, IEnumerateEach { protected _source: T[]; constructor(source?: IEnumerableOrArray, equalityComparer?: EqualityComparison); protected getCount(): number; @@ -22,3 +27,4 @@ export default class List extends CollectionBase implements IList, IEnu getEnumerator(): IEnumerator; forEach(action: Predicate | Action, useCopy?: boolean): void; } +export default List; diff --git a/dist/umd.min/System/Collections/List.js b/dist/umd.min/System/Collections/List.js index d55767d1..b9791f94 100644 --- a/dist/umd.min/System/Collections/List.js +++ b/dist/umd.min/System/Collections/List.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)};!function(t){if("object"==typeof module&&"object"==typeof module.exports){var e=t(require,exports);void 0!==e&&(module.exports=e)}else"function"==typeof define&&define.amd&&define(["require","exports","../Compare","./Array/Utility","./Enumeration/Enumerator","../Types","./Enumeration/ArrayEnumerator","./CollectionBase"],t)}(function(t,e){"use strict";var r=t("../Compare"),o=t("./Array/Utility"),n=t("./Enumeration/Enumerator"),i=t("../Types"),u=t("./Enumeration/ArrayEnumerator"),s=t("./CollectionBase"),c=function(t){function e(e,o){void 0===o&&(o=r.areEqual),t.call(this,null,o);var n=this;Array.isArray(e)?n._source=e.slice():(n._source=[],n._importEntries(e))}return __extends(e,t),e.prototype.getCount=function(){return this._source.length},e.prototype._addInternal=function(t){return this._source.push(t),!0},e.prototype._removeInternal=function(t,e){return void 0===e&&(e=1/0),o.remove(this._source,t,e,this._equalityComparer)},e.prototype._clearInternal=function(){var t=this._source.length;return this._source.length=0,t},e.prototype._importEntries=function(e){if(i["default"].isArrayLike(e)){var r=e.length;if(!r)return 0;var o=this._source,n=o.length;o.length+=r;for(var u=0;r>u;u++)o[u+n]=e[u];return r}return t.prototype._importEntries.call(this,e)},e.prototype.get=function(t){return this._source[t]},e.prototype.set=function(t,e){var o=this._source;return tu;u++)o[u+n]=e[u];return r}return t.prototype._importEntries.call(this,e)},e.prototype.get=function(t){return this._source[t]},e.prototype.set=function(t,e){var o=this._source;return t\r\n\r\n// A means for interfacing an array with ICollection and for use as a base class.\r\nimport {areEqual} from \"../Compare\";\r\nimport {remove, indexOf, contains, copyTo, removeIndex} from \"./Array/Utility\";\r\nimport {forEach} from \"./Enumeration/Enumerator\";\r\nimport Type from \"../Types\";\r\nimport ArrayEnumerator from \"./Enumeration/ArrayEnumerator\";\r\nimport CollectionBase from \"./CollectionBase\";\r\nexport default class List\r\nextends CollectionBase\r\nimplements IList, IEnumerateEach\r\n{\r\n\r\n\tprotected _source:T[];\r\n\r\n\tconstructor(\r\n\t\tsource?:IEnumerableOrArray,\r\n\t\tequalityComparer:EqualityComparison = areEqual)\r\n\t{\r\n\t\tsuper(null,equalityComparer);\r\n\t\tvar _ = this;\r\n\t\tif(Array.isArray(source))\r\n\t\t{\r\n\t\t\t_._source = source.slice();\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t_._source = [];\r\n\t\t\t_._importEntries(source);\r\n\t\t}\r\n\t}\r\n\r\n\tprotected getCount():number\r\n\t{\r\n\t\treturn this._source.length;\r\n\t}\r\n\r\n\tprotected _addInternal(entry:T):boolean\r\n\t{\r\n\t\tthis._source.push(entry);\r\n\t\treturn true;\r\n\t}\r\n\r\n\tprotected _removeInternal(entry:T, max:number = Infinity):number\r\n\t{\r\n\t\treturn remove(\r\n\t\t\tthis._source, entry, max,\r\n\t\t\tthis._equalityComparer);\r\n\t}\r\n\r\n\tprotected _clearInternal():number\r\n\t{\r\n\t\tvar len = this._source.length;\r\n\t\tthis._source.length = 0;\r\n\t\treturn len;\t}\r\n\r\n\tprotected _importEntries(entries:IEnumerableOrArray):number\r\n\t{\r\n\t\tif(Type.isArrayLike(entries))\r\n\t\t{\r\n\t\t\tvar len = entries.length;\r\n\t\t\tif(!len) return 0;\r\n\t\t\tvar s = this._source;\r\n\r\n\t\t\tvar first = s.length;\r\n\t\t\ts.length += len;\r\n\t\t\tfor(let i = 0;i>(target:TTarget, index?:number):TTarget\r\n\t{\r\n\t\treturn copyTo(this._source, target, 0, index);\r\n\t}\r\n\t\r\n\tgetEnumerator():IEnumerator\r\n\t{\r\n\t\treturn new ArrayEnumerator(this._source);\r\n\t}\r\n\r\n\tforEach(action:Predicate|Action, useCopy?:boolean):void\r\n\t{\r\n\t\tvar s = this._source;\r\n\t\tforEach(useCopy ? s.slice() : s, action);\r\n\t}\r\n\r\n}"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/List.js","System/Collections/List.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","Compare_1","Utility_1","Enumerator_1","Types_1","ArrayEnumerator_1","CollectionBase_1","List","_super","source","equalityComparer","areEqual","call","_","Array","isArray","_source","slice","_importEntries","getCount","length","_addInternal","entry","push","_removeInternal","max","Infinity","remove","_equalityComparer","_clearInternal","len","entries","Type","isArrayLike","s","first","i","get","index","set","value","_onModified","indexOf","item","insert","splice","removeAt","removeIndex","contains","copyTo","target","getEnumerator","ArrayEnumerator","forEach","action","useCopy","CollectionBase","defineProperty"],"mappings":"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","file":"System/Collections/List.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../Compare\", \"./Array/Utility\", \"./Enumeration/Enumerator\", \"../Types\", \"./Enumeration/ArrayEnumerator\", \"./CollectionBase\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var Compare_1 = require(\"../Compare\");\n var Utility_1 = require(\"./Array/Utility\");\n var Enumerator_1 = require(\"./Enumeration/Enumerator\");\n var Types_1 = require(\"../Types\");\n var ArrayEnumerator_1 = require(\"./Enumeration/ArrayEnumerator\");\n var CollectionBase_1 = require(\"./CollectionBase\");\n var List = (function (_super) {\n __extends(List, _super);\n function List(source, equalityComparer) {\n if (equalityComparer === void 0) { equalityComparer = Compare_1.areEqual; }\n _super.call(this, null, equalityComparer);\n var _ = this;\n if (Array.isArray(source)) {\n _._source = source.slice();\n }\n else {\n _._source = [];\n _._importEntries(source);\n }\n }\n List.prototype.getCount = function () {\n return this._source.length;\n };\n List.prototype._addInternal = function (entry) {\n this._source.push(entry);\n return true;\n };\n List.prototype._removeInternal = function (entry, max) {\n if (max === void 0) { max = Infinity; }\n return Utility_1.remove(this._source, entry, max, this._equalityComparer);\n };\n List.prototype._clearInternal = function () {\n var len = this._source.length;\n this._source.length = 0;\n return len;\n };\n List.prototype._importEntries = function (entries) {\n if (Types_1.Type.isArrayLike(entries)) {\n var len = entries.length;\n if (!len)\n return 0;\n var s = this._source;\n var first = s.length;\n s.length += len;\n for (var i = 0; i < len; i++) {\n s[i + first] = entries[i];\n }\n return len;\n }\n else {\n return _super.prototype._importEntries.call(this, entries);\n }\n };\n List.prototype.get = function (index) {\n return this._source[index];\n };\n List.prototype.set = function (index, value) {\n var s = this._source;\n if (index < s.length && Compare_1.areEqual(value, s[index]))\n return false;\n s[index] = value;\n this._onModified();\n return true;\n };\n List.prototype.indexOf = function (item) {\n return Utility_1.indexOf(this._source, item, this._equalityComparer);\n };\n List.prototype.insert = function (index, value) {\n var s = this._source;\n if (index < s.length) {\n this._source.splice(index, 0, value);\n }\n else {\n this._source[index] = value;\n }\n this._onModified();\n };\n List.prototype.removeAt = function (index) {\n if (Utility_1.removeIndex(this._source, index)) {\n this._onModified();\n return true;\n }\n return false;\n };\n List.prototype.contains = function (item) {\n return Utility_1.contains(this._source, item, this._equalityComparer);\n };\n List.prototype.copyTo = function (target, index) {\n return Utility_1.copyTo(this._source, target, 0, index);\n };\n List.prototype.getEnumerator = function () {\n return new ArrayEnumerator_1.ArrayEnumerator(this._source);\n };\n List.prototype.forEach = function (action, useCopy) {\n var s = this._source;\n Enumerator_1.forEach(useCopy ? s.slice() : s, action);\n };\n return List;\n }(CollectionBase_1.CollectionBase));\n exports.List = List;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = List;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {areEqual} from \"../Compare\";\r\nimport {remove, indexOf, contains, copyTo, removeIndex} from \"./Array/Utility\";\r\nimport {forEach} from \"./Enumeration/Enumerator\";\r\nimport {Type} from \"../Types\";\r\nimport {ArrayEnumerator} from \"./Enumeration/ArrayEnumerator\";\r\nimport {CollectionBase} from \"./CollectionBase\";\r\nimport {Predicate, Action, EqualityComparison} from \"../FunctionTypes\";\r\nimport {IEnumerator} from \"./Enumeration/IEnumerator\";\r\nimport {IList} from \"./IList\";\r\nimport {IEnumerateEach} from \"./Enumeration/IEnumerateEach\";\r\nimport {IEnumerableOrArray} from \"./IEnumerableOrArray\";\r\nimport {IArray} from \"./Array/IArray\";\r\n\r\nexport class List\r\nextends CollectionBase implements IList, IEnumerateEach\r\n{\r\n\r\n\tprotected _source:T[];\r\n\r\n\tconstructor(\r\n\t\tsource?:IEnumerableOrArray,\r\n\t\tequalityComparer:EqualityComparison = areEqual)\r\n\t{\r\n\t\tsuper(null, equalityComparer);\r\n\t\tvar _ = this;\r\n\t\tif(Array.isArray(source))\r\n\t\t{\r\n\t\t\t_._source = source.slice();\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t_._source = [];\r\n\t\t\t_._importEntries(source);\r\n\t\t}\r\n\t}\r\n\r\n\tprotected getCount():number\r\n\t{\r\n\t\treturn this._source.length;\r\n\t}\r\n\r\n\tprotected _addInternal(entry:T):boolean\r\n\t{\r\n\t\tthis._source.push(entry);\r\n\t\treturn true;\r\n\t}\r\n\r\n\tprotected _removeInternal(entry:T, max:number = Infinity):number\r\n\t{\r\n\t\treturn remove(\r\n\t\t\tthis._source, entry, max,\r\n\t\t\tthis._equalityComparer);\r\n\t}\r\n\r\n\tprotected _clearInternal():number\r\n\t{\r\n\t\tvar len = this._source.length;\r\n\t\tthis._source.length = 0;\r\n\t\treturn len;\r\n\t}\r\n\r\n\tprotected _importEntries(entries:IEnumerableOrArray):number\r\n\t{\r\n\t\tif(Type.isArrayLike(entries))\r\n\t\t{\r\n\t\t\tvar len = entries.length;\r\n\t\t\tif(!len) return 0;\r\n\t\t\tvar s = this._source;\r\n\r\n\t\t\tvar first = s.length;\r\n\t\t\ts.length += len;\r\n\t\t\tfor(let i = 0; i>(target:TTarget, index?:number):TTarget\r\n\t{\r\n\t\treturn copyTo(this._source, target, 0, index);\r\n\t}\r\n\r\n\tgetEnumerator():IEnumerator\r\n\t{\r\n\t\treturn new ArrayEnumerator(this._source);\r\n\t}\r\n\r\n\tforEach(action:Predicate|Action, useCopy?:boolean):void\r\n\t{\r\n\t\tvar s = this._source;\r\n\t\tforEach(useCopy ? s.slice() : s, action);\r\n\t}\r\n\r\n}\r\n\r\nexport default List;"]} \ No newline at end of file diff --git a/dist/umd.min/System/Collections/Queue.d.ts b/dist/umd.min/System/Collections/Queue.d.ts index e634439d..818016a6 100644 --- a/dist/umd.min/System/Collections/Queue.d.ts +++ b/dist/umd.min/System/Collections/Queue.d.ts @@ -1,15 +1,13 @@ -/// -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Based Upon: http://referencesource.microsoft.com/#System/CompMod/system/collections/generic/queue.cs * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import CollectionBase from "./CollectionBase"; -export default class Queue extends CollectionBase { +import { CollectionBase } from "./CollectionBase"; +import { EqualityComparison, Predicate, Action } from "../FunctionTypes"; +import { IEnumerator } from "./Enumeration/IEnumerator"; +import { IEnumerableOrArray } from "./IEnumerableOrArray"; +export declare class Queue extends CollectionBase { private _array; private _head; private _tail; @@ -33,3 +31,4 @@ export default class Queue extends CollectionBase { trimExcess(threshold?: number): void; getEnumerator(): IEnumerator; } +export default Queue; diff --git a/dist/umd.min/System/Collections/Queue.js b/dist/umd.min/System/Collections/Queue.js index 483d65b6..15dbbaae 100644 --- a/dist/umd.min/System/Collections/Queue.js +++ b/dist/umd.min/System/Collections/Queue.js @@ -3,5 +3,5 @@ * Based Upon: http://referencesource.microsoft.com/#System/CompMod/system/collections/generic/queue.cs * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(e,t){function i(){this.constructor=e}for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../Compare","./Array/Utility","../Types","../Integer","./Enumeration/EnumeratorBase","../Exceptions/NotImplementedException","../Exceptions/InvalidOperationException","../Exceptions/ArgumentOutOfRangeException","./CollectionBase"],e)}(function(e,t){"use strict";function i(e,t){if(0>e)throw new _["default"](t,e,"Must be greater than zero")}function r(e,t){s["default"].assert(e,t),i(e,t)}var a=e("../Compare"),n=e("./Array/Utility"),o=e("../Types"),s=e("../Integer"),u=e("./Enumeration/EnumeratorBase"),c=e("../Exceptions/NotImplementedException"),p=e("../Exceptions/InvalidOperationException"),_=e("../Exceptions/ArgumentOutOfRangeException"),l=e("./CollectionBase"),y=4,f=32,d=100,h=y,v=[],m=function(e){function t(t,i){void 0===i&&(i=a.areEqual),e.call(this,null,i);var s=this;if(s._head=0,s._tail=0,s._size=0,t)if(o["default"].isNumber(t)){var u=t;r(u,"capacity"),s._array=u?n.initialize(u):v}else{var c=t;s._array=n.initialize(o["default"].isArrayLike(c)?c.length:h),s._importEntries(c)}else s._array=v;s._capacity=s._array.length}return __extends(t,e),t.prototype.getCount=function(){return this._size},t.prototype._addInternal=function(e){var t=this,i=t._array,r=t._size,a=t._capacity;if(r==a){var n=a*d;a+y>n&&(n=a+y),t.setCapacity(n),i=t._array,a=t._capacity}var o=t._tail;return i[o]=e,t._tail=(o+1)%a,t._size=r+1,!0},t.prototype._removeInternal=function(e,t){throw new c["default"]("ICollection.remove is not implemented in Queue since it would require destroying the underlying array to remove the item.")},t.prototype._clearInternal=function(){var e=this,t=e._array,i=e._head,r=e._tail,a=e._size;return r>i?n.clear(t,i,r):(n.clear(t,i,t.length-i),n.clear(t,0,r)),e._head=0,e._tail=0,e._size=0,e.trimExcess(),a},t.prototype._onDispose=function(){e.prototype._onDispose.call(this);var t=this;t._array!=v&&(t._array.length=t._capacity=0,t._array=v)},t.prototype.dump=function(e){void 0===e&&(e=1/0);var t=this,i=[];if(isFinite(e)){if(s["default"].assertZeroOrGreater(e),0!==e)for(;e--&&t._size;)i.push(t._dequeueInternal())}else for(;t._size;)i.push(t._dequeueInternal());return t.trimExcess(),t._signalModification(),i},t.prototype.forEach=function(t){e.prototype.forEach.call(this,t,!0)},t.prototype.setCapacity=function(e){r(e,"capacity");var t=this,i=t._array,a=t._capacity;if(e!=a){var o=t._head,s=t._tail,u=t._size;if(i!=v&&e>a&&s>o)return i.length=t._capacity=e,void t._version++;var c=n.initialize(e);u>0&&(s>o?n.copyTo(i,c,o,0,u):(n.copyTo(i,c,o,0,a-o),n.copyTo(i,c,0,a-o,s))),t._array=c,t._capacity=e,t._head=0,t._tail=u==e?0:u,t._signalModification(!0)}},t.prototype.enqueue=function(e){this.add(e)},t.prototype._dequeueInternal=function(e){void 0===e&&(e=!1);var t=this;{if(0!=t._size){var i=t._array,r=t._head,a=t._array[r];return i[r]=null,t._head=(r+1)%t._capacity,t._size--,t._incrementModified(),a}if(e)throw new p["default"]("Cannot dequeue an empty queue.")}},t.prototype.dequeue=function(e){void 0===e&&(e=!1);var t=this;t.assertModifiable();var i=!!t._size,r=this._dequeueInternal(e);return i&&t._sizee)&&t.setCapacity(i)},t.prototype.getEnumerator=function(){var e,t,i=this;return new u["default"](function(){t=i._version,e=0},function(r){return i.assertVersion(t),e==i._size?r.yieldBreak():r.yieldReturn(i._getElement(e++))})},t}(l["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=m}); +var __extends=this&&this.__extends||function(e,t){function i(){this.constructor=e}for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../Compare","./Array/Utility","../Types","../Integer","./Enumeration/EnumeratorBase","../Exceptions/NotImplementedException","../Exceptions/InvalidOperationException","../Exceptions/ArgumentOutOfRangeException","./CollectionBase"],e)}(function(e,t){"use strict";function i(e,t){if(0>e)throw new _.ArgumentOutOfRangeException(t,e,"Must be greater than zero")}function r(e,t){s.Integer.assert(e,t),i(e,t)}var n=e("../Compare"),a=e("./Array/Utility"),o=e("../Types"),s=e("../Integer"),p=e("./Enumeration/EnumeratorBase"),c=e("../Exceptions/NotImplementedException"),u=e("../Exceptions/InvalidOperationException"),_=e("../Exceptions/ArgumentOutOfRangeException"),l=e("./CollectionBase"),y=4,f=32,d=100,h=y,v=[],m=function(e){function t(t,i){void 0===i&&(i=n.areEqual),e.call(this,null,i);var s=this;if(s._head=0,s._tail=0,s._size=0,t)if(o.Type.isNumber(t)){var p=t;r(p,"capacity"),s._array=p?a.initialize(p):v}else{var c=t;s._array=a.initialize(o.Type.isArrayLike(c)?c.length:h),s._importEntries(c)}else s._array=v;s._capacity=s._array.length}return __extends(t,e),t.prototype.getCount=function(){return this._size},t.prototype._addInternal=function(e){var t=this,i=t._array,r=t._size,n=t._capacity;if(r==n){var a=n*d;n+y>a&&(a=n+y),t.setCapacity(a),i=t._array,n=t._capacity}var o=t._tail;return i[o]=e,t._tail=(o+1)%n,t._size=r+1,!0},t.prototype._removeInternal=function(e,t){throw new c.NotImplementedException("ICollection.remove is not implemented in Queue since it would require destroying the underlying array to remove the item.")},t.prototype._clearInternal=function(){var e=this,t=e._array,i=e._head,r=e._tail,n=e._size;return r>i?a.clear(t,i,r):(a.clear(t,i,t.length-i),a.clear(t,0,r)),e._head=0,e._tail=0,e._size=0,e.trimExcess(),n},t.prototype._onDispose=function(){e.prototype._onDispose.call(this);var t=this;t._array!=v&&(t._array.length=t._capacity=0,t._array=v)},t.prototype.dump=function(e){void 0===e&&(e=1/0);var t=this,i=[];if(isFinite(e)){if(s.Integer.assertZeroOrGreater(e),0!==e)for(;e--&&t._size;)i.push(t._dequeueInternal())}else for(;t._size;)i.push(t._dequeueInternal());return t.trimExcess(),t._signalModification(),i},t.prototype.forEach=function(t){e.prototype.forEach.call(this,t,!0)},t.prototype.setCapacity=function(e){r(e,"capacity");var t=this,i=t._array,n=t._capacity;if(e!=n){var o=t._head,s=t._tail,p=t._size;if(i!=v&&e>n&&s>o)return i.length=t._capacity=e,void t._version++;var c=a.initialize(e);p>0&&(s>o?a.copyTo(i,c,o,0,p):(a.copyTo(i,c,o,0,n-o),a.copyTo(i,c,0,n-o,s))),t._array=c,t._capacity=e,t._head=0,t._tail=p==e?0:p,t._signalModification(!0)}},t.prototype.enqueue=function(e){this.add(e)},t.prototype._dequeueInternal=function(e){void 0===e&&(e=!1);var t=this;{if(0!=t._size){var i=t._array,r=t._head,n=t._array[r];return i[r]=null,t._head=(r+1)%t._capacity,t._size--,t._incrementModified(),n}if(e)throw new u.InvalidOperationException("Cannot dequeue an empty queue.")}},t.prototype.dequeue=function(e){void 0===e&&(e=!1);var t=this;t.assertModifiable();var i=!!t._size,r=this._dequeueInternal(e);return i&&t._sizee)&&t.setCapacity(i)},t.prototype.getEnumerator=function(){var e,t,i=this;return new p.EnumeratorBase(function(){t=i._version,e=0},function(r){return i.assertVersion(t),e==i._size?r.yieldBreak():r.yieldReturn(i._getElement(e++))})},t}(l.CollectionBase);t.Queue=m,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=m}); //# sourceMappingURL=Queue.js.map diff --git a/dist/umd.min/System/Collections/Queue.js.map b/dist/umd.min/System/Collections/Queue.js.map index ce8af62a..74096358 100644 --- a/dist/umd.min/System/Collections/Queue.js.map +++ b/dist/umd.min/System/Collections/Queue.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Queue.js","System/Collections/Queue.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","assertZeroOrGreater","value","property","ArgumentOutOfRangeException_1","assertIntegerZeroOrGreater","Integer_1","assert","Compare_1","AU","Types_1","EnumeratorBase_1","NotImplementedException_1","InvalidOperationException_1","CollectionBase_1","MINIMUM_GROW","SHRINK_THRESHOLD","GROW_FACTOR_HALF","DEFAULT_CAPACITY","emptyArray","Queue","_super","source","equalityComparer","areEqual","call","_","_head","_tail","_size","isNumber","capacity","_array","initialize","se","isArrayLike","length","_importEntries","_capacity","getCount","_addInternal","item","array","size","len","newCapacity","setCapacity","tail","_removeInternal","max","_clearInternal","head","clear","trimExcess","_onDispose","dump","Infinity","result","isFinite","push","_dequeueInternal","_signalModification","forEach","action","_version","newArray","copyTo","enqueue","add","throwIfEmpty","removed","_incrementModified","dequeue","assertModifiable","modified","tryDequeue","out","_getElement","index","peek","threshold","Math","floor","isNaN","getEnumerator","version","yielder","assertVersion","yieldBreak","yieldReturn","defineProperty"],"mappings":"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","file":"System/Collections/Queue.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based Upon: http://referencesource.microsoft.com/#System/CompMod/system/collections/generic/queue.cs\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../Compare\", \"./Array/Utility\", \"../Types\", \"../Integer\", \"./Enumeration/EnumeratorBase\", \"../Exceptions/NotImplementedException\", \"../Exceptions/InvalidOperationException\", \"../Exceptions/ArgumentOutOfRangeException\", \"./CollectionBase\"], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var Compare_1 = require(\"../Compare\");\n var AU = require(\"./Array/Utility\");\n var Types_1 = require(\"../Types\");\n var Integer_1 = require(\"../Integer\");\n var EnumeratorBase_1 = require(\"./Enumeration/EnumeratorBase\");\n var NotImplementedException_1 = require(\"../Exceptions/NotImplementedException\");\n var InvalidOperationException_1 = require(\"../Exceptions/InvalidOperationException\");\n var ArgumentOutOfRangeException_1 = require(\"../Exceptions/ArgumentOutOfRangeException\");\n var CollectionBase_1 = require(\"./CollectionBase\");\n var MINIMUM_GROW = 4;\n var SHRINK_THRESHOLD = 32;\n var GROW_FACTOR_HALF = 100;\n var DEFAULT_CAPACITY = MINIMUM_GROW;\n var emptyArray = [];\n var Queue = (function (_super) {\n __extends(Queue, _super);\n function Queue(source, equalityComparer) {\n if (equalityComparer === void 0) { equalityComparer = Compare_1.areEqual; }\n _super.call(this, null, equalityComparer);\n var _ = this;\n _._head = 0;\n _._tail = 0;\n _._size = 0;\n if (!source)\n _._array = emptyArray;\n else {\n if (Types_1.default.isNumber(source)) {\n var capacity = source;\n assertIntegerZeroOrGreater(capacity, \"capacity\");\n _._array = capacity\n ? AU.initialize(capacity)\n : emptyArray;\n }\n else {\n var se = source;\n _._array = AU.initialize(Types_1.default.isArrayLike(se)\n ? se.length\n : DEFAULT_CAPACITY);\n _._importEntries(se);\n }\n }\n _._capacity = _._array.length;\n }\n Queue.prototype.getCount = function () {\n return this._size;\n };\n Queue.prototype._addInternal = function (item) {\n var _ = this, array = _._array, size = _._size, len = _._capacity;\n if (size == len) {\n var newCapacity = len * GROW_FACTOR_HALF;\n if (newCapacity < len + MINIMUM_GROW)\n newCapacity = len + MINIMUM_GROW;\n _.setCapacity(newCapacity);\n array = _._array;\n len = _._capacity;\n }\n var tail = _._tail;\n array[tail] = item;\n _._tail = (tail + 1) % len;\n _._size = size + 1;\n return true;\n };\n Queue.prototype._removeInternal = function (item, max) {\n throw new NotImplementedException_1.default(\"ICollection\\.remove is not implemented in Queue\\\" +\n \" since it would require destroying the underlying array to remove the item.\");\n };\n Queue.prototype._clearInternal = function () {\n var _ = this, array = _._array, head = _._head, tail = _._tail, size = _._size;\n if (head < tail)\n AU.clear(array, head, tail);\n else {\n AU.clear(array, head, array.length - head);\n AU.clear(array, 0, tail);\n }\n _._head = 0;\n _._tail = 0;\n _._size = 0;\n _.trimExcess();\n return size;\n };\n Queue.prototype._onDispose = function () {\n _super.prototype._onDispose.call(this);\n var _ = this;\n if (_._array != emptyArray) {\n _._array.length = _._capacity = 0;\n _._array = emptyArray;\n }\n };\n Queue.prototype.dump = function (max) {\n if (max === void 0) { max = Infinity; }\n var _ = this, result = [];\n if (isFinite(max)) {\n Integer_1.default.assertZeroOrGreater(max);\n if (max !== 0) {\n while (max-- && _._size) {\n result.push(_._dequeueInternal());\n }\n }\n }\n else {\n while (_._size) {\n result.push(_._dequeueInternal());\n }\n }\n _.trimExcess();\n _._signalModification();\n return result;\n };\n Queue.prototype.forEach = function (action) {\n _super.prototype.forEach.call(this, action, true);\n };\n Queue.prototype.setCapacity = function (capacity) {\n assertIntegerZeroOrGreater(capacity, \"capacity\");\n var _ = this, array = _._array, len = _._capacity;\n if (capacity == len)\n return;\n var head = _._head, tail = _._tail, size = _._size;\n if (array != emptyArray && capacity > len && head < tail) {\n array.length = _._capacity = capacity;\n _._version++;\n return;\n }\n var newArray = AU.initialize(capacity);\n if (size > 0) {\n if (head < tail) {\n AU.copyTo(array, newArray, head, 0, size);\n }\n else {\n AU.copyTo(array, newArray, head, 0, len - head);\n AU.copyTo(array, newArray, 0, len - head, tail);\n }\n }\n _._array = newArray;\n _._capacity = capacity;\n _._head = 0;\n _._tail = (size == capacity) ? 0 : size;\n _._signalModification(true);\n };\n Queue.prototype.enqueue = function (item) {\n this.add(item);\n };\n Queue.prototype._dequeueInternal = function (throwIfEmpty) {\n if (throwIfEmpty === void 0) { throwIfEmpty = false; }\n var _ = this;\n if (_._size == 0) {\n if (throwIfEmpty)\n throw new InvalidOperationException_1.default(\"Cannot dequeue an empty queue.\");\n return void 0;\n }\n var array = _._array, head = _._head;\n var removed = _._array[head];\n array[head] = null;\n _._head = (head + 1) % _._capacity;\n _._size--;\n _._incrementModified();\n return removed;\n };\n Queue.prototype.dequeue = function (throwIfEmpty) {\n if (throwIfEmpty === void 0) { throwIfEmpty = false; }\n var _ = this;\n _.assertModifiable();\n var modified = !!_._size;\n var v = this._dequeueInternal(throwIfEmpty);\n if (modified && _._size < _._capacity / 2)\n _.trimExcess(SHRINK_THRESHOLD);\n _._signalModification();\n return v;\n };\n Queue.prototype.tryDequeue = function (out) {\n if (!this._size)\n return false;\n var d = this.dequeue();\n if (out)\n out(d);\n return true;\n };\n Queue.prototype._getElement = function (index) {\n assertIntegerZeroOrGreater(index, \"index\");\n var _ = this;\n return _._array[(_._head + index) % _._capacity];\n };\n Queue.prototype.peek = function () {\n if (this._size == 0)\n throw new InvalidOperationException_1.default(\"Cannot call peek on an empty queue.\");\n return this._array[this._head];\n };\n Queue.prototype.trimExcess = function (threshold) {\n var _ = this;\n var size = _._size;\n if (size < Math.floor(_._capacity * 0.9) && (isNaN(threshold) || threshold < size))\n _.setCapacity(size);\n };\n Queue.prototype.getEnumerator = function () {\n var _ = this;\n var index;\n var version;\n return new EnumeratorBase_1.default(function () {\n version = _._version;\n index = 0;\n }, function (yielder) {\n _.assertVersion(version);\n if (index == _._size)\n return yielder.yieldBreak();\n return yielder.yieldReturn(_._getElement(index++));\n });\n };\n return Queue;\n }(CollectionBase_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Queue;\n function assertZeroOrGreater(value, property) {\n if (value < 0)\n throw new ArgumentOutOfRangeException_1.default(property, value, \"Must be greater than zero\");\n }\n function assertIntegerZeroOrGreater(value, property) {\n Integer_1.default.assert(value, property);\n assertZeroOrGreater(value, property);\n }\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based Upon: http://referencesource.microsoft.com/#System/CompMod/system/collections/generic/queue.cs\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport {areEqual} from \"../Compare\";\r\nimport * as AU from \"./Array/Utility\";\r\nimport Type from \"../Types\";\r\nimport Integer from \"../Integer\";\r\nimport EnumeratorBase from \"./Enumeration/EnumeratorBase\";\r\nimport NotImplementedException from \"../Exceptions/NotImplementedException\";\r\nimport InvalidOperationException from \"../Exceptions/InvalidOperationException\";\r\nimport ArgumentOutOfRangeException from \"../Exceptions/ArgumentOutOfRangeException\";\r\nimport CollectionBase from \"./CollectionBase\";\r\n\r\nconst MINIMUM_GROW:number = 4;\r\nconst SHRINK_THRESHOLD:number = 32; // Unused?\r\n// var GROW_FACTOR: number = 200; // double each time\r\nconst GROW_FACTOR_HALF:number = 100;\r\nconst DEFAULT_CAPACITY:number = MINIMUM_GROW;\r\nvar emptyArray:any[] = [];\r\n\r\nexport default\r\nclass Queue\r\nextends CollectionBase\r\n{\r\n\r\n\tprivate _array:T[];\r\n\tprivate _head:number; // First valid element in the queue\r\n\tprivate _tail:number; // Last valid element in the queue\r\n\tprivate _size:number; // Number of elements.\r\n\tprivate _capacity:number; // Maps to _array.length;\r\n\r\n\tconstructor(\r\n\t\tsource?:IEnumerableOrArray | number,\r\n\t\tequalityComparer:EqualityComparison = areEqual)\r\n\t{\r\n\t\tsuper(null,equalityComparer);\r\n\t\tvar _ = this;\r\n\t\t_._head = 0;\r\n\t\t_._tail = 0;\r\n\t\t_._size = 0;\r\n\r\n\t\tif(!source)\r\n\t\t\t_._array = emptyArray;\r\n\t\telse\r\n\t\t{\r\n\t\t\tif(Type.isNumber(source))\r\n\t\t\t{\r\n\t\t\t\tvar capacity = source;\r\n\t\t\t\tassertIntegerZeroOrGreater(capacity, \"capacity\");\r\n\r\n\t\t\t\t_._array = capacity\r\n\t\t\t\t\t? AU.initialize(capacity)\r\n\t\t\t\t\t: emptyArray;\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tvar se = > source;\r\n\t\t\t\t_._array = AU.initialize(\r\n\t\t\t\t\tType.isArrayLike(se)\r\n\t\t\t\t\t\t? se.length\r\n\t\t\t\t\t\t: DEFAULT_CAPACITY\r\n\t\t\t\t);\r\n\r\n\t\t\t\t_._importEntries(se);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t_._capacity = _._array.length;\r\n\t}\r\n\r\n\tprotected getCount():number\r\n\t{\r\n\t\treturn this._size;\r\n\t}\r\n\r\n\tprotected _addInternal(item:T):boolean\r\n\t{\r\n\t\tvar _ = this, array = _._array, size = _._size, len = _._capacity;\r\n\t\tif(size==len)\r\n\t\t{\r\n\t\t\tvar newCapacity = len*GROW_FACTOR_HALF;\r\n\t\t\tif(newCapacity.remove is not implemented in Queue\\\" +\r\n\t\t\t\" since it would require destroying the underlying array to remove the item.\"\r\n\t\t);\r\n\t}\r\n\r\n\tprotected _clearInternal():number\r\n\t{\r\n\t\tvar _ = this, array = _._array, head = _._head, tail = _._tail, size = _._size;\r\n\t\tif(head | Action):void\r\n\t{\r\n\t\tsuper.forEach(action,true);\r\n\t}\r\n\r\n\tsetCapacity(capacity:number):void\r\n\t{\r\n\r\n\t\tassertIntegerZeroOrGreater(capacity, \"capacity\");\r\n\r\n\t\tvar _ = this, array = _._array, len = _._capacity;\r\n\r\n\t\tif(capacity==len)\r\n\t\t\treturn;\r\n\r\n\t\tvar head = _._head, tail = _._tail, size = _._size;\r\n\r\n\t\t// Special case where we can simply extend the length of the array. (JavaScript only)\r\n\t\tif(array!=emptyArray && capacity>len && head(capacity);\r\n\t\tif(size>0)\r\n\t\t{\r\n\t\t\tif(headvoid):boolean\r\n\t{\r\n\t\tif(!this._size) return false;\r\n\t\tvar d = this.dequeue();\r\n\t\tif(out) out(d);\r\n\t\treturn true;\r\n\t}\r\n\r\n\tprivate _getElement(index:number):T\r\n\t{\r\n\t\tassertIntegerZeroOrGreater(index, \"index\");\r\n\r\n\t\tvar _ = this;\r\n\t\treturn _._array[(_._head + index)%_._capacity];\r\n\t}\r\n\r\n\tpeek():T\r\n\t{\r\n\t\tif(this._size==0)\r\n\t\t\tthrow new InvalidOperationException(\"Cannot call peek on an empty queue.\");\r\n\r\n\t\treturn this._array[this._head];\r\n\t}\r\n\r\n\ttrimExcess(threshold?:number):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar size = _._size;\r\n\t\tif(size\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar index:number;\r\n\t\tvar version:number;\r\n\t\treturn new EnumeratorBase(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tversion = _._version;\r\n\t\t\t\tindex = 0;\r\n\t\t\t},\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\t\t\t\t_.assertVersion(version);\r\n\r\n\t\t\t\tif(index==_._size)\r\n\t\t\t\t\treturn yielder.yieldBreak();\r\n\r\n\t\t\t\treturn yielder.yieldReturn(_._getElement(index++));\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n}\r\n\r\nfunction assertZeroOrGreater(value:number, property:string):void\r\n{\r\n\tif(value<0)\r\n\t\tthrow new ArgumentOutOfRangeException(property, value, \"Must be greater than zero\");\r\n\r\n}\r\n\r\nfunction assertIntegerZeroOrGreater(value:number, property:string):void\r\n{\r\n\tInteger.assert(value, property);\r\n\tassertZeroOrGreater(value, property);\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Queue.js","System/Collections/Queue.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","assertZeroOrGreater","value","property","ArgumentOutOfRangeException_1","ArgumentOutOfRangeException","assertIntegerZeroOrGreater","Integer_1","Integer","assert","Compare_1","AU","Types_1","EnumeratorBase_1","NotImplementedException_1","InvalidOperationException_1","CollectionBase_1","MINIMUM_GROW","SHRINK_THRESHOLD","GROW_FACTOR_HALF","DEFAULT_CAPACITY","emptyArray","Queue","_super","source","equalityComparer","areEqual","call","_","_head","_tail","_size","Type","isNumber","capacity","_array","initialize","se","isArrayLike","length","_importEntries","_capacity","getCount","_addInternal","item","array","size","len","newCapacity","setCapacity","tail","_removeInternal","max","NotImplementedException","_clearInternal","head","clear","trimExcess","_onDispose","dump","Infinity","result","isFinite","push","_dequeueInternal","_signalModification","forEach","action","_version","newArray","copyTo","enqueue","add","throwIfEmpty","removed","_incrementModified","InvalidOperationException","dequeue","assertModifiable","modified","tryDequeue","out","_getElement","index","peek","threshold","Math","floor","isNaN","getEnumerator","version","EnumeratorBase","yielder","assertVersion","yieldBreak","yieldReturn","CollectionBase","defineProperty"],"mappings":"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","file":"System/Collections/Queue.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based Upon: http://referencesource.microsoft.com/#System/CompMod/system/collections/generic/queue.cs\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../Compare\", \"./Array/Utility\", \"../Types\", \"../Integer\", \"./Enumeration/EnumeratorBase\", \"../Exceptions/NotImplementedException\", \"../Exceptions/InvalidOperationException\", \"../Exceptions/ArgumentOutOfRangeException\", \"./CollectionBase\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var Compare_1 = require(\"../Compare\");\n var AU = require(\"./Array/Utility\");\n var Types_1 = require(\"../Types\");\n var Integer_1 = require(\"../Integer\");\n var EnumeratorBase_1 = require(\"./Enumeration/EnumeratorBase\");\n var NotImplementedException_1 = require(\"../Exceptions/NotImplementedException\");\n var InvalidOperationException_1 = require(\"../Exceptions/InvalidOperationException\");\n var ArgumentOutOfRangeException_1 = require(\"../Exceptions/ArgumentOutOfRangeException\");\n var CollectionBase_1 = require(\"./CollectionBase\");\n var MINIMUM_GROW = 4;\n var SHRINK_THRESHOLD = 32;\n var GROW_FACTOR_HALF = 100;\n var DEFAULT_CAPACITY = MINIMUM_GROW;\n var emptyArray = [];\n var Queue = (function (_super) {\n __extends(Queue, _super);\n function Queue(source, equalityComparer) {\n if (equalityComparer === void 0) { equalityComparer = Compare_1.areEqual; }\n _super.call(this, null, equalityComparer);\n var _ = this;\n _._head = 0;\n _._tail = 0;\n _._size = 0;\n if (!source)\n _._array = emptyArray;\n else {\n if (Types_1.Type.isNumber(source)) {\n var capacity = source;\n assertIntegerZeroOrGreater(capacity, \"capacity\");\n _._array = capacity\n ? AU.initialize(capacity)\n : emptyArray;\n }\n else {\n var se = source;\n _._array = AU.initialize(Types_1.Type.isArrayLike(se)\n ? se.length\n : DEFAULT_CAPACITY);\n _._importEntries(se);\n }\n }\n _._capacity = _._array.length;\n }\n Queue.prototype.getCount = function () {\n return this._size;\n };\n Queue.prototype._addInternal = function (item) {\n var _ = this, array = _._array, size = _._size, len = _._capacity;\n if (size == len) {\n var newCapacity = len * GROW_FACTOR_HALF;\n if (newCapacity < len + MINIMUM_GROW)\n newCapacity = len + MINIMUM_GROW;\n _.setCapacity(newCapacity);\n array = _._array;\n len = _._capacity;\n }\n var tail = _._tail;\n array[tail] = item;\n _._tail = (tail + 1) % len;\n _._size = size + 1;\n return true;\n };\n Queue.prototype._removeInternal = function (item, max) {\n throw new NotImplementedException_1.NotImplementedException(\"ICollection\\.remove is not implemented in Queue\\\" +\n \" since it would require destroying the underlying array to remove the item.\");\n };\n Queue.prototype._clearInternal = function () {\n var _ = this, array = _._array, head = _._head, tail = _._tail, size = _._size;\n if (head < tail)\n AU.clear(array, head, tail);\n else {\n AU.clear(array, head, array.length - head);\n AU.clear(array, 0, tail);\n }\n _._head = 0;\n _._tail = 0;\n _._size = 0;\n _.trimExcess();\n return size;\n };\n Queue.prototype._onDispose = function () {\n _super.prototype._onDispose.call(this);\n var _ = this;\n if (_._array != emptyArray) {\n _._array.length = _._capacity = 0;\n _._array = emptyArray;\n }\n };\n Queue.prototype.dump = function (max) {\n if (max === void 0) { max = Infinity; }\n var _ = this, result = [];\n if (isFinite(max)) {\n Integer_1.Integer.assertZeroOrGreater(max);\n if (max !== 0) {\n while (max-- && _._size) {\n result.push(_._dequeueInternal());\n }\n }\n }\n else {\n while (_._size) {\n result.push(_._dequeueInternal());\n }\n }\n _.trimExcess();\n _._signalModification();\n return result;\n };\n Queue.prototype.forEach = function (action) {\n _super.prototype.forEach.call(this, action, true);\n };\n Queue.prototype.setCapacity = function (capacity) {\n assertIntegerZeroOrGreater(capacity, \"capacity\");\n var _ = this, array = _._array, len = _._capacity;\n if (capacity == len)\n return;\n var head = _._head, tail = _._tail, size = _._size;\n if (array != emptyArray && capacity > len && head < tail) {\n array.length = _._capacity = capacity;\n _._version++;\n return;\n }\n var newArray = AU.initialize(capacity);\n if (size > 0) {\n if (head < tail) {\n AU.copyTo(array, newArray, head, 0, size);\n }\n else {\n AU.copyTo(array, newArray, head, 0, len - head);\n AU.copyTo(array, newArray, 0, len - head, tail);\n }\n }\n _._array = newArray;\n _._capacity = capacity;\n _._head = 0;\n _._tail = (size == capacity) ? 0 : size;\n _._signalModification(true);\n };\n Queue.prototype.enqueue = function (item) {\n this.add(item);\n };\n Queue.prototype._dequeueInternal = function (throwIfEmpty) {\n if (throwIfEmpty === void 0) { throwIfEmpty = false; }\n var _ = this;\n if (_._size == 0) {\n if (throwIfEmpty)\n throw new InvalidOperationException_1.InvalidOperationException(\"Cannot dequeue an empty queue.\");\n return void 0;\n }\n var array = _._array, head = _._head;\n var removed = _._array[head];\n array[head] = null;\n _._head = (head + 1) % _._capacity;\n _._size--;\n _._incrementModified();\n return removed;\n };\n Queue.prototype.dequeue = function (throwIfEmpty) {\n if (throwIfEmpty === void 0) { throwIfEmpty = false; }\n var _ = this;\n _.assertModifiable();\n var modified = !!_._size;\n var v = this._dequeueInternal(throwIfEmpty);\n if (modified && _._size < _._capacity / 2)\n _.trimExcess(SHRINK_THRESHOLD);\n _._signalModification();\n return v;\n };\n Queue.prototype.tryDequeue = function (out) {\n if (!this._size)\n return false;\n var d = this.dequeue();\n if (out)\n out(d);\n return true;\n };\n Queue.prototype._getElement = function (index) {\n assertIntegerZeroOrGreater(index, \"index\");\n var _ = this;\n return _._array[(_._head + index) % _._capacity];\n };\n Queue.prototype.peek = function () {\n if (this._size == 0)\n throw new InvalidOperationException_1.InvalidOperationException(\"Cannot call peek on an empty queue.\");\n return this._array[this._head];\n };\n Queue.prototype.trimExcess = function (threshold) {\n var _ = this;\n var size = _._size;\n if (size < Math.floor(_._capacity * 0.9) && (isNaN(threshold) || threshold < size))\n _.setCapacity(size);\n };\n Queue.prototype.getEnumerator = function () {\n var _ = this;\n var index;\n var version;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n version = _._version;\n index = 0;\n }, function (yielder) {\n _.assertVersion(version);\n if (index == _._size)\n return yielder.yieldBreak();\n return yielder.yieldReturn(_._getElement(index++));\n });\n };\n return Queue;\n }(CollectionBase_1.CollectionBase));\n exports.Queue = Queue;\n function assertZeroOrGreater(value, property) {\n if (value < 0)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(property, value, \"Must be greater than zero\");\n }\n function assertIntegerZeroOrGreater(value, property) {\n Integer_1.Integer.assert(value, property);\n assertZeroOrGreater(value, property);\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Queue;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based Upon: http://referencesource.microsoft.com/#System/CompMod/system/collections/generic/queue.cs\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {areEqual} from \"../Compare\";\r\nimport * as AU from \"./Array/Utility\";\r\nimport {Type} from \"../Types\";\r\nimport {Integer} from \"../Integer\";\r\nimport {EnumeratorBase} from \"./Enumeration/EnumeratorBase\";\r\nimport {NotImplementedException} from \"../Exceptions/NotImplementedException\";\r\nimport {InvalidOperationException} from \"../Exceptions/InvalidOperationException\";\r\nimport {ArgumentOutOfRangeException} from \"../Exceptions/ArgumentOutOfRangeException\";\r\nimport {CollectionBase} from \"./CollectionBase\";\r\nimport {EqualityComparison, Predicate, Action} from \"../FunctionTypes\";\r\nimport {IEnumerator} from \"./Enumeration/IEnumerator\";\r\nimport {IEnumerableOrArray} from \"./IEnumerableOrArray\";\r\n\r\nconst MINIMUM_GROW:number = 4;\r\nconst SHRINK_THRESHOLD:number = 32; // Unused?\r\n// var GROW_FACTOR: number = 200; // double each time\r\nconst GROW_FACTOR_HALF:number = 100;\r\nconst DEFAULT_CAPACITY:number = MINIMUM_GROW;\r\nvar emptyArray:any[] = [];\r\n\r\nexport class Queue\r\nextends CollectionBase\r\n{\r\n\r\n\tprivate _array:T[];\r\n\tprivate _head:number; // First valid element in the queue\r\n\tprivate _tail:number; // Last valid element in the queue\r\n\tprivate _size:number; // Number of elements.\r\n\tprivate _capacity:number; // Maps to _array.length;\r\n\r\n\tconstructor(\r\n\t\tsource?:IEnumerableOrArray | number,\r\n\t\tequalityComparer:EqualityComparison = areEqual)\r\n\t{\r\n\t\tsuper(null, equalityComparer);\r\n\t\tvar _ = this;\r\n\t\t_._head = 0;\r\n\t\t_._tail = 0;\r\n\t\t_._size = 0;\r\n\r\n\t\tif(!source)\r\n\t\t\t_._array = emptyArray;\r\n\t\telse\r\n\t\t{\r\n\t\t\tif(Type.isNumber(source))\r\n\t\t\t{\r\n\t\t\t\tvar capacity = source;\r\n\t\t\t\tassertIntegerZeroOrGreater(capacity, \"capacity\");\r\n\r\n\t\t\t\t_._array = capacity\r\n\t\t\t\t\t? AU.initialize(capacity)\r\n\t\t\t\t\t: emptyArray;\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tvar se = > source;\r\n\t\t\t\t_._array = AU.initialize(\r\n\t\t\t\t\tType.isArrayLike(se)\r\n\t\t\t\t\t\t? se.length\r\n\t\t\t\t\t\t: DEFAULT_CAPACITY\r\n\t\t\t\t);\r\n\r\n\t\t\t\t_._importEntries(se);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t_._capacity = _._array.length;\r\n\t}\r\n\r\n\tprotected getCount():number\r\n\t{\r\n\t\treturn this._size;\r\n\t}\r\n\r\n\tprotected _addInternal(item:T):boolean\r\n\t{\r\n\t\tvar _ = this, array = _._array, size = _._size, len = _._capacity;\r\n\t\tif(size==len)\r\n\t\t{\r\n\t\t\tvar newCapacity = len*GROW_FACTOR_HALF;\r\n\t\t\tif(newCapacity.remove is not implemented in Queue\\\" +\r\n\t\t\t\" since it would require destroying the underlying array to remove the item.\"\r\n\t\t);\r\n\t}\r\n\r\n\tprotected _clearInternal():number\r\n\t{\r\n\t\tvar _ = this, array = _._array, head = _._head, tail = _._tail, size = _._size;\r\n\t\tif(head | Action):void\r\n\t{\r\n\t\tsuper.forEach(action, true);\r\n\t}\r\n\r\n\tsetCapacity(capacity:number):void\r\n\t{\r\n\r\n\t\tassertIntegerZeroOrGreater(capacity, \"capacity\");\r\n\r\n\t\tvar _ = this, array = _._array, len = _._capacity;\r\n\r\n\t\tif(capacity==len)\r\n\t\t\treturn;\r\n\r\n\t\tvar head = _._head, tail = _._tail, size = _._size;\r\n\r\n\t\t// Special case where we can simply extend the length of the array. (JavaScript only)\r\n\t\tif(array!=emptyArray && capacity>len && head(capacity);\r\n\t\tif(size>0)\r\n\t\t{\r\n\t\t\tif(headvoid):boolean\r\n\t{\r\n\t\tif(!this._size) return false;\r\n\t\tvar d = this.dequeue();\r\n\t\tif(out) out(d);\r\n\t\treturn true;\r\n\t}\r\n\r\n\tprivate _getElement(index:number):T\r\n\t{\r\n\t\tassertIntegerZeroOrGreater(index, \"index\");\r\n\r\n\t\tvar _ = this;\r\n\t\treturn _._array[(_._head + index)%_._capacity];\r\n\t}\r\n\r\n\tpeek():T\r\n\t{\r\n\t\tif(this._size==0)\r\n\t\t\tthrow new InvalidOperationException(\"Cannot call peek on an empty queue.\");\r\n\r\n\t\treturn this._array[this._head];\r\n\t}\r\n\r\n\ttrimExcess(threshold?:number):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar size = _._size;\r\n\t\tif(size\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar index:number;\r\n\t\tvar version:number;\r\n\t\treturn new EnumeratorBase(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tversion = _._version;\r\n\t\t\t\tindex = 0;\r\n\t\t\t},\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\t\t\t\t_.assertVersion(version);\r\n\r\n\t\t\t\tif(index==_._size)\r\n\t\t\t\t\treturn yielder.yieldBreak();\r\n\r\n\t\t\t\treturn yielder.yieldReturn(_._getElement(index++));\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n}\r\n\r\nfunction assertZeroOrGreater(value:number, property:string):void\r\n{\r\n\tif(value<0)\r\n\t\tthrow new ArgumentOutOfRangeException(property, value, \"Must be greater than zero\");\r\n\r\n}\r\n\r\nfunction assertIntegerZeroOrGreater(value:number, property:string):void\r\n{\r\n\tInteger.assert(value, property);\r\n\tassertZeroOrGreater(value, property);\r\n}\r\n\r\nexport default Queue;\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Collections/ReadOnlyCollectionBase.d.ts b/dist/umd.min/System/Collections/ReadOnlyCollectionBase.d.ts index 5633231c..2553028b 100644 --- a/dist/umd.min/System/Collections/ReadOnlyCollectionBase.d.ts +++ b/dist/umd.min/System/Collections/ReadOnlyCollectionBase.d.ts @@ -1,11 +1,10 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import CollectionBase from "./CollectionBase"; -declare abstract class ReadOnlyCollectionBase extends CollectionBase { +import { CollectionBase } from "./CollectionBase"; +import { IEnumerator } from "./Enumeration/IEnumerator"; +export declare abstract class ReadOnlyCollectionBase extends CollectionBase { protected _getCount: () => number; protected getCount(): number; protected getIsReadOnly(): boolean; diff --git a/dist/umd.min/System/Collections/ReadOnlyCollectionBase.js b/dist/umd.min/System/Collections/ReadOnlyCollectionBase.js index 7e9d5abb..1e87f8ad 100644 --- a/dist/umd.min/System/Collections/ReadOnlyCollectionBase.js +++ b/dist/umd.min/System/Collections/ReadOnlyCollectionBase.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(t,e){function o(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)};!function(t){if("object"==typeof module&&"object"==typeof module.exports){var e=t(require,exports);void 0!==e&&(module.exports=e)}else"function"==typeof define&&define.amd&&define(["require","exports","./CollectionBase"],t)}(function(t,e){"use strict";var o=t("./CollectionBase"),n=function(t){function e(){t.apply(this,arguments)}return __extends(e,t),e.prototype.getCount=function(){return this._getCount()},e.prototype.getIsReadOnly=function(){return!0},e.prototype._addInternal=function(t){return!1},e.prototype._removeInternal=function(t,e){return 0},e.prototype._clearInternal=function(){return 0},e.prototype.getEnumerator=function(){return this._getEnumerator()},e}(o["default"]);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=n}); +var __extends=this&&this.__extends||function(e,t){function o(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","./CollectionBase"],e)}(function(e,t){"use strict";var o=e("./CollectionBase"),n=function(e){function t(){e.apply(this,arguments)}return __extends(t,e),t.prototype.getCount=function(){return this._getCount()},t.prototype.getIsReadOnly=function(){return!0},t.prototype._addInternal=function(e){return!1},t.prototype._removeInternal=function(e,t){return 0},t.prototype._clearInternal=function(){return 0},t.prototype.getEnumerator=function(){return this._getEnumerator()},t}(o.CollectionBase);t.ReadOnlyCollectionBase=n,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=n}); //# sourceMappingURL=ReadOnlyCollectionBase.js.map diff --git a/dist/umd.min/System/Collections/ReadOnlyCollectionBase.js.map b/dist/umd.min/System/Collections/ReadOnlyCollectionBase.js.map index b312e6c5..d69538d4 100644 --- a/dist/umd.min/System/Collections/ReadOnlyCollectionBase.js.map +++ b/dist/umd.min/System/Collections/ReadOnlyCollectionBase.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/ReadOnlyCollectionBase.js","System/Collections/ReadOnlyCollectionBase.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","CollectionBase_1","ReadOnlyCollectionBase","_super","apply","arguments","getCount","_getCount","getIsReadOnly","_addInternal","entry","_removeInternal","max","_clearInternal","getEnumerator","_getEnumerator","defineProperty","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,oBAAqBN,IAExD,SAAUI,EAASF,GAClB,YCTJ,IAAAM,GAAAJ,EAA2B,oBAE3BK,EAAA,SAAAC,GAAA,QAAAD,KACQC,EAAAC,MAAArB,KAAAsB,WAkCR,MAlCQvB,WAAAoB,EAAAC,GAIGD,EAAAZ,UAAAgB,SAAV,WAEC,MAAOvB,MAAKwB,aAGHL,EAAAZ,UAAAkB,cAAV,WAEC,OAAO,GAGEN,EAAAZ,UAAAmB,aAAV,SAAuBC,GAEtB,OAAO,GAGER,EAAAZ,UAAAqB,gBAAV,SAA0BD,EAASE,GAElC,MAAO,IAGEV,EAAAZ,UAAAuB,eAAV,WAEC,MAAO,IAIRX,EAAAZ,UAAAwB,cAAA,WACC,MAAO/B,MAAKgC,kBAGdb,GAlCQD,EAAAA,WAoCRV,QAAAyB,eAAArB,EAAA,cAAAsB,OAAA,IDFItB,EAAAA,WCEWO","file":"System/Collections/ReadOnlyCollectionBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"./CollectionBase\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var CollectionBase_1 = require(\"./CollectionBase\");\n var ReadOnlyCollectionBase = (function (_super) {\n __extends(ReadOnlyCollectionBase, _super);\n function ReadOnlyCollectionBase() {\n _super.apply(this, arguments);\n }\n ReadOnlyCollectionBase.prototype.getCount = function () {\n return this._getCount();\n };\n ReadOnlyCollectionBase.prototype.getIsReadOnly = function () {\n return true;\n };\n ReadOnlyCollectionBase.prototype._addInternal = function (entry) {\n return false;\n };\n ReadOnlyCollectionBase.prototype._removeInternal = function (entry, max) {\n return 0;\n };\n ReadOnlyCollectionBase.prototype._clearInternal = function () {\n return 0;\n };\n ReadOnlyCollectionBase.prototype.getEnumerator = function () {\n return this._getEnumerator();\n };\n return ReadOnlyCollectionBase;\n }(CollectionBase_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ReadOnlyCollectionBase;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n\r\nimport CollectionBase from \"./CollectionBase\";\r\n\r\nabstract class ReadOnlyCollectionBase\r\nextends CollectionBase\r\n{\r\n\r\n\tprotected _getCount:()=>number;\r\n\tprotected getCount():number\r\n\t{\r\n\t\treturn this._getCount();\r\n\t}\r\n\r\n\tprotected getIsReadOnly():boolean\r\n\t{\r\n\t\treturn true;\r\n\t}\r\n\r\n\tprotected _addInternal(entry:T):boolean\r\n\t{\r\n\t\treturn false;\r\n\t}\r\n\r\n\tprotected _removeInternal(entry:T, max?:number):number\r\n\t{\r\n\t\treturn 0;\r\n\t}\r\n\r\n\tprotected _clearInternal():number\r\n\t{\r\n\t\treturn 0;\r\n\t}\r\n\r\n\tprotected _getEnumerator:()=>IEnumerator;\r\n\tgetEnumerator():IEnumerator {\r\n\t\treturn this._getEnumerator();\r\n\t}\r\n\r\n}\r\n\r\nexport default ReadOnlyCollectionBase;"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/ReadOnlyCollectionBase.js","System/Collections/ReadOnlyCollectionBase.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","CollectionBase_1","ReadOnlyCollectionBase","_super","apply","arguments","getCount","_getCount","getIsReadOnly","_addInternal","entry","_removeInternal","max","_clearInternal","getEnumerator","_getEnumerator","CollectionBase","defineProperty","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,oBAAqBN,IAExD,SAAUI,EAASF,GAClB,YCZJ,IAAAM,GAAAJ,EAA6B,oBAG7BK,EAAA,SAAAC,GAAA,QAAAD,KACQC,EAAAC,MAAArB,KAAAsB,WAqCR,MArCQvB,WAAAoB,EAAAC,GAKGD,EAAAZ,UAAAgB,SAAV,WAEC,MAAOvB,MAAKwB,aAGHL,EAAAZ,UAAAkB,cAAV,WAEC,OAAO,GAGEN,EAAAZ,UAAAmB,aAAV,SAAuBC,GAEtB,OAAO,GAGER,EAAAZ,UAAAqB,gBAAV,SAA0BD,EAASE,GAElC,MAAO,IAGEV,EAAAZ,UAAAuB,eAAV,WAEC,MAAO,IAKRX,EAAAZ,UAAAwB,cAAA,WAEC,MAAO/B,MAAKgC,kBAGdb,GArCQD,EAAAe,eADcrB,GAAAO,uBAAsBA,EAwC5CX,OAAA0B,eAAAtB,EAAA,cAAAuB,OAAA,IDFIvB,EAAAA,WCEWO","file":"System/Collections/ReadOnlyCollectionBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"./CollectionBase\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var CollectionBase_1 = require(\"./CollectionBase\");\n var ReadOnlyCollectionBase = (function (_super) {\n __extends(ReadOnlyCollectionBase, _super);\n function ReadOnlyCollectionBase() {\n _super.apply(this, arguments);\n }\n ReadOnlyCollectionBase.prototype.getCount = function () {\n return this._getCount();\n };\n ReadOnlyCollectionBase.prototype.getIsReadOnly = function () {\n return true;\n };\n ReadOnlyCollectionBase.prototype._addInternal = function (entry) {\n return false;\n };\n ReadOnlyCollectionBase.prototype._removeInternal = function (entry, max) {\n return 0;\n };\n ReadOnlyCollectionBase.prototype._clearInternal = function () {\n return 0;\n };\n ReadOnlyCollectionBase.prototype.getEnumerator = function () {\n return this._getEnumerator();\n };\n return ReadOnlyCollectionBase;\n }(CollectionBase_1.CollectionBase));\n exports.ReadOnlyCollectionBase = ReadOnlyCollectionBase;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ReadOnlyCollectionBase;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {CollectionBase} from \"./CollectionBase\";\r\nimport {IEnumerator} from \"./Enumeration/IEnumerator\";\r\n\r\nexport abstract class ReadOnlyCollectionBase\r\nextends CollectionBase\r\n{\r\n\r\n\tprotected _getCount:()=>number;\r\n\r\n\tprotected getCount():number\r\n\t{\r\n\t\treturn this._getCount();\r\n\t}\r\n\r\n\tprotected getIsReadOnly():boolean\r\n\t{\r\n\t\treturn true;\r\n\t}\r\n\r\n\tprotected _addInternal(entry:T):boolean\r\n\t{\r\n\t\treturn false;\r\n\t}\r\n\r\n\tprotected _removeInternal(entry:T, max?:number):number\r\n\t{\r\n\t\treturn 0;\r\n\t}\r\n\r\n\tprotected _clearInternal():number\r\n\t{\r\n\t\treturn 0;\r\n\t}\r\n\r\n\tprotected _getEnumerator:()=>IEnumerator;\r\n\r\n\tgetEnumerator():IEnumerator\r\n\t{\r\n\t\treturn this._getEnumerator();\r\n\t}\r\n\r\n}\r\n\r\nexport default ReadOnlyCollectionBase;"]} \ No newline at end of file diff --git a/dist/umd.min/System/Collections/ReadOnlyCollectionWrapper.d.ts b/dist/umd.min/System/Collections/ReadOnlyCollectionWrapper.d.ts index 4b2dbde9..3bd3b498 100644 --- a/dist/umd.min/System/Collections/ReadOnlyCollectionWrapper.d.ts +++ b/dist/umd.min/System/Collections/ReadOnlyCollectionWrapper.d.ts @@ -2,7 +2,8 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import ReadOnlyCollection from "./ReadOnlyCollectionBase"; -export default class ReadOnlyCollectionWrapper extends ReadOnlyCollection { +import { ReadOnlyCollectionBase } from "./ReadOnlyCollectionBase"; +import { ICollection } from "./ICollection"; +export default class ReadOnlyCollectionWrapper extends ReadOnlyCollectionBase { constructor(c: ICollection); } diff --git a/dist/umd.min/System/Collections/ReadOnlyCollectionWrapper.js b/dist/umd.min/System/Collections/ReadOnlyCollectionWrapper.js index 2ce144e6..6ed91cd6 100644 --- a/dist/umd.min/System/Collections/ReadOnlyCollectionWrapper.js +++ b/dist/umd.min/System/Collections/ReadOnlyCollectionWrapper.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(e,t){function n(){this.constructor=e}for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../Exceptions/ArgumentNullException","./ReadOnlyCollectionBase"],e)}(function(e,t){"use strict";var n=e("../Exceptions/ArgumentNullException"),o=e("./ReadOnlyCollectionBase"),r=function(e){function t(t){if(e.call(this),!t)throw new n["default"]("collection");var o=this;o._getCount=function(){return t.count},o.getEnumerator=function(){return t.getEnumerator()}}return __extends(t,e),t}(o["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=r}); +var __extends=this&&this.__extends||function(e,t){function n(){this.constructor=e}for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../Exceptions/ArgumentNullException","./ReadOnlyCollectionBase"],e)}(function(e,t){"use strict";var n=e("../Exceptions/ArgumentNullException"),o=e("./ReadOnlyCollectionBase"),r=function(e){function t(t){if(e.call(this),!t)throw new n.ArgumentNullException("collection");var o=this;o._getCount=function(){return t.count},o.getEnumerator=function(){return t.getEnumerator()}}return __extends(t,e),t}(o.ReadOnlyCollectionBase);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=r}); //# sourceMappingURL=ReadOnlyCollectionWrapper.js.map diff --git a/dist/umd.min/System/Collections/ReadOnlyCollectionWrapper.js.map b/dist/umd.min/System/Collections/ReadOnlyCollectionWrapper.js.map index 5e732856..114e3d98 100644 --- a/dist/umd.min/System/Collections/ReadOnlyCollectionWrapper.js.map +++ b/dist/umd.min/System/Collections/ReadOnlyCollectionWrapper.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/ReadOnlyCollectionWrapper.js","System/Collections/ReadOnlyCollectionWrapper.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","ArgumentNullException_1","ReadOnlyCollectionBase_1","ReadOnlyCollectionWrapper","_super","c","call","_","_getCount","count","getEnumerator","defineProperty","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,sCAAuC,4BAA6BN,IAEvG,SAAUI,EAASF,GAClB,YCZJ,IAAAM,GAAAJ,EAAkC,uCAClCK,EAAAL,EAA+B,4BAE/BM,EAAA,SAAAC,GAEC,QAAAD,GAAYE,GAIX,GAFAD,EAAAE,KAAAvB,OAEIsB,EACH,KAAM,IAAIJ,GAAAA,WAAsB,aAEjC,IAAIM,GAAIxB,IACRwB,GAAEC,UAAY,WAAI,MAAAH,GAAEI,OACpBF,EAAEG,cAAgB,WAAK,MAAAL,GAAEK,iBAE3B,MAb0D5B,WAAAqB,EAAAC,GAa1DD,GAb0DD,EAAAA,WAA1DX,QAAAoB,eAAAhB,EAAA,cAAAiB,OAAA,IDyBIjB,EAAAA,WAAkBQ","file":"System/Collections/ReadOnlyCollectionWrapper.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../Exceptions/ArgumentNullException\", \"./ReadOnlyCollectionBase\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var ArgumentNullException_1 = require(\"../Exceptions/ArgumentNullException\");\n var ReadOnlyCollectionBase_1 = require(\"./ReadOnlyCollectionBase\");\n var ReadOnlyCollectionWrapper = (function (_super) {\n __extends(ReadOnlyCollectionWrapper, _super);\n function ReadOnlyCollectionWrapper(c) {\n _super.call(this);\n if (!c)\n throw new ArgumentNullException_1.default('collection');\n var _ = this;\n _._getCount = function () { return c.count; };\n _.getEnumerator = function () { return c.getEnumerator(); };\n }\n return ReadOnlyCollectionWrapper;\n }(ReadOnlyCollectionBase_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ReadOnlyCollectionWrapper;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport ArgumentNullException from \"../Exceptions/ArgumentNullException\";\r\nimport ReadOnlyCollection from \"./ReadOnlyCollectionBase\";\r\n\r\nexport default class ReadOnlyCollectionWrapper extends ReadOnlyCollection\r\n{\r\n\tconstructor(c:ICollection)\r\n\t{\r\n\t\tsuper();\r\n\r\n\t\tif(!c)\r\n\t\t\tthrow new ArgumentNullException('collection');\r\n\r\n\t\tvar _ = this;\r\n\t\t_._getCount = ()=>c.count;\r\n\t\t_.getEnumerator = ()=> c.getEnumerator();\r\n\t}\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/ReadOnlyCollectionWrapper.js","System/Collections/ReadOnlyCollectionWrapper.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","ArgumentNullException_1","ReadOnlyCollectionBase_1","ReadOnlyCollectionWrapper","_super","c","call","ArgumentNullException","_","_getCount","count","getEnumerator","ReadOnlyCollectionBase","defineProperty","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,sCAAuC,4BAA6BN,IAEvG,SAAUI,EAASF,GAClB,YCZJ,IAAAM,GAAAJ,EAAoC,uCACpCK,EAAAL,EAAqC,4BAGrCM,EAAA,SAAAC,GAEC,QAAAD,GAAYE,GAIX,GAFAD,EAAAE,KAAAvB,OAEIsB,EACH,KAAM,IAAIJ,GAAAM,sBAAsB,aAEjC,IAAIC,GAAIzB,IACRyB,GAAEC,UAAY,WAAI,MAAAJ,GAAEK,OACpBF,EAAEG,cAAgB,WAAK,MAAAN,GAAEM,iBAE3B,MAb0D7B,WAAAqB,EAAAC,GAa1DD,GAb0DD,EAAAU,uBAA1DrB,QAAAsB,eAAAlB,EAAA,cAAAmB,OAAA,IDwBInB,EAAAA,WAAkBQ","file":"System/Collections/ReadOnlyCollectionWrapper.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../Exceptions/ArgumentNullException\", \"./ReadOnlyCollectionBase\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var ArgumentNullException_1 = require(\"../Exceptions/ArgumentNullException\");\n var ReadOnlyCollectionBase_1 = require(\"./ReadOnlyCollectionBase\");\n var ReadOnlyCollectionWrapper = (function (_super) {\n __extends(ReadOnlyCollectionWrapper, _super);\n function ReadOnlyCollectionWrapper(c) {\n _super.call(this);\n if (!c)\n throw new ArgumentNullException_1.ArgumentNullException('collection');\n var _ = this;\n _._getCount = function () { return c.count; };\n _.getEnumerator = function () { return c.getEnumerator(); };\n }\n return ReadOnlyCollectionWrapper;\n }(ReadOnlyCollectionBase_1.ReadOnlyCollectionBase));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ReadOnlyCollectionWrapper;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {ArgumentNullException} from \"../Exceptions/ArgumentNullException\";\r\nimport {ReadOnlyCollectionBase} from \"./ReadOnlyCollectionBase\";\r\nimport {ICollection} from \"./ICollection\";\r\n\r\nexport default class ReadOnlyCollectionWrapper extends ReadOnlyCollectionBase\r\n{\r\n\tconstructor(c:ICollection)\r\n\t{\r\n\t\tsuper();\r\n\r\n\t\tif(!c)\r\n\t\t\tthrow new ArgumentNullException('collection');\r\n\r\n\t\tvar _ = this;\r\n\t\t_._getCount = ()=>c.count;\r\n\t\t_.getEnumerator = ()=> c.getEnumerator();\r\n\t}\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Collections/Set.d.ts b/dist/umd.min/System/Collections/Set.d.ts index b44c6c2d..9d80d8ae 100644 --- a/dist/umd.min/System/Collections/Set.d.ts +++ b/dist/umd.min/System/Collections/Set.d.ts @@ -1,12 +1,12 @@ -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import SetBase from "./SetBase"; -export default class Set extends SetBase { +import { SetBase } from "./SetBase"; +import { ILinkedNodeWithValue } from "./ILinkedListNode"; +import { Primitive } from "../Primitive"; +import { IEnumerableOrArray } from "./IEnumerableOrArray"; +export declare class Set extends SetBase { protected newUsing(source?: IEnumerableOrArray): Set; private _registry; protected _addInternal(item: T): boolean; @@ -15,3 +15,4 @@ export default class Set extends SetBase { protected _getNode(item: T): ILinkedNodeWithValue; protected _removeInternal(item: T, max?: number): number; } +export default Set; diff --git a/dist/umd.min/System/Collections/Set.js b/dist/umd.min/System/Collections/Set.js index 661df537..e3e5d878 100644 --- a/dist/umd.min/System/Collections/Set.js +++ b/dist/umd.min/System/Collections/Set.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../Types","../Exceptions/ArgumentException","./SetBase"],e)}(function(e,t){"use strict";function r(e,t){if(void 0===t&&(t=1),e&&t)for(var o=0,n=Object.keys(e);o\r\n///\r\n///\r\nimport Type from \"../Types\";\r\nimport ArgumentException from \"../Exceptions/ArgumentException\";\r\nimport SetBase from \"./SetBase\";\r\n\r\nconst OTHER = 'other';\r\n\r\nexport default class Set\r\nextends SetBase\r\n{\r\n\tprotected newUsing(source?:IEnumerableOrArray):Set\r\n\t{\r\n\t\treturn new Set(source);\r\n\t}\r\n\r\n\tprivate _registry:IMap>>;\r\n\r\n\tprotected _addInternal(item:T):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(!_.contains(item))\r\n\t\t{\r\n\t\t\tvar type = typeof item;\r\n\t\t\tif(!Type.isPrimitive(type))\r\n\t\t\t\tthrow new ArgumentException(\"item\", \"A Set can only index primitives. Complex objects require a HashSet.\");\r\n\r\n\t\t\tvar r = _._registry;\r\n\t\t\tvar t = r && r[type];\r\n\t\t\tif(!r) _._registry = r = {};\r\n\t\t\tif(!t) r[type] = t = {};\r\n\t\t\tvar node:ILinkedNodeWithValue = {value: item};\r\n\t\t\t_._getSet().addNode(node);\r\n\t\t\tt[item] = node;\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tprotected _clearInternal():number\r\n\t{\r\n\t\twipe(this._registry, 2);\r\n\t\treturn super._clearInternal();\r\n\t}\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis._registry = null;\r\n\t}\r\n\r\n\tprotected _getNode(item:T):ILinkedNodeWithValue\r\n\t{\r\n\t\tvar r = this._registry, t = r && r[typeof item];\r\n\r\n\t\treturn t && t[item];\r\n\t}\r\n\r\n\tprotected _removeInternal(item:T, max:number = Infinity):number\r\n\t{\r\n\t\tif(max===0) return 0;\r\n\r\n\t\tvar r = this._registry,\r\n\t\t t = r && r[typeof item],\r\n\t\t node = t && t[item];\r\n\r\n\t\tif(node)\r\n\t\t{\r\n\t\t\tdelete t[item];\r\n\t\t\tvar s = this._set;\r\n\t\t\tif(s && s.removeNode(node))\r\n\t\t\t{\r\n\t\t\t\treturn 1;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn 0;\r\n\t}\r\n\t\r\n}\r\n\r\nfunction wipe(map:IMap, depth:number = 1):void\r\n{\r\n\tif(map && depth)\r\n\t{\r\n\t\tfor(var key of Object.keys(map))\r\n\t\t{\r\n\t\t\tvar v = map[key];\r\n\t\t\tdelete map[key];\r\n\t\t\twipe(v, depth - 1);\r\n\t\t}\r\n\t}\r\n}"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Set.js","System/Collections/Set.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","wipe","map","depth","_i","_a","keys","length","key","Types_1","ArgumentException_1","SetBase_1","Set","_super","apply","arguments","newUsing","source","_addInternal","item","_","contains","type","Type","isPrimitive","ArgumentException","r","_registry","t","node","value","_getSet","addNode","_clearInternal","call","_onDispose","_getNode","_removeInternal","max","Infinity","s","_set","removeNode","SetBase","defineProperty"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,WAAY,kCAAmC,aAAcN,IAEhG,SAAUI,EAASF,GAClB,YCwEJ,SAAAM,GAAcC,EAAeC,GAE5B,GAF4B,SAAAA,IAAAA,EAAA,GAEzBD,GAAOC,EAET,IAAe,GAAAC,GAAA,EAAAC,EAAAd,OAAOe,KAAKJ,GAAZE,EAAAC,EAAAE,OAAAH,IAAiB,CAA5B,GAAII,GAAGH,EAAAD,GAENR,EAAIM,EAAIM,SACLN,GAAIM,GACXP,EAAKL,EAAGO,EAAQ,IA3FnB,GAAAM,GAAAZ,EAAmB,YACnBa,EAAAb,EAAgC,mCAChCc,EAAAd,EAAsB,aAQtBe,EAAA,SAAAC,GAAA,QAAAD,KACQC,EAAAC,MAAA/B,KAAAgC,WAsER,MAtEQjC,WAAA8B,EAAAC,GAEGD,EAAAtB,UAAA0B,SAAV,SAAmBC,GAElB,MAAO,IAAIL,GAAOK,IAKTL,EAAAtB,UAAA4B,aAAV,SAAuBC,GAEtB,GAAIC,GAAIrC,IACR,KAAIqC,EAAEC,SAASF,GACf,CACC,GAAIG,SAAcH,EAClB,KAAIV,EAAAc,KAAKC,YAAYF,GACpB,KAAM,IAAIZ,GAAAe,kBAAkB,OAAQ,uEAErC,IAAIC,GAAIN,EAAEO,UACNC,EAAIF,GAAKA,EAAEJ,EACXI,KAAGN,EAAEO,UAAYD,MACjBE,IAAGF,EAAEJ,GAAQM,KACjB,IAAIC,IAAgCC,MAAOX,EAG3C,OAFAC,GAAEW,UAAUC,QAAQH,GACpBD,EAAOT,GAAQU,GACR,EAER,OAAO,GAGEjB,EAAAtB,UAAA2C,eAAV,WAGC,MADAhC,GAAKlB,KAAK4C,UAAW,GACdd,EAAAvB,UAAM2C,eAAcC,KAAAnD,OAGlB6B,EAAAtB,UAAA6C,WAAV,WAECtB,EAAAvB,UAAM6C,WAAUD,KAAAnD,MAChBA,KAAK4C,UAAY,MAGRf,EAAAtB,UAAA8C,SAAV,SAAmBjB,GAElB,GAAIO,GAAI3C,KAAK4C,UAAWC,EAAIF,GAAKA,QAASP,GAE1C,OAAOS,IAAKA,EAAOT,IAGVP,EAAAtB,UAAA+C,gBAAV,SAA0BlB,EAAQmB,GAEjC,GAFiC,SAAAA,IAAAA,EAAAC,EAAAA,GAExB,IAAND,EAAS,MAAO,EAEnB,IAAIZ,GAAO3C,KAAK4C,UACZC,EAAOF,GAAKA,QAASP,IACrBU,EAAOD,GAAKA,EAAOT,EAEvB,IAAGU,EACH,OACQD,GAAOT,EACd,IAAIqB,GAAIzD,KAAK0D,IACb,IAAGD,GAAKA,EAAEE,WAAWb,GAEpB,MAAO,GAIT,MAAO,IAGTjB,GAtEQD,EAAAgC,QADKhD,GAAAiB,IAAGA,EAsFhBrB,OAAAqD,eAAAjD,EAAA,cAAAmC,OAAA,IDZInC,EAAAA,WCYWiB","file":"System/Collections/Set.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../Types\", \"../Exceptions/ArgumentException\", \"./SetBase\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var Types_1 = require(\"../Types\");\n var ArgumentException_1 = require(\"../Exceptions/ArgumentException\");\n var SetBase_1 = require(\"./SetBase\");\n var OTHER = 'other';\n var Set = (function (_super) {\n __extends(Set, _super);\n function Set() {\n _super.apply(this, arguments);\n }\n Set.prototype.newUsing = function (source) {\n return new Set(source);\n };\n Set.prototype._addInternal = function (item) {\n var _ = this;\n if (!_.contains(item)) {\n var type = typeof item;\n if (!Types_1.Type.isPrimitive(type))\n throw new ArgumentException_1.ArgumentException(\"item\", \"A Set can only index primitives. Complex objects require a HashSet.\");\n var r = _._registry;\n var t = r && r[type];\n if (!r)\n _._registry = r = {};\n if (!t)\n r[type] = t = {};\n var node = { value: item };\n _._getSet().addNode(node);\n t[item] = node;\n return true;\n }\n return false;\n };\n Set.prototype._clearInternal = function () {\n wipe(this._registry, 2);\n return _super.prototype._clearInternal.call(this);\n };\n Set.prototype._onDispose = function () {\n _super.prototype._onDispose.call(this);\n this._registry = null;\n };\n Set.prototype._getNode = function (item) {\n var r = this._registry, t = r && r[typeof item];\n return t && t[item];\n };\n Set.prototype._removeInternal = function (item, max) {\n if (max === void 0) { max = Infinity; }\n if (max === 0)\n return 0;\n var r = this._registry, t = r && r[typeof item], node = t && t[item];\n if (node) {\n delete t[item];\n var s = this._set;\n if (s && s.removeNode(node)) {\n return 1;\n }\n }\n return 0;\n };\n return Set;\n }(SetBase_1.SetBase));\n exports.Set = Set;\n function wipe(map, depth) {\n if (depth === void 0) { depth = 1; }\n if (map && depth) {\n for (var _i = 0, _a = Object.keys(map); _i < _a.length; _i++) {\n var key = _a[_i];\n var v = map[key];\n delete map[key];\n wipe(v, depth - 1);\n }\n }\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Set;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {Type} from \"../Types\";\r\nimport {ArgumentException} from \"../Exceptions/ArgumentException\";\r\nimport {SetBase} from \"./SetBase\";\r\nimport {IMap} from \"./Dictionaries/IDictionary\";\r\nimport {ILinkedNodeWithValue} from \"./ILinkedListNode\";\r\nimport {Primitive} from \"../Primitive\";\r\nimport {IEnumerableOrArray} from \"./IEnumerableOrArray\";\r\n\r\nconst OTHER = 'other';\r\n\r\nexport class Set\r\nextends SetBase\r\n{\r\n\tprotected newUsing(source?:IEnumerableOrArray):Set\r\n\t{\r\n\t\treturn new Set(source);\r\n\t}\r\n\r\n\tprivate _registry:IMap>>;\r\n\r\n\tprotected _addInternal(item:T):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(!_.contains(item))\r\n\t\t{\r\n\t\t\tvar type = typeof item;\r\n\t\t\tif(!Type.isPrimitive(type))\r\n\t\t\t\tthrow new ArgumentException(\"item\", \"A Set can only index primitives. Complex objects require a HashSet.\");\r\n\r\n\t\t\tvar r = _._registry;\r\n\t\t\tvar t = r && r[type];\r\n\t\t\tif(!r) _._registry = r = {};\r\n\t\t\tif(!t) r[type] = t = {};\r\n\t\t\tvar node:ILinkedNodeWithValue = {value: item};\r\n\t\t\t_._getSet().addNode(node);\r\n\t\t\tt[item] = node;\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tprotected _clearInternal():number\r\n\t{\r\n\t\twipe(this._registry, 2);\r\n\t\treturn super._clearInternal();\r\n\t}\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis._registry = null;\r\n\t}\r\n\r\n\tprotected _getNode(item:T):ILinkedNodeWithValue\r\n\t{\r\n\t\tvar r = this._registry, t = r && r[typeof item];\r\n\r\n\t\treturn t && t[item];\r\n\t}\r\n\r\n\tprotected _removeInternal(item:T, max:number = Infinity):number\r\n\t{\r\n\t\tif(max===0) return 0;\r\n\r\n\t\tvar r = this._registry,\r\n\t\t t = r && r[typeof item],\r\n\t\t node = t && t[item];\r\n\r\n\t\tif(node)\r\n\t\t{\r\n\t\t\tdelete t[item];\r\n\t\t\tvar s = this._set;\r\n\t\t\tif(s && s.removeNode(node))\r\n\t\t\t{\r\n\t\t\t\treturn 1;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn 0;\r\n\t}\r\n\r\n}\r\n\r\nfunction wipe(map:IMap, depth:number = 1):void\r\n{\r\n\tif(map && depth)\r\n\t{\r\n\t\tfor(var key of Object.keys(map))\r\n\t\t{\r\n\t\t\tvar v = map[key];\r\n\t\t\tdelete map[key];\r\n\t\t\twipe(v, depth - 1);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default Set;"]} \ No newline at end of file diff --git a/dist/umd.min/System/Collections/SetBase.d.ts b/dist/umd.min/System/Collections/SetBase.d.ts index 1b129395..efd9f1c3 100644 --- a/dist/umd.min/System/Collections/SetBase.d.ts +++ b/dist/umd.min/System/Collections/SetBase.d.ts @@ -1,13 +1,16 @@ -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import LinkedNodeList from "./LinkedNodeList"; -import CollectionBase from "./CollectionBase"; -declare abstract class SetBase extends CollectionBase implements ISet, IDisposable { +import { LinkedNodeList } from "./LinkedNodeList"; +import { CollectionBase } from "./CollectionBase"; +import { IDisposable } from "../Disposable/IDisposable"; +import { ILinkedNodeWithValue } from "./ILinkedListNode"; +import { Predicate, Action } from "../FunctionTypes"; +import { IEnumerator } from "./Enumeration/IEnumerator"; +import { IEnumerableOrArray } from "./IEnumerableOrArray"; +import { ISet } from "./ISet"; +export declare abstract class SetBase extends CollectionBase implements ISet, IDisposable { constructor(source?: IEnumerableOrArray); protected abstract newUsing(source?: IEnumerableOrArray): SetBase; protected _set: LinkedNodeList>; diff --git a/dist/umd.min/System/Collections/SetBase.js b/dist/umd.min/System/Collections/SetBase.js index 64e8f7ab..fa142d3b 100644 --- a/dist/umd.min/System/Collections/SetBase.js +++ b/dist/umd.min/System/Collections/SetBase.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)};!function(t){if("object"==typeof module&&"object"==typeof module.exports){var e=t(require,exports);void 0!==e&&(module.exports=e)}else"function"==typeof define&&define.amd&&define(["require","exports","./LinkedNodeList","../Exceptions/ArgumentNullException","./Enumeration/Enumerator","../Disposable/dispose","../Compare","./CollectionBase"],t)}(function(t,e){"use strict";var n=t("./LinkedNodeList"),o=t("../Exceptions/ArgumentNullException"),i=t("./Enumeration/Enumerator"),r=t("../Disposable/dispose"),s=t("../Compare"),u=t("./CollectionBase"),f="other",a=function(t){function e(e){t.call(this,null,s.areEqual),this._importEntries(e)}return __extends(e,t),e.prototype._getSet=function(){var t=this._set;return t||(this._set=t=new n["default"]),t},e.prototype.getCount=function(){return this._set?this._set.unsafeCount:0},e.prototype.exceptWith=function(t){var e=this;if(!t)throw new o["default"](f);i.forEach(t,function(t){e._removeInternal(t)&&e._incrementModified()}),e._signalModification()},e.prototype.intersectWith=function(t){if(!t)throw new o["default"](f);var n=this;if(t instanceof e){var i=n._set;i&&i.forEach(function(e){!t.contains(e.value)&&n._removeInternal(e.value)&&n._incrementModified()}),n._signalModification()}else r.using(n.newUsing(t),function(t){return n.intersectWith(t)})},e.prototype.isProperSubsetOf=function(t){var n=this;if(!t)throw new o["default"](f);return t instanceof e?t.isProperSupersetOf(this):r.using(this.newUsing(t),function(t){return t.isProperSupersetOf(n)})},e.prototype.isProperSupersetOf=function(t){var n=this;if(!t)throw new o["default"](f);var s,u=!0;return t instanceof e?(u=this.isSupersetOf(t),s=t.getCount()):r.using(this.newUsing(),function(e){i.forEach(t,function(t){return e.add(t),u=n.contains(t)}),s=e.getCount()}),u&&this.getCount()>s},e.prototype.isSubsetOf=function(t){var n=this;if(!t)throw new o["default"](f);return t instanceof e?t.isSupersetOf(this):r.using(this.newUsing(t),function(t){return t.isSupersetOf(n)})},e.prototype.isSupersetOf=function(t){var e=this;if(!t)throw new o["default"](f);var n=!0;return i.forEach(t,function(t){return n=e.contains(t)}),n},e.prototype.overlaps=function(t){var e=this;if(!t)throw new o["default"](f);var n=!1;return i.forEach(t,function(t){return!(n=e.contains(t))}),n},e.prototype.setEquals=function(t){if(!t)throw new o["default"](f);return this.getCount()==(t instanceof e?t.getCount():r.using(this.newUsing(t),function(t){return t.getCount()}))&&this.isSubsetOf(t)},e.prototype.symmetricExceptWith=function(t){if(!t)throw new o["default"](f);var n=this;t instanceof e?(i.forEach(t,function(t){n.contains(t)?n._removeInternal(t)&&n._incrementModified():n._addInternal(t)&&n._incrementModified()}),n._signalModification()):r.using(this.newUsing(t),function(t){return n.symmetricExceptWith(t)})},e.prototype.unionWith=function(t){this.importEntries(t)},e.prototype._clearInternal=function(){var t=this._set;return t?t.clear():0},e.prototype._onDispose=function(){t.prototype._onDispose.call(this),this._set=null},e.prototype.contains=function(t){return!(!this.getCount()||!this._getNode(t))},e.prototype.getEnumerator=function(){var t=this._set;return t&&this.getCount()?n["default"].valueEnumeratorFrom(t):i.empty},e.prototype.forEach=function(e,n){void 0===n&&(n=!1),n?t.prototype.forEach.call(this,e,n):this._set.forEach(function(t,n){return e(t.value,n)})},e.prototype._removeNode=function(t){return t?0!=this.remove(t.value):!1},e.prototype.removeFirst=function(){var t=this._set;return this._removeNode(t&&t.first)},e.prototype.removeLast=function(){var t=this._set;return this._removeNode(t&&t.last)},e}(u["default"]);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=a}); +var __extends=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)};!function(t){if("object"==typeof module&&"object"==typeof module.exports){var e=t(require,exports);void 0!==e&&(module.exports=e)}else"function"==typeof define&&define.amd&&define(["require","exports","./LinkedNodeList","../Exceptions/ArgumentNullException","./Enumeration/Enumerator","../Disposable/dispose","../Compare","./CollectionBase"],t)}(function(t,e){"use strict";var n=t("./LinkedNodeList"),o=t("../Exceptions/ArgumentNullException"),i=t("./Enumeration/Enumerator"),r=t("../Disposable/dispose"),s=t("../Compare"),u=t("./CollectionBase"),c="other",p=function(t){function e(e){t.call(this,null,s.areEqual),this._importEntries(e)}return __extends(e,t),e.prototype._getSet=function(){var t=this._set;return t||(this._set=t=new n.LinkedNodeList),t},e.prototype.getCount=function(){return this._set?this._set.unsafeCount:0},e.prototype.exceptWith=function(t){var e=this;if(!t)throw new o.ArgumentNullException(c);i.forEach(t,function(t){e._removeInternal(t)&&e._incrementModified()}),e._signalModification()},e.prototype.intersectWith=function(t){if(!t)throw new o.ArgumentNullException(c);var n=this;if(t instanceof e){var i=n._set;i&&i.forEach(function(e){!t.contains(e.value)&&n._removeInternal(e.value)&&n._incrementModified()}),n._signalModification()}else r.using(n.newUsing(t),function(t){return n.intersectWith(t)})},e.prototype.isProperSubsetOf=function(t){var n=this;if(!t)throw new o.ArgumentNullException(c);return t instanceof e?t.isProperSupersetOf(this):r.using(this.newUsing(t),function(t){return t.isProperSupersetOf(n)})},e.prototype.isProperSupersetOf=function(t){var n=this;if(!t)throw new o.ArgumentNullException(c);var s,u=!0;return t instanceof e?(u=this.isSupersetOf(t),s=t.getCount()):r.using(this.newUsing(),function(e){i.forEach(t,function(t){return e.add(t),u=n.contains(t)}),s=e.getCount()}),u&&this.getCount()>s},e.prototype.isSubsetOf=function(t){var n=this;if(!t)throw new o.ArgumentNullException(c);return t instanceof e?t.isSupersetOf(this):r.using(this.newUsing(t),function(t){return t.isSupersetOf(n)})},e.prototype.isSupersetOf=function(t){var e=this;if(!t)throw new o.ArgumentNullException(c);var n=!0;return i.forEach(t,function(t){return n=e.contains(t)}),n},e.prototype.overlaps=function(t){var e=this;if(!t)throw new o.ArgumentNullException(c);var n=!1;return i.forEach(t,function(t){return!(n=e.contains(t))}),n},e.prototype.setEquals=function(t){if(!t)throw new o.ArgumentNullException(c);return this.getCount()==(t instanceof e?t.getCount():r.using(this.newUsing(t),function(t){return t.getCount()}))&&this.isSubsetOf(t)},e.prototype.symmetricExceptWith=function(t){if(!t)throw new o.ArgumentNullException(c);var n=this;t instanceof e?(i.forEach(t,function(t){n.contains(t)?n._removeInternal(t)&&n._incrementModified():n._addInternal(t)&&n._incrementModified()}),n._signalModification()):r.using(this.newUsing(t),function(t){return n.symmetricExceptWith(t)})},e.prototype.unionWith=function(t){this.importEntries(t)},e.prototype._clearInternal=function(){var t=this._set;return t?t.clear():0},e.prototype._onDispose=function(){t.prototype._onDispose.call(this),this._set=null},e.prototype.contains=function(t){return!(!this.getCount()||!this._getNode(t))},e.prototype.getEnumerator=function(){var t=this._set;return t&&this.getCount()?n.LinkedNodeList.valueEnumeratorFrom(t):i.empty},e.prototype.forEach=function(e,n){void 0===n&&(n=!1),n?t.prototype.forEach.call(this,e,n):this._set.forEach(function(t,n){return e(t.value,n)})},e.prototype._removeNode=function(t){return t?0!=this.remove(t.value):!1},e.prototype.removeFirst=function(){var t=this._set;return this._removeNode(t&&t.first)},e.prototype.removeLast=function(){var t=this._set;return this._removeNode(t&&t.last)},e}(u.CollectionBase);e.SetBase=p,Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=p}); //# sourceMappingURL=SetBase.js.map diff --git a/dist/umd.min/System/Collections/SetBase.js.map b/dist/umd.min/System/Collections/SetBase.js.map index d2e43470..368df9e4 100644 --- a/dist/umd.min/System/Collections/SetBase.js.map +++ b/dist/umd.min/System/Collections/SetBase.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/SetBase.js","System/Collections/SetBase.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","LinkedNodeList_1","ArgumentNullException_1","Enumerator_1","dispose_1","Compare_1","CollectionBase_1","OTHER","SetBase","_super","source","call","areEqual","_importEntries","_getSet","s","_set","getCount","unsafeCount","exceptWith","other","_","forEach","_removeInternal","_incrementModified","_signalModification","intersectWith","n","contains","value","using","newUsing","o","isProperSubsetOf","_this","isProperSupersetOf","count","result","isSupersetOf","add","isSubsetOf","overlaps","setEquals","symmetricExceptWith","_addInternal","unionWith","importEntries","_clearInternal","clear","_onDispose","item","_getNode","getEnumerator","valueEnumeratorFrom","empty","action","useCopy","node","i","_removeNode","remove","removeFirst","first","removeLast","last","defineProperty"],"mappings":"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","file":"System/Collections/SetBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"./LinkedNodeList\", \"../Exceptions/ArgumentNullException\", \"./Enumeration/Enumerator\", \"../Disposable/dispose\", \"../Compare\", \"./CollectionBase\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var LinkedNodeList_1 = require(\"./LinkedNodeList\");\n var ArgumentNullException_1 = require(\"../Exceptions/ArgumentNullException\");\n var Enumerator_1 = require(\"./Enumeration/Enumerator\");\n var dispose_1 = require(\"../Disposable/dispose\");\n var Compare_1 = require(\"../Compare\");\n var CollectionBase_1 = require(\"./CollectionBase\");\n var OTHER = 'other';\n var SetBase = (function (_super) {\n __extends(SetBase, _super);\n function SetBase(source) {\n _super.call(this, null, Compare_1.areEqual);\n this._importEntries(source);\n }\n SetBase.prototype._getSet = function () {\n var s = this._set;\n if (!s)\n this._set = s = new LinkedNodeList_1.default();\n return s;\n };\n SetBase.prototype.getCount = function () {\n return this._set ? this._set.unsafeCount : 0;\n };\n SetBase.prototype.exceptWith = function (other) {\n var _ = this;\n if (!other)\n throw new ArgumentNullException_1.default(OTHER);\n Enumerator_1.forEach(other, function (v) {\n if (_._removeInternal(v))\n _._incrementModified();\n });\n _._signalModification();\n };\n SetBase.prototype.intersectWith = function (other) {\n if (!other)\n throw new ArgumentNullException_1.default(OTHER);\n var _ = this;\n if (other instanceof SetBase) {\n var s = _._set;\n if (s)\n s.forEach(function (n) {\n if (!other.contains(n.value) && _._removeInternal(n.value))\n _._incrementModified();\n });\n _._signalModification();\n }\n else {\n dispose_1.using(_.newUsing(other), function (o) { return _.intersectWith(o); });\n }\n };\n SetBase.prototype.isProperSubsetOf = function (other) {\n var _this = this;\n if (!other)\n throw new ArgumentNullException_1.default(OTHER);\n return other instanceof SetBase\n ? other.isProperSupersetOf(this)\n : dispose_1.using(this.newUsing(other), function (o) { return o.isProperSupersetOf(_this); });\n };\n SetBase.prototype.isProperSupersetOf = function (other) {\n var _this = this;\n if (!other)\n throw new ArgumentNullException_1.default(OTHER);\n var result = true, count;\n if (other instanceof SetBase) {\n result = this.isSupersetOf(other);\n count = other.getCount();\n }\n else {\n dispose_1.using(this.newUsing(), function (o) {\n Enumerator_1.forEach(other, function (v) {\n o.add(v);\n return result = _this.contains(v);\n });\n count = o.getCount();\n });\n }\n return result && this.getCount() > count;\n };\n SetBase.prototype.isSubsetOf = function (other) {\n var _this = this;\n if (!other)\n throw new ArgumentNullException_1.default(OTHER);\n return other instanceof SetBase\n ? other.isSupersetOf(this)\n : dispose_1.using(this.newUsing(other), function (o) { return o.isSupersetOf(_this); });\n };\n SetBase.prototype.isSupersetOf = function (other) {\n var _this = this;\n if (!other)\n throw new ArgumentNullException_1.default(OTHER);\n var result = true;\n Enumerator_1.forEach(other, function (v) {\n return result = _this.contains(v);\n });\n return result;\n };\n SetBase.prototype.overlaps = function (other) {\n var _this = this;\n if (!other)\n throw new ArgumentNullException_1.default(OTHER);\n var result = false;\n Enumerator_1.forEach(other, function (v) { return !(result = _this.contains(v)); });\n return result;\n };\n SetBase.prototype.setEquals = function (other) {\n if (!other)\n throw new ArgumentNullException_1.default(OTHER);\n return this.getCount() == (other instanceof SetBase\n ? other.getCount()\n : dispose_1.using(this.newUsing(other), function (o) { return o.getCount(); }))\n && this.isSubsetOf(other);\n };\n SetBase.prototype.symmetricExceptWith = function (other) {\n if (!other)\n throw new ArgumentNullException_1.default(OTHER);\n var _ = this;\n if (other instanceof SetBase) {\n Enumerator_1.forEach(other, function (v) {\n if (_.contains(v)) {\n if (_._removeInternal(v))\n _._incrementModified();\n }\n else {\n if (_._addInternal(v))\n _._incrementModified();\n }\n });\n _._signalModification();\n }\n else {\n dispose_1.using(this.newUsing(other), function (o) { return _.symmetricExceptWith(o); });\n }\n };\n SetBase.prototype.unionWith = function (other) {\n this.importEntries(other);\n };\n SetBase.prototype._clearInternal = function () {\n var s = this._set;\n return s ? s.clear() : 0;\n };\n SetBase.prototype._onDispose = function () {\n _super.prototype._onDispose.call(this);\n this._set = null;\n };\n SetBase.prototype.contains = function (item) {\n return !(!this.getCount() || !this._getNode(item));\n };\n SetBase.prototype.getEnumerator = function () {\n var s = this._set;\n return s && this.getCount()\n ? LinkedNodeList_1.default.valueEnumeratorFrom(s)\n : Enumerator_1.empty;\n };\n SetBase.prototype.forEach = function (action, useCopy) {\n if (useCopy === void 0) { useCopy = false; }\n if (useCopy)\n _super.prototype.forEach.call(this, action, useCopy);\n else\n this._set.forEach(function (node, i) { return action(node.value, i); });\n };\n SetBase.prototype._removeNode = function (node) {\n if (!node)\n return false;\n return this.remove(node.value) != 0;\n };\n SetBase.prototype.removeFirst = function () {\n var s = this._set;\n return this._removeNode(s && s.first);\n };\n SetBase.prototype.removeLast = function () {\n var s = this._set;\n return this._removeNode(s && s.last);\n };\n return SetBase;\n }(CollectionBase_1.default));\n function wipe(map, depth) {\n if (depth === void 0) { depth = 1; }\n if (map && depth) {\n for (var _i = 0, _a = Object.keys(map); _i < _a.length; _i++) {\n var key = _a[_i];\n var v = map[key];\n delete map[key];\n wipe(v, depth - 1);\n }\n }\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = SetBase;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\nimport LinkedNodeList from \"./LinkedNodeList\";\r\nimport ArgumentNullException from \"../Exceptions/ArgumentNullException\";\r\nimport {forEach, empty as emptyEnumerator} from \"./Enumeration/Enumerator\";\r\nimport {using} from \"../Disposable/dispose\";\r\nimport {areEqual} from \"../Compare\";\r\nimport CollectionBase from \"./CollectionBase\";\r\n\r\nconst OTHER = 'other';\r\n\r\nabstract class SetBase\r\nextends CollectionBase implements ISet, IDisposable\r\n{\r\n\r\n\tconstructor(source?:IEnumerableOrArray)\r\n\t{\r\n\t\tsuper(null, areEqual);\r\n\t\tthis._importEntries(source);\r\n\t}\r\n\r\n\tprotected abstract newUsing(source?:IEnumerableOrArray):SetBase;\r\n\r\n\tprotected _set:LinkedNodeList>;\r\n\r\n\tprotected _getSet():LinkedNodeList>\r\n\t{\r\n\t\tvar s = this._set;\r\n\t\tif(!s) this._set = s = new LinkedNodeList>();\r\n\t\treturn s;\r\n\t}\r\n\r\n\tprotected getCount():number\r\n\t{\r\n\t\treturn this._set ? this._set.unsafeCount : 0;\r\n\t}\r\n\r\n\texceptWith(other:IEnumerableOrArray):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\tforEach(other, v=>\r\n\t\t{\r\n\t\t\tif(_._removeInternal(v))\r\n\t\t\t\t_._incrementModified();\r\n\t\t});\r\n\r\n\t\t_._signalModification();\r\n\t}\r\n\r\n\tintersectWith(other:IEnumerableOrArray):void\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\tvar _ = this;\r\n\t\tif(other instanceof SetBase)\r\n\t\t{\r\n\t\t\tlet s = _._set;\r\n\t\t\tif(s) s.forEach(n=>\r\n\t\t\t{\r\n\t\t\t\tif(!other.contains(n.value) && _._removeInternal(n.value))\r\n\t\t\t\t\t_._incrementModified();\r\n\t\t\t});\r\n\r\n\t\t\t_._signalModification();\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tusing(_.newUsing(other), o=>_.intersectWith(o));\r\n\t\t}\r\n\t}\r\n\r\n\tisProperSubsetOf(other:IEnumerableOrArray):boolean\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\treturn other instanceof SetBase\r\n\t\t\t? other.isProperSupersetOf(this)\r\n\t\t\t: using(this.newUsing(other), o=> o.isProperSupersetOf(this));\r\n\t}\r\n\r\n\tisProperSupersetOf(other:IEnumerableOrArray):boolean\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\tvar result = true, count:number;\r\n\t\tif(other instanceof SetBase)\r\n\t\t{\r\n\t\t\tresult = this.isSupersetOf(other);\r\n\t\t\tcount = other.getCount();\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tusing(this.newUsing(), o=>\r\n\t\t\t{\r\n\t\t\t\tforEach(other, v=>\r\n\t\t\t\t{\r\n\t\t\t\t\to.add(v); // We have to add to another set in order to filter out duplicates.\r\n\t\t\t\t\treturn result = this.contains(v);\r\n\t\t\t\t});\r\n\t\t\t\tcount = o.getCount();\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn result && this.getCount()>count;\r\n\t}\r\n\r\n\tisSubsetOf(other:IEnumerableOrArray):boolean\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\treturn other instanceof SetBase\r\n\t\t\t? other.isSupersetOf(this)\r\n\t\t\t: using(this.newUsing(other), o=> o.isSupersetOf(this));\r\n\t}\r\n\r\n\tisSupersetOf(other:IEnumerableOrArray):boolean\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\tvar result = true;\r\n\t\tforEach(other, v=>\r\n\t\t{\r\n\t\t\treturn result = this.contains(v);\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\r\n\toverlaps(other:IEnumerableOrArray):boolean\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\tvar result = false;\r\n\t\tforEach(other, v => !(result = this.contains(v)));\r\n\t\treturn result;\r\n\t}\r\n\r\n\tsetEquals(other:IEnumerableOrArray):boolean\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\treturn this.getCount()==(\r\n\t\t\t\tother instanceof SetBase\r\n\t\t\t\t\t? other.getCount()\r\n\t\t\t\t\t: using(this.newUsing(other), o=> o.getCount()))\r\n\t\t\t&& this.isSubsetOf(other);\r\n\t}\r\n\r\n\tsymmetricExceptWith(other:IEnumerableOrArray):void\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\tvar _ = this;\r\n\t\tif(other instanceof SetBase)\r\n\t\t{\r\n\t\t\tforEach(other, v=>\r\n\t\t\t{\r\n\t\t\t\tif(_.contains(v))\r\n\t\t\t\t{\r\n\t\t\t\t\tif(_._removeInternal(v))\r\n\t\t\t\t\t\t_._incrementModified();\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tif(_._addInternal(v))\r\n\t\t\t\t\t\t_._incrementModified();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t_._signalModification();\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tusing(this.newUsing(other), o=>_.symmetricExceptWith(o));\r\n\t\t}\r\n\t}\r\n\r\n\tunionWith(other:IEnumerableOrArray):void\r\n\t{\r\n\t\tthis.importEntries(other);\r\n\t}\r\n\r\n\r\n\tprotected _clearInternal():number\r\n\t{\r\n\t\tvar s = this._set;\r\n\t\treturn s ? s.clear() : 0;\r\n\t}\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis._set = null;\r\n\t}\r\n\r\n\tprotected abstract _getNode(item:T):ILinkedNodeWithValue;\r\n\r\n\tcontains(item:T):boolean\r\n\t{\r\n\t\treturn !(!this.getCount() || !this._getNode(item));\r\n\t}\r\n\r\n\tgetEnumerator():IEnumerator\r\n\t{\r\n\t\tvar s = this._set;\r\n\t\treturn s && this.getCount()\r\n\t\t\t? LinkedNodeList.valueEnumeratorFrom(s)\r\n\t\t\t: emptyEnumerator;\r\n\t}\r\n\r\n\tforEach(\r\n\t\taction:Predicate | Action,\r\n\t\tuseCopy:boolean = false):void\r\n\t{\r\n\t\tif(useCopy) super.forEach(action, useCopy);\r\n\t\telse this._set.forEach((node, i)=>action(node.value, i));\r\n\t}\r\n\r\n\tprotected _removeNode(node:ILinkedNodeWithValue):boolean\r\n\t{\r\n\t\tif(!node) return false;\r\n\t\treturn this.remove(node.value)!=0;\r\n\t}\r\n\r\n\tremoveFirst():boolean\r\n\t{\r\n\t\tvar s = this._set;\r\n\t\treturn this._removeNode(s && s.first);\r\n\t}\r\n\r\n\tremoveLast():boolean\r\n\t{\r\n\t\tvar s = this._set;\r\n\t\treturn this._removeNode(s && s.last);\r\n\t}\r\n\r\n\r\n}\r\n\r\nfunction wipe(map:IMap, depth:number = 1):void\r\n{\r\n\tif(map && depth)\r\n\t{\r\n\t\tfor(var key of Object.keys(map))\r\n\t\t{\r\n\t\t\tvar v = map[key];\r\n\t\t\tdelete map[key];\r\n\t\t\twipe(v, depth - 1);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default SetBase;"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/SetBase.js","System/Collections/SetBase.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","LinkedNodeList_1","ArgumentNullException_1","Enumerator_1","dispose_1","Compare_1","CollectionBase_1","OTHER","SetBase","_super","source","call","areEqual","_importEntries","_getSet","s","_set","LinkedNodeList","getCount","unsafeCount","exceptWith","other","_","ArgumentNullException","forEach","_removeInternal","_incrementModified","_signalModification","intersectWith","n","contains","value","using","newUsing","o","isProperSubsetOf","_this","isProperSupersetOf","count","result","isSupersetOf","add","isSubsetOf","overlaps","setEquals","symmetricExceptWith","_addInternal","unionWith","importEntries","_clearInternal","clear","_onDispose","item","_getNode","getEnumerator","valueEnumeratorFrom","empty","action","useCopy","node","i","_removeNode","remove","removeFirst","first","removeLast","last","CollectionBase","defineProperty"],"mappings":"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","file":"System/Collections/SetBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"./LinkedNodeList\", \"../Exceptions/ArgumentNullException\", \"./Enumeration/Enumerator\", \"../Disposable/dispose\", \"../Compare\", \"./CollectionBase\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var LinkedNodeList_1 = require(\"./LinkedNodeList\");\n var ArgumentNullException_1 = require(\"../Exceptions/ArgumentNullException\");\n var Enumerator_1 = require(\"./Enumeration/Enumerator\");\n var dispose_1 = require(\"../Disposable/dispose\");\n var Compare_1 = require(\"../Compare\");\n var CollectionBase_1 = require(\"./CollectionBase\");\n var OTHER = 'other';\n var SetBase = (function (_super) {\n __extends(SetBase, _super);\n function SetBase(source) {\n _super.call(this, null, Compare_1.areEqual);\n this._importEntries(source);\n }\n SetBase.prototype._getSet = function () {\n var s = this._set;\n if (!s)\n this._set = s = new LinkedNodeList_1.LinkedNodeList();\n return s;\n };\n SetBase.prototype.getCount = function () {\n return this._set ? this._set.unsafeCount : 0;\n };\n SetBase.prototype.exceptWith = function (other) {\n var _ = this;\n if (!other)\n throw new ArgumentNullException_1.ArgumentNullException(OTHER);\n Enumerator_1.forEach(other, function (v) {\n if (_._removeInternal(v))\n _._incrementModified();\n });\n _._signalModification();\n };\n SetBase.prototype.intersectWith = function (other) {\n if (!other)\n throw new ArgumentNullException_1.ArgumentNullException(OTHER);\n var _ = this;\n if (other instanceof SetBase) {\n var s = _._set;\n if (s)\n s.forEach(function (n) {\n if (!other.contains(n.value) && _._removeInternal(n.value))\n _._incrementModified();\n });\n _._signalModification();\n }\n else {\n dispose_1.using(_.newUsing(other), function (o) { return _.intersectWith(o); });\n }\n };\n SetBase.prototype.isProperSubsetOf = function (other) {\n var _this = this;\n if (!other)\n throw new ArgumentNullException_1.ArgumentNullException(OTHER);\n return other instanceof SetBase\n ? other.isProperSupersetOf(this)\n : dispose_1.using(this.newUsing(other), function (o) { return o.isProperSupersetOf(_this); });\n };\n SetBase.prototype.isProperSupersetOf = function (other) {\n var _this = this;\n if (!other)\n throw new ArgumentNullException_1.ArgumentNullException(OTHER);\n var result = true, count;\n if (other instanceof SetBase) {\n result = this.isSupersetOf(other);\n count = other.getCount();\n }\n else {\n dispose_1.using(this.newUsing(), function (o) {\n Enumerator_1.forEach(other, function (v) {\n o.add(v);\n return result = _this.contains(v);\n });\n count = o.getCount();\n });\n }\n return result && this.getCount() > count;\n };\n SetBase.prototype.isSubsetOf = function (other) {\n var _this = this;\n if (!other)\n throw new ArgumentNullException_1.ArgumentNullException(OTHER);\n return other instanceof SetBase\n ? other.isSupersetOf(this)\n : dispose_1.using(this.newUsing(other), function (o) { return o.isSupersetOf(_this); });\n };\n SetBase.prototype.isSupersetOf = function (other) {\n var _this = this;\n if (!other)\n throw new ArgumentNullException_1.ArgumentNullException(OTHER);\n var result = true;\n Enumerator_1.forEach(other, function (v) {\n return result = _this.contains(v);\n });\n return result;\n };\n SetBase.prototype.overlaps = function (other) {\n var _this = this;\n if (!other)\n throw new ArgumentNullException_1.ArgumentNullException(OTHER);\n var result = false;\n Enumerator_1.forEach(other, function (v) { return !(result = _this.contains(v)); });\n return result;\n };\n SetBase.prototype.setEquals = function (other) {\n if (!other)\n throw new ArgumentNullException_1.ArgumentNullException(OTHER);\n return this.getCount() == (other instanceof SetBase\n ? other.getCount()\n : dispose_1.using(this.newUsing(other), function (o) { return o.getCount(); }))\n && this.isSubsetOf(other);\n };\n SetBase.prototype.symmetricExceptWith = function (other) {\n if (!other)\n throw new ArgumentNullException_1.ArgumentNullException(OTHER);\n var _ = this;\n if (other instanceof SetBase) {\n Enumerator_1.forEach(other, function (v) {\n if (_.contains(v)) {\n if (_._removeInternal(v))\n _._incrementModified();\n }\n else {\n if (_._addInternal(v))\n _._incrementModified();\n }\n });\n _._signalModification();\n }\n else {\n dispose_1.using(this.newUsing(other), function (o) { return _.symmetricExceptWith(o); });\n }\n };\n SetBase.prototype.unionWith = function (other) {\n this.importEntries(other);\n };\n SetBase.prototype._clearInternal = function () {\n var s = this._set;\n return s ? s.clear() : 0;\n };\n SetBase.prototype._onDispose = function () {\n _super.prototype._onDispose.call(this);\n this._set = null;\n };\n SetBase.prototype.contains = function (item) {\n return !(!this.getCount() || !this._getNode(item));\n };\n SetBase.prototype.getEnumerator = function () {\n var s = this._set;\n return s && this.getCount()\n ? LinkedNodeList_1.LinkedNodeList.valueEnumeratorFrom(s)\n : Enumerator_1.empty;\n };\n SetBase.prototype.forEach = function (action, useCopy) {\n if (useCopy === void 0) { useCopy = false; }\n if (useCopy)\n _super.prototype.forEach.call(this, action, useCopy);\n else\n this._set.forEach(function (node, i) { return action(node.value, i); });\n };\n SetBase.prototype._removeNode = function (node) {\n if (!node)\n return false;\n return this.remove(node.value) != 0;\n };\n SetBase.prototype.removeFirst = function () {\n var s = this._set;\n return this._removeNode(s && s.first);\n };\n SetBase.prototype.removeLast = function () {\n var s = this._set;\n return this._removeNode(s && s.last);\n };\n return SetBase;\n }(CollectionBase_1.CollectionBase));\n exports.SetBase = SetBase;\n function wipe(map, depth) {\n if (depth === void 0) { depth = 1; }\n if (map && depth) {\n for (var _i = 0, _a = Object.keys(map); _i < _a.length; _i++) {\n var key = _a[_i];\n var v = map[key];\n delete map[key];\n wipe(v, depth - 1);\n }\n }\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = SetBase;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {LinkedNodeList} from \"./LinkedNodeList\";\r\nimport {ArgumentNullException} from \"../Exceptions/ArgumentNullException\";\r\nimport {forEach, empty as emptyEnumerator} from \"./Enumeration/Enumerator\";\r\nimport {using} from \"../Disposable/dispose\";\r\nimport {areEqual} from \"../Compare\";\r\nimport {CollectionBase} from \"./CollectionBase\";\r\nimport {IDisposable} from \"../Disposable/IDisposable\";\r\nimport {ILinkedNodeWithValue} from \"./ILinkedListNode\";\r\nimport {Predicate, Action} from \"../FunctionTypes\";\r\nimport {IMap} from \"./Dictionaries/IDictionary\";\r\nimport {IEnumerator} from \"./Enumeration/IEnumerator\";\r\nimport {IEnumerableOrArray} from \"./IEnumerableOrArray\";\r\nimport {ISet} from \"./ISet\";\r\n\r\nconst OTHER = 'other';\r\n\r\nexport abstract class SetBase\r\nextends CollectionBase implements ISet, IDisposable\r\n{\r\n\r\n\tconstructor(source?:IEnumerableOrArray)\r\n\t{\r\n\t\tsuper(null, areEqual);\r\n\t\tthis._importEntries(source);\r\n\t}\r\n\r\n\tprotected abstract newUsing(source?:IEnumerableOrArray):SetBase;\r\n\r\n\tprotected _set:LinkedNodeList>;\r\n\r\n\tprotected _getSet():LinkedNodeList>\r\n\t{\r\n\t\tvar s = this._set;\r\n\t\tif(!s) this._set = s = new LinkedNodeList>();\r\n\t\treturn s;\r\n\t}\r\n\r\n\tprotected getCount():number\r\n\t{\r\n\t\treturn this._set ? this._set.unsafeCount : 0;\r\n\t}\r\n\r\n\texceptWith(other:IEnumerableOrArray):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\tforEach(other, v=>\r\n\t\t{\r\n\t\t\tif(_._removeInternal(v))\r\n\t\t\t\t_._incrementModified();\r\n\t\t});\r\n\r\n\t\t_._signalModification();\r\n\t}\r\n\r\n\tintersectWith(other:IEnumerableOrArray):void\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\tvar _ = this;\r\n\t\tif(other instanceof SetBase)\r\n\t\t{\r\n\t\t\tlet s = _._set;\r\n\t\t\tif(s) s.forEach(n=>\r\n\t\t\t{\r\n\t\t\t\tif(!other.contains(n.value) && _._removeInternal(n.value))\r\n\t\t\t\t\t_._incrementModified();\r\n\t\t\t});\r\n\r\n\t\t\t_._signalModification();\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tusing(_.newUsing(other), o=>_.intersectWith(o));\r\n\t\t}\r\n\t}\r\n\r\n\tisProperSubsetOf(other:IEnumerableOrArray):boolean\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\treturn other instanceof SetBase\r\n\t\t\t? other.isProperSupersetOf(this)\r\n\t\t\t: using(this.newUsing(other), o=> o.isProperSupersetOf(this));\r\n\t}\r\n\r\n\tisProperSupersetOf(other:IEnumerableOrArray):boolean\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\tvar result = true, count:number;\r\n\t\tif(other instanceof SetBase)\r\n\t\t{\r\n\t\t\tresult = this.isSupersetOf(other);\r\n\t\t\tcount = other.getCount();\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tusing(this.newUsing(), o=>\r\n\t\t\t{\r\n\t\t\t\tforEach(other, v=>\r\n\t\t\t\t{\r\n\t\t\t\t\to.add(v); // We have to add to another set in order to filter out duplicates.\r\n\t\t\t\t\treturn result = this.contains(v);\r\n\t\t\t\t});\r\n\t\t\t\tcount = o.getCount();\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn result && this.getCount()>count;\r\n\t}\r\n\r\n\tisSubsetOf(other:IEnumerableOrArray):boolean\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\treturn other instanceof SetBase\r\n\t\t\t? other.isSupersetOf(this)\r\n\t\t\t: using(this.newUsing(other), o=> o.isSupersetOf(this));\r\n\t}\r\n\r\n\tisSupersetOf(other:IEnumerableOrArray):boolean\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\tvar result = true;\r\n\t\tforEach(other, v=>\r\n\t\t{\r\n\t\t\treturn result = this.contains(v);\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\r\n\toverlaps(other:IEnumerableOrArray):boolean\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\tvar result = false;\r\n\t\tforEach(other, v => !(result = this.contains(v)));\r\n\t\treturn result;\r\n\t}\r\n\r\n\tsetEquals(other:IEnumerableOrArray):boolean\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\treturn this.getCount()==(\r\n\t\t\t\tother instanceof SetBase\r\n\t\t\t\t\t? other.getCount()\r\n\t\t\t\t\t: using(this.newUsing(other), o=> o.getCount()))\r\n\t\t\t&& this.isSubsetOf(other);\r\n\t}\r\n\r\n\tsymmetricExceptWith(other:IEnumerableOrArray):void\r\n\t{\r\n\t\tif(!other) throw new ArgumentNullException(OTHER);\r\n\r\n\t\tvar _ = this;\r\n\t\tif(other instanceof SetBase)\r\n\t\t{\r\n\t\t\tforEach(other, v=>\r\n\t\t\t{\r\n\t\t\t\tif(_.contains(v))\r\n\t\t\t\t{\r\n\t\t\t\t\tif(_._removeInternal(v))\r\n\t\t\t\t\t\t_._incrementModified();\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tif(_._addInternal(v))\r\n\t\t\t\t\t\t_._incrementModified();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t_._signalModification();\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tusing(this.newUsing(other), o=>_.symmetricExceptWith(o));\r\n\t\t}\r\n\t}\r\n\r\n\tunionWith(other:IEnumerableOrArray):void\r\n\t{\r\n\t\tthis.importEntries(other);\r\n\t}\r\n\r\n\r\n\tprotected _clearInternal():number\r\n\t{\r\n\t\tvar s = this._set;\r\n\t\treturn s ? s.clear() : 0;\r\n\t}\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis._set = null;\r\n\t}\r\n\r\n\tprotected abstract _getNode(item:T):ILinkedNodeWithValue;\r\n\r\n\tcontains(item:T):boolean\r\n\t{\r\n\t\treturn !(!this.getCount() || !this._getNode(item));\r\n\t}\r\n\r\n\tgetEnumerator():IEnumerator\r\n\t{\r\n\t\tvar s = this._set;\r\n\t\treturn s && this.getCount()\r\n\t\t\t? LinkedNodeList.valueEnumeratorFrom(s)\r\n\t\t\t: emptyEnumerator;\r\n\t}\r\n\r\n\tforEach(\r\n\t\taction:Predicate | Action,\r\n\t\tuseCopy:boolean = false):void\r\n\t{\r\n\t\tif(useCopy) super.forEach(action, useCopy);\r\n\t\telse this._set.forEach((node, i)=>action(node.value, i));\r\n\t}\r\n\r\n\tprotected _removeNode(node:ILinkedNodeWithValue):boolean\r\n\t{\r\n\t\tif(!node) return false;\r\n\t\treturn this.remove(node.value)!=0;\r\n\t}\r\n\r\n\tremoveFirst():boolean\r\n\t{\r\n\t\tvar s = this._set;\r\n\t\treturn this._removeNode(s && s.first);\r\n\t}\r\n\r\n\tremoveLast():boolean\r\n\t{\r\n\t\tvar s = this._set;\r\n\t\treturn this._removeNode(s && s.last);\r\n\t}\r\n\r\n\r\n}\r\n\r\nfunction wipe(map:IMap, depth:number = 1):void\r\n{\r\n\tif(map && depth)\r\n\t{\r\n\t\tfor(var key of Object.keys(map))\r\n\t\t{\r\n\t\t\tvar v = map[key];\r\n\t\t\tdelete map[key];\r\n\t\t\twipe(v, depth - 1);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default SetBase;"]} \ No newline at end of file diff --git a/dist/umd.min/System/Collections/Sorting/KeySortedContext.d.ts b/dist/umd.min/System/Collections/Sorting/KeySortedContext.d.ts index 36822f6a..4de93bc7 100644 --- a/dist/umd.min/System/Collections/Sorting/KeySortedContext.d.ts +++ b/dist/umd.min/System/Collections/Sorting/KeySortedContext.d.ts @@ -1,16 +1,15 @@ -/// -/// -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import SortContext from "./SortContext"; -export default class KeySortedContext extends SortContext { +import { SortContext } from "./SortContext"; +import { Comparison, Selector } from "../../FunctionTypes"; +import { Comparable } from "../../IComparable"; +import { IComparer } from "../../IComparer"; +import { Order } from "./Order"; +export declare class KeySortedContext extends SortContext { protected _keySelector: Selector; constructor(next: IComparer, _keySelector: Selector, order?: Order, comparer?: Comparison); compare(a: T, b: T): number; } +export default KeySortedContext; diff --git a/dist/umd.min/System/Collections/Sorting/KeySortedContext.js b/dist/umd.min/System/Collections/Sorting/KeySortedContext.js index 797ce31b..5b3979f8 100644 --- a/dist/umd.min/System/Collections/Sorting/KeySortedContext.js +++ b/dist/umd.min/System/Collections/Sorting/KeySortedContext.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(e,t){function o(){this.constructor=e}for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../../Compare","./SortContext","../../Functions"],e)}(function(e,t){"use strict";var o=e("../../Compare"),r=e("./SortContext"),n=e("../../Functions"),i=function(e){function t(t,r,n,i){void 0===n&&(n=1),void 0===i&&(i=o.compare),e.call(this,t,i,n),this._keySelector=r}return __extends(t,e),t.prototype.compare=function(t,r){var i=this,c=i._keySelector;if(!c||c==n["default"].Identity)return e.prototype.compare.call(this,t,r);var p=o.compare(c(t),c(r));return 0==p&&i._next?i._next.compare(t,r):i._order*p},t}(r["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=i}); +var __extends=this&&this.__extends||function(e,t){function o(){this.constructor=e}for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../../Compare","./SortContext","../../Functions"],e)}(function(e,t){"use strict";var o=e("../../Compare"),r=e("./SortContext"),n=e("../../Functions"),i=function(e){function t(t,r,n,i){void 0===n&&(n=1),void 0===i&&(i=o.compare),e.call(this,t,i,n),this._keySelector=r}return __extends(t,e),t.prototype.compare=function(t,r){var i=this,c=i._keySelector;if(!c||c==n.Functions.Identity)return e.prototype.compare.call(this,t,r);var p=o.compare(c(t),c(r));return 0==p&&i._next?i._next.compare(t,r):i._order*p},t}(r.SortContext);t.KeySortedContext=i,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=i}); //# sourceMappingURL=KeySortedContext.js.map diff --git a/dist/umd.min/System/Collections/Sorting/KeySortedContext.js.map b/dist/umd.min/System/Collections/Sorting/KeySortedContext.js.map index 03492ce5..19a45c45 100644 --- a/dist/umd.min/System/Collections/Sorting/KeySortedContext.js.map +++ b/dist/umd.min/System/Collections/Sorting/KeySortedContext.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Sorting/KeySortedContext.js","System/Collections/Sorting/KeySortedContext.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","Values","SortContext_1","Functions_1","KeySortedContext","_super","next","_keySelector","order","comparer","compare","call","a","_","ks","Identity","_next","_order","defineProperty","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,gBAAiB,gBAAiB,mBAAoBN,IAEzF,SAAUI,EAASF,GCLtB,YAEA,IAAYM,GAAMJ,EAAM,iBACxBK,EAAAL,EAAwB,iBACxBM,EAAAN,EAAsB,mBAEtBO,EAAA,SAAAC,GAGC,QAAAD,GACCE,EACUC,EACVC,EACAC,GADA,SAAAD,IAAAA,EAAA,GACA,SAAAC,IAAAA,EAAyBR,EAAOS,SAEhCL,EAAAM,KAAA5B,KAAMuB,EAAMG,EAAUD,GAJZzB,KAAAwB,aAAAA,EAgBZ,MApB2DzB,WAAAsB,EAAAC,GAW1DD,EAAAd,UAAAoB,QAAA,SAAQE,EAAK3B,GAEZ,GAAI4B,GAAI9B,KAAM+B,EAAKD,EAAEN,YACrB,KAAIO,GAAMA,GAAIX,EAAAA,WAAUY,SAAU,MAAOV,GAAAf,UAAMoB,QAAOC,KAAA5B,KAAC6B,EAAG3B,EAE1D,IAAID,GAAIiB,EAAOS,QAAaI,EAAGF,GAASE,EAAG7B,GAC3C,OAAM,IAAHD,GAAQ6B,EAAEG,MAAcH,EAAEG,MAAMN,QAAQE,EAAG3B,GACvC4B,EAAEI,OAAOjC,GAElBoB,GApB2DF,EAAAA,WAD3DX,QAAA2B,eAAAvB,EAAA,cAAAwB,OAAA,IDwBIxB,EAAAA,WAAkBS","file":"System/Collections/Sorting/KeySortedContext.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../../Compare\", \"./SortContext\", \"../../Functions\"], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var Values = require(\"../../Compare\");\n var SortContext_1 = require(\"./SortContext\");\n var Functions_1 = require(\"../../Functions\");\n var KeySortedContext = (function (_super) {\n __extends(KeySortedContext, _super);\n function KeySortedContext(next, _keySelector, order, comparer) {\n if (order === void 0) { order = 1; }\n if (comparer === void 0) { comparer = Values.compare; }\n _super.call(this, next, comparer, order);\n this._keySelector = _keySelector;\n }\n KeySortedContext.prototype.compare = function (a, b) {\n var _ = this, ks = _._keySelector;\n if (!ks || ks == Functions_1.default.Identity)\n return _super.prototype.compare.call(this, a, b);\n var d = Values.compare(ks(a), ks(b));\n if (d == 0 && _._next)\n return _._next.compare(a, b);\n return _._order * d;\n };\n return KeySortedContext;\n }(SortContext_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = KeySortedContext;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport * as Values from \"../../Compare\";\r\nimport SortContext from \"./SortContext\";\r\nimport Functions from \"../../Functions\";\r\n\r\nexport default\r\nclass KeySortedContext extends SortContext\r\n{\r\n\tconstructor(\r\n\t\tnext:IComparer,\r\n\t\tprotected _keySelector:Selector,\r\n\t\torder:Order = Order.Ascending,\r\n\t\tcomparer:Comparison = Values.compare)\r\n\t{\r\n\t\tsuper(next, comparer, order);\r\n\t}\r\n\r\n\tcompare(a:T, b:T):number\r\n\t{\r\n\t\tvar _ = this, ks = _._keySelector;\r\n\t\tif(!ks || ks==Functions.Identity) return super.compare(a, b);\r\n\t\t// We force here since it can be a Primitive or IComparable\r\n\t\tvar d = Values.compare(ks(a), ks(b));\r\n\t\tif(d==0 && _._next) return _._next.compare(a, b);\r\n\t\treturn _._order*d;\r\n\t}\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Sorting/KeySortedContext.js","System/Collections/Sorting/KeySortedContext.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","Values","SortContext_1","Functions_1","KeySortedContext","_super","next","_keySelector","order","comparer","compare","call","a","_","ks","Functions","Identity","_next","_order","SortContext","defineProperty","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,gBAAiB,gBAAiB,mBAAoBN,IAEzF,SAAUI,EAASF,GAClB,YCZJ,IAAYM,GAAMJ,EAAM,iBACxBK,EAAAL,EAA0B,iBAC1BM,EAAAN,EAAwB,mBAMxBO,EAAA,SAAAC,GAEC,QAAAD,GACCE,EACUC,EACVC,EACAC,GADA,SAAAD,IAAAA,EAAA,GACA,SAAAC,IAAAA,EAAyBR,EAAOS,SAEhCL,EAAAM,KAAA5B,KAAMuB,EAAMG,EAAUD,GAJZzB,KAAAwB,aAAAA,EAgBZ,MApBkEzB,WAAAsB,EAAAC,GAWjED,EAAAd,UAAAoB,QAAA,SAAQE,EAAK3B,GAEZ,GAAI4B,GAAI9B,KAAM+B,EAAKD,EAAEN,YACrB,KAAIO,GAAMA,GAAIX,EAAAY,UAAUC,SAAU,MAAOX,GAAAf,UAAMoB,QAAOC,KAAA5B,KAAC6B,EAAG3B,EAE1D,IAAID,GAAIiB,EAAOS,QAAaI,EAAGF,GAASE,EAAG7B,GAC3C,OAAM,IAAHD,GAAQ6B,EAAEI,MAAcJ,EAAEI,MAAMP,QAAQE,EAAG3B,GACvC4B,EAAEK,OAAOlC,GAElBoB,GApBkEF,EAAAiB,YAArDxB,GAAAS,iBAAgBA,EAsB7Bb,OAAA6B,eAAAzB,EAAA,cAAA0B,OAAA,IDOI1B,EAAAA,WCPWS","file":"System/Collections/Sorting/KeySortedContext.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../../Compare\", \"./SortContext\", \"../../Functions\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var Values = require(\"../../Compare\");\n var SortContext_1 = require(\"./SortContext\");\n var Functions_1 = require(\"../../Functions\");\n var KeySortedContext = (function (_super) {\n __extends(KeySortedContext, _super);\n function KeySortedContext(next, _keySelector, order, comparer) {\n if (order === void 0) { order = 1; }\n if (comparer === void 0) { comparer = Values.compare; }\n _super.call(this, next, comparer, order);\n this._keySelector = _keySelector;\n }\n KeySortedContext.prototype.compare = function (a, b) {\n var _ = this, ks = _._keySelector;\n if (!ks || ks == Functions_1.Functions.Identity)\n return _super.prototype.compare.call(this, a, b);\n var d = Values.compare(ks(a), ks(b));\n if (d == 0 && _._next)\n return _._next.compare(a, b);\n return _._order * d;\n };\n return KeySortedContext;\n }(SortContext_1.SortContext));\n exports.KeySortedContext = KeySortedContext;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = KeySortedContext;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport * as Values from \"../../Compare\";\r\nimport {SortContext} from \"./SortContext\";\r\nimport {Functions} from \"../../Functions\";\r\nimport {Comparison, Selector} from \"../../FunctionTypes\";\r\nimport {Comparable} from \"../../IComparable\";\r\nimport {IComparer} from \"../../IComparer\";\r\nimport {Order} from \"./Order\";\r\n\r\nexport class KeySortedContext extends SortContext\r\n{\r\n\tconstructor(\r\n\t\tnext:IComparer,\r\n\t\tprotected _keySelector:Selector,\r\n\t\torder:Order = Order.Ascending,\r\n\t\tcomparer:Comparison = Values.compare)\r\n\t{\r\n\t\tsuper(next, comparer, order);\r\n\t}\r\n\r\n\tcompare(a:T, b:T):number\r\n\t{\r\n\t\tvar _ = this, ks = _._keySelector;\r\n\t\tif(!ks || ks==Functions.Identity) return super.compare(a, b);\r\n\t\t// We force here since it can be a Primitive or IComparable\r\n\t\tvar d = Values.compare(ks(a), ks(b));\r\n\t\tif(d==0 && _._next) return _._next.compare(a, b);\r\n\t\treturn _._order*d;\r\n\t}\r\n}\r\n\r\nexport default KeySortedContext;"]} \ No newline at end of file diff --git a/dist/umd.min/System/Collections/Sorting/SortContext.d.ts b/dist/umd.min/System/Collections/Sorting/SortContext.d.ts index b459e302..63118bbb 100644 --- a/dist/umd.min/System/Collections/Sorting/SortContext.d.ts +++ b/dist/umd.min/System/Collections/Sorting/SortContext.d.ts @@ -1,12 +1,11 @@ -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -export default class SortContext implements IComparer { +import { Comparison } from "../../FunctionTypes"; +import { IComparer } from "../../IComparer"; +import { Order } from "./Order"; +export declare class SortContext implements IComparer { protected _next: IComparer; protected _comparer: Comparison; protected _order: Order; @@ -15,3 +14,4 @@ export default class SortContext implements IComparer { generateSortedIndexes(source: T[]): number[]; compare(a: T, b: T): number; } +export default SortContext; diff --git a/dist/umd.min/System/Collections/Sorting/SortContext.js b/dist/umd.min/System/Collections/Sorting/SortContext.js index 82f36b35..7a2d8b54 100644 --- a/dist/umd.min/System/Collections/Sorting/SortContext.js +++ b/dist/umd.min/System/Collections/Sorting/SortContext.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -!function(e){if("object"==typeof module&&"object"==typeof module.exports){var r=e(require,exports);void 0!==r&&(module.exports=r)}else"function"==typeof define&&define.amd&&define(["require","exports","../../Compare"],e)}(function(e,r){"use strict";var t=e("../../Compare"),o=function(){function e(e,r,o){void 0===r&&(r=t.compare),void 0===o&&(o=1),this._next=e,this._comparer=r,this._order=o}return Object.defineProperty(e.prototype,"order",{get:function(){return this._order},enumerable:!0,configurable:!0}),e.prototype.generateSortedIndexes=function(e){var r=this;if(null==e)return[];var t=e.map(function(e,r){return r});return t.sort(function(t,o){return r.compare(e[t],e[o])}),t},e.prototype.compare=function(e,r){var t=this,o=t._comparer(e,r);return 0==o&&t._next?t._next.compare(e,r):t._order*o},e}();Object.defineProperty(r,"__esModule",{value:!0}),r["default"]=o}); +!function(e){if("object"==typeof module&&"object"==typeof module.exports){var r=e(require,exports);void 0!==r&&(module.exports=r)}else"function"==typeof define&&define.amd&&define(["require","exports","../../Compare"],e)}(function(e,r){"use strict";var t=e("../../Compare"),o=function(){function e(e,r,o){void 0===r&&(r=t.compare),void 0===o&&(o=1),this._next=e,this._comparer=r,this._order=o}return Object.defineProperty(e.prototype,"order",{get:function(){return this._order},enumerable:!0,configurable:!0}),e.prototype.generateSortedIndexes=function(e){var r=this;if(null==e)return[];var t=e.map(function(e,r){return r});return t.sort(function(t,o){return r.compare(e[t],e[o])}),t},e.prototype.compare=function(e,r){var t=this,o=t._comparer(e,r);return 0==o&&t._next?t._next.compare(e,r):t._order*o},e}();r.SortContext=o,Object.defineProperty(r,"__esModule",{value:!0}),r["default"]=o}); //# sourceMappingURL=SortContext.js.map diff --git a/dist/umd.min/System/Collections/Sorting/SortContext.js.map b/dist/umd.min/System/Collections/Sorting/SortContext.js.map index 47618923..6d825de7 100644 --- a/dist/umd.min/System/Collections/Sorting/SortContext.js.map +++ b/dist/umd.min/System/Collections/Sorting/SortContext.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Sorting/SortContext.js","System/Collections/Sorting/SortContext.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","Values","SortContext","_next","_comparer","_order","compare","this","Object","defineProperty","prototype","get","enumerable","configurable","generateSortedIndexes","source","_this","result","map","s","i","sort","a","b","_","d","value"],"mappings":";;;;CAIA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,iBAAkBN,IAErD,SAAUI,EAASF,GCFtB,YAEA,IAAYM,GAAMJ,EAAM,iBAExBK,EAAA,WAWC,QAAAA,GACWC,EACAC,EACAC,GADV,SAAAD,IAAAA,EAAoCH,EAAOK,SAC3C,SAAAD,IAAAA,EAAA,GAFUE,KAAAJ,MAAAA,EACAI,KAAAH,UAAAA,EACAG,KAAAF,OAAAA,EA+BZ,MArCCG,QAAAC,eAAIP,EAAAQ,UAAA,SDEOC,ICFX,WACE,MAAOJ,MAAKF,QDEHO,YAAY,EACZC,cAAc,ICYzBX,EAAAQ,UAAAI,sBAAA,SAAsBC,GAAtB,GAAAC,GAAAT,IAEC,IAAW,MAARQ,EAAc,QACjB,IAAIE,GAAkBF,EAAOG,IAAI,SAACC,EAAGC,GAAI,MAAAA,IAEzC,OADAH,GAAOI,KAAK,SAACC,EAAGC,GAAM,MAAAP,GAAKV,QAAQS,EAAOO,GAAIP,EAAOQ,MAC9CN,GASRf,EAAAQ,UAAAJ,QAAA,SAAQgB,EAAKC,GAEZ,GAAIC,GAAIjB,KACJkB,EAAID,EAAEpB,UAAUkB,EAAGC,EACvB,OAAM,IAAHE,GAAQD,EAAErB,MAAcqB,EAAErB,MAAMG,QAAQgB,EAAGC,GACvCC,EAAEnB,OAAOoB,GAElBvB,IA7CAM,QAAAC,eAAAd,EAAA,cAAA+B,OAAA,IDgCI/B,EAAAA,WAAkBO","file":"System/Collections/Sorting/SortContext.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../../Compare\"], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var Values = require(\"../../Compare\");\n var SortContext = (function () {\n function SortContext(_next, _comparer, _order) {\n if (_comparer === void 0) { _comparer = Values.compare; }\n if (_order === void 0) { _order = 1; }\n this._next = _next;\n this._comparer = _comparer;\n this._order = _order;\n }\n Object.defineProperty(SortContext.prototype, \"order\", {\n get: function () { return this._order; },\n enumerable: true,\n configurable: true\n });\n SortContext.prototype.generateSortedIndexes = function (source) {\n var _this = this;\n if (source == null)\n return [];\n var result = source.map(function (s, i) { return i; });\n result.sort(function (a, b) { return _this.compare(source[a], source[b]); });\n return result;\n };\n SortContext.prototype.compare = function (a, b) {\n var _ = this;\n var d = _._comparer(a, b);\n if (d == 0 && _._next)\n return _._next.compare(a, b);\n return _._order * d;\n };\n return SortContext;\n }());\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = SortContext;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport * as Values from \"../../Compare\";\r\n\r\nexport default\r\nclass SortContext implements IComparer\r\n{\r\n\r\n\t/**\r\n\t * Direction of the comparison.\r\n\t * @type {Order}\r\n\t */\r\n\tget order():Order\r\n\t{ return this._order; }\r\n\r\n\tconstructor(\r\n\t\tprotected _next:IComparer,\r\n\t\tprotected _comparer:Comparison = Values.compare,\r\n\t\tprotected _order:Order = Order.Ascending)\r\n\t{\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Generates an array of indexes from the source in order of their expected sort without modifying the source.\r\n\t * @param source\r\n\t * @returns {number[]}\r\n\t */\r\n\tgenerateSortedIndexes(source:T[]):number[]\r\n\t{\r\n\t\tif(source==null) return [];\r\n\t\tvar result:number[] = source.map((s, i)=>i);\r\n\t\tresult.sort((a, b) => this.compare(source[a], source[b]));\r\n\t\treturn result;\r\n\t}\r\n\r\n\t/**\r\n\t * Compares two values based upon SortContext parameters.\r\n\t * @param a\r\n\t * @param b\r\n\t * @returns {any}\r\n\t */\r\n\tcompare(a:T, b:T):number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar d = _._comparer(a, b);\r\n\t\tif(d==0 && _._next) return _._next.compare(a, b);\r\n\t\treturn _._order*d;\r\n\t}\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Sorting/SortContext.js","System/Collections/Sorting/SortContext.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","Values","SortContext","_next","_comparer","_order","compare","this","Object","defineProperty","prototype","get","enumerable","configurable","generateSortedIndexes","source","_this","result","map","s","i","sort","a","b","_","d","value"],"mappings":";;;;CAIA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,iBAAkBN,IAErD,SAAUI,EAASF,GAClB,YCNJ,IAAYM,GAAMJ,EAAM,iBAKxBK,EAAA,WAUC,QAAAA,GACWC,EACAC,EACAC,GADV,SAAAD,IAAAA,EAAoCH,EAAOK,SAC3C,SAAAD,IAAAA,EAAA,GAFUE,KAAAJ,MAAAA,EACAI,KAAAH,UAAAA,EACAG,KAAAF,OAAAA,EA+BZ,MArCCG,QAAAC,eAAIP,EAAAQ,UAAA,SDKOC,ICLX,WACE,MAAOJ,MAAKF,QDKHO,YAAY,EACZC,cAAc,ICSzBX,EAAAQ,UAAAI,sBAAA,SAAsBC,GAAtB,GAAAC,GAAAT,IAEC,IAAW,MAARQ,EAAc,QACjB,IAAIE,GAAkBF,EAAOG,IAAI,SAACC,EAAGC,GAAI,MAAAA,IAEzC,OADAH,GAAOI,KAAK,SAACC,EAAGC,GAAM,MAAAP,GAAKV,QAAQS,EAAOO,GAAIP,EAAOQ,MAC9CN,GASRf,EAAAQ,UAAAJ,QAAA,SAAQgB,EAAKC,GAEZ,GAAIC,GAAIjB,KACJkB,EAAID,EAAEpB,UAAUkB,EAAGC,EACvB,OAAM,IAAHE,GAAQD,EAAErB,MAAcqB,EAAErB,MAAMG,QAAQgB,EAAGC,GACvCC,EAAEnB,OAAOoB,GAElBvB,IA5CaP,GAAAO,YAAWA,EA8CxBM,OAAAC,eAAAd,EAAA,cAAA+B,OAAA,IDXI/B,EAAAA,WCWWO","file":"System/Collections/Sorting/SortContext.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../../Compare\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var Values = require(\"../../Compare\");\n var SortContext = (function () {\n function SortContext(_next, _comparer, _order) {\n if (_comparer === void 0) { _comparer = Values.compare; }\n if (_order === void 0) { _order = 1; }\n this._next = _next;\n this._comparer = _comparer;\n this._order = _order;\n }\n Object.defineProperty(SortContext.prototype, \"order\", {\n get: function () { return this._order; },\n enumerable: true,\n configurable: true\n });\n SortContext.prototype.generateSortedIndexes = function (source) {\n var _this = this;\n if (source == null)\n return [];\n var result = source.map(function (s, i) { return i; });\n result.sort(function (a, b) { return _this.compare(source[a], source[b]); });\n return result;\n };\n SortContext.prototype.compare = function (a, b) {\n var _ = this;\n var d = _._comparer(a, b);\n if (d == 0 && _._next)\n return _._next.compare(a, b);\n return _._order * d;\n };\n return SortContext;\n }());\n exports.SortContext = SortContext;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = SortContext;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport * as Values from \"../../Compare\";\r\nimport {Comparison} from \"../../FunctionTypes\";\r\nimport {IComparer} from \"../../IComparer\";\r\nimport {Order} from \"./Order\";\r\n\r\nexport class SortContext implements IComparer\r\n{\r\n\r\n\t/**\r\n\t * Direction of the comparison.\r\n\t * @type {Order}\r\n\t */\r\n\tget order():Order\r\n\t{ return this._order; }\r\n\r\n\tconstructor(\r\n\t\tprotected _next:IComparer,\r\n\t\tprotected _comparer:Comparison = Values.compare,\r\n\t\tprotected _order:Order = Order.Ascending)\r\n\t{\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Generates an array of indexes from the source in order of their expected sort without modifying the source.\r\n\t * @param source\r\n\t * @returns {number[]}\r\n\t */\r\n\tgenerateSortedIndexes(source:T[]):number[]\r\n\t{\r\n\t\tif(source==null) return [];\r\n\t\tvar result:number[] = source.map((s, i)=>i);\r\n\t\tresult.sort((a, b) => this.compare(source[a], source[b]));\r\n\t\treturn result;\r\n\t}\r\n\r\n\t/**\r\n\t * Compares two values based upon SortContext parameters.\r\n\t * @param a\r\n\t * @param b\r\n\t * @returns {any}\r\n\t */\r\n\tcompare(a:T, b:T):number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar d = _._comparer(a, b);\r\n\t\tif(d==0 && _._next) return _._next.compare(a, b);\r\n\t\treturn _._order*d;\r\n\t}\r\n}\r\n\r\nexport default SortContext;"]} \ No newline at end of file diff --git a/dist/umd.min/System/Compare.d.ts b/dist/umd.min/System/Compare.d.ts index 1d12a4b3..c4be772a 100644 --- a/dist/umd.min/System/Compare.d.ts +++ b/dist/umd.min/System/Compare.d.ts @@ -1,10 +1,10 @@ -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { Primitive } from "./Primitive"; +import { IComparable } from "./IComparable"; +import { CompareResult } from "./CompareResult"; export declare function areEqual(a: any, b: any, strict?: boolean): boolean; export declare function compare(a: IComparable, b: IComparable): number; export declare function compare(a: T, b: T, strict?: boolean): CompareResult; diff --git a/dist/umd.min/System/Compare.js b/dist/umd.min/System/Compare.js index d2b2340c..5d903691 100644 --- a/dist/umd.min/System/Compare.js +++ b/dist/umd.min/System/Compare.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","./Types"],e)}(function(e,t){"use strict";function r(e,t,r){return void 0===r&&(r=!0),e===t||!r&&e==t||i(e)&&i(t)}function u(e,t,u){return void 0===u&&(u=!0),r(e,t,u)?0:e&&o["default"].hasMember(e,f)?e.compareTo(t):t&&o["default"].hasMember(t,f)?-t.compareTo(e):e>t||u&&(0===e&&0==t||null===e&&t===l)?1:t>e||u&&(0===t&&0==e||null===t&&e===l)?-1:NaN}function n(e,t,u,i){if(void 0===u&&(u=!0),void 0===i&&(i=0),r(e,t,!0))return!0;if(null===e||e===l||null==t||t===l)return u?o["default"].isObject(e)?!Object.keys(e).length:o["default"].isObject(t)?!Object.keys(t).length:!(null!==e&&e!==l||null!=t&&t!==l):!1;if(o["default"].isObject(e)&&o["default"].isObject(t)){var f=Object.keys(e),a=Object.keys(t),s=f.length;if(s!=a.length)return!1;f.sort(),a.sort();for(var c=0;s>c;c++){var d=f[c];if(d!==a[c]||!r(e[d],t[d],!0))return!1}if(i>0)for(var v=0,p=f;vr||n&&(0===e&&0==r||null===e&&r===l)?1:r>e||n&&(0===r&&0==e||null===r&&e===l)?-1:NaN}function o(e,r,n,u){if(void 0===n&&(n=!0),void 0===u&&(u=0),t(e,r,!0))return!0;if(null===e||e===l||null==r||r===l)return n?i.Type.isObject(e)?!Object.keys(e).length:i.Type.isObject(r)?!Object.keys(r).length:!(null!==e&&e!==l||null!=r&&r!==l):!1;if(i.Type.isObject(e)&&i.Type.isObject(r)){var f=Object.keys(e),s=Object.keys(r),a=f.length;if(a!=s.length)return!1;f.sort(),s.sort();for(var c=0;a>c;c++){var p=f[c];if(p!==s[c]||!t(e[p],r[p],!0))return!1}if(u>0)for(var y=0,v=f;y b || strict && (a === 0 && b == 0 || a === null && b === VOID0))\n return 1;\n if (b > a || strict && (b === 0 && a == 0 || b === null && a === VOID0))\n return -1;\n return NaN;\n }\n exports.compare = compare;\n function areEquivalent(a, b, nullEquivalency, extraDepth) {\n if (nullEquivalency === void 0) { nullEquivalency = true; }\n if (extraDepth === void 0) { extraDepth = 0; }\n if (areEqual(a, b, true))\n return true;\n if (a === null || a === VOID0 || b == null || b === VOID0) {\n if (!nullEquivalency)\n return false;\n if (Types_1.default.isObject(a)) {\n return !Object.keys(a).length;\n }\n if (Types_1.default.isObject(b)) {\n return !Object.keys(b).length;\n }\n return (a === null || a === VOID0) && (b == null || b === VOID0);\n }\n if (Types_1.default.isObject(a) && Types_1.default.isObject(b)) {\n var aKeys = Object.keys(a), bKeys = Object.keys(b), len = aKeys.length;\n if (len != bKeys.length)\n return false;\n aKeys.sort();\n bKeys.sort();\n for (var i = 0; i < len; i++) {\n var key = aKeys[i];\n if (key !== bKeys[i] || !areEqual(a[key], b[key], true))\n return false;\n }\n if (extraDepth > 0) {\n for (var _i = 0, aKeys_1 = aKeys; _i < aKeys_1.length; _i++) {\n var key = aKeys_1[_i];\n if (!areEquivalent(a[key], b[key], nullEquivalency, extraDepth - 1))\n return false;\n }\n }\n return true;\n }\n return false;\n }\n exports.areEquivalent = areEquivalent;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\nimport Type from \"./Types\";\r\nimport isTrueNaN = Type.isTrueNaN;\r\n\r\nconst VOID0:any = void 0;\r\n\r\n/**\r\n * Used for special comparison including NaN.\r\n * @param a\r\n * @param b\r\n * @param strict\r\n * @returns {boolean|any}\r\n */\r\nexport function areEqual(a:any, b:any, strict:boolean = true):boolean\r\n{\r\n\treturn a===b\r\n\t\t|| !strict && a==b\r\n\t\t|| isTrueNaN(a) && isTrueNaN(b);\r\n}\r\n\r\nconst COMPARE_TO = \"compareTo\";\r\n\r\n/**\r\n * Compares two comparable objects or primitives.\r\n * @param a\r\n * @param b\r\n */\r\nexport function compare(a:IComparable, b:IComparable):number;\r\nexport function compare(a:T, b:T, strict?:boolean):CompareResult;\r\nexport function compare(a:any, b:any, strict:boolean = true):CompareResult\r\n{\r\n\r\n\tif(areEqual(a, b, strict))\r\n\t\treturn CompareResult.Equal;\r\n\r\n\tif(a && Type.hasMember(a, COMPARE_TO))\r\n\t\treturn a.compareTo(b); // If a has compareTo, use it.\r\n\telse if(b && Type.hasMember(b, COMPARE_TO))\r\n\t\treturn -b.compareTo(a); // a doesn't have compareTo? check if b does and invert.\r\n\r\n\t// Allow for special inequality..\r\n\r\n\tif(a>b || strict && (a===0 && b==0 || a===null && b===VOID0))\r\n\t\treturn CompareResult.Greater;\r\n\r\n\tif(b>a || strict && (b===0 && a==0 || b===null && a===VOID0))\r\n\t\treturn CompareResult.Less;\r\n\r\n\treturn NaN;\r\n}\r\n\r\n/**\r\n * Determines if two primitives are equal or if two objects have the same key/value combinations.\r\n * @param a\r\n * @param b\r\n * @param nullEquivalency If true, null/undefined will be equivalent to an empty object {}.\r\n * @param extraDepth\r\n * @returns {boolean}\r\n */\r\nexport function areEquivalent(a:any, b:any, nullEquivalency:boolean = true, extraDepth:number = 0):boolean\r\n{\r\n\r\n\t// Take a step by step approach to ensure efficiency.\r\n\tif(areEqual(a, b, true)) return true;\r\n\r\n\tif(a===null || a===VOID0 || b==null || b===VOID0)\r\n\t{\r\n\t\tif(!nullEquivalency) return false;\r\n\r\n\t\tif(Type.isObject(a))\r\n\t\t{\r\n\t\t\treturn !Object.keys(a).length;\r\n\t\t}\r\n\r\n\t\tif(Type.isObject(b))\r\n\t\t{\r\n\t\t\treturn !Object.keys(b).length;\r\n\t\t}\r\n\r\n\t\treturn (a===null || a===VOID0) && (b==null || b===VOID0);\r\n\t}\r\n\r\n\tif(Type.isObject(a) && Type.isObject(b))\r\n\t{\r\n\r\n\t\tvar aKeys = Object.keys(a), bKeys = Object.keys(b), len = aKeys.length;\r\n\t\tif(len!=bKeys.length)\r\n\t\t\treturn false;\r\n\r\n\t\taKeys.sort();\r\n\t\tbKeys.sort();\r\n\r\n\t\tfor(let i = 0; i0) {\r\n\r\n\t\t\tfor(let key of aKeys) {\r\n\t\t\t\tif(!areEquivalent(a[key], b[key], nullEquivalency, extraDepth-1)) return false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t}\r\n\r\n\treturn false;\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Compare.js","System/Compare.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","areEqual","a","b","strict","isTrueNaN","compare","Types_1","Type","hasMember","COMPARE_TO","compareTo","VOID0","NaN","areEquivalent","nullEquivalency","extraDepth","isObject","Object","keys","length","aKeys","bKeys","len","sort","i","key","_i","aKeys_1"],"mappings":";;;;CAIA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,WAAYN,IAE/C,SAAUI,EAASF,GAClB,YCSJ,SAAAM,GAAyBC,EAAOC,EAAOC,GAEtC,MAFsC,UAAAA,IAAAA,GAAA,GAE/BF,IAAIC,IACNC,GAAUF,GAAGC,GACdE,EAAUH,IAAMG,EAAUF,GAY/B,QAAAG,GAAwBJ,EAAOC,EAAOC,GAGrC,MAHqC,UAAAA,IAAAA,GAAA,GAGlCH,EAASC,EAAGC,EAAGC,GACV,EAELF,GAAKK,EAAAC,KAAKC,UAAUP,EAAGQ,GAClBR,EAAES,UAAUR,GACZA,GAAKI,EAAAC,KAAKC,UAAUN,EAAGO,IACtBP,EAAEQ,UAAUT,GAIlBA,EAAEC,GAAKC,IAAe,IAAJF,GAAY,GAAHC,GAAY,OAAJD,GAAYC,IAAIS,GAC9C,EAELT,EAAED,GAAKE,IAAe,IAAJD,GAAY,GAAHD,GAAY,OAAJC,GAAYD,IAAIU,GAC9C,GAEDC,IAWR,QAAAC,GAA8BZ,EAAOC,EAAOY,EAAgCC,GAI3E,GAJ2C,SAAAD,IAAAA,GAAA,GAAgC,SAAAC,IAAAA,EAAA,GAIxEf,EAASC,EAAGC,GAAG,GAAO,OAAO,CAEhC,IAAO,OAAJD,GAAYA,IAAIU,GAAY,MAAHT,GAAWA,IAAIS,EAE1C,MAAIG,GAEDR,EAAAC,KAAKS,SAASf,IAERgB,OAAOC,KAAKjB,GAAGkB,OAGrBb,EAAAC,KAAKS,SAASd,IAERe,OAAOC,KAAKhB,GAAGiB,SAGZ,OAAJlB,GAAYA,IAAIU,GAAc,MAAHT,GAAWA,IAAIS,IAZtB,CAe7B,IAAGL,EAAAC,KAAKS,SAASf,IAAMK,EAAAC,KAAKS,SAASd,GACrC,CAEC,GAAIkB,GAAQH,OAAOC,KAAKjB,GAAIoB,EAAQJ,OAAOC,KAAKhB,GAAIoB,EAAMF,EAAMD,MAChE,IAAGG,GAAKD,EAAMF,OACb,OAAO,CAERC,GAAMG,OACNF,EAAME,MAEN,KAAI,GAAIC,GAAI,EAAKF,EAAFE,EAAOA,IACtB,CACC,GAAIC,GAAML,EAAMI,EAChB,IAAGC,IAAMJ,EAAMG,KAAOxB,EAASC,EAAEwB,GAAMvB,EAAEuB,IAAM,GAAO,OAAO,EAI9D,GAAGV,EAAW,EAEb,IAAe,GAAAW,GAAA,EAAAC,EAAAP,EAAAM,EAAAC,EAAAR,OAAAO,IAAM,CAAjB,GAAID,GAAGE,EAAAD,EACV,KAAIb,EAAcZ,EAAEwB,GAAMvB,EAAEuB,GAAMX,EAAiBC,EAAW,GAAI,OAAO,EAI3E,OAAO,EAGR,OAAO,EA/GR,GAAAT,GAAAV,EAAmB,WAEZQ,EAAYE,EAAAC,KAAKH,UAIlBO,EAAY,MASFjB,GAAAM,SAAQA,CAOxB,IAAMS,GAAa,WASHf,GAAAW,QAAOA,EA8BPX,EAAAmB,cAAaA","file":"System/Compare.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"./Types\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var Types_1 = require(\"./Types\");\n var isTrueNaN = Types_1.Type.isTrueNaN;\n var VOID0 = void 0;\n function areEqual(a, b, strict) {\n if (strict === void 0) { strict = true; }\n return a === b\n || !strict && a == b\n || isTrueNaN(a) && isTrueNaN(b);\n }\n exports.areEqual = areEqual;\n var COMPARE_TO = \"compareTo\";\n function compare(a, b, strict) {\n if (strict === void 0) { strict = true; }\n if (areEqual(a, b, strict))\n return 0;\n if (a && Types_1.Type.hasMember(a, COMPARE_TO))\n return a.compareTo(b);\n else if (b && Types_1.Type.hasMember(b, COMPARE_TO))\n return -b.compareTo(a);\n if (a > b || strict && (a === 0 && b == 0 || a === null && b === VOID0))\n return 1;\n if (b > a || strict && (b === 0 && a == 0 || b === null && a === VOID0))\n return -1;\n return NaN;\n }\n exports.compare = compare;\n function areEquivalent(a, b, nullEquivalency, extraDepth) {\n if (nullEquivalency === void 0) { nullEquivalency = true; }\n if (extraDepth === void 0) { extraDepth = 0; }\n if (areEqual(a, b, true))\n return true;\n if (a === null || a === VOID0 || b == null || b === VOID0) {\n if (!nullEquivalency)\n return false;\n if (Types_1.Type.isObject(a)) {\n return !Object.keys(a).length;\n }\n if (Types_1.Type.isObject(b)) {\n return !Object.keys(b).length;\n }\n return (a === null || a === VOID0) && (b == null || b === VOID0);\n }\n if (Types_1.Type.isObject(a) && Types_1.Type.isObject(b)) {\n var aKeys = Object.keys(a), bKeys = Object.keys(b), len = aKeys.length;\n if (len != bKeys.length)\n return false;\n aKeys.sort();\n bKeys.sort();\n for (var i = 0; i < len; i++) {\n var key = aKeys[i];\n if (key !== bKeys[i] || !areEqual(a[key], b[key], true))\n return false;\n }\n if (extraDepth > 0) {\n for (var _i = 0, aKeys_1 = aKeys; _i < aKeys_1.length; _i++) {\n var key = aKeys_1[_i];\n if (!areEquivalent(a[key], b[key], nullEquivalency, extraDepth - 1))\n return false;\n }\n }\n return true;\n }\n return false;\n }\n exports.areEquivalent = areEquivalent;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {Type} from \"./Types\";\r\nimport {Primitive} from \"./Primitive\";\r\nimport isTrueNaN = Type.isTrueNaN;\r\nimport {IComparable} from \"./IComparable\";\r\nimport {CompareResult} from \"./CompareResult\";\r\n\r\nconst VOID0:any = void 0;\r\n\r\n/**\r\n * Used for special comparison including NaN.\r\n * @param a\r\n * @param b\r\n * @param strict\r\n * @returns {boolean|any}\r\n */\r\nexport function areEqual(a:any, b:any, strict:boolean = true):boolean\r\n{\r\n\treturn a===b\r\n\t\t|| !strict && a==b\r\n\t\t|| isTrueNaN(a) && isTrueNaN(b);\r\n}\r\n\r\nconst COMPARE_TO = \"compareTo\";\r\n\r\n/**\r\n * Compares two comparable objects or primitives.\r\n * @param a\r\n * @param b\r\n */\r\nexport function compare(a:IComparable, b:IComparable):number;\r\nexport function compare(a:T, b:T, strict?:boolean):CompareResult;\r\nexport function compare(a:any, b:any, strict:boolean = true):CompareResult\r\n{\r\n\r\n\tif(areEqual(a, b, strict))\r\n\t\treturn CompareResult.Equal;\r\n\r\n\tif(a && Type.hasMember(a, COMPARE_TO))\r\n\t\treturn a.compareTo(b); // If a has compareTo, use it.\r\n\telse if(b && Type.hasMember(b, COMPARE_TO))\r\n\t\treturn -b.compareTo(a); // a doesn't have compareTo? check if b does and invert.\r\n\r\n\t// Allow for special inequality..\r\n\r\n\tif(a>b || strict && (a===0 && b==0 || a===null && b===VOID0))\r\n\t\treturn CompareResult.Greater;\r\n\r\n\tif(b>a || strict && (b===0 && a==0 || b===null && a===VOID0))\r\n\t\treturn CompareResult.Less;\r\n\r\n\treturn NaN;\r\n}\r\n\r\n/**\r\n * Determines if two primitives are equal or if two objects have the same key/value combinations.\r\n * @param a\r\n * @param b\r\n * @param nullEquivalency If true, null/undefined will be equivalent to an empty object {}.\r\n * @param extraDepth\r\n * @returns {boolean}\r\n */\r\nexport function areEquivalent(a:any, b:any, nullEquivalency:boolean = true, extraDepth:number = 0):boolean\r\n{\r\n\r\n\t// Take a step by step approach to ensure efficiency.\r\n\tif(areEqual(a, b, true)) return true;\r\n\r\n\tif(a===null || a===VOID0 || b==null || b===VOID0)\r\n\t{\r\n\t\tif(!nullEquivalency) return false;\r\n\r\n\t\tif(Type.isObject(a))\r\n\t\t{\r\n\t\t\treturn !Object.keys(a).length;\r\n\t\t}\r\n\r\n\t\tif(Type.isObject(b))\r\n\t\t{\r\n\t\t\treturn !Object.keys(b).length;\r\n\t\t}\r\n\r\n\t\treturn (a===null || a===VOID0) && (b==null || b===VOID0);\r\n\t}\r\n\r\n\tif(Type.isObject(a) && Type.isObject(b))\r\n\t{\r\n\r\n\t\tvar aKeys = Object.keys(a), bKeys = Object.keys(b), len = aKeys.length;\r\n\t\tif(len!=bKeys.length)\r\n\t\t\treturn false;\r\n\r\n\t\taKeys.sort();\r\n\t\tbKeys.sort();\r\n\r\n\t\tfor(let i = 0; i0) {\r\n\r\n\t\t\tfor(let key of aKeys) {\r\n\t\t\t\tif(!areEquivalent(a[key], b[key], nullEquivalency, extraDepth-1)) return false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t}\r\n\r\n\treturn false;\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Diagnostics/Stopwatch.d.ts b/dist/umd.min/System/Diagnostics/Stopwatch.d.ts index b0bd97a1..e352f2e4 100644 --- a/dist/umd.min/System/Diagnostics/Stopwatch.d.ts +++ b/dist/umd.min/System/Diagnostics/Stopwatch.d.ts @@ -1,9 +1,9 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import TimeSpan from "../Time/TimeSpan"; +import { TimeSpan } from "../Time/TimeSpan"; +import { ITimer } from "../Timers/ITimer"; export default class Stopwatch implements ITimer { static getTimestampMilliseconds(): number; private _elapsed; diff --git a/dist/umd.min/System/Diagnostics/Stopwatch.js b/dist/umd.min/System/Diagnostics/Stopwatch.js index 8bbd252c..c188b86f 100644 --- a/dist/umd.min/System/Diagnostics/Stopwatch.js +++ b/dist/umd.min/System/Diagnostics/Stopwatch.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../Time/TimeSpan"],e)}(function(e,t){"use strict";function n(){return(new Date).getTime()}var i=e("../Time/TimeSpan"),r=function(){function e(){this.reset()}return e.getTimestampMilliseconds=function(){return n()},Object.defineProperty(e.prototype,"isRunning",{get:function(){return this._isRunning},enumerable:!0,configurable:!0}),e.startNew=function(){var t=new e;return t.start(),t},e.measure=function(e){var t=n();return e(),new i["default"](n()-t)},e.prototype.start=function(){var e=this;e._isRunning||(e._startTimeStamp=n(),e._isRunning=!0)},e.prototype.stop=function(){var e=this;e._isRunning&&(e._elapsed+=e.currentLapMilliseconds,e._isRunning=!1)},e.prototype.reset=function(){var e=this;e._elapsed=0,e._isRunning=!1,e._startTimeStamp=NaN},e.prototype.lap=function(){var e=this;if(e._isRunning){var t=n(),r=e._startTimeStamp,u=t-r;return e._startTimeStamp=t,e._elapsed+=u,new i["default"](u)}return i["default"].zero},Object.defineProperty(e.prototype,"currentLapMilliseconds",{get:function(){return this._isRunning?n()-this._startTimeStamp:0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"currentLap",{get:function(){return this._isRunning?new i["default"](this.currentLapMilliseconds):i["default"].zero},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"elapsedMilliseconds",{get:function(){var e=this,t=e._elapsed;return e._isRunning&&(t+=e.currentLapMilliseconds),t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"elapsed",{get:function(){return new i["default"](this.elapsedMilliseconds)},enumerable:!0,configurable:!0}),e}();Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=r}); +!function(e){if("object"==typeof module&&"object"==typeof module.exports){var n=e(require,exports);void 0!==n&&(module.exports=n)}else"function"==typeof define&&define.amd&&define(["require","exports","../Time/TimeSpan"],e)}(function(e,n){"use strict";function t(){return(new Date).getTime()}var i=e("../Time/TimeSpan"),r=function(){function e(){this.reset()}return e.getTimestampMilliseconds=function(){return t()},Object.defineProperty(e.prototype,"isRunning",{get:function(){return this._isRunning},enumerable:!0,configurable:!0}),e.startNew=function(){var n=new e;return n.start(),n},e.measure=function(e){var n=t();return e(),new i.TimeSpan(t()-n)},e.prototype.start=function(){var e=this;e._isRunning||(e._startTimeStamp=t(),e._isRunning=!0)},e.prototype.stop=function(){var e=this;e._isRunning&&(e._elapsed+=e.currentLapMilliseconds,e._isRunning=!1)},e.prototype.reset=function(){var e=this;e._elapsed=0,e._isRunning=!1,e._startTimeStamp=NaN},e.prototype.lap=function(){var e=this;if(e._isRunning){var n=t(),r=e._startTimeStamp,o=n-r;return e._startTimeStamp=n,e._elapsed+=o,new i.TimeSpan(o)}return i.TimeSpan.zero},Object.defineProperty(e.prototype,"currentLapMilliseconds",{get:function(){return this._isRunning?t()-this._startTimeStamp:0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"currentLap",{get:function(){return this._isRunning?new i.TimeSpan(this.currentLapMilliseconds):i.TimeSpan.zero},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"elapsedMilliseconds",{get:function(){var e=this,n=e._elapsed;return e._isRunning&&(n+=e.currentLapMilliseconds),n},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"elapsed",{get:function(){return new i.TimeSpan(this.elapsedMilliseconds)},enumerable:!0,configurable:!0}),e}();Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r}); //# sourceMappingURL=Stopwatch.js.map diff --git a/dist/umd.min/System/Diagnostics/Stopwatch.js.map b/dist/umd.min/System/Diagnostics/Stopwatch.js.map index f43b4fd9..e855a6d9 100644 --- a/dist/umd.min/System/Diagnostics/Stopwatch.js.map +++ b/dist/umd.min/System/Diagnostics/Stopwatch.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Diagnostics/Stopwatch.js","System/Diagnostics/Stopwatch.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","getTimestampMilliseconds","Date","getTime","TimeSpan_1","Stopwatch","this","reset","Object","defineProperty","prototype","get","_isRunning","enumerable","configurable","startNew","s","start","measure","closure","_","_startTimeStamp","stop","_elapsed","currentLapMilliseconds","NaN","lap","t","e","zero","timeElapsed","elapsedMilliseconds","value"],"mappings":";;;;CAIA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,oBAAqBN,IAExD,SAAUI,EAASF,GCJtB,YAIA,SAAAM,KAEC,OAAO,GAAKC,OAAQC,UAJrB,GAAAC,GAAAP,EAAqB,oBAOrBQ,EAAA,WAkBC,QAAAA,KAECC,KAAKC,QA0FP,MA1GQF,GAAAJ,yBAAP,WAEC,MAAOA,MAORO,OAAAC,eAAIJ,EAAAK,UAAA,aDJOC,ICIX,WAEC,MAAOL,MAAKM,YDHFC,YAAY,EACZC,cAAc,ICUlBT,EAAAU,SAAP,WAEC,GAAIC,GAAI,GAAIX,EAEZ,OADAW,GAAEC,QACKD,GAGDX,EAAAa,QAAP,SAAeC,GAEd,GAAIF,GAAQhB,GAEZ,OADAkB,KACO,GAAIf,GAAAA,WAASH,IAA6BgB,IAGlDZ,EAAAK,UAAAO,MAAA,WAEC,GAAIG,GAAId,IACJc,GAAER,aACLQ,EAAEC,gBAAkBpB,IACpBmB,EAAER,YAAa,IAIjBP,EAAAK,UAAAY,KAAA,WAEC,GAAIF,GAAId,IACLc,GAAER,aACJQ,EAAEG,UAAYH,EAAEI,uBAChBJ,EAAER,YAAa,IAIjBP,EAAAK,UAAAH,MAAA,WAEC,GAAIa,GAAId,IACRc,GAAEG,SAAW,EACbH,EAAER,YAAa,EACfQ,EAAEC,gBAAkBI,KAKrBpB,EAAAK,UAAAgB,IAAA,WAEC,GAAIN,GAAId,IACR,IAAGc,EAAER,WAAY,CAChB,GAAIe,GAAI1B,IACJe,EAAII,EAAEC,gBACNO,EAAID,EAAIX,CAGZ,OAFAI,GAAEC,gBAAkBM,EACpBP,EAAEG,UAAYK,EACP,GAAIxB,GAAAA,WAASwB,GAGpB,MAAOxB,GAAAA,WAASyB,MAGlBrB,OAAAC,eAAIJ,EAAAK,UAAA,0BDrBOC,ICqBX,WAEC,MAAOL,MAAKM,WACRX,IAA6BK,KAAKe,gBACnC,GDpBOR,YAAY,EACZC,cAAc,ICsBzBN,OAAAC,eAAIJ,EAAAK,UAAA,cDnBOC,ICmBX,WAEC,MAAOL,MAAKM,WACT,GAAIR,GAAAA,WAASE,KAAKkB,wBAClBpB,EAAAA,WAASyB,MDlBFhB,YAAY,EACZC,cAAc,ICoBzBN,OAAAC,eAAIJ,EAAAK,UAAA,uBDjBOC,ICiBX,WAEC,GAAIS,GAAId,KACJwB,EAAcV,EAAEG,QAKpB,OAHGH,GAAER,aACJkB,GAAeV,EAAEI,wBAEXM,GDlBGjB,YAAY,EACZC,cAAc,ICoBzBN,OAAAC,eAAIJ,EAAAK,UAAA,WDjBOC,ICiBX,WAEC,MAAO,IAAIP,GAAAA,WAASE,KAAKyB,sBDhBflB,YAAY,EACZC,cAAc,ICkB1BT,IA9GAG,QAAAC,eAAAd,EAAA,cAAAqC,OAAA,IDiGIrC,EAAAA,WAAkBU","file":"System/Diagnostics/Stopwatch.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../Time/TimeSpan\"], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var TimeSpan_1 = require(\"../Time/TimeSpan\");\n function getTimestampMilliseconds() {\n return (new Date()).getTime();\n }\n var Stopwatch = (function () {\n function Stopwatch() {\n this.reset();\n }\n Stopwatch.getTimestampMilliseconds = function () {\n return getTimestampMilliseconds();\n };\n Object.defineProperty(Stopwatch.prototype, \"isRunning\", {\n get: function () {\n return this._isRunning;\n },\n enumerable: true,\n configurable: true\n });\n Stopwatch.startNew = function () {\n var s = new Stopwatch();\n s.start();\n return s;\n };\n Stopwatch.measure = function (closure) {\n var start = getTimestampMilliseconds();\n closure();\n return new TimeSpan_1.default(getTimestampMilliseconds() - start);\n };\n Stopwatch.prototype.start = function () {\n var _ = this;\n if (!_._isRunning) {\n _._startTimeStamp = getTimestampMilliseconds();\n _._isRunning = true;\n }\n };\n Stopwatch.prototype.stop = function () {\n var _ = this;\n if (_._isRunning) {\n _._elapsed += _.currentLapMilliseconds;\n _._isRunning = false;\n }\n };\n Stopwatch.prototype.reset = function () {\n var _ = this;\n _._elapsed = 0;\n _._isRunning = false;\n _._startTimeStamp = NaN;\n };\n Stopwatch.prototype.lap = function () {\n var _ = this;\n if (_._isRunning) {\n var t = getTimestampMilliseconds();\n var s = _._startTimeStamp;\n var e = t - s;\n _._startTimeStamp = t;\n _._elapsed += e;\n return new TimeSpan_1.default(e);\n }\n else\n return TimeSpan_1.default.zero;\n };\n Object.defineProperty(Stopwatch.prototype, \"currentLapMilliseconds\", {\n get: function () {\n return this._isRunning\n ? (getTimestampMilliseconds() - this._startTimeStamp)\n : 0;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Stopwatch.prototype, \"currentLap\", {\n get: function () {\n return this._isRunning\n ? new TimeSpan_1.default(this.currentLapMilliseconds)\n : TimeSpan_1.default.zero;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Stopwatch.prototype, \"elapsedMilliseconds\", {\n get: function () {\n var _ = this;\n var timeElapsed = _._elapsed;\n if (_._isRunning)\n timeElapsed += _.currentLapMilliseconds;\n return timeElapsed;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Stopwatch.prototype, \"elapsed\", {\n get: function () {\n return new TimeSpan_1.default(this.elapsedMilliseconds);\n },\n enumerable: true,\n configurable: true\n });\n return Stopwatch;\n }());\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Stopwatch;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport TimeSpan from \"../Time/TimeSpan\";\r\n\r\nfunction getTimestampMilliseconds():number\r\n{\r\n\treturn (new Date()).getTime();\r\n}\r\n\r\nexport default\r\nclass Stopwatch implements ITimer\r\n{\r\n\r\n\tstatic getTimestampMilliseconds():number\r\n\t{\r\n\t\treturn getTimestampMilliseconds();\r\n\t}\r\n\r\n\tprivate _elapsed:number;\r\n\tprivate _startTimeStamp:number;\r\n\r\n\tprivate _isRunning:boolean;\r\n\tget isRunning():boolean\r\n\t{\r\n\t\treturn this._isRunning;\r\n\t}\r\n\r\n\tconstructor()\r\n\t{\r\n\t\tthis.reset();\r\n\t}\r\n\r\n\tstatic startNew():Stopwatch\r\n\t{\r\n\t\tvar s = new Stopwatch();\r\n\t\ts.start();\r\n\t\treturn s;\r\n\t}\r\n\r\n\tstatic measure(closure:()=>void):TimeSpan\r\n\t{\r\n\t\tvar start = getTimestampMilliseconds();\r\n\t\tclosure();\r\n\t\treturn new TimeSpan(getTimestampMilliseconds() - start);\r\n\t}\r\n\t\r\n\tstart():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(!_._isRunning) {\r\n\t\t\t_._startTimeStamp = getTimestampMilliseconds();\r\n\t\t\t_._isRunning = true;\r\n\t\t}\r\n\t}\r\n\r\n\tstop():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(_._isRunning) {\r\n\t\t\t_._elapsed += _.currentLapMilliseconds;\r\n\t\t\t_._isRunning = false;\r\n\t\t}\r\n\t}\r\n\r\n\treset():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_._elapsed = 0;\r\n\t\t_._isRunning = false;\r\n\t\t_._startTimeStamp = NaN;\r\n\t}\r\n\r\n\t// Effectively calls a stop start and continues timing...\r\n\t// Can also be called to effectively start a lap before calling it again to get the elapsed lap time.\r\n\tlap():TimeSpan\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(_._isRunning) {\r\n\t\t\tvar t = getTimestampMilliseconds();\r\n\t\t\tvar s = _._startTimeStamp;\r\n\t\t\tvar e = t - s;\r\n\t\t\t_._startTimeStamp = t;\r\n\t\t\t_._elapsed += e;\r\n\t\t\treturn new TimeSpan(e);\r\n\t\t}\r\n\t\telse\r\n\t\t\treturn TimeSpan.zero;\r\n\t}\r\n\r\n\tget currentLapMilliseconds():number\r\n\t{\r\n\t\treturn this._isRunning\r\n\t\t\t? (getTimestampMilliseconds() - this._startTimeStamp)\r\n\t\t\t: 0;\r\n\t}\r\n\r\n\tget currentLap():TimeSpan\r\n\t{\r\n\t\treturn this._isRunning\r\n\t\t\t? new TimeSpan(this.currentLapMilliseconds)\r\n\t\t\t: TimeSpan.zero;\r\n\t}\r\n\r\n\tget elapsedMilliseconds():number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar timeElapsed = _._elapsed;\r\n\r\n\t\tif(_._isRunning)\r\n\t\t\ttimeElapsed += _.currentLapMilliseconds;\r\n\r\n\t\treturn timeElapsed;\r\n\t}\r\n\r\n\tget elapsed():TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(this.elapsedMilliseconds);\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Diagnostics/Stopwatch.js","System/Diagnostics/Stopwatch.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","getTimestampMilliseconds","Date","getTime","TimeSpan_1","Stopwatch","this","reset","Object","defineProperty","prototype","get","_isRunning","enumerable","configurable","startNew","s","start","measure","closure","TimeSpan","_","_startTimeStamp","stop","_elapsed","currentLapMilliseconds","NaN","lap","t","e","zero","timeElapsed","elapsedMilliseconds","value"],"mappings":";;;;CAIA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,oBAAqBN,IAExD,SAAUI,EAASF,GAClB,YCHJ,SAAAM,KAEC,OAAO,GAAKC,OAAQC,UALrB,GAAAC,GAAAP,EAAuB,oBAQvBQ,EAAA,WAkBC,QAAAA,KAECC,KAAKC,QA6FP,MA7GQF,GAAAJ,yBAAP,WAEC,MAAOA,MAORO,OAAAC,eAAIJ,EAAAK,UAAA,aDFOC,ICEX,WAEC,MAAOL,MAAKM,YDDFC,YAAY,EACZC,cAAc,ICQlBT,EAAAU,SAAP,WAEC,GAAIC,GAAI,GAAIX,EAEZ,OADAW,GAAEC,QACKD,GAGDX,EAAAa,QAAP,SAAeC,GAEd,GAAIF,GAAQhB,GAEZ,OADAkB,KACO,GAAIf,GAAAgB,SAASnB,IAA6BgB,IAGlDZ,EAAAK,UAAAO,MAAA,WAEC,GAAII,GAAIf,IACJe,GAAET,aAELS,EAAEC,gBAAkBrB,IACpBoB,EAAET,YAAa,IAIjBP,EAAAK,UAAAa,KAAA,WAEC,GAAIF,GAAIf,IACLe,GAAET,aAEJS,EAAEG,UAAYH,EAAEI,uBAChBJ,EAAET,YAAa,IAIjBP,EAAAK,UAAAH,MAAA,WAEC,GAAIc,GAAIf,IACRe,GAAEG,SAAW,EACbH,EAAET,YAAa,EACfS,EAAEC,gBAAkBI,KAKrBrB,EAAAK,UAAAiB,IAAA,WAEC,GAAIN,GAAIf,IACR,IAAGe,EAAET,WACL,CACC,GAAIgB,GAAI3B,IACJe,EAAIK,EAAEC,gBACNO,EAAID,EAAIZ,CAGZ,OAFAK,GAAEC,gBAAkBM,EACpBP,EAAEG,UAAYK,EACP,GAAIzB,GAAAgB,SAASS,GAGpB,MAAOzB,GAAAgB,SAASU,MAGlBtB,OAAAC,eAAIJ,EAAAK,UAAA,0BDtBOC,ICsBX,WAEC,MAAOL,MAAKM,WACRX,IAA6BK,KAAKgB,gBACnC,GDrBOT,YAAY,EACZC,cAAc,ICuBzBN,OAAAC,eAAIJ,EAAAK,UAAA,cDpBOC,ICoBX,WAEC,MAAOL,MAAKM,WACT,GAAIR,GAAAgB,SAASd,KAAKmB,wBAClBrB,EAAAgB,SAASU,MDnBFjB,YAAY,EACZC,cAAc,ICqBzBN,OAAAC,eAAIJ,EAAAK,UAAA,uBDlBOC,ICkBX,WAEC,GAAIU,GAAIf,KACJyB,EAAcV,EAAEG,QAKpB,OAHGH,GAAET,aACJmB,GAAeV,EAAEI,wBAEXM,GDnBGlB,YAAY,EACZC,cAAc,ICqBzBN,OAAAC,eAAIJ,EAAAK,UAAA,WDlBOC,ICkBX,WAEC,MAAO,IAAIP,GAAAgB,SAASd,KAAK0B,sBDjBfnB,YAAY,EACZC,cAAc,ICmB1BT,IAjHAG,QAAAC,eAAAd,EAAA,cAAAsC,OAAA,IDmGItC,EAAAA,WAAkBU","file":"System/Diagnostics/Stopwatch.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../Time/TimeSpan\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var TimeSpan_1 = require(\"../Time/TimeSpan\");\n function getTimestampMilliseconds() {\n return (new Date()).getTime();\n }\n var Stopwatch = (function () {\n function Stopwatch() {\n this.reset();\n }\n Stopwatch.getTimestampMilliseconds = function () {\n return getTimestampMilliseconds();\n };\n Object.defineProperty(Stopwatch.prototype, \"isRunning\", {\n get: function () {\n return this._isRunning;\n },\n enumerable: true,\n configurable: true\n });\n Stopwatch.startNew = function () {\n var s = new Stopwatch();\n s.start();\n return s;\n };\n Stopwatch.measure = function (closure) {\n var start = getTimestampMilliseconds();\n closure();\n return new TimeSpan_1.TimeSpan(getTimestampMilliseconds() - start);\n };\n Stopwatch.prototype.start = function () {\n var _ = this;\n if (!_._isRunning) {\n _._startTimeStamp = getTimestampMilliseconds();\n _._isRunning = true;\n }\n };\n Stopwatch.prototype.stop = function () {\n var _ = this;\n if (_._isRunning) {\n _._elapsed += _.currentLapMilliseconds;\n _._isRunning = false;\n }\n };\n Stopwatch.prototype.reset = function () {\n var _ = this;\n _._elapsed = 0;\n _._isRunning = false;\n _._startTimeStamp = NaN;\n };\n Stopwatch.prototype.lap = function () {\n var _ = this;\n if (_._isRunning) {\n var t = getTimestampMilliseconds();\n var s = _._startTimeStamp;\n var e = t - s;\n _._startTimeStamp = t;\n _._elapsed += e;\n return new TimeSpan_1.TimeSpan(e);\n }\n else\n return TimeSpan_1.TimeSpan.zero;\n };\n Object.defineProperty(Stopwatch.prototype, \"currentLapMilliseconds\", {\n get: function () {\n return this._isRunning\n ? (getTimestampMilliseconds() - this._startTimeStamp)\n : 0;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Stopwatch.prototype, \"currentLap\", {\n get: function () {\n return this._isRunning\n ? new TimeSpan_1.TimeSpan(this.currentLapMilliseconds)\n : TimeSpan_1.TimeSpan.zero;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Stopwatch.prototype, \"elapsedMilliseconds\", {\n get: function () {\n var _ = this;\n var timeElapsed = _._elapsed;\n if (_._isRunning)\n timeElapsed += _.currentLapMilliseconds;\n return timeElapsed;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Stopwatch.prototype, \"elapsed\", {\n get: function () {\n return new TimeSpan_1.TimeSpan(this.elapsedMilliseconds);\n },\n enumerable: true,\n configurable: true\n });\n return Stopwatch;\n }());\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Stopwatch;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {TimeSpan} from \"../Time/TimeSpan\";\r\nimport {ITimer} from \"../Timers/ITimer\";\r\n\r\nfunction getTimestampMilliseconds():number\r\n{\r\n\treturn (new Date()).getTime();\r\n}\r\n\r\nexport default\r\nclass Stopwatch implements ITimer\r\n{\r\n\r\n\tstatic getTimestampMilliseconds():number\r\n\t{\r\n\t\treturn getTimestampMilliseconds();\r\n\t}\r\n\r\n\tprivate _elapsed:number;\r\n\tprivate _startTimeStamp:number;\r\n\r\n\tprivate _isRunning:boolean;\r\n\tget isRunning():boolean\r\n\t{\r\n\t\treturn this._isRunning;\r\n\t}\r\n\r\n\tconstructor()\r\n\t{\r\n\t\tthis.reset();\r\n\t}\r\n\r\n\tstatic startNew():Stopwatch\r\n\t{\r\n\t\tvar s = new Stopwatch();\r\n\t\ts.start();\r\n\t\treturn s;\r\n\t}\r\n\r\n\tstatic measure(closure:()=>void):TimeSpan\r\n\t{\r\n\t\tvar start = getTimestampMilliseconds();\r\n\t\tclosure();\r\n\t\treturn new TimeSpan(getTimestampMilliseconds() - start);\r\n\t}\r\n\r\n\tstart():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(!_._isRunning)\r\n\t\t{\r\n\t\t\t_._startTimeStamp = getTimestampMilliseconds();\r\n\t\t\t_._isRunning = true;\r\n\t\t}\r\n\t}\r\n\r\n\tstop():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(_._isRunning)\r\n\t\t{\r\n\t\t\t_._elapsed += _.currentLapMilliseconds;\r\n\t\t\t_._isRunning = false;\r\n\t\t}\r\n\t}\r\n\r\n\treset():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_._elapsed = 0;\r\n\t\t_._isRunning = false;\r\n\t\t_._startTimeStamp = NaN;\r\n\t}\r\n\r\n\t// Effectively calls a stop start and continues timing...\r\n\t// Can also be called to effectively start a lap before calling it again to get the elapsed lap time.\r\n\tlap():TimeSpan\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(_._isRunning)\r\n\t\t{\r\n\t\t\tvar t = getTimestampMilliseconds();\r\n\t\t\tvar s = _._startTimeStamp;\r\n\t\t\tvar e = t - s;\r\n\t\t\t_._startTimeStamp = t;\r\n\t\t\t_._elapsed += e;\r\n\t\t\treturn new TimeSpan(e);\r\n\t\t}\r\n\t\telse\r\n\t\t\treturn TimeSpan.zero;\r\n\t}\r\n\r\n\tget currentLapMilliseconds():number\r\n\t{\r\n\t\treturn this._isRunning\r\n\t\t\t? (getTimestampMilliseconds() - this._startTimeStamp)\r\n\t\t\t: 0;\r\n\t}\r\n\r\n\tget currentLap():TimeSpan\r\n\t{\r\n\t\treturn this._isRunning\r\n\t\t\t? new TimeSpan(this.currentLapMilliseconds)\r\n\t\t\t: TimeSpan.zero;\r\n\t}\r\n\r\n\tget elapsedMilliseconds():number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar timeElapsed = _._elapsed;\r\n\r\n\t\tif(_._isRunning)\r\n\t\t\ttimeElapsed += _.currentLapMilliseconds;\r\n\r\n\t\treturn timeElapsed;\r\n\t}\r\n\r\n\tget elapsed():TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(this.elapsedMilliseconds);\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Disposable/DisposableBase.d.ts b/dist/umd.min/System/Disposable/DisposableBase.d.ts index 1acd883f..509f3cf0 100644 --- a/dist/umd.min/System/Disposable/DisposableBase.d.ts +++ b/dist/umd.min/System/Disposable/DisposableBase.d.ts @@ -1,9 +1,9 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -declare abstract class DisposableBase implements IDisposableAware { +import { IDisposableAware } from "./IDisposableAware"; +export declare abstract class DisposableBase implements IDisposableAware { private _finalizer; constructor(_finalizer?: () => void); private _wasDisposed; diff --git a/dist/umd.min/System/Disposable/DisposableBase.js b/dist/umd.min/System/Disposable/DisposableBase.js index 387effbb..f879047c 100644 --- a/dist/umd.min/System/Disposable/DisposableBase.js +++ b/dist/umd.min/System/Disposable/DisposableBase.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -!function(e){if("object"==typeof module&&"object"==typeof module.exports){var o=e(require,exports);void 0!==o&&(module.exports=o)}else"function"==typeof define&&define.amd&&define(["require","exports","./ObjectDisposedException"],e)}(function(e,o){"use strict";var t=e("./ObjectDisposedException"),i=function(){function e(e){this._finalizer=e,this._wasDisposed=!1}return Object.defineProperty(e.prototype,"wasDisposed",{get:function(){return this._wasDisposed},enumerable:!0,configurable:!0}),e.prototype.throwIfDisposed=function(e,o){if(void 0===o&&(o=this._disposableObjectName),this._wasDisposed)throw new t["default"](o,e);return!0},e.prototype.dispose=function(){var e=this;if(!e._wasDisposed){e._wasDisposed=!0;try{e._onDispose()}finally{e._finalizer&&e._finalizer()}}},e.prototype._onDispose=function(){},e}();Object.defineProperty(o,"__esModule",{value:!0}),o["default"]=i}); +!function(e){if("object"==typeof module&&"object"==typeof module.exports){var o=e(require,exports);void 0!==o&&(module.exports=o)}else"function"==typeof define&&define.amd&&define(["require","exports","./ObjectDisposedException"],e)}(function(e,o){"use strict";var i=e("./ObjectDisposedException"),t=function(){function e(e){this._finalizer=e,this._wasDisposed=!1}return Object.defineProperty(e.prototype,"wasDisposed",{get:function(){return this._wasDisposed},enumerable:!0,configurable:!0}),e.prototype.throwIfDisposed=function(e,o){if(void 0===o&&(o=this._disposableObjectName),this._wasDisposed)throw new i.ObjectDisposedException(o,e);return!0},e.prototype.dispose=function(){var e=this;if(!e._wasDisposed){e._wasDisposed=!0;try{e._onDispose()}finally{e._finalizer&&e._finalizer()}}},e.prototype._onDispose=function(){},e}();o.DisposableBase=t,Object.defineProperty(o,"__esModule",{value:!0}),o["default"]=t}); //# sourceMappingURL=DisposableBase.js.map diff --git a/dist/umd.min/System/Disposable/DisposableBase.js.map b/dist/umd.min/System/Disposable/DisposableBase.js.map index 22d3c5a2..fc995d60 100644 --- a/dist/umd.min/System/Disposable/DisposableBase.js.map +++ b/dist/umd.min/System/Disposable/DisposableBase.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Disposable/DisposableBase.js","System/Disposable/DisposableBase.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","ObjectDisposedException_1","DisposableBase","_finalizer","this","_wasDisposed","Object","defineProperty","prototype","get","enumerable","configurable","throwIfDisposed","message","objectName","_disposableObjectName","dispose","_","_onDispose","value"],"mappings":";;;;CAIA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,6BAA8BN,IAEjE,SAAUI,EAASF,GCLtB,YAEA,IAAAM,GAAAJ,EAAoC,6BAEpCK,EAAA,WAGC,QAAAA,GAAoBC,GAAAC,KAAAD,WAAAA,EAIZC,KAAAC,cAAuB,EA0ChC,MAzCCC,QAAAC,eAAIL,EAAAM,UAAA,eDEOC,ICFX,WAEC,MAAOL,MAAKC,cDGFK,YAAY,EACZC,cAAc,ICEfT,EAAAM,UAAAI,gBAAV,SACCC,EACAC,GAEA,GAFA,SAAAA,IAAAA,EAAoBV,KAAKW,uBAEtBX,KAAKC,aACP,KAAM,IAAIJ,GAAAA,WAAwBa,EAAYD,EAC/C,QAAO,GAIRX,EAAAM,UAAAQ,QAAA,WAEC,GAAIC,GAAIb,IACR,KAAIa,EAAEZ,aACN,CAGCY,EAAEZ,cAAe,CACjB,KAECY,EAAEC,aDPU,QCWTD,EAAEd,YACJc,EAAEd,gBAMID,EAAAM,UAAAU,WAAV,aAEDhB,IAEAI,QAAAC,eAAAZ,EAAA,cAAAwB,OAAA,IDZIxB,EAAAA,WCYWO","file":"System/Disposable/DisposableBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", './ObjectDisposedException'], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var ObjectDisposedException_1 = require('./ObjectDisposedException');\n var DisposableBase = (function () {\n function DisposableBase(_finalizer) {\n this._finalizer = _finalizer;\n this._wasDisposed = false;\n }\n Object.defineProperty(DisposableBase.prototype, \"wasDisposed\", {\n get: function () {\n return this._wasDisposed;\n },\n enumerable: true,\n configurable: true\n });\n DisposableBase.prototype.throwIfDisposed = function (message, objectName) {\n if (objectName === void 0) { objectName = this._disposableObjectName; }\n if (this._wasDisposed)\n throw new ObjectDisposedException_1.default(objectName, message);\n return true;\n };\n DisposableBase.prototype.dispose = function () {\n var _ = this;\n if (!_._wasDisposed) {\n _._wasDisposed = true;\n try {\n _._onDispose();\n }\n finally {\n if (_._finalizer)\n _._finalizer();\n }\n }\n };\n DisposableBase.prototype._onDispose = function () { };\n return DisposableBase;\n }());\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = DisposableBase;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport ObjectDisposedException from './ObjectDisposedException';\r\n\r\nabstract class DisposableBase implements IDisposableAware\r\n{\r\n\r\n\tconstructor(private _finalizer?:() => void)\r\n\t{\r\n\t}\r\n\r\n\tprivate _wasDisposed:boolean = false;\r\n\tget wasDisposed():boolean\r\n\t{\r\n\t\treturn this._wasDisposed;\r\n\t}\r\n\r\n\t// Allow for simple override of name.\r\n\tprotected _disposableObjectName:string;\r\n\r\n\tprotected throwIfDisposed(\r\n\t\tmessage?:string,\r\n\t\tobjectName:string = this._disposableObjectName):boolean\r\n\t{\r\n\t\tif(this._wasDisposed)\r\n\t\t\tthrow new ObjectDisposedException(objectName, message);\r\n\t\treturn true;\r\n\t}\r\n\r\n\r\n\tdispose():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(!_._wasDisposed)\r\n\t\t{\r\n\t\t\t// Preemptively set wasDisposed in order to prevent repeated disposing.\r\n\t\t\t// NOTE: in true multi-threaded scenarios, this needs to be synchronized.\r\n\t\t\t_._wasDisposed = true;\r\n\t\t\ttry\r\n\t\t\t{\r\n\t\t\t\t_._onDispose(); // Protected override.\r\n\t\t\t}\r\n\t\t\tfinally\r\n\t\t\t{\r\n\t\t\t\tif(_._finalizer) // Private finalizer...\r\n\t\t\t\t\t_._finalizer();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Placeholder for overrides.\r\n\tprotected _onDispose():void { }\r\n\r\n}\r\n\r\nexport default DisposableBase;"]} \ No newline at end of file +{"version":3,"sources":["System/Disposable/DisposableBase.js","System/Disposable/DisposableBase.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","ObjectDisposedException_1","DisposableBase","_finalizer","this","_wasDisposed","Object","defineProperty","prototype","get","enumerable","configurable","throwIfDisposed","message","objectName","_disposableObjectName","ObjectDisposedException","dispose","_","_onDispose","value"],"mappings":";;;;CAIA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,6BAA8BN,IAEjE,SAAUI,EAASF,GAClB,YCPJ,IAAAM,GAAAJ,EAAsC,6BAGtCK,EAAA,WAGC,QAAAA,GAAoBC,GAAAC,KAAAD,WAAAA,EAIZC,KAAAC,cAAuB,EA0ChC,MAzCCC,QAAAC,eAAIL,EAAAM,UAAA,eDIOC,ICJX,WAEC,MAAOL,MAAKC,cDKFK,YAAY,EACZC,cAAc,ICAfT,EAAAM,UAAAI,gBAAV,SACCC,EACAC,GAEA,GAFA,SAAAA,IAAAA,EAAoBV,KAAKW,uBAEtBX,KAAKC,aACP,KAAM,IAAIJ,GAAAe,wBAAwBF,EAAYD,EAC/C,QAAO,GAIRX,EAAAM,UAAAS,QAAA,WAEC,GAAIC,GAAId,IACR,KAAIc,EAAEb,aACN,CAGCa,EAAEb,cAAe,CACjB,KAECa,EAAEC,aDLU,QCSTD,EAAEf,YACJe,EAAEf,gBAMID,EAAAM,UAAAW,WAAV,aAEDjB,IAjDsBP,GAAAO,eAAcA,EAmDpCI,OAAAC,eAAAZ,EAAA,cAAAyB,OAAA,IDTIzB,EAAAA,WCSWO","file":"System/Disposable/DisposableBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"./ObjectDisposedException\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var ObjectDisposedException_1 = require(\"./ObjectDisposedException\");\n var DisposableBase = (function () {\n function DisposableBase(_finalizer) {\n this._finalizer = _finalizer;\n this._wasDisposed = false;\n }\n Object.defineProperty(DisposableBase.prototype, \"wasDisposed\", {\n get: function () {\n return this._wasDisposed;\n },\n enumerable: true,\n configurable: true\n });\n DisposableBase.prototype.throwIfDisposed = function (message, objectName) {\n if (objectName === void 0) { objectName = this._disposableObjectName; }\n if (this._wasDisposed)\n throw new ObjectDisposedException_1.ObjectDisposedException(objectName, message);\n return true;\n };\n DisposableBase.prototype.dispose = function () {\n var _ = this;\n if (!_._wasDisposed) {\n _._wasDisposed = true;\n try {\n _._onDispose();\n }\n finally {\n if (_._finalizer)\n _._finalizer();\n }\n }\n };\n DisposableBase.prototype._onDispose = function () { };\n return DisposableBase;\n }());\n exports.DisposableBase = DisposableBase;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = DisposableBase;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {ObjectDisposedException} from \"./ObjectDisposedException\";\r\nimport {IDisposableAware} from \"./IDisposableAware\";\r\n\r\nexport abstract class DisposableBase implements IDisposableAware\r\n{\r\n\r\n\tconstructor(private _finalizer?:() => void)\r\n\t{\r\n\t}\r\n\r\n\tprivate _wasDisposed:boolean = false;\r\n\tget wasDisposed():boolean\r\n\t{\r\n\t\treturn this._wasDisposed;\r\n\t}\r\n\r\n\t// Allow for simple override of name.\r\n\tprotected _disposableObjectName:string;\r\n\r\n\tprotected throwIfDisposed(\r\n\t\tmessage?:string,\r\n\t\tobjectName:string = this._disposableObjectName):boolean\r\n\t{\r\n\t\tif(this._wasDisposed)\r\n\t\t\tthrow new ObjectDisposedException(objectName, message);\r\n\t\treturn true;\r\n\t}\r\n\r\n\r\n\tdispose():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(!_._wasDisposed)\r\n\t\t{\r\n\t\t\t// Preemptively set wasDisposed in order to prevent repeated disposing.\r\n\t\t\t// NOTE: in true multi-threaded scenarios, this needs to be synchronized.\r\n\t\t\t_._wasDisposed = true;\r\n\t\t\ttry\r\n\t\t\t{\r\n\t\t\t\t_._onDispose(); // Protected override.\r\n\t\t\t}\r\n\t\t\tfinally\r\n\t\t\t{\r\n\t\t\t\tif(_._finalizer) // Private finalizer...\r\n\t\t\t\t\t_._finalizer();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Placeholder for overrides.\r\n\tprotected _onDispose():void { }\r\n\r\n}\r\n\r\nexport default DisposableBase;"]} \ No newline at end of file diff --git a/dist/umd.min/System/Disposable/ObjectDisposedException.d.ts b/dist/umd.min/System/Disposable/ObjectDisposedException.d.ts index 66e40831..8af0e485 100644 --- a/dist/umd.min/System/Disposable/ObjectDisposedException.d.ts +++ b/dist/umd.min/System/Disposable/ObjectDisposedException.d.ts @@ -1,15 +1,16 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -import Exception from '../Exception'; -import InvalidOperationException from '../Exceptions/InvalidOperationException'; -export default class ObjectDisposedException extends InvalidOperationException { +import { Exception } from "../Exception"; +import { InvalidOperationException } from "../Exceptions/InvalidOperationException"; +import { IDisposableAware } from "./IDisposableAware"; +export declare class ObjectDisposedException extends InvalidOperationException { objectName: string; constructor(objectName: string, message?: string, innerException?: Exception); protected getName(): string; toString(): string; static throwIfDisposed(disposable: IDisposableAware, objectName?: string, message?: string): void; } +export default ObjectDisposedException; diff --git a/dist/umd.min/System/Disposable/ObjectDisposedException.js b/dist/umd.min/System/Disposable/ObjectDisposedException.js index 5bc250e4..0f189239 100644 --- a/dist/umd.min/System/Disposable/ObjectDisposedException.js +++ b/dist/umd.min/System/Disposable/ObjectDisposedException.js @@ -3,5 +3,5 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -var __extends=this&&this.__extends||function(e,t){function o(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../Exceptions/InvalidOperationException"],e)}(function(e,t){"use strict";var o=e("../Exceptions/InvalidOperationException"),n="ObjectDisposedException",i=function(e){function t(t,o,n){void 0===o&&(o=null),void 0===n&&(n=null),e.call(this,o,n,function(e){e.objectName=t})}return __extends(t,e),t.prototype.getName=function(){return n},t.prototype.toString=function(){var e=this,t=e.objectName;return t=t?"{"+t+"} ":"","["+e.name+": "+t+e.message+"]"},t.throwIfDisposed=function(e,o,n){if(e.wasDisposed)throw new t(o,n)},t}(o["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=i}); +var __extends=this&&this.__extends||function(e,t){function o(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../Exceptions/InvalidOperationException"],e)}(function(e,t){"use strict";var o=e("../Exceptions/InvalidOperationException"),n="ObjectDisposedException",i=function(e){function t(t,o,n){void 0===o&&(o=null),void 0===n&&(n=null),e.call(this,o,n,function(e){e.objectName=t})}return __extends(t,e),t.prototype.getName=function(){return n},t.prototype.toString=function(){var e=this,t=e.objectName;return t=t?"{"+t+"} ":"","["+e.name+": "+t+e.message+"]"},t.throwIfDisposed=function(e,o,n){if(e.wasDisposed)throw new t(o,n)},t}(o.InvalidOperationException);t.ObjectDisposedException=i,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=i}); //# sourceMappingURL=ObjectDisposedException.js.map diff --git a/dist/umd.min/System/Disposable/ObjectDisposedException.js.map b/dist/umd.min/System/Disposable/ObjectDisposedException.js.map index 11df88e2..38c2351b 100644 --- a/dist/umd.min/System/Disposable/ObjectDisposedException.js.map +++ b/dist/umd.min/System/Disposable/ObjectDisposedException.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Disposable/ObjectDisposedException.js","System/Disposable/ObjectDisposedException.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","InvalidOperationException_1","NAME","ObjectDisposedException","_super","objectName","message","innerException","call","_","getName","toString","oName","name","throwIfDisposed","disposable","wasDisposed","defineProperty","value"],"mappings":";;;;;AAKA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,2CAA4CN,IAE/E,SAAUI,EAASF,GCVtB,YAGA,IAAAM,GAAAJ,EAAsC,2CAGhCK,EAAc,0BAEpBC,EAAA,SAAAC,GAQC,QAAAD,GACCE,EACAC,EACAC,GADA,SAAAD,IAAAA,EAAA,MACA,SAAAC,IAAAA,EAAA,MAEAH,EAAAI,KAAAzB,KAAMuB,EAASC,EAAgB,SAACE,GAC/BA,EAAEJ,WAAaA,IA2BlB,MAvCQvB,WAAAqB,EAAAC,GAiBGD,EAAAb,UAAAoB,QAAV,WAEC,MAAOR,IAGRC,EAAAb,UAAAqB,SAAA,WAEC,GAAIF,GAAI1B,KAAM6B,EAAQH,EAAEJ,UAGxB,OAFAO,GAAQA,EAAS,IAAMA,EAAQ,KAAQ,GAEhC,IAAMH,EAAEI,KAAO,KAAOD,EAAQH,EAAEH,QAAU,KAG3CH,EAAAW,gBAAP,SACCC,EACAV,EACAC,GAEA,GAAGS,EAAWC,YACb,KAAM,IAAIb,GAAwBE,EAAYC,IAGjDH,GAvCQF,EAAAA,WAFRV,QAAA0B,eAAAtB,EAAA,cAAAuB,OAAA,ID8BIvB,EAAAA,WAAkBQ","file":"System/Disposable/ObjectDisposedException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", '../Exceptions/InvalidOperationException'], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var InvalidOperationException_1 = require('../Exceptions/InvalidOperationException');\n var NAME = 'ObjectDisposedException';\n var ObjectDisposedException = (function (_super) {\n __extends(ObjectDisposedException, _super);\n function ObjectDisposedException(objectName, message, innerException) {\n if (message === void 0) { message = null; }\n if (innerException === void 0) { innerException = null; }\n _super.call(this, message, innerException, function (_) {\n _.objectName = objectName;\n });\n }\n ObjectDisposedException.prototype.getName = function () {\n return NAME;\n };\n ObjectDisposedException.prototype.toString = function () {\n var _ = this, oName = _.objectName;\n oName = oName ? ('{' + oName + '} ') : '';\n return '[' + _.name + ': ' + oName + _.message + ']';\n };\n ObjectDisposedException.throwIfDisposed = function (disposable, objectName, message) {\n if (disposable.wasDisposed)\n throw new ObjectDisposedException(objectName, message);\n };\n return ObjectDisposedException;\n }(InvalidOperationException_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ObjectDisposedException;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport Exception from '../Exception';\r\nimport InvalidOperationException from '../Exceptions/InvalidOperationException';\r\n\r\n\r\nconst NAME:string = 'ObjectDisposedException';\r\n\r\nexport default\r\nclass ObjectDisposedException\r\nextends InvalidOperationException\r\n{\r\n\r\n\tobjectName:string;\r\n\r\n\t// For simplicity and consistency, lets stick with 1 signature.\r\n\tconstructor(\r\n\t\tobjectName:string,\r\n\t\tmessage:string = null,\r\n\t\tinnerException:Exception = null)\r\n\t{\r\n\t\tsuper(message, innerException, (_)=>{\r\n\t\t\t_.objectName = objectName;\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\ttoString():string\r\n\t{\r\n\t\tvar _ = this, oName = _.objectName;\r\n\t\toName = oName ? ('{' + oName + '} ') : '';\r\n\r\n\t\treturn '[' + _.name + ': ' + oName + _.message + ']';\r\n\t}\r\n\r\n\tstatic throwIfDisposed(\r\n\t\tdisposable:IDisposableAware,\r\n\t\tobjectName?:string,\r\n\t\tmessage?:string):void\r\n\t{\r\n\t\tif(disposable.wasDisposed)\r\n\t\t\tthrow new ObjectDisposedException(objectName, message);\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Disposable/ObjectDisposedException.js","System/Disposable/ObjectDisposedException.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","InvalidOperationException_1","NAME","ObjectDisposedException","_super","objectName","message","innerException","call","_","getName","toString","oName","name","throwIfDisposed","disposable","wasDisposed","InvalidOperationException","defineProperty","value"],"mappings":";;;;;AAKA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,2CAA4CN,IAE/E,SAAUI,EAASF,GAClB,YCXJ,IAAAM,GAAAJ,EAAwC,2CAIlCK,EAAc,0BAEpBC,EAAA,SAAAC,GAOC,QAAAD,GACCE,EACAC,EACAC,GADA,SAAAD,IAAAA,EAAA,MACA,SAAAC,IAAAA,EAAA,MAEAH,EAAAI,KAAAzB,KAAMuB,EAASC,EAAgB,SAACE,GAC/BA,EAAEJ,WAAaA,IA2BlB,MAvCQvB,WAAAqB,EAAAC,GAiBGD,EAAAb,UAAAoB,QAAV,WAEC,MAAOR,IAGRC,EAAAb,UAAAqB,SAAA,WAEC,GAAIF,GAAI1B,KAAM6B,EAAQH,EAAEJ,UAGxB,OAFAO,GAAQA,EAAS,IAAMA,EAAQ,KAAQ,GAEhC,IAAMH,EAAEI,KAAO,KAAOD,EAAQH,EAAEH,QAAU,KAG3CH,EAAAW,gBAAP,SACCC,EACAV,EACAC,GAEA,GAAGS,EAAWC,YACb,KAAM,IAAIb,GAAwBE,EAAYC,IAGjDH,GAvCQF,EAAAgB,0BADKtB,GAAAQ,wBAAuBA,EA0CpCZ,OAAA2B,eAAAvB,EAAA,cAAAwB,OAAA,IDTIxB,EAAAA,WCSWQ","file":"System/Disposable/ObjectDisposedException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../Exceptions/InvalidOperationException\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var InvalidOperationException_1 = require(\"../Exceptions/InvalidOperationException\");\n var NAME = 'ObjectDisposedException';\n var ObjectDisposedException = (function (_super) {\n __extends(ObjectDisposedException, _super);\n function ObjectDisposedException(objectName, message, innerException) {\n if (message === void 0) { message = null; }\n if (innerException === void 0) { innerException = null; }\n _super.call(this, message, innerException, function (_) {\n _.objectName = objectName;\n });\n }\n ObjectDisposedException.prototype.getName = function () {\n return NAME;\n };\n ObjectDisposedException.prototype.toString = function () {\n var _ = this, oName = _.objectName;\n oName = oName ? ('{' + oName + '} ') : '';\n return '[' + _.name + ': ' + oName + _.message + ']';\n };\n ObjectDisposedException.throwIfDisposed = function (disposable, objectName, message) {\n if (disposable.wasDisposed)\n throw new ObjectDisposedException(objectName, message);\n };\n return ObjectDisposedException;\n }(InvalidOperationException_1.InvalidOperationException));\n exports.ObjectDisposedException = ObjectDisposedException;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ObjectDisposedException;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\nimport {Exception} from \"../Exception\";\r\nimport {InvalidOperationException} from \"../Exceptions/InvalidOperationException\";\r\nimport {IDisposableAware} from \"./IDisposableAware\";\r\n\r\n\r\nconst NAME:string = 'ObjectDisposedException';\r\n\r\nexport class ObjectDisposedException\r\nextends InvalidOperationException\r\n{\r\n\r\n\tobjectName:string;\r\n\r\n\t// For simplicity and consistency, lets stick with 1 signature.\r\n\tconstructor(\r\n\t\tobjectName:string,\r\n\t\tmessage:string = null,\r\n\t\tinnerException:Exception = null)\r\n\t{\r\n\t\tsuper(message, innerException, (_)=>{\r\n\t\t\t_.objectName = objectName;\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\ttoString():string\r\n\t{\r\n\t\tvar _ = this, oName = _.objectName;\r\n\t\toName = oName ? ('{' + oName + '} ') : '';\r\n\r\n\t\treturn '[' + _.name + ': ' + oName + _.message + ']';\r\n\t}\r\n\r\n\tstatic throwIfDisposed(\r\n\t\tdisposable:IDisposableAware,\r\n\t\tobjectName?:string,\r\n\t\tmessage?:string):void\r\n\t{\r\n\t\tif(disposable.wasDisposed)\r\n\t\t\tthrow new ObjectDisposedException(objectName, message);\r\n\t}\r\n\r\n}\r\n\r\nexport default ObjectDisposedException;"]} \ No newline at end of file diff --git a/dist/umd.min/System/Disposable/ObjectPool.d.ts b/dist/umd.min/System/Disposable/ObjectPool.d.ts index af854543..1dbbcbf5 100644 --- a/dist/umd.min/System/Disposable/ObjectPool.d.ts +++ b/dist/umd.min/System/Disposable/ObjectPool.d.ts @@ -4,8 +4,8 @@ * Based upon ObjectPool from Parallel Extension Extras and other ObjectPool implementations. * Uses .add(T) and .take():T */ -import DisposableBase from "./DisposableBase"; -export default class ObjectPool extends DisposableBase { +import { DisposableBase } from "./DisposableBase"; +export declare class ObjectPool extends DisposableBase { private _maxSize; private _generator; private _pool; @@ -28,3 +28,4 @@ export default class ObjectPool extends DisposableBase { add(o: T): void; take(): T; } +export default ObjectPool; diff --git a/dist/umd.min/System/Disposable/ObjectPool.js b/dist/umd.min/System/Disposable/ObjectPool.js index 9bef157d..082d06e8 100644 --- a/dist/umd.min/System/Disposable/ObjectPool.js +++ b/dist/umd.min/System/Disposable/ObjectPool.js @@ -4,5 +4,5 @@ * Based upon ObjectPool from Parallel Extension Extras and other ObjectPool implementations. * Uses .add(T) and .take():T */ -var __extends=this&&this.__extends||function(e,t){function o(){this.constructor=e}for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","./dispose","./DisposableBase","../Tasks/TaskHandler","../Exceptions/ArgumentOutOfRangeException"],e)}(function(e,t){"use strict";var o=e("./dispose"),r=e("./DisposableBase"),n=e("../Tasks/TaskHandler"),i=e("../Exceptions/ArgumentOutOfRangeException"),l="ObjectPool",a="_maxSize",u=65536,s="Must be at valid number least 1.",p="Must be less than or equal to "+u+".",c=function(e){function t(t,o){if(e.call(this),this._maxSize=t,this._generator=o,this.autoClearTimeout=5e3,isNaN(t)||1>t)throw new i["default"](a,t,s);if(t>u)throw new i["default"](a,t,p);this._localAbsMaxSize=Math.min(2*t,u);var r=this;r._disposableObjectName=l,r._pool=[],r._trimmer=new n["default"](function(){return r._trim()});var c=function(){return r._clear()};r._flusher=new n["default"](c),r._autoFlusher=new n["default"](c)}return __extends(t,e),Object.defineProperty(t.prototype,"maxSize",{get:function(){return this._maxSize},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"count",{get:function(){var e=this._pool;return e?e.length:0},enumerable:!0,configurable:!0}),t.prototype._trim=function(){for(var e=this._pool;e.length>this._maxSize;)o["default"].withoutException(e.pop())},t.prototype.trim=function(e){this.throwIfDisposed(),this._trimmer.execute(e)},t.prototype._clear=function(){var e=this,t=e._pool;e._trimmer.cancel(),e._flusher.cancel(),e._autoFlusher.cancel(),o["default"].these(t,!0),t.length=0},t.prototype.clear=function(e){this.throwIfDisposed(),this._flusher.execute(e)},t.prototype.toArrayAndClear=function(){var e=this;e.throwIfDisposed(),e._trimmer.cancel(),e._flusher.cancel();var t=e._pool;return e._pool=[],t},t.prototype.dump=function(){return this.toArrayAndClear()},t.prototype._onDispose=function(){e.prototype._onDispose.call(this);var t=this;t._generator=null,o["default"](t._trimmer,t._flusher,t._autoFlusher),t._trimmer=null,t._flusher=null,t._autoFlusher=null,t._pool.length=0,t._pool=null},t.prototype.extendAutoClear=function(){var e=this;e.throwIfDisposed();var t=e.autoClearTimeout;isFinite(t)&&!e._autoFlusher.isScheduled&&e._autoFlusher.execute(t)},t.prototype.add=function(e){var t=this;if(t.throwIfDisposed(),t._pool.length>=t._localAbsMaxSize)o["default"](e);else{t._pool.push(e);var r=t._maxSize;u>r&&t._pool.length>r&&t._trimmer.execute(500)}t.extendAutoClear()},t.prototype.take=function(){var e=this;e.throwIfDisposed();var t=e._pool.pop()||e._generator(),o=e._pool.length;return e._pool.length<=e._maxSize&&e._trimmer.cancel(),o&&e.extendAutoClear(),t},t}(r["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=c}); +var __extends=this&&this.__extends||function(e,t){function o(){this.constructor=e}for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","./dispose","./DisposableBase","../Tasks/TaskHandler","../Exceptions/ArgumentOutOfRangeException"],e)}(function(e,t){"use strict";var o=e("./dispose"),r=e("./DisposableBase"),n=e("../Tasks/TaskHandler"),i=e("../Exceptions/ArgumentOutOfRangeException"),s="ObjectPool",a="_maxSize",l=65536,u="Must be at valid number least 1.",p="Must be less than or equal to "+l+".",c=function(e){function t(t,o){if(e.call(this),this._maxSize=t,this._generator=o,this.autoClearTimeout=5e3,isNaN(t)||1>t)throw new i.ArgumentOutOfRangeException(a,t,u);if(t>l)throw new i.ArgumentOutOfRangeException(a,t,p);this._localAbsMaxSize=Math.min(2*t,l);var r=this;r._disposableObjectName=s,r._pool=[],r._trimmer=new n.TaskHandler(function(){return r._trim()});var c=function(){return r._clear()};r._flusher=new n.TaskHandler(c),r._autoFlusher=new n.TaskHandler(c)}return __extends(t,e),Object.defineProperty(t.prototype,"maxSize",{get:function(){return this._maxSize},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"count",{get:function(){var e=this._pool;return e?e.length:0},enumerable:!0,configurable:!0}),t.prototype._trim=function(){for(var e=this._pool;e.length>this._maxSize;)o.dispose.withoutException(e.pop())},t.prototype.trim=function(e){this.throwIfDisposed(),this._trimmer.execute(e)},t.prototype._clear=function(){var e=this,t=e._pool;e._trimmer.cancel(),e._flusher.cancel(),e._autoFlusher.cancel(),o.dispose.these(t,!0),t.length=0},t.prototype.clear=function(e){this.throwIfDisposed(),this._flusher.execute(e)},t.prototype.toArrayAndClear=function(){var e=this;e.throwIfDisposed(),e._trimmer.cancel(),e._flusher.cancel();var t=e._pool;return e._pool=[],t},t.prototype.dump=function(){return this.toArrayAndClear()},t.prototype._onDispose=function(){e.prototype._onDispose.call(this);var t=this;t._generator=null,o.dispose(t._trimmer,t._flusher,t._autoFlusher),t._trimmer=null,t._flusher=null,t._autoFlusher=null,t._pool.length=0,t._pool=null},t.prototype.extendAutoClear=function(){var e=this;e.throwIfDisposed();var t=e.autoClearTimeout;isFinite(t)&&!e._autoFlusher.isScheduled&&e._autoFlusher.execute(t)},t.prototype.add=function(e){var t=this;if(t.throwIfDisposed(),t._pool.length>=t._localAbsMaxSize)o.dispose(e);else{t._pool.push(e);var r=t._maxSize;l>r&&t._pool.length>r&&t._trimmer.execute(500)}t.extendAutoClear()},t.prototype.take=function(){var e=this;e.throwIfDisposed();var t=e._pool.pop()||e._generator(),o=e._pool.length;return e._pool.length<=e._maxSize&&e._trimmer.cancel(),o&&e.extendAutoClear(),t},t}(r.DisposableBase);t.ObjectPool=c,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=c}); //# sourceMappingURL=ObjectPool.js.map diff --git a/dist/umd.min/System/Disposable/ObjectPool.js.map b/dist/umd.min/System/Disposable/ObjectPool.js.map index 72fb73af..524e4e7a 100644 --- a/dist/umd.min/System/Disposable/ObjectPool.js.map +++ b/dist/umd.min/System/Disposable/ObjectPool.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Disposable/ObjectPool.js","System/Disposable/ObjectPool.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","dispose_1","DisposableBase_1","TaskHandler_1","ArgumentOutOfRangeException_1","OBJECT_POOL","_MAX_SIZE","ABSOLUTE_MAX_SIZE","MUST_BE_GT1","MUST_BE_LTM","ObjectPool","_super","_maxSize","_generator","call","autoClearTimeout","isNaN","_localAbsMaxSize","Math","min","_","_disposableObjectName","_pool","_trimmer","_trim","clear","_clear","_flusher","_autoFlusher","defineProperty","get","enumerable","configurable","length","pool","withoutException","pop","trim","defer","throwIfDisposed","execute","cancel","these","toArrayAndClear","dump","_onDispose","extendAutoClear","t","isFinite","isScheduled","add","o","push","m","take","e","len","value"],"mappings":"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","file":"System/Disposable/ObjectPool.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon ObjectPool from Parallel Extension Extras and other ObjectPool implementations.\n * Uses .add(T) and .take():T\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"./dispose\", \"./DisposableBase\", \"../Tasks/TaskHandler\", \"../Exceptions/ArgumentOutOfRangeException\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var dispose_1 = require(\"./dispose\");\n var DisposableBase_1 = require(\"./DisposableBase\");\n var TaskHandler_1 = require(\"../Tasks/TaskHandler\");\n var ArgumentOutOfRangeException_1 = require(\"../Exceptions/ArgumentOutOfRangeException\");\n var OBJECT_POOL = \"ObjectPool\", _MAX_SIZE = \"_maxSize\", ABSOLUTE_MAX_SIZE = 65536, MUST_BE_GT1 = \"Must be at valid number least 1.\", MUST_BE_LTM = \"Must be less than or equal to \" + ABSOLUTE_MAX_SIZE + \".\";\n var ObjectPool = (function (_super) {\n __extends(ObjectPool, _super);\n function ObjectPool(_maxSize, _generator) {\n _super.call(this);\n this._maxSize = _maxSize;\n this._generator = _generator;\n this.autoClearTimeout = 5000;\n if (isNaN(_maxSize) || _maxSize < 1)\n throw new ArgumentOutOfRangeException_1.default(_MAX_SIZE, _maxSize, MUST_BE_GT1);\n if (_maxSize > ABSOLUTE_MAX_SIZE)\n throw new ArgumentOutOfRangeException_1.default(_MAX_SIZE, _maxSize, MUST_BE_LTM);\n this._localAbsMaxSize = Math.min(_maxSize * 2, ABSOLUTE_MAX_SIZE);\n var _ = this;\n _._disposableObjectName = OBJECT_POOL;\n _._pool = [];\n _._trimmer = new TaskHandler_1.default(function () { return _._trim(); });\n var clear = function () { return _._clear(); };\n _._flusher = new TaskHandler_1.default(clear);\n _._autoFlusher = new TaskHandler_1.default(clear);\n }\n Object.defineProperty(ObjectPool.prototype, \"maxSize\", {\n get: function () {\n return this._maxSize;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ObjectPool.prototype, \"count\", {\n get: function () {\n var p = this._pool;\n return p ? p.length : 0;\n },\n enumerable: true,\n configurable: true\n });\n ObjectPool.prototype._trim = function () {\n var pool = this._pool;\n while (pool.length > this._maxSize) {\n dispose_1.default.withoutException(pool.pop());\n }\n };\n ObjectPool.prototype.trim = function (defer) {\n this.throwIfDisposed();\n this._trimmer.execute(defer);\n };\n ObjectPool.prototype._clear = function () {\n var _ = this, p = _._pool;\n _._trimmer.cancel();\n _._flusher.cancel();\n _._autoFlusher.cancel();\n dispose_1.default.these(p, true);\n p.length = 0;\n };\n ObjectPool.prototype.clear = function (defer) {\n this.throwIfDisposed();\n this._flusher.execute(defer);\n };\n ObjectPool.prototype.toArrayAndClear = function () {\n var _ = this;\n _.throwIfDisposed();\n _._trimmer.cancel();\n _._flusher.cancel();\n var p = _._pool;\n _._pool = [];\n return p;\n };\n ObjectPool.prototype.dump = function () {\n return this.toArrayAndClear();\n };\n ObjectPool.prototype._onDispose = function () {\n _super.prototype._onDispose.call(this);\n var _ = this;\n _._generator = null;\n dispose_1.default(_._trimmer, _._flusher, _._autoFlusher);\n _._trimmer = null;\n _._flusher = null;\n _._autoFlusher = null;\n _._pool.length = 0;\n _._pool = null;\n };\n ObjectPool.prototype.extendAutoClear = function () {\n var _ = this;\n _.throwIfDisposed();\n var t = _.autoClearTimeout;\n if (isFinite(t) && !_._autoFlusher.isScheduled)\n _._autoFlusher.execute(t);\n };\n ObjectPool.prototype.add = function (o) {\n var _ = this;\n _.throwIfDisposed();\n if (_._pool.length >= _._localAbsMaxSize) {\n dispose_1.default(o);\n }\n else {\n _._pool.push(o);\n var m = _._maxSize;\n if (m < ABSOLUTE_MAX_SIZE && _._pool.length > m)\n _._trimmer.execute(500);\n }\n _.extendAutoClear();\n };\n ObjectPool.prototype.take = function () {\n var _ = this;\n _.throwIfDisposed();\n var e = _._pool.pop() || _._generator(), len = _._pool.length;\n if (_._pool.length <= _._maxSize)\n _._trimmer.cancel();\n if (len)\n _.extendAutoClear();\n return e;\n };\n return ObjectPool;\n }(DisposableBase_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ObjectPool;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon ObjectPool from Parallel Extension Extras and other ObjectPool implementations.\r\n * Uses .add(T) and .take():T\r\n */\r\n\r\nimport dispose from \"./dispose\";\r\nimport DisposableBase from \"./DisposableBase\";\r\nimport TaskHandler from \"../Tasks/TaskHandler\";\r\nimport ArgumentOutOfRangeException from \"../Exceptions/ArgumentOutOfRangeException\";\r\n\r\nconst\r\n\tOBJECT_POOL = \"ObjectPool\",\r\n\t_MAX_SIZE = \"_maxSize\",\r\n\tABSOLUTE_MAX_SIZE = 65536,\r\n\tMUST_BE_GT1 = \"Must be at valid number least 1.\",\r\n\tMUST_BE_LTM = `Must be less than or equal to ${ABSOLUTE_MAX_SIZE}.`;\r\n\r\nexport default class ObjectPool extends DisposableBase\r\n{\r\n\r\n\tprivate _pool:T[];\r\n\tprivate _trimmer:TaskHandler;\r\n\tprivate _flusher:TaskHandler;\r\n\tprivate _autoFlusher:TaskHandler;\r\n\r\n\t/**\r\n\t * A transient amount of object to exist over _maxSize until trim() is called.\r\n\t * But any added objects over _localAbsMaxSize will be disposed immediately.\r\n\t */\r\n\tprivate _localAbsMaxSize:number;\r\n\r\n\t/**\r\n\t * By default will clear after 5 seconds of non-use.\r\n\t */\r\n\tautoClearTimeout:number = 5000;\r\n\r\n\tconstructor(\r\n\t\tprivate _maxSize:number,\r\n\t\tprivate _generator:()=>T)\r\n\t{\r\n\t\tsuper();\r\n\t\tif(isNaN(_maxSize) || _maxSize<1)\r\n\t\t\tthrow new ArgumentOutOfRangeException(_MAX_SIZE, _maxSize, MUST_BE_GT1);\r\n\t\tif(_maxSize>ABSOLUTE_MAX_SIZE)\r\n\t\t\tthrow new ArgumentOutOfRangeException(_MAX_SIZE, _maxSize, MUST_BE_LTM);\r\n\r\n\t\tthis._localAbsMaxSize = Math.min(_maxSize*2, ABSOLUTE_MAX_SIZE);\r\n\r\n\t\tvar _ = this;\r\n\t\t_._disposableObjectName = OBJECT_POOL;\r\n\t\t_._pool = [];\r\n\t\t_._trimmer = new TaskHandler(()=>_._trim());\r\n\t\tvar clear = ()=>_._clear();\r\n\t\t_._flusher = new TaskHandler(clear);\r\n\t\t_._autoFlusher = new TaskHandler(clear);\r\n\t}\r\n\r\n\t/**\r\n\t * Defines the maximum at which trimming should allow.\r\n\t * @returns {number}\r\n\t */\r\n\tget maxSize():number\r\n\t{\r\n\t\treturn this._maxSize;\r\n\t}\r\n\r\n\t/**\r\n\t * Current number of objects in pool.\r\n\t * @returns {number}\r\n\t */\r\n\tget count():number\r\n\t{\r\n\t\tvar p = this._pool;\r\n\t\treturn p ? p.length : 0;\r\n\t}\r\n\r\n\tprotected _trim():void\r\n\t{\r\n\t\tvar pool = this._pool;\r\n\t\twhile(pool.length>this._maxSize)\r\n\t\t{\r\n\t\t\tdispose.withoutException(pool.pop());\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Will trim ensure the pool is less than the maxSize.\r\n\t * @param defer A delay before trimming. Will be overridden by later calls.\r\n\t */\r\n\ttrim(defer?:number):void\r\n\t{\r\n\t\tthis.throwIfDisposed();\r\n\t\tthis._trimmer.execute(defer);\r\n\t}\r\n\r\n\tprotected _clear():void\r\n\t{\r\n\t\tvar _ = this, p = _._pool;\r\n\t\t_._trimmer.cancel();\r\n\t\t_._flusher.cancel();\r\n\t\t_._autoFlusher.cancel();\r\n\t\tdispose.these(p, true);\r\n\t\tp.length = 0;\r\n\t}\r\n\r\n\t/**\r\n\t * Will clear out the pool.\r\n\t * Cancels any scheduled trims when executed.\r\n\t * @param defer A delay before clearing. Will be overridden by later calls.\r\n\t */\r\n\tclear(defer?:number):void\r\n\t{\r\n\t\tthis.throwIfDisposed();\r\n\t\tthis._flusher.execute(defer);\r\n\t}\r\n\r\n\ttoArrayAndClear():T[]\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\t_._trimmer.cancel();\r\n\t\t_._flusher.cancel();\r\n\t\tvar p = _._pool;\r\n\t\t_._pool = [];\r\n\t\treturn p;\r\n\t}\r\n\r\n\t/**\r\n\t * Shortcut for toArrayAndClear();\r\n\t */\r\n\tdump():T[]\r\n\t{\r\n\t\treturn this.toArrayAndClear();\r\n\t}\r\n\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tvar _ = this;\r\n\t\t_._generator = null;\r\n\t\tdispose(\r\n\t\t\t_._trimmer,\r\n\t\t\t_._flusher,\r\n\t\t\t_._autoFlusher\r\n\t\t);\r\n\t\t_._trimmer = null;\r\n\t\t_._flusher = null;\r\n\t\t_._autoFlusher = null;\r\n\r\n\t\t_._pool.length = 0;\r\n\t\t_._pool = null;\r\n\t}\r\n\r\n\textendAutoClear():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\tvar t = _.autoClearTimeout;\r\n\t\tif(isFinite(t) && !_._autoFlusher.isScheduled)\r\n\t\t\t_._autoFlusher.execute(t);\r\n\t}\r\n\r\n\tadd(o:T):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\tif(_._pool.length>=_._localAbsMaxSize)\r\n\t\t{\r\n\t\t\t// Getting too big, dispose immediately...\r\n\t\t\tdispose(o);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t_._pool.push(o);\r\n\t\t\tvar m = _._maxSize;\r\n\t\t\tif(mm)\r\n\t\t\t\t_._trimmer.execute(500);\r\n\t\t}\r\n\t\t_.extendAutoClear();\r\n\r\n\t}\r\n\r\n\ttake():T\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar e = _._pool.pop() || _._generator(),\r\n\t\t len = _._pool.length;\r\n\r\n\t\tif(_._pool.length<=_._maxSize)\r\n\t\t\t_._trimmer.cancel();\r\n\t\tif(len)\r\n\t\t\t_.extendAutoClear();\r\n\r\n\t\treturn e;\r\n\t}\r\n\r\n\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Disposable/ObjectPool.js","System/Disposable/ObjectPool.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","dispose_1","DisposableBase_1","TaskHandler_1","ArgumentOutOfRangeException_1","OBJECT_POOL","_MAX_SIZE","ABSOLUTE_MAX_SIZE","MUST_BE_GT1","MUST_BE_LTM","ObjectPool","_super","_maxSize","_generator","call","autoClearTimeout","isNaN","ArgumentOutOfRangeException","_localAbsMaxSize","Math","min","_","_disposableObjectName","_pool","_trimmer","TaskHandler","_trim","clear","_clear","_flusher","_autoFlusher","defineProperty","get","enumerable","configurable","length","pool","dispose","withoutException","pop","trim","defer","throwIfDisposed","execute","cancel","these","toArrayAndClear","dump","_onDispose","extendAutoClear","t","isFinite","isScheduled","add","o","push","m","take","e","len","DisposableBase","value"],"mappings":"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","file":"System/Disposable/ObjectPool.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon ObjectPool from Parallel Extension Extras and other ObjectPool implementations.\n * Uses .add(T) and .take():T\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"./dispose\", \"./DisposableBase\", \"../Tasks/TaskHandler\", \"../Exceptions/ArgumentOutOfRangeException\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var dispose_1 = require(\"./dispose\");\n var DisposableBase_1 = require(\"./DisposableBase\");\n var TaskHandler_1 = require(\"../Tasks/TaskHandler\");\n var ArgumentOutOfRangeException_1 = require(\"../Exceptions/ArgumentOutOfRangeException\");\n var OBJECT_POOL = \"ObjectPool\", _MAX_SIZE = \"_maxSize\", ABSOLUTE_MAX_SIZE = 65536, MUST_BE_GT1 = \"Must be at valid number least 1.\", MUST_BE_LTM = \"Must be less than or equal to \" + ABSOLUTE_MAX_SIZE + \".\";\n var ObjectPool = (function (_super) {\n __extends(ObjectPool, _super);\n function ObjectPool(_maxSize, _generator) {\n _super.call(this);\n this._maxSize = _maxSize;\n this._generator = _generator;\n this.autoClearTimeout = 5000;\n if (isNaN(_maxSize) || _maxSize < 1)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(_MAX_SIZE, _maxSize, MUST_BE_GT1);\n if (_maxSize > ABSOLUTE_MAX_SIZE)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(_MAX_SIZE, _maxSize, MUST_BE_LTM);\n this._localAbsMaxSize = Math.min(_maxSize * 2, ABSOLUTE_MAX_SIZE);\n var _ = this;\n _._disposableObjectName = OBJECT_POOL;\n _._pool = [];\n _._trimmer = new TaskHandler_1.TaskHandler(function () { return _._trim(); });\n var clear = function () { return _._clear(); };\n _._flusher = new TaskHandler_1.TaskHandler(clear);\n _._autoFlusher = new TaskHandler_1.TaskHandler(clear);\n }\n Object.defineProperty(ObjectPool.prototype, \"maxSize\", {\n get: function () {\n return this._maxSize;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ObjectPool.prototype, \"count\", {\n get: function () {\n var p = this._pool;\n return p ? p.length : 0;\n },\n enumerable: true,\n configurable: true\n });\n ObjectPool.prototype._trim = function () {\n var pool = this._pool;\n while (pool.length > this._maxSize) {\n dispose_1.dispose.withoutException(pool.pop());\n }\n };\n ObjectPool.prototype.trim = function (defer) {\n this.throwIfDisposed();\n this._trimmer.execute(defer);\n };\n ObjectPool.prototype._clear = function () {\n var _ = this, p = _._pool;\n _._trimmer.cancel();\n _._flusher.cancel();\n _._autoFlusher.cancel();\n dispose_1.dispose.these(p, true);\n p.length = 0;\n };\n ObjectPool.prototype.clear = function (defer) {\n this.throwIfDisposed();\n this._flusher.execute(defer);\n };\n ObjectPool.prototype.toArrayAndClear = function () {\n var _ = this;\n _.throwIfDisposed();\n _._trimmer.cancel();\n _._flusher.cancel();\n var p = _._pool;\n _._pool = [];\n return p;\n };\n ObjectPool.prototype.dump = function () {\n return this.toArrayAndClear();\n };\n ObjectPool.prototype._onDispose = function () {\n _super.prototype._onDispose.call(this);\n var _ = this;\n _._generator = null;\n dispose_1.dispose(_._trimmer, _._flusher, _._autoFlusher);\n _._trimmer = null;\n _._flusher = null;\n _._autoFlusher = null;\n _._pool.length = 0;\n _._pool = null;\n };\n ObjectPool.prototype.extendAutoClear = function () {\n var _ = this;\n _.throwIfDisposed();\n var t = _.autoClearTimeout;\n if (isFinite(t) && !_._autoFlusher.isScheduled)\n _._autoFlusher.execute(t);\n };\n ObjectPool.prototype.add = function (o) {\n var _ = this;\n _.throwIfDisposed();\n if (_._pool.length >= _._localAbsMaxSize) {\n dispose_1.dispose(o);\n }\n else {\n _._pool.push(o);\n var m = _._maxSize;\n if (m < ABSOLUTE_MAX_SIZE && _._pool.length > m)\n _._trimmer.execute(500);\n }\n _.extendAutoClear();\n };\n ObjectPool.prototype.take = function () {\n var _ = this;\n _.throwIfDisposed();\n var e = _._pool.pop() || _._generator(), len = _._pool.length;\n if (_._pool.length <= _._maxSize)\n _._trimmer.cancel();\n if (len)\n _.extendAutoClear();\n return e;\n };\n return ObjectPool;\n }(DisposableBase_1.DisposableBase));\n exports.ObjectPool = ObjectPool;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ObjectPool;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon ObjectPool from Parallel Extension Extras and other ObjectPool implementations.\r\n * Uses .add(T) and .take():T\r\n */\r\n\r\nimport {dispose} from \"./dispose\";\r\nimport {DisposableBase} from \"./DisposableBase\";\r\nimport {TaskHandler} from \"../Tasks/TaskHandler\";\r\nimport {ArgumentOutOfRangeException} from \"../Exceptions/ArgumentOutOfRangeException\";\r\n\r\nconst\r\n\tOBJECT_POOL = \"ObjectPool\",\r\n\t_MAX_SIZE = \"_maxSize\",\r\n\tABSOLUTE_MAX_SIZE = 65536,\r\n\tMUST_BE_GT1 = \"Must be at valid number least 1.\",\r\n\tMUST_BE_LTM = `Must be less than or equal to ${ABSOLUTE_MAX_SIZE}.`;\r\n\r\nexport class ObjectPool extends DisposableBase\r\n{\r\n\r\n\tprivate _pool:T[];\r\n\tprivate _trimmer:TaskHandler;\r\n\tprivate _flusher:TaskHandler;\r\n\tprivate _autoFlusher:TaskHandler;\r\n\r\n\t/**\r\n\t * A transient amount of object to exist over _maxSize until trim() is called.\r\n\t * But any added objects over _localAbsMaxSize will be disposed immediately.\r\n\t */\r\n\tprivate _localAbsMaxSize:number;\r\n\r\n\t/**\r\n\t * By default will clear after 5 seconds of non-use.\r\n\t */\r\n\tautoClearTimeout:number = 5000;\r\n\r\n\tconstructor(\r\n\t\tprivate _maxSize:number,\r\n\t\tprivate _generator:()=>T)\r\n\t{\r\n\t\tsuper();\r\n\t\tif(isNaN(_maxSize) || _maxSize<1)\r\n\t\t\tthrow new ArgumentOutOfRangeException(_MAX_SIZE, _maxSize, MUST_BE_GT1);\r\n\t\tif(_maxSize>ABSOLUTE_MAX_SIZE)\r\n\t\t\tthrow new ArgumentOutOfRangeException(_MAX_SIZE, _maxSize, MUST_BE_LTM);\r\n\r\n\t\tthis._localAbsMaxSize = Math.min(_maxSize*2, ABSOLUTE_MAX_SIZE);\r\n\r\n\t\tvar _ = this;\r\n\t\t_._disposableObjectName = OBJECT_POOL;\r\n\t\t_._pool = [];\r\n\t\t_._trimmer = new TaskHandler(()=>_._trim());\r\n\t\tvar clear = ()=>_._clear();\r\n\t\t_._flusher = new TaskHandler(clear);\r\n\t\t_._autoFlusher = new TaskHandler(clear);\r\n\t}\r\n\r\n\t/**\r\n\t * Defines the maximum at which trimming should allow.\r\n\t * @returns {number}\r\n\t */\r\n\tget maxSize():number\r\n\t{\r\n\t\treturn this._maxSize;\r\n\t}\r\n\r\n\t/**\r\n\t * Current number of objects in pool.\r\n\t * @returns {number}\r\n\t */\r\n\tget count():number\r\n\t{\r\n\t\tvar p = this._pool;\r\n\t\treturn p ? p.length : 0;\r\n\t}\r\n\r\n\tprotected _trim():void\r\n\t{\r\n\t\tvar pool = this._pool;\r\n\t\twhile(pool.length>this._maxSize)\r\n\t\t{\r\n\t\t\tdispose.withoutException(pool.pop());\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Will trim ensure the pool is less than the maxSize.\r\n\t * @param defer A delay before trimming. Will be overridden by later calls.\r\n\t */\r\n\ttrim(defer?:number):void\r\n\t{\r\n\t\tthis.throwIfDisposed();\r\n\t\tthis._trimmer.execute(defer);\r\n\t}\r\n\r\n\tprotected _clear():void\r\n\t{\r\n\t\tvar _ = this, p = _._pool;\r\n\t\t_._trimmer.cancel();\r\n\t\t_._flusher.cancel();\r\n\t\t_._autoFlusher.cancel();\r\n\t\tdispose.these(p, true);\r\n\t\tp.length = 0;\r\n\t}\r\n\r\n\t/**\r\n\t * Will clear out the pool.\r\n\t * Cancels any scheduled trims when executed.\r\n\t * @param defer A delay before clearing. Will be overridden by later calls.\r\n\t */\r\n\tclear(defer?:number):void\r\n\t{\r\n\t\tthis.throwIfDisposed();\r\n\t\tthis._flusher.execute(defer);\r\n\t}\r\n\r\n\ttoArrayAndClear():T[]\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\t_._trimmer.cancel();\r\n\t\t_._flusher.cancel();\r\n\t\tvar p = _._pool;\r\n\t\t_._pool = [];\r\n\t\treturn p;\r\n\t}\r\n\r\n\t/**\r\n\t * Shortcut for toArrayAndClear();\r\n\t */\r\n\tdump():T[]\r\n\t{\r\n\t\treturn this.toArrayAndClear();\r\n\t}\r\n\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tvar _ = this;\r\n\t\t_._generator = null;\r\n\t\tdispose(\r\n\t\t\t_._trimmer,\r\n\t\t\t_._flusher,\r\n\t\t\t_._autoFlusher\r\n\t\t);\r\n\t\t_._trimmer = null;\r\n\t\t_._flusher = null;\r\n\t\t_._autoFlusher = null;\r\n\r\n\t\t_._pool.length = 0;\r\n\t\t_._pool = null;\r\n\t}\r\n\r\n\textendAutoClear():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\tvar t = _.autoClearTimeout;\r\n\t\tif(isFinite(t) && !_._autoFlusher.isScheduled)\r\n\t\t\t_._autoFlusher.execute(t);\r\n\t}\r\n\r\n\tadd(o:T):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\tif(_._pool.length>=_._localAbsMaxSize)\r\n\t\t{\r\n\t\t\t// Getting too big, dispose immediately...\r\n\t\t\tdispose(o);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t_._pool.push(o);\r\n\t\t\tvar m = _._maxSize;\r\n\t\t\tif(mm)\r\n\t\t\t\t_._trimmer.execute(500);\r\n\t\t}\r\n\t\t_.extendAutoClear();\r\n\r\n\t}\r\n\r\n\ttake():T\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar e = _._pool.pop() || _._generator(),\r\n\t\t len = _._pool.length;\r\n\r\n\t\tif(_._pool.length<=_._maxSize)\r\n\t\t\t_._trimmer.cancel();\r\n\t\tif(len)\r\n\t\t\t_.extendAutoClear();\r\n\r\n\t\treturn e;\r\n\t}\r\n\r\n\r\n}\r\n\r\nexport default ObjectPool;\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Disposable/dispose.d.ts b/dist/umd.min/System/Disposable/dispose.d.ts index ea01844c..e1a6bf42 100644 --- a/dist/umd.min/System/Disposable/dispose.d.ts +++ b/dist/umd.min/System/Disposable/dispose.d.ts @@ -1,9 +1,8 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { IDisposable } from "./IDisposable"; export declare function dispose(...disposables: IDisposable[]): void; export declare module dispose { function deferred(...disposables: IDisposable[]): void; diff --git a/dist/umd.min/System/Disposable/dispose.js b/dist/umd.min/System/Disposable/dispose.js index 737a08cd..67dd7923 100644 --- a/dist/umd.min/System/Disposable/dispose.js +++ b/dist/umd.min/System/Disposable/dispose.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../Types"],e)}(function(e,t){"use strict";function n(){for(var e=[],t=0;tn;n++){var u=e[n];if(u)if(t){var s=i(u,!0);s&&(r||(r=[]),r.push(s))}else{var d=!1;try{i(u,!1),d=!0}finally{!d&&f>n+1&&o(e,!1,n+1)}if(!d)break}}return r}var f=e("../Types");t.dispose=n;var n;!function(e){function t(){for(var e=[],t=0;t=0||(t=0),setTimeout(o,t,e.slice(),!0))}e.deferred=t}(r=e.these||(e.these={}))}(n=t.dispose||(t.dispose={})),t.using=r,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=n}); +!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../Types"],e)}(function(e,t){"use strict";function n(){for(var e=[],t=0;tn;n++){var u=e[n];if(u)if(t){var s=i(u,!0);s&&(r||(r=[]),r.push(s))}else{var d=!1;try{i(u,!1),d=!0}finally{!d&&f>n+1&&o(e,!1,n+1)}if(!d)break}}return r}var f=e("../Types");t.dispose=n;var n;!function(e){function t(){for(var e=[],t=0;t=0||(t=0),setTimeout(o,t,e.slice(),!0))}e.deferred=t}(r=e.these||(e.these={}))}(n=t.dispose||(t.dispose={})),t.using=r,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=n}); //# sourceMappingURL=dispose.js.map diff --git a/dist/umd.min/System/Disposable/dispose.js.map b/dist/umd.min/System/Disposable/dispose.js.map index 21325822..e1480748 100644 --- a/dist/umd.min/System/Disposable/dispose.js.map +++ b/dist/umd.min/System/Disposable/dispose.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Disposable/dispose.js","System/Disposable/dispose.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","dispose","disposables","_i","arguments","length","disposeTheseInternal","using","disposable","closure","disposeSingle","trapExceptions","Types_1","of","member","isFunction","ex","index","exceptions","len","next","push","success","deferred","these","withoutException","slice","delay","setTimeout","Object","defineProperty","value"],"mappings":";;;;CAIA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,YAAaN,IAEhD,SAAUI,EAASF,GCJtB,YAYA,SAAAM,KDHQ,ICGgB,GAAAC,MAAAC,EAAA,EAAAA,EAAAC,UAAAC,OAAAF,IAAAD,EAAAC,EAAA,GAAAC,UAAAD,EAGvBG,GAAqBJ,GAAa,GA6DnC,QAAAK,GACCC,EACAC,GAEA,IAEC,MAAOA,GAAQD,GD1BT,QC8BNE,EAAcF,GAAY,IAS5B,QAAAE,GACCF,EACAG,GAEA,GAAGH,GAAcI,EAAAA,WAAKC,GAAGL,GAAYM,OAAO,WAAWC,WAEtD,GAAGJ,EAEF,IAECH,EAAWP,UAEZ,MAAMe,GAEL,MAAOA,OAIRR,GAAWP,SAGb,OAAO,MAMR,QAAAK,GACCJ,EACAS,EACAM,GAAA,SAAAA,IAAAA,EAAA,EAKA,KAHA,GAAIC,GACAC,EAAMjB,EAAYG,OAEVc,EAANF,EAAWA,IACjB,CACC,GAAIG,GAAOlB,EAAYe,EACvB,IAAIG,EACJ,GAAGT,EACH,CACC,GAAIK,GAAKN,EAAcU,GAAM,EAC1BJ,KAEEE,IAAYA,MAChBA,EAAWG,KAAKL,QAIlB,CACC,GAAIM,IAAU,CACd,KAECZ,EAAcU,GAAM,GACpBE,GAAU,EDnDE,SCwDRA,GAAqBH,EAAVF,EAAQ,GAItBX,EAAqBJ,GAAa,EAAOe,EAAQ,GAInD,IAAIK,EAAS,OAIf,MAAOJ,GApKR,GAAAN,GAAAf,EAAiB,WAUDF,GAAAM,QAAOA,CAMvB,IAAcA,IAAd,SAAcA,GAEb,QAAAsB,KDDW,ICCc,GAAArB,MAAAC,EAAA,EAAAA,EAAAC,UAAAC,OAAAF,IAAAD,EAAAC,EAAA,GAAAC,UAAAD,EACxBqB,GAAMD,SAASrB,GAUhB,QAAAuB,KDJW,ICIsB,GAAAvB,MAAAC,EAAA,EAAAA,EAAAC,UAAAC,OAAAF,IAAAD,EAAAC,EAAA,GAAAC,UAAAD,EAGhC,OAAOG,GAAqBJ,GAAa,GAS1C,QAAAsB,GAAsBtB,EAA2BS,GAEhD,MAAOT,IAAeA,EAAYG,OAC/BC,EAAqBJ,EAAYwB,QAASf,GAC1C,KA3BYV,EAAAsB,SAAQA,EAWRtB,EAAAwB,iBAAgBA,EAYhBxB,EAAAuB,MAAKA,CAOrB,IAAcA,IAAd,SAAcA,GACb,QAAAD,GAAyBrB,EAA2ByB,GAAA,SAAAA,IAAAA,EAAA,GAChDzB,GAAeA,EAAYG,SACxBsB,GAAO,IAAIA,EAAQ,GACxBC,WAAWtB,EAAqBqB,EAAMzB,EAAYwB,SAAS,IAH7CF,EAAAD,SAAQA,GADXC,EAAAvB,EAAAuB,QAAAvB,EAAAuB,YAhCDvB,EAAAN,EAAAM,UAAAN,EAAAM,aA0DEN,EAAAY,MAAKA,EA6FrBsB,OAAAC,eAAAnC,EAAA,cAAAoC,OAAA,ID3DIpC,EAAAA,WC2DWM","file":"System/Disposable/dispose.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../Types\"], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var Types_1 = require(\"../Types\");\n function dispose() {\n var disposables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n disposables[_i - 0] = arguments[_i];\n }\n disposeTheseInternal(disposables, false);\n }\n exports.dispose = dispose;\n var dispose;\n (function (dispose) {\n function deferred() {\n var disposables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n disposables[_i - 0] = arguments[_i];\n }\n these.deferred(disposables);\n }\n dispose.deferred = deferred;\n function withoutException() {\n var disposables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n disposables[_i - 0] = arguments[_i];\n }\n return disposeTheseInternal(disposables, true);\n }\n dispose.withoutException = withoutException;\n function these(disposables, trapExceptions) {\n return disposables && disposables.length\n ? disposeTheseInternal(disposables.slice(), trapExceptions)\n : null;\n }\n dispose.these = these;\n var these;\n (function (these) {\n function deferred(disposables, delay) {\n if (delay === void 0) { delay = 0; }\n if (disposables && disposables.length) {\n if (!(delay >= 0))\n delay = 0;\n setTimeout(disposeTheseInternal, delay, disposables.slice(), true);\n }\n }\n these.deferred = deferred;\n })(these = dispose.these || (dispose.these = {}));\n })(dispose = exports.dispose || (exports.dispose = {}));\n function using(disposable, closure) {\n try {\n return closure(disposable);\n }\n finally {\n disposeSingle(disposable, false);\n }\n }\n exports.using = using;\n function disposeSingle(disposable, trapExceptions) {\n if (disposable && Types_1.default.of(disposable).member('dispose').isFunction) {\n if (trapExceptions) {\n try {\n disposable.dispose();\n }\n catch (ex) {\n return ex;\n }\n }\n else\n disposable.dispose();\n }\n return null;\n }\n function disposeTheseInternal(disposables, trapExceptions, index) {\n if (index === void 0) { index = 0; }\n var exceptions;\n var len = disposables.length;\n for (; index < len; index++) {\n var next = disposables[index];\n if (!next)\n continue;\n if (trapExceptions) {\n var ex = disposeSingle(next, true);\n if (ex) {\n if (!exceptions)\n exceptions = [];\n exceptions.push(ex);\n }\n }\n else {\n var success = false;\n try {\n disposeSingle(next, false);\n success = true;\n }\n finally {\n if (!success && index + 1 < len) {\n disposeTheseInternal(disposables, false, index + 1);\n }\n }\n if (!success)\n break;\n }\n }\n return exceptions;\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = dispose;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport Type from \"../Types\";\r\n\r\n/**\r\n * Takes any number of disposables as arguments and attempts to dispose them.\r\n * Any exceptions thrown within a dispose are not trapped.\r\n * Use 'disposeWithoutException' to automatically trap exceptions.\r\n *\r\n * Can accept and will ignore objects that don't have a dispose() method.\r\n * @param disposables\r\n */\r\nexport function dispose(...disposables:IDisposable[]):void\r\n{\r\n\t// The disposables arguments array is effectively localized so it's safe.\r\n\tdisposeTheseInternal(disposables, false);\r\n}\r\n\r\nexport module dispose {\r\n\r\n\texport function deferred(...disposables:IDisposable[]):void {\r\n\t\tthese.deferred(disposables);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Takes any number of disposables and traps any errors that occur when disposing.\r\n\t * Returns an array of the exceptions thrown.\r\n\t * @param disposables\r\n\t * @returns {any[]} Returns an array of exceptions that occurred, if there are any.\r\n\t */\r\n\texport function withoutException(...disposables:IDisposable[]):any[]\r\n\t{\r\n\t\t// The disposables arguments array is effectively localized so it's safe.\r\n\t\treturn disposeTheseInternal(disposables, true);\r\n\t}\r\n\r\n\t/**\r\n\t * Takes an array of disposable objects and ensures they are disposed.\r\n\t * @param disposables\r\n\t * @param trapExceptions If true, prevents exceptions from being thrown when disposing.\r\n\t * @returns {any[]} If 'trapExceptions' is true, returns an array of exceptions that occurred, if there are any.\r\n\t */\r\n\texport function these(disposables:IDisposable[], trapExceptions?:boolean):any[]\r\n\t{\r\n\t\treturn disposables && disposables.length\r\n\t\t\t? disposeTheseInternal(disposables.slice(), trapExceptions)\r\n\t\t\t: null;\r\n\t}\r\n\r\n\texport module these {\r\n\t\texport function deferred(disposables:IDisposable[], delay:number = 0):void {\r\n\t\t\tif(disposables && disposables.length) {\r\n\t\t\t\tif(!(delay>=0)) delay = 0;\r\n\t\t\t\tsetTimeout(disposeTheseInternal,delay,disposables.slice(), true);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Just like in C# this 'using' function will ensure the passed disposable is disposed when the closure has finished.\r\n *\r\n * Usage:\r\n * ```typescript\r\n * using(new DisposableObject(),(myObj)=>{\r\n * // do work with myObj\r\n * });\r\n * // myObj automatically has it's dispose method called.\r\n * ```\r\n *\r\n * @param disposable Object to be disposed.\r\n * @param closure Function call to execute.\r\n * @returns {TReturn} Returns whatever the closure's return value is.\r\n */\r\nexport function using(\r\n\tdisposable:TDisposable,\r\n\tclosure:(disposable:TDisposable) => TReturn):TReturn\r\n{\r\n\ttry\r\n\t{\r\n\t\treturn closure(disposable);\r\n\t}\r\n\tfinally\r\n\t{\r\n\t\tdisposeSingle(disposable, false);\r\n\t}\r\n}\r\n\r\n\r\n/**\r\n * This private function makes disposing more robust for when there's no type checking.\r\n * If trapExceptions is 'true' it catches and returns any exception instead of throwing.\r\n */\r\nfunction disposeSingle(\r\n\tdisposable:IDisposable,\r\n\ttrapExceptions:boolean):any\r\n{\r\n\tif(disposable && Type.of(disposable).member('dispose').isFunction)\r\n\t{\r\n\t\tif(trapExceptions)\r\n\t\t{\r\n\t\t\ttry\r\n\t\t\t{\r\n\t\t\t\tdisposable.dispose();\r\n\t\t\t}\r\n\t\t\tcatch(ex)\r\n\t\t\t{\r\n\t\t\t\treturn ex;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse\r\n\t\t\tdisposable.dispose();\r\n\t}\r\n\r\n\treturn null;\r\n}\r\n\r\n/**\r\n * This dispose method assumes it's working on a local copy and is unsafe for external use.\r\n */\r\nfunction disposeTheseInternal(\r\n\tdisposables:IDisposable[],\r\n\ttrapExceptions:boolean,\r\n\tindex:number = 0):any[]\r\n{\r\n\tvar exceptions:any[];\r\n\tvar len = disposables.length;\r\n\r\n\tfor(; index= 0))\n delay = 0;\n setTimeout(disposeTheseInternal, delay, disposables.slice(), true);\n }\n }\n these.deferred = deferred;\n })(these = dispose.these || (dispose.these = {}));\n })(dispose = exports.dispose || (exports.dispose = {}));\n function using(disposable, closure) {\n try {\n return closure(disposable);\n }\n finally {\n disposeSingle(disposable, false);\n }\n }\n exports.using = using;\n function disposeSingle(disposable, trapExceptions) {\n if (disposable && Types_1.Type.of(disposable).member('dispose').isFunction) {\n if (trapExceptions) {\n try {\n disposable.dispose();\n }\n catch (ex) {\n return ex;\n }\n }\n else\n disposable.dispose();\n }\n return null;\n }\n function disposeTheseInternal(disposables, trapExceptions, index) {\n if (index === void 0) { index = 0; }\n var exceptions;\n var len = disposables.length;\n for (; index < len; index++) {\n var next = disposables[index];\n if (!next)\n continue;\n if (trapExceptions) {\n var ex = disposeSingle(next, true);\n if (ex) {\n if (!exceptions)\n exceptions = [];\n exceptions.push(ex);\n }\n }\n else {\n var success = false;\n try {\n disposeSingle(next, false);\n success = true;\n }\n finally {\n if (!success && index + 1 < len) {\n disposeTheseInternal(disposables, false, index + 1);\n }\n }\n if (!success)\n break;\n }\n }\n return exceptions;\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = dispose;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {Type} from \"../Types\";\r\nimport {IDisposable} from \"./IDisposable\";\r\n\r\n/**\r\n * Takes any number of disposables as arguments and attempts to dispose them.\r\n * Any exceptions thrown within a dispose are not trapped.\r\n * Use 'disposeWithoutException' to automatically trap exceptions.\r\n *\r\n * Can accept and will ignore objects that don't have a dispose() method.\r\n * @param disposables\r\n */\r\nexport function dispose(...disposables:IDisposable[]):void\r\n{\r\n\t// The disposables arguments array is effectively localized so it's safe.\r\n\tdisposeTheseInternal(disposables, false);\r\n}\r\n\r\nexport module dispose {\r\n\r\n\texport function deferred(...disposables:IDisposable[]):void {\r\n\t\tthese.deferred(disposables);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Takes any number of disposables and traps any errors that occur when disposing.\r\n\t * Returns an array of the exceptions thrown.\r\n\t * @param disposables\r\n\t * @returns {any[]} Returns an array of exceptions that occurred, if there are any.\r\n\t */\r\n\texport function withoutException(...disposables:IDisposable[]):any[]\r\n\t{\r\n\t\t// The disposables arguments array is effectively localized so it's safe.\r\n\t\treturn disposeTheseInternal(disposables, true);\r\n\t}\r\n\r\n\t/**\r\n\t * Takes an array of disposable objects and ensures they are disposed.\r\n\t * @param disposables\r\n\t * @param trapExceptions If true, prevents exceptions from being thrown when disposing.\r\n\t * @returns {any[]} If 'trapExceptions' is true, returns an array of exceptions that occurred, if there are any.\r\n\t */\r\n\texport function these(disposables:IDisposable[], trapExceptions?:boolean):any[]\r\n\t{\r\n\t\treturn disposables && disposables.length\r\n\t\t\t? disposeTheseInternal(disposables.slice(), trapExceptions)\r\n\t\t\t: null;\r\n\t}\r\n\r\n\texport module these {\r\n\t\texport function deferred(disposables:IDisposable[], delay:number = 0):void {\r\n\t\t\tif(disposables && disposables.length) {\r\n\t\t\t\tif(!(delay>=0)) delay = 0;\r\n\t\t\t\tsetTimeout(disposeTheseInternal,delay,disposables.slice(), true);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Just like in C# this 'using' function will ensure the passed disposable is disposed when the closure has finished.\r\n *\r\n * Usage:\r\n * ```typescript\r\n * using(new DisposableObject(),(myObj)=>{\r\n * // do work with myObj\r\n * });\r\n * // myObj automatically has it's dispose method called.\r\n * ```\r\n *\r\n * @param disposable Object to be disposed.\r\n * @param closure Function call to execute.\r\n * @returns {TReturn} Returns whatever the closure's return value is.\r\n */\r\nexport function using(\r\n\tdisposable:TDisposable,\r\n\tclosure:(disposable:TDisposable) => TReturn):TReturn\r\n{\r\n\ttry\r\n\t{\r\n\t\treturn closure(disposable);\r\n\t}\r\n\tfinally\r\n\t{\r\n\t\tdisposeSingle(disposable, false);\r\n\t}\r\n}\r\n\r\n\r\n/**\r\n * This private function makes disposing more robust for when there's no type checking.\r\n * If trapExceptions is 'true' it catches and returns any exception instead of throwing.\r\n */\r\nfunction disposeSingle(\r\n\tdisposable:IDisposable,\r\n\ttrapExceptions:boolean):any\r\n{\r\n\tif(disposable && Type.of(disposable).member('dispose').isFunction)\r\n\t{\r\n\t\tif(trapExceptions)\r\n\t\t{\r\n\t\t\ttry\r\n\t\t\t{\r\n\t\t\t\tdisposable.dispose();\r\n\t\t\t}\r\n\t\t\tcatch(ex)\r\n\t\t\t{\r\n\t\t\t\treturn ex;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse\r\n\t\t\tdisposable.dispose();\r\n\t}\r\n\r\n\treturn null;\r\n}\r\n\r\n/**\r\n * This dispose method assumes it's working on a local copy and is unsafe for external use.\r\n */\r\nfunction disposeTheseInternal(\r\n\tdisposables:IDisposable[],\r\n\ttrapExceptions:boolean,\r\n\tindex:number = 0):any[]\r\n{\r\n\tvar exceptions:any[];\r\n\tvar len = disposables.length;\r\n\r\n\tfor(; index -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import DisposableBase from "../Disposable/DisposableBase"; -import EventDispatcherEntry from "./EventDispatcherEntry"; +import { DisposableBase } from "../Disposable/DisposableBase"; +import { IEventListener } from "./IEventListener"; +import { EventDispatcherEntry } from "./EventDispatcherEntry"; +import { IEventDispatcher } from "./IEventDispatcher"; export interface IEventBase { type: string; target: TTarget; diff --git a/dist/umd.min/System/Events/EventDispatcherBase.js b/dist/umd.min/System/Events/EventDispatcherBase.js index e0332e52..99649f98 100644 --- a/dist/umd.min/System/Events/EventDispatcherBase.js +++ b/dist/umd.min/System/Events/EventDispatcherBase.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(e,t){function i(){this.constructor=e}for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../Utility/shallowCopy","../Disposable/DisposableBase","../Collections/Array/Utility","./EventDispatcherEntry","../Disposable/dispose"],e)}(function(e,t){"use strict";function i(){var e=this.params;e.dispatcher.removeEntry(this),e.dispatcher=null}var r=e("../Utility/shallowCopy"),n=e("../Disposable/DisposableBase"),s=e("../Collections/Array/Utility"),o=e("./EventDispatcherEntry"),p=e("../Disposable/dispose"),a="disposing",c="disposed",u=function(e){function t(){e.apply(this,arguments),this._isDisposing=!1}return __extends(t,e),t.prototype.addEventListener=function(e,t,r){void 0===r&&(r=0);var n=this._entries;n||(this._entries=n=[]),n.push(new o["default"](e,t,{priority:r||0,dispatcher:this},i))},t.prototype.removeEntry=function(e){return!!this._entries&&0!=s.remove(this._entries,e)},t.prototype.registerEventListener=function(e,t,i){void 0===i&&(i=0),this.hasEventListener(e,t)||this.addEventListener(e,t,i)},t.prototype.hasEventListener=function(e,t){var i=this._entries;return i&&i.some(function(i){return e==i.type&&(!t||t==i.listener)})},t.prototype.removeEventListener=function(e,t){p["default"].these(this._entries.filter(function(i){return i.matches(e,t)}))},t.prototype.dispatchEvent=function(e,t){var i=this,n=this,s=n._entries;if(!s||!s.length)return!1;var o;"string"==typeof e?(o=Event&&Object.create(Event)||{},t||(t={}),t.cancellable&&(o.cancellable=!0),o.target=n,o.type=e):o=e;var p=o.type,a=s.filter(function(e){return e.type==p});return a.length?(a.sort(function(e,t){return t.params.priority-e.params.priority}),a.forEach(function(e){var t=Object.create(Event);r["default"](o,t),t.target=i,e.dispatch(t)}),!0):!1},Object.defineProperty(t,"DISPOSING",{get:function(){return a},enumerable:!0,configurable:!0}),Object.defineProperty(t,"DISPOSED",{get:function(){return c},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isDisposing",{get:function(){return this._isDisposing},enumerable:!0,configurable:!0}),t.prototype.dispose=function(){var t=this;if(!t.wasDisposed&&!t._isDisposing){t._isDisposing=!0,t.dispatchEvent(a),e.prototype.dispose.call(this),t.dispatchEvent(c);var i=t._entries;i&&(this._entries=null,i.forEach(function(e){return e.dispose()}))}},t}(n["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=u}); +var __extends=this&&this.__extends||function(e,t){function i(){this.constructor=e}for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../Collections/Array/Utility","../Utility/shallowCopy","../Disposable/DisposableBase","../Disposable/dispose","./EventDispatcherEntry"],e)}(function(e,t){"use strict";function i(){var e=this.params;e.dispatcher.removeEntry(this),e.dispatcher=null}var r=e("../Collections/Array/Utility"),n=e("../Utility/shallowCopy"),s=e("../Disposable/DisposableBase"),o=e("../Disposable/dispose"),p=e("./EventDispatcherEntry"),a="disposing",c="disposed",u=function(e){function t(){e.apply(this,arguments),this._isDisposing=!1}return __extends(t,e),t.prototype.addEventListener=function(e,t,r){void 0===r&&(r=0);var n=this._entries;n||(this._entries=n=[]),n.push(new p.EventDispatcherEntry(e,t,{priority:r||0,dispatcher:this},i))},t.prototype.removeEntry=function(e){return!!this._entries&&0!=r.remove(this._entries,e)},t.prototype.registerEventListener=function(e,t,i){void 0===i&&(i=0),this.hasEventListener(e,t)||this.addEventListener(e,t,i)},t.prototype.hasEventListener=function(e,t){var i=this._entries;return i&&i.some(function(i){return e==i.type&&(!t||t==i.listener)})},t.prototype.removeEventListener=function(e,t){o.dispose.these(this._entries.filter(function(i){return i.matches(e,t)}))},t.prototype.dispatchEvent=function(e,t){var i=this,r=this,s=r._entries;if(!s||!s.length)return!1;var o;"string"==typeof e?(o=Event&&Object.create(Event)||{},t||(t={}),t.cancellable&&(o.cancellable=!0),o.target=r,o.type=e):o=e;var p=o.type,a=s.filter(function(e){return e.type==p});return a.length?(a.sort(function(e,t){return t.params.priority-e.params.priority}),a.forEach(function(e){var t=Object.create(Event);n.shallowCopy(o,t),t.target=i,e.dispatch(t)}),!0):!1},Object.defineProperty(t,"DISPOSING",{get:function(){return a},enumerable:!0,configurable:!0}),Object.defineProperty(t,"DISPOSED",{get:function(){return c},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isDisposing",{get:function(){return this._isDisposing},enumerable:!0,configurable:!0}),t.prototype.dispose=function(){var t=this;if(!t.wasDisposed&&!t._isDisposing){t._isDisposing=!0,t.dispatchEvent(a),e.prototype.dispose.call(this),t.dispatchEvent(c);var i=t._entries;i&&(this._entries=null,i.forEach(function(e){return e.dispose()}))}},t}(s.DisposableBase);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=u}); //# sourceMappingURL=EventDispatcherBase.js.map diff --git a/dist/umd.min/System/Events/EventDispatcherBase.js.map b/dist/umd.min/System/Events/EventDispatcherBase.js.map index 25bb8275..c8635283 100644 --- a/dist/umd.min/System/Events/EventDispatcherBase.js.map +++ b/dist/umd.min/System/Events/EventDispatcherBase.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Events/EventDispatcherBase.js","System/Events/EventDispatcherBase.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","entryFinalizer","params","dispatcher","removeEntry","shallowCopy_1","DisposableBase_1","AU","EventDispatcherEntry_1","dispose_1","DISPOSING","DISPOSED","EventDispatcherBase","_super","apply","arguments","_isDisposing","addEventListener","type","listener","priority","e","_entries","push","entry","remove","registerEventListener","hasEventListener","some","value","removeEventListener","these","filter","matches","dispatchEvent","_this","_","l","length","event","Event","cancellable","target","entries","sort","a","forEach","newEvent","dispatch","defineProperty","get","enumerable","configurable","dispose","wasDisposed","call"],"mappings":"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","file":"System/Events/EventDispatcherBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../Utility/shallowCopy\", \"../Disposable/DisposableBase\", \"../Collections/Array/Utility\", \"./EventDispatcherEntry\", \"../Disposable/dispose\"], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var shallowCopy_1 = require(\"../Utility/shallowCopy\");\n var DisposableBase_1 = require(\"../Disposable/DisposableBase\");\n var AU = require(\"../Collections/Array/Utility\");\n var EventDispatcherEntry_1 = require(\"./EventDispatcherEntry\");\n var dispose_1 = require(\"../Disposable/dispose\");\n var DISPOSING = 'disposing', DISPOSED = 'disposed';\n function entryFinalizer() {\n var p = this.params;\n p.dispatcher.removeEntry(this);\n p.dispatcher = null;\n }\n var EventDispatcherBase = (function (_super) {\n __extends(EventDispatcherBase, _super);\n function EventDispatcherBase() {\n _super.apply(this, arguments);\n this._isDisposing = false;\n }\n EventDispatcherBase.prototype.addEventListener = function (type, listener, priority) {\n if (priority === void 0) { priority = 0; }\n var e = this._entries;\n if (!e)\n this._entries = e = [];\n e.push(new EventDispatcherEntry_1.default(type, listener, {\n priority: priority || 0,\n dispatcher: this\n }, entryFinalizer));\n };\n EventDispatcherBase.prototype.removeEntry = function (entry) {\n return !!this._entries && AU.remove(this._entries, entry) != 0;\n };\n EventDispatcherBase.prototype.registerEventListener = function (type, listener, priority) {\n if (priority === void 0) { priority = 0; }\n if (!this.hasEventListener(type, listener))\n this.addEventListener(type, listener, priority);\n };\n EventDispatcherBase.prototype.hasEventListener = function (type, listener) {\n var e = this._entries;\n return e && e.some(function (value) {\n return type == value.type && (!listener || listener == value.listener);\n });\n };\n EventDispatcherBase.prototype.removeEventListener = function (type, listener) {\n dispose_1.default.these(this._entries.filter(function (entry) { return entry.matches(type, listener); }));\n };\n EventDispatcherBase.prototype.dispatchEvent = function (e, params) {\n var _this = this;\n var _ = this, l = _._entries;\n if (!l || !l.length)\n return false;\n var event;\n if (typeof e == \"string\") {\n event = Event && Object.create(Event) || {};\n if (!params)\n params = {};\n if (params['cancellable'])\n event.cancellable = true;\n event.target = _;\n event.type = e;\n }\n else\n event = e;\n var type = event.type;\n var entries = l.filter(function (e) { return e.type == type; });\n if (!entries.length)\n return false;\n entries.sort(function (a, b) { return b.params.priority - a.params.priority; });\n entries.forEach(function (entry) {\n var newEvent = Object.create(Event);\n shallowCopy_1.default(event, newEvent);\n newEvent.target = _this;\n entry.dispatch(newEvent);\n });\n return true;\n };\n Object.defineProperty(EventDispatcherBase, \"DISPOSING\", {\n get: function () { return DISPOSING; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventDispatcherBase, \"DISPOSED\", {\n get: function () { return DISPOSED; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventDispatcherBase.prototype, \"isDisposing\", {\n get: function () {\n return this._isDisposing;\n },\n enumerable: true,\n configurable: true\n });\n EventDispatcherBase.prototype.dispose = function () {\n var _ = this;\n if (!_.wasDisposed && !_._isDisposing) {\n _._isDisposing = true;\n _.dispatchEvent(DISPOSING);\n _super.prototype.dispose.call(this);\n _.dispatchEvent(DISPOSED);\n var l = _._entries;\n if (l) {\n this._entries = null;\n l.forEach(function (e) { return e.dispose(); });\n }\n }\n };\n return EventDispatcherBase;\n }(DisposableBase_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = EventDispatcherBase;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n\r\nimport shallowCopy from \"../Utility/shallowCopy\";\r\nimport DisposableBase from \"../Disposable/DisposableBase\";\r\nimport * as AU from \"../Collections/Array/Utility\";\r\nimport EventDispatcherEntry from \"./EventDispatcherEntry\";\r\nimport dispose from \"../Disposable/dispose\";\r\n\r\nconst DISPOSING:string = 'disposing',\r\n DISPOSED:string = 'disposed';\r\n\r\n// The following interfaces are exported for sub class implementation.\r\n\r\nexport interface IEventBase {\r\n\ttype: string;\r\n\ttarget: TTarget;\r\n}\r\n\r\nexport interface IEvent extends IEventBase {\r\n\r\n}\r\n\r\nexport interface IEntryParams\r\n{\r\n\tpriority:number;\r\n\tdispatcher:EventDispatcherBase;\r\n}\r\n\r\nfunction entryFinalizer()\r\n{\r\n\tvar p:IEntryParams = this.params;\r\n\tp.dispatcher.removeEntry(this);\r\n\tp.dispatcher = null;\r\n}\r\n\r\nexport default\r\nclass EventDispatcherBase extends DisposableBase implements IEventDispatcher\r\n{\r\n\r\n\tprotected _entries:EventDispatcherEntry[];\r\n\r\n\taddEventListener(\r\n\t\ttype:string,\r\n\t\tlistener:IEventListener,\r\n\t\tpriority:number = 0):void\r\n\t{\r\n\t\tvar e = this._entries;\r\n\t\tif(!e) this._entries = e = [];\r\n\r\n\t\t// flash/vibe.js means of adding is indiscriminate and will double add listeners...\r\n\t\t// we can then avoid double adds by including a 'registerEventListener' method.\r\n\t\te.push(\r\n\t\t\tnew EventDispatcherEntry(type, listener, {\r\n\t\t\t\t\tpriority: priority || 0,\r\n\t\t\t\t\tdispatcher: this\r\n\t\t\t\t},\r\n\t\t\t\tentryFinalizer));\r\n\t}\r\n\r\n\tremoveEntry(entry:EventDispatcherEntry):boolean\r\n\t{\r\n\t\treturn !!this._entries && AU.remove(this._entries, entry)!=0;\r\n\t}\r\n\r\n\t// Allow for simple add once mechanism.\r\n\tregisterEventListener(\r\n\t\ttype:string,\r\n\t\tlistener:IEventListener,\r\n\t\tpriority:number = 0):void//, useWeakReference: boolean= false)\r\n\t{\r\n\t\tif(!this.hasEventListener(type, listener))\r\n\t\t\tthis.addEventListener(type, listener, priority);\r\n\t}\r\n\r\n\thasEventListener(type:string, listener?:IEventListener):boolean\r\n\t{\r\n\t\tvar e = this._entries;\r\n\t\treturn e && e.some(\r\n\t\t\t\t(value:EventDispatcherEntry):boolean =>\r\n\t\t\t\ttype==value.type && (!listener || listener==value.listener)\r\n\t\t\t);\r\n\t}\r\n\r\n\tremoveEventListener(\r\n\t\ttype:string,\r\n\t\tlistener:IEventListener):void\r\n\t{\r\n\t\tdispose.these(this._entries.filter(entry=> entry.matches(type, listener)));\r\n\t}\r\n\r\n\tdispatchEvent(type:string, params?:any):boolean;\r\n\tdispatchEvent(event:IEvent):boolean;\r\n\tdispatchEvent(e:any, params?:any):boolean\r\n\t{\r\n\r\n\t\tvar _ = this, l = _._entries;\r\n\t\tif(!l || !l.length)\r\n\t\t\treturn false;\r\n\r\n\t\tvar event:IEventBase;\r\n\r\n\t\tif(typeof e==\"string\")\r\n\t\t{\r\n\t\t\tevent = Event && Object.create(Event) || {};\r\n\t\t\tif(!params)\r\n\t\t\t\tparams = {};\r\n\t\t\tif(params['cancellable'])\r\n\t\t\t\t(event).cancellable = true;\r\n\t\t\tevent.target = _;\r\n\t\t\tevent.type = e;\r\n\t\t}\r\n\t\telse\r\n\t\t\tevent = e;\r\n\r\n\t\tvar type = event.type;\r\n\r\n\t\t// noinspection JSMismatchedCollectionQueryUpdate\r\n\t\tvar entries:EventDispatcherEntry[] = l.filter(e=>e.type==type);//, propagate = true, prevent = false;\r\n\t\tif(!entries.length)\r\n\t\t\treturn false;\r\n\r\n\t\tentries.sort((a, b)=> b.params.priority - a.params.priority);\r\n\r\n\t\t// For now... Just use simple...\r\n\t\tentries.forEach(\r\n\t\t\tentry=>\r\n\t\t\t{\r\n\t\t\t\tvar newEvent = Object.create(Event);\r\n\t\t\t\tshallowCopy(event, newEvent);\r\n\t\t\t\tnewEvent.target = this;\r\n\t\t\t\tentry.dispatch(newEvent);\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\treturn true;\r\n\r\n\t}\r\n\r\n\tstatic get DISPOSING() { return DISPOSING; }\r\n\r\n\tstatic get DISPOSED() { return DISPOSED; }\r\n\r\n\t// When dispatching events, we need a way to prevent recursion when disposing.\r\n\tprivate _isDisposing:boolean = false;\r\n\tget isDisposing():boolean\r\n\t{\r\n\t\treturn this._isDisposing;\r\n\t}\r\n\r\n\t// Override the public method here since EventDispatcher will end up doing things a bit differently from here on.\r\n\tpublic dispose()\r\n\t{\r\n\r\n\t\t// Having a disposing event can allow for child objects to automatically release themselves when their parent is disposed.\r\n\t\tvar _ = this;\r\n\t\tif(!_.wasDisposed && !_._isDisposing)\r\n\t\t{\r\n\t\t\t_._isDisposing = true;\r\n\t\t\t_.dispatchEvent(DISPOSING);\r\n\r\n\t\t\tsuper.dispose();\r\n\r\n\t\t\t_.dispatchEvent(DISPOSED);\r\n\r\n\t\t\tvar l = _._entries;\r\n\t\t\tif(l)\r\n\t\t\t{\r\n\t\t\t\tthis._entries = null;\r\n\t\t\t\tl.forEach(e=> e.dispose());\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n}\r\n\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Events/EventDispatcherBase.js","System/Events/EventDispatcherBase.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","entryFinalizer","params","dispatcher","removeEntry","AU","shallowCopy_1","DisposableBase_1","dispose_1","EventDispatcherEntry_1","DISPOSING","DISPOSED","EventDispatcherBase","_super","apply","arguments","_isDisposing","addEventListener","type","listener","priority","e","_entries","push","EventDispatcherEntry","entry","remove","registerEventListener","hasEventListener","some","value","removeEventListener","dispose","these","filter","matches","dispatchEvent","_this","_","l","length","event","Event","cancellable","target","entries","sort","a","forEach","newEvent","shallowCopy","dispatch","defineProperty","get","enumerable","configurable","wasDisposed","call","DisposableBase"],"mappings":"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","file":"System/Events/EventDispatcherBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../Collections/Array/Utility\", \"../Utility/shallowCopy\", \"../Disposable/DisposableBase\", \"../Disposable/dispose\", \"./EventDispatcherEntry\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var AU = require(\"../Collections/Array/Utility\");\n var shallowCopy_1 = require(\"../Utility/shallowCopy\");\n var DisposableBase_1 = require(\"../Disposable/DisposableBase\");\n var dispose_1 = require(\"../Disposable/dispose\");\n var EventDispatcherEntry_1 = require(\"./EventDispatcherEntry\");\n var DISPOSING = 'disposing', DISPOSED = 'disposed';\n function entryFinalizer() {\n var p = this.params;\n p.dispatcher.removeEntry(this);\n p.dispatcher = null;\n }\n var EventDispatcherBase = (function (_super) {\n __extends(EventDispatcherBase, _super);\n function EventDispatcherBase() {\n _super.apply(this, arguments);\n this._isDisposing = false;\n }\n EventDispatcherBase.prototype.addEventListener = function (type, listener, priority) {\n if (priority === void 0) { priority = 0; }\n var e = this._entries;\n if (!e)\n this._entries = e = [];\n e.push(new EventDispatcherEntry_1.EventDispatcherEntry(type, listener, {\n priority: priority || 0,\n dispatcher: this\n }, entryFinalizer));\n };\n EventDispatcherBase.prototype.removeEntry = function (entry) {\n return !!this._entries && AU.remove(this._entries, entry) != 0;\n };\n EventDispatcherBase.prototype.registerEventListener = function (type, listener, priority) {\n if (priority === void 0) { priority = 0; }\n if (!this.hasEventListener(type, listener))\n this.addEventListener(type, listener, priority);\n };\n EventDispatcherBase.prototype.hasEventListener = function (type, listener) {\n var e = this._entries;\n return e && e.some(function (value) {\n return type == value.type && (!listener || listener == value.listener);\n });\n };\n EventDispatcherBase.prototype.removeEventListener = function (type, listener) {\n dispose_1.dispose.these(this._entries.filter(function (entry) { return entry.matches(type, listener); }));\n };\n EventDispatcherBase.prototype.dispatchEvent = function (e, params) {\n var _this = this;\n var _ = this, l = _._entries;\n if (!l || !l.length)\n return false;\n var event;\n if (typeof e == \"string\") {\n event = Event && Object.create(Event) || {};\n if (!params)\n params = {};\n if (params['cancellable'])\n event.cancellable = true;\n event.target = _;\n event.type = e;\n }\n else\n event = e;\n var type = event.type;\n var entries = l.filter(function (e) { return e.type == type; });\n if (!entries.length)\n return false;\n entries.sort(function (a, b) { return b.params.priority - a.params.priority; });\n entries.forEach(function (entry) {\n var newEvent = Object.create(Event);\n shallowCopy_1.shallowCopy(event, newEvent);\n newEvent.target = _this;\n entry.dispatch(newEvent);\n });\n return true;\n };\n Object.defineProperty(EventDispatcherBase, \"DISPOSING\", {\n get: function () { return DISPOSING; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventDispatcherBase, \"DISPOSED\", {\n get: function () { return DISPOSED; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventDispatcherBase.prototype, \"isDisposing\", {\n get: function () {\n return this._isDisposing;\n },\n enumerable: true,\n configurable: true\n });\n EventDispatcherBase.prototype.dispose = function () {\n var _ = this;\n if (!_.wasDisposed && !_._isDisposing) {\n _._isDisposing = true;\n _.dispatchEvent(DISPOSING);\n _super.prototype.dispose.call(this);\n _.dispatchEvent(DISPOSED);\n var l = _._entries;\n if (l) {\n this._entries = null;\n l.forEach(function (e) { return e.dispose(); });\n }\n }\n };\n return EventDispatcherBase;\n }(DisposableBase_1.DisposableBase));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = EventDispatcherBase;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport * as AU from \"../Collections/Array/Utility\";\r\nimport {shallowCopy} from \"../Utility/shallowCopy\";\r\nimport {DisposableBase} from \"../Disposable/DisposableBase\";\r\nimport {dispose} from \"../Disposable/dispose\";\r\nimport {IEventListener} from \"./IEventListener\";\r\nimport {EventDispatcherEntry} from \"./EventDispatcherEntry\";\r\nimport {IEventDispatcher} from \"./IEventDispatcher\";\r\n\r\nconst DISPOSING:string = 'disposing',\r\n DISPOSED:string = 'disposed';\r\n\r\n// The following interfaces are exported for sub class implementation.\r\n\r\nexport interface IEventBase\r\n{\r\n\ttype:string;\r\n\ttarget:TTarget;\r\n}\r\n\r\nexport interface IEvent extends IEventBase\r\n{\r\n\r\n}\r\n\r\nexport interface IEntryParams\r\n{\r\n\tpriority:number;\r\n\tdispatcher:EventDispatcherBase;\r\n}\r\n\r\nfunction entryFinalizer()\r\n{\r\n\tvar p:IEntryParams = this.params;\r\n\tp.dispatcher.removeEntry(this);\r\n\tp.dispatcher = null;\r\n}\r\n\r\nexport default\r\nclass EventDispatcherBase extends DisposableBase implements IEventDispatcher\r\n{\r\n\r\n\tprotected _entries:EventDispatcherEntry[];\r\n\r\n\taddEventListener(\r\n\t\ttype:string,\r\n\t\tlistener:IEventListener,\r\n\t\tpriority:number = 0):void\r\n\t{\r\n\t\tvar e = this._entries;\r\n\t\tif(!e) this._entries = e = [];\r\n\r\n\t\t// flash/vibe.js means of adding is indiscriminate and will double add listeners...\r\n\t\t// we can then avoid double adds by including a 'registerEventListener' method.\r\n\t\te.push(\r\n\t\t\tnew EventDispatcherEntry(type, listener, {\r\n\t\t\t\t\tpriority: priority || 0,\r\n\t\t\t\t\tdispatcher: this\r\n\t\t\t\t},\r\n\t\t\t\tentryFinalizer));\r\n\t}\r\n\r\n\tremoveEntry(entry:EventDispatcherEntry):boolean\r\n\t{\r\n\t\treturn !!this._entries && AU.remove(this._entries, entry)!=0;\r\n\t}\r\n\r\n\t// Allow for simple add once mechanism.\r\n\tregisterEventListener(\r\n\t\ttype:string,\r\n\t\tlistener:IEventListener,\r\n\t\tpriority:number = 0):void//, useWeakReference: boolean= false)\r\n\t{\r\n\t\tif(!this.hasEventListener(type, listener))\r\n\t\t\tthis.addEventListener(type, listener, priority);\r\n\t}\r\n\r\n\thasEventListener(type:string, listener?:IEventListener):boolean\r\n\t{\r\n\t\tvar e = this._entries;\r\n\t\treturn e && e.some(\r\n\t\t\t\t(value:EventDispatcherEntry):boolean =>\r\n\t\t\t\ttype==value.type && (!listener || listener==value.listener)\r\n\t\t\t);\r\n\t}\r\n\r\n\tremoveEventListener(\r\n\t\ttype:string,\r\n\t\tlistener:IEventListener):void\r\n\t{\r\n\t\tdispose.these(this._entries.filter(entry=> entry.matches(type, listener)));\r\n\t}\r\n\r\n\tdispatchEvent(type:string, params?:any):boolean;\r\n\tdispatchEvent(event:IEvent):boolean;\r\n\tdispatchEvent(e:any, params?:any):boolean\r\n\t{\r\n\r\n\t\tvar _ = this, l = _._entries;\r\n\t\tif(!l || !l.length)\r\n\t\t\treturn false;\r\n\r\n\t\tvar event:IEventBase;\r\n\r\n\t\tif(typeof e==\"string\")\r\n\t\t{\r\n\t\t\tevent = Event && Object.create(Event) || {};\r\n\t\t\tif(!params)\r\n\t\t\t\tparams = {};\r\n\t\t\tif(params['cancellable'])\r\n\t\t\t\t(event).cancellable = true;\r\n\t\t\tevent.target = _;\r\n\t\t\tevent.type = e;\r\n\t\t}\r\n\t\telse\r\n\t\t\tevent = e;\r\n\r\n\t\tvar type = event.type;\r\n\r\n\t\t// noinspection JSMismatchedCollectionQueryUpdate\r\n\t\tvar entries:EventDispatcherEntry[] = l.filter(e=>e.type==type);//, propagate = true, prevent = false;\r\n\t\tif(!entries.length)\r\n\t\t\treturn false;\r\n\r\n\t\tentries.sort((a, b)=> b.params.priority - a.params.priority);\r\n\r\n\t\t// For now... Just use simple...\r\n\t\tentries.forEach(\r\n\t\t\tentry=>\r\n\t\t\t{\r\n\t\t\t\tvar newEvent = Object.create(Event);\r\n\t\t\t\tshallowCopy(event, newEvent);\r\n\t\t\t\tnewEvent.target = this;\r\n\t\t\t\tentry.dispatch(newEvent);\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\treturn true;\r\n\r\n\t}\r\n\r\n\tstatic get DISPOSING() { return DISPOSING; }\r\n\r\n\tstatic get DISPOSED() { return DISPOSED; }\r\n\r\n\t// When dispatching events, we need a way to prevent recursion when disposing.\r\n\tprivate _isDisposing:boolean = false;\r\n\tget isDisposing():boolean\r\n\t{\r\n\t\treturn this._isDisposing;\r\n\t}\r\n\r\n\t// Override the public method here since EventDispatcher will end up doing things a bit differently from here on.\r\n\tpublic dispose()\r\n\t{\r\n\r\n\t\t// Having a disposing event can allow for child objects to automatically release themselves when their parent is disposed.\r\n\t\tvar _ = this;\r\n\t\tif(!_.wasDisposed && !_._isDisposing)\r\n\t\t{\r\n\t\t\t_._isDisposing = true;\r\n\t\t\t_.dispatchEvent(DISPOSING);\r\n\r\n\t\t\tsuper.dispose();\r\n\r\n\t\t\t_.dispatchEvent(DISPOSED);\r\n\r\n\t\t\tvar l = _._entries;\r\n\t\t\tif(l)\r\n\t\t\t{\r\n\t\t\t\tthis._entries = null;\r\n\t\t\t\tl.forEach(e=> e.dispose());\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n}\r\n\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Events/EventDispatcherEntry.d.ts b/dist/umd.min/System/Events/EventDispatcherEntry.d.ts index 73b2f602..b7248a12 100644 --- a/dist/umd.min/System/Events/EventDispatcherEntry.d.ts +++ b/dist/umd.min/System/Events/EventDispatcherEntry.d.ts @@ -1,10 +1,11 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import DisposableBase from "../Disposable/DisposableBase"; -export default class EventDispatcherEntry extends DisposableBase implements IEquatable> { +import { DisposableBase } from "../Disposable/DisposableBase"; +import { IEventListener } from "./IEventListener"; +import { IEquatable } from "../IEquatable"; +export declare class EventDispatcherEntry extends DisposableBase implements IEquatable> { type: string; listener: IEventListener; params: TParams; @@ -14,3 +15,4 @@ export default class EventDispatcherEntry extends DisposableBase implem matches(type: string, listener: IEventListener): boolean; equals(other: EventDispatcherEntry): boolean; } +export default EventDispatcherEntry; diff --git a/dist/umd.min/System/Events/EventDispatcherEntry.js b/dist/umd.min/System/Events/EventDispatcherEntry.js index 2fd7639a..3857b763 100644 --- a/dist/umd.min/System/Events/EventDispatcherEntry.js +++ b/dist/umd.min/System/Events/EventDispatcherEntry.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(e,t){function n(){this.constructor=e}for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../Types","../Disposable/DisposableBase","../Exceptions/ArgumentNullException","../Exceptions/ArgumentException","../Compare"],e)}(function(e,t){"use strict";var n=e("../Types"),i=e("../Disposable/DisposableBase"),s=e("../Exceptions/ArgumentNullException"),o=e("../Exceptions/ArgumentException"),r=e("../Compare"),p=function(e){function t(t,i,r,p){if(void 0===r&&(r=null),e.call(this,p),this.type=t,this.listener=i,this.params=r,!i)throw new s["default"]("listener");if(n["default"].isObject(i)&&!n["default"].hasMemberOfType(i,"handleEvent",n["default"].FUNCTION))throw new o["default"]("listener","is invalid type. Must be a function or an object with 'handleEvent'.");var a=this;a.type=t,a.listener=i,a.params=r,a._disposableObjectName="EventDispatcherEntry"}return __extends(t,e),t.prototype._onDispose=function(){e.prototype._onDispose.call(this),this.listener=null},t.prototype.dispatch=function(e){var t=this;if(t.wasDisposed)return!1;var i=t.listener,s=i&&e.type==t.type;return s&&(n["default"].isFunction(i)?t.listener(e):i.handleEvent(e)),s},t.prototype.matches=function(e,t){var n=this;return n.type==e&&n.listener==t},t.prototype.equals=function(e){var t=this;return t.matches(e.type,e.listener)&&r.areEquivalent(t.params,e.params,!1)},t}(i["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=p}); +var __extends=this&&this.__extends||function(e,t){function n(){this.constructor=e}for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../Types","../Disposable/DisposableBase","../Exceptions/ArgumentNullException","../Exceptions/ArgumentException","../Compare"],e)}(function(e,t){"use strict";var n=e("../Types"),i=e("../Disposable/DisposableBase"),s=e("../Exceptions/ArgumentNullException"),o=e("../Exceptions/ArgumentException"),r=e("../Compare"),p=function(e){function t(t,i,r,p){if(void 0===r&&(r=null),e.call(this,p),this.type=t,this.listener=i,this.params=r,!i)throw new s.ArgumentNullException("listener");if(n.Type.isObject(i)&&!n.Type.hasMemberOfType(i,"handleEvent",n.Type.FUNCTION))throw new o.ArgumentException("listener","is invalid type. Must be a function or an object with 'handleEvent'.");var a=this;a.type=t,a.listener=i,a.params=r,a._disposableObjectName="EventDispatcherEntry"}return __extends(t,e),t.prototype._onDispose=function(){e.prototype._onDispose.call(this),this.listener=null},t.prototype.dispatch=function(e){var t=this;if(t.wasDisposed)return!1;var i=t.listener,s=i&&e.type==t.type;return s&&(n.Type.isFunction(i)?t.listener(e):i.handleEvent(e)),s},t.prototype.matches=function(e,t){var n=this;return n.type==e&&n.listener==t},t.prototype.equals=function(e){var t=this;return t.matches(e.type,e.listener)&&r.areEquivalent(t.params,e.params,!1)},t}(i.DisposableBase);t.EventDispatcherEntry=p,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=p}); //# sourceMappingURL=EventDispatcherEntry.js.map diff --git a/dist/umd.min/System/Events/EventDispatcherEntry.js.map b/dist/umd.min/System/Events/EventDispatcherEntry.js.map index f97ea98c..8da7e8b2 100644 --- a/dist/umd.min/System/Events/EventDispatcherEntry.js.map +++ b/dist/umd.min/System/Events/EventDispatcherEntry.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Events/EventDispatcherEntry.js","System/Events/EventDispatcherEntry.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","Types_1","DisposableBase_1","ArgumentNullException_1","ArgumentException_1","Compare_1","EventDispatcherEntry","_super","type","listener","params","finalizer","call","isObject","hasMemberOfType","FUNCTION","_","_disposableObjectName","_onDispose","dispatch","e","wasDisposed","l","isFunction","handleEvent","matches","equals","other","areEquivalent","defineProperty","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,WAAY,+BAAgC,sCAAuC,kCAAmC,cAAeN,IAExK,SAAUI,EAASF,GCVtB,YAEA,IAAAM,GAAAJ,EAAiB,YACjBK,EAAAL,EAA2B,gCAC3BM,EAAAN,EAAkC,uCAClCO,EAAAP,EAA8B,mCAC9BQ,EAAAR,EAA4B,cAE5BS,EAAA,SAAAC,GAKC,QAAAD,GACQE,EACAC,EACAC,EACPC,GAIA,GALA,SAAAD,IAAAA,EAAA,MAGAH,EAAAK,KAAA7B,KAAM4B,GALC5B,KAAAyB,KAAAA,EACAzB,KAAA0B,SAAAA,EACA1B,KAAA2B,OAAAA,GAKHD,EACH,KAAM,IAAIN,GAAAA,WAAsB,WACjC,IAAGF,EAAAA,WAAKY,SAASJ,KAAcR,EAAAA,WAAKa,gBAAgBL,EAAU,cAAeR,EAAAA,WAAKc,UACjF,KAAM,IAAIX,GAAAA,WAAkB,WAAY,wEAEzC,IAAIY,GAAIjC,IACRiC,GAAER,KAAOA,EACTQ,EAAEP,SAAWA,EACbO,EAAEN,OAASA,EACXM,EAAEC,sBAAwB,uBAsD5B,MA1EQnC,WAAAwB,EAAAC,GAuBGD,EAAAhB,UAAA4B,WAAV,WAECX,EAAAjB,UAAM4B,WAAUN,KAAA7B,MAChBA,KAAK0B,SAAW,MAQjBH,EAAAhB,UAAA6B,SAAA,SAASC,GAER,GAAIJ,GAAIjC,IACR,IAAGiC,EAAEK,YAAa,OAAO,CAEzB,IAAIC,GAAIN,EAAEP,SAAUzB,EAAIsC,GAAKF,EAAEZ,MAAMQ,EAAER,IAQvC,OAPGxB,KAECiB,EAAAA,WAAKsB,WAAWD,GACZN,EAAGP,SAASW,GAEIE,EAAGE,YAAYJ,IAEhCpC,GASRsB,EAAAhB,UAAAmC,QAAA,SAAQjB,EAAaC,GAEpB,GAAIO,GAAIjC,IACR,OAAOiC,GAAER,MAAMA,GACXQ,EAAEP,UAAUA,GAQjBH,EAAAhB,UAAAoC,OAAA,SAAOC,GAEN,GAAIX,GAAIjC,IACR,OAAOiC,GAAES,QAAQE,EAAMnB,KAAKmB,EAAMlB,WAC9BJ,EAAAuB,cAAcZ,EAAEN,OAAQiB,EAAMjB,QAAQ,IAE5CJ,GA1EQJ,EAAAA,WAFRX,QAAAsC,eAAAlC,EAAA,cAAAmC,OAAA,IDyDInC,EAAAA,WAAkBW","file":"System/Events/EventDispatcherEntry.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../Types\", \"../Disposable/DisposableBase\", \"../Exceptions/ArgumentNullException\", \"../Exceptions/ArgumentException\", \"../Compare\"], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var Types_1 = require(\"../Types\");\n var DisposableBase_1 = require(\"../Disposable/DisposableBase\");\n var ArgumentNullException_1 = require(\"../Exceptions/ArgumentNullException\");\n var ArgumentException_1 = require(\"../Exceptions/ArgumentException\");\n var Compare_1 = require(\"../Compare\");\n var EventDispatcherEntry = (function (_super) {\n __extends(EventDispatcherEntry, _super);\n function EventDispatcherEntry(type, listener, params, finalizer) {\n if (params === void 0) { params = null; }\n _super.call(this, finalizer);\n this.type = type;\n this.listener = listener;\n this.params = params;\n if (!listener)\n throw new ArgumentNullException_1.default('listener');\n if (Types_1.default.isObject(listener) && !Types_1.default.hasMemberOfType(listener, \"handleEvent\", Types_1.default.FUNCTION))\n throw new ArgumentException_1.default('listener', \"is invalid type. Must be a function or an object with 'handleEvent'.\");\n var _ = this;\n _.type = type;\n _.listener = listener;\n _.params = params;\n _._disposableObjectName = \"EventDispatcherEntry\";\n }\n EventDispatcherEntry.prototype._onDispose = function () {\n _super.prototype._onDispose.call(this);\n this.listener = null;\n };\n EventDispatcherEntry.prototype.dispatch = function (e) {\n var _ = this;\n if (_.wasDisposed)\n return false;\n var l = _.listener, d = l && e.type == _.type;\n if (d) {\n if (Types_1.default.isFunction(l))\n _.listener(e);\n else\n l.handleEvent(e);\n }\n return d;\n };\n EventDispatcherEntry.prototype.matches = function (type, listener) {\n var _ = this;\n return _.type == type\n && _.listener == listener;\n };\n EventDispatcherEntry.prototype.equals = function (other) {\n var _ = this;\n return _.matches(other.type, other.listener)\n && Compare_1.areEquivalent(_.params, other.params, false);\n };\n return EventDispatcherEntry;\n }(DisposableBase_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = EventDispatcherEntry;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport Type from \"../Types\";\r\nimport DisposableBase from \"../Disposable/DisposableBase\";\r\nimport ArgumentNullException from \"../Exceptions/ArgumentNullException\";\r\nimport ArgumentException from \"../Exceptions/ArgumentException\";\r\nimport {areEquivalent} from \"../Compare\";\r\n\r\nexport default\r\nclass EventDispatcherEntry\r\nextends DisposableBase implements IEquatable>\r\n{\r\n\r\n\tconstructor(\r\n\t\tpublic type:string,\r\n\t\tpublic listener:IEventListener,\r\n\t\tpublic params:TParams = null,\r\n\t\tfinalizer?:() => void)//, useWeakReference: boolean = false)\r\n\t{\r\n\t\tsuper(finalizer);\r\n\r\n\t\tif(!listener)\r\n\t\t\tthrow new ArgumentNullException('listener');\r\n\t\tif(Type.isObject(listener) && !Type.hasMemberOfType(listener, \"handleEvent\", Type.FUNCTION))\r\n\t\t\tthrow new ArgumentException('listener', \"is invalid type. Must be a function or an object with 'handleEvent'.\");\r\n\r\n\t\tvar _ = this;\r\n\t\t_.type = type;\r\n\t\t_.listener = listener;\r\n\t\t_.params = params;\r\n\t\t_._disposableObjectName = \"EventDispatcherEntry\";\r\n\t}\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis.listener = null;\r\n\t}\r\n\r\n\t/**\r\n\t * Safely dispatches an event if entry is not disposed and type matches.\r\n\t * @param e\r\n\t * @returns {IEventListener|boolean}\r\n\t */\r\n\tdispatch(e:Event):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(_.wasDisposed) return false;\r\n\r\n\t\tvar l = _.listener, d = l && e.type==_.type;\r\n\t\tif(d)\r\n\t\t{\r\n\t\t\tif(Type.isFunction(l))\r\n\t\t\t\t(_).listener(e); // Use 'this' to ensure call reference.\r\n\t\t\telse\r\n\t\t\t\t(l).handleEvent(e);\r\n\t\t}\r\n\t\treturn d;\r\n\t}\r\n\r\n\t/**\r\n\t * Compares type and listener object only.\r\n\t * @param type\r\n\t * @param listener\r\n\t * @returns {boolean}\r\n\t */\r\n\tmatches(type:string, listener:IEventListener):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn _.type==type\r\n\t\t\t&& _.listener==listener;\r\n\t}\r\n\r\n\t/**\r\n\t * Compares type, listener, and priority.\r\n\t * @param other\r\n\t * @returns {boolean}\r\n\t */\r\n\tequals(other:EventDispatcherEntry):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn _.matches(other.type,other.listener)\r\n\t\t\t&& areEquivalent(_.params, other.params, false);\r\n\t}\r\n}"]} \ No newline at end of file +{"version":3,"sources":["System/Events/EventDispatcherEntry.js","System/Events/EventDispatcherEntry.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","Types_1","DisposableBase_1","ArgumentNullException_1","ArgumentException_1","Compare_1","EventDispatcherEntry","_super","type","listener","params","finalizer","call","ArgumentNullException","Type","isObject","hasMemberOfType","FUNCTION","ArgumentException","_","_disposableObjectName","_onDispose","dispatch","e","wasDisposed","l","isFunction","handleEvent","matches","equals","other","areEquivalent","DisposableBase","defineProperty","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,WAAY,+BAAgC,sCAAuC,kCAAmC,cAAeN,IAExK,SAAUI,EAASF,GAClB,YCZJ,IAAAM,GAAAJ,EAAmB,YACnBK,EAAAL,EAA6B,gCAC7BM,EAAAN,EAAoC,uCACpCO,EAAAP,EAAgC,mCAChCQ,EAAAR,EAA4B,cAI5BS,EAAA,SAAAC,GAIC,QAAAD,GACQE,EACAC,EACAC,EACPC,GAIA,GALA,SAAAD,IAAAA,EAAA,MAGAH,EAAAK,KAAA7B,KAAM4B,GALC5B,KAAAyB,KAAAA,EACAzB,KAAA0B,SAAAA,EACA1B,KAAA2B,OAAAA,GAKHD,EACH,KAAM,IAAIN,GAAAU,sBAAsB,WACjC,IAAGZ,EAAAa,KAAKC,SAASN,KAAcR,EAAAa,KAAKE,gBAAgBP,EAAU,cAAeR,EAAAa,KAAKG,UACjF,KAAM,IAAIb,GAAAc,kBAAkB,WAAY,wEAEzC,IAAIC,GAAIpC,IACRoC,GAAEX,KAAOA,EACTW,EAAEV,SAAWA,EACbU,EAAET,OAASA,EACXS,EAAEC,sBAAwB,uBAsD5B,MA1EQtC,WAAAwB,EAAAC,GAuBGD,EAAAhB,UAAA+B,WAAV,WAECd,EAAAjB,UAAM+B,WAAUT,KAAA7B,MAChBA,KAAK0B,SAAW,MAQjBH,EAAAhB,UAAAgC,SAAA,SAASC,GAER,GAAIJ,GAAIpC,IACR,IAAGoC,EAAEK,YAAa,OAAO,CAEzB,IAAIC,GAAIN,EAAEV,SAAUzB,EAAIyC,GAAKF,EAAEf,MAAMW,EAAEX,IAQvC,OAPGxB,KAECiB,EAAAa,KAAKY,WAAWD,GACZN,EAAGV,SAASc,GAEIE,EAAGE,YAAYJ,IAEhCvC,GASRsB,EAAAhB,UAAAsC,QAAA,SAAQpB,EAAaC,GAEpB,GAAIU,GAAIpC,IACR,OAAOoC,GAAEX,MAAMA,GACXW,EAAEV,UAAUA,GAQjBH,EAAAhB,UAAAuC,OAAA,SAAOC,GAEN,GAAIX,GAAIpC,IACR,OAAOoC,GAAES,QAAQE,EAAMtB,KAAMsB,EAAMrB,WAC/BJ,EAAA0B,cAAcZ,EAAET,OAAQoB,EAAMpB,QAAQ,IAE5CJ,GA1EQJ,EAAA8B,eADKrC,GAAAW,qBAAoBA,EA6EjCf,OAAA0C,eAAAtC,EAAA,cAAAuC,OAAA,IDlBIvC,EAAAA,WCkBWW","file":"System/Events/EventDispatcherEntry.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../Types\", \"../Disposable/DisposableBase\", \"../Exceptions/ArgumentNullException\", \"../Exceptions/ArgumentException\", \"../Compare\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var Types_1 = require(\"../Types\");\n var DisposableBase_1 = require(\"../Disposable/DisposableBase\");\n var ArgumentNullException_1 = require(\"../Exceptions/ArgumentNullException\");\n var ArgumentException_1 = require(\"../Exceptions/ArgumentException\");\n var Compare_1 = require(\"../Compare\");\n var EventDispatcherEntry = (function (_super) {\n __extends(EventDispatcherEntry, _super);\n function EventDispatcherEntry(type, listener, params, finalizer) {\n if (params === void 0) { params = null; }\n _super.call(this, finalizer);\n this.type = type;\n this.listener = listener;\n this.params = params;\n if (!listener)\n throw new ArgumentNullException_1.ArgumentNullException('listener');\n if (Types_1.Type.isObject(listener) && !Types_1.Type.hasMemberOfType(listener, \"handleEvent\", Types_1.Type.FUNCTION))\n throw new ArgumentException_1.ArgumentException('listener', \"is invalid type. Must be a function or an object with 'handleEvent'.\");\n var _ = this;\n _.type = type;\n _.listener = listener;\n _.params = params;\n _._disposableObjectName = \"EventDispatcherEntry\";\n }\n EventDispatcherEntry.prototype._onDispose = function () {\n _super.prototype._onDispose.call(this);\n this.listener = null;\n };\n EventDispatcherEntry.prototype.dispatch = function (e) {\n var _ = this;\n if (_.wasDisposed)\n return false;\n var l = _.listener, d = l && e.type == _.type;\n if (d) {\n if (Types_1.Type.isFunction(l))\n _.listener(e);\n else\n l.handleEvent(e);\n }\n return d;\n };\n EventDispatcherEntry.prototype.matches = function (type, listener) {\n var _ = this;\n return _.type == type\n && _.listener == listener;\n };\n EventDispatcherEntry.prototype.equals = function (other) {\n var _ = this;\n return _.matches(other.type, other.listener)\n && Compare_1.areEquivalent(_.params, other.params, false);\n };\n return EventDispatcherEntry;\n }(DisposableBase_1.DisposableBase));\n exports.EventDispatcherEntry = EventDispatcherEntry;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = EventDispatcherEntry;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {Type} from \"../Types\";\r\nimport {DisposableBase} from \"../Disposable/DisposableBase\";\r\nimport {ArgumentNullException} from \"../Exceptions/ArgumentNullException\";\r\nimport {ArgumentException} from \"../Exceptions/ArgumentException\";\r\nimport {areEquivalent} from \"../Compare\";\r\nimport {IEventListener} from \"./IEventListener\";\r\nimport {IEquatable} from \"../IEquatable\";\r\n\r\nexport class EventDispatcherEntry\r\nextends DisposableBase implements IEquatable>\r\n{\r\n\r\n\tconstructor(\r\n\t\tpublic type:string,\r\n\t\tpublic listener:IEventListener,\r\n\t\tpublic params:TParams = null,\r\n\t\tfinalizer?:() => void)//, useWeakReference: boolean = false)\r\n\t{\r\n\t\tsuper(finalizer);\r\n\r\n\t\tif(!listener)\r\n\t\t\tthrow new ArgumentNullException('listener');\r\n\t\tif(Type.isObject(listener) && !Type.hasMemberOfType(listener, \"handleEvent\", Type.FUNCTION))\r\n\t\t\tthrow new ArgumentException('listener', \"is invalid type. Must be a function or an object with 'handleEvent'.\");\r\n\r\n\t\tvar _ = this;\r\n\t\t_.type = type;\r\n\t\t_.listener = listener;\r\n\t\t_.params = params;\r\n\t\t_._disposableObjectName = \"EventDispatcherEntry\";\r\n\t}\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis.listener = null;\r\n\t}\r\n\r\n\t/**\r\n\t * Safely dispatches an event if entry is not disposed and type matches.\r\n\t * @param e\r\n\t * @returns {IEventListener|boolean}\r\n\t */\r\n\tdispatch(e:Event):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(_.wasDisposed) return false;\r\n\r\n\t\tvar l = _.listener, d = l && e.type==_.type;\r\n\t\tif(d)\r\n\t\t{\r\n\t\t\tif(Type.isFunction(l))\r\n\t\t\t\t(_).listener(e); // Use 'this' to ensure call reference.\r\n\t\t\telse\r\n\t\t\t\t(l).handleEvent(e);\r\n\t\t}\r\n\t\treturn d;\r\n\t}\r\n\r\n\t/**\r\n\t * Compares type and listener object only.\r\n\t * @param type\r\n\t * @param listener\r\n\t * @returns {boolean}\r\n\t */\r\n\tmatches(type:string, listener:IEventListener):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn _.type==type\r\n\t\t\t&& _.listener==listener;\r\n\t}\r\n\r\n\t/**\r\n\t * Compares type, listener, and priority.\r\n\t * @param other\r\n\t * @returns {boolean}\r\n\t */\r\n\tequals(other:EventDispatcherEntry):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn _.matches(other.type, other.listener)\r\n\t\t\t&& areEquivalent(_.params, other.params, false);\r\n\t}\r\n}\r\n\r\nexport default EventDispatcherEntry;"]} \ No newline at end of file diff --git a/dist/umd.min/System/Events/EventSimple.d.ts b/dist/umd.min/System/Events/EventSimple.d.ts index f4fd3db2..58e86841 100644 --- a/dist/umd.min/System/Events/EventSimple.d.ts +++ b/dist/umd.min/System/Events/EventSimple.d.ts @@ -3,6 +3,7 @@ * Based on Netjs mscorlib.ts * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { IDisposable } from "../Disposable/IDisposable"; export default class EventSimple implements IDisposable { private _listeners; add(listener: T): void; diff --git a/dist/umd.min/System/Events/EventSimple.js.map b/dist/umd.min/System/Events/EventSimple.js.map index 028fe829..823d7f70 100644 --- a/dist/umd.min/System/Events/EventSimple.js.map +++ b/dist/umd.min/System/Events/EventSimple.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Events/EventSimple.js","System/Events/EventSimple.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","EventSimple","this","_listeners","prototype","add","listener","push","remove","index","indexOf","splice","dispatch","params","_i","arguments","length","listeners","_a","listeners_1","f","call","toMulticastFunction","listeners_2","dispose","Object","defineProperty","value"],"mappings":";;;;;CAKA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,WAAYN,IAEpC,SAAUI,EAASF,GAClB,YCHJ,IAAAM,GAAA,WAAA,QAAAA,KAESC,KAAAC,cAuCT,MArCCF,GAAAG,UAAAC,IAAA,SAAIC,GAEHJ,KAAKC,WAAWI,KAAKD,IAGtBL,EAAAG,UAAAI,OAAA,SAAOF,GAEN,GAAIG,GAAQP,KAAKC,WAAWO,QAAQJ,EAC3B,GAANG,GACHP,KAAKC,WAAWQ,OAAOF,EAAO,IAG/BR,EAAAG,UAAAQ,SAAA,WDGW,ICHF,GAAAC,MAAAC,EAAA,EAAAA,EAAAC,UAAAC,OAAAF,IAAAD,EAAAC,EAAA,GAAAC,UAAAD,EAGR,KAAa,GADTG,GAAYf,KAAKC,WACRe,EAAA,EAAAC,EAAAF,EAAAC,EAAAC,EAAAH,OAAAE,IAAU,CAAnB,GAAIE,GAACD,EAAAD,EAERE,GAAEC,KAAKR,KAITZ,EAAAG,UAAAkB,oBAAA,WAEC,GAAIL,GAAYf,KAAKC,UACrB,OAAO,YAEN,IAAa,GAAAW,GAAA,EAAAS,EAAAN,EAAAH,EAAAS,EAAAP,OAAAF,IAAU,CAAnB,GAAIM,GAACG,EAAAT,EAERM,GAAEC,KAAKN,cAKVd,EAAAG,UAAAoB,QAAA,WAECtB,KAAKC,WAAWa,OAAS,GAE3Bf,IAzCAwB,QAAAC,eAAA/B,EAAA,cAAAgC,OAAA,ID2CIhC,EAAAA,WAAkBM","file":"System/Events/EventSimple.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based on Netjs mscorlib.ts\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var EventSimple = (function () {\n function EventSimple() {\n this._listeners = [];\n }\n EventSimple.prototype.add = function (listener) {\n this._listeners.push(listener);\n };\n EventSimple.prototype.remove = function (listener) {\n var index = this._listeners.indexOf(listener);\n if (index < 0)\n return;\n this._listeners.splice(index, 1);\n };\n EventSimple.prototype.dispatch = function () {\n var params = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n params[_i - 0] = arguments[_i];\n }\n var listeners = this._listeners;\n for (var _a = 0, listeners_1 = listeners; _a < listeners_1.length; _a++) {\n var f = listeners_1[_a];\n f.call(params);\n }\n };\n EventSimple.prototype.toMulticastFunction = function () {\n var listeners = this._listeners;\n return function () {\n for (var _i = 0, listeners_2 = listeners; _i < listeners_2.length; _i++) {\n var f = listeners_2[_i];\n f.call(arguments);\n }\n };\n };\n EventSimple.prototype.dispose = function () {\n this._listeners.length = 0;\n };\n return EventSimple;\n }());\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = EventSimple;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based on Netjs mscorlib.ts\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n/**\r\n * A simple event dispatcher provided as an alternative to built-in event.\r\n * If just dispatching a payload to a uniform set of functions, it may be better to just use the utilities in System/Collections/Array/Dispatch.\r\n */\r\nexport default class EventSimple implements IDisposable\r\n{\r\n\tprivate _listeners:T[] = [];\r\n\r\n\tadd(listener:T):void\r\n\t{\r\n\t\tthis._listeners.push(listener);\r\n\t}\r\n\r\n\tremove(listener:T):void\r\n\t{\r\n\t\tvar index = this._listeners.indexOf(listener);\r\n\t\tif(index<0) return;\r\n\t\tthis._listeners.splice(index, 1);\r\n\t}\r\n\r\n\tdispatch(...params:any[]):void\r\n\t{\r\n\t\tvar listeners = this._listeners;\r\n\t\tfor(var f of listeners)\r\n\t\t{\r\n\t\t\tf.call(params);\r\n\t\t}\r\n\t}\r\n\r\n\ttoMulticastFunction():Function\r\n\t{\r\n\t\tvar listeners = this._listeners;\r\n\t\treturn function()\r\n\t\t{\r\n\t\t\tfor(var f of listeners)\r\n\t\t\t{\r\n\t\t\t\tf.call(arguments);\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tdispose():void\r\n\t{\r\n\t\tthis._listeners.length = 0;\r\n\t}\r\n}"]} \ No newline at end of file +{"version":3,"sources":["System/Events/EventSimple.js","System/Events/EventSimple.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","EventSimple","this","_listeners","prototype","add","listener","push","remove","index","indexOf","splice","dispatch","params","_i","arguments","length","listeners","_a","listeners_1","f","call","toMulticastFunction","listeners_2","dispose","Object","defineProperty","value"],"mappings":";;;;;CAKA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,WAAYN,IAEpC,SAAUI,EAASF,GAClB,YCAJ,IAAAM,GAAA,WAAA,QAAAA,KAESC,KAAAC,cAuCT,MArCCF,GAAAG,UAAAC,IAAA,SAAIC,GAEHJ,KAAKC,WAAWI,KAAKD,IAGtBL,EAAAG,UAAAI,OAAA,SAAOF,GAEN,GAAIG,GAAQP,KAAKC,WAAWO,QAAQJ,EAC3B,GAANG,GACHP,KAAKC,WAAWQ,OAAOF,EAAO,IAG/BR,EAAAG,UAAAQ,SAAA,WDAW,ICAF,GAAAC,MAAAC,EAAA,EAAAA,EAAAC,UAAAC,OAAAF,IAAAD,EAAAC,EAAA,GAAAC,UAAAD,EAGR,KAAa,GADTG,GAAYf,KAAKC,WACRe,EAAA,EAAAC,EAAAF,EAAAC,EAAAC,EAAAH,OAAAE,IAAU,CAAnB,GAAIE,GAACD,EAAAD,EAERE,GAAEC,KAAKR,KAITZ,EAAAG,UAAAkB,oBAAA,WAEC,GAAIL,GAAYf,KAAKC,UACrB,OAAO,YAEN,IAAa,GAAAW,GAAA,EAAAS,EAAAN,EAAAH,EAAAS,EAAAP,OAAAF,IAAU,CAAnB,GAAIM,GAACG,EAAAT,EAERM,GAAEC,KAAKN,cAKVd,EAAAG,UAAAoB,QAAA,WAECtB,KAAKC,WAAWa,OAAS,GAE3Bf,IAzCAwB,QAAAC,eAAA/B,EAAA,cAAAgC,OAAA,IDwCIhC,EAAAA,WAAkBM","file":"System/Events/EventSimple.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based on Netjs mscorlib.ts\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var EventSimple = (function () {\n function EventSimple() {\n this._listeners = [];\n }\n EventSimple.prototype.add = function (listener) {\n this._listeners.push(listener);\n };\n EventSimple.prototype.remove = function (listener) {\n var index = this._listeners.indexOf(listener);\n if (index < 0)\n return;\n this._listeners.splice(index, 1);\n };\n EventSimple.prototype.dispatch = function () {\n var params = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n params[_i - 0] = arguments[_i];\n }\n var listeners = this._listeners;\n for (var _a = 0, listeners_1 = listeners; _a < listeners_1.length; _a++) {\n var f = listeners_1[_a];\n f.call(params);\n }\n };\n EventSimple.prototype.toMulticastFunction = function () {\n var listeners = this._listeners;\n return function () {\n for (var _i = 0, listeners_2 = listeners; _i < listeners_2.length; _i++) {\n var f = listeners_2[_i];\n f.call(arguments);\n }\n };\n };\n EventSimple.prototype.dispose = function () {\n this._listeners.length = 0;\n };\n return EventSimple;\n }());\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = EventSimple;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based on Netjs mscorlib.ts\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {IDisposable} from \"../Disposable/IDisposable\";\r\n\r\n/**\r\n * A simple event dispatcher provided as an alternative to built-in event.\r\n * If just dispatching a payload to a uniform set of functions, it may be better to just use the utilities in System/Collections/Array/Dispatch.\r\n */\r\nexport default class EventSimple implements IDisposable\r\n{\r\n\tprivate _listeners:T[] = [];\r\n\r\n\tadd(listener:T):void\r\n\t{\r\n\t\tthis._listeners.push(listener);\r\n\t}\r\n\r\n\tremove(listener:T):void\r\n\t{\r\n\t\tvar index = this._listeners.indexOf(listener);\r\n\t\tif(index<0) return;\r\n\t\tthis._listeners.splice(index, 1);\r\n\t}\r\n\r\n\tdispatch(...params:any[]):void\r\n\t{\r\n\t\tvar listeners = this._listeners;\r\n\t\tfor(var f of listeners)\r\n\t\t{\r\n\t\t\tf.call(params);\r\n\t\t}\r\n\t}\r\n\r\n\ttoMulticastFunction():Function\r\n\t{\r\n\t\tvar listeners = this._listeners;\r\n\t\treturn function()\r\n\t\t{\r\n\t\t\tfor(var f of listeners)\r\n\t\t\t{\r\n\t\t\t\tf.call(arguments);\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tdispose():void\r\n\t{\r\n\t\tthis._listeners.length = 0;\r\n\t}\r\n}"]} \ No newline at end of file diff --git a/dist/umd.min/System/Exception.d.ts b/dist/umd.min/System/Exception.d.ts index dce52d48..418b2f8f 100644 --- a/dist/umd.min/System/Exception.d.ts +++ b/dist/umd.min/System/Exception.d.ts @@ -1,11 +1,11 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -export default class Exception implements Error, IDisposable { +import { IDisposable } from "./Disposable/IDisposable"; +import { IMap } from "./Collections/Dictionaries/IDictionary"; +export declare class Exception implements Error, IDisposable { message: string; name: string; constructor(message?: string, innerException?: Error, beforeSealing?: (ex: any) => void); @@ -16,3 +16,4 @@ export default class Exception implements Error, IDisposable { protected toStringWithoutBrackets(): string; dispose(): void; } +export default Exception; diff --git a/dist/umd.min/System/Exception.js b/dist/umd.min/System/Exception.js index 13c25de0..60b7ae10 100644 --- a/dist/umd.min/System/Exception.js +++ b/dist/umd.min/System/Exception.js @@ -3,5 +3,5 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -!function(t){if("object"==typeof module&&"object"==typeof module.exports){var e=t(require,exports);void 0!==e&&(module.exports=e)}else"function"==typeof define&&define.amd&&define(["require","exports"],t)}(function(t,e){"use strict";var r="Exception",o=function(){function t(t,e,r){void 0===t&&(t=null),void 0===e&&(e=null),this.message=t;var o=this;o.name=o.getName(),o.data={},e&&(o.data.innerException=e),r&&r(o);try{var n=(new Error).stack;n=n&&n.replace(/^Error\n/,"").replace(/(.|\n)+\s+at new.+/,"")||"",this.stack=o.toStringWithoutBrackets()+n}catch(i){}Object.freeze(o)}return t.prototype.getName=function(){return r},t.prototype.toString=function(){return"["+this.toStringWithoutBrackets()+"]"},t.prototype.toStringWithoutBrackets=function(){var t=this,e=t.message;return t.name+(e?": "+e:"")},t.prototype.dispose=function(){var t=this.data;for(var e in t)t.hasOwnProperty(e)&&delete t[e]},t}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=o}); +!function(t){if("object"==typeof module&&"object"==typeof module.exports){var e=t(require,exports);void 0!==e&&(module.exports=e)}else"function"==typeof define&&define.amd&&define(["require","exports"],t)}(function(t,e){"use strict";var r="Exception",o=function(){function t(t,e,r){void 0===t&&(t=null),void 0===e&&(e=null),this.message=t;var o=this;o.name=o.getName(),o.data={},e&&(o.data.innerException=e),r&&r(o);try{var n=(new Error).stack;n=n&&n.replace(/^Error\n/,"").replace(/(.|\n)+\s+at new.+/,"")||"",this.stack=o.toStringWithoutBrackets()+n}catch(i){}Object.freeze(o)}return t.prototype.getName=function(){return r},t.prototype.toString=function(){return"["+this.toStringWithoutBrackets()+"]"},t.prototype.toStringWithoutBrackets=function(){var t=this,e=t.message;return t.name+(e?": "+e:"")},t.prototype.dispose=function(){var t=this.data;for(var e in t)t.hasOwnProperty(e)&&delete t[e]},t}();e.Exception=o,Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=o}); //# sourceMappingURL=Exception.js.map diff --git a/dist/umd.min/System/Exception.js.map b/dist/umd.min/System/Exception.js.map index 81ac6b05..1e97d97b 100644 --- a/dist/umd.min/System/Exception.js.map +++ b/dist/umd.min/System/Exception.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Exception.js","System/Exception.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","NAME","Exception","message","innerException","beforeSealing","this","_","name","getName","data","stack","Error","replace","toStringWithoutBrackets","ex","Object","freeze","prototype","toString","m","dispose","k","hasOwnProperty","defineProperty","value"],"mappings":";;;;;CAKA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,WAAYN,IAEpC,SAAUI,EAASF,GCJtB,YAEA,IAAMM,GAAc,YAKpBC,EAAA,WAeC,QAAAA,GACQC,EACPC,EACAC,GAFA,SAAAF,IAAAA,EAAA,MACA,SAAAC,IAAAA,EAAA,MADOE,KAAAH,QAAAA,CAIP,IAAII,GAAID,IAERC,GAAEC,KAAOD,EAAEE,UACXF,EAAEG,QACCN,IACFG,EAAEG,KAAqB,eAAIN,GAOzBC,GAAeA,EAAcE,EAGhC,KACC,GAAII,IAAe,GAAUC,QAASD,KACtCA,GAAQA,GAASA,EAAME,QAAQ,WAAW,IAAIA,QAAQ,qBAAqB,KAAO,GAClFP,KAAKK,MAAQJ,EAAEO,0BAA4BH,EAC1C,MAAMI,IAERC,OAAOC,OAAOV,GAuChB,MA5BWL,GAAAgB,UAAAT,QAAV,WACE,MAAOR,IAKTC,EAAAgB,UAAAC,SAAA,WAEC,MAAO,IAAIb,KAAKQ,0BAAyB,KAGhCZ,EAAAgB,UAAAJ,wBAAV,WACC,GAAIP,GAAID,KAAMc,EAAIb,EAAEJ,OACpB,OAAOI,GAAEC,MAAQY,EAAK,KAAOA,EAAK,KAMnClB,EAAAgB,UAAAG,QAAA,WAEC,GAAIX,GAAOJ,KAAKI,IAChB,KAAI,GAAIY,KAAKZ,GAETA,EAAKa,eAAeD,UACfZ,GAAKY,IAGhBpB,IAhFAc,QAAAQ,eAAA7B,EAAA,cAAA8B,OAAA,IDsCI9B,EAAAA,WAAkBO","file":"System/Exception.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\"], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var NAME = 'Exception';\n var Exception = (function () {\n function Exception(message, innerException, beforeSealing) {\n if (message === void 0) { message = null; }\n if (innerException === void 0) { innerException = null; }\n this.message = message;\n var _ = this;\n _.name = _.getName();\n _.data = {};\n if (innerException)\n _.data['innerException'] = innerException;\n if (beforeSealing)\n beforeSealing(_);\n try {\n var stack = (new Error()).stack;\n stack = stack && stack.replace(/^Error\\n/, '').replace(/(.|\\n)+\\s+at new.+/, '') || '';\n this.stack = _.toStringWithoutBrackets() + stack;\n }\n catch (ex) { }\n Object.freeze(_);\n }\n Exception.prototype.getName = function () { return NAME; };\n Exception.prototype.toString = function () {\n return \"[\" + this.toStringWithoutBrackets() + \"]\";\n };\n Exception.prototype.toStringWithoutBrackets = function () {\n var _ = this, m = _.message;\n return _.name + (m ? (': ' + m) : '');\n };\n Exception.prototype.dispose = function () {\n var data = this.data;\n for (var k in data) {\n if (data.hasOwnProperty(k))\n delete data[k];\n }\n };\n return Exception;\n }());\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Exception;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nconst NAME:string = 'Exception';\r\n\r\n/**\r\n * Represents errors that occur during application execution.\r\n */\r\nexport default\r\nclass Exception implements Error, IDisposable\r\n{\r\n\t/**\r\n\t * A string representation of the error type.\r\n\t * The default is 'Error'.\r\n\t */\r\n\tname:string;\r\n\r\n\t/**\r\n\t * Initializes a new instance of the Exception class with a specified error message and optionally a reference to the inner exception that is the cause of this exception.\r\n\t * @param message\r\n\t * @param innerException\r\n\t * @param beforeSealing This delegate is used to allow actions to occur just before this constructor finishes. Since some compilers do not allow the use of 'this' before super.\r\n\t */\r\n\tconstructor(\r\n\t\tpublic message:string = null,\r\n\t\tinnerException:Error = null,\r\n\t\tbeforeSealing?:(ex:any)=>void)\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\t_.name = _.getName();\r\n\t\t_.data = {};\r\n\t\tif(innerException)\r\n\t\t\t_.data['innerException'] = innerException;\r\n\r\n\t\t/* Originally intended to use 'get' accessors for properties,\r\n\t\t * But debuggers don't display these readily yet.\r\n\t\t * Object.freeze has to be used carefully, but will prevent overriding values.\r\n\t\t */\r\n\r\n\t\tif(beforeSealing) beforeSealing(_);\r\n\r\n\t\t// Node has a .stack, let's use it...\r\n\t\ttry {\r\n\t\t\tvar stack:string = (new Error()).stack;\r\n\t\t\tstack = stack && stack.replace(/^Error\\n/,'').replace(/(.|\\n)+\\s+at new.+/,'') || '';\r\n\t\t\tthis.stack = _.toStringWithoutBrackets() + stack;\r\n\t\t} catch(ex) {}\r\n\r\n\t\tObject.freeze(_);\r\n\t}\r\n\r\n\tstack:string;\r\n\r\n\tdata:IMap;\r\n\r\n\t/**\r\n\t * A string representation of the error type.\r\n\t * The default is 'Error'.\r\n\t */\r\n\tprotected getName():string\r\n\t{ return NAME; }\r\n\r\n\t/**\r\n\t * The string representation of the Exception instance.\r\n\t */\r\n\ttoString():string\r\n\t{\r\n\t\treturn `[${this.toStringWithoutBrackets()}]`;\r\n\t}\r\n\r\n\tprotected toStringWithoutBrackets():string {\r\n\t\tvar _ = this, m = _.message;\r\n\t\treturn _.name + (m ? (': ' + m) : '');\r\n\t}\r\n\r\n\t/**\r\n\t * Clears the data object.\r\n\t */\r\n\tdispose():void\r\n\t{\r\n\t\tvar data = this.data;\r\n\t\tfor(let k in data)\r\n\t\t{\r\n\t\t\tif(data.hasOwnProperty(k))\r\n\t\t\t\tdelete data[k];\r\n\t\t}\r\n\t}\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Exception.js","System/Exception.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","NAME","Exception","message","innerException","beforeSealing","this","_","name","getName","data","stack","Error","replace","toStringWithoutBrackets","ex","Object","freeze","prototype","toString","m","dispose","k","hasOwnProperty","defineProperty","value"],"mappings":";;;;;CAKA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,WAAYN,IAEpC,SAAUI,EAASF,GAClB,YCLJ,IAAMM,GAAc,YAKpBC,EAAA,WAcC,QAAAA,GACQC,EACPC,EACAC,GAFA,SAAAF,IAAAA,EAAA,MACA,SAAAC,IAAAA,EAAA,MADOE,KAAAH,QAAAA,CAIP,IAAII,GAAID,IAERC,GAAEC,KAAOD,EAAEE,UACXF,EAAEG,QACCN,IACFG,EAAEG,KAAqB,eAAIN,GAOzBC,GAAeA,EAAcE,EAGhC,KACC,GAAII,IAAe,GAAUC,QAASD,KACtCA,GAAQA,GAASA,EAAME,QAAQ,WAAW,IAAIA,QAAQ,qBAAqB,KAAO,GAClFP,KAAKK,MAAQJ,EAAEO,0BAA4BH,EAC1C,MAAMI,IAERC,OAAOC,OAAOV,GAuChB,MA5BWL,GAAAgB,UAAAT,QAAV,WACE,MAAOR,IAKTC,EAAAgB,UAAAC,SAAA,WAEC,MAAO,IAAIb,KAAKQ,0BAAyB,KAGhCZ,EAAAgB,UAAAJ,wBAAV,WACC,GAAIP,GAAID,KAAMc,EAAIb,EAAEJ,OACpB,OAAOI,GAAEC,MAAQY,EAAK,KAAOA,EAAK,KAMnClB,EAAAgB,UAAAG,QAAA,WAEC,GAAIX,GAAOJ,KAAKI,IAChB,KAAI,GAAIY,KAAKZ,GAETA,EAAKa,eAAeD,UACfZ,GAAKY,IAGhBpB,IA/EaP,GAAAO,UAASA,EAiFtBc,OAAAQ,eAAA7B,EAAA,cAAA8B,OAAA,IDxCI9B,EAAAA,WCwCWO","file":"System/Exception.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var NAME = 'Exception';\n var Exception = (function () {\n function Exception(message, innerException, beforeSealing) {\n if (message === void 0) { message = null; }\n if (innerException === void 0) { innerException = null; }\n this.message = message;\n var _ = this;\n _.name = _.getName();\n _.data = {};\n if (innerException)\n _.data['innerException'] = innerException;\n if (beforeSealing)\n beforeSealing(_);\n try {\n var stack = (new Error()).stack;\n stack = stack && stack.replace(/^Error\\n/, '').replace(/(.|\\n)+\\s+at new.+/, '') || '';\n this.stack = _.toStringWithoutBrackets() + stack;\n }\n catch (ex) { }\n Object.freeze(_);\n }\n Exception.prototype.getName = function () { return NAME; };\n Exception.prototype.toString = function () {\n return \"[\" + this.toStringWithoutBrackets() + \"]\";\n };\n Exception.prototype.toStringWithoutBrackets = function () {\n var _ = this, m = _.message;\n return _.name + (m ? (': ' + m) : '');\n };\n Exception.prototype.dispose = function () {\n var data = this.data;\n for (var k in data) {\n if (data.hasOwnProperty(k))\n delete data[k];\n }\n };\n return Exception;\n }());\n exports.Exception = Exception;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Exception;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\nimport {IDisposable} from \"./Disposable/IDisposable\";\r\nimport {IMap} from \"./Collections/Dictionaries/IDictionary\";\r\nconst NAME:string = 'Exception';\r\n\r\n/**\r\n * Represents errors that occur during application execution.\r\n */\r\nexport class Exception implements Error, IDisposable\r\n{\r\n\t/**\r\n\t * A string representation of the error type.\r\n\t * The default is 'Error'.\r\n\t */\r\n\tname:string;\r\n\r\n\t/**\r\n\t * Initializes a new instance of the Exception class with a specified error message and optionally a reference to the inner exception that is the cause of this exception.\r\n\t * @param message\r\n\t * @param innerException\r\n\t * @param beforeSealing This delegate is used to allow actions to occur just before this constructor finishes. Since some compilers do not allow the use of 'this' before super.\r\n\t */\r\n\tconstructor(\r\n\t\tpublic message:string = null,\r\n\t\tinnerException:Error = null,\r\n\t\tbeforeSealing?:(ex:any)=>void)\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\t_.name = _.getName();\r\n\t\t_.data = {};\r\n\t\tif(innerException)\r\n\t\t\t_.data['innerException'] = innerException;\r\n\r\n\t\t/* Originally intended to use 'get' accessors for properties,\r\n\t\t * But debuggers don't display these readily yet.\r\n\t\t * Object.freeze has to be used carefully, but will prevent overriding values.\r\n\t\t */\r\n\r\n\t\tif(beforeSealing) beforeSealing(_);\r\n\r\n\t\t// Node has a .stack, let's use it...\r\n\t\ttry {\r\n\t\t\tvar stack:string = (new Error()).stack;\r\n\t\t\tstack = stack && stack.replace(/^Error\\n/,'').replace(/(.|\\n)+\\s+at new.+/,'') || '';\r\n\t\t\tthis.stack = _.toStringWithoutBrackets() + stack;\r\n\t\t} catch(ex) {}\r\n\r\n\t\tObject.freeze(_);\r\n\t}\r\n\r\n\tstack:string;\r\n\r\n\tdata:IMap;\r\n\r\n\t/**\r\n\t * A string representation of the error type.\r\n\t * The default is 'Error'.\r\n\t */\r\n\tprotected getName():string\r\n\t{ return NAME; }\r\n\r\n\t/**\r\n\t * The string representation of the Exception instance.\r\n\t */\r\n\ttoString():string\r\n\t{\r\n\t\treturn `[${this.toStringWithoutBrackets()}]`;\r\n\t}\r\n\r\n\tprotected toStringWithoutBrackets():string {\r\n\t\tvar _ = this, m = _.message;\r\n\t\treturn _.name + (m ? (': ' + m) : '');\r\n\t}\r\n\r\n\t/**\r\n\t * Clears the data object.\r\n\t */\r\n\tdispose():void\r\n\t{\r\n\t\tvar data = this.data;\r\n\t\tfor(let k in data)\r\n\t\t{\r\n\t\t\tif(data.hasOwnProperty(k))\r\n\t\t\t\tdelete data[k];\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default Exception;\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Exceptions/ArgumentException.d.ts b/dist/umd.min/System/Exceptions/ArgumentException.d.ts index eac4232c..59bd91e1 100644 --- a/dist/umd.min/System/Exceptions/ArgumentException.d.ts +++ b/dist/umd.min/System/Exceptions/ArgumentException.d.ts @@ -3,9 +3,10 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -import SystemException from "./SystemException"; -export default class ArgumentException extends SystemException { +import { SystemException } from "./SystemException"; +export declare class ArgumentException extends SystemException { paramName: string; constructor(paramName: string, message?: string, innerException?: Error, beforeSealing?: (ex: any) => void); protected getName(): string; } +export default ArgumentException; diff --git a/dist/umd.min/System/Exceptions/ArgumentException.js b/dist/umd.min/System/Exceptions/ArgumentException.js index d8807df2..d07d2f68 100644 --- a/dist/umd.min/System/Exceptions/ArgumentException.js +++ b/dist/umd.min/System/Exceptions/ArgumentException.js @@ -3,5 +3,5 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -var __extends=this&&this.__extends||function(e,t){function o(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","./SystemException","../Text/Utility"],e)}(function(e,t){"use strict";var o=e("./SystemException"),n=e("../Text/Utility"),i="ArgumentException",r=function(e){function t(t,o,i,r){void 0===o&&(o=null),void 0===i&&(i=null);var u=t?"{"+t+"} ":"";e.call(this,n.trim(u+(o||"")),i,function(e){e.paramName=t,r&&r(e)})}return __extends(t,e),t.prototype.getName=function(){return i},t}(o["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=r}); +var __extends=this&&this.__extends||function(e,t){function o(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","./SystemException","../Text/Utility"],e)}(function(e,t){"use strict";var o=e("./SystemException"),n=e("../Text/Utility"),i="ArgumentException",r=function(e){function t(t,o,i,r){void 0===o&&(o=null),void 0===i&&(i=null);var u=t?"{"+t+"} ":"";e.call(this,n.trim(u+(o||"")),i,function(e){e.paramName=t,r&&r(e)})}return __extends(t,e),t.prototype.getName=function(){return i},t}(o.SystemException);t.ArgumentException=r,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=r}); //# sourceMappingURL=ArgumentException.js.map diff --git a/dist/umd.min/System/Exceptions/ArgumentException.js.map b/dist/umd.min/System/Exceptions/ArgumentException.js.map index 44ab4595..a0a695b9 100644 --- a/dist/umd.min/System/Exceptions/ArgumentException.js.map +++ b/dist/umd.min/System/Exceptions/ArgumentException.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Exceptions/ArgumentException.js","System/Exceptions/ArgumentException.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","SystemException_1","Utility_1","NAME","ArgumentException","_super","paramName","message","innerException","beforeSealing","pn","call","trim","_","getName","defineProperty","value"],"mappings":";;;;;AAKA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,oBAAqB,mBAAoBN,IAE5E,SAAUI,EAASF,GCXtB,YAEA,IAAAM,GAAAJ,EAA4B,qBAC5BK,EAAAL,EAAmB,mBAGbM,EAAc,oBAEpBC,EAAA,SAAAC,GAOC,QAAAD,GACCE,EACAC,EACAC,EACAC,GAFA,SAAAF,IAAAA,EAAA,MACA,SAAAC,IAAAA,EAAA,KAGA,IAAIE,GAAKJ,EAAa,IAAMA,EAAY,KAAQ,EAChDD,GAAAM,KAAA5B,KAAMmB,EAAAU,KAAKF,GAAMH,GAAS,KAAMC,EAAgB,SAACK,GAChDA,EAAEP,UAAYA,EACXG,GAAeA,EAAcI,KAUnC,MAzBgC/B,WAAAsB,EAAAC,GAoBrBD,EAAAd,UAAAwB,QAAV,WAEC,MAAOX,IAGTC,GAzBgCH,EAAAA,WADhCV,QAAAwB,eAAApB,EAAA,cAAAqB,OAAA,ID0BIrB,EAAAA,WAAkBS","file":"System/Exceptions/ArgumentException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"./SystemException\", \"../Text/Utility\"], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var SystemException_1 = require(\"./SystemException\");\n var Utility_1 = require(\"../Text/Utility\");\n var NAME = 'ArgumentException';\n var ArgumentException = (function (_super) {\n __extends(ArgumentException, _super);\n function ArgumentException(paramName, message, innerException, beforeSealing) {\n if (message === void 0) { message = null; }\n if (innerException === void 0) { innerException = null; }\n var pn = paramName ? ('{' + paramName + '} ') : '';\n _super.call(this, Utility_1.trim(pn + (message || '')), innerException, function (_) {\n _.paramName = paramName;\n if (beforeSealing)\n beforeSealing(_);\n });\n }\n ArgumentException.prototype.getName = function () {\n return NAME;\n };\n return ArgumentException;\n }(SystemException_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ArgumentException;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport SystemException from \"./SystemException\";\r\nimport {trim} from \"../Text/Utility\";\r\n\r\n\r\nconst NAME:string = 'ArgumentException';\r\n\r\nexport default\r\nclass ArgumentException extends SystemException\r\n{\r\n\r\n\tparamName:string;\r\n\r\n\t// For simplicity and consistency, lets stick with 1 signature.\r\n\tconstructor(\r\n\t\tparamName:string,\r\n\t\tmessage:string = null,\r\n\t\tinnerException:Error = null,\r\n\t\tbeforeSealing?:(ex:any)=>void)\r\n\t{\r\n\t\tvar pn = paramName ? ('{' + paramName + '} ') : '';\r\n\t\tsuper(trim(pn + (message||'')), innerException, (_)=>{\r\n\t\t\t_.paramName = paramName;\r\n\t\t\tif(beforeSealing) beforeSealing(_);\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Exceptions/ArgumentException.js","System/Exceptions/ArgumentException.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","SystemException_1","Utility_1","NAME","ArgumentException","_super","paramName","message","innerException","beforeSealing","pn","call","trim","_","getName","SystemException","defineProperty","value"],"mappings":";;;;;AAKA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,oBAAqB,mBAAoBN,IAE5E,SAAUI,EAASF,GAClB,YCXJ,IAAAM,GAAAJ,EAA8B,qBAC9BK,EAAAL,EAAmB,mBAGbM,EAAc,oBAEpBC,EAAA,SAAAC,GAMC,QAAAD,GACCE,EACAC,EACAC,EACAC,GAFA,SAAAF,IAAAA,EAAA,MACA,SAAAC,IAAAA,EAAA,KAGA,IAAIE,GAAKJ,EAAa,IAAMA,EAAY,KAAQ,EAChDD,GAAAM,KAAA5B,KAAMmB,EAAAU,KAAKF,GAAMH,GAAS,KAAMC,EAAgB,SAACK,GAChDA,EAAEP,UAAYA,EACXG,GAAeA,EAAcI,KAUnC,MAzBuC/B,WAAAsB,EAAAC,GAoB5BD,EAAAd,UAAAwB,QAAV,WAEC,MAAOX,IAGTC,GAzBuCH,EAAAc,gBAA1BpB,GAAAS,kBAAiBA,EA2B9Bb,OAAAyB,eAAArB,EAAA,cAAAsB,OAAA,IDCItB,EAAAA,WCDWS","file":"System/Exceptions/ArgumentException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"./SystemException\", \"../Text/Utility\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var SystemException_1 = require(\"./SystemException\");\n var Utility_1 = require(\"../Text/Utility\");\n var NAME = 'ArgumentException';\n var ArgumentException = (function (_super) {\n __extends(ArgumentException, _super);\n function ArgumentException(paramName, message, innerException, beforeSealing) {\n if (message === void 0) { message = null; }\n if (innerException === void 0) { innerException = null; }\n var pn = paramName ? ('{' + paramName + '} ') : '';\n _super.call(this, Utility_1.trim(pn + (message || '')), innerException, function (_) {\n _.paramName = paramName;\n if (beforeSealing)\n beforeSealing(_);\n });\n }\n ArgumentException.prototype.getName = function () {\n return NAME;\n };\n return ArgumentException;\n }(SystemException_1.SystemException));\n exports.ArgumentException = ArgumentException;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ArgumentException;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\n\r\nimport {SystemException} from \"./SystemException\";\r\nimport {trim} from \"../Text/Utility\";\r\n\r\n\r\nconst NAME:string = 'ArgumentException';\r\n\r\nexport class ArgumentException extends SystemException\r\n{\r\n\r\n\tparamName:string;\r\n\r\n\t// For simplicity and consistency, lets stick with 1 signature.\r\n\tconstructor(\r\n\t\tparamName:string,\r\n\t\tmessage:string = null,\r\n\t\tinnerException:Error = null,\r\n\t\tbeforeSealing?:(ex:any)=>void)\r\n\t{\r\n\t\tvar pn = paramName ? ('{' + paramName + '} ') : '';\r\n\t\tsuper(trim(pn + (message||'')), innerException, (_)=>{\r\n\t\t\t_.paramName = paramName;\r\n\t\t\tif(beforeSealing) beforeSealing(_);\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n\r\n}\r\n\r\nexport default ArgumentException;"]} \ No newline at end of file diff --git a/dist/umd.min/System/Exceptions/ArgumentNullException.d.ts b/dist/umd.min/System/Exceptions/ArgumentNullException.d.ts index 5cc13038..5d73f022 100644 --- a/dist/umd.min/System/Exceptions/ArgumentNullException.d.ts +++ b/dist/umd.min/System/Exceptions/ArgumentNullException.d.ts @@ -3,8 +3,9 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -import ArgumentException from './ArgumentException'; -export default class ArgumentNullException extends ArgumentException { +import { ArgumentException } from "./ArgumentException"; +export declare class ArgumentNullException extends ArgumentException { constructor(paramName: string, message?: string, innerException?: Error); protected getName(): string; } +export default ArgumentNullException; diff --git a/dist/umd.min/System/Exceptions/ArgumentNullException.js b/dist/umd.min/System/Exceptions/ArgumentNullException.js index cdc7a665..33f213d7 100644 --- a/dist/umd.min/System/Exceptions/ArgumentNullException.js +++ b/dist/umd.min/System/Exceptions/ArgumentNullException.js @@ -3,5 +3,5 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -var __extends=this&&this.__extends||function(e,t){function o(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","./ArgumentException"],e)}(function(e,t){"use strict";var o=e("./ArgumentException"),n="ArgumentNullException",r=function(e){function t(t,o,n){void 0===o&&(o=""),void 0===n&&(n=null),e.call(this,t,o,n)}return __extends(t,e),t.prototype.getName=function(){return n},t}(o["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=r}); +var __extends=this&&this.__extends||function(e,t){function o(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","./ArgumentException"],e)}(function(e,t){"use strict";var o=e("./ArgumentException"),n="ArgumentNullException",r=function(e){function t(t,o,n){void 0===o&&(o=""),void 0===n&&(n=null),e.call(this,t,o,n)}return __extends(t,e),t.prototype.getName=function(){return n},t}(o.ArgumentException);t.ArgumentNullException=r,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=r}); //# sourceMappingURL=ArgumentNullException.js.map diff --git a/dist/umd.min/System/Exceptions/ArgumentNullException.js.map b/dist/umd.min/System/Exceptions/ArgumentNullException.js.map index 3f520639..1ddec819 100644 --- a/dist/umd.min/System/Exceptions/ArgumentNullException.js.map +++ b/dist/umd.min/System/Exceptions/ArgumentNullException.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Exceptions/ArgumentNullException.js","System/Exceptions/ArgumentNullException.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","ArgumentException_1","NAME","ArgumentNullException","_super","paramName","message","innerException","call","getName","defineProperty","value"],"mappings":";;;;;AAKA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,uBAAwBN,IAE3D,SAAUI,EAASF,GCXtB,YAEA,IAAAM,GAAAJ,EAA8B,uBAGxBK,EAAc,wBAEpBC,EAAA,SAAAC,GAGC,QAAAD,GACCE,EACAC,EACAC,GADA,SAAAD,IAAAA,EAAA,IACA,SAAAC,IAAAA,EAAA,MAEAH,EAAAI,KAAAzB,KAAMsB,EAAWC,EAASC,GAQ5B,MAfoCzB,WAAAqB,EAAAC,GAUzBD,EAAAb,UAAAmB,QAAV,WAEC,MAAOP,IAGTC,GAfoCF,EAAAA,WADpCV,QAAAmB,eAAAf,EAAA,cAAAgB,OAAA,IDqBIhB,EAAAA,WAAkBQ","file":"System/Exceptions/ArgumentNullException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", './ArgumentException'], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var ArgumentException_1 = require('./ArgumentException');\n var NAME = 'ArgumentNullException';\n var ArgumentNullException = (function (_super) {\n __extends(ArgumentNullException, _super);\n function ArgumentNullException(paramName, message, innerException) {\n if (message === void 0) { message = ''; }\n if (innerException === void 0) { innerException = null; }\n _super.call(this, paramName, message, innerException);\n }\n ArgumentNullException.prototype.getName = function () {\n return NAME;\n };\n return ArgumentNullException;\n }(ArgumentException_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ArgumentNullException;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport ArgumentException from './ArgumentException';\r\n\r\n\r\nconst NAME:string = 'ArgumentNullException';\r\n\r\nexport default\r\nclass ArgumentNullException extends ArgumentException\r\n{\r\n\tconstructor(\r\n\t\tparamName:string,\r\n\t\tmessage:string = '',\r\n\t\tinnerException:Error = null)\r\n\t{\r\n\t\tsuper(paramName, message, innerException);\r\n\t}\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Exceptions/ArgumentNullException.js","System/Exceptions/ArgumentNullException.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","ArgumentException_1","NAME","ArgumentNullException","_super","paramName","message","innerException","call","getName","ArgumentException","defineProperty","value"],"mappings":";;;;;AAKA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,uBAAwBN,IAE3D,SAAUI,EAASF,GAClB,YCZJ,IAAAM,GAAAJ,EAAgC,uBAE1BK,EAAc,wBAEpBC,EAAA,SAAAC,GAEC,QAAAD,GACCE,EACAC,EACAC,GADA,SAAAD,IAAAA,EAAA,IACA,SAAAC,IAAAA,EAAA,MAEAH,EAAAI,KAAAzB,KAAMsB,EAAWC,EAASC,GAQ5B,MAf2CzB,WAAAqB,EAAAC,GAUhCD,EAAAb,UAAAmB,QAAV,WAEC,MAAOP,IAGTC,GAf2CF,EAAAS,kBAA9Bf,GAAAQ,sBAAqBA,EAiBlCZ,OAAAoB,eAAAhB,EAAA,cAAAiB,OAAA,IDQIjB,EAAAA,WCRWQ","file":"System/Exceptions/ArgumentNullException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"./ArgumentException\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var ArgumentException_1 = require(\"./ArgumentException\");\n var NAME = 'ArgumentNullException';\n var ArgumentNullException = (function (_super) {\n __extends(ArgumentNullException, _super);\n function ArgumentNullException(paramName, message, innerException) {\n if (message === void 0) { message = ''; }\n if (innerException === void 0) { innerException = null; }\n _super.call(this, paramName, message, innerException);\n }\n ArgumentNullException.prototype.getName = function () {\n return NAME;\n };\n return ArgumentNullException;\n }(ArgumentException_1.ArgumentException));\n exports.ArgumentNullException = ArgumentNullException;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ArgumentNullException;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\nimport {ArgumentException} from \"./ArgumentException\";\r\n\r\nconst NAME:string = 'ArgumentNullException';\r\n\r\nexport class ArgumentNullException extends ArgumentException\r\n{\r\n\tconstructor(\r\n\t\tparamName:string,\r\n\t\tmessage:string = '',\r\n\t\tinnerException:Error = null)\r\n\t{\r\n\t\tsuper(paramName, message, innerException);\r\n\t}\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n\r\n}\r\n\r\nexport default ArgumentNullException;"]} \ No newline at end of file diff --git a/dist/umd.min/System/Exceptions/ArgumentOutOfRangeException.d.ts b/dist/umd.min/System/Exceptions/ArgumentOutOfRangeException.d.ts index 4fd62443..83d0e92b 100644 --- a/dist/umd.min/System/Exceptions/ArgumentOutOfRangeException.d.ts +++ b/dist/umd.min/System/Exceptions/ArgumentOutOfRangeException.d.ts @@ -3,10 +3,11 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -import Exception from "../Exception"; -import ArgumentException from "./ArgumentException"; -export default class ArgumentOutOfRangeException extends ArgumentException { +import { Exception } from "../Exception"; +import { ArgumentException } from "./ArgumentException"; +export declare class ArgumentOutOfRangeException extends ArgumentException { actualValue: string | number | boolean; constructor(paramName: string, actualValue: string | number | boolean, message?: string, innerException?: Exception); protected getName(): string; } +export default ArgumentOutOfRangeException; diff --git a/dist/umd.min/System/Exceptions/ArgumentOutOfRangeException.js b/dist/umd.min/System/Exceptions/ArgumentOutOfRangeException.js index 3190730a..d28b4bc8 100644 --- a/dist/umd.min/System/Exceptions/ArgumentOutOfRangeException.js +++ b/dist/umd.min/System/Exceptions/ArgumentOutOfRangeException.js @@ -3,5 +3,5 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -var __extends=this&&this.__extends||function(e,t){function o(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","./ArgumentException"],e)}(function(e,t){"use strict";var o=e("./ArgumentException"),n="ArgumentOutOfRangeException",r=function(e){function t(t,o,n,r){void 0===n&&(n=" "),void 0===r&&(r=null),e.call(this,t,+("("+o+") ")+n,r,function(e){e.actualValue=o})}return __extends(t,e),t.prototype.getName=function(){return n},t}(o["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=r}); +var __extends=this&&this.__extends||function(e,t){function n(){this.constructor=e}for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","./ArgumentException"],e)}(function(e,t){"use strict";var n=e("./ArgumentException"),o="ArgumentOutOfRangeException",r=function(e){function t(t,n,o,r){void 0===o&&(o=" "),void 0===r&&(r=null),e.call(this,t,+("("+n+") ")+o,r,function(e){e.actualValue=n})}return __extends(t,e),t.prototype.getName=function(){return o},t}(n.ArgumentException);t.ArgumentOutOfRangeException=r,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=r}); //# sourceMappingURL=ArgumentOutOfRangeException.js.map diff --git a/dist/umd.min/System/Exceptions/ArgumentOutOfRangeException.js.map b/dist/umd.min/System/Exceptions/ArgumentOutOfRangeException.js.map index 41e94cf6..b63a3333 100644 --- a/dist/umd.min/System/Exceptions/ArgumentOutOfRangeException.js.map +++ b/dist/umd.min/System/Exceptions/ArgumentOutOfRangeException.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Exceptions/ArgumentOutOfRangeException.js","System/Exceptions/ArgumentOutOfRangeException.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","ArgumentException_1","NAME","ArgumentOutOfRangeException","_super","paramName","actualValue","message","innerException","call","_","getName","defineProperty","value"],"mappings":";;;;;AAKA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,uBAAwBN,IAE3D,SAAUI,EAASF,GAClB,YCXJ,IAAAM,GAAAJ,EAA8B,uBAIxBK,EAAc,8BAEpBC,EAAA,SAAAC,GAKC,QAAAD,GACCE,EACAC,EACAC,EACAC,GADA,SAAAD,IAAAA,EAAA,KACA,SAAAC,IAAAA,EAAA,MAEAJ,EAAAK,KAAA1B,KAAMsB,IAAa,IAAIC,EAAW,MAAOC,EAAUC,EAAgB,SAACE,GACnEA,EAAEJ,YAAcA,IAUnB,MArB0CxB,WAAAqB,EAAAC,GAgB/BD,EAAAb,UAAAqB,QAAV,WAEC,MAAOT,IAGTC,GArB0CF,EAAAA,WAD1CV,QAAAqB,eAAAjB,EAAA,cAAAkB,OAAA,IDwBIlB,EAAAA,WAAkBQ","file":"System/Exceptions/ArgumentOutOfRangeException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"./ArgumentException\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var ArgumentException_1 = require(\"./ArgumentException\");\n 'use strict';\n var NAME = 'ArgumentOutOfRangeException';\n var ArgumentOutOfRangeException = (function (_super) {\n __extends(ArgumentOutOfRangeException, _super);\n function ArgumentOutOfRangeException(paramName, actualValue, message, innerException) {\n if (message === void 0) { message = ' '; }\n if (innerException === void 0) { innerException = null; }\n _super.call(this, paramName, +(\"(\" + actualValue + \") \") + message, innerException, function (_) {\n _.actualValue = actualValue;\n });\n }\n ArgumentOutOfRangeException.prototype.getName = function () {\n return NAME;\n };\n return ArgumentOutOfRangeException;\n }(ArgumentException_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ArgumentOutOfRangeException;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\nimport Exception from \"../Exception\";\r\nimport ArgumentException from \"./ArgumentException\";\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n\r\nconst NAME:string = 'ArgumentOutOfRangeException';\r\n\r\nexport default\r\nclass ArgumentOutOfRangeException extends ArgumentException\r\n{\r\n\tactualValue:string|number|boolean;\r\n\r\n\tconstructor(\r\n\t\tparamName:string,\r\n\t\tactualValue:string|number|boolean,\r\n\t\tmessage:string = ' ',\r\n\t\tinnerException:Exception = null)\r\n\t{\r\n\t\tsuper(paramName, + `(${actualValue}) ` + message , innerException, (_)=>{\r\n\t\t\t_.actualValue = actualValue;\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Exceptions/ArgumentOutOfRangeException.js","System/Exceptions/ArgumentOutOfRangeException.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","ArgumentException_1","NAME","ArgumentOutOfRangeException","_super","paramName","actualValue","message","innerException","call","_","getName","ArgumentException","defineProperty","value"],"mappings":";;;;;AAKA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,uBAAwBN,IAE3D,SAAUI,EAASF,GAClB,YCVJ,IAAAM,GAAAJ,EAAgC,uBAE1BK,EAAc,8BAEpBC,EAAA,SAAAC,GAIC,QAAAD,GACCE,EACAC,EACAC,EACAC,GADA,SAAAD,IAAAA,EAAA,KACA,SAAAC,IAAAA,EAAA,MAEAJ,EAAAK,KAAA1B,KAAMsB,IAAa,IAAIC,EAAW,MAAOC,EAAUC,EAAgB,SAACE,GACnEA,EAAEJ,YAAcA,IAUnB,MArBiDxB,WAAAqB,EAAAC,GAgBtCD,EAAAb,UAAAqB,QAAV,WAEC,MAAOT,IAGTC,GArBiDF,EAAAW,kBAApCjB,GAAAQ,4BAA2BA,EAuBxCZ,OAAAsB,eAAAlB,EAAA,cAAAmB,OAAA,IDEInB,EAAAA,WCFWQ","file":"System/Exceptions/ArgumentOutOfRangeException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"./ArgumentException\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var ArgumentException_1 = require(\"./ArgumentException\");\n var NAME = 'ArgumentOutOfRangeException';\n var ArgumentOutOfRangeException = (function (_super) {\n __extends(ArgumentOutOfRangeException, _super);\n function ArgumentOutOfRangeException(paramName, actualValue, message, innerException) {\n if (message === void 0) { message = ' '; }\n if (innerException === void 0) { innerException = null; }\n _super.call(this, paramName, +(\"(\" + actualValue + \") \") + message, innerException, function (_) {\n _.actualValue = actualValue;\n });\n }\n ArgumentOutOfRangeException.prototype.getName = function () {\n return NAME;\n };\n return ArgumentOutOfRangeException;\n }(ArgumentException_1.ArgumentException));\n exports.ArgumentOutOfRangeException = ArgumentOutOfRangeException;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ArgumentOutOfRangeException;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\n\r\nimport {Exception} from \"../Exception\";\r\nimport {ArgumentException} from \"./ArgumentException\";\r\n\r\nconst NAME:string = 'ArgumentOutOfRangeException';\r\n\r\nexport class ArgumentOutOfRangeException extends ArgumentException\r\n{\r\n\tactualValue:string|number|boolean;\r\n\r\n\tconstructor(\r\n\t\tparamName:string,\r\n\t\tactualValue:string|number|boolean,\r\n\t\tmessage:string = ' ',\r\n\t\tinnerException:Exception = null)\r\n\t{\r\n\t\tsuper(paramName, + `(${actualValue}) ` + message , innerException, (_)=>{\r\n\t\t\t_.actualValue = actualValue;\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n\r\n}\r\n\r\nexport default ArgumentOutOfRangeException;"]} \ No newline at end of file diff --git a/dist/umd.min/System/Exceptions/InvalidOperationException.d.ts b/dist/umd.min/System/Exceptions/InvalidOperationException.d.ts index 4f422d04..a39ff871 100644 --- a/dist/umd.min/System/Exceptions/InvalidOperationException.d.ts +++ b/dist/umd.min/System/Exceptions/InvalidOperationException.d.ts @@ -3,7 +3,8 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -import SystemException from './SystemException'; -export default class InvalidOperationException extends SystemException { +import { SystemException } from "./SystemException"; +export declare class InvalidOperationException extends SystemException { protected getName(): string; } +export default InvalidOperationException; diff --git a/dist/umd.min/System/Exceptions/InvalidOperationException.js b/dist/umd.min/System/Exceptions/InvalidOperationException.js index bb897b0f..3b645d0d 100644 --- a/dist/umd.min/System/Exceptions/InvalidOperationException.js +++ b/dist/umd.min/System/Exceptions/InvalidOperationException.js @@ -3,5 +3,5 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -var __extends=this&&this.__extends||function(e,t){function o(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","./SystemException"],e)}(function(e,t){"use strict";var o=e("./SystemException"),n="InvalidOperationException",r=function(e){function t(){e.apply(this,arguments)}return __extends(t,e),t.prototype.getName=function(){return n},t}(o["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=r}); +var __extends=this&&this.__extends||function(e,t){function o(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","./SystemException"],e)}(function(e,t){"use strict";var o=e("./SystemException"),n="InvalidOperationException",i=function(e){function t(){e.apply(this,arguments)}return __extends(t,e),t.prototype.getName=function(){return n},t}(o.SystemException);t.InvalidOperationException=i,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=i}); //# sourceMappingURL=InvalidOperationException.js.map diff --git a/dist/umd.min/System/Exceptions/InvalidOperationException.js.map b/dist/umd.min/System/Exceptions/InvalidOperationException.js.map index 253e26ac..9f2adabb 100644 --- a/dist/umd.min/System/Exceptions/InvalidOperationException.js.map +++ b/dist/umd.min/System/Exceptions/InvalidOperationException.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Exceptions/InvalidOperationException.js","System/Exceptions/InvalidOperationException.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","SystemException_1","NAME","InvalidOperationException","_super","apply","arguments","getName","defineProperty","value"],"mappings":";;;;;AAKA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,qBAAsBN,IAEzD,SAAUI,EAASF,GCXtB,YAEA,IAAAM,GAAAJ,EAA4B,qBAGtBK,EAAc,4BAEpBC,EAAA,SAAAC,GAAA,QAAAD,KACwCC,EAAAC,MAAAtB,KAAAuB,WAOxC,MAPwCxB,WAAAqB,EAAAC,GAE7BD,EAAAb,UAAAiB,QAAV,WAEC,MAAOL,IAGTC,GAPwCF,EAAAA,WADxCV,QAAAiB,eAAAb,EAAA,cAAAc,OAAA,IDmBId,EAAAA,WAAkBQ","file":"System/Exceptions/InvalidOperationException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", './SystemException'], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var SystemException_1 = require('./SystemException');\n var NAME = 'InvalidOperationException';\n var InvalidOperationException = (function (_super) {\n __extends(InvalidOperationException, _super);\n function InvalidOperationException() {\n _super.apply(this, arguments);\n }\n InvalidOperationException.prototype.getName = function () {\n return NAME;\n };\n return InvalidOperationException;\n }(SystemException_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = InvalidOperationException;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport SystemException from './SystemException';\r\n\r\n\r\nconst NAME:string = 'InvalidOperationException';\r\n\r\nexport default\r\nclass InvalidOperationException extends SystemException {\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Exceptions/InvalidOperationException.js","System/Exceptions/InvalidOperationException.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","SystemException_1","NAME","InvalidOperationException","_super","apply","arguments","getName","SystemException","defineProperty","value"],"mappings":";;;;;AAKA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,qBAAsBN,IAEzD,SAAUI,EAASF,GAClB,YCZJ,IAAAM,GAAAJ,EAA8B,qBAExBK,EAAc,4BAEpBC,EAAA,SAAAC,GAAA,QAAAD,KAA+CC,EAAAC,MAAAtB,KAAAuB,WAQ/C,MAR+CxB,WAAAqB,EAAAC,GAGpCD,EAAAb,UAAAiB,QAAV,WAEC,MAAOL,IAGTC,GAR+CF,EAAAO,gBAAlCb,GAAAQ,0BAAyBA,EAUtCZ,OAAAkB,eAAAd,EAAA,cAAAe,OAAA,IDaIf,EAAAA,WCbWQ","file":"System/Exceptions/InvalidOperationException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"./SystemException\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var SystemException_1 = require(\"./SystemException\");\n var NAME = 'InvalidOperationException';\n var InvalidOperationException = (function (_super) {\n __extends(InvalidOperationException, _super);\n function InvalidOperationException() {\n _super.apply(this, arguments);\n }\n InvalidOperationException.prototype.getName = function () {\n return NAME;\n };\n return InvalidOperationException;\n }(SystemException_1.SystemException));\n exports.InvalidOperationException = InvalidOperationException;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = InvalidOperationException;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\nimport {SystemException} from \"./SystemException\";\r\n\r\nconst NAME:string = 'InvalidOperationException';\r\n\r\nexport class InvalidOperationException extends SystemException\r\n{\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n\r\n}\r\n\r\nexport default InvalidOperationException;\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Exceptions/NotImplementedException.d.ts b/dist/umd.min/System/Exceptions/NotImplementedException.d.ts index 0225eeb8..a52e3a18 100644 --- a/dist/umd.min/System/Exceptions/NotImplementedException.d.ts +++ b/dist/umd.min/System/Exceptions/NotImplementedException.d.ts @@ -3,7 +3,8 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -import SystemException from './SystemException'; -export default class NotImplementedException extends SystemException { +import { SystemException } from "./SystemException"; +export declare class NotImplementedException extends SystemException { protected getName(): string; } +export default NotImplementedException; diff --git a/dist/umd.min/System/Exceptions/NotImplementedException.js b/dist/umd.min/System/Exceptions/NotImplementedException.js index ceb411fb..b21145a5 100644 --- a/dist/umd.min/System/Exceptions/NotImplementedException.js +++ b/dist/umd.min/System/Exceptions/NotImplementedException.js @@ -3,5 +3,5 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -var __extends=this&&this.__extends||function(e,t){function o(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","./SystemException"],e)}(function(e,t){"use strict";var o=e("./SystemException"),n="NotImplementedException",r=function(e){function t(){e.apply(this,arguments)}return __extends(t,e),t.prototype.getName=function(){return n},t}(o["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=r}); +var __extends=this&&this.__extends||function(e,t){function o(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","./SystemException"],e)}(function(e,t){"use strict";var o=e("./SystemException"),n="NotImplementedException",r=function(e){function t(){e.apply(this,arguments)}return __extends(t,e),t.prototype.getName=function(){return n},t}(o.SystemException);t.NotImplementedException=r,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=r}); //# sourceMappingURL=NotImplementedException.js.map diff --git a/dist/umd.min/System/Exceptions/NotImplementedException.js.map b/dist/umd.min/System/Exceptions/NotImplementedException.js.map index 0e66cd05..a851867d 100644 --- a/dist/umd.min/System/Exceptions/NotImplementedException.js.map +++ b/dist/umd.min/System/Exceptions/NotImplementedException.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Exceptions/NotImplementedException.js","System/Exceptions/NotImplementedException.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","SystemException_1","NAME","NotImplementedException","_super","apply","arguments","getName","defineProperty","value"],"mappings":";;;;;AAKA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,qBAAsBN,IAEzD,SAAUI,EAASF,GCXtB,YAEA,IAAAM,GAAAJ,EAA4B,qBAGtBK,EAAc,0BAEpBC,EAAA,SAAAC,GAAA,QAAAD,KACsCC,EAAAC,MAAAtB,KAAAuB,WAOtC,MAPsCxB,WAAAqB,EAAAC,GAE3BD,EAAAb,UAAAiB,QAAV,WAEC,MAAOL,IAGTC,GAPsCF,EAAAA,WADtCV,QAAAiB,eAAAb,EAAA,cAAAc,OAAA,IDmBId,EAAAA,WAAkBQ","file":"System/Exceptions/NotImplementedException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", './SystemException'], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var SystemException_1 = require('./SystemException');\n var NAME = 'NotImplementedException';\n var NotImplementedException = (function (_super) {\n __extends(NotImplementedException, _super);\n function NotImplementedException() {\n _super.apply(this, arguments);\n }\n NotImplementedException.prototype.getName = function () {\n return NAME;\n };\n return NotImplementedException;\n }(SystemException_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = NotImplementedException;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport SystemException from './SystemException';\r\n\r\n\r\nconst NAME:string = 'NotImplementedException';\r\n\r\nexport default\r\nclass NotImplementedException extends SystemException {\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Exceptions/NotImplementedException.js","System/Exceptions/NotImplementedException.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","SystemException_1","NAME","NotImplementedException","_super","apply","arguments","getName","SystemException","defineProperty","value"],"mappings":";;;;;AAKA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,qBAAsBN,IAEzD,SAAUI,EAASF,GAClB,YCZJ,IAAAM,GAAAJ,EAA8B,qBAExBK,EAAc,0BAEpBC,EAAA,SAAAC,GAAA,QAAAD,KAA6CC,EAAAC,MAAAtB,KAAAuB,WAQ7C,MAR6CxB,WAAAqB,EAAAC,GAGlCD,EAAAb,UAAAiB,QAAV,WAEC,MAAOL,IAGTC,GAR6CF,EAAAO,gBAAhCb,GAAAQ,wBAAuBA,EAUpCZ,OAAAkB,eAAAd,EAAA,cAAAe,OAAA,IDaIf,EAAAA,WCbWQ","file":"System/Exceptions/NotImplementedException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"./SystemException\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var SystemException_1 = require(\"./SystemException\");\n var NAME = 'NotImplementedException';\n var NotImplementedException = (function (_super) {\n __extends(NotImplementedException, _super);\n function NotImplementedException() {\n _super.apply(this, arguments);\n }\n NotImplementedException.prototype.getName = function () {\n return NAME;\n };\n return NotImplementedException;\n }(SystemException_1.SystemException));\n exports.NotImplementedException = NotImplementedException;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = NotImplementedException;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\nimport {SystemException} from \"./SystemException\";\r\n\r\nconst NAME:string = 'NotImplementedException';\r\n\r\nexport class NotImplementedException extends SystemException\r\n{\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n\r\n}\r\n\r\nexport default NotImplementedException"]} \ No newline at end of file diff --git a/dist/umd.min/System/Exceptions/NullReferenceException.d.ts b/dist/umd.min/System/Exceptions/NullReferenceException.d.ts index 780b64a6..42c3373b 100644 --- a/dist/umd.min/System/Exceptions/NullReferenceException.d.ts +++ b/dist/umd.min/System/Exceptions/NullReferenceException.d.ts @@ -3,7 +3,7 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -import SystemException from './SystemException'; +import { SystemException } from "./SystemException"; export default class NullReferenceException extends SystemException { protected getName(): string; } diff --git a/dist/umd.min/System/Exceptions/NullReferenceException.js b/dist/umd.min/System/Exceptions/NullReferenceException.js index 4e479553..8b58191d 100644 --- a/dist/umd.min/System/Exceptions/NullReferenceException.js +++ b/dist/umd.min/System/Exceptions/NullReferenceException.js @@ -3,5 +3,5 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -var __extends=this&&this.__extends||function(e,t){function o(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","./SystemException"],e)}(function(e,t){"use strict";var o=e("./SystemException"),n="NullReferenceException",r=function(e){function t(){e.apply(this,arguments)}return __extends(t,e),t.prototype.getName=function(){return n},t}(o["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=r}); +var __extends=this&&this.__extends||function(e,t){function o(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","./SystemException"],e)}(function(e,t){"use strict";var o=e("./SystemException"),n="NullReferenceException",r=function(e){function t(){e.apply(this,arguments)}return __extends(t,e),t.prototype.getName=function(){return n},t}(o.SystemException);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=r}); //# sourceMappingURL=NullReferenceException.js.map diff --git a/dist/umd.min/System/Exceptions/NullReferenceException.js.map b/dist/umd.min/System/Exceptions/NullReferenceException.js.map index 5b24ee26..abf25b14 100644 --- a/dist/umd.min/System/Exceptions/NullReferenceException.js.map +++ b/dist/umd.min/System/Exceptions/NullReferenceException.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Exceptions/NullReferenceException.js","System/Exceptions/NullReferenceException.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","SystemException_1","NAME","NullReferenceException","_super","apply","arguments","getName","defineProperty","value"],"mappings":";;;;;AAKA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,qBAAsBN,IAEzD,SAAUI,EAASF,GCXtB,YAEA,IAAAM,GAAAJ,EAA4B,qBAGtBK,EAAc,yBAEpBC,EAAA,SAAAC,GAAA,QAAAD,KACqCC,EAAAC,MAAAtB,KAAAuB,WAOrC,MAPqCxB,WAAAqB,EAAAC,GAE1BD,EAAAb,UAAAiB,QAAV,WAEC,MAAOL,IAGTC,GAPqCF,EAAAA,WADrCV,QAAAiB,eAAAb,EAAA,cAAAc,OAAA,IDmBId,EAAAA,WAAkBQ","file":"System/Exceptions/NullReferenceException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", './SystemException'], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var SystemException_1 = require('./SystemException');\n var NAME = 'NullReferenceException';\n var NullReferenceException = (function (_super) {\n __extends(NullReferenceException, _super);\n function NullReferenceException() {\n _super.apply(this, arguments);\n }\n NullReferenceException.prototype.getName = function () {\n return NAME;\n };\n return NullReferenceException;\n }(SystemException_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = NullReferenceException;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport SystemException from './SystemException';\r\n\r\n\r\nconst NAME:string = 'NullReferenceException';\r\n\r\nexport default\r\nclass NullReferenceException extends SystemException {\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Exceptions/NullReferenceException.js","System/Exceptions/NullReferenceException.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","SystemException_1","NAME","NullReferenceException","_super","apply","arguments","getName","SystemException","defineProperty","value"],"mappings":";;;;;AAKA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,qBAAsBN,IAEzD,SAAUI,EAASF,GAClB,YCXJ,IAAAM,GAAAJ,EAA8B,qBAExBK,EAAc,yBAEpBC,EAAA,SAAAC,GAAA,QAAAD,KACqCC,EAAAC,MAAAtB,KAAAuB,WAOrC,MAPqCxB,WAAAqB,EAAAC,GAE1BD,EAAAb,UAAAiB,QAAV,WAEC,MAAOL,IAGTC,GAPqCF,EAAAO,gBADrCjB,QAAAkB,eAAAd,EAAA,cAAAe,OAAA,IDqBIf,EAAAA,WAAkBQ","file":"System/Exceptions/NullReferenceException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"./SystemException\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var SystemException_1 = require(\"./SystemException\");\n var NAME = 'NullReferenceException';\n var NullReferenceException = (function (_super) {\n __extends(NullReferenceException, _super);\n function NullReferenceException() {\n _super.apply(this, arguments);\n }\n NullReferenceException.prototype.getName = function () {\n return NAME;\n };\n return NullReferenceException;\n }(SystemException_1.SystemException));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = NullReferenceException;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx\r\n */\r\n\r\n\r\nimport {SystemException} from \"./SystemException\";\r\n\r\nconst NAME:string = 'NullReferenceException';\r\n\r\nexport default\r\nclass NullReferenceException extends SystemException {\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Exceptions/SystemException.d.ts b/dist/umd.min/System/Exceptions/SystemException.d.ts index 239bfbef..12f92b06 100644 --- a/dist/umd.min/System/Exceptions/SystemException.d.ts +++ b/dist/umd.min/System/Exceptions/SystemException.d.ts @@ -3,7 +3,8 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/system.systemexception%28v=vs.110%29.aspx */ -import Exception from '../Exception'; -export default class SystemException extends Exception { +import { Exception } from "../Exception"; +export declare class SystemException extends Exception { protected getName(): string; } +export default SystemException; diff --git a/dist/umd.min/System/Exceptions/SystemException.js b/dist/umd.min/System/Exceptions/SystemException.js index a3573481..b67247e1 100644 --- a/dist/umd.min/System/Exceptions/SystemException.js +++ b/dist/umd.min/System/Exceptions/SystemException.js @@ -3,5 +3,5 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based upon: https://msdn.microsoft.com/en-us/library/system.systemexception%28v=vs.110%29.aspx */ -var __extends=this&&this.__extends||function(e,t){function o(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../Exception"],e)}(function(e,t){"use strict";var o=e("../Exception"),n="SystemException",r=function(e){function t(){e.apply(this,arguments)}return __extends(t,e),t.prototype.getName=function(){return n},t}(o["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=r}); +var __extends=this&&this.__extends||function(e,t){function o(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../Exception"],e)}(function(e,t){"use strict";var o=e("../Exception"),n="SystemException",r=function(e){function t(){e.apply(this,arguments)}return __extends(t,e),t.prototype.getName=function(){return n},t}(o.Exception);t.SystemException=r,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=r}); //# sourceMappingURL=SystemException.js.map diff --git a/dist/umd.min/System/Exceptions/SystemException.js.map b/dist/umd.min/System/Exceptions/SystemException.js.map index a70f6248..33136c42 100644 --- a/dist/umd.min/System/Exceptions/SystemException.js.map +++ b/dist/umd.min/System/Exceptions/SystemException.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Exceptions/SystemException.js","System/Exceptions/SystemException.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","Exception_1","NAME","SystemException","_super","apply","arguments","getName","defineProperty","value"],"mappings":";;;;;AAKA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,gBAAiBN,IAEpD,SAAUI,EAASF,GCXtB,YAEA,IAAAM,GAAAJ,EAAsB,gBAGhBK,EAAc,kBAEpBC,EAAA,SAAAC,GAAA,QAAAD,KAC8BC,EAAAC,MAAAtB,KAAAuB,WAgB9B,MAhB8BxB,WAAAqB,EAAAC,GAYnBD,EAAAb,UAAAiB,QAAV,WAEC,MAAOL,IAETC,GAhB8BF,EAAAA,WAD9BV,QAAAiB,eAAAb,EAAA,cAAAc,OAAA,IDmBId,EAAAA,WAAkBQ","file":"System/Exceptions/SystemException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/system.systemexception%28v=vs.110%29.aspx\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", '../Exception'], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var Exception_1 = require('../Exception');\n var NAME = 'SystemException';\n var SystemException = (function (_super) {\n __extends(SystemException, _super);\n function SystemException() {\n _super.apply(this, arguments);\n }\n SystemException.prototype.getName = function () {\n return NAME;\n };\n return SystemException;\n }(Exception_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = SystemException;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/system.systemexception%28v=vs.110%29.aspx\r\n */\r\n\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport Exception from '../Exception';\r\n\r\n\r\nconst NAME:string = 'SystemException';\r\n\r\nexport default\r\nclass SystemException extends Exception\r\n{\r\n/*\r\n\tconstructor(\r\n\t\tmessage:string = null,\r\n\t\tinnerException:Error = null,\r\n\t\tbeforeSealing?:(ex:any)=>void)\r\n\t{\r\n\t\tsuper(message, innerException, beforeSealing);\r\n\t}\r\n*/\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Exceptions/SystemException.js","System/Exceptions/SystemException.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","Exception_1","NAME","SystemException","_super","apply","arguments","getName","Exception","defineProperty","value"],"mappings":";;;;;AAKA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,gBAAiBN,IAEpD,SAAUI,EAASF,GAClB,YCZJ,IAAAM,GAAAJ,EAAwB,gBAElBK,EAAc,kBAEpBC,EAAA,SAAAC,GAAA,QAAAD,KAAqCC,EAAAC,MAAAtB,KAAAuB,WAgBrC,MAhBqCxB,WAAAqB,EAAAC,GAY1BD,EAAAb,UAAAiB,QAAV,WAEC,MAAOL,IAETC,GAhBqCF,EAAAO,UAAxBb,GAAAQ,gBAAeA,EAkB5BZ,OAAAkB,eAAAd,EAAA,cAAAe,OAAA,IDKIf,EAAAA,WCLWQ","file":"System/Exceptions/SystemException.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based upon: https://msdn.microsoft.com/en-us/library/system.systemexception%28v=vs.110%29.aspx\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../Exception\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var Exception_1 = require(\"../Exception\");\n var NAME = 'SystemException';\n var SystemException = (function (_super) {\n __extends(SystemException, _super);\n function SystemException() {\n _super.apply(this, arguments);\n }\n SystemException.prototype.getName = function () {\n return NAME;\n };\n return SystemException;\n }(Exception_1.Exception));\n exports.SystemException = SystemException;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = SystemException;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based upon: https://msdn.microsoft.com/en-us/library/system.systemexception%28v=vs.110%29.aspx\r\n */\r\n\r\nimport {Exception} from \"../Exception\";\r\n\r\nconst NAME:string = 'SystemException';\r\n\r\nexport class SystemException extends Exception\r\n{\r\n\t/*\r\n\t\tconstructor(\r\n\t\t\tmessage:string = null,\r\n\t\t\tinnerException:Error = null,\r\n\t\t\tbeforeSealing?:(ex:any)=>void)\r\n\t\t{\r\n\t\t\tsuper(message, innerException, beforeSealing);\r\n\t\t}\r\n\t*/\r\n\r\n\tprotected getName():string\r\n\t{\r\n\t\treturn NAME;\r\n\t}\r\n}\r\n\r\nexport default SystemException;"]} \ No newline at end of file diff --git a/dist/umd.min/System/Functions.d.ts b/dist/umd.min/System/Functions.d.ts index 0262bc62..ecd9b0e2 100644 --- a/dist/umd.min/System/Functions.d.ts +++ b/dist/umd.min/System/Functions.d.ts @@ -2,13 +2,13 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -declare class Functions { +export declare class Functions { Identity(x: T): T; True(): boolean; False(): boolean; Blank(): void; } -declare module Functions { +export declare module Functions { var Identity: (x: T) => T; var True: () => boolean; var False: () => boolean; diff --git a/dist/umd.min/System/Functions.js b/dist/umd.min/System/Functions.js index 314f2b19..680ada62 100644 --- a/dist/umd.min/System/Functions.js +++ b/dist/umd.min/System/Functions.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports"],e)}(function(e,t){"use strict";var n,n=function(){function e(){}return e.prototype.Identity=function(e){return e},e.prototype.True=function(){return!0},e.prototype.False=function(){return!1},e.prototype.Blank=function(){},e}(),o=new n;!function(e){e.Identity=o.Identity,e.True=o.True,e.False=o.False,e.Blank=o.Blank}(n||(n={})),Object.freeze(n),Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=n}); +!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports"],e)}(function(e,t){"use strict";var n=function(){function e(){}return e.prototype.Identity=function(e){return e},e.prototype.True=function(){return!0},e.prototype.False=function(){return!1},e.prototype.Blank=function(){},e}();t.Functions=n;var n,o=new n;!function(e){e.Identity=o.Identity,e.True=o.True,e.False=o.False,e.Blank=o.Blank}(n=t.Functions||(t.Functions={})),Object.freeze(n),Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=n}); //# sourceMappingURL=Functions.js.map diff --git a/dist/umd.min/System/Functions.js.map b/dist/umd.min/System/Functions.js.map index 17cfa6d0..df640013 100644 --- a/dist/umd.min/System/Functions.js.map +++ b/dist/umd.min/System/Functions.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Functions.js","System/Functions.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","Functions","prototype","Identity","x","True","False","Blank","rootFunctions","Object","freeze","defineProperty","value"],"mappings":";;;;CAIA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,WAAYN,IAEpC,SAAUI,EAASF,GCNtB,YAKA,IAmCOM,GAnCPA,EAAA,WAAA,QAAAA,MA6BA,MAtBCA,GAAAC,UAAAC,SAAA,SAAYC,GACV,MAAOA,IAMTH,EAAAC,UAAAG,KAAA,WACE,OAAO,GAMTJ,EAAAC,UAAAI,MAAA,WACE,OAAO,GAKTL,EAAAC,UAAAK,MAAA,aAEDN,KAEMO,EAA0B,GAAIP,IAIpC,SAAOA,GAMKA,EAAAE,SACRK,EAAcL,SAMNF,EAAAI,KACRG,EAAcH,KAMNJ,EAAAK,MACRE,EAAcF,MAKNL,EAAAM,MACRC,EAAcD,OA3BXN,IAAAA,OA+BPQ,OAAOC,OAAOT,GAEdQ,OAAAE,eAAAhB,EAAA,cAAAiB,OAAA,ID9CIjB,EAAAA,WC8CWM","file":"System/Functions.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\"], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var Functions = (function () {\n function Functions() {\n }\n Functions.prototype.Identity = function (x) { return x; };\n Functions.prototype.True = function () { return true; };\n Functions.prototype.False = function () { return false; };\n Functions.prototype.Blank = function () { };\n return Functions;\n }());\n var rootFunctions = new Functions();\n var Functions;\n (function (Functions) {\n Functions.Identity = rootFunctions.Identity;\n Functions.True = rootFunctions.True;\n Functions.False = rootFunctions.False;\n Functions.Blank = rootFunctions.Blank;\n })(Functions || (Functions = {}));\n Object.freeze(Functions);\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Functions;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n/**\r\n * Can be used statically or extended for varying different reusable function signatures.\r\n */\r\nclass Functions\r\n{\r\n\r\n\t/**\r\n\t * A typed method for use with simple selection of the parameter.\r\n\t * @returns {T}\r\n\t */\r\n\tIdentity(x:T):T\r\n\t{ return x; }\r\n\r\n\t/**\r\n\t * Returns true.\r\n\t * @returns {boolean}\r\n\t */\r\n\tTrue():boolean\r\n\t{ return true; }\r\n\r\n\t/**\r\n\t * Returns false.\r\n\t * @returns {boolean}\r\n\t */\r\n\tFalse():boolean\r\n\t{ return false; }\r\n\r\n\t/**\r\n\t * Does nothing.\r\n\t */\r\n\tBlank():void\r\n\t{ }\r\n}\r\n\r\nconst rootFunctions:Functions = new Functions();\r\n\r\n// Expose static versions.\r\n\r\nmodule Functions\r\n{\r\n\t/**\r\n\t * A typed method for use with simple selection of the parameter.\r\n\t * @returns {boolean}\r\n\t */\r\n\texport var Identity:(x:T) => T\r\n\t\t= rootFunctions.Identity;\r\n\r\n\t/**\r\n\t * Returns false.\r\n\t * @returns {boolean}\r\n\t */\r\n\texport var True:() => boolean\r\n\t\t= rootFunctions.True;\r\n\r\n\t/**\r\n\t * Returns false.\r\n\t * @returns {boolean}\r\n\t */\r\n\texport var False:() => boolean\r\n\t\t= rootFunctions.False;\r\n\r\n\t/**\r\n\t * Does nothing.\r\n\t */\r\n\texport var Blank:() => void\r\n\t\t= rootFunctions.Blank;\r\n}\r\n\r\n// Make this read only. Should still allow for sub-classing since extra methods are added to prototype.\r\nObject.freeze(Functions);\r\n\r\nexport default Functions;\r\n\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Functions.js","System/Functions.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","Functions","prototype","Identity","x","True","False","Blank","rootFunctions","Object","freeze","defineProperty","value"],"mappings":";;;;CAIA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,WAAYN,IAEpC,SAAUI,EAASF,GAClB,YCJJ,IAAAM,GAAA,WAAA,QAAAA,MA6BA,MAtBCA,GAAAC,UAAAC,SAAA,SAAYC,GACV,MAAOA,IAMTH,EAAAC,UAAAG,KAAA,WACE,OAAO,GAMTJ,EAAAC,UAAAI,MAAA,WACE,OAAO,GAKTL,EAAAC,UAAAK,MAAA,aAEDN,IA7BaN,GAAAM,UAASA,CA+BtB,IAIcA,GAJRO,EAA0B,GAAIP,IAIpC,SAAcA,GAMFA,EAAAE,SACRK,EAAcL,SAMNF,EAAAI,KACRG,EAAcH,KAMNJ,EAAAK,MACRE,EAAcF,MAKNL,EAAAM,MACRC,EAAcD,OA3BJN,EAAAN,EAAAM,YAAAN,EAAAM,eA+BdQ,OAAOC,OAAOT,GAEdQ,OAAAE,eAAAhB,EAAA,cAAAiB,OAAA,ID3CIjB,EAAAA,WC2CWM","file":"System/Functions.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var Functions = (function () {\n function Functions() {\n }\n Functions.prototype.Identity = function (x) { return x; };\n Functions.prototype.True = function () { return true; };\n Functions.prototype.False = function () { return false; };\n Functions.prototype.Blank = function () { };\n return Functions;\n }());\n exports.Functions = Functions;\n var rootFunctions = new Functions();\n var Functions;\n (function (Functions) {\n Functions.Identity = rootFunctions.Identity;\n Functions.True = rootFunctions.True;\n Functions.False = rootFunctions.False;\n Functions.Blank = rootFunctions.Blank;\n })(Functions = exports.Functions || (exports.Functions = {}));\n Object.freeze(Functions);\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Functions;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n/**\r\n * Can be used statically or extended for varying different reusable function signatures.\r\n */\r\nexport class Functions\r\n{\r\n\r\n\t/**\r\n\t * A typed method for use with simple selection of the parameter.\r\n\t * @returns {T}\r\n\t */\r\n\tIdentity(x:T):T\r\n\t{ return x; }\r\n\r\n\t/**\r\n\t * Returns true.\r\n\t * @returns {boolean}\r\n\t */\r\n\tTrue():boolean\r\n\t{ return true; }\r\n\r\n\t/**\r\n\t * Returns false.\r\n\t * @returns {boolean}\r\n\t */\r\n\tFalse():boolean\r\n\t{ return false; }\r\n\r\n\t/**\r\n\t * Does nothing.\r\n\t */\r\n\tBlank():void\r\n\t{ }\r\n}\r\n\r\nconst rootFunctions:Functions = new Functions();\r\n\r\n// Expose static versions.\r\n\r\nexport module Functions\r\n{\r\n\t/**\r\n\t * A typed method for use with simple selection of the parameter.\r\n\t * @returns {boolean}\r\n\t */\r\n\texport var Identity:(x:T) => T\r\n\t\t= rootFunctions.Identity;\r\n\r\n\t/**\r\n\t * Returns false.\r\n\t * @returns {boolean}\r\n\t */\r\n\texport var True:() => boolean\r\n\t\t= rootFunctions.True;\r\n\r\n\t/**\r\n\t * Returns false.\r\n\t * @returns {boolean}\r\n\t */\r\n\texport var False:() => boolean\r\n\t\t= rootFunctions.False;\r\n\r\n\t/**\r\n\t * Does nothing.\r\n\t */\r\n\texport var Blank:() => void\r\n\t\t= rootFunctions.Blank;\r\n}\r\n\r\n// Make this read only. Should still allow for sub-classing since extra methods are added to prototype.\r\nObject.freeze(Functions);\r\n\r\nexport default Functions;\r\n\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Integer.d.ts b/dist/umd.min/System/Integer.d.ts index 04881834..a6de2daf 100644 --- a/dist/umd.min/System/Integer.d.ts +++ b/dist/umd.min/System/Integer.d.ts @@ -3,6 +3,7 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { IArray } from "./Collections/Array/IArray"; export declare function Integer(n: number): number; export declare module Integer { const MAX_32_BIT: number; diff --git a/dist/umd.min/System/Integer.js b/dist/umd.min/System/Integer.js index e19e7dba..021c0f55 100644 --- a/dist/umd.min/System/Integer.js +++ b/dist/umd.min/System/Integer.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","./Exceptions/ArgumentException","./Exceptions/ArgumentOutOfRangeException"],e)}(function(e,t){"use strict";function n(e){return Math.floor(e)}var r=e("./Exceptions/ArgumentException"),o=e("./Exceptions/ArgumentOutOfRangeException");t.Integer=n;var n;!function(e){function t(e){return Math.random()*e|0}function n(e){return f(e,"maxExclusive"),t(e)}function u(e){var t=0|e;return-1===e||-1!==t?t:null}function i(e){return typeof e===l&&isFinite(e)&&e===Math.floor(e)}function a(e){return e===(0|e)}function f(e,t){var n=i(e);if(!n)throw new r["default"](t||"n","Must be a integer.");return n}function c(e,t){var n=f(e,t)&&e>=0;if(!n)throw new o["default"](t||"n",e,"Must be a valid integer greater than or equal to zero.");return n}function s(e,t){var n=f(e,t)&&e>0;if(!n)throw new o["default"](t||"n",e,"Must be greater than zero.");return n}e.MAX_32_BIT=2147483647,e.random=n;var n;!function(e){function n(e,n){return f(e,"max"),0===e?0:(n&&(e+=e/Math.abs(e)),t(e))}function r(e,t,r){f(e,"min"),f(t,"max");var o=t-e;return 0===o?e:(r&&(o+=o/Math.abs(o)),e+n(o))}function o(e){return e&&e.length?e[t(e.length)]:void 0}e.next=n,e.nextInRange=r,e.select=o;var o;!function(t){function n(t){return e.select(t)}t.one=n}(o=e.select||(e.select={}))}(n=e.random||(e.random={})),e.as32Bit=u;var l="number";e.is=i,e.is32Bit=a,e.assert=f,e.assertZeroOrGreater=c,e.assertPositive=s}(n=t.Integer||(t.Integer={})),Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=n}); +!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","./Exceptions/ArgumentException","./Exceptions/ArgumentOutOfRangeException"],e)}(function(e,t){"use strict";function n(e){return Math.floor(e)}var r=e("./Exceptions/ArgumentException"),o=e("./Exceptions/ArgumentOutOfRangeException");t.Integer=n;var n;!function(e){function t(e){return Math.random()*e|0}function n(e){return c(e,"maxExclusive"),t(e)}function u(e){var t=0|e;return-1===e||-1!==t?t:null}function i(e){return typeof e===g&&isFinite(e)&&e===Math.floor(e)}function a(e){return e===(0|e)}function c(e,t){var n=i(e);if(!n)throw new r.ArgumentException(t||"n","Must be a integer.");return n}function f(e,t){var n=c(e,t)&&e>=0;if(!n)throw new o.ArgumentOutOfRangeException(t||"n",e,"Must be a valid integer greater than or equal to zero.");return n}function s(e,t){var n=c(e,t)&&e>0;if(!n)throw new o.ArgumentOutOfRangeException(t||"n",e,"Must be greater than zero.");return n}e.MAX_32_BIT=2147483647,e.random=n;var n;!function(e){function n(e,n){return c(e,"max"),0===e?0:(n&&(e+=e/Math.abs(e)),t(e))}function r(e,t,r){c(e,"min"),c(t,"max");var o=t-e;return 0===o?e:(r&&(o+=o/Math.abs(o)),e+n(o))}function o(e){return e&&e.length?e[t(e.length)]:void 0}e.next=n,e.nextInRange=r,e.select=o;var o;!function(t){function n(t){return e.select(t)}t.one=n}(o=e.select||(e.select={}))}(n=e.random||(e.random={})),e.as32Bit=u;var g="number";e.is=i,e.is32Bit=a,e.assert=c,e.assertZeroOrGreater=f,e.assertPositive=s}(n=t.Integer||(t.Integer={})),Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=n}); //# sourceMappingURL=Integer.js.map diff --git a/dist/umd.min/System/Integer.js.map b/dist/umd.min/System/Integer.js.map index debc409b..239d3bfa 100644 --- a/dist/umd.min/System/Integer.js.map +++ b/dist/umd.min/System/Integer.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Integer.js","System/Integer.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","Integer","n","Math","floor","ArgumentException_1","ArgumentOutOfRangeException_1","r","maxExclusive","random","assert","as32Bit","result","is","NUMBER","isFinite","is32Bit","argumentName","i","assertZeroOrGreater","assertPositive","MAX_32_BIT","next","boundary","inclusive","abs","nextInRange","min","max","range","select","source","length","one","Object","defineProperty","value"],"mappings":";;;;CAIA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,iCAAkC,4CAA6CN,IAElH,SAAUI,EAASF,GAClB,YCHJ,SAAAM,GAAwBC,GAEvB,MAAOC,MAAKC,MAAMF,GALnB,GAAAG,GAAAR,EAA8B,kCAC9BS,EAAAT,EAAwC,2CAExBF,GAAAM,QAAOA,CAKvB,IAAcA,IAAd,SAAcA,GAIb,QAAAM,GAAWC,GAEV,MAAQL,MAAKM,SAASD,EAAgB,EAWvC,QAAAC,GAAuBD,GAGtB,MADAE,GAAOF,EAAc,gBACdD,EAAEC,GA6CV,QAAAG,GAAwBT,GAEvB,GAAIU,GAAa,EAAJV,CACb,OAAY,KAAJA,GAAmB,KAATU,EAAeA,EAAS,KAK3C,QAAAC,GAAmBX,GAElB,aAAcA,KAAIY,GAAUC,SAASb,IAAMA,IAAIC,KAAKC,MAAMF,GAG3D,QAAAc,GAAwBd,GAEvB,MAAOA,MAAS,EAAJA,GAIb,QAAAQ,GAAuBR,EAAUe,GAEhC,GAAIC,GAAIL,EAAGX,EACX,KAAIgB,EACH,KAAM,IAAIb,GAAAA,WAAkBY,GAAgB,IAAK,qBAClD,OAAOC,GAGR,QAAAC,GAAoCjB,EAAUe,GAE7C,GAAIC,GAAIR,EAAOR,EAAGe,IAAiBf,GAAG,CACtC,KAAIgB,EACH,KAAM,IAAIZ,GAAAA,WAA4BW,GAAgB,IAAKf,EAAG,yDAC/D,OAAOgB,GAGR,QAAAE,GAA+BlB,EAAUe,GAExC,GAAIC,GAAIR,EAAOR,EAAGe,IAAiBf,EAAE,CACrC,KAAIgB,EACH,KAAM,IAAIZ,GAAAA,WAA4BW,GAAgB,IAAKf,EAAG,6BAC/D,OAAOgB,GAvGKjB,EAAAoB,WAAoB,WAejBpB,EAAAQ,OAAMA,CAMtB,IAAcA,IAAd,SAAcA,GAEb,QAAAa,GACCC,EACAC,GAGA,MADAd,GAAOa,EAAU,OACH,IAAXA,EAAqB,GACrBC,IAAWD,GAAYA,EAASpB,KAAKsB,IAAIF,IACrChB,EAAEgB,IAGV,QAAAG,GACCC,EACAC,EACAJ,GAEAd,EAAOiB,EAAK,OACZjB,EAAOkB,EAAK,MACZ,IAAIC,GAAQD,EAAMD,CAClB,OAAW,KAARE,EAAkBF,GAClBH,IAAWK,GAASA,EAAM1B,KAAKsB,IAAII,IAC/BF,EAAML,EAAKO,IAGnB,QAAAC,GAA0BC,GAEzB,MAAOA,IAAUA,EAAOC,OACrBD,EAAOxB,EAAEwB,EAAOC,SAChB,OA3BYvB,EAAAa,KAAIA,EAUJb,EAAAiB,YAAWA,EAaXjB,EAAAqB,OAAMA,CAOtB,IAAcA,IAAd,SAAcA,GAEb,QAAAG,GAAuBF,GAEtB,MAAOtB,GAAOqB,OAAOC,GAFND,EAAAG,IAAGA,GAFNH,EAAArB,EAAAqB,SAAArB,EAAAqB,aAhCDrB,EAAAR,EAAAQ,SAAAR,EAAAQ,YA0CER,EAAAU,QAAOA,CAMvB,IAAMG,GAAgB,QAENb,GAAAY,GAAEA,EAKFZ,EAAAe,QAAOA,EAMPf,EAAAS,OAAMA,EAQNT,EAAAkB,oBAAmBA,EAQnBlB,EAAAmB,eAAcA,GApGjBnB,EAAAN,EAAAM,UAAAN,EAAAM,aA8GdiC,OAAAC,eAAAxC,EAAA,cAAAyC,OAAA,IDrBIzC,EAAAA,WCqBWM","file":"System/Integer.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"./Exceptions/ArgumentException\", \"./Exceptions/ArgumentOutOfRangeException\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var ArgumentException_1 = require(\"./Exceptions/ArgumentException\");\n var ArgumentOutOfRangeException_1 = require(\"./Exceptions/ArgumentOutOfRangeException\");\n function Integer(n) {\n return Math.floor(n);\n }\n exports.Integer = Integer;\n var Integer;\n (function (Integer) {\n Integer.MAX_32_BIT = 2147483647;\n function r(maxExclusive) {\n return (Math.random() * maxExclusive) | 0;\n }\n function random(maxExclusive) {\n assert(maxExclusive, 'maxExclusive');\n return r(maxExclusive);\n }\n Integer.random = random;\n var random;\n (function (random) {\n function next(boundary, inclusive) {\n assert(boundary, 'max');\n if (boundary === 0)\n return 0;\n if (inclusive)\n boundary += boundary / Math.abs(boundary);\n return r(boundary);\n }\n random.next = next;\n function nextInRange(min, max, inclusive) {\n assert(min, 'min');\n assert(max, 'max');\n var range = max - min;\n if (range === 0)\n return min;\n if (inclusive)\n range += range / Math.abs(range);\n return min + next(range);\n }\n random.nextInRange = nextInRange;\n function select(source) {\n return source && source.length\n ? source[r(source.length)]\n : void (0);\n }\n random.select = select;\n var select;\n (function (select) {\n function one(source) {\n return random.select(source);\n }\n select.one = one;\n })(select = random.select || (random.select = {}));\n })(random = Integer.random || (Integer.random = {}));\n function as32Bit(n) {\n var result = n | 0;\n return (n === -1 || result !== -1) ? result : null;\n }\n Integer.as32Bit = as32Bit;\n var NUMBER = \"number\";\n function is(n) {\n return typeof n === NUMBER && isFinite(n) && n === Math.floor(n);\n }\n Integer.is = is;\n function is32Bit(n) {\n return n === (n | 0);\n }\n Integer.is32Bit = is32Bit;\n function assert(n, argumentName) {\n var i = is(n);\n if (!i)\n throw new ArgumentException_1.default(argumentName || 'n', \"Must be a integer.\");\n return i;\n }\n Integer.assert = assert;\n function assertZeroOrGreater(n, argumentName) {\n var i = assert(n, argumentName) && n >= 0;\n if (!i)\n throw new ArgumentOutOfRangeException_1.default(argumentName || 'n', n, \"Must be a valid integer greater than or equal to zero.\");\n return i;\n }\n Integer.assertZeroOrGreater = assertZeroOrGreater;\n function assertPositive(n, argumentName) {\n var i = assert(n, argumentName) && n > 0;\n if (!i)\n throw new ArgumentOutOfRangeException_1.default(argumentName || 'n', n, \"Must be greater than zero.\");\n return i;\n }\n Integer.assertPositive = assertPositive;\n })(Integer = exports.Integer || (exports.Integer = {}));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Integer;\n});\n","///\r\n/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport ArgumentException from \"./Exceptions/ArgumentException\";\r\nimport ArgumentOutOfRangeException from \"./Exceptions/ArgumentOutOfRangeException\";\r\n\r\nexport function Integer(n:number):number\r\n{\r\n\treturn Math.floor(n);\r\n}\r\n\r\nexport module Integer\r\n{\r\n\texport const MAX_32_BIT:number = 2147483647;\r\n\r\n\tfunction r(maxExclusive:number):number\r\n\t{\r\n\t\treturn (Math.random()*maxExclusive) | 0;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Returns a random integer from minInclusive to the maxExclusive.\r\n\t * Negative numbers are allowed.\r\n\t *\r\n\t * @param maxExclusive\r\n\t * @returns {number}\r\n\t */\r\n\texport function random(maxExclusive:number):number\r\n\t{\r\n\t\tassert(maxExclusive, 'maxExclusive');\r\n\t\treturn r(maxExclusive);\r\n\t}\r\n\r\n\texport module random\r\n\t{\r\n\t\texport function next(\r\n\t\t\tboundary:number,\r\n\t\t\tinclusive?:boolean):number\r\n\t\t{\r\n\t\t\tassert(boundary, 'max');\r\n\t\t\tif(boundary===0) return 0;\r\n\t\t\tif(inclusive) boundary += boundary/Math.abs(boundary);\r\n\t\t\treturn r(boundary);\r\n\t\t}\r\n\r\n\t\texport function nextInRange(\r\n\t\t\tmin:number,\r\n\t\t\tmax:number,\r\n\t\t\tinclusive?:boolean):number\r\n\t\t{\r\n\t\t\tassert(min, 'min');\r\n\t\t\tassert(max, 'max');\r\n\t\t\tvar range = max - min;\r\n\t\t\tif(range===0) return min;\r\n\t\t\tif(inclusive) range += range/Math.abs(range);\r\n\t\t\treturn min + next(range);\r\n\t\t}\r\n\r\n\t\texport function select(source:IArray):T\r\n\t\t{\r\n\t\t\treturn source && source.length\r\n\t\t\t\t? source[r(source.length)]\r\n\t\t\t\t: void(0);\r\n\t\t}\r\n\r\n\t\texport module select\r\n\t\t{\r\n\t\t\texport function one(source:IArray):T\r\n\t\t\t{\r\n\t\t\t\treturn random.select(source);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\texport function as32Bit(n:number):number\r\n\t{\r\n\t\tvar result = n | 0;\r\n\t\treturn (n===-1 || result!==-1) ? result : null;\r\n\t}\r\n\r\n\tconst NUMBER:string = \"number\";\r\n\r\n\texport function is(n:number):boolean\r\n\t{\r\n\t\treturn typeof n===NUMBER && isFinite(n) && n===Math.floor(n);\r\n\t}\r\n\r\n\texport function is32Bit(n:number):boolean\r\n\t{\r\n\t\treturn n===(n | 0);\r\n\t}\r\n\r\n\r\n\texport function assert(n:number, argumentName?:string):boolean\r\n\t{\r\n\t\tvar i = is(n);\r\n\t\tif(!i)\r\n\t\t\tthrow new ArgumentException(argumentName || 'n', \"Must be a integer.\");\r\n\t\treturn i;\r\n\t}\r\n\r\n\texport function assertZeroOrGreater(n:number, argumentName?:string):boolean\r\n\t{\r\n\t\tvar i = assert(n, argumentName) && n>=0;\r\n\t\tif(!i)\r\n\t\t\tthrow new ArgumentOutOfRangeException(argumentName || 'n', n, \"Must be a valid integer greater than or equal to zero.\");\r\n\t\treturn i;\r\n\t}\r\n\r\n\texport function assertPositive(n:number, argumentName?:string):boolean\r\n\t{\r\n\t\tvar i = assert(n, argumentName) && n>0;\r\n\t\tif(!i)\r\n\t\t\tthrow new ArgumentOutOfRangeException(argumentName || 'n', n, \"Must be greater than zero.\");\r\n\t\treturn i;\r\n\t}\r\n\r\n}\r\n\r\nexport default Integer;\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Integer.js","System/Integer.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","Integer","n","Math","floor","ArgumentException_1","ArgumentOutOfRangeException_1","r","maxExclusive","random","assert","as32Bit","result","is","NUMBER","isFinite","is32Bit","argumentName","i","ArgumentException","assertZeroOrGreater","ArgumentOutOfRangeException","assertPositive","MAX_32_BIT","next","boundary","inclusive","abs","nextInRange","min","max","range","select","source","length","one","Object","defineProperty","value"],"mappings":";;;;CAIA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,iCAAkC,4CAA6CN,IAElH,SAAUI,EAASF,GAClB,YCFJ,SAAAM,GAAwBC,GAEvB,MAAOC,MAAKC,MAAMF,GANnB,GAAAG,GAAAR,EAAgC,kCAChCS,EAAAT,EAA0C,2CAG1BF,GAAAM,QAAOA,CAKvB,IAAcA,IAAd,SAAcA,GAIb,QAAAM,GAAWC,GAEV,MAAQL,MAAKM,SAASD,EAAgB,EAWvC,QAAAC,GAAuBD,GAGtB,MADAE,GAAOF,EAAc,gBACdD,EAAEC,GA6CV,QAAAG,GAAwBT,GAEvB,GAAIU,GAAa,EAAJV,CACb,OAAY,KAAJA,GAAmB,KAATU,EAAeA,EAAS,KAK3C,QAAAC,GAAmBX,GAElB,aAAcA,KAAIY,GAAUC,SAASb,IAAMA,IAAIC,KAAKC,MAAMF,GAG3D,QAAAc,GAAwBd,GAEvB,MAAOA,MAAS,EAAJA,GAIb,QAAAQ,GAAuBR,EAAUe,GAEhC,GAAIC,GAAIL,EAAGX,EACX,KAAIgB,EACH,KAAM,IAAIb,GAAAc,kBAAkBF,GAAgB,IAAK,qBAClD,OAAOC,GAGR,QAAAE,GAAoClB,EAAUe,GAE7C,GAAIC,GAAIR,EAAOR,EAAGe,IAAiBf,GAAG,CACtC,KAAIgB,EACH,KAAM,IAAIZ,GAAAe,4BAA4BJ,GAAgB,IAAKf,EAAG,yDAC/D,OAAOgB,GAGR,QAAAI,GAA+BpB,EAAUe,GAExC,GAAIC,GAAIR,EAAOR,EAAGe,IAAiBf,EAAE,CACrC,KAAIgB,EACH,KAAM,IAAIZ,GAAAe,4BAA4BJ,GAAgB,IAAKf,EAAG,6BAC/D,OAAOgB,GAvGKjB,EAAAsB,WAAoB,WAejBtB,EAAAQ,OAAMA,CAMtB,IAAcA,IAAd,SAAcA,GAEb,QAAAe,GACCC,EACAC,GAGA,MADAhB,GAAOe,EAAU,OACH,IAAXA,EAAqB,GACrBC,IAAWD,GAAYA,EAAStB,KAAKwB,IAAIF,IACrClB,EAAEkB,IAGV,QAAAG,GACCC,EACAC,EACAJ,GAEAhB,EAAOmB,EAAK,OACZnB,EAAOoB,EAAK,MACZ,IAAIC,GAAQD,EAAMD,CAClB,OAAW,KAARE,EAAkBF,GAClBH,IAAWK,GAASA,EAAM5B,KAAKwB,IAAII,IAC/BF,EAAML,EAAKO,IAGnB,QAAAC,GAA0BC,GAEzB,MAAOA,IAAUA,EAAOC,OACrBD,EAAO1B,EAAE0B,EAAOC,SAChB,OA3BYzB,EAAAe,KAAIA,EAUJf,EAAAmB,YAAWA,EAaXnB,EAAAuB,OAAMA,CAOtB,IAAcA,IAAd,SAAcA,GAEb,QAAAG,GAAuBF,GAEtB,MAAOxB,GAAOuB,OAAOC,GAFND,EAAAG,IAAGA,GAFNH,EAAAvB,EAAAuB,SAAAvB,EAAAuB,aAhCDvB,EAAAR,EAAAQ,SAAAR,EAAAQ,YA0CER,EAAAU,QAAOA,CAMvB,IAAMG,GAAgB,QAENb,GAAAY,GAAEA,EAKFZ,EAAAe,QAAOA,EAMPf,EAAAS,OAAMA,EAQNT,EAAAmB,oBAAmBA,EAQnBnB,EAAAqB,eAAcA,GApGjBrB,EAAAN,EAAAM,UAAAN,EAAAM,aA8GdmC,OAAAC,eAAA1C,EAAA,cAAA2C,OAAA,IDtBI3C,EAAAA,WCsBWM","file":"System/Integer.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"./Exceptions/ArgumentException\", \"./Exceptions/ArgumentOutOfRangeException\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var ArgumentException_1 = require(\"./Exceptions/ArgumentException\");\n var ArgumentOutOfRangeException_1 = require(\"./Exceptions/ArgumentOutOfRangeException\");\n function Integer(n) {\n return Math.floor(n);\n }\n exports.Integer = Integer;\n var Integer;\n (function (Integer) {\n Integer.MAX_32_BIT = 2147483647;\n function r(maxExclusive) {\n return (Math.random() * maxExclusive) | 0;\n }\n function random(maxExclusive) {\n assert(maxExclusive, 'maxExclusive');\n return r(maxExclusive);\n }\n Integer.random = random;\n var random;\n (function (random) {\n function next(boundary, inclusive) {\n assert(boundary, 'max');\n if (boundary === 0)\n return 0;\n if (inclusive)\n boundary += boundary / Math.abs(boundary);\n return r(boundary);\n }\n random.next = next;\n function nextInRange(min, max, inclusive) {\n assert(min, 'min');\n assert(max, 'max');\n var range = max - min;\n if (range === 0)\n return min;\n if (inclusive)\n range += range / Math.abs(range);\n return min + next(range);\n }\n random.nextInRange = nextInRange;\n function select(source) {\n return source && source.length\n ? source[r(source.length)]\n : void (0);\n }\n random.select = select;\n var select;\n (function (select) {\n function one(source) {\n return random.select(source);\n }\n select.one = one;\n })(select = random.select || (random.select = {}));\n })(random = Integer.random || (Integer.random = {}));\n function as32Bit(n) {\n var result = n | 0;\n return (n === -1 || result !== -1) ? result : null;\n }\n Integer.as32Bit = as32Bit;\n var NUMBER = \"number\";\n function is(n) {\n return typeof n === NUMBER && isFinite(n) && n === Math.floor(n);\n }\n Integer.is = is;\n function is32Bit(n) {\n return n === (n | 0);\n }\n Integer.is32Bit = is32Bit;\n function assert(n, argumentName) {\n var i = is(n);\n if (!i)\n throw new ArgumentException_1.ArgumentException(argumentName || 'n', \"Must be a integer.\");\n return i;\n }\n Integer.assert = assert;\n function assertZeroOrGreater(n, argumentName) {\n var i = assert(n, argumentName) && n >= 0;\n if (!i)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(argumentName || 'n', n, \"Must be a valid integer greater than or equal to zero.\");\n return i;\n }\n Integer.assertZeroOrGreater = assertZeroOrGreater;\n function assertPositive(n, argumentName) {\n var i = assert(n, argumentName) && n > 0;\n if (!i)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(argumentName || 'n', n, \"Must be greater than zero.\");\n return i;\n }\n Integer.assertPositive = assertPositive;\n })(Integer = exports.Integer || (exports.Integer = {}));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Integer;\n});\n","///\r\n/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {ArgumentException} from \"./Exceptions/ArgumentException\";\r\nimport {ArgumentOutOfRangeException} from \"./Exceptions/ArgumentOutOfRangeException\";\r\nimport {IArray} from \"./Collections/Array/IArray\";\r\n\r\nexport function Integer(n:number):number\r\n{\r\n\treturn Math.floor(n);\r\n}\r\n\r\nexport module Integer\r\n{\r\n\texport const MAX_32_BIT:number = 2147483647;\r\n\r\n\tfunction r(maxExclusive:number):number\r\n\t{\r\n\t\treturn (Math.random()*maxExclusive) | 0;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Returns a random integer from minInclusive to the maxExclusive.\r\n\t * Negative numbers are allowed.\r\n\t *\r\n\t * @param maxExclusive\r\n\t * @returns {number}\r\n\t */\r\n\texport function random(maxExclusive:number):number\r\n\t{\r\n\t\tassert(maxExclusive, 'maxExclusive');\r\n\t\treturn r(maxExclusive);\r\n\t}\r\n\r\n\texport module random\r\n\t{\r\n\t\texport function next(\r\n\t\t\tboundary:number,\r\n\t\t\tinclusive?:boolean):number\r\n\t\t{\r\n\t\t\tassert(boundary, 'max');\r\n\t\t\tif(boundary===0) return 0;\r\n\t\t\tif(inclusive) boundary += boundary/Math.abs(boundary);\r\n\t\t\treturn r(boundary);\r\n\t\t}\r\n\r\n\t\texport function nextInRange(\r\n\t\t\tmin:number,\r\n\t\t\tmax:number,\r\n\t\t\tinclusive?:boolean):number\r\n\t\t{\r\n\t\t\tassert(min, 'min');\r\n\t\t\tassert(max, 'max');\r\n\t\t\tvar range = max - min;\r\n\t\t\tif(range===0) return min;\r\n\t\t\tif(inclusive) range += range/Math.abs(range);\r\n\t\t\treturn min + next(range);\r\n\t\t}\r\n\r\n\t\texport function select(source:IArray):T\r\n\t\t{\r\n\t\t\treturn source && source.length\r\n\t\t\t\t? source[r(source.length)]\r\n\t\t\t\t: void(0);\r\n\t\t}\r\n\r\n\t\texport module select\r\n\t\t{\r\n\t\t\texport function one(source:IArray):T\r\n\t\t\t{\r\n\t\t\t\treturn random.select(source);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\texport function as32Bit(n:number):number\r\n\t{\r\n\t\tvar result = n | 0;\r\n\t\treturn (n===-1 || result!==-1) ? result : null;\r\n\t}\r\n\r\n\tconst NUMBER:string = \"number\";\r\n\r\n\texport function is(n:number):boolean\r\n\t{\r\n\t\treturn typeof n===NUMBER && isFinite(n) && n===Math.floor(n);\r\n\t}\r\n\r\n\texport function is32Bit(n:number):boolean\r\n\t{\r\n\t\treturn n===(n | 0);\r\n\t}\r\n\r\n\r\n\texport function assert(n:number, argumentName?:string):boolean\r\n\t{\r\n\t\tvar i = is(n);\r\n\t\tif(!i)\r\n\t\t\tthrow new ArgumentException(argumentName || 'n', \"Must be a integer.\");\r\n\t\treturn i;\r\n\t}\r\n\r\n\texport function assertZeroOrGreater(n:number, argumentName?:string):boolean\r\n\t{\r\n\t\tvar i = assert(n, argumentName) && n>=0;\r\n\t\tif(!i)\r\n\t\t\tthrow new ArgumentOutOfRangeException(argumentName || 'n', n, \"Must be a valid integer greater than or equal to zero.\");\r\n\t\treturn i;\r\n\t}\r\n\r\n\texport function assertPositive(n:number, argumentName?:string):boolean\r\n\t{\r\n\t\tvar i = assert(n, argumentName) && n>0;\r\n\t\tif(!i)\r\n\t\t\tthrow new ArgumentOutOfRangeException(argumentName || 'n', n, \"Must be greater than zero.\");\r\n\t\treturn i;\r\n\t}\r\n\r\n}\r\n\r\nexport default Integer;\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/KeyValueExtract.d.ts b/dist/umd.min/System/KeyValueExtract.d.ts index cfe473b9..8a23ab82 100644 --- a/dist/umd.min/System/KeyValueExtract.d.ts +++ b/dist/umd.min/System/KeyValueExtract.d.ts @@ -2,8 +2,11 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { KeyValuePair, IKeyValuePair } from "./KeyValuePair"; +import { IArray } from "./Collections/Array/IArray"; export declare function isKeyValuePair(kvp: any): kvp is IKeyValuePair; export declare function assertKey(key: TKey, name?: string): TKey; export declare function assertTuple(tuple: IArray, name?: string): void; export declare function assertNotUndefined(value: T, name: string): T; -export default function extractKeyValue(item: KeyValuePair, to: (key: TKey, value: TValue) => TResult): TResult; +export declare function extractKeyValue(item: KeyValuePair, to: (key: TKey, value: TValue) => TResult): TResult; +export default extractKeyValue; diff --git a/dist/umd.min/System/KeyValueExtract.js b/dist/umd.min/System/KeyValueExtract.js index ef64ac6b..f2c215dc 100644 --- a/dist/umd.min/System/KeyValueExtract.js +++ b/dist/umd.min/System/KeyValueExtract.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","./Exceptions/ArgumentException","./Exceptions/ArgumentNullException"],e)}(function(e,t){"use strict";function n(e){return e&&e.hasOwnProperty(d)&&e.hasOwnProperty(p)}function o(e,t){if(void 0===t&&(t=c),r(e,t+s+d),null===e)throw new l["default"](t+s+d);return e}function u(e,t){if(void 0===t&&(t=c),2!=e.length)throw new f["default"](t,"KeyValuePair tuples must be of length 2.");o(e[0],t)}function r(e,t){if(e===a)throw new f["default"](t,m);return e}function i(e,t){var i,l;if(e instanceof Array)u(e),i=e[0],l=r(e[1],y);else{if(!n(e))throw new f["default"](c,v);i=o(e.key),l=r(e.value,x)}return t(i,l)}var f=e("./Exceptions/ArgumentException"),l=e("./Exceptions/ArgumentNullException"),a=void 0,s=".",d="key",p="value",c="item",y=c+"[1]",x=c+s+p,v="Invalid type. Must be a KeyValuePair or Tuple of length 2.",m="Cannot equal undefined.";t.isKeyValuePair=n,t.assertKey=o,t.assertTuple=u,t.assertNotUndefined=r,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=i}); +!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","./Exceptions/ArgumentException","./Exceptions/ArgumentNullException"],e)}(function(e,t){"use strict";function n(e){return e&&e.hasOwnProperty(p)&&e.hasOwnProperty(s)}function o(e,t){if(void 0===t&&(t=d),i(e,t+c+p),null===e)throw new a.ArgumentNullException(t+c+p);return e}function r(e,t){if(void 0===t&&(t=d),2!=e.length)throw new l.ArgumentException(t,"KeyValuePair tuples must be of length 2.");o(e[0],t)}function i(e,t){if(e===f)throw new l.ArgumentException(t,E);return e}function u(e,t){var u,a;if(e instanceof Array)r(e),u=e[0],a=i(e[1],x);else{if(!n(e))throw new l.ArgumentException(d,m);u=o(e.key),a=i(e.value,y)}return t(u,a)}var l=e("./Exceptions/ArgumentException"),a=e("./Exceptions/ArgumentNullException"),f=void 0,c=".",p="key",s="value",d="item",x=d+"[1]",y=d+c+s,m="Invalid type. Must be a KeyValuePair or Tuple of length 2.",E="Cannot equal undefined.";t.isKeyValuePair=n,t.assertKey=o,t.assertTuple=r,t.assertNotUndefined=i,t.extractKeyValue=u,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=u}); //# sourceMappingURL=KeyValueExtract.js.map diff --git a/dist/umd.min/System/KeyValueExtract.js.map b/dist/umd.min/System/KeyValueExtract.js.map index b62173ab..b8cab57c 100644 --- a/dist/umd.min/System/KeyValueExtract.js.map +++ b/dist/umd.min/System/KeyValueExtract.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/KeyValueExtract.js","System/KeyValueExtract.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","isKeyValuePair","kvp","hasOwnProperty","KEY","VALUE","assertKey","key","name","ITEM","assertNotUndefined","DOT","ArgumentNullException_1","assertTuple","tuple","length","ArgumentException_1","value","VOID0","CANNOT_BE_UNDEFINED","extractKeyValue","item","to","Array","ITEM_1","INVALID_KVP_MESSAGE","ITEM_VALUE","Object","defineProperty"],"mappings":";;;;CAIA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,iCAAkC,sCAAuCN,IAE5G,SAAUI,EAASF,GAClB,YCQJ,SAAAM,GAA4CC,GAE3C,MAAOA,IAAOA,EAAIC,eAAeC,IAAQF,EAAIC,eAAeE,GAG7D,QAAAC,GAAgCC,EAAUC,GAGzC,GAHyC,SAAAA,IAAAA,EAAAC,GAEzCC,EAAmBH,EAAKC,EAAOG,EAAMP,GAC5B,OAANG,EACF,KAAM,IAAIK,GAAAA,WAAsBJ,EAAOG,EAAMP,EAE9C,OAAOG,GAIR,QAAAM,GAA4BC,EAAmBN,GAE9C,GAF8C,SAAAA,IAAAA,EAAAC,GAE7B,GAAdK,EAAMC,OACR,KAAM,IAAIC,GAAAA,WAAkBR,EAAM,2CAEnCF,GAAUQ,EAAM,GAAIN,GAIrB,QAAAE,GAAsCO,EAAST,GAE9C,GAAGS,IAAQC,EACV,KAAM,IAAIF,GAAAA,WAAkBR,EAAMW,EAEnC,OAAOF,GAIR,QAAAG,GACCC,EACAC,GAGA,GAAcf,GAAUU,CACxB,IAAGI,YAAgBE,OAElBV,EAAYQ,GACZd,EAAMc,EAAK,GACXJ,EAAQP,EAAmBW,EAAK,GAAIG,OAEhC,CAAA,IAAGvB,EAA4BoB,GAOnC,KAAM,IAAIL,GAAAA,WAAkBP,EAAMgB,EALlClB,GAAMD,EAAUe,EAAKd,KACrBU,EAAQP,EAAmBW,EAAKJ,MAAOS,GAOxC,MAAOJ,GAAGf,EAAKU,GAtEhB,GAAAD,GAAAnB,EAA8B,kCAC9Be,EAAAf,EAAkC,sCAGjCqB,EAA6B,OAC7BP,EAA6B,IAC7BP,EAA6B,MAC7BC,EAA6B,QAC7BI,EAA6B,OAC7Be,EAA6Bf,EAAO,MAEpCiB,EAA6BjB,EAAOE,EAAMN,EAC1CoB,EAA6B,8DAC7BN,EAA6B,yBAEdxB,GAAAM,eAAcA,EAKdN,EAAAW,UAASA,EAUTX,EAAAkB,YAAWA,EASXlB,EAAAe,mBAAkBA,EASlCiB,OAAAC,eAAAjC,EAAA,cAAAsB,OAAA,IDKItB,EAAAA,WAAkByB","file":"System/KeyValueExtract.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"./Exceptions/ArgumentException\", \"./Exceptions/ArgumentNullException\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var ArgumentException_1 = require(\"./Exceptions/ArgumentException\");\n var ArgumentNullException_1 = require(\"./Exceptions/ArgumentNullException\");\n var VOID0 = void 0, DOT = '.', KEY = 'key', VALUE = 'value', ITEM = 'item', ITEM_1 = ITEM + '[1]', ITEM_KEY = ITEM + DOT + KEY, ITEM_VALUE = ITEM + DOT + VALUE, INVALID_KVP_MESSAGE = 'Invalid type. Must be a KeyValuePair or Tuple of length 2.', CANNOT_BE_UNDEFINED = 'Cannot equal undefined.';\n function isKeyValuePair(kvp) {\n return kvp && kvp.hasOwnProperty(KEY) && kvp.hasOwnProperty(VALUE);\n }\n exports.isKeyValuePair = isKeyValuePair;\n function assertKey(key, name) {\n if (name === void 0) { name = ITEM; }\n assertNotUndefined(key, name + DOT + KEY);\n if (key === null)\n throw new ArgumentNullException_1.default(name + DOT + KEY);\n return key;\n }\n exports.assertKey = assertKey;\n function assertTuple(tuple, name) {\n if (name === void 0) { name = ITEM; }\n if (tuple.length != 2)\n throw new ArgumentException_1.default(name, 'KeyValuePair tuples must be of length 2.');\n assertKey(tuple[0], name);\n }\n exports.assertTuple = assertTuple;\n function assertNotUndefined(value, name) {\n if (value === VOID0)\n throw new ArgumentException_1.default(name, CANNOT_BE_UNDEFINED);\n return value;\n }\n exports.assertNotUndefined = assertNotUndefined;\n function extractKeyValue(item, to) {\n var _ = this, key, value;\n if (item instanceof Array) {\n assertTuple(item);\n key = item[0];\n value = assertNotUndefined(item[1], ITEM_1);\n }\n else if (isKeyValuePair(item)) {\n key = assertKey(item.key);\n value = assertNotUndefined(item.value, ITEM_VALUE);\n }\n else {\n throw new ArgumentException_1.default(ITEM, INVALID_KVP_MESSAGE);\n }\n return to(key, value);\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = extractKeyValue;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport ArgumentException from \"./Exceptions/ArgumentException\";\r\nimport ArgumentNullException from \"./Exceptions/ArgumentNullException\";\r\n\r\nconst\r\n\tVOID0:any = void 0,\r\n\tDOT:string = '.',\r\n\tKEY:string = 'key',\r\n\tVALUE:string = 'value',\r\n\tITEM:string = 'item',\r\n\tITEM_1:string = ITEM + '[1]',\r\n\tITEM_KEY:string = ITEM + DOT + KEY,\r\n\tITEM_VALUE:string = ITEM + DOT + VALUE,\r\n\tINVALID_KVP_MESSAGE:string = 'Invalid type. Must be a KeyValuePair or Tuple of length 2.',\r\n\tCANNOT_BE_UNDEFINED:string = 'Cannot equal undefined.';\r\n\r\nexport function isKeyValuePair(kvp:any):kvp is IKeyValuePair\r\n{\r\n\treturn kvp && kvp.hasOwnProperty(KEY) && kvp.hasOwnProperty(VALUE);\r\n}\r\n\r\nexport function assertKey(key:TKey, name:string = ITEM):TKey\r\n{\r\n\tassertNotUndefined(key, name + DOT + KEY);\r\n\tif(key===null)\r\n\t\tthrow new ArgumentNullException(name + DOT + KEY);\r\n\r\n\treturn key;\r\n}\r\n\r\n\r\nexport function assertTuple(tuple:IArray, name:string = ITEM):void\r\n{\r\n\tif(tuple.length!=2)\r\n\t\tthrow new ArgumentException(name, 'KeyValuePair tuples must be of length 2.');\r\n\r\n\tassertKey(tuple[0], name);\r\n}\r\n\r\n\r\nexport function assertNotUndefined(value:T, name:string):T\r\n{\r\n\tif(value===VOID0)\r\n\t\tthrow new ArgumentException(name, CANNOT_BE_UNDEFINED);\r\n\r\n\treturn value;\r\n}\r\n\r\n\r\nexport default function extractKeyValue(\r\n\titem:KeyValuePair,\r\n\tto:(key:TKey, value:TValue)=>TResult):TResult\r\n{\r\n\r\n\tvar _ = this, key:TKey, value:TValue;\r\n\tif(item instanceof Array)\r\n\t{\r\n\t\tassertTuple(item);\r\n\t\tkey = item[0];\r\n\t\tvalue = assertNotUndefined(item[1], ITEM_1);\r\n\t}\r\n\telse if(isKeyValuePair(item))\r\n\t{\r\n\t\tkey = assertKey(item.key);\r\n\t\tvalue = assertNotUndefined(item.value, ITEM_VALUE);\r\n\t}\r\n\telse\r\n\t{\r\n\t\tthrow new ArgumentException(ITEM, INVALID_KVP_MESSAGE);\r\n\t}\r\n\r\n\treturn to(key, value);\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/KeyValueExtract.js","System/KeyValueExtract.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","isKeyValuePair","kvp","hasOwnProperty","KEY","VALUE","assertKey","key","name","ITEM","assertNotUndefined","DOT","ArgumentNullException_1","ArgumentNullException","assertTuple","tuple","length","ArgumentException_1","ArgumentException","value","VOID0","CANNOT_BE_UNDEFINED","extractKeyValue","item","to","Array","ITEM_1","INVALID_KVP_MESSAGE","ITEM_VALUE","Object","defineProperty"],"mappings":";;;;CAIA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,iCAAkC,sCAAuCN,IAE5G,SAAUI,EAASF,GAClB,YCUJ,SAAAM,GAA4CC,GAE3C,MAAOA,IAAOA,EAAIC,eAAeC,IAAQF,EAAIC,eAAeE,GAG7D,QAAAC,GAAgCC,EAAUC,GAGzC,GAHyC,SAAAA,IAAAA,EAAAC,GAEzCC,EAAmBH,EAAKC,EAAOG,EAAMP,GAC5B,OAANG,EACF,KAAM,IAAIK,GAAAC,sBAAsBL,EAAOG,EAAMP,EAE9C,OAAOG,GAIR,QAAAO,GAA4BC,EAAmBP,GAE9C,GAF8C,SAAAA,IAAAA,EAAAC,GAE7B,GAAdM,EAAMC,OACR,KAAM,IAAIC,GAAAC,kBAAkBV,EAAM,2CAEnCF,GAAUS,EAAM,GAAIP,GAIrB,QAAAE,GAAsCS,EAASX,GAE9C,GAAGW,IAAQC,EACV,KAAM,IAAIH,GAAAC,kBAAkBV,EAAMa,EAEnC,OAAOF,GAIR,QAAAG,GACCC,EACAC,GAGA,GAAcjB,GAAUY,CACxB,IAAGI,YAAgBE,OAElBX,EAAYS,GACZhB,EAAMgB,EAAK,GACXJ,EAAQT,EAAmBa,EAAK,GAAIG,OAEhC,CAAA,IAAGzB,EAA4BsB,GAOnC,KAAM,IAAIN,GAAAC,kBAAkBT,EAAMkB,EALlCpB,GAAMD,EAAUiB,EAAKhB,KACrBY,EAAQT,EAAmBa,EAAKJ,MAAOS,GAOxC,MAAOJ,GAAGjB,EAAKY,GAxEhB,GAAAF,GAAApB,EAAgC,kCAChCe,EAAAf,EAAoC,sCAKnCuB,EAA6B,OAC7BT,EAA6B,IAC7BP,EAA6B,MAC7BC,EAA6B,QAC7BI,EAA6B,OAC7BiB,EAA6BjB,EAAO,MAEpCmB,EAA6BnB,EAAOE,EAAMN,EAC1CsB,EAA6B,8DAC7BN,EAA6B,yBAEd1B,GAAAM,eAAcA,EAKdN,EAAAW,UAASA,EAUTX,EAAAmB,YAAWA,EASXnB,EAAAe,mBAAkBA,EASlBf,EAAA2B,gBAAeA,EAyB/BO,OAAAC,eAAAnC,EAAA,cAAAwB,OAAA,IDrBIxB,EAAAA,WCqBW2B","file":"System/KeyValueExtract.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"./Exceptions/ArgumentException\", \"./Exceptions/ArgumentNullException\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var ArgumentException_1 = require(\"./Exceptions/ArgumentException\");\n var ArgumentNullException_1 = require(\"./Exceptions/ArgumentNullException\");\n var VOID0 = void 0, DOT = '.', KEY = 'key', VALUE = 'value', ITEM = 'item', ITEM_1 = ITEM + '[1]', ITEM_KEY = ITEM + DOT + KEY, ITEM_VALUE = ITEM + DOT + VALUE, INVALID_KVP_MESSAGE = 'Invalid type. Must be a KeyValuePair or Tuple of length 2.', CANNOT_BE_UNDEFINED = 'Cannot equal undefined.';\n function isKeyValuePair(kvp) {\n return kvp && kvp.hasOwnProperty(KEY) && kvp.hasOwnProperty(VALUE);\n }\n exports.isKeyValuePair = isKeyValuePair;\n function assertKey(key, name) {\n if (name === void 0) { name = ITEM; }\n assertNotUndefined(key, name + DOT + KEY);\n if (key === null)\n throw new ArgumentNullException_1.ArgumentNullException(name + DOT + KEY);\n return key;\n }\n exports.assertKey = assertKey;\n function assertTuple(tuple, name) {\n if (name === void 0) { name = ITEM; }\n if (tuple.length != 2)\n throw new ArgumentException_1.ArgumentException(name, 'KeyValuePair tuples must be of length 2.');\n assertKey(tuple[0], name);\n }\n exports.assertTuple = assertTuple;\n function assertNotUndefined(value, name) {\n if (value === VOID0)\n throw new ArgumentException_1.ArgumentException(name, CANNOT_BE_UNDEFINED);\n return value;\n }\n exports.assertNotUndefined = assertNotUndefined;\n function extractKeyValue(item, to) {\n var _ = this, key, value;\n if (item instanceof Array) {\n assertTuple(item);\n key = item[0];\n value = assertNotUndefined(item[1], ITEM_1);\n }\n else if (isKeyValuePair(item)) {\n key = assertKey(item.key);\n value = assertNotUndefined(item.value, ITEM_VALUE);\n }\n else {\n throw new ArgumentException_1.ArgumentException(ITEM, INVALID_KVP_MESSAGE);\n }\n return to(key, value);\n }\n exports.extractKeyValue = extractKeyValue;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = extractKeyValue;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {ArgumentException} from \"./Exceptions/ArgumentException\";\r\nimport {ArgumentNullException} from \"./Exceptions/ArgumentNullException\";\r\nimport {KeyValuePair, IKeyValuePair} from \"./KeyValuePair\";\r\nimport {IArray} from \"./Collections/Array/IArray\";\r\n\r\nconst\r\n\tVOID0:any = void 0,\r\n\tDOT:string = '.',\r\n\tKEY:string = 'key',\r\n\tVALUE:string = 'value',\r\n\tITEM:string = 'item',\r\n\tITEM_1:string = ITEM + '[1]',\r\n\tITEM_KEY:string = ITEM + DOT + KEY,\r\n\tITEM_VALUE:string = ITEM + DOT + VALUE,\r\n\tINVALID_KVP_MESSAGE:string = 'Invalid type. Must be a KeyValuePair or Tuple of length 2.',\r\n\tCANNOT_BE_UNDEFINED:string = 'Cannot equal undefined.';\r\n\r\nexport function isKeyValuePair(kvp:any):kvp is IKeyValuePair\r\n{\r\n\treturn kvp && kvp.hasOwnProperty(KEY) && kvp.hasOwnProperty(VALUE);\r\n}\r\n\r\nexport function assertKey(key:TKey, name:string = ITEM):TKey\r\n{\r\n\tassertNotUndefined(key, name + DOT + KEY);\r\n\tif(key===null)\r\n\t\tthrow new ArgumentNullException(name + DOT + KEY);\r\n\r\n\treturn key;\r\n}\r\n\r\n\r\nexport function assertTuple(tuple:IArray, name:string = ITEM):void\r\n{\r\n\tif(tuple.length!=2)\r\n\t\tthrow new ArgumentException(name, 'KeyValuePair tuples must be of length 2.');\r\n\r\n\tassertKey(tuple[0], name);\r\n}\r\n\r\n\r\nexport function assertNotUndefined(value:T, name:string):T\r\n{\r\n\tif(value===VOID0)\r\n\t\tthrow new ArgumentException(name, CANNOT_BE_UNDEFINED);\r\n\r\n\treturn value;\r\n}\r\n\r\n\r\nexport function extractKeyValue(\r\n\titem:KeyValuePair,\r\n\tto:(key:TKey, value:TValue)=>TResult):TResult\r\n{\r\n\r\n\tvar _ = this, key:TKey, value:TValue;\r\n\tif(item instanceof Array)\r\n\t{\r\n\t\tassertTuple(item);\r\n\t\tkey = item[0];\r\n\t\tvalue = assertNotUndefined(item[1], ITEM_1);\r\n\t}\r\n\telse if(isKeyValuePair(item))\r\n\t{\r\n\t\tkey = assertKey(item.key);\r\n\t\tvalue = assertNotUndefined(item.value, ITEM_VALUE);\r\n\t}\r\n\telse\r\n\t{\r\n\t\tthrow new ArgumentException(ITEM, INVALID_KVP_MESSAGE);\r\n\t}\r\n\r\n\treturn to(key, value);\r\n}\r\n\r\nexport default extractKeyValue;"]} \ No newline at end of file diff --git a/dist/umd.min/System/Lazy.d.ts b/dist/umd.min/System/Lazy.d.ts index de32b287..c682318e 100644 --- a/dist/umd.min/System/Lazy.d.ts +++ b/dist/umd.min/System/Lazy.d.ts @@ -1,11 +1,11 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import DisposableBase from './Disposable/DisposableBase'; -export default class Lazy extends DisposableBase implements ILazy { +import { DisposableBase } from "./Disposable/DisposableBase"; +import { ILazy } from "./ILazy"; +import { Func } from "./FunctionTypes"; +export declare class Lazy extends DisposableBase implements ILazy { private _closure; private _isValueCreated; private _value; @@ -19,3 +19,4 @@ export default class Lazy extends DisposableBase implements ILazy { equals(other: Lazy): boolean; valueEquals(other: Lazy): boolean; } +export default Lazy; diff --git a/dist/umd.min/System/Lazy.js b/dist/umd.min/System/Lazy.js index 7af6ba59..b68d2ec0 100644 --- a/dist/umd.min/System/Lazy.js +++ b/dist/umd.min/System/Lazy.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","./Disposable/DisposableBase"],e)}(function(e,t){"use strict";var r=e("./Disposable/DisposableBase"),o=function(e){function t(t){e.call(this),this._closure=t,this._disposableObjectName="Lazy"}return __extends(t,e),Object.defineProperty(t.prototype,"isValueCreated",{get:function(){return this._isValueCreated},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"canReset",{get:function(){return!this.wasDisposed&&!!this._closure},enumerable:!0,configurable:!0}),t.prototype.reset=function(e){var t=this;if(e&&t.throwIfDisposed(),t._closure)return t._isValueCreated=!1,t._value=null,!0;if(e)throw new Error("Cannot reset. This Lazy has already de-referenced its closure.");return!1},Object.defineProperty(t.prototype,"value",{get:function(){return this.getValue()},enumerable:!0,configurable:!0}),t.prototype.getValue=function(e){var t=this;t.throwIfDisposed();try{if(!t._isValueCreated&&t._closure){var r=t._closure();return t._value=r,t._isValueCreated=!0,r}}finally{e&&(t._closure=null)}return t._value},t.prototype._onDispose=function(){this._closure=null,this._value=null},t.prototype.equals=function(e){return this==e},t.prototype.valueEquals=function(e){return this.equals(e)||this.value===e.value},t}(r["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=o}); +var __extends=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","./Disposable/DisposableBase"],e)}(function(e,t){"use strict";var r=e("./Disposable/DisposableBase"),o=function(e){function t(t){e.call(this),this._closure=t,this._disposableObjectName="Lazy"}return __extends(t,e),Object.defineProperty(t.prototype,"isValueCreated",{get:function(){return this._isValueCreated},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"canReset",{get:function(){return!this.wasDisposed&&!!this._closure},enumerable:!0,configurable:!0}),t.prototype.reset=function(e){var t=this;if(e&&t.throwIfDisposed(),t._closure)return t._isValueCreated=!1,t._value=null,!0;if(e)throw new Error("Cannot reset. This Lazy has already de-referenced its closure.");return!1},Object.defineProperty(t.prototype,"value",{get:function(){return this.getValue()},enumerable:!0,configurable:!0}),t.prototype.getValue=function(e){var t=this;t.throwIfDisposed();try{if(!t._isValueCreated&&t._closure){var r=t._closure();return t._value=r,t._isValueCreated=!0,r}}finally{e&&(t._closure=null)}return t._value},t.prototype._onDispose=function(){this._closure=null,this._value=null},t.prototype.equals=function(e){return this==e},t.prototype.valueEquals=function(e){return this.equals(e)||this.value===e.value},t}(r.DisposableBase);t.Lazy=o,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=o}); //# sourceMappingURL=Lazy.js.map diff --git a/dist/umd.min/System/Lazy.js.map b/dist/umd.min/System/Lazy.js.map index ee39951f..6b79f622 100644 --- a/dist/umd.min/System/Lazy.js.map +++ b/dist/umd.min/System/Lazy.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Lazy.js","System/Lazy.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","DisposableBase_1","Lazy","_super","_closure","call","_disposableObjectName","defineProperty","get","_isValueCreated","enumerable","configurable","wasDisposed","reset","throwIfCannotReset","_","throwIfDisposed","_value","Error","getValue","clearClosureReference","_onDispose","equals","other","valueEquals","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,+BAAgCN,IAEnE,SAAUI,EAASF,GCTtB,YAEA,IAAAM,GAAAJ,EAA2B,+BAE3BK,EAAA,SAAAC,GAOC,QAAAD,GAAoBE,GAEnBD,EAAAE,KAAAtB,MAFmBA,KAAAqB,SAAAA,EAGnBrB,KAAKuB,sBAAwB,OA4E/B,MArFsBxB,WAAAoB,EAAAC,GAYrBZ,OAAAgB,eAAIL,EAAAZ,UAAA,kBDGOkB,ICHX,WAEC,MAAOzB,MAAK0B,iBDIFC,YAAY,EACZC,cAAc,ICDzBpB,OAAAgB,eAAIL,EAAAZ,UAAA,YDIOkB,ICJX,WAEC,OAAQzB,KAAK6B,eAAkB7B,KAAa,UDKlC2B,YAAY,EACZC,cAAc,ICFzBT,EAAAZ,UAAAuB,MAAA,SAAMC,GACL,GAAIC,GAAIhC,IAKR,IAHG+B,GACFC,EAAEC,kBAECD,EAAEX,SAQL,MAFAW,GAAEN,iBAAkB,EACpBM,EAAEE,OAAS,MACJ,CAPP,IAAGH,EACF,KAAM,IAAII,OAAM,kEACjB,QAAO,GAST3B,OAAAgB,eAAIL,EAAAZ,UAAA,SDEOkB,ICFX,WAEC,MAAOzB,MAAKoC,YDGFT,YAAY,EACZC,cAAc,ICDzBT,EAAAZ,UAAA6B,SAAA,SAASC,GAER,GAAIL,GAAIhC,IAERgC,GAAEC,iBAEF,KACC,IAAID,EAAEN,iBAAmBM,EAAEX,SAAU,CACpC,GAAIR,GAAImB,EAAEX,UAGV,OAFAW,GAAEE,OAASrB,EACXmB,EAAEN,iBAAkB,EACbb,GDGC,QCCNwB,IACFL,EAAEX,SAAW,MAGf,MAAOW,GAAEE,QAKAf,EAAAZ,UAAA+B,WAAV,WACCtC,KAAKqB,SAAW,KAChBrB,KAAKkC,OAAS,MAGff,EAAAZ,UAAAgC,OAAA,SAAOC,GAEN,MAAOxC,OAAMwC,GAGdrB,EAAAZ,UAAAkC,YAAA,SAAYD,GAEX,MAAOxC,MAAKuC,OAAOC,IAAUxC,KAAK0C,QAAQF,EAAME,OAElDvB,GArFsBD,EAAAA,WADtBV,QAAAgB,eAAAZ,EAAA,cAAA8B,OAAA,IDiFI9B,EAAAA,WAAkBO","file":"System/Lazy.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", './Disposable/DisposableBase'], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var DisposableBase_1 = require('./Disposable/DisposableBase');\n var Lazy = (function (_super) {\n __extends(Lazy, _super);\n function Lazy(_closure) {\n _super.call(this);\n this._closure = _closure;\n this._disposableObjectName = 'Lazy';\n }\n Object.defineProperty(Lazy.prototype, \"isValueCreated\", {\n get: function () {\n return this._isValueCreated;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Lazy.prototype, \"canReset\", {\n get: function () {\n return !this.wasDisposed && !!(this._closure);\n },\n enumerable: true,\n configurable: true\n });\n Lazy.prototype.reset = function (throwIfCannotReset) {\n var _ = this;\n if (throwIfCannotReset)\n _.throwIfDisposed();\n if (!_._closure) {\n if (throwIfCannotReset)\n throw new Error(\"Cannot reset. This Lazy has already de-referenced its closure.\");\n return false;\n }\n else {\n _._isValueCreated = false;\n _._value = null;\n return true;\n }\n };\n Object.defineProperty(Lazy.prototype, \"value\", {\n get: function () {\n return this.getValue();\n },\n enumerable: true,\n configurable: true\n });\n Lazy.prototype.getValue = function (clearClosureReference) {\n var _ = this;\n _.throwIfDisposed();\n try {\n if (!_._isValueCreated && _._closure) {\n var v = _._closure();\n _._value = v;\n _._isValueCreated = true;\n return v;\n }\n }\n finally {\n if (clearClosureReference)\n _._closure = null;\n }\n return _._value;\n };\n Lazy.prototype._onDispose = function () {\n this._closure = null;\n this._value = null;\n };\n Lazy.prototype.equals = function (other) {\n return this == other;\n };\n Lazy.prototype.valueEquals = function (other) {\n return this.equals(other) || this.value === other.value;\n };\n return Lazy;\n }(DisposableBase_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Lazy;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport DisposableBase from './Disposable/DisposableBase';\r\n\r\nexport default\r\nclass Lazy extends DisposableBase implements ILazy\r\n{\r\n\r\n\tprivate _isValueCreated:boolean;\r\n\tprivate _value:T;\r\n\r\n\tconstructor(private _closure:Func)\r\n\t{\r\n\t\tsuper();\r\n\t\tthis._disposableObjectName = 'Lazy';\r\n\t}\r\n\r\n\tget isValueCreated():boolean\r\n\t{\r\n\t\treturn this._isValueCreated;\r\n\t}\r\n\r\n\t// Adding a 'resettable' mechanism allows for simply resetting a lazy instead of re-instantiating a new one.\r\n\tget canReset():boolean\r\n\t{\r\n\t\treturn !this.wasDisposed && !!(this._closure);\r\n\t}\r\n\r\n\t// Returns true if successfully reset.\r\n\treset(throwIfCannotReset?:boolean):boolean {\r\n\t\tvar _ = this;\r\n\r\n\t\tif(throwIfCannotReset)\r\n\t\t\t_.throwIfDisposed();\r\n\r\n\t\tif(!_._closure) {\r\n\t\t\tif(throwIfCannotReset)\r\n\t\t\t\tthrow new Error(\"Cannot reset. This Lazy has already de-referenced its closure.\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\telse {\r\n\t\t\t_._isValueCreated = false;\r\n\t\t\t_._value = null;\r\n\t\t\treturn true;\r\n\t\t}\r\n\t}\r\n\r\n\tget value():T\r\n\t{\r\n\t\treturn this.getValue();\r\n\t}\r\n\r\n\tgetValue(clearClosureReference?:boolean):T {\r\n\r\n\t\tvar _ = this;\r\n\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\ttry {\r\n\t\t\tif(!_._isValueCreated && _._closure) {\r\n\t\t\t\tvar v = _._closure();\r\n\t\t\t\t_._value = v;\r\n\t\t\t\t_._isValueCreated = true;\r\n\t\t\t\treturn v;\r\n\t\t\t}\r\n\t\t}\r\n\t\tfinally {\r\n\t\t\tif(clearClosureReference)\r\n\t\t\t\t_._closure = null;\r\n\t\t}\r\n\r\n\t\treturn _._value;\r\n\r\n\t}\r\n\r\n\r\n\tprotected _onDispose():void {\r\n\t\tthis._closure = null;\r\n\t\tthis._value = null;\r\n\t}\r\n\r\n\tequals(other:Lazy):boolean\r\n\t{\r\n\t\treturn this==other;\r\n\t}\r\n\r\n\tvalueEquals(other:Lazy):boolean\r\n\t{\r\n\t\treturn this.equals(other) || this.value===other.value;\r\n\t}\r\n}\r\n\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Lazy.js","System/Lazy.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","DisposableBase_1","Lazy","_super","_closure","call","_disposableObjectName","defineProperty","get","_isValueCreated","enumerable","configurable","wasDisposed","reset","throwIfCannotReset","_","throwIfDisposed","_value","Error","getValue","clearClosureReference","_onDispose","equals","other","valueEquals","value","DisposableBase"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,+BAAgCN,IAEnE,SAAUI,EAASF,GAClB,YCZJ,IAAAM,GAAAJ,EAA6B,+BAI7BK,EAAA,SAAAC,GAMC,QAAAD,GAAoBE,GAEnBD,EAAAE,KAAAtB,MAFmBA,KAAAqB,SAAAA,EAGnBrB,KAAKuB,sBAAwB,OA4E/B,MArF6BxB,WAAAoB,EAAAC,GAY5BZ,OAAAgB,eAAIL,EAAAZ,UAAA,kBDMOkB,ICNX,WAEC,MAAOzB,MAAK0B,iBDOFC,YAAY,EACZC,cAAc,ICJzBpB,OAAAgB,eAAIL,EAAAZ,UAAA,YDOOkB,ICPX,WAEC,OAAQzB,KAAK6B,eAAkB7B,KAAa,UDQlC2B,YAAY,EACZC,cAAc,ICLzBT,EAAAZ,UAAAuB,MAAA,SAAMC,GACL,GAAIC,GAAIhC,IAKR,IAHG+B,GACFC,EAAEC,kBAECD,EAAEX,SAQL,MAFAW,GAAEN,iBAAkB,EACpBM,EAAEE,OAAS,MACJ,CAPP,IAAGH,EACF,KAAM,IAAII,OAAM,kEACjB,QAAO,GAST3B,OAAAgB,eAAIL,EAAAZ,UAAA,SDKOkB,ICLX,WAEC,MAAOzB,MAAKoC,YDMFT,YAAY,EACZC,cAAc,ICJzBT,EAAAZ,UAAA6B,SAAA,SAASC,GAER,GAAIL,GAAIhC,IAERgC,GAAEC,iBAEF,KACC,IAAID,EAAEN,iBAAmBM,EAAEX,SAAU,CACpC,GAAIR,GAAImB,EAAEX,UAGV,OAFAW,GAAEE,OAASrB,EACXmB,EAAEN,iBAAkB,EACbb,GDMC,QCFNwB,IACFL,EAAEX,SAAW,MAGf,MAAOW,GAAEE,QAKAf,EAAAZ,UAAA+B,WAAV,WACCtC,KAAKqB,SAAW,KAChBrB,KAAKkC,OAAS,MAGff,EAAAZ,UAAAgC,OAAA,SAAOC,GAEN,MAAOxC,OAAMwC,GAGdrB,EAAAZ,UAAAkC,YAAA,SAAYD,GAEX,MAAOxC,MAAKuC,OAAOC,IAAUxC,KAAK0C,QAAQF,EAAME,OAElDvB,GArF6BD,EAAAyB,eAAhB/B,GAAAO,KAAIA,EAuFjBX,OAAAgB,eAAAZ,EAAA,cAAA8B,OAAA,IDHI9B,EAAAA,WCGWO","file":"System/Lazy.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"./Disposable/DisposableBase\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var DisposableBase_1 = require(\"./Disposable/DisposableBase\");\n var Lazy = (function (_super) {\n __extends(Lazy, _super);\n function Lazy(_closure) {\n _super.call(this);\n this._closure = _closure;\n this._disposableObjectName = 'Lazy';\n }\n Object.defineProperty(Lazy.prototype, \"isValueCreated\", {\n get: function () {\n return this._isValueCreated;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Lazy.prototype, \"canReset\", {\n get: function () {\n return !this.wasDisposed && !!(this._closure);\n },\n enumerable: true,\n configurable: true\n });\n Lazy.prototype.reset = function (throwIfCannotReset) {\n var _ = this;\n if (throwIfCannotReset)\n _.throwIfDisposed();\n if (!_._closure) {\n if (throwIfCannotReset)\n throw new Error(\"Cannot reset. This Lazy has already de-referenced its closure.\");\n return false;\n }\n else {\n _._isValueCreated = false;\n _._value = null;\n return true;\n }\n };\n Object.defineProperty(Lazy.prototype, \"value\", {\n get: function () {\n return this.getValue();\n },\n enumerable: true,\n configurable: true\n });\n Lazy.prototype.getValue = function (clearClosureReference) {\n var _ = this;\n _.throwIfDisposed();\n try {\n if (!_._isValueCreated && _._closure) {\n var v = _._closure();\n _._value = v;\n _._isValueCreated = true;\n return v;\n }\n }\n finally {\n if (clearClosureReference)\n _._closure = null;\n }\n return _._value;\n };\n Lazy.prototype._onDispose = function () {\n this._closure = null;\n this._value = null;\n };\n Lazy.prototype.equals = function (other) {\n return this == other;\n };\n Lazy.prototype.valueEquals = function (other) {\n return this.equals(other) || this.value === other.value;\n };\n return Lazy;\n }(DisposableBase_1.DisposableBase));\n exports.Lazy = Lazy;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Lazy;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {DisposableBase} from \"./Disposable/DisposableBase\";\r\nimport {ILazy} from \"./ILazy\";\r\nimport {Func} from \"./FunctionTypes\";\r\n\r\nexport class Lazy extends DisposableBase implements ILazy\r\n{\r\n\r\n\tprivate _isValueCreated:boolean;\r\n\tprivate _value:T;\r\n\r\n\tconstructor(private _closure:Func)\r\n\t{\r\n\t\tsuper();\r\n\t\tthis._disposableObjectName = 'Lazy';\r\n\t}\r\n\r\n\tget isValueCreated():boolean\r\n\t{\r\n\t\treturn this._isValueCreated;\r\n\t}\r\n\r\n\t// Adding a 'resettable' mechanism allows for simply resetting a lazy instead of re-instantiating a new one.\r\n\tget canReset():boolean\r\n\t{\r\n\t\treturn !this.wasDisposed && !!(this._closure);\r\n\t}\r\n\r\n\t// Returns true if successfully reset.\r\n\treset(throwIfCannotReset?:boolean):boolean {\r\n\t\tvar _ = this;\r\n\r\n\t\tif(throwIfCannotReset)\r\n\t\t\t_.throwIfDisposed();\r\n\r\n\t\tif(!_._closure) {\r\n\t\t\tif(throwIfCannotReset)\r\n\t\t\t\tthrow new Error(\"Cannot reset. This Lazy has already de-referenced its closure.\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\telse {\r\n\t\t\t_._isValueCreated = false;\r\n\t\t\t_._value = null;\r\n\t\t\treturn true;\r\n\t\t}\r\n\t}\r\n\r\n\tget value():T\r\n\t{\r\n\t\treturn this.getValue();\r\n\t}\r\n\r\n\tgetValue(clearClosureReference?:boolean):T {\r\n\r\n\t\tvar _ = this;\r\n\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\ttry {\r\n\t\t\tif(!_._isValueCreated && _._closure) {\r\n\t\t\t\tvar v = _._closure();\r\n\t\t\t\t_._value = v;\r\n\t\t\t\t_._isValueCreated = true;\r\n\t\t\t\treturn v;\r\n\t\t\t}\r\n\t\t}\r\n\t\tfinally {\r\n\t\t\tif(clearClosureReference)\r\n\t\t\t\t_._closure = null;\r\n\t\t}\r\n\r\n\t\treturn _._value;\r\n\r\n\t}\r\n\r\n\r\n\tprotected _onDispose():void {\r\n\t\tthis._closure = null;\r\n\t\tthis._value = null;\r\n\t}\r\n\r\n\tequals(other:Lazy):boolean\r\n\t{\r\n\t\treturn this==other;\r\n\t}\r\n\r\n\tvalueEquals(other:Lazy):boolean\r\n\t{\r\n\t\treturn this.equals(other) || this.value===other.value;\r\n\t}\r\n}\r\n\r\nexport default Lazy;"]} \ No newline at end of file diff --git a/dist/umd.min/System/Net/Http/HttpMethod.d.ts b/dist/umd.min/System/Net/Http/HttpMethod.d.ts index d70dbbd8..b9f17ab0 100644 --- a/dist/umd.min/System/Net/Http/HttpMethod.d.ts +++ b/dist/umd.min/System/Net/Http/HttpMethod.d.ts @@ -1,7 +1,7 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based on: https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html */ -export declare const OPTIONS: HttpMethodValue, HEAD: HttpMethodValue, GET: HttpMethodValue, PUT: HttpMethodValue, POST: HttpMethodValue, DELETE: HttpMethodValue, TRACE: HttpMethodValue, CONNECT: HttpMethodValue; +import * as HttpMethod from "./HttpMethodValue"; +export declare const OPTIONS: HttpMethod.Options, HEAD: HttpMethod.Head, GET: HttpMethod.Get, PUT: HttpMethod.Put, POST: HttpMethod.Post, DELETE: HttpMethod.Delete, TRACE: HttpMethod.Trace, CONNECT: HttpMethod.Connect; diff --git a/dist/umd.min/System/Net/Http/HttpMethod.js.map b/dist/umd.min/System/Net/Http/HttpMethod.js.map index 474368b6..c7e7f1c9 100644 --- a/dist/umd.min/System/Net/Http/HttpMethod.js.map +++ b/dist/umd.min/System/Net/Http/HttpMethod.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Net/Http/HttpMethod.js","System/Net/Http/HttpMethod.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","OPTIONS","HEAD","GET","PUT","POST","DELETE","TRACE","CONNECT"],"mappings":";;;;;CAKA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,WAAYN,IAEpC,SAAUI,EAASF,GAClB,YCJHA,GAAAM,QAA0B,UAC1BN,EAAAO,KAA0B,OAC1BP,EAAAQ,IAA0B,MAC1BR,EAAAS,IAA0B,MAC1BT,EAAAU,KAA0B,OAC1BV,EAAAW,OAA0B,SAC1BX,EAAAY,MAA0B,QAC1BZ,EAAAa,QAA0B","file":"System/Net/Http/HttpMethod.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based on: https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n exports.OPTIONS = 'OPTIONS', exports.HEAD = 'HEAD', exports.GET = 'GET', exports.PUT = 'PUT', exports.POST = 'POST', exports.DELETE = 'DELETE', exports.TRACE = 'TRACE', exports.CONNECT = 'CONNECT';\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based on: https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html\r\n */\r\n\r\n///\r\n\r\nexport const\r\n\tOPTIONS:HttpMethodValue = 'OPTIONS',\r\n\tHEAD:HttpMethodValue = 'HEAD',\r\n\tGET:HttpMethodValue = 'GET',\r\n\tPUT:HttpMethodValue = 'PUT',\r\n\tPOST:HttpMethodValue = 'POST',\r\n\tDELETE:HttpMethodValue = 'DELETE',\r\n\tTRACE:HttpMethodValue = 'TRACE',\r\n\tCONNECT:HttpMethodValue = 'CONNECT';\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Net/Http/HttpMethod.js","System/Net/Http/HttpMethod.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","OPTIONS","HEAD","GET","PUT","POST","DELETE","TRACE","CONNECT"],"mappings":";;;;;CAKA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,WAAYN,IAEpC,SAAUI,EAASF,GAClB,YCHHA,GAAAM,QAA6B,UAC7BN,EAAAO,KAA6B,OAC7BP,EAAAQ,IAA6B,MAC7BR,EAAAS,IAA6B,MAC7BT,EAAAU,KAA6B,OAC7BV,EAAAW,OAA6B,SAC7BX,EAAAY,MAA6B,QAC7BZ,EAAAa,QAA6B","file":"System/Net/Http/HttpMethod.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based on: https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n exports.OPTIONS = 'OPTIONS', exports.HEAD = 'HEAD', exports.GET = 'GET', exports.PUT = 'PUT', exports.POST = 'POST', exports.DELETE = 'DELETE', exports.TRACE = 'TRACE', exports.CONNECT = 'CONNECT';\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based on: https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html\r\n */\r\n\r\n\r\nimport * as HttpMethod from \"./HttpMethodValue\";\r\n\r\nexport const\r\n\tOPTIONS:HttpMethod.Options = 'OPTIONS',\r\n\tHEAD:HttpMethod.Head = 'HEAD',\r\n\tGET:HttpMethod.Get = 'GET',\r\n\tPUT:HttpMethod.Put = 'PUT',\r\n\tPOST:HttpMethod.Post = 'POST',\r\n\tDELETE:HttpMethod.Delete = 'DELETE',\r\n\tTRACE:HttpMethod.Trace = 'TRACE',\r\n\tCONNECT:HttpMethod.Connect = 'CONNECT';\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Net/Http/HttpRequestFactory.d.ts b/dist/umd.min/System/Net/Http/HttpRequestFactory.d.ts index 212c88af..87b2581d 100644 --- a/dist/umd.min/System/Net/Http/HttpRequestFactory.d.ts +++ b/dist/umd.min/System/Net/Http/HttpRequestFactory.d.ts @@ -1,19 +1,21 @@ -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import Uri from "../../Uri/Uri"; -import DisposableBase from "../../Disposable/DisposableBase"; +import * as QueryParam from "../../Uri/QueryParam"; +import { DisposableBase } from "../../Disposable/DisposableBase"; +import { HttpMethodValue } from "./HttpMethodValue"; +import { Uri } from "../../Uri/Uri"; +import { IUri } from "../../Uri/IUri"; +import { IHttpRequestAdapter } from "./IHttpRequestAdapter"; +import { IPromise } from "../../Promises/IPromise"; export default class HttpRequestFactory extends DisposableBase { private _http; protected _uriDefaults: Uri; constructor(_http: IHttpRequestAdapter, uriDefaults?: string | IUri); protected _onDispose(): void; uri(uri: string | IUri): HttpRequestFactory; - params(params: QueryParamsConvertible): HttpRequestFactory; + params(params: QueryParam.Convertible): HttpRequestFactory; request(method: HttpMethodValue, data?: any): IPromise; get(): IPromise; put(): IPromise; diff --git a/dist/umd.min/System/Net/Http/HttpRequestFactory.js b/dist/umd.min/System/Net/Http/HttpRequestFactory.js index 8e10080a..28e245fe 100644 --- a/dist/umd.min/System/Net/Http/HttpRequestFactory.js +++ b/dist/umd.min/System/Net/Http/HttpRequestFactory.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)};!function(t){if("object"==typeof module&&"object"==typeof module.exports){var e=t(require,exports);void 0!==e&&(module.exports=e)}else"function"==typeof define&&define.amd&&define(["require","exports","../../Exceptions/ArgumentNullException","../../Uri/Uri","../../Disposable/DisposableBase","./HttpMethod"],t)}(function(t,e){"use strict";var r=t("../../Exceptions/ArgumentNullException"),o=t("../../Uri/Uri"),u=t("../../Disposable/DisposableBase"),i=t("./HttpMethod"),s=function(t){function e(e,u){if(t.call(this),this._http=e,this._disposableObjectName="HttpRequestFactory",!e)throw new r["default"]("_http");this._uriDefaults=o["default"].from(u)}return __extends(e,t),e.prototype._onDispose=function(){this._http=null,this._uriDefaults=null},e.prototype.uri=function(t){var r=this;r.throwIfDisposed();var u=o["default"].from(t,r._uriDefaults);return r._uriDefaults.equals(u)?r:new e(r._http,u)},e.prototype.params=function(t){var e=this;return e.throwIfDisposed(),e.uri(e._uriDefaults.updateQuery(t))},e.prototype.request=function(t,e){var r=this;return r.throwIfDisposed(),r._http.request({method:t,uri:r._uriDefaults,data:e})},e.prototype.get=function(){return this.request(i.GET)},e.prototype.put=function(){return this.request(i.PUT)},e.prototype.post=function(t){return this.request(i.POST,t)},e.prototype["delete"]=function(){return this.request(i.DELETE)},e}(u["default"]);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=s}); +var __extends=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)};!function(t){if("object"==typeof module&&"object"==typeof module.exports){var e=t(require,exports);void 0!==e&&(module.exports=e)}else"function"==typeof define&&define.amd&&define(["require","exports","../../Exceptions/ArgumentNullException","../../Disposable/DisposableBase","./HttpMethod","../../Uri/Uri"],t)}(function(t,e){"use strict";var r=t("../../Exceptions/ArgumentNullException"),o=t("../../Disposable/DisposableBase"),i=t("./HttpMethod"),s=t("../../Uri/Uri"),u=function(t){function e(e,o){if(t.call(this),this._http=e,this._disposableObjectName="HttpRequestFactory",!e)throw new r.ArgumentNullException("_http");this._uriDefaults=s.Uri.from(o)}return __extends(e,t),e.prototype._onDispose=function(){this._http=null,this._uriDefaults=null},e.prototype.uri=function(t){var r=this;r.throwIfDisposed();var o=s.Uri.from(t,r._uriDefaults);return r._uriDefaults.equals(o)?r:new e(r._http,o)},e.prototype.params=function(t){var e=this;return e.throwIfDisposed(),e.uri(e._uriDefaults.updateQuery(t))},e.prototype.request=function(t,e){var r=this;return r.throwIfDisposed(),r._http.request({method:t,uri:r._uriDefaults,data:e})},e.prototype.get=function(){return this.request(i.GET)},e.prototype.put=function(){return this.request(i.PUT)},e.prototype.post=function(t){return this.request(i.POST,t)},e.prototype["delete"]=function(){return this.request(i.DELETE)},e}(o.DisposableBase);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=u}); //# sourceMappingURL=HttpRequestFactory.js.map diff --git a/dist/umd.min/System/Net/Http/HttpRequestFactory.js.map b/dist/umd.min/System/Net/Http/HttpRequestFactory.js.map index 5f3ad32b..f4585585 100644 --- a/dist/umd.min/System/Net/Http/HttpRequestFactory.js.map +++ b/dist/umd.min/System/Net/Http/HttpRequestFactory.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Net/Http/HttpRequestFactory.js","System/Net/Http/HttpRequestFactory.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","ArgumentNullException_1","Uri_1","DisposableBase_1","HttpMethod_1","HttpRequestFactory","_super","_http","uriDefaults","call","_disposableObjectName","_uriDefaults","from","_onDispose","uri","_","throwIfDisposed","u","equals","params","updateQuery","request","method","data","get","GET","put","PUT","post","POST","DELETE","defineProperty","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,yCAA0C,gBAAiB,kCAAmC,gBAAiBN,IAElJ,SAAUI,EAASF,GCRtB,YAEA,IAAAM,GAAAJ,EAAkC,0CAClCK,EAAAL,EAAgB,iBAChBM,EAAAN,EAA2B,mCAC3BO,EAAAP,EAAqC,gBAKrCQ,EAAA,SAAAC,GAKC,QAAAD,GACSE,EACRC,GAMA,GAJAF,EAAAG,KAAA1B,MAHQA,KAAAwB,MAAAA,EAKRxB,KAAK2B,sBAAwB,sBAEzBH,EACH,KAAM,IAAIN,GAAAA,WAAsB,QAEjClB,MAAK4B,aAAeT,EAAAA,WAAIU,KAAKJ,GA4D/B,MA5EgD1B,WAAAuB,EAAAC,GAmBrCD,EAAAf,UAAAuB,WAAV,WAGC9B,KAAKwB,MAAQ,KACbxB,KAAK4B,aAAe,MAGrBN,EAAAf,UAAAwB,IAAA,SAAIA,GAGH,GAAIC,GAAIhC,IACRgC,GAAEC,iBACF,IAAIC,GAAIf,EAAAA,WAAIU,KAAKE,EAAKC,EAAEJ,aACxB,OAAOI,GAAEJ,aAAaO,OAAOD,GAC1BF,EACA,GAAIV,GAAmBU,EAAER,MAAOU,IAGpCZ,EAAAf,UAAA6B,OAAA,SAAOA,GAEN,GAAIJ,GAAIhC,IAER,OADAgC,GAAEC,kBACKD,EAAED,IAAIC,EAAEJ,aAAaS,YAAYD,KAGzCd,EAAAf,UAAA+B,QAAA,SAAiBC,EAAwBC,GAExC,GAAIR,GAAIhC,IAER,OADAgC,GAAEC,kBACKD,EAAER,MAAMc,SACdC,OAAQA,EACRR,IAAKC,EAAEJ,aACPY,KAAMA,KAKRlB,EAAAf,UAAAkC,IAAA,WAEC,MAAOzC,MAAKsC,QAAiBjB,EAAAqB,MAG9BpB,EAAAf,UAAAoC,IAAA,WAEC,MAAO3C,MAAKsC,QAAiBjB,EAAAuB,MAG9BtB,EAAAf,UAAAsC,KAAA,SAAcL,GAEb,MAAOxC,MAAKsC,QAAiBjB,EAAAyB,KAAMN,IAGpClB,EAAAf,UAAA,UAAA,WAEC,MAAOP,MAAKsC,QAAiBjB,EAAA0B,SAG/BzB,GA5EgDF,EAAAA,WAAhDZ,QAAAwC,eAAApC,EAAA,cAAAqC,OAAA,IDuDIrC,EAAAA,WAAkBU","file":"System/Net/Http/HttpRequestFactory.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../../Exceptions/ArgumentNullException\", \"../../Uri/Uri\", \"../../Disposable/DisposableBase\", \"./HttpMethod\"], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var ArgumentNullException_1 = require(\"../../Exceptions/ArgumentNullException\");\n var Uri_1 = require(\"../../Uri/Uri\");\n var DisposableBase_1 = require(\"../../Disposable/DisposableBase\");\n var HttpMethod_1 = require(\"./HttpMethod\");\n var HttpRequestFactory = (function (_super) {\n __extends(HttpRequestFactory, _super);\n function HttpRequestFactory(_http, uriDefaults) {\n _super.call(this);\n this._http = _http;\n this._disposableObjectName = 'HttpRequestFactory';\n if (!_http)\n throw new ArgumentNullException_1.default('_http');\n this._uriDefaults = Uri_1.default.from(uriDefaults);\n }\n HttpRequestFactory.prototype._onDispose = function () {\n this._http = null;\n this._uriDefaults = null;\n };\n HttpRequestFactory.prototype.uri = function (uri) {\n var _ = this;\n _.throwIfDisposed();\n var u = Uri_1.default.from(uri, _._uriDefaults);\n return _._uriDefaults.equals(u)\n ? _\n : new HttpRequestFactory(_._http, u);\n };\n HttpRequestFactory.prototype.params = function (params) {\n var _ = this;\n _.throwIfDisposed();\n return _.uri(_._uriDefaults.updateQuery(params));\n };\n HttpRequestFactory.prototype.request = function (method, data) {\n var _ = this;\n _.throwIfDisposed();\n return _._http.request({\n method: method,\n uri: _._uriDefaults,\n data: data\n });\n };\n HttpRequestFactory.prototype.get = function () {\n return this.request(HttpMethod_1.GET);\n };\n HttpRequestFactory.prototype.put = function () {\n return this.request(HttpMethod_1.PUT);\n };\n HttpRequestFactory.prototype.post = function (data) {\n return this.request(HttpMethod_1.POST, data);\n };\n HttpRequestFactory.prototype['delete'] = function () {\n return this.request(HttpMethod_1.DELETE);\n };\n return HttpRequestFactory;\n }(DisposableBase_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = HttpRequestFactory;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport ArgumentNullException from \"../../Exceptions/ArgumentNullException\";\r\nimport Uri from \"../../Uri/Uri\";\r\nimport DisposableBase from \"../../Disposable/DisposableBase\";\r\nimport {GET, PUT, POST, DELETE} from \"./HttpMethod\";\r\n\r\n/**\r\n * This class exposes a factory for making requests to prepared uri and params.\r\n */\r\nexport default class HttpRequestFactory extends DisposableBase\r\n{\r\n\r\n\tprotected _uriDefaults:Uri;\r\n\r\n\tconstructor(\r\n\t\tprivate _http:IHttpRequestAdapter,\r\n\t\turiDefaults?:string|IUri)\r\n\t{\r\n\t\tsuper();\r\n\r\n\t\tthis._disposableObjectName = 'HttpRequestFactory';\r\n\r\n\t\tif(!_http)\r\n\t\t\tthrow new ArgumentNullException('_http');\r\n\r\n\t\tthis._uriDefaults = Uri.from(uriDefaults);\r\n\t}\r\n\r\n\tprotected _onDispose()\r\n\t{\r\n\t\t// super._onDispose(); // Not required for first level inheritance.\r\n\t\tthis._http = null;\r\n\t\tthis._uriDefaults = null;\r\n\t}\r\n\r\n\turi(uri:string|IUri):HttpRequestFactory\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\tvar u = Uri.from(uri, _._uriDefaults);\r\n\t\treturn _._uriDefaults.equals(u)\r\n\t\t\t? _\r\n\t\t\t: new HttpRequestFactory(_._http, u);\r\n\t}\r\n\r\n\tparams(params:QueryParamsConvertible):HttpRequestFactory\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\treturn _.uri(_._uriDefaults.updateQuery(params));\r\n\t}\r\n\r\n\trequest(method:HttpMethodValue, data?:any):IPromise\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\treturn _._http.request({\r\n\t\t\tmethod: method,\r\n\t\t\turi: _._uriDefaults,\r\n\t\t\tdata: data\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tget():IPromise\r\n\t{\r\n\t\treturn this.request(GET);\r\n\t}\r\n\r\n\tput():IPromise\r\n\t{\r\n\t\treturn this.request(PUT);\r\n\t}\r\n\r\n\tpost(data:any):IPromise\r\n\t{\r\n\t\treturn this.request(POST, data);\r\n\t}\r\n\r\n\t'delete'():IPromise\r\n\t{\r\n\t\treturn this.request(DELETE);\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Net/Http/HttpRequestFactory.js","System/Net/Http/HttpRequestFactory.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","ArgumentNullException_1","DisposableBase_1","HttpMethod_1","Uri_1","HttpRequestFactory","_super","_http","uriDefaults","call","_disposableObjectName","ArgumentNullException","_uriDefaults","Uri","from","_onDispose","uri","_","throwIfDisposed","u","equals","params","updateQuery","request","method","data","get","GET","put","PUT","post","POST","DELETE","DisposableBase","defineProperty","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,yCAA0C,kCAAmC,eAAgB,iBAAkBN,IAElJ,SAAUI,EAASF,GAClB,YCVJ,IAAAM,GAAAJ,EAAoC,0CACpCK,EAAAL,EAA6B,mCAE7BM,EAAAN,EAAqC,gBACrCO,EAAAP,EAAkB,iBAQlBQ,EAAA,SAAAC,GAKC,QAAAD,GACSE,EACRC,GAMA,GAJAF,EAAAG,KAAA1B,MAHQA,KAAAwB,MAAAA,EAKRxB,KAAK2B,sBAAwB,sBAEzBH,EACH,KAAM,IAAIN,GAAAU,sBAAsB,QAEjC5B,MAAK6B,aAAeR,EAAAS,IAAIC,KAAKN,GA4D/B,MA5EgD1B,WAAAuB,EAAAC,GAmBrCD,EAAAf,UAAAyB,WAAV,WAGChC,KAAKwB,MAAQ,KACbxB,KAAK6B,aAAe,MAGrBP,EAAAf,UAAA0B,IAAA,SAAIA,GAGH,GAAIC,GAAIlC,IACRkC,GAAEC,iBACF,IAAIC,GAAIf,EAAAS,IAAIC,KAAKE,EAAKC,EAAEL,aACxB,OAAOK,GAAEL,aAAaQ,OAAOD,GAC1BF,EACA,GAAIZ,GAAmBY,EAAEV,MAAOY,IAGpCd,EAAAf,UAAA+B,OAAA,SAAOA,GAEN,GAAIJ,GAAIlC,IAER,OADAkC,GAAEC,kBACKD,EAAED,IAAIC,EAAEL,aAAaU,YAAYD,KAGzChB,EAAAf,UAAAiC,QAAA,SAAiBC,EAAwBC,GAExC,GAAIR,GAAIlC,IAER,OADAkC,GAAEC,kBACKD,EAAEV,MAAMgB,SACdC,OAAQA,EACRR,IAAKC,EAAEL,aACPa,KAAMA,KAKRpB,EAAAf,UAAAoC,IAAA,WAEC,MAAO3C,MAAKwC,QAAiBpB,EAAAwB,MAG9BtB,EAAAf,UAAAsC,IAAA,WAEC,MAAO7C,MAAKwC,QAAiBpB,EAAA0B,MAG9BxB,EAAAf,UAAAwC,KAAA,SAAcL,GAEb,MAAO1C,MAAKwC,QAAiBpB,EAAA4B,KAAMN,IAGpCpB,EAAAf,UAAA,UAAA,WAEC,MAAOP,MAAKwC,QAAiBpB,EAAA6B,SAG/B3B,GA5EgDH,EAAA+B,eAAhD1C,QAAA2C,eAAAvC,EAAA,cAAAwC,OAAA,IDsDIxC,EAAAA,WAAkBU","file":"System/Net/Http/HttpRequestFactory.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../../Exceptions/ArgumentNullException\", \"../../Disposable/DisposableBase\", \"./HttpMethod\", \"../../Uri/Uri\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var ArgumentNullException_1 = require(\"../../Exceptions/ArgumentNullException\");\n var DisposableBase_1 = require(\"../../Disposable/DisposableBase\");\n var HttpMethod_1 = require(\"./HttpMethod\");\n var Uri_1 = require(\"../../Uri/Uri\");\n var HttpRequestFactory = (function (_super) {\n __extends(HttpRequestFactory, _super);\n function HttpRequestFactory(_http, uriDefaults) {\n _super.call(this);\n this._http = _http;\n this._disposableObjectName = 'HttpRequestFactory';\n if (!_http)\n throw new ArgumentNullException_1.ArgumentNullException('_http');\n this._uriDefaults = Uri_1.Uri.from(uriDefaults);\n }\n HttpRequestFactory.prototype._onDispose = function () {\n this._http = null;\n this._uriDefaults = null;\n };\n HttpRequestFactory.prototype.uri = function (uri) {\n var _ = this;\n _.throwIfDisposed();\n var u = Uri_1.Uri.from(uri, _._uriDefaults);\n return _._uriDefaults.equals(u)\n ? _\n : new HttpRequestFactory(_._http, u);\n };\n HttpRequestFactory.prototype.params = function (params) {\n var _ = this;\n _.throwIfDisposed();\n return _.uri(_._uriDefaults.updateQuery(params));\n };\n HttpRequestFactory.prototype.request = function (method, data) {\n var _ = this;\n _.throwIfDisposed();\n return _._http.request({\n method: method,\n uri: _._uriDefaults,\n data: data\n });\n };\n HttpRequestFactory.prototype.get = function () {\n return this.request(HttpMethod_1.GET);\n };\n HttpRequestFactory.prototype.put = function () {\n return this.request(HttpMethod_1.PUT);\n };\n HttpRequestFactory.prototype.post = function (data) {\n return this.request(HttpMethod_1.POST, data);\n };\n HttpRequestFactory.prototype['delete'] = function () {\n return this.request(HttpMethod_1.DELETE);\n };\n return HttpRequestFactory;\n }(DisposableBase_1.DisposableBase));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = HttpRequestFactory;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport * as QueryParam from \"../../Uri/QueryParam\";\r\nimport {ArgumentNullException} from \"../../Exceptions/ArgumentNullException\";\r\nimport {DisposableBase} from \"../../Disposable/DisposableBase\";\r\nimport {HttpMethodValue} from \"./HttpMethodValue\";\r\nimport {GET, PUT, POST, DELETE} from \"./HttpMethod\";\r\nimport {Uri} from \"../../Uri/Uri\";\r\nimport {IUri} from \"../../Uri/IUri\";\r\nimport {IHttpRequestAdapter} from \"./IHttpRequestAdapter\";\r\nimport {IPromise} from \"../../Promises/IPromise\";\r\n\r\n/**\r\n * This class exposes a factory for making requests to prepared uri and params.\r\n */\r\nexport default class HttpRequestFactory extends DisposableBase\r\n{\r\n\r\n\tprotected _uriDefaults:Uri;\r\n\r\n\tconstructor(\r\n\t\tprivate _http:IHttpRequestAdapter,\r\n\t\turiDefaults?:string|IUri)\r\n\t{\r\n\t\tsuper();\r\n\r\n\t\tthis._disposableObjectName = 'HttpRequestFactory';\r\n\r\n\t\tif(!_http)\r\n\t\t\tthrow new ArgumentNullException('_http');\r\n\r\n\t\tthis._uriDefaults = Uri.from(uriDefaults);\r\n\t}\r\n\r\n\tprotected _onDispose()\r\n\t{\r\n\t\t// super._onDispose(); // Not required for first level inheritance.\r\n\t\tthis._http = null;\r\n\t\tthis._uriDefaults = null;\r\n\t}\r\n\r\n\turi(uri:string|IUri):HttpRequestFactory\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\tvar u = Uri.from(uri, _._uriDefaults);\r\n\t\treturn _._uriDefaults.equals(u)\r\n\t\t\t? _\r\n\t\t\t: new HttpRequestFactory(_._http, u);\r\n\t}\r\n\r\n\tparams(params:QueryParam.Convertible):HttpRequestFactory\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\treturn _.uri(_._uriDefaults.updateQuery(params));\r\n\t}\r\n\r\n\trequest(method:HttpMethodValue, data?:any):IPromise\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\t\treturn _._http.request({\r\n\t\t\tmethod: method,\r\n\t\t\turi: _._uriDefaults,\r\n\t\t\tdata: data\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tget():IPromise\r\n\t{\r\n\t\treturn this.request(GET);\r\n\t}\r\n\r\n\tput():IPromise\r\n\t{\r\n\t\treturn this.request(PUT);\r\n\t}\r\n\r\n\tpost(data:any):IPromise\r\n\t{\r\n\t\treturn this.request(POST, data);\r\n\t}\r\n\r\n\t'delete'():IPromise\r\n\t{\r\n\t\treturn this.request(DELETE);\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Observable/ObservableBase.d.ts b/dist/umd.min/System/Observable/ObservableBase.d.ts index 050d9f79..e45e3351 100644 --- a/dist/umd.min/System/Observable/ObservableBase.d.ts +++ b/dist/umd.min/System/Observable/ObservableBase.d.ts @@ -1,13 +1,13 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Based upon .NET source. * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ -import SubscribableBase from "./SubscribableBase"; -declare abstract class ObservableBase extends SubscribableBase> implements IObservable { +import { SubscribableBase } from "./SubscribableBase"; +import { IObservable } from "./IObservable"; +import { IObserver } from "./IObserver"; +export declare abstract class ObservableBase extends SubscribableBase> implements IObservable { protected _onNext(value: T): void; protected _onError(error: Error): void; protected _onCompleted(): void; diff --git a/dist/umd.min/System/Observable/ObservableBase.js b/dist/umd.min/System/Observable/ObservableBase.js index 00d045e6..907a029f 100644 --- a/dist/umd.min/System/Observable/ObservableBase.js +++ b/dist/umd.min/System/Observable/ObservableBase.js @@ -4,5 +4,5 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ -var __extends=this&&this.__extends||function(e,o){function t(){this.constructor=e}for(var r in o)o.hasOwnProperty(r)&&(e[r]=o[r]);e.prototype=null===o?Object.create(o):(t.prototype=o.prototype,new t)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var o=e(require,exports);void 0!==o&&(module.exports=o)}else"function"==typeof define&&define.amd&&define(["require","exports","./SubscribableBase"],e)}(function(e,o){"use strict";function t(e,o){for(var t=null,r=0,n=e;r\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport SubscribableBase from \"./SubscribableBase\";\r\n\r\n// Can be used as a base class, mixin, or simply reference on how to implement the pattern.\r\n\r\nabstract class ObservableBase\r\nextends SubscribableBase>\r\nimplements IObservable\r\n{\r\n\r\n\tprotected _onNext(value:T):void\r\n\t{\r\n\t\tprocessAction(\r\n\t\t\tthis._getSubscribers(),\r\n\t\t\ts => { s.onNext && s.onNext(value); }\r\n\t\t);\r\n\t}\r\n\r\n\tprotected _onError(error:Error):void\r\n\t{\r\n\t\tprocessAction(\r\n\t\t\tthis._getSubscribers(),\r\n\t\t\ts => { s.onError && s.onError(error); }\r\n\t\t);\r\n\t}\r\n\r\n\tprotected _onCompleted():void\r\n\t{\r\n\t\tprocessAction(\r\n\t\t\tthis._unsubscribeAll(true),\r\n\t\t\ts => { s.onCompleted && s.onCompleted(); }\r\n\t\t);\r\n\t}\r\n}\r\n\r\nconst OBSERVER_ERROR_MESSAGE:string = 'One or more observers had errors when attempting to pass information.';\r\n\r\nfunction processAction(\r\n\tobservers:IObserver[],\r\n\thandler:(s:IObserver)=>void)\r\n{\r\n\tvar observersErrors:{observer:IObserver,ex:any}[] = null;\r\n\r\n\tfor(let s of observers)\r\n\t{\r\n\t\ttry\r\n\t\t{\r\n\t\t\thandler(s);\r\n\t\t}\r\n\t\tcatch(ex)\r\n\t\t{\r\n\t\t\tobserversErrors = observersErrors || [];\r\n\t\t\t// Don't let one error prevent others from recieving information.\r\n\t\t\tobserversErrors.push({observer: s, ex: ex});\r\n\t\t}\r\n\t}\r\n\r\n\tobservers.length = 0;\r\n\r\n\tif(observersErrors && observersErrors.length)\r\n\t{\r\n\t\tif(console && console.error)\r\n\t\t\tconsole.error(OBSERVER_ERROR_MESSAGE, observersErrors);\r\n\t\telse throw {\r\n\t\t\tmessage: OBSERVER_ERROR_MESSAGE,\r\n\t\t\terrors: observersErrors\r\n\t\t};\r\n\t}\r\n\r\n}\r\n\r\nexport default ObservableBase;"]} \ No newline at end of file +{"version":3,"sources":["System/Observable/ObservableBase.js","System/Observable/ObservableBase.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","processAction","observers","handler","observersErrors","_i","observers_1","length","s","ex","push","observer","console","error","message","OBSERVER_ERROR_MESSAGE","errors","SubscribableBase_1","ObservableBase","_super","apply","arguments","_onNext","value","_getSubscribers","onNext","_onError","onError","_onCompleted","_unsubscribeAll","onCompleted","SubscribableBase","defineProperty"],"mappings":";;;;;;AAMA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,sBAAuBN,IAE1D,SAAUI,EAASF,GAClB,YC0BJ,SAAAM,GACCC,EACAC,GAIA,IAAa,GAFTC,GAAmD,KAE1CC,EAAA,EAAAC,EAAAJ,EAAAG,EAAAC,EAAAC,OAAAF,IAAU,CAAnB,GAAIG,GAACF,EAAAD,EAER,KAECF,EAAQK,GAET,MAAMC,GAELL,EAAkBA,MAElBA,EAAgBM,MAAMC,SAAUH,EAAGC,GAAIA,KAMzC,GAFAP,EAAUK,OAAS,EAEhBH,GAAmBA,EAAgBG,OACtC,CACC,IAAGK,UAAWA,QAAQC,MAEjB,MACJC,QAASC,EACTC,OAAQZ,EAHRQ,SAAQC,MAAME,EAAwBX,IA9DzC,GAAAa,GAAApB,EAA+B,sBAM/BqB,EAAA,SAAAC,GAAA,QAAAD,KACQC,EAAAC,MAAArC,KAAAsC,WA0BR,MA1BQvC,WAAAoC,EAAAC,GAGGD,EAAA5B,UAAAgC,QAAV,SAAkBC,GAEjBtB,EACClB,KAAKyC,kBACL,SAAAhB,GAAOA,EAAEiB,QAAUjB,EAAEiB,OAAOF,MAIpBL,EAAA5B,UAAAoC,SAAV,SAAmBb,GAElBZ,EACClB,KAAKyC,kBACL,SAAAhB,GAAOA,EAAEmB,SAAWnB,EAAEmB,QAAQd,MAItBK,EAAA5B,UAAAsC,aAAV,WAEC3B,EACClB,KAAK8C,iBAAgB,GACrB,SAAArB,GAAOA,EAAEsB,aAAetB,EAAEsB,iBAG7BZ,GA1BQD,EAAAc,iBADcpC,GAAAuB,eAAcA,CA6BpC,IAAMH,GAAgC,uEAoCtCxB,QAAAyC,eAAArC,EAAA,cAAA4B,OAAA,IDhBI5B,EAAAA,WCgBWuB","file":"System/Observable/ObservableBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based upon .NET source.\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"./SubscribableBase\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var SubscribableBase_1 = require(\"./SubscribableBase\");\n var ObservableBase = (function (_super) {\n __extends(ObservableBase, _super);\n function ObservableBase() {\n _super.apply(this, arguments);\n }\n ObservableBase.prototype._onNext = function (value) {\n processAction(this._getSubscribers(), function (s) { s.onNext && s.onNext(value); });\n };\n ObservableBase.prototype._onError = function (error) {\n processAction(this._getSubscribers(), function (s) { s.onError && s.onError(error); });\n };\n ObservableBase.prototype._onCompleted = function () {\n processAction(this._unsubscribeAll(true), function (s) { s.onCompleted && s.onCompleted(); });\n };\n return ObservableBase;\n }(SubscribableBase_1.SubscribableBase));\n exports.ObservableBase = ObservableBase;\n var OBSERVER_ERROR_MESSAGE = 'One or more observers had errors when attempting to pass information.';\n function processAction(observers, handler) {\n var observersErrors = null;\n for (var _i = 0, observers_1 = observers; _i < observers_1.length; _i++) {\n var s = observers_1[_i];\n try {\n handler(s);\n }\n catch (ex) {\n observersErrors = observersErrors || [];\n observersErrors.push({ observer: s, ex: ex });\n }\n }\n observers.length = 0;\n if (observersErrors && observersErrors.length) {\n if (console && console.error)\n console.error(OBSERVER_ERROR_MESSAGE, observersErrors);\n else\n throw {\n message: OBSERVER_ERROR_MESSAGE,\n errors: observersErrors\n };\n }\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ObservableBase;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based upon .NET source.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\r\n */\r\n\r\n\r\nimport {SubscribableBase} from \"./SubscribableBase\";\r\nimport {IObservable} from \"./IObservable\";\r\nimport {IObserver} from \"./IObserver\";\r\n\r\n// Can be used as a base class, mixin, or simply reference on how to implement the pattern.\r\n\r\nexport abstract class ObservableBase\r\nextends SubscribableBase> implements IObservable\r\n{\r\n\r\n\tprotected _onNext(value:T):void\r\n\t{\r\n\t\tprocessAction(\r\n\t\t\tthis._getSubscribers(),\r\n\t\t\ts => { s.onNext && s.onNext(value); }\r\n\t\t);\r\n\t}\r\n\r\n\tprotected _onError(error:Error):void\r\n\t{\r\n\t\tprocessAction(\r\n\t\t\tthis._getSubscribers(),\r\n\t\t\ts => { s.onError && s.onError(error); }\r\n\t\t);\r\n\t}\r\n\r\n\tprotected _onCompleted():void\r\n\t{\r\n\t\tprocessAction(\r\n\t\t\tthis._unsubscribeAll(true),\r\n\t\t\ts => { s.onCompleted && s.onCompleted(); }\r\n\t\t);\r\n\t}\r\n}\r\n\r\nconst OBSERVER_ERROR_MESSAGE:string = 'One or more observers had errors when attempting to pass information.';\r\n\r\nfunction processAction(\r\n\tobservers:IObserver[],\r\n\thandler:(s:IObserver)=>void)\r\n{\r\n\tvar observersErrors:{observer:IObserver,ex:any}[] = null;\r\n\r\n\tfor(let s of observers)\r\n\t{\r\n\t\ttry\r\n\t\t{\r\n\t\t\thandler(s);\r\n\t\t}\r\n\t\tcatch(ex)\r\n\t\t{\r\n\t\t\tobserversErrors = observersErrors || [];\r\n\t\t\t// Don't let one error prevent others from recieving information.\r\n\t\t\tobserversErrors.push({observer: s, ex: ex});\r\n\t\t}\r\n\t}\r\n\r\n\tobservers.length = 0;\r\n\r\n\tif(observersErrors && observersErrors.length)\r\n\t{\r\n\t\tif(console && console.error)\r\n\t\t\tconsole.error(OBSERVER_ERROR_MESSAGE, observersErrors);\r\n\t\telse throw {\r\n\t\t\tmessage: OBSERVER_ERROR_MESSAGE,\r\n\t\t\terrors: observersErrors\r\n\t\t};\r\n\t}\r\n\r\n}\r\n\r\nexport default ObservableBase;"]} \ No newline at end of file diff --git a/dist/umd.min/System/Observable/ObservableNodeBase.d.ts b/dist/umd.min/System/Observable/ObservableNodeBase.d.ts index 420a0dbc..25d83469 100644 --- a/dist/umd.min/System/Observable/ObservableNodeBase.d.ts +++ b/dist/umd.min/System/Observable/ObservableNodeBase.d.ts @@ -1,5 +1,3 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Based upon .NET source. @@ -7,8 +5,10 @@ * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ import ObservableBase from "./ObservableBase"; -export default class ObservableNodeBase extends ObservableBase implements IObserver { +import { IObserver } from "./IObserver"; +export declare class ObservableNodeBase extends ObservableBase implements IObserver { onNext(value: T): void; onError(error: Error): void; onCompleted(): void; } +export default ObservableNodeBase; diff --git a/dist/umd.min/System/Observable/ObservableNodeBase.js b/dist/umd.min/System/Observable/ObservableNodeBase.js index 7bb156fc..3bdad725 100644 --- a/dist/umd.min/System/Observable/ObservableNodeBase.js +++ b/dist/umd.min/System/Observable/ObservableNodeBase.js @@ -4,5 +4,5 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ -var __extends=this&&this.__extends||function(e,t){function o(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","./ObservableBase"],e)}(function(e,t){"use strict";var o=e("./ObservableBase"),n=function(e){function t(){e.apply(this,arguments)}return __extends(t,e),t.prototype.onNext=function(e){this._onNext(e)},t.prototype.onError=function(e){this._onError(e)},t.prototype.onCompleted=function(){this._onCompleted()},t}(o["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=n}); +var __extends=this&&this.__extends||function(e,t){function o(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","./ObservableBase"],e)}(function(e,t){"use strict";var o=e("./ObservableBase"),n=function(e){function t(){e.apply(this,arguments)}return __extends(t,e),t.prototype.onNext=function(e){this._onNext(e)},t.prototype.onError=function(e){this._onError(e)},t.prototype.onCompleted=function(){this._onCompleted()},t}(o["default"]);t.ObservableNodeBase=n,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=n}); //# sourceMappingURL=ObservableNodeBase.js.map diff --git a/dist/umd.min/System/Observable/ObservableNodeBase.js.map b/dist/umd.min/System/Observable/ObservableNodeBase.js.map index 0fc298f8..d5eca1eb 100644 --- a/dist/umd.min/System/Observable/ObservableNodeBase.js.map +++ b/dist/umd.min/System/Observable/ObservableNodeBase.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Observable/ObservableNodeBase.js","System/Observable/ObservableNodeBase.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","ObservableBase_1","ObservableNodeBase","_super","apply","arguments","onNext","value","_onNext","onError","error","_onError","onCompleted","_onCompleted","defineProperty"],"mappings":";;;;;;AAMA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,oBAAqBN,IAExD,SAAUI,EAASF,GCTtB,YAEA,IAAAM,GAAAJ,EAA2B,oBAG3BK,EAAA,SAAAC,GAAA,QAAAD,KAEQC,EAAAC,MAAArB,KAAAsB,WAkBR,MAlBQvB,WAAAoB,EAAAC,GAIPD,EAAAZ,UAAAgB,OAAA,SAAOC,GAENxB,KAAKyB,QAAQD,IAGdL,EAAAZ,UAAAmB,QAAA,SAAQC,GAEP3B,KAAK4B,SAASD,IAGfR,EAAAZ,UAAAsB,YAAA,WAEC7B,KAAK8B,gBAEPX,GAlBQD,EAAAA,WAFRV,QAAAuB,eAAAnB,EAAA,cAAAY,OAAA,IDwBIZ,EAAAA,WAAkBO","file":"System/Observable/ObservableNodeBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based upon .NET source.\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"./ObservableBase\"], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var ObservableBase_1 = require(\"./ObservableBase\");\n var ObservableNodeBase = (function (_super) {\n __extends(ObservableNodeBase, _super);\n function ObservableNodeBase() {\n _super.apply(this, arguments);\n }\n ObservableNodeBase.prototype.onNext = function (value) {\n this._onNext(value);\n };\n ObservableNodeBase.prototype.onError = function (error) {\n this._onError(error);\n };\n ObservableNodeBase.prototype.onCompleted = function () {\n this._onCompleted();\n };\n return ObservableNodeBase;\n }(ObservableBase_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ObservableNodeBase;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based upon .NET source.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\r\n */\r\n\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport ObservableBase from \"./ObservableBase\";\r\n\r\n// Can be used as a base class, mixin, or simply reference on how to implement the pattern.\r\nexport default\r\nclass ObservableNodeBase\r\nextends ObservableBase\r\nimplements IObserver\r\n{\r\n\r\n\tonNext(value:T):void\r\n\t{\r\n\t\tthis._onNext(value);\r\n\t}\r\n\r\n\tonError(error:Error):void\r\n\t{\r\n\t\tthis._onError(error);\r\n\t}\r\n\r\n\tonCompleted():void\r\n\t{\r\n\t\tthis._onCompleted();\r\n\t}\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Observable/ObservableNodeBase.js","System/Observable/ObservableNodeBase.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","ObservableBase_1","ObservableNodeBase","_super","apply","arguments","onNext","value","_onNext","onError","error","_onError","onCompleted","_onCompleted","defineProperty"],"mappings":";;;;;;AAMA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,oBAAqBN,IAExD,SAAUI,EAASF,GAClB,YCXJ,IAAAM,GAAAJ,EAA2B,oBAG3BK,EAAA,SAAAC,GAAA,QAAAD,KACQC,EAAAC,MAAArB,KAAAsB,WAkBR,MAlBQvB,WAAAoB,EAAAC,GAIPD,EAAAZ,UAAAgB,OAAA,SAAOC,GAENxB,KAAKyB,QAAQD,IAGdL,EAAAZ,UAAAmB,QAAA,SAAQC,GAEP3B,KAAK4B,SAASD,IAGfR,EAAAZ,UAAAsB,YAAA,WAEC7B,KAAK8B,gBAEPX,GAlBQD,EAAAA,WADKN,GAAAO,mBAAkBA,EAqB/BX,OAAAuB,eAAAnB,EAAA,cAAAY,OAAA,IDOIZ,EAAAA,WCPWO","file":"System/Observable/ObservableNodeBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based upon .NET source.\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"./ObservableBase\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var ObservableBase_1 = require(\"./ObservableBase\");\n var ObservableNodeBase = (function (_super) {\n __extends(ObservableNodeBase, _super);\n function ObservableNodeBase() {\n _super.apply(this, arguments);\n }\n ObservableNodeBase.prototype.onNext = function (value) {\n this._onNext(value);\n };\n ObservableNodeBase.prototype.onError = function (error) {\n this._onError(error);\n };\n ObservableNodeBase.prototype.onCompleted = function () {\n this._onCompleted();\n };\n return ObservableNodeBase;\n }(ObservableBase_1.default));\n exports.ObservableNodeBase = ObservableNodeBase;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ObservableNodeBase;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based upon .NET source.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\r\n */\r\n\r\n// Can be used as a base class, mixin, or simply reference on how to implement the pattern.\r\nimport ObservableBase from \"./ObservableBase\";\r\nimport {IObserver} from \"./IObserver\";\r\n\r\nexport class ObservableNodeBase\r\nextends ObservableBase\r\nimplements IObserver\r\n{\r\n\r\n\tonNext(value:T):void\r\n\t{\r\n\t\tthis._onNext(value);\r\n\t}\r\n\r\n\tonError(error:Error):void\r\n\t{\r\n\t\tthis._onError(error);\r\n\t}\r\n\r\n\tonCompleted():void\r\n\t{\r\n\t\tthis._onCompleted();\r\n\t}\r\n}\r\n\r\nexport default ObservableNodeBase;"]} \ No newline at end of file diff --git a/dist/umd.min/System/Observable/SubscribableBase.d.ts b/dist/umd.min/System/Observable/SubscribableBase.d.ts index 5de54bfc..a292656a 100644 --- a/dist/umd.min/System/Observable/SubscribableBase.d.ts +++ b/dist/umd.min/System/Observable/SubscribableBase.d.ts @@ -1,12 +1,11 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Based upon .NET source. * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ -export default class SubscribableBase implements IDisposable { +import { IDisposable } from "../Disposable/IDisposable"; +export declare class SubscribableBase implements IDisposable { private __subscriptions; protected _getSubscribers(): TSubscriber[]; constructor(); @@ -17,3 +16,4 @@ export default class SubscribableBase implements IDisposable { unsubscribeAll(): void; dispose(): void; } +export default SubscribableBase; diff --git a/dist/umd.min/System/Observable/SubscribableBase.js b/dist/umd.min/System/Observable/SubscribableBase.js index 186e5998..84b671c0 100644 --- a/dist/umd.min/System/Observable/SubscribableBase.js +++ b/dist/umd.min/System/Observable/SubscribableBase.js @@ -4,5 +4,5 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ -!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../Collections/LinkedNodeList","../Disposable/dispose","./Subscription"],e)}(function(e,t){"use strict";var i=e("../Collections/LinkedNodeList"),n=e("../Disposable/dispose"),s=e("./Subscription"),o=function(){function e(){this.__subscriptions=new i["default"]}return e.prototype._getSubscribers=function(){return this.__subscriptions.map(function(e){return e.value&&e.value.subscriber})},e.prototype._findEntryNode=function(e){return this.__subscriptions.find(function(t){return t.value.subscriber===e})},e.prototype.subscribe=function(e){var t=this,i=t._findEntryNode(e);if(i)return i.value;var n=new s["default"](t,e);return t.__subscriptions.addNode({value:n}),n},e.prototype.unsubscribe=function(e){var t=this,i=t._findEntryNode(e);if(i){var n=i.value;t.__subscriptions.removeNode(i),n.dispose()}},e.prototype._unsubscribeAll=function(e){void 0===e&&(e=!1);var t=this,i=t.__subscriptions,s=i.map(function(e){return e.value}),o=e?s.map(function(e){return e.subscriber}):null;return i.clear(),n["default"].these(s),o},e.prototype.unsubscribeAll=function(){this._unsubscribeAll()},e.prototype.dispose=function(){this._unsubscribeAll()},e}();Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=o}); +!function(e){if("object"==typeof module&&"object"==typeof module.exports){var i=e(require,exports);void 0!==i&&(module.exports=i)}else"function"==typeof define&&define.amd&&define(["require","exports","../Collections/LinkedNodeList","../Disposable/dispose","./Subscription"],e)}(function(e,i){"use strict";var t=e("../Collections/LinkedNodeList"),s=e("../Disposable/dispose"),n=e("./Subscription"),o=function(){function e(){this.__subscriptions=new t.LinkedNodeList}return e.prototype._getSubscribers=function(){return this.__subscriptions.map(function(e){return e.value&&e.value.subscriber})},e.prototype._findEntryNode=function(e){return this.__subscriptions.find(function(i){return i.value.subscriber===e})},e.prototype.subscribe=function(e){var i=this,t=i._findEntryNode(e);if(t)return t.value;var s=new n.Subscription(i,e);return i.__subscriptions.addNode({value:s}),s},e.prototype.unsubscribe=function(e){var i=this,t=i._findEntryNode(e);if(t){var s=t.value;i.__subscriptions.removeNode(t),s.dispose()}},e.prototype._unsubscribeAll=function(e){void 0===e&&(e=!1);var i=this,t=i.__subscriptions,n=t.map(function(e){return e.value}),o=e?n.map(function(e){return e.subscriber}):null;return t.clear(),s.dispose.these(n),o},e.prototype.unsubscribeAll=function(){this._unsubscribeAll()},e.prototype.dispose=function(){this._unsubscribeAll()},e}();i.SubscribableBase=o,Object.defineProperty(i,"__esModule",{value:!0}),i["default"]=o}); //# sourceMappingURL=SubscribableBase.js.map diff --git a/dist/umd.min/System/Observable/SubscribableBase.js.map b/dist/umd.min/System/Observable/SubscribableBase.js.map index e9a6827a..dc1982d1 100644 --- a/dist/umd.min/System/Observable/SubscribableBase.js.map +++ b/dist/umd.min/System/Observable/SubscribableBase.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Observable/SubscribableBase.js","System/Observable/SubscribableBase.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","LinkedNodeList_1","dispose_1","Subscription_1","SubscribableBase","this","__subscriptions","prototype","_getSubscribers","map","node","value","subscriber","_findEntryNode","find","n","subscribe","_","s","addNode","unsubscribe","removeNode","dispose","_unsubscribeAll","returnSubscribers","_s","u","o","clear","these","unsubscribeAll","Object","defineProperty"],"mappings":";;;;;;CAMA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,gCAAiC,wBAAyB,kBAAmBN,IAEhH,SAAUI,EAASF,GCJtB,YAEA,IAAAM,GAAAJ,EAA2B,iCAC3BK,EAAAL,EAAoB,yBACpBM,EAAAN,EAAyB,kBAIzBO,EAAA,WAeC,QAAAA,KAECC,KAAKC,gBACF,GAAIL,GAAAA,WA2DT,MArEWG,GAAAG,UAAAC,gBAAV,WAEC,MAAOH,MACLC,gBACAG,IAAI,SAAAC,GAAM,MAAAA,GAAKC,OAASD,EAAKC,MAAMC,cAS9BR,EAAAG,UAAAM,eAAR,SACCD,GAEA,MAAOP,MACLC,gBACAQ,KAAK,SAAAC,GAAG,MAAAA,GAAEJ,MAAMC,aAAaA,KAIhCR,EAAAG,UAAAS,UAAA,SAAUJ,GAET,GAAIK,GAAIZ,KACJU,EAAIE,EAAEJ,eAAeD,EACzB,IAAGG,EACF,MAAOA,GAAEJ,KAEV,IAAIO,GAAI,GAAIf,GAAAA,WAAac,EAAGL,EAG5B,OAFAK,GAAEX,gBAAgBa,SAASR,MAAOO,IAE3BA,GAGRd,EAAAG,UAAAa,YAAA,SAAYR,GAEX,GAAIK,GAAIZ,KACJU,EAAIE,EAAEJ,eAAeD,EACzB,IAAGG,EACH,CACC,GAAIG,GAAIH,EAAEJ,KACVM,GAAEX,gBAAgBe,WAAWN,GAC7BG,EAAEI,YAIMlB,EAAAG,UAAAgB,gBAAV,SAA0BC,GAAA,SAAAA,IAAAA,GAAA,EAEzB,IAAIP,GAAIZ,KAAMoB,EAAKR,EAAEX,gBACjBY,EAAIO,EAAGhB,IAAI,SAAAM,GAAG,MAAAA,GAAEJ,QAChBe,EAAIF,EAAoBN,EAAET,IAAI,SAAAkB,GAAG,MAAAA,GAAEf,aAAc,IAKrD,OAJAa,GAAGG,QAEH1B,EAAAA,WAAQ2B,MAAMX,GAEPQ,GAGRtB,EAAAG,UAAAuB,eAAA,WAECzB,KAAKkB,mBAGNnB,EAAAG,UAAAe,QAAA,WAECjB,KAAKkB,mBAGPnB,IA7EA2B,QAAAC,eAAArC,EAAA,cAAAgB,OAAA,IDoDIhB,EAAAA,WAAkBS","file":"System/Observable/SubscribableBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based upon .NET source.\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../Collections/LinkedNodeList\", \"../Disposable/dispose\", \"./Subscription\"], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var LinkedNodeList_1 = require(\"../Collections/LinkedNodeList\");\n var dispose_1 = require(\"../Disposable/dispose\");\n var Subscription_1 = require(\"./Subscription\");\n var SubscribableBase = (function () {\n function SubscribableBase() {\n this.__subscriptions\n = new LinkedNodeList_1.default();\n }\n SubscribableBase.prototype._getSubscribers = function () {\n return this\n .__subscriptions\n .map(function (node) { return node.value && node.value.subscriber; });\n };\n SubscribableBase.prototype._findEntryNode = function (subscriber) {\n return this\n .__subscriptions\n .find(function (n) { return n.value.subscriber === subscriber; });\n };\n SubscribableBase.prototype.subscribe = function (subscriber) {\n var _ = this;\n var n = _._findEntryNode(subscriber);\n if (n)\n return n.value;\n var s = new Subscription_1.default(_, subscriber);\n _.__subscriptions.addNode({ value: s });\n return s;\n };\n SubscribableBase.prototype.unsubscribe = function (subscriber) {\n var _ = this;\n var n = _._findEntryNode(subscriber);\n if (n) {\n var s = n.value;\n _.__subscriptions.removeNode(n);\n s.dispose();\n }\n };\n SubscribableBase.prototype._unsubscribeAll = function (returnSubscribers) {\n if (returnSubscribers === void 0) { returnSubscribers = false; }\n var _ = this, _s = _.__subscriptions;\n var s = _s.map(function (n) { return n.value; });\n var u = returnSubscribers ? s.map(function (o) { return o.subscriber; }) : null;\n _s.clear();\n dispose_1.default.these(s);\n return u;\n };\n SubscribableBase.prototype.unsubscribeAll = function () {\n this._unsubscribeAll();\n };\n SubscribableBase.prototype.dispose = function () {\n this._unsubscribeAll();\n };\n return SubscribableBase;\n }());\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = SubscribableBase;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based upon .NET source.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\r\n */\r\n\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport LinkedNodeList from \"../Collections/LinkedNodeList\";\r\nimport dispose from \"../Disposable/dispose\";\r\nimport Subscription from \"./Subscription\";\r\n\r\n// This class is very much akin to a registry or 'Set' but uses an intermediary (Subscription) for releasing the registration.\r\n\r\nexport default\r\nclass SubscribableBase\r\nimplements IDisposable\r\n{\r\n\r\n\t// Use a linked list since it's much easier to remove a subscriber from anywhere in the list.\r\n\tprivate __subscriptions:LinkedNodeList>>;\r\n\r\n\tprotected _getSubscribers():TSubscriber[]\r\n\t{\r\n\t\treturn this\r\n\t\t\t.__subscriptions\r\n\t\t\t.map(node=>node.value && node.value.subscriber);\r\n\t}\r\n\r\n\tconstructor()\r\n\t{\r\n\t\tthis.__subscriptions\r\n\t\t\t= new LinkedNodeList>>();\r\n\t}\r\n\r\n\tprivate _findEntryNode(\r\n\t\tsubscriber:TSubscriber):ILinkedNodeWithValue>\r\n\t{\r\n\t\treturn this\r\n\t\t\t.__subscriptions\r\n\t\t\t.find(n=>n.value.subscriber===subscriber);\r\n\t}\r\n\r\n\t// It is possible that the same observer could call subscribe more than once and therefore we need to retain a single instance of the subscriber.\r\n\tsubscribe(subscriber:TSubscriber):IDisposable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar n = _._findEntryNode(subscriber);\r\n\t\tif(n) // Ensure only one instance of the existing subscription exists.\r\n\t\t\treturn n.value;\r\n\r\n\t\tvar s = new Subscription(_, subscriber);\r\n\t\t_.__subscriptions.addNode({value: s});\r\n\r\n\t\treturn s;\r\n\t}\r\n\r\n\tunsubscribe(subscriber:TSubscriber):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar n = _._findEntryNode(subscriber);\r\n\t\tif(n)\r\n\t\t{\r\n\t\t\tvar s = n.value;\r\n\t\t\t_.__subscriptions.removeNode(n);\r\n\t\t\ts.dispose(); // Prevent further usage of a dead subscription.\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _unsubscribeAll(returnSubscribers:boolean = false):TSubscriber[]\r\n\t{\r\n\t\tvar _ = this, _s = _.__subscriptions;\r\n\t\tvar s = _s.map(n=>n.value);\r\n\t\tvar u = returnSubscribers ? s.map(o=>o.subscriber) : null;\r\n\t\t_s.clear(); // Reset...\r\n\r\n\t\tdispose.these(s);\r\n\r\n\t\treturn u;\r\n\t}\r\n\r\n\tunsubscribeAll():void\r\n\t{\r\n\t\tthis._unsubscribeAll();\r\n\t}\r\n\r\n\tdispose()\r\n\t{\r\n\t\tthis._unsubscribeAll();\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Observable/SubscribableBase.js","System/Observable/SubscribableBase.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","LinkedNodeList_1","dispose_1","Subscription_1","SubscribableBase","this","__subscriptions","LinkedNodeList","prototype","_getSubscribers","map","node","value","subscriber","_findEntryNode","find","n","subscribe","_","s","Subscription","addNode","unsubscribe","removeNode","dispose","_unsubscribeAll","returnSubscribers","_s","u","o","clear","these","unsubscribeAll","Object","defineProperty"],"mappings":";;;;;;CAMA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,gCAAiC,wBAAyB,kBAAmBN,IAEhH,SAAUI,EAASF,GAClB,YCNJ,IAAAM,GAAAJ,EAA6B,iCAC7BK,EAAAL,EAAsB,yBACtBM,EAAAN,EAA2B,kBAK3BO,EAAA,WAcC,QAAAA,KAECC,KAAKC,gBACF,GAAIL,GAAAM,eA2DT,MArEWH,GAAAI,UAAAC,gBAAV,WAEC,MAAOJ,MACLC,gBACAI,IAAI,SAAAC,GAAM,MAAAA,GAAKC,OAASD,EAAKC,MAAMC,cAS9BT,EAAAI,UAAAM,eAAR,SACCD,GAEA,MAAOR,MACLC,gBACAS,KAAK,SAAAC,GAAG,MAAAA,GAAEJ,MAAMC,aAAaA,KAIhCT,EAAAI,UAAAS,UAAA,SAAUJ,GAET,GAAIK,GAAIb,KACJW,EAAIE,EAAEJ,eAAeD,EACzB,IAAGG,EACF,MAAOA,GAAEJ,KAEV,IAAIO,GAAI,GAAIhB,GAAAiB,aAAaF,EAAGL,EAG5B,OAFAK,GAAEZ,gBAAgBe,SAAST,MAAOO,IAE3BA,GAGRf,EAAAI,UAAAc,YAAA,SAAYT,GAEX,GAAIK,GAAIb,KACJW,EAAIE,EAAEJ,eAAeD,EACzB,IAAGG,EACH,CACC,GAAIG,GAAIH,EAAEJ,KACVM,GAAEZ,gBAAgBiB,WAAWP,GAC7BG,EAAEK,YAIMpB,EAAAI,UAAAiB,gBAAV,SAA0BC,GAAA,SAAAA,IAAAA,GAAA,EAEzB,IAAIR,GAAIb,KAAMsB,EAAKT,EAAEZ,gBACjBa,EAAIQ,EAAGjB,IAAI,SAAAM,GAAG,MAAAA,GAAEJ,QAChBgB,EAAIF,EAAoBP,EAAET,IAAI,SAAAmB,GAAG,MAAAA,GAAEhB,aAAc,IAKrD,OAJAc,GAAGG,QAEH5B,EAAAsB,QAAQO,MAAMZ,GAEPS,GAGRxB,EAAAI,UAAAwB,eAAA,WAEC3B,KAAKoB,mBAGNrB,EAAAI,UAAAgB,QAAA,WAECnB,KAAKoB,mBAGPrB,IA5EaT,GAAAS,iBAAgBA,EA8E7B6B,OAAAC,eAAAvC,EAAA,cAAAiB,OAAA,IDvBIjB,EAAAA,WCuBWS","file":"System/Observable/SubscribableBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based upon .NET source.\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../Collections/LinkedNodeList\", \"../Disposable/dispose\", \"./Subscription\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var LinkedNodeList_1 = require(\"../Collections/LinkedNodeList\");\n var dispose_1 = require(\"../Disposable/dispose\");\n var Subscription_1 = require(\"./Subscription\");\n var SubscribableBase = (function () {\n function SubscribableBase() {\n this.__subscriptions\n = new LinkedNodeList_1.LinkedNodeList();\n }\n SubscribableBase.prototype._getSubscribers = function () {\n return this\n .__subscriptions\n .map(function (node) { return node.value && node.value.subscriber; });\n };\n SubscribableBase.prototype._findEntryNode = function (subscriber) {\n return this\n .__subscriptions\n .find(function (n) { return n.value.subscriber === subscriber; });\n };\n SubscribableBase.prototype.subscribe = function (subscriber) {\n var _ = this;\n var n = _._findEntryNode(subscriber);\n if (n)\n return n.value;\n var s = new Subscription_1.Subscription(_, subscriber);\n _.__subscriptions.addNode({ value: s });\n return s;\n };\n SubscribableBase.prototype.unsubscribe = function (subscriber) {\n var _ = this;\n var n = _._findEntryNode(subscriber);\n if (n) {\n var s = n.value;\n _.__subscriptions.removeNode(n);\n s.dispose();\n }\n };\n SubscribableBase.prototype._unsubscribeAll = function (returnSubscribers) {\n if (returnSubscribers === void 0) { returnSubscribers = false; }\n var _ = this, _s = _.__subscriptions;\n var s = _s.map(function (n) { return n.value; });\n var u = returnSubscribers ? s.map(function (o) { return o.subscriber; }) : null;\n _s.clear();\n dispose_1.dispose.these(s);\n return u;\n };\n SubscribableBase.prototype.unsubscribeAll = function () {\n this._unsubscribeAll();\n };\n SubscribableBase.prototype.dispose = function () {\n this._unsubscribeAll();\n };\n return SubscribableBase;\n }());\n exports.SubscribableBase = SubscribableBase;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = SubscribableBase;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based upon .NET source.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\r\n */\r\n\r\n\r\nimport {LinkedNodeList} from \"../Collections/LinkedNodeList\";\r\nimport {dispose} from \"../Disposable/dispose\";\r\nimport {Subscription} from \"./Subscription\";\r\nimport {ILinkedNodeWithValue} from \"../Collections/ILinkedListNode\";\r\nimport {IDisposable} from \"../Disposable/IDisposable\";\r\n\r\n// This class is very much akin to a registry or 'Set' but uses an intermediary (Subscription) for releasing the registration.\r\nexport class SubscribableBase\r\nimplements IDisposable\r\n{\r\n\r\n\t// Use a linked list since it's much easier to remove a subscriber from anywhere in the list.\r\n\tprivate __subscriptions:LinkedNodeList>>;\r\n\r\n\tprotected _getSubscribers():TSubscriber[]\r\n\t{\r\n\t\treturn this\r\n\t\t\t.__subscriptions\r\n\t\t\t.map(node=>node.value && node.value.subscriber);\r\n\t}\r\n\r\n\tconstructor()\r\n\t{\r\n\t\tthis.__subscriptions\r\n\t\t\t= new LinkedNodeList>>();\r\n\t}\r\n\r\n\tprivate _findEntryNode(\r\n\t\tsubscriber:TSubscriber):ILinkedNodeWithValue>\r\n\t{\r\n\t\treturn this\r\n\t\t\t.__subscriptions\r\n\t\t\t.find(n=>n.value.subscriber===subscriber);\r\n\t}\r\n\r\n\t// It is possible that the same observer could call subscribe more than once and therefore we need to retain a single instance of the subscriber.\r\n\tsubscribe(subscriber:TSubscriber):IDisposable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar n = _._findEntryNode(subscriber);\r\n\t\tif(n) // Ensure only one instance of the existing subscription exists.\r\n\t\t\treturn n.value;\r\n\r\n\t\tvar s = new Subscription(_, subscriber);\r\n\t\t_.__subscriptions.addNode({value: s});\r\n\r\n\t\treturn s;\r\n\t}\r\n\r\n\tunsubscribe(subscriber:TSubscriber):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar n = _._findEntryNode(subscriber);\r\n\t\tif(n)\r\n\t\t{\r\n\t\t\tvar s = n.value;\r\n\t\t\t_.__subscriptions.removeNode(n);\r\n\t\t\ts.dispose(); // Prevent further usage of a dead subscription.\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _unsubscribeAll(returnSubscribers:boolean = false):TSubscriber[]\r\n\t{\r\n\t\tvar _ = this, _s = _.__subscriptions;\r\n\t\tvar s = _s.map(n=>n.value);\r\n\t\tvar u = returnSubscribers ? s.map(o=>o.subscriber) : null;\r\n\t\t_s.clear(); // Reset...\r\n\r\n\t\tdispose.these(s);\r\n\r\n\t\treturn u;\r\n\t}\r\n\r\n\tunsubscribeAll():void\r\n\t{\r\n\t\tthis._unsubscribeAll();\r\n\t}\r\n\r\n\tdispose()\r\n\t{\r\n\t\tthis._unsubscribeAll();\r\n\t}\r\n\r\n}\r\n\r\nexport default SubscribableBase;\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Observable/Subscription.d.ts b/dist/umd.min/System/Observable/Subscription.d.ts index ad70893a..d39df22c 100644 --- a/dist/umd.min/System/Observable/Subscription.d.ts +++ b/dist/umd.min/System/Observable/Subscription.d.ts @@ -1,13 +1,12 @@ -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Based upon .NET source. * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ -export default class Subscription implements IDisposableAware { +import { IDisposableAware } from "../Disposable/IDisposableAware"; +import { ISubscribable } from "./ISubscribable"; +export declare class Subscription implements IDisposableAware { private _subscribable; private _subscriber; constructor(_subscribable: ISubscribable, _subscriber: T); @@ -15,3 +14,4 @@ export default class Subscription implements IDisposableAware { wasDisposed: boolean; dispose(): void; } +export default Subscription; diff --git a/dist/umd.min/System/Observable/Subscription.js b/dist/umd.min/System/Observable/Subscription.js index 56afded9..8706bacc 100644 --- a/dist/umd.min/System/Observable/Subscription.js +++ b/dist/umd.min/System/Observable/Subscription.js @@ -4,5 +4,5 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ -!function(e){if("object"==typeof module&&"object"==typeof module.exports){var r=e(require,exports);void 0!==r&&(module.exports=r)}else"function"==typeof define&&define.amd&&define(["require","exports"],e)}(function(e,r){"use strict";var t=function(){function e(e,r){if(this._subscribable=e,this._subscriber=r,!e||!r)throw"Subscribable and subscriber cannot be null."}return Object.defineProperty(e.prototype,"subscriber",{get:function(){return this._subscriber},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"wasDisposed",{get:function(){return!this._subscribable||!this._subscriber},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){var e=this.subscriber,r=this._subscribable;this._subscriber=null,this._subscribable=null,e&&r&&r.unsubscribe(e)},e}();Object.defineProperty(r,"__esModule",{value:!0}),r["default"]=t}); +!function(e){if("object"==typeof module&&"object"==typeof module.exports){var r=e(require,exports);void 0!==r&&(module.exports=r)}else"function"==typeof define&&define.amd&&define(["require","exports"],e)}(function(e,r){"use strict";var t=function(){function e(e,r){if(this._subscribable=e,this._subscriber=r,!e||!r)throw"Subscribable and subscriber cannot be null."}return Object.defineProperty(e.prototype,"subscriber",{get:function(){return this._subscriber},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"wasDisposed",{get:function(){return!this._subscribable||!this._subscriber},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){var e=this.subscriber,r=this._subscribable;this._subscriber=null,this._subscribable=null,e&&r&&r.unsubscribe(e)},e}();r.Subscription=t,Object.defineProperty(r,"__esModule",{value:!0}),r["default"]=t}); //# sourceMappingURL=Subscription.js.map diff --git a/dist/umd.min/System/Observable/Subscription.js.map b/dist/umd.min/System/Observable/Subscription.js.map index 0b907d66..a76dc62c 100644 --- a/dist/umd.min/System/Observable/Subscription.js.map +++ b/dist/umd.min/System/Observable/Subscription.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Observable/Subscription.js","System/Observable/Subscription.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","Subscription","_subscribable","_subscriber","this","Object","defineProperty","prototype","get","enumerable","configurable","dispose","subscriber","subscribable","unsubscribe","value"],"mappings":";;;;;;CAMA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,WAAYN,IAEpC,SAAUI,EAASF,GCHtB,YAKA,IAAAM,GAAA,WAGC,QAAAA,GACSC,EACAC,GAER,GAHQC,KAAAF,cAAAA,EACAE,KAAAD,YAAAA,GAEHD,IAAkBC,EACtB,KAAM,8CA0CT,MAvCCE,QAAAC,eAAIL,EAAAM,UAAA,cDHOC,ICGX,WACC,MAAOJ,MAAKD,aDDFM,YAAY,EACZC,cAAc,ICkBzBL,OAAAC,eAAIL,EAAAM,UAAA,eDfOC,ICeX,WAEC,OAAQJ,KAAKF,gBAAkBE,KAAKD,aDd1BM,YAAY,EACZC,cAAc,ICgBzBT,EAAAM,UAAAI,QAAA,WAEC,GAAIC,GAAaR,KAAKQ,WAClBC,EAAeT,KAAKF,aAGxBE,MAAKD,YAAc,KACnBC,KAAKF,cAAgB,KAGjBU,GAAcC,GAEjBA,EAAaC,YAAYF,IAG5BX,IAlDAI,QAAAC,eAAAX,EAAA,cAAAoB,OAAA,IDiCIpB,EAAAA,WAAkBM","file":"System/Observable/Subscription.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based upon .NET source.\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\"], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var Subscription = (function () {\n function Subscription(_subscribable, _subscriber) {\n this._subscribable = _subscribable;\n this._subscriber = _subscriber;\n if (!_subscribable || !_subscriber)\n throw 'Subscribable and subscriber cannot be null.';\n }\n Object.defineProperty(Subscription.prototype, \"subscriber\", {\n get: function () {\n return this._subscriber;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Subscription.prototype, \"wasDisposed\", {\n get: function () {\n return !this._subscribable || !this._subscriber;\n },\n enumerable: true,\n configurable: true\n });\n Subscription.prototype.dispose = function () {\n var subscriber = this.subscriber;\n var subscribable = this._subscribable;\n this._subscriber = null;\n this._subscribable = null;\n if (subscriber && subscribable) {\n subscribable.unsubscribe(subscriber);\n }\n };\n return Subscription;\n }());\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Subscription;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based upon .NET source.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\r\n */\r\n\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n/**\r\n * A registration that an IObservable returns that can be disposed in order to cancel sending data to the observer.\r\n */\r\nexport default\r\nclass Subscription implements IDisposableAware\r\n{\r\n\tconstructor(\r\n\t\tprivate _subscribable: ISubscribable,\r\n\t\tprivate _subscriber: T)\r\n\t{\r\n\t\tif (!_subscribable || !_subscriber)\r\n\t\t\tthrow 'Subscribable and subscriber cannot be null.';\r\n\t}\r\n\r\n\tget subscriber():T {\r\n\t\treturn this._subscriber;\r\n\t}\r\n\r\n\t/*\r\n\t In the case where we could possibly have the following happen:\r\n\r\n\t var u = observable.subscribe(observer);\r\n\r\n\t ...\r\n\r\n\t u.dispose(); // Should only be allowed to unsubscribe once and then it's useless.\r\n\r\n\t // Resubscribing creates a new instance.\r\n\t var x = observable.subscribe(observer);\r\n\r\n\t u.dispose(); // Calling this again should do nothing and 'x' should still work.\r\n\t */\r\n\r\n\tget wasDisposed(): boolean\r\n\t{\r\n\t\treturn !this._subscribable || !this._subscriber;\r\n\t}\r\n\r\n\tdispose(): void\r\n\t{\r\n\t\tvar subscriber = this.subscriber;\r\n\t\tvar subscribable = this._subscribable;\r\n\r\n\t\t// Release the references. Will prevent potential unwanted recursion.\r\n\t\tthis._subscriber = null;\r\n\t\tthis._subscribable = null;\r\n\r\n\r\n\t\tif (subscriber && subscribable)\r\n\t\t{\r\n\t\t\tsubscribable.unsubscribe(subscriber);\r\n\t\t}\r\n\t}\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Observable/Subscription.js","System/Observable/Subscription.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","Subscription","_subscribable","_subscriber","this","Object","defineProperty","prototype","get","enumerable","configurable","dispose","subscriber","subscribable","unsubscribe","value"],"mappings":";;;;;;CAMA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,WAAYN,IAEpC,SAAUI,EAASF,GAClB,YCAJ,IAAAM,GAAA,WAEC,QAAAA,GACSC,EACAC,GAER,GAHQC,KAAAF,cAAAA,EACAE,KAAAD,YAAAA,GAEHD,IAAkBC,EACtB,KAAM,8CA0CT,MAvCCE,QAAAC,eAAIL,EAAAM,UAAA,cDDOC,ICCX,WACC,MAAOJ,MAAKD,aDCFM,YAAY,EACZC,cAAc,ICgBzBL,OAAAC,eAAIL,EAAAM,UAAA,eDbOC,ICaX,WAEC,OAAQJ,KAAKF,gBAAkBE,KAAKD,aDZ1BM,YAAY,EACZC,cAAc,ICczBT,EAAAM,UAAAI,QAAA,WAEC,GAAIC,GAAaR,KAAKQ,WAClBC,EAAeT,KAAKF,aAGxBE,MAAKD,YAAc,KACnBC,KAAKF,cAAgB,KAGjBU,GAAcC,GAEjBA,EAAaC,YAAYF,IAG5BX,IAjDaN,GAAAM,aAAYA,EAmDzBI,OAAAC,eAAAX,EAAA,cAAAoB,OAAA,IDhBIpB,EAAAA,WCgBWM","file":"System/Observable/Subscription.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based upon .NET source.\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var Subscription = (function () {\n function Subscription(_subscribable, _subscriber) {\n this._subscribable = _subscribable;\n this._subscriber = _subscriber;\n if (!_subscribable || !_subscriber)\n throw 'Subscribable and subscriber cannot be null.';\n }\n Object.defineProperty(Subscription.prototype, \"subscriber\", {\n get: function () {\n return this._subscriber;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Subscription.prototype, \"wasDisposed\", {\n get: function () {\n return !this._subscribable || !this._subscriber;\n },\n enumerable: true,\n configurable: true\n });\n Subscription.prototype.dispose = function () {\n var subscriber = this.subscriber;\n var subscribable = this._subscribable;\n this._subscriber = null;\n this._subscribable = null;\n if (subscriber && subscribable) {\n subscribable.unsubscribe(subscriber);\n }\n };\n return Subscription;\n }());\n exports.Subscription = Subscription;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Subscription;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based upon .NET source.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\r\n */\r\n\r\n\r\nimport {IDisposableAware} from \"../Disposable/IDisposableAware\";\r\nimport {ISubscribable} from \"./ISubscribable\"; // For compatibility with (let, const, function, class);\r\n\r\n/**\r\n * A registration that an IObservable returns that can be disposed in order to cancel sending data to the observer.\r\n */\r\nexport class Subscription implements IDisposableAware\r\n{\r\n\tconstructor(\r\n\t\tprivate _subscribable: ISubscribable,\r\n\t\tprivate _subscriber: T)\r\n\t{\r\n\t\tif (!_subscribable || !_subscriber)\r\n\t\t\tthrow 'Subscribable and subscriber cannot be null.';\r\n\t}\r\n\r\n\tget subscriber():T {\r\n\t\treturn this._subscriber;\r\n\t}\r\n\r\n\t/*\r\n\t In the case where we could possibly have the following happen:\r\n\r\n\t var u = observable.subscribe(observer);\r\n\r\n\t ...\r\n\r\n\t u.dispose(); // Should only be allowed to unsubscribe once and then it's useless.\r\n\r\n\t // Resubscribing creates a new instance.\r\n\t var x = observable.subscribe(observer);\r\n\r\n\t u.dispose(); // Calling this again should do nothing and 'x' should still work.\r\n\t */\r\n\r\n\tget wasDisposed(): boolean\r\n\t{\r\n\t\treturn !this._subscribable || !this._subscriber;\r\n\t}\r\n\r\n\tdispose(): void\r\n\t{\r\n\t\tvar subscriber = this.subscriber;\r\n\t\tvar subscribable = this._subscribable;\r\n\r\n\t\t// Release the references. Will prevent potential unwanted recursion.\r\n\t\tthis._subscriber = null;\r\n\t\tthis._subscribable = null;\r\n\r\n\r\n\t\tif (subscriber && subscribable)\r\n\t\t{\r\n\t\t\tsubscribable.unsubscribe(subscriber);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default Subscription;\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Serialization/Utility.d.ts b/dist/umd.min/System/Serialization/Utility.d.ts index f53d368c..c1308794 100644 --- a/dist/umd.min/System/Serialization/Utility.d.ts +++ b/dist/umd.min/System/Serialization/Utility.d.ts @@ -1,9 +1,9 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { ISerializable } from "./ISerializable"; +import { Primitive } from "../Primitive"; export declare function toString(value: Primitive | ISerializable, defaultForUnknown?: string): string; export declare function isSerializable(instance: any): instance is ISerializable; export declare function toPrimitive(value: string, caseInsensitive?: boolean, unknownHandler?: (v: string) => string): Primitive; diff --git a/dist/umd.min/System/Serialization/Utility.js b/dist/umd.min/System/Serialization/Utility.js index 11a9c0a1..7aa07f2d 100644 --- a/dist/umd.min/System/Serialization/Utility.js +++ b/dist/umd.min/System/Serialization/Utility.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../Types","../Exceptions/InvalidOperationException"],e)}(function(e,t){"use strict";function r(e,t){var r=e;switch(typeof r){case n["default"].UNDEFINED:case n["default"].STRING:return r;case n["default"].BOOLEAN:return r?f:l;case n["default"].NUMBER:return s+r;default:if(null===r)return r;if(i(r))return r.serialize();if(arguments.length>1)return t;var a=new u["default"]("Attempting to serialize unidentifiable type.");throw a.data.value=r,a}}function i(e){return n["default"].hasMemberOfType(e,"serialize",n["default"].FUNCTION)}function a(e,t,r){if(e)switch(t&&(e=e.toLowerCase()),e){case"null":return null;case n["default"].UNDEFINED:return;case f:return!0;case l:return!1;default:var i=e.replace(/^\s+|,|\s+$/g,s);if(i)if(/^\d+$/g.test(i)){var a=parseInt(i);if(!isNaN(a))return a}else{var u=parseFloat(e);if(!isNaN(u))return u}r&&(e=r(e))}return e}var n=e("../Types"),u=e("../Exceptions/InvalidOperationException"),s="",f="true",l="false";t.toString=r,t.isSerializable=i,t.toPrimitive=a}); +!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../Types","../Exceptions/InvalidOperationException"],e)}(function(e,t){"use strict";function r(e,t){var r=e;switch(typeof r){case a.Type.UNDEFINED:case a.Type.STRING:return r;case a.Type.BOOLEAN:return r?u:p;case a.Type.NUMBER:return o+r;default:if(null===r)return r;if(i(r))return r.serialize();if(arguments.length>1)return t;var n=new s.InvalidOperationException("Attempting to serialize unidentifiable type.");throw n.data.value=r,n}}function i(e){return a.Type.hasMemberOfType(e,"serialize",a.Type.FUNCTION)}function n(e,t,r){if(e)switch(t&&(e=e.toLowerCase()),e){case"null":return null;case a.Type.UNDEFINED:return;case u:return!0;case p:return!1;default:var i=e.replace(/^\s+|,|\s+$/g,o);if(i)if(/^\d+$/g.test(i)){var n=parseInt(i);if(!isNaN(n))return n}else{var s=parseFloat(e);if(!isNaN(s))return s}r&&(e=r(e))}return e}var a=e("../Types"),s=e("../Exceptions/InvalidOperationException"),o="",u="true",p="false";t.toString=r,t.isSerializable=i,t.toPrimitive=n}); //# sourceMappingURL=Utility.js.map diff --git a/dist/umd.min/System/Serialization/Utility.js.map b/dist/umd.min/System/Serialization/Utility.js.map index 21fff909..b269e115 100644 --- a/dist/umd.min/System/Serialization/Utility.js.map +++ b/dist/umd.min/System/Serialization/Utility.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Serialization/Utility.js","System/Serialization/Utility.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","toString","value","defaultForUnknown","Types_1","UNDEFINED","STRING","BOOLEAN","TRUE","FALSE","NUMBER","EMPTY","isSerializable","serialize","arguments","length","ex","InvalidOperationException_1","data","instance","hasMemberOfType","FUNCTION","toPrimitive","caseInsensitive","unknownHandler","toLowerCase","cleaned","replace","test","int","parseInt","isNaN","number","parseFloat"],"mappings":";;;;CAIA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,WAAY,2CAA4CN,IAE3F,SAAUI,EAASF,GAClB,YCEJ,SAAAM,GACCC,EACAC,GAGA,GAAIP,GAASM,CACb,cAAcN,IAEb,IAAKQ,GAAAA,WAAKC,UACV,IAAKD,GAAAA,WAAKE,OACT,MAAOV,EACR,KAAKQ,GAAAA,WAAKG,QACT,MAAOX,GAAIY,EAAOC,CACnB,KAAKL,GAAAA,WAAKM,OACT,MAAOC,GAAQf,CAChB,SAEC,GAAO,OAAJA,EACF,MAAOA,EAER,IAAGgB,EAAehB,GACjB,MAAOA,GAAEiB,WACL,IAAGC,UAAUC,OAAO,EACxB,MAAOZ,EAER,IAAIa,GAAK,GAAIC,GAAAA,WAA0B,+CAEvC,MADAD,GAAGE,KAAY,MAAItB,EACboB,GAMT,QAAAJ,GAA+BO,GAC9B,MAAOf,GAAAA,WAAKgB,gBAA+BD,EAAS,YAAYf,EAAAA,WAAKiB,UAGtE,QAAAC,GACCpB,EACAqB,EACAC,GAIA,GAAGtB,EAIF,OAFGqB,IAAiBrB,EAAQA,EAAMuB,eAE3BvB,GAEN,IAAK,OACJ,MAAO,KACR,KAAKE,GAAAA,WAAKC,UACT,MACD,KAAKG,GACJ,OAAO,CACR,KAAKC,GACJ,OAAO,CACR,SAEC,GAAIiB,GAAUxB,EAAMyB,QAAQ,eAAehB,EAC3C,IAAGe,EAEF,GAAG,SAASE,KAAKF,GAAU,CAC1B,GAAIG,GAAMC,SAASJ,EACnB,KAAIK,MAAMF,GAAM,MAAOA,OACjB,CACN,GAAIG,GAASC,WAAW/B,EACxB,KAAI6B,MAAMC,GAAS,MAAOA,GAQzBR,IAAgBtB,EAAQsB,EAAetB,IAO7C,MAAOA,GAzFR,GAAAE,GAAAP,EAAiB,YACjBoB,EAAApB,EAAsC,2CAGhCc,EAAQ,GAAIH,EAAO,OAAQC,EAAQ,OAEzBd,GAAAM,SAAQA,EAiCRN,EAAAiB,eAAcA,EAIdjB,EAAA2B,YAAWA","file":"System/Serialization/Utility.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", '../Types', '../Exceptions/InvalidOperationException'], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var Types_1 = require('../Types');\n var InvalidOperationException_1 = require('../Exceptions/InvalidOperationException');\n var EMPTY = '', TRUE = 'true', FALSE = 'false';\n function toString(value, defaultForUnknown) {\n var v = value;\n switch (typeof v) {\n case Types_1.default.UNDEFINED:\n case Types_1.default.STRING:\n return v;\n case Types_1.default.BOOLEAN:\n return v ? TRUE : FALSE;\n case Types_1.default.NUMBER:\n return EMPTY + v;\n default:\n if (v === null)\n return v;\n if (isSerializable(v))\n return v.serialize();\n else if (arguments.length > 1)\n return defaultForUnknown;\n var ex = new InvalidOperationException_1.default('Attempting to serialize unidentifiable type.');\n ex.data['value'] = v;\n throw ex;\n }\n }\n exports.toString = toString;\n function isSerializable(instance) {\n return Types_1.default.hasMemberOfType(instance, 'serialize', Types_1.default.FUNCTION);\n }\n exports.isSerializable = isSerializable;\n function toPrimitive(value, caseInsensitive, unknownHandler) {\n if (value) {\n if (caseInsensitive)\n value = value.toLowerCase();\n switch (value) {\n case 'null':\n return null;\n case Types_1.default.UNDEFINED:\n return undefined;\n case TRUE:\n return true;\n case FALSE:\n return false;\n default:\n var cleaned = value.replace(/^\\s+|,|\\s+$/g, EMPTY);\n if (cleaned) {\n if (/^\\d+$/g.test(cleaned)) {\n var int = parseInt(cleaned);\n if (!isNaN(int))\n return int;\n }\n else {\n var number = parseFloat(value);\n if (!isNaN(number))\n return number;\n }\n }\n if (unknownHandler)\n value = unknownHandler(value);\n break;\n }\n }\n return value;\n }\n exports.toPrimitive = toPrimitive;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n\r\nimport Type from '../Types';\r\nimport InvalidOperationException from '../Exceptions/InvalidOperationException';\r\n\r\n\r\nconst EMPTY = '', TRUE = 'true', FALSE = 'false';\r\n\r\nexport function toString(\r\n\tvalue:Primitive|ISerializable,\r\n\tdefaultForUnknown?:string):string\r\n{\r\n\r\n\tvar v = value;\r\n\tswitch(typeof v)\r\n\t{\r\n\t\tcase Type.UNDEFINED:\r\n\t\tcase Type.STRING:\r\n\t\t\treturn v;\r\n\t\tcase Type.BOOLEAN:\r\n\t\t\treturn v ? TRUE : FALSE;\r\n\t\tcase Type.NUMBER:\r\n\t\t\treturn EMPTY + v;\r\n\t\tdefault:\r\n\r\n\t\t\tif(v===null)\r\n\t\t\t\treturn v;\r\n\r\n\t\t\tif(isSerializable(v))\r\n\t\t\t\treturn v.serialize();\r\n\t\t\telse if(arguments.length>1)\r\n\t\t\t\treturn defaultForUnknown;\r\n\r\n\t\t\tvar ex = new InvalidOperationException('Attempting to serialize unidentifiable type.');\r\n\t\t\tex.data['value'] = v;\r\n\t\t\tthrow ex;\r\n\r\n\t}\r\n\r\n}\r\n\r\nexport function isSerializable(instance:any):instance is ISerializable {\r\n\treturn Type.hasMemberOfType(instance,'serialize',Type.FUNCTION);\r\n}\r\n\r\nexport function toPrimitive(\r\n\tvalue:string,\r\n\tcaseInsensitive?:boolean,\r\n\tunknownHandler?:(v:string)=>string):Primitive\r\n{\r\n\r\n\r\n\tif(value)\r\n\t{\r\n\t\tif(caseInsensitive) value = value.toLowerCase();\r\n\r\n\t\tswitch(value)\r\n\t\t{\r\n\t\t\tcase 'null':\r\n\t\t\t\treturn null;\r\n\t\t\tcase Type.UNDEFINED:\r\n\t\t\t\treturn undefined;\r\n\t\t\tcase TRUE:\r\n\t\t\t\treturn true;\r\n\t\t\tcase FALSE:\r\n\t\t\t\treturn false;\r\n\t\t\tdefault:\r\n\r\n\t\t\t\tvar cleaned = value.replace(/^\\s+|,|\\s+$/g,EMPTY);\r\n\t\t\t\tif(cleaned) {\r\n\r\n\t\t\t\t\tif(/^\\d+$/g.test(cleaned)) {\r\n\t\t\t\t\t\tvar int = parseInt(cleaned);\r\n\t\t\t\t\t\tif(!isNaN(int)) return int;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tvar number = parseFloat(value);\r\n\t\t\t\t\t\tif(!isNaN(number)) return number;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// TODO: Handle Dates... Possibly JSON?\r\n\r\n\t\t\t\t// Instead of throwing we allow for handling...\r\n\t\t\t\tif(unknownHandler) value = unknownHandler(value);\r\n\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\r\n\t}\r\n\r\n\treturn value;\r\n\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Serialization/Utility.js","System/Serialization/Utility.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","toString","value","defaultForUnknown","Types_1","Type","UNDEFINED","STRING","BOOLEAN","TRUE","FALSE","NUMBER","EMPTY","isSerializable","serialize","arguments","length","ex","InvalidOperationException_1","InvalidOperationException","data","instance","hasMemberOfType","FUNCTION","toPrimitive","caseInsensitive","unknownHandler","toLowerCase","cleaned","replace","test","int","parseInt","isNaN","number","parseFloat"],"mappings":";;;;CAIA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,WAAY,2CAA4CN,IAE3F,SAAUI,EAASF,GAClB,YCCJ,SAAAM,GACCC,EACAC,GAGA,GAAIP,GAASM,CACb,cAAcN,IAEb,IAAKQ,GAAAC,KAAKC,UACV,IAAKF,GAAAC,KAAKE,OACT,MAAOX,EACR,KAAKQ,GAAAC,KAAKG,QACT,MAAOZ,GAAIa,EAAOC,CACnB,KAAKN,GAAAC,KAAKM,OACT,MAAOC,GAAQhB,CAChB,SAEC,GAAO,OAAJA,EACF,MAAOA,EAER,IAAGiB,EAAejB,GACjB,MAAOA,GAAEkB,WACL,IAAGC,UAAUC,OAAO,EACxB,MAAOb,EAER,IAAIc,GAAK,GAAIC,GAAAC,0BAA0B,+CAEvC,MADAF,GAAGG,KAAY,MAAIxB,EACbqB,GAMT,QAAAJ,GAA+BQ,GAC9B,MAAOjB,GAAAC,KAAKiB,gBAA+BD,EAAS,YAAYjB,EAAAC,KAAKkB,UAGtE,QAAAC,GACCtB,EACAuB,EACAC,GAIA,GAAGxB,EAIF,OAFGuB,IAAiBvB,EAAQA,EAAMyB,eAE3BzB,GAEN,IAAK,OACJ,MAAO,KACR,KAAKE,GAAAC,KAAKC,UACT,MACD,KAAKG,GACJ,OAAO,CACR,KAAKC,GACJ,OAAO,CACR,SAEC,GAAIkB,GAAU1B,EAAM2B,QAAQ,eAAejB,EAC3C,IAAGgB,EAEF,GAAG,SAASE,KAAKF,GAAU,CAC1B,GAAIG,GAAMC,SAASJ,EACnB,KAAIK,MAAMF,GAAM,MAAOA,OACjB,CACN,GAAIG,GAASC,WAAWjC,EACxB,KAAI+B,MAAMC,GAAS,MAAOA,GAQzBR,IAAgBxB,EAAQwB,EAAexB,IAO7C,MAAOA,GA3FR,GAAAE,GAAAP,EAAmB,YACnBqB,EAAArB,EAAwC,2CAKlCe,EAAQ,GAAIH,EAAO,OAAQC,EAAQ,OAEzBf,GAAAM,SAAQA,EAiCRN,EAAAkB,eAAcA,EAIdlB,EAAA6B,YAAWA","file":"System/Serialization/Utility.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../Types\", \"../Exceptions/InvalidOperationException\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var Types_1 = require(\"../Types\");\n var InvalidOperationException_1 = require(\"../Exceptions/InvalidOperationException\");\n var EMPTY = '', TRUE = 'true', FALSE = 'false';\n function toString(value, defaultForUnknown) {\n var v = value;\n switch (typeof v) {\n case Types_1.Type.UNDEFINED:\n case Types_1.Type.STRING:\n return v;\n case Types_1.Type.BOOLEAN:\n return v ? TRUE : FALSE;\n case Types_1.Type.NUMBER:\n return EMPTY + v;\n default:\n if (v === null)\n return v;\n if (isSerializable(v))\n return v.serialize();\n else if (arguments.length > 1)\n return defaultForUnknown;\n var ex = new InvalidOperationException_1.InvalidOperationException('Attempting to serialize unidentifiable type.');\n ex.data['value'] = v;\n throw ex;\n }\n }\n exports.toString = toString;\n function isSerializable(instance) {\n return Types_1.Type.hasMemberOfType(instance, 'serialize', Types_1.Type.FUNCTION);\n }\n exports.isSerializable = isSerializable;\n function toPrimitive(value, caseInsensitive, unknownHandler) {\n if (value) {\n if (caseInsensitive)\n value = value.toLowerCase();\n switch (value) {\n case 'null':\n return null;\n case Types_1.Type.UNDEFINED:\n return undefined;\n case TRUE:\n return true;\n case FALSE:\n return false;\n default:\n var cleaned = value.replace(/^\\s+|,|\\s+$/g, EMPTY);\n if (cleaned) {\n if (/^\\d+$/g.test(cleaned)) {\n var int = parseInt(cleaned);\n if (!isNaN(int))\n return int;\n }\n else {\n var number = parseFloat(value);\n if (!isNaN(number))\n return number;\n }\n }\n if (unknownHandler)\n value = unknownHandler(value);\n break;\n }\n }\n return value;\n }\n exports.toPrimitive = toPrimitive;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {Type} from \"../Types\";\r\nimport {InvalidOperationException} from \"../Exceptions/InvalidOperationException\";\r\nimport {ISerializable} from \"./ISerializable\";\r\nimport {Primitive} from \"../Primitive\";\r\n\r\n\r\nconst EMPTY = '', TRUE = 'true', FALSE = 'false';\r\n\r\nexport function toString(\r\n\tvalue:Primitive|ISerializable,\r\n\tdefaultForUnknown?:string):string\r\n{\r\n\r\n\tvar v = value;\r\n\tswitch(typeof v)\r\n\t{\r\n\t\tcase Type.UNDEFINED:\r\n\t\tcase Type.STRING:\r\n\t\t\treturn v;\r\n\t\tcase Type.BOOLEAN:\r\n\t\t\treturn v ? TRUE : FALSE;\r\n\t\tcase Type.NUMBER:\r\n\t\t\treturn EMPTY + v;\r\n\t\tdefault:\r\n\r\n\t\t\tif(v===null)\r\n\t\t\t\treturn v;\r\n\r\n\t\t\tif(isSerializable(v))\r\n\t\t\t\treturn v.serialize();\r\n\t\t\telse if(arguments.length>1)\r\n\t\t\t\treturn defaultForUnknown;\r\n\r\n\t\t\tvar ex = new InvalidOperationException('Attempting to serialize unidentifiable type.');\r\n\t\t\tex.data['value'] = v;\r\n\t\t\tthrow ex;\r\n\r\n\t}\r\n\r\n}\r\n\r\nexport function isSerializable(instance:any):instance is ISerializable {\r\n\treturn Type.hasMemberOfType(instance,'serialize',Type.FUNCTION);\r\n}\r\n\r\nexport function toPrimitive(\r\n\tvalue:string,\r\n\tcaseInsensitive?:boolean,\r\n\tunknownHandler?:(v:string)=>string):Primitive\r\n{\r\n\r\n\r\n\tif(value)\r\n\t{\r\n\t\tif(caseInsensitive) value = value.toLowerCase();\r\n\r\n\t\tswitch(value)\r\n\t\t{\r\n\t\t\tcase 'null':\r\n\t\t\t\treturn null;\r\n\t\t\tcase Type.UNDEFINED:\r\n\t\t\t\treturn undefined;\r\n\t\t\tcase TRUE:\r\n\t\t\t\treturn true;\r\n\t\t\tcase FALSE:\r\n\t\t\t\treturn false;\r\n\t\t\tdefault:\r\n\r\n\t\t\t\tvar cleaned = value.replace(/^\\s+|,|\\s+$/g,EMPTY);\r\n\t\t\t\tif(cleaned) {\r\n\r\n\t\t\t\t\tif(/^\\d+$/g.test(cleaned)) {\r\n\t\t\t\t\t\tvar int = parseInt(cleaned);\r\n\t\t\t\t\t\tif(!isNaN(int)) return int;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tvar number = parseFloat(value);\r\n\t\t\t\t\t\tif(!isNaN(number)) return number;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// TODO: Handle Dates... Possibly JSON?\r\n\r\n\t\t\t\t// Instead of throwing we allow for handling...\r\n\t\t\t\tif(unknownHandler) value = unknownHandler(value);\r\n\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\r\n\t}\r\n\r\n\treturn value;\r\n\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Tasks/TaskHandler.d.ts b/dist/umd.min/System/Tasks/TaskHandler.d.ts index 750d1dd3..c2a1037f 100644 --- a/dist/umd.min/System/Tasks/TaskHandler.d.ts +++ b/dist/umd.min/System/Tasks/TaskHandler.d.ts @@ -3,10 +3,12 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import TaskHandlerBase from "./TaskHandlerBase"; -export default class TaskHandler extends TaskHandlerBase { +import { TaskHandlerBase } from "./TaskHandlerBase"; +import { Closure } from "../FunctionTypes"; +export declare class TaskHandler extends TaskHandlerBase { private _action; constructor(_action: Closure); protected _onExecute(): void; protected _onDispose(): void; } +export default TaskHandler; diff --git a/dist/umd.min/System/Tasks/TaskHandler.js b/dist/umd.min/System/Tasks/TaskHandler.js index cd2c13ce..cb259d6b 100644 --- a/dist/umd.min/System/Tasks/TaskHandler.js +++ b/dist/umd.min/System/Tasks/TaskHandler.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(e,t){function o(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","./TaskHandlerBase","../Exceptions/ArgumentNullException"],e)}(function(e,t){"use strict";var o=e("./TaskHandlerBase"),n=e("../Exceptions/ArgumentNullException"),i=function(e){function t(t){if(e.call(this),this._action=t,!t)throw new n["default"]("action")}return __extends(t,e),t.prototype._onExecute=function(){this._action()},t.prototype._onDispose=function(){e.prototype._onDispose.call(this),this._action=null},t}(o["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=i}); +var __extends=this&&this.__extends||function(e,t){function o(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","./TaskHandlerBase","../Exceptions/ArgumentNullException"],e)}(function(e,t){"use strict";var o=e("./TaskHandlerBase"),n=e("../Exceptions/ArgumentNullException"),i=function(e){function t(t){if(e.call(this),this._action=t,!t)throw new n.ArgumentNullException("action")}return __extends(t,e),t.prototype._onExecute=function(){this._action()},t.prototype._onDispose=function(){e.prototype._onDispose.call(this),this._action=null},t}(o.TaskHandlerBase);t.TaskHandler=i,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=i}); //# sourceMappingURL=TaskHandler.js.map diff --git a/dist/umd.min/System/Tasks/TaskHandler.js.map b/dist/umd.min/System/Tasks/TaskHandler.js.map index 22f3daee..b3c93d8c 100644 --- a/dist/umd.min/System/Tasks/TaskHandler.js.map +++ b/dist/umd.min/System/Tasks/TaskHandler.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Tasks/TaskHandler.js","System/Tasks/TaskHandler.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","TaskHandlerBase_1","ArgumentNullException_1","TaskHandler","_super","_action","call","_onExecute","_onDispose","defineProperty","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,oBAAqB,uCAAwCN,IAEhG,SAAUI,EAASF,GAClB,YCXJ,IAAAM,GAAAJ,EAA4B,qBAC5BK,EAAAL,EAAkC,uCAClCM,EAAA,SAAAC,GAEC,QAAAD,GAAoBE,GAEnB,GADAD,EAAAE,KAAAvB,MADmBA,KAAAsB,QAAAA,GAEfA,EAAS,KAAM,IAAIH,GAAAA,WAAsB,UAa/C,MAjByCpB,WAAAqB,EAAAC,GAO9BD,EAAAb,UAAAiB,WAAV,WAECxB,KAAKsB,WAGIF,EAAAb,UAAAkB,WAAV,WAECJ,EAAAd,UAAMkB,WAAUF,KAAAvB,MAChBA,KAAKsB,QAAU,MAEjBF,GAjByCF,EAAAA,WAAzCV,QAAAkB,eAAAd,EAAA,cAAAe,OAAA,ID8BIf,EAAAA,WAAkBQ","file":"System/Tasks/TaskHandler.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"./TaskHandlerBase\", \"../Exceptions/ArgumentNullException\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var TaskHandlerBase_1 = require(\"./TaskHandlerBase\");\n var ArgumentNullException_1 = require(\"../Exceptions/ArgumentNullException\");\n var TaskHandler = (function (_super) {\n __extends(TaskHandler, _super);\n function TaskHandler(_action) {\n _super.call(this);\n this._action = _action;\n if (!_action)\n throw new ArgumentNullException_1.default('action');\n }\n TaskHandler.prototype._onExecute = function () {\n this._action();\n };\n TaskHandler.prototype._onDispose = function () {\n _super.prototype._onDispose.call(this);\n this._action = null;\n };\n return TaskHandler;\n }(TaskHandlerBase_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = TaskHandler;\n});\n","///\r\n/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport TaskHandlerBase from \"./TaskHandlerBase\";\r\nimport ArgumentNullException from \"../Exceptions/ArgumentNullException\";\r\nexport default class TaskHandler extends TaskHandlerBase {\r\n\t\r\n\tconstructor(private _action:Closure) {\r\n\t\tsuper();\r\n\t\tif(!_action) throw new ArgumentNullException('action');\r\n\t}\r\n\t\r\n\tprotected _onExecute():void\r\n\t{\r\n\t\tthis._action();\r\n\t}\r\n\t\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis._action = null;\r\n\t}\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Tasks/TaskHandler.js","System/Tasks/TaskHandler.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","TaskHandlerBase_1","ArgumentNullException_1","TaskHandler","_super","_action","call","ArgumentNullException","_onExecute","_onDispose","TaskHandlerBase","defineProperty","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,oBAAqB,uCAAwCN,IAEhG,SAAUI,EAASF,GAClB,YCXJ,IAAAM,GAAAJ,EAA8B,qBAC9BK,EAAAL,EAAoC,uCAGpCM,EAAA,SAAAC,GAEC,QAAAD,GAAoBE,GAEnB,GADAD,EAAAE,KAAAvB,MADmBA,KAAAsB,QAAAA,GAEfA,EAAS,KAAM,IAAIH,GAAAK,sBAAsB,UAa/C,MAjBiCzB,WAAAqB,EAAAC,GAOtBD,EAAAb,UAAAkB,WAAV,WAECzB,KAAKsB,WAGIF,EAAAb,UAAAmB,WAAV,WAECL,EAAAd,UAAMmB,WAAUH,KAAAvB,MAChBA,KAAKsB,QAAU,MAEjBF,GAjBiCF,EAAAS,gBAApBf,GAAAQ,YAAWA,EAmBxBZ,OAAAoB,eAAAhB,EAAA,cAAAiB,OAAA,IDUIjB,EAAAA,WCVWQ","file":"System/Tasks/TaskHandler.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"./TaskHandlerBase\", \"../Exceptions/ArgumentNullException\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var TaskHandlerBase_1 = require(\"./TaskHandlerBase\");\n var ArgumentNullException_1 = require(\"../Exceptions/ArgumentNullException\");\n var TaskHandler = (function (_super) {\n __extends(TaskHandler, _super);\n function TaskHandler(_action) {\n _super.call(this);\n this._action = _action;\n if (!_action)\n throw new ArgumentNullException_1.ArgumentNullException('action');\n }\n TaskHandler.prototype._onExecute = function () {\n this._action();\n };\n TaskHandler.prototype._onDispose = function () {\n _super.prototype._onDispose.call(this);\n this._action = null;\n };\n return TaskHandler;\n }(TaskHandlerBase_1.TaskHandlerBase));\n exports.TaskHandler = TaskHandler;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = TaskHandler;\n});\n","///\r\n/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {TaskHandlerBase} from \"./TaskHandlerBase\";\r\nimport {ArgumentNullException} from \"../Exceptions/ArgumentNullException\";\r\nimport {Closure} from \"../FunctionTypes\";\r\n\r\nexport class TaskHandler extends TaskHandlerBase {\r\n\t\r\n\tconstructor(private _action:Closure) {\r\n\t\tsuper();\r\n\t\tif(!_action) throw new ArgumentNullException('action');\r\n\t}\r\n\t\r\n\tprotected _onExecute():void\r\n\t{\r\n\t\tthis._action();\r\n\t}\r\n\t\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis._action = null;\r\n\t}\r\n}\r\n\r\nexport default TaskHandler;"]} \ No newline at end of file diff --git a/dist/umd.min/System/Tasks/TaskHandlerBase.d.ts b/dist/umd.min/System/Tasks/TaskHandlerBase.d.ts index c3945286..abb00e37 100644 --- a/dist/umd.min/System/Tasks/TaskHandlerBase.d.ts +++ b/dist/umd.min/System/Tasks/TaskHandlerBase.d.ts @@ -1,10 +1,10 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import DisposableBase from "../Disposable/DisposableBase"; -declare abstract class TaskHandlerBase extends DisposableBase implements ICancellable { +import { DisposableBase } from "../Disposable/DisposableBase"; +import { ICancellable } from "./ICancellable"; +export declare abstract class TaskHandlerBase extends DisposableBase implements ICancellable { constructor(); protected _id: any; isScheduled: boolean; diff --git a/dist/umd.min/System/Tasks/TaskHandlerBase.js b/dist/umd.min/System/Tasks/TaskHandlerBase.js index 3cd6fb5d..d3e23154 100644 --- a/dist/umd.min/System/Tasks/TaskHandlerBase.js +++ b/dist/umd.min/System/Tasks/TaskHandlerBase.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(e,t){function o(){this.constructor=e}for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../Disposable/DisposableBase"],e)}(function(e,t){"use strict";var o=e("../Disposable/DisposableBase"),i=function(e){function t(){e.call(this),this._id=null}return __extends(t,e),Object.defineProperty(t.prototype,"isScheduled",{get:function(){return!!this._id},enumerable:!0,configurable:!0}),t.prototype.execute=function(e){this.cancel(),isNaN(e)||0>e?this._onExecute():isFinite(e)&&(this._id=setTimeout(t._handler,e,this))},t._handler=function(e){e.cancel(),e._onExecute()},t.prototype._onDispose=function(){this.cancel()},t.prototype.cancel=function(){var e=this._id;return e?(clearTimeout(e),this._id=null,!0):!1},t}(o["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=i}); +var __extends=this&&this.__extends||function(e,t){function o(){this.constructor=e}for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../Disposable/DisposableBase"],e)}(function(e,t){"use strict";var o=e("../Disposable/DisposableBase"),i=function(e){function t(){e.call(this),this._id=null}return __extends(t,e),Object.defineProperty(t.prototype,"isScheduled",{get:function(){return!!this._id},enumerable:!0,configurable:!0}),t.prototype.execute=function(e){this.cancel(),isNaN(e)||0>e?this._onExecute():isFinite(e)&&(this._id=setTimeout(t._handler,e,this))},t._handler=function(e){e.cancel(),e._onExecute()},t.prototype._onDispose=function(){this.cancel()},t.prototype.cancel=function(){var e=this._id;return e?(clearTimeout(e),this._id=null,!0):!1},t}(o.DisposableBase);t.TaskHandlerBase=i,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=i}); //# sourceMappingURL=TaskHandlerBase.js.map diff --git a/dist/umd.min/System/Tasks/TaskHandlerBase.js.map b/dist/umd.min/System/Tasks/TaskHandlerBase.js.map index bb8997c5..9c688e49 100644 --- a/dist/umd.min/System/Tasks/TaskHandlerBase.js.map +++ b/dist/umd.min/System/Tasks/TaskHandlerBase.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Tasks/TaskHandlerBase.js","System/Tasks/TaskHandlerBase.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","DisposableBase_1","TaskHandlerBase","_super","call","_id","defineProperty","get","enumerable","configurable","execute","defer","cancel","isNaN","_onExecute","isFinite","setTimeout","_handler","_onDispose","id","clearTimeout","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,gCAAiCN,IAEpE,SAAUI,EAASF,GAClB,YCXJ,IAAAM,GAAAJ,EAA2B,gCAK3BK,EAAA,SAAAC,GAGC,QAAAD,KAECC,EAAAC,KAAArB,MACAA,KAAKsB,IAAM,KAsDb,MA3DQvB,WAAAoB,EAAAC,GAUPZ,OAAAe,eAAIJ,EAAAZ,UAAA,eDIOiB,ICJX,WACC,QAASxB,KAAKsB,KDMJG,YAAY,EACZC,cAAc,ICCzBP,EAAAZ,UAAAoB,QAAA,SAAQC,GAEP5B,KAAK6B,SACFC,MAAMF,IAAgB,EAANA,EAElB5B,KAAK+B,aAEEC,SAASJ,KAEhB5B,KAAKsB,IAAMW,WAAWd,EAAgBe,SAAUN,EAAO5B,QAK1CmB,EAAAe,SAAf,SAAwBjC,GAEvBA,EAAE4B,SACF5B,EAAE8B,cAKOZ,EAAAZ,UAAA4B,WAAV,WAECnC,KAAK6B,UAGNV,EAAAZ,UAAAsB,OAAA,WAEC,GAAIO,GAAKpC,KAAKsB,GACd,OAAGc,IAEFC,aAAaD,GACbpC,KAAKsB,IAAM,MACJ,IAED,GAITH,GA3DQD,EAAAA,WA6DRV,QAAAe,eAAAX,EAAA,cAAA0B,OAAA,IDbI1B,EAAAA,WCaWO","file":"System/Tasks/TaskHandlerBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../Disposable/DisposableBase\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var DisposableBase_1 = require(\"../Disposable/DisposableBase\");\n var TaskHandlerBase = (function (_super) {\n __extends(TaskHandlerBase, _super);\n function TaskHandlerBase() {\n _super.call(this);\n this._id = null;\n }\n Object.defineProperty(TaskHandlerBase.prototype, \"isScheduled\", {\n get: function () {\n return !!this._id;\n },\n enumerable: true,\n configurable: true\n });\n TaskHandlerBase.prototype.execute = function (defer) {\n this.cancel();\n if (isNaN(defer) || defer < 0) {\n this._onExecute();\n }\n else if (isFinite(defer)) {\n this._id = setTimeout(TaskHandlerBase._handler, defer, this);\n }\n };\n TaskHandlerBase._handler = function (d) {\n d.cancel();\n d._onExecute();\n };\n TaskHandlerBase.prototype._onDispose = function () {\n this.cancel();\n };\n TaskHandlerBase.prototype.cancel = function () {\n var id = this._id;\n if (id) {\n clearTimeout(id);\n this._id = null;\n return true;\n }\n return false;\n };\n return TaskHandlerBase;\n }(DisposableBase_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = TaskHandlerBase;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\nimport DisposableBase from \"../Disposable/DisposableBase\";\r\n\r\n/**\r\n * A simple class for handling potentially repeated executions either deferred or immediate.\r\n */\r\nabstract class TaskHandlerBase\r\nextends DisposableBase implements ICancellable\r\n{\r\n\tconstructor()\r\n\t{\r\n\t\tsuper();\r\n\t\tthis._id = null;\r\n\t}\r\n\r\n\tprotected _id:any;\r\n\r\n\tget isScheduled():boolean {\r\n\t\treturn !!this._id;\r\n\t}\r\n\r\n\t/**\r\n\t * Schedules/Reschedules triggering the task.\r\n\t * If defer is omitted it is called synchronously.\r\n\t * @param defer Optional time to wait until triggering.\r\n\t */\r\n\texecute(defer?:number):void\r\n\t{\r\n\t\tthis.cancel();\r\n\t\tif(isNaN(defer) || defer<0)\r\n\t\t{\r\n\t\t\tthis._onExecute();\r\n\t\t}\r\n\t\telse if(isFinite(defer))\r\n\t\t{\r\n\t\t\tthis._id = setTimeout(TaskHandlerBase._handler, defer, this);\r\n\t\t}\r\n\t}\r\n\r\n\t// Use a static function here to avoid recreating a new function every time.\r\n\tprivate static _handler(d:TaskHandlerBase):void\r\n\t{\r\n\t\td.cancel();\r\n\t\td._onExecute();\r\n\t}\r\n\r\n\tprotected abstract _onExecute():void;\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tthis.cancel();\r\n\t}\r\n\r\n\tcancel():boolean\r\n\t{\r\n\t\tvar id = this._id;\r\n\t\tif(id)\r\n\t\t{\r\n\t\t\tclearTimeout(id);\r\n\t\t\tthis._id = null;\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\r\n}\r\n\r\nexport default TaskHandlerBase;"]} \ No newline at end of file +{"version":3,"sources":["System/Tasks/TaskHandlerBase.js","System/Tasks/TaskHandlerBase.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","DisposableBase_1","TaskHandlerBase","_super","call","_id","defineProperty","get","enumerable","configurable","execute","defer","cancel","isNaN","_onExecute","isFinite","setTimeout","_handler","_onDispose","id","clearTimeout","DisposableBase","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,gCAAiCN,IAEpE,SAAUI,EAASF,GAClB,YCZJ,IAAAM,GAAAJ,EAA6B,gCAM7BK,EAAA,SAAAC,GAGC,QAAAD,KAECC,EAAAC,KAAArB,MACAA,KAAKsB,IAAM,KAsDb,MA3DQvB,WAAAoB,EAAAC,GAUPZ,OAAAe,eAAIJ,EAAAZ,UAAA,eDIOiB,ICJX,WACC,QAASxB,KAAKsB,KDMJG,YAAY,EACZC,cAAc,ICCzBP,EAAAZ,UAAAoB,QAAA,SAAQC,GAEP5B,KAAK6B,SACFC,MAAMF,IAAgB,EAANA,EAElB5B,KAAK+B,aAEEC,SAASJ,KAEhB5B,KAAKsB,IAAMW,WAAWd,EAAgBe,SAAUN,EAAO5B,QAK1CmB,EAAAe,SAAf,SAAwBjC,GAEvBA,EAAE4B,SACF5B,EAAE8B,cAKOZ,EAAAZ,UAAA4B,WAAV,WAECnC,KAAK6B,UAGNV,EAAAZ,UAAAsB,OAAA,WAEC,GAAIO,GAAKpC,KAAKsB,GACd,OAAGc,IAEFC,aAAaD,GACbpC,KAAKsB,IAAM,MACJ,IAED,GAITH,GA3DQD,EAAAoB,eADc1B,GAAAO,gBAAeA,EA8DrCX,OAAAe,eAAAX,EAAA,cAAA2B,OAAA,IDZI3B,EAAAA,WCYWO","file":"System/Tasks/TaskHandlerBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../Disposable/DisposableBase\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var DisposableBase_1 = require(\"../Disposable/DisposableBase\");\n var TaskHandlerBase = (function (_super) {\n __extends(TaskHandlerBase, _super);\n function TaskHandlerBase() {\n _super.call(this);\n this._id = null;\n }\n Object.defineProperty(TaskHandlerBase.prototype, \"isScheduled\", {\n get: function () {\n return !!this._id;\n },\n enumerable: true,\n configurable: true\n });\n TaskHandlerBase.prototype.execute = function (defer) {\n this.cancel();\n if (isNaN(defer) || defer < 0) {\n this._onExecute();\n }\n else if (isFinite(defer)) {\n this._id = setTimeout(TaskHandlerBase._handler, defer, this);\n }\n };\n TaskHandlerBase._handler = function (d) {\n d.cancel();\n d._onExecute();\n };\n TaskHandlerBase.prototype._onDispose = function () {\n this.cancel();\n };\n TaskHandlerBase.prototype.cancel = function () {\n var id = this._id;\n if (id) {\n clearTimeout(id);\n this._id = null;\n return true;\n }\n return false;\n };\n return TaskHandlerBase;\n }(DisposableBase_1.DisposableBase));\n exports.TaskHandlerBase = TaskHandlerBase;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = TaskHandlerBase;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {DisposableBase} from \"../Disposable/DisposableBase\";\r\nimport {ICancellable} from \"./ICancellable\";\r\n\r\n/**\r\n * A simple class for handling potentially repeated executions either deferred or immediate.\r\n */\r\nexport abstract class TaskHandlerBase\r\nextends DisposableBase implements ICancellable\r\n{\r\n\tconstructor()\r\n\t{\r\n\t\tsuper();\r\n\t\tthis._id = null;\r\n\t}\r\n\r\n\tprotected _id:any;\r\n\r\n\tget isScheduled():boolean {\r\n\t\treturn !!this._id;\r\n\t}\r\n\r\n\t/**\r\n\t * Schedules/Reschedules triggering the task.\r\n\t * If defer is omitted it is called synchronously.\r\n\t * @param defer Optional time to wait until triggering.\r\n\t */\r\n\texecute(defer?:number):void\r\n\t{\r\n\t\tthis.cancel();\r\n\t\tif(isNaN(defer) || defer<0)\r\n\t\t{\r\n\t\t\tthis._onExecute();\r\n\t\t}\r\n\t\telse if(isFinite(defer))\r\n\t\t{\r\n\t\t\tthis._id = setTimeout(TaskHandlerBase._handler, defer, this);\r\n\t\t}\r\n\t}\r\n\r\n\t// Use a static function here to avoid recreating a new function every time.\r\n\tprivate static _handler(d:TaskHandlerBase):void\r\n\t{\r\n\t\td.cancel();\r\n\t\td._onExecute();\r\n\t}\r\n\r\n\tprotected abstract _onExecute():void;\r\n\r\n\tprotected _onDispose():void\r\n\t{\r\n\t\tthis.cancel();\r\n\t}\r\n\r\n\tcancel():boolean\r\n\t{\r\n\t\tvar id = this._id;\r\n\t\tif(id)\r\n\t\t{\r\n\t\t\tclearTimeout(id);\r\n\t\t\tthis._id = null;\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\r\n}\r\n\r\nexport default TaskHandlerBase;"]} \ No newline at end of file diff --git a/dist/umd.min/System/Tasks/defer.d.ts b/dist/umd.min/System/Tasks/defer.d.ts index 2b37b77f..7552d46b 100644 --- a/dist/umd.min/System/Tasks/defer.d.ts +++ b/dist/umd.min/System/Tasks/defer.d.ts @@ -1,7 +1,8 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { ICancellable } from "./ICancellable"; +import { Closure } from "../FunctionTypes"; export default function defer(task: Closure, delay?: number): ICancellable; export declare function interval(task: Function, interval: number, count?: number): ICancellable; diff --git a/dist/umd.min/System/Tasks/defer.js.map b/dist/umd.min/System/Tasks/defer.js.map index 019c28fe..1779a682 100644 --- a/dist/umd.min/System/Tasks/defer.js.map +++ b/dist/umd.min/System/Tasks/defer.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Tasks/defer.js","System/Tasks/defer.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","defer","task","delay","Defer","interval","count","Infinity","DeferInterval","DeferBase","dispose","cancel","_super","call","_id","setTimeout","handler","id","clearTimeout","_remaining","setInterval","clearInterval","defineProperty","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,WAAYN,IAEpC,SAAUI,EAASF,GAClB,YC0EJ,SAAAM,GACCC,EACAC,GAEA,MAAO,IAAIC,GAAMF,EAAMC,GAGxB,QAAAE,GACCH,EACAG,EACAC,GAEA,MAFA,UAAAA,IAAAA,EAAAC,EAAAA,GAEO,GAAIC,GAAcN,EAAMG,EAAUC,GAhG1C,GAAAG,GAAA,WAAA,QAAAA,MAWA,MAJCA,GAAAnB,UAAAoB,QAAA,WAEC3B,KAAK4B,UAEPF,KAEAL,EAAA,SAAAQ,GAIC,QAAAR,GAAYF,EAAcC,GAEzBS,EAAAC,KAAA9B,MACKoB,GAAO,IAAIA,EAAQ,GACxBpB,KAAK+B,IAAMC,WAAWX,EAAMY,QAASb,EAAOD,EAAMnB,MAsBpD,MA9BoBD,WAAAsB,EAAAQ,GAWnBR,EAAAd,UAAAqB,OAAA,WAEC,GAAIM,GAAKlC,KAAK+B,GACd,OAAGG,IAEFC,aAAaD,GACblC,KAAK+B,IAAM,MACJ,IAED,GAIOV,EAAAY,QAAf,SAAuBd,EAAelB,GAErCA,EAAE2B,SACFT,KAGFE,GA9BoBK,GAgCpBD,EAAA,SAAAI,GAIC,QAAAJ,GACCN,EACAG,EACQc,GAGR,GAHA,SAAAA,IAAAA,EAAAZ,EAAAA,GAEAK,EAAAC,KAAA9B,MAFQA,KAAAoC,WAAAA,EAGM,OAAXd,GAA+B,SAAZA,EACrB,KAAM,oCACP,IAAY,EAATA,EACF,KAAM,gCAEPtB,MAAK+B,IAAMM,YAAYZ,EAAcQ,QAASX,EAAUH,EAAMnB,MAqBhE,MApC4BD,WAAA0B,EAAAI,GAkB3BJ,EAAAlB,UAAAqB,OAAA,WAEC,GAAIM,GAAKlC,KAAK+B,GACd,OAAGG,IAEFI,cAAcJ,GACdlC,KAAK+B,IAAM,MACJ,IAED,GAGON,EAAAQ,QAAf,SAAuBd,EAAelB,KAE9BA,EAAEmC,YAAanC,EAAE2B,SACxBT,KAGFM,GApC4BC,EAuC5BlB,QAAA+B,eAAA3B,EAAA,cAAA4B,OAAA,IDVI5B,EAAAA,WAAkBM,ECiBNN,EAAAU,SAAQA","file":"System/Tasks/defer.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var DeferBase = (function () {\n function DeferBase() {\n }\n DeferBase.prototype.dispose = function () {\n this.cancel();\n };\n return DeferBase;\n }());\n var Defer = (function (_super) {\n __extends(Defer, _super);\n function Defer(task, delay) {\n _super.call(this);\n if (!(delay >= 0))\n delay = 0;\n this._id = setTimeout(Defer.handler, delay, task, this);\n }\n Defer.prototype.cancel = function () {\n var id = this._id;\n if (id) {\n clearTimeout(id);\n this._id = null;\n return true;\n }\n return false;\n };\n Defer.handler = function (task, d) {\n d.cancel();\n task();\n };\n return Defer;\n }(DeferBase));\n var DeferInterval = (function (_super) {\n __extends(DeferInterval, _super);\n function DeferInterval(task, interval, _remaining) {\n if (_remaining === void 0) { _remaining = Infinity; }\n _super.call(this);\n this._remaining = _remaining;\n if (interval === null || interval === void (0))\n throw \"'interval' must be a valid number.\";\n if (interval < 0)\n throw \"'interval' cannot be negative.\";\n this._id = setInterval(DeferInterval.handler, interval, task, this);\n }\n DeferInterval.prototype.cancel = function () {\n var id = this._id;\n if (id) {\n clearInterval(id);\n this._id = null;\n return true;\n }\n return false;\n };\n DeferInterval.handler = function (task, d) {\n if (!(--d._remaining))\n d.cancel();\n task();\n };\n return DeferInterval;\n }(DeferBase));\n function defer(task, delay) {\n return new Defer(task, delay);\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = defer;\n function interval(task, interval, count) {\n if (count === void 0) { count = Infinity; }\n return new DeferInterval(task, interval, count);\n }\n exports.interval = interval;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n\r\nabstract class DeferBase implements ICancellable\r\n{\r\n\t// It may be a Timer in node, should not be restricted to number.\r\n\tprotected _id:any;\r\n\r\n\tabstract cancel():boolean;\r\n\r\n\tdispose():void\r\n\t{\r\n\t\tthis.cancel();\r\n\t}\r\n}\r\n\r\nclass Defer extends DeferBase\r\n{\r\n\r\n\r\n\tconstructor(task:Closure, delay?:number)\r\n\t{\r\n\t\tsuper();\r\n\t\tif(!(delay>=0)) delay = 0;\r\n\t\tthis._id = setTimeout(Defer.handler, delay, task, this);\r\n\t}\r\n\r\n\tcancel():boolean\r\n\t{\r\n\t\tvar id = this._id;\r\n\t\tif(id)\r\n\t\t{\r\n\t\t\tclearTimeout(id);\r\n\t\t\tthis._id = null;\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t// Use a static function here to avoid recreating a new function every time.\r\n\tprivate static handler(task:Function, d:Defer):void\r\n\t{\r\n\t\td.cancel();\r\n\t\ttask();\r\n\t}\r\n\r\n}\r\n\r\nclass DeferInterval extends DeferBase\r\n{\r\n\r\n\r\n\tconstructor(\r\n\t\ttask:Function,\r\n\t\tinterval:number,\r\n\t\tprivate _remaining:number = Infinity)\r\n\t{\r\n\t\tsuper();\r\n\t\tif(interval===null || interval=== void(0))\r\n\t\t\tthrow \"'interval' must be a valid number.\";\r\n\t\tif(interval<0)\r\n\t\t\tthrow \"'interval' cannot be negative.\";\r\n\r\n\t\tthis._id = setInterval(DeferInterval.handler, interval, task, this);\r\n\t}\r\n\r\n\tcancel():boolean\r\n\t{\r\n\t\tvar id = this._id;\r\n\t\tif(id)\r\n\t\t{\r\n\t\t\tclearInterval(id);\r\n\t\t\tthis._id = null;\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tprivate static handler(task:Function, d:DeferInterval):void\r\n\t{\r\n\t\tif(!(--d._remaining)) d.cancel();\r\n\t\ttask();\r\n\t}\r\n\r\n}\r\n\r\n\r\nexport default function defer(\r\n\ttask:Closure,\r\n\tdelay?:number):ICancellable\r\n{\r\n\treturn new Defer(task, delay);\r\n}\r\n\r\nexport function interval(\r\n\ttask:Function,\r\n\tinterval:number,\r\n\tcount:number = Infinity):ICancellable\r\n{\r\n\treturn new DeferInterval(task, interval, count);\r\n}"]} \ No newline at end of file +{"version":3,"sources":["System/Tasks/defer.js","System/Tasks/defer.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","defer","task","delay","Defer","interval","count","Infinity","DeferInterval","DeferBase","dispose","cancel","_super","call","_id","setTimeout","handler","id","clearTimeout","_remaining","setInterval","clearInterval","defineProperty","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,WAAYN,IAEpC,SAAUI,EAASF,GAClB,YC2EJ,SAAAM,GACCC,EACAC,GAEA,MAAO,IAAIC,GAAMF,EAAMC,GAGxB,QAAAE,GACCH,EACAG,EACAC,GAEA,MAFA,UAAAA,IAAAA,EAAAC,EAAAA,GAEO,GAAIC,GAAcN,EAAMG,EAAUC,GAhG1C,GAAAG,GAAA,WAAA,QAAAA,MAWA,MAJCA,GAAAnB,UAAAoB,QAAA,WAEC3B,KAAK4B,UAEPF,KAEAL,EAAA,SAAAQ,GAIC,QAAAR,GAAYF,EAAcC,GAEzBS,EAAAC,KAAA9B,MACKoB,GAAO,IAAIA,EAAQ,GACxBpB,KAAK+B,IAAMC,WAAWX,EAAMY,QAASb,EAAOD,EAAMnB,MAsBpD,MA9BoBD,WAAAsB,EAAAQ,GAWnBR,EAAAd,UAAAqB,OAAA,WAEC,GAAIM,GAAKlC,KAAK+B,GACd,OAAGG,IAEFC,aAAaD,GACblC,KAAK+B,IAAM,MACJ,IAED,GAIOV,EAAAY,QAAf,SAAuBd,EAAelB,GAErCA,EAAE2B,SACFT,KAGFE,GA9BoBK,GAgCpBD,EAAA,SAAAI,GAIC,QAAAJ,GACCN,EACAG,EACQc,GAGR,GAHA,SAAAA,IAAAA,EAAAZ,EAAAA,GAEAK,EAAAC,KAAA9B,MAFQA,KAAAoC,WAAAA,EAGM,OAAXd,GAA+B,SAAZA,EACrB,KAAM,oCACP,IAAY,EAATA,EACF,KAAM,gCAEPtB,MAAK+B,IAAMM,YAAYZ,EAAcQ,QAASX,EAAUH,EAAMnB,MAqBhE,MApC4BD,WAAA0B,EAAAI,GAkB3BJ,EAAAlB,UAAAqB,OAAA,WAEC,GAAIM,GAAKlC,KAAK+B,GACd,OAAGG,IAEFI,cAAcJ,GACdlC,KAAK+B,IAAM,MACJ,IAED,GAGON,EAAAQ,QAAf,SAAuBd,EAAelB,KAE9BA,EAAEmC,YAAanC,EAAE2B,SACxBT,KAGFM,GApC4BC,EAuC5BlB,QAAA+B,eAAA3B,EAAA,cAAA4B,OAAA,IDXI5B,EAAAA,WAAkBM,ECkBNN,EAAAU,SAAQA","file":"System/Tasks/defer.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var DeferBase = (function () {\n function DeferBase() {\n }\n DeferBase.prototype.dispose = function () {\n this.cancel();\n };\n return DeferBase;\n }());\n var Defer = (function (_super) {\n __extends(Defer, _super);\n function Defer(task, delay) {\n _super.call(this);\n if (!(delay >= 0))\n delay = 0;\n this._id = setTimeout(Defer.handler, delay, task, this);\n }\n Defer.prototype.cancel = function () {\n var id = this._id;\n if (id) {\n clearTimeout(id);\n this._id = null;\n return true;\n }\n return false;\n };\n Defer.handler = function (task, d) {\n d.cancel();\n task();\n };\n return Defer;\n }(DeferBase));\n var DeferInterval = (function (_super) {\n __extends(DeferInterval, _super);\n function DeferInterval(task, interval, _remaining) {\n if (_remaining === void 0) { _remaining = Infinity; }\n _super.call(this);\n this._remaining = _remaining;\n if (interval === null || interval === void (0))\n throw \"'interval' must be a valid number.\";\n if (interval < 0)\n throw \"'interval' cannot be negative.\";\n this._id = setInterval(DeferInterval.handler, interval, task, this);\n }\n DeferInterval.prototype.cancel = function () {\n var id = this._id;\n if (id) {\n clearInterval(id);\n this._id = null;\n return true;\n }\n return false;\n };\n DeferInterval.handler = function (task, d) {\n if (!(--d._remaining))\n d.cancel();\n task();\n };\n return DeferInterval;\n }(DeferBase));\n function defer(task, delay) {\n return new Defer(task, delay);\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = defer;\n function interval(task, interval, count) {\n if (count === void 0) { count = Infinity; }\n return new DeferInterval(task, interval, count);\n }\n exports.interval = interval;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {ICancellable} from \"./ICancellable\";\r\nimport {Closure} from \"../FunctionTypes\";\r\nabstract class DeferBase implements ICancellable\r\n{\r\n\t// It may be a Timer in node, should not be restricted to number.\r\n\tprotected _id:any;\r\n\r\n\tabstract cancel():boolean;\r\n\r\n\tdispose():void\r\n\t{\r\n\t\tthis.cancel();\r\n\t}\r\n}\r\n\r\nclass Defer extends DeferBase\r\n{\r\n\r\n\r\n\tconstructor(task:Closure, delay?:number)\r\n\t{\r\n\t\tsuper();\r\n\t\tif(!(delay>=0)) delay = 0;\r\n\t\tthis._id = setTimeout(Defer.handler, delay, task, this);\r\n\t}\r\n\r\n\tcancel():boolean\r\n\t{\r\n\t\tvar id = this._id;\r\n\t\tif(id)\r\n\t\t{\r\n\t\t\tclearTimeout(id);\r\n\t\t\tthis._id = null;\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t// Use a static function here to avoid recreating a new function every time.\r\n\tprivate static handler(task:Function, d:Defer):void\r\n\t{\r\n\t\td.cancel();\r\n\t\ttask();\r\n\t}\r\n\r\n}\r\n\r\nclass DeferInterval extends DeferBase\r\n{\r\n\r\n\r\n\tconstructor(\r\n\t\ttask:Function,\r\n\t\tinterval:number,\r\n\t\tprivate _remaining:number = Infinity)\r\n\t{\r\n\t\tsuper();\r\n\t\tif(interval===null || interval=== void(0))\r\n\t\t\tthrow \"'interval' must be a valid number.\";\r\n\t\tif(interval<0)\r\n\t\t\tthrow \"'interval' cannot be negative.\";\r\n\r\n\t\tthis._id = setInterval(DeferInterval.handler, interval, task, this);\r\n\t}\r\n\r\n\tcancel():boolean\r\n\t{\r\n\t\tvar id = this._id;\r\n\t\tif(id)\r\n\t\t{\r\n\t\t\tclearInterval(id);\r\n\t\t\tthis._id = null;\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tprivate static handler(task:Function, d:DeferInterval):void\r\n\t{\r\n\t\tif(!(--d._remaining)) d.cancel();\r\n\t\ttask();\r\n\t}\r\n\r\n}\r\n\r\n\r\nexport default function defer(\r\n\ttask:Closure,\r\n\tdelay?:number):ICancellable\r\n{\r\n\treturn new Defer(task, delay);\r\n}\r\n\r\nexport function interval(\r\n\ttask:Function,\r\n\tinterval:number,\r\n\tcount:number = Infinity):ICancellable\r\n{\r\n\treturn new DeferInterval(task, interval, count);\r\n}"]} \ No newline at end of file diff --git a/dist/umd.min/System/Tasks/deferImmediate.d.ts b/dist/umd.min/System/Tasks/deferImmediate.d.ts index 9c479d18..7181db61 100644 --- a/dist/umd.min/System/Tasks/deferImmediate.d.ts +++ b/dist/umd.min/System/Tasks/deferImmediate.d.ts @@ -1,8 +1,9 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based on code from: https://github.com/kriskowal/q */ +import { Closure } from "../FunctionTypes"; +import { ICancellable } from "./ICancellable"; export default function deferImmediate(task: Closure): ICancellable; export declare function runAfterDeferred(task: Closure): void; diff --git a/dist/umd.min/System/Tasks/deferImmediate.js b/dist/umd.min/System/Tasks/deferImmediate.js index 167bcafa..138390dd 100644 --- a/dist/umd.min/System/Tasks/deferImmediate.js +++ b/dist/umd.min/System/Tasks/deferImmediate.js @@ -3,5 +3,5 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based on code from: https://github.com/kriskowal/q */ -!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../Types","../Collections/LinkedNodeList","../Collections/Queue"],e)}(function(e,t){"use strict";function o(){for(var e;e=p.first;){var t=e.task,o=e.domain;p.removeNode(e),o&&o.enter(),n(t,o)}for(var i;i=m.dequeue();)n(i);l=!1}function n(e,t){try{e()}catch(n){if(a)throw t&&t.exit(),setTimeout(o,0),t&&t.enter(),n;setTimeout(function(){throw n},0)}t&&t.exit()}function i(){l||(l=!0,u())}function s(e){var t=this,o={task:e,domain:a&&process.domain};return p.addNode(o),i(),{cancel:function(){return!!p.removeNode(o)},dispose:function(){t.cancel()}}}function r(e){m.enqueue(e),i()}var u,f=e("../Types"),c=e("../Collections/LinkedNodeList"),d=e("../Collections/Queue"),a=!1,l=!1,p=new c["default"],m=new d["default"];if(Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=s,t.runAfterDeferred=r,f["default"].isObject(process)&&"[object process]"===process.toString()&&process.nextTick)a=!0,u=function(){process.nextTick(o)};else if("function"==typeof setImmediate)u="undefined"!=typeof window?setImmediate.bind(window,o):function(){setImmediate(o)};else if("undefined"!=typeof MessageChannel){var v=new MessageChannel;v.port1.onmessage=function(){u=y,v.port1.onmessage=o,o()};var y=function(){v.port2.postMessage(0)};u=function(){setTimeout(o,0),y()}}else u=function(){setTimeout(o,0)}}); +!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../Types","../Collections/LinkedNodeList","../Collections/Queue"],e)}(function(e,t){"use strict";function o(){for(var e;e=l.first;){var t=e.task,o=e.domain;l.removeNode(e),o&&o.enter(),n(t,o)}for(var i;i=m.dequeue();)n(i);p=!1}function n(e,t){try{e()}catch(n){if(a)throw t&&t.exit(),setTimeout(o,0),t&&t.enter(),n;setTimeout(function(){throw n},0)}t&&t.exit()}function i(){p||(p=!0,u())}function s(e){var t=this,o={task:e,domain:a&&process.domain};return l.addNode(o),i(),{cancel:function(){return!!l.removeNode(o)},dispose:function(){t.cancel()}}}function r(e){m.enqueue(e),i()}var u,c=e("../Types"),f=e("../Collections/LinkedNodeList"),d=e("../Collections/Queue"),a=!1,p=!1,l=new f.LinkedNodeList,m=new d.Queue;if(Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=s,t.runAfterDeferred=r,c.Type.isObject(process)&&"[object process]"===process.toString()&&process.nextTick)a=!0,u=function(){process.nextTick(o)};else if("function"==typeof setImmediate)u="undefined"!=typeof window?setImmediate.bind(window,o):function(){setImmediate(o)};else if("undefined"!=typeof MessageChannel){var v=new MessageChannel;v.port1.onmessage=function(){u=y,v.port1.onmessage=o,o()};var y=function(){v.port2.postMessage(0)};u=function(){setTimeout(o,0),y()}}else u=function(){setTimeout(o,0)}}); //# sourceMappingURL=deferImmediate.js.map diff --git a/dist/umd.min/System/Tasks/deferImmediate.js.map b/dist/umd.min/System/Tasks/deferImmediate.js.map index c403bf60..5734715e 100644 --- a/dist/umd.min/System/Tasks/deferImmediate.js.map +++ b/dist/umd.min/System/Tasks/deferImmediate.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Tasks/deferImmediate.js","System/Tasks/deferImmediate.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","flush","entry","immediateQueue","first","task_1","task","domain","removeNode","enter","runSingle","laterQueue","dequeue","flushing","e","isNodeJS","exit","setTimeout","requestFlush","requestTick","deferImmediate","_this","this","process","addNode","cancel","dispose","runAfterDeferred","enqueue","Types_1","LinkedNodeList_1","Queue_1","Object","defineProperty","value","isObject","toString","nextTick","setImmediate","window","bind","MessageChannel","channel","port1","onmessage","requestPortTick","port2","postMessage"],"mappings":";;;;;CAKA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,WAAY,gCAAiC,wBAAyBN,IAEzG,SAAUI,EAASF,GAClB,YC4BJ,SAAAM,KAIC,IADA,GAAIC,GACEA,EAAQC,EAAeC,OAC7B,CACM,GAAAC,GAAAH,EAAAI,KAAMC,EAAAL,EAAAK,MACXJ,GAAeK,WAAWN,GACvBK,GAAQA,EAAOE,QAClBC,EAAUL,EAAME,GAIjB,IADA,GAAID,GACEA,EAAOK,EAAWC,WAEvBF,EAAUJ,EAGXO,IAAW,EAUZ,QAAAH,GAAmBJ,EAAcC,GAEhC,IAECD,IAGD,MAAMQ,GAEL,GAAGC,EAkBF,KAVGR,IAEFA,EAAOS,OAERC,WAAWhB,EAAO,GACfM,GAEFA,EAAOE,QAGFK,CAONG,YAAW,WAEV,KAAMH,IACJ,GAIFP,GAEFA,EAAOS,OAIT,QAAAE,KAEKL,IAEHA,GAAW,EACXM,KAIF,QAAAC,GAAuCd,GAAvC,GAAAe,GAAAC,KAEKpB,GACHI,KAAMA,EACNC,OAAQQ,GAAkBQ,QAAiB,OAO5C,OAJApB,GAAeqB,QAAQtB,GAEvBgB,KAGCO,OAAO,WAAI,QAAEtB,EAAeK,WAAWN,IACvCwB,QAAQ,WAAML,EAAKI,WAQrB,QAAAE,GAAiCrB,GAEhCK,EAAWiB,QAAQtB,GACnBY,IA9ID,GA0BIC,GA1BJU,EAAAhC,EAAiB,YACjBiC,EAAAjC,EAA2B,iCAC3BkC,EAAAlC,EAAkB,wBAyBdkB,GAAmB,EACnBF,GAAmB,EA6BnBV,EAAiB,GAAI2B,GAAAA,WAGrBnB,EAA4B,GAAIoB,GAAAA,UAsFpC,IA5BAC,OAAAC,eAAAtC,EAAA,cAAAuC,OAAA,ID1CIvC,EAAAA,WAAkByB,EC+DNzB,EAAAgC,iBAAgBA,EAO7BE,EAAAA,WAAKM,SAASZ,UACQ,qBAArBA,QAAQa,YACRb,QAAQc,SAYXtB,GAAW,EAEXI,EAAc,WAEbI,QAAQc,SAASpC,QAId,IAAyB,kBAAfqC,cAKbnB,EAFkB,mBAAToB,QAEKD,aAAaE,KAAKD,OAAQtC,GAI1B,WAEbqC,aAAarC,QAKX,IAA2B,mBAAjBwC,gBACf,CAGC,GAAIC,GAAU,GAAID,eAGlBC,GAAQC,MAAMC,UAAY,WAEzBzB,EAAc0B,EACdH,EAAQC,MAAMC,UAAY3C,EAC1BA,IAED,IAAI4C,GAAkB,WAIrBH,EAAQI,MAAMC,YAAY,GAE3B5B,GAAc,WAEbF,WAAWhB,EAAO,GAClB4C,SAOD1B,GAAc,WAEbF,WAAWhB,EAAO","file":"System/Tasks/deferImmediate.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based on code from: https://github.com/kriskowal/q\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../Types\", \"../Collections/LinkedNodeList\", \"../Collections/Queue\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var Types_1 = require(\"../Types\");\n var LinkedNodeList_1 = require(\"../Collections/LinkedNodeList\");\n var Queue_1 = require(\"../Collections/Queue\");\n \"use strict\";\n var requestTick;\n var isNodeJS = false;\n var flushing = false;\n function flush() {\n var entry;\n while (entry = immediateQueue.first) {\n var task_1 = entry.task, domain = entry.domain;\n immediateQueue.removeNode(entry);\n if (domain)\n domain.enter();\n runSingle(task_1, domain);\n }\n var task;\n while (task = laterQueue.dequeue()) {\n runSingle(task);\n }\n flushing = false;\n }\n var immediateQueue = new LinkedNodeList_1.default();\n var laterQueue = new Queue_1.default();\n function runSingle(task, domain) {\n try {\n task();\n }\n catch (e) {\n if (isNodeJS) {\n if (domain) {\n domain.exit();\n }\n setTimeout(flush, 0);\n if (domain) {\n domain.enter();\n }\n throw e;\n }\n else {\n setTimeout(function () {\n throw e;\n }, 0);\n }\n }\n if (domain) {\n domain.exit();\n }\n }\n function requestFlush() {\n if (!flushing) {\n flushing = true;\n requestTick();\n }\n }\n function deferImmediate(task) {\n var _this = this;\n var entry = {\n task: task,\n domain: isNodeJS && process['domain']\n };\n immediateQueue.addNode(entry);\n requestFlush();\n return {\n cancel: function () { return !!immediateQueue.removeNode(entry); },\n dispose: function () { _this.cancel(); }\n };\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = deferImmediate;\n function runAfterDeferred(task) {\n laterQueue.enqueue(task);\n requestFlush();\n }\n exports.runAfterDeferred = runAfterDeferred;\n if (Types_1.default.isObject(process)\n && process.toString() === \"[object process]\"\n && process.nextTick) {\n isNodeJS = true;\n requestTick = function () {\n process.nextTick(flush);\n };\n }\n else if (typeof setImmediate === \"function\") {\n if (typeof window !== \"undefined\") {\n requestTick = setImmediate.bind(window, flush);\n }\n else {\n requestTick = function () {\n setImmediate(flush);\n };\n }\n }\n else if (typeof MessageChannel !== \"undefined\") {\n var channel = new MessageChannel();\n channel.port1.onmessage = function () {\n requestTick = requestPortTick;\n channel.port1.onmessage = flush;\n flush();\n };\n var requestPortTick = function () {\n channel.port2.postMessage(0);\n };\n requestTick = function () {\n setTimeout(flush, 0);\n requestPortTick();\n };\n }\n else {\n requestTick = function () {\n setTimeout(flush, 0);\n };\n }\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based on code from: https://github.com/kriskowal/q\r\n */\r\n\r\n///\r\nimport Type from \"../Types\";\r\nimport LinkedNodeList from \"../Collections/LinkedNodeList\";\r\nimport Queue from \"../Collections/Queue\";\r\n\r\ndeclare module process\r\n{\r\n\texport function nextTick(callback:Closure):void;\r\n\r\n\texport function toString():string;\r\n}\r\n\r\ninterface IDomain\r\n{\r\n\tenter():void;\r\n\texit():void;\r\n}\r\n\r\ninterface ITaskQueueEntry extends ILinkedNode\r\n{\r\n\ttask:Closure;\r\n\tdomain?:IDomain;\r\n}\r\n\r\n\r\n\"use strict\";\r\n\r\nvar requestTick:()=>void;\r\nvar isNodeJS:boolean = false;\r\nvar flushing:boolean = false;\r\n\r\n// Use the fastest possible means to execute a task in a future turn\r\n// of the event loop.\r\n\r\n\r\nfunction flush():void\r\n{\r\n\t/* jshint loopfunc: true */\r\n\tvar entry:ITaskQueueEntry;\r\n\twhile(entry = immediateQueue.first)\r\n\t{\r\n\t\tlet {task, domain} = entry;\r\n\t\timmediateQueue.removeNode(entry);\r\n\t\tif(domain) domain.enter();\r\n\t\trunSingle(task, domain);\r\n\t}\r\n\r\n\tlet task:Closure;\r\n\twhile(task = laterQueue.dequeue())\r\n\t{\r\n\t\trunSingle(task);\r\n\t}\r\n\r\n\tflushing = false;\r\n}\r\n\r\n\r\n// linked list of tasks. Using a real linked list to allow for removal.\r\nvar immediateQueue = new LinkedNodeList();\r\n\r\n// queue for late tasks, used by unhandled rejection tracking\r\nvar laterQueue:Queue = new Queue();\r\n\r\nfunction runSingle(task:Closure, domain?:IDomain):void\r\n{\r\n\ttry\r\n\t{\r\n\t\ttask();\r\n\r\n\t}\r\n\tcatch(e)\r\n\t{\r\n\t\tif(isNodeJS)\r\n\t\t{\r\n\t\t\t// In node, uncaught exceptions are considered fatal errors.\r\n\t\t\t// Re-throw them synchronously to interrupt flushing!\r\n\r\n\t\t\t// Ensure continuation if the uncaught exception is suppressed\r\n\t\t\t// listening \"uncaughtException\" events (as domains does).\r\n\t\t\t// Continue in next event to avoid tick recursion.\r\n\t\t\tif(domain)\r\n\t\t\t{\r\n\t\t\t\tdomain.exit();\r\n\t\t\t}\r\n\t\t\tsetTimeout(flush, 0);\r\n\t\t\tif(domain)\r\n\t\t\t{\r\n\t\t\t\tdomain.enter();\r\n\t\t\t}\r\n\r\n\t\t\tthrow e;\r\n\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t// In browsers, uncaught exceptions are not fatal.\r\n\t\t\t// Re-throw them asynchronously to avoid slow-downs.\r\n\t\t\tsetTimeout(()=>\r\n\t\t\t{\r\n\t\t\t\tthrow e;\r\n\t\t\t}, 0);\r\n\t\t}\r\n\t}\r\n\r\n\tif(domain)\r\n\t{\r\n\t\tdomain.exit();\r\n\t}\r\n}\r\n\r\nfunction requestFlush():void\r\n{\r\n\tif(!flushing)\r\n\t{\r\n\t\tflushing = true;\r\n\t\trequestTick();\r\n\t}\r\n}\r\n\r\nexport default function deferImmediate(task:Closure):ICancellable\r\n{\r\n\tvar entry:ITaskQueueEntry = {\r\n\t\ttask: task,\r\n\t\tdomain: isNodeJS && (process)['domain']\r\n\t};\r\n\r\n\timmediateQueue.addNode(entry);\r\n\r\n\trequestFlush();\r\n\r\n\treturn {\r\n\t\tcancel:()=>!!immediateQueue.removeNode(entry),\r\n\t\tdispose:()=>{ this.cancel(); }\r\n\t}\r\n}\r\n\r\n\r\n// runs a task after all other tasks have been run\r\n// this is useful for unhandled rejection tracking that needs to happen\r\n// after all `then`d tasks have been run.\r\nexport function runAfterDeferred(task:Closure):void\r\n{\r\n\tlaterQueue.enqueue(task);\r\n\trequestFlush();\r\n}\r\n\r\n\r\nif(Type.isObject(process)\r\n\t&& process.toString()===\"[object process]\"\r\n\t&& process.nextTick)\r\n{\r\n\t/*\r\n\tEnsure is in a real Node environment, with a `process.nextTick`.\r\n\tTo see through fake Node environments:\r\n\t* Mocha test runner - exposes a `process` global without a `nextTick`\r\n\t* Browserify - exposes a `process.nexTick` function that uses\r\n\t `setTimeout`. In this case `setImmediate` is preferred because\r\n\t it is faster. Browserify's `process.toString()` yields\r\n\t \"[object Object]\", while in a real Node environment\r\n\t `process.nextTick()` yields \"[object process]\".\r\n\t*/\r\n\tisNodeJS = true;\r\n\r\n\trequestTick = ()=>\r\n\t{\r\n\t\tprocess.nextTick(flush);\r\n\t};\r\n\r\n}\r\nelse if(typeof setImmediate===\"function\")\r\n{\r\n\t// In IE10, Node.js 0.9+, or https://github.com/NobleJS/setImmediate\r\n\tif(typeof window!==\"undefined\")\r\n\t{\r\n\t\trequestTick = setImmediate.bind(window, flush);\r\n\t}\r\n\telse\r\n\t{\r\n\t\trequestTick = ()=>\r\n\t\t{\r\n\t\t\tsetImmediate(flush);\r\n\t\t};\r\n\t}\r\n\r\n}\r\nelse if(typeof MessageChannel!==\"undefined\")\r\n{\r\n\t// modern browsers\r\n\t// http://www.nonblocking.io/2011/06/windownexttick.html\r\n\tvar channel = new MessageChannel();\r\n\t// At least Safari Version 6.0.5 (8536.30.1) intermittently cannot create\r\n\t// working message ports the first time a page loads.\r\n\tchannel.port1.onmessage = function()\r\n\t{\r\n\t\trequestTick = requestPortTick;\r\n\t\tchannel.port1.onmessage = flush;\r\n\t\tflush();\r\n\t};\r\n\tvar requestPortTick = ()=>\r\n\t{\r\n\t\t// Opera requires us to provide a message payload, regardless of\r\n\t\t// whether we use it.\r\n\t\tchannel.port2.postMessage(0);\r\n\t};\r\n\trequestTick = ()=>\r\n\t{\r\n\t\tsetTimeout(flush, 0);\r\n\t\trequestPortTick();\r\n\t};\r\n\r\n}\r\nelse\r\n{\r\n\t// old browsers\r\n\trequestTick = ()=>\r\n\t{\r\n\t\tsetTimeout(flush, 0);\r\n\t};\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Tasks/deferImmediate.js","System/Tasks/deferImmediate.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","flush","entry","immediateQueue","first","task_1","task","domain","removeNode","enter","runSingle","laterQueue","dequeue","flushing","e","isNodeJS","exit","setTimeout","requestFlush","requestTick","deferImmediate","_this","this","process","addNode","cancel","dispose","runAfterDeferred","enqueue","Types_1","LinkedNodeList_1","Queue_1","LinkedNodeList","Queue","Object","defineProperty","value","Type","isObject","toString","nextTick","setImmediate","window","bind","MessageChannel","channel","port1","onmessage","requestPortTick","port2","postMessage"],"mappings":";;;;;CAKA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,WAAY,gCAAiC,wBAAyBN,IAEzG,SAAUI,EAASF,GAClB,YC6BJ,SAAAM,KAIC,IADA,GAAIC,GACEA,EAAQC,EAAeC,OAC7B,CACM,GAAAC,GAAAH,EAAAI,KAAMC,EAAAL,EAAAK,MACXJ,GAAeK,WAAWN,GACvBK,GAAQA,EAAOE,QAClBC,EAAUL,EAAME,GAIjB,IADA,GAAID,GACEA,EAAOK,EAAWC,WAEvBF,EAAUJ,EAGXO,IAAW,EAUZ,QAAAH,GAAmBJ,EAAcC,GAEhC,IAECD,IAGD,MAAMQ,GAEL,GAAGC,EAkBF,KAVGR,IAEFA,EAAOS,OAERC,WAAWhB,EAAO,GACfM,GAEFA,EAAOE,QAGFK,CAONG,YAAW,WAEV,KAAMH,IACJ,GAIFP,GAEFA,EAAOS,OAIT,QAAAE,KAEKL,IAEHA,GAAW,EACXM,KAIF,QAAAC,GAAuCd,GAAvC,GAAAe,GAAAC,KAEKpB,GACHI,KAAMA,EACNC,OAAQQ,GAAkBQ,QAAiB,OAO5C,OAJApB,GAAeqB,QAAQtB,GAEvBgB,KAGCO,OAAQ,WAAI,QAAEtB,EAAeK,WAAWN,IACxCwB,QAAS,WAAOL,EAAKI,WAQvB,QAAAE,GAAiCrB,GAEhCK,EAAWiB,QAAQtB,GACnBY,IA/ID,GA2BIC,GA3BJU,EAAAhC,EAAmB,YACnBiC,EAAAjC,EAA6B,iCAC7BkC,EAAAlC,EAAoB,wBA0BhBkB,GAAmB,EACnBF,GAAmB,EA6BnBV,EAAiB,GAAI2B,GAAAE,eAGrBrB,EAA4B,GAAIoB,GAAAE,KAsFpC,IA5BAC,OAAAC,eAAAxC,EAAA,cAAAyC,OAAA,ID5CIzC,EAAAA,WAAkByB,ECiENzB,EAAAgC,iBAAgBA,EAO7BE,EAAAQ,KAAKC,SAASf,UACQ,qBAArBA,QAAQgB,YACRhB,QAAQiB,SAYXzB,GAAW,EAEXI,EAAc,WAEbI,QAAQiB,SAASvC,QAId,IAAyB,kBAAfwC,cAKbtB,EAFkB,mBAATuB,QAEKD,aAAaE,KAAKD,OAAQzC,GAI1B,WAEbwC,aAAaxC,QAKX,IAA2B,mBAAjB2C,gBACf,CAGC,GAAIC,GAAU,GAAID,eAGlBC,GAAQC,MAAMC,UAAY,WAEzB5B,EAAc6B,EACdH,EAAQC,MAAMC,UAAY9C,EAC1BA,IAED,IAAI+C,GAAkB,WAIrBH,EAAQI,MAAMC,YAAY,GAE3B/B,GAAc,WAEbF,WAAWhB,EAAO,GAClB+C,SAOD7B,GAAc,WAEbF,WAAWhB,EAAO","file":"System/Tasks/deferImmediate.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based on code from: https://github.com/kriskowal/q\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../Types\", \"../Collections/LinkedNodeList\", \"../Collections/Queue\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var Types_1 = require(\"../Types\");\n var LinkedNodeList_1 = require(\"../Collections/LinkedNodeList\");\n var Queue_1 = require(\"../Collections/Queue\");\n var requestTick;\n var isNodeJS = false;\n var flushing = false;\n function flush() {\n var entry;\n while (entry = immediateQueue.first) {\n var task_1 = entry.task, domain = entry.domain;\n immediateQueue.removeNode(entry);\n if (domain)\n domain.enter();\n runSingle(task_1, domain);\n }\n var task;\n while (task = laterQueue.dequeue()) {\n runSingle(task);\n }\n flushing = false;\n }\n var immediateQueue = new LinkedNodeList_1.LinkedNodeList();\n var laterQueue = new Queue_1.Queue();\n function runSingle(task, domain) {\n try {\n task();\n }\n catch (e) {\n if (isNodeJS) {\n if (domain) {\n domain.exit();\n }\n setTimeout(flush, 0);\n if (domain) {\n domain.enter();\n }\n throw e;\n }\n else {\n setTimeout(function () {\n throw e;\n }, 0);\n }\n }\n if (domain) {\n domain.exit();\n }\n }\n function requestFlush() {\n if (!flushing) {\n flushing = true;\n requestTick();\n }\n }\n function deferImmediate(task) {\n var _this = this;\n var entry = {\n task: task,\n domain: isNodeJS && process['domain']\n };\n immediateQueue.addNode(entry);\n requestFlush();\n return {\n cancel: function () { return !!immediateQueue.removeNode(entry); },\n dispose: function () { _this.cancel(); }\n };\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = deferImmediate;\n function runAfterDeferred(task) {\n laterQueue.enqueue(task);\n requestFlush();\n }\n exports.runAfterDeferred = runAfterDeferred;\n if (Types_1.Type.isObject(process)\n && process.toString() === \"[object process]\"\n && process.nextTick) {\n isNodeJS = true;\n requestTick = function () {\n process.nextTick(flush);\n };\n }\n else if (typeof setImmediate === \"function\") {\n if (typeof window !== \"undefined\") {\n requestTick = setImmediate.bind(window, flush);\n }\n else {\n requestTick = function () {\n setImmediate(flush);\n };\n }\n }\n else if (typeof MessageChannel !== \"undefined\") {\n var channel = new MessageChannel();\n channel.port1.onmessage = function () {\n requestTick = requestPortTick;\n channel.port1.onmessage = flush;\n flush();\n };\n var requestPortTick = function () {\n channel.port2.postMessage(0);\n };\n requestTick = function () {\n setTimeout(flush, 0);\n requestPortTick();\n };\n }\n else {\n requestTick = function () {\n setTimeout(flush, 0);\n };\n }\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based on code from: https://github.com/kriskowal/q\r\n */\r\n\r\n\r\nimport {Type} from \"../Types\";\r\nimport {LinkedNodeList} from \"../Collections/LinkedNodeList\";\r\nimport {Queue} from \"../Collections/Queue\";\r\nimport {Closure} from \"../FunctionTypes\";\r\nimport {ILinkedNode} from \"../Collections/ILinkedListNode\";\r\nimport {ICancellable} from \"./ICancellable\";\r\n\r\ndeclare module process\r\n{\r\n\texport function nextTick(callback:Closure):void;\r\n\r\n\texport function toString():string;\r\n}\r\n\r\ninterface IDomain\r\n{\r\n\tenter():void;\r\n\texit():void;\r\n}\r\n\r\ninterface ITaskQueueEntry extends ILinkedNode\r\n{\r\n\ttask:Closure;\r\n\tdomain?:IDomain;\r\n}\r\n\r\n\r\nvar requestTick:()=>void;\r\nvar isNodeJS:boolean = false;\r\nvar flushing:boolean = false;\r\n\r\n// Use the fastest possible means to execute a task in a future turn\r\n// of the event loop.\r\n\r\n\r\nfunction flush():void\r\n{\r\n\t/* jshint loopfunc: true */\r\n\tvar entry:ITaskQueueEntry;\r\n\twhile(entry = immediateQueue.first)\r\n\t{\r\n\t\tlet {task, domain} = entry;\r\n\t\timmediateQueue.removeNode(entry);\r\n\t\tif(domain) domain.enter();\r\n\t\trunSingle(task, domain);\r\n\t}\r\n\r\n\tlet task:Closure;\r\n\twhile(task = laterQueue.dequeue())\r\n\t{\r\n\t\trunSingle(task);\r\n\t}\r\n\r\n\tflushing = false;\r\n}\r\n\r\n\r\n// linked list of tasks. Using a real linked list to allow for removal.\r\nvar immediateQueue = new LinkedNodeList();\r\n\r\n// queue for late tasks, used by unhandled rejection tracking\r\nvar laterQueue:Queue = new Queue();\r\n\r\nfunction runSingle(task:Closure, domain?:IDomain):void\r\n{\r\n\ttry\r\n\t{\r\n\t\ttask();\r\n\r\n\t}\r\n\tcatch(e)\r\n\t{\r\n\t\tif(isNodeJS)\r\n\t\t{\r\n\t\t\t// In node, uncaught exceptions are considered fatal errors.\r\n\t\t\t// Re-throw them synchronously to interrupt flushing!\r\n\r\n\t\t\t// Ensure continuation if the uncaught exception is suppressed\r\n\t\t\t// listening \"uncaughtException\" events (as domains does).\r\n\t\t\t// Continue in next event to avoid tick recursion.\r\n\t\t\tif(domain)\r\n\t\t\t{\r\n\t\t\t\tdomain.exit();\r\n\t\t\t}\r\n\t\t\tsetTimeout(flush, 0);\r\n\t\t\tif(domain)\r\n\t\t\t{\r\n\t\t\t\tdomain.enter();\r\n\t\t\t}\r\n\r\n\t\t\tthrow e;\r\n\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t// In browsers, uncaught exceptions are not fatal.\r\n\t\t\t// Re-throw them asynchronously to avoid slow-downs.\r\n\t\t\tsetTimeout(()=>\r\n\t\t\t{\r\n\t\t\t\tthrow e;\r\n\t\t\t}, 0);\r\n\t\t}\r\n\t}\r\n\r\n\tif(domain)\r\n\t{\r\n\t\tdomain.exit();\r\n\t}\r\n}\r\n\r\nfunction requestFlush():void\r\n{\r\n\tif(!flushing)\r\n\t{\r\n\t\tflushing = true;\r\n\t\trequestTick();\r\n\t}\r\n}\r\n\r\nexport default function deferImmediate(task:Closure):ICancellable\r\n{\r\n\tvar entry:ITaskQueueEntry = {\r\n\t\ttask: task,\r\n\t\tdomain: isNodeJS && (process)['domain']\r\n\t};\r\n\r\n\timmediateQueue.addNode(entry);\r\n\r\n\trequestFlush();\r\n\r\n\treturn {\r\n\t\tcancel: ()=>!!immediateQueue.removeNode(entry),\r\n\t\tdispose: ()=> { this.cancel(); }\r\n\t}\r\n}\r\n\r\n\r\n// runs a task after all other tasks have been run\r\n// this is useful for unhandled rejection tracking that needs to happen\r\n// after all `then`d tasks have been run.\r\nexport function runAfterDeferred(task:Closure):void\r\n{\r\n\tlaterQueue.enqueue(task);\r\n\trequestFlush();\r\n}\r\n\r\n\r\nif(Type.isObject(process)\r\n\t&& process.toString()===\"[object process]\"\r\n\t&& process.nextTick)\r\n{\r\n\t/*\r\n\tEnsure is in a real Node environment, with a `process.nextTick`.\r\n\tTo see through fake Node environments:\r\n\t* Mocha test runner - exposes a `process` global without a `nextTick`\r\n\t* Browserify - exposes a `process.nexTick` function that uses\r\n\t `setTimeout`. In this case `setImmediate` is preferred because\r\n\t it is faster. Browserify's `process.toString()` yields\r\n\t \"[object Object]\", while in a real Node environment\r\n\t `process.nextTick()` yields \"[object process]\".\r\n\t*/\r\n\tisNodeJS = true;\r\n\r\n\trequestTick = ()=>\r\n\t{\r\n\t\tprocess.nextTick(flush);\r\n\t};\r\n\r\n}\r\nelse if(typeof setImmediate===\"function\")\r\n{\r\n\t// In IE10, Node.js 0.9+, or https://github.com/NobleJS/setImmediate\r\n\tif(typeof window!==\"undefined\")\r\n\t{\r\n\t\trequestTick = setImmediate.bind(window, flush);\r\n\t}\r\n\telse\r\n\t{\r\n\t\trequestTick = ()=>\r\n\t\t{\r\n\t\t\tsetImmediate(flush);\r\n\t\t};\r\n\t}\r\n\r\n}\r\nelse if(typeof MessageChannel!==\"undefined\")\r\n{\r\n\t// modern browsers\r\n\t// http://www.nonblocking.io/2011/06/windownexttick.html\r\n\tvar channel = new MessageChannel();\r\n\t// At least Safari Version 6.0.5 (8536.30.1) intermittently cannot create\r\n\t// working message ports the first time a page loads.\r\n\tchannel.port1.onmessage = function()\r\n\t{\r\n\t\trequestTick = requestPortTick;\r\n\t\tchannel.port1.onmessage = flush;\r\n\t\tflush();\r\n\t};\r\n\tvar requestPortTick = ()=>\r\n\t{\r\n\t\t// Opera requires us to provide a message payload, regardless of\r\n\t\t// whether we use it.\r\n\t\tchannel.port2.postMessage(0);\r\n\t};\r\n\trequestTick = ()=>\r\n\t{\r\n\t\tsetTimeout(flush, 0);\r\n\t\trequestPortTick();\r\n\t};\r\n\r\n}\r\nelse\r\n{\r\n\t// old browsers\r\n\trequestTick = ()=>\r\n\t{\r\n\t\tsetTimeout(flush, 0);\r\n\t};\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Text/RegexMatchEnumerator.d.ts b/dist/umd.min/System/Text/RegexMatchEnumerator.d.ts index 90c0d0d9..70eb1c89 100644 --- a/dist/umd.min/System/Text/RegexMatchEnumerator.d.ts +++ b/dist/umd.min/System/Text/RegexMatchEnumerator.d.ts @@ -1,9 +1,9 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ import { Regex, Match } from "./RegularExpressions"; +import { IEnumerator } from "../Collections/Enumeration/IEnumerator"; export declare class RegexMatchEnumerator { private _pattern; constructor(pattern: string | RegExp | Regex); diff --git a/dist/umd.min/System/Text/RegexMatchEnumerator.js b/dist/umd.min/System/Text/RegexMatchEnumerator.js index 5ee4426f..7b33aa1a 100644 --- a/dist/umd.min/System/Text/RegexMatchEnumerator.js +++ b/dist/umd.min/System/Text/RegexMatchEnumerator.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","./RegularExpressions","../Collections/Enumeration/Enumerator","../Collections/Enumeration/EnumeratorBase"],e)}(function(e,t){"use strict";var n=e("./RegularExpressions"),r=e("../Collections/Enumeration/Enumerator"),o=e("../Collections/Enumeration/EnumeratorBase"),u=function(){function e(e){e instanceof n.Regex?this._pattern=e:this._pattern=new n.Regex(e)}return e.prototype.matches=function(e){var t,n=this;return new o["default"](function(){t=0},function(r){var o=n._pattern.match(e,t);return o.success?(t=o.index+o.length,r.yieldReturn(o)):r.yieldBreak()})},e.matches=function(t,n){return t&&n?new e(n).matches(t):r.empty},e}();t.RegexMatchEnumerator=u,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=u.matches}); +!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","./RegularExpressions","../Collections/Enumeration/Enumerator","../Collections/Enumeration/EnumeratorBase"],e)}(function(e,t){"use strict";var n=e("./RegularExpressions"),r=e("../Collections/Enumeration/Enumerator"),o=e("../Collections/Enumeration/EnumeratorBase"),u=function(){function e(e){e instanceof n.Regex?this._pattern=e:this._pattern=new n.Regex(e)}return e.prototype.matches=function(e){var t,n=this;return new o.EnumeratorBase(function(){t=0},function(r){var o=n._pattern.match(e,t);return o.success?(t=o.index+o.length,r.yieldReturn(o)):r.yieldBreak()})},e.matches=function(t,n){return t&&n?new e(n).matches(t):r.empty},e}();t.RegexMatchEnumerator=u,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=u.matches}); //# sourceMappingURL=RegexMatchEnumerator.js.map diff --git a/dist/umd.min/System/Text/RegexMatchEnumerator.js.map b/dist/umd.min/System/Text/RegexMatchEnumerator.js.map index 6fd29312..93b376b7 100644 --- a/dist/umd.min/System/Text/RegexMatchEnumerator.js.map +++ b/dist/umd.min/System/Text/RegexMatchEnumerator.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Text/RegexMatchEnumerator.js","System/Text/RegexMatchEnumerator.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","RegularExpressions_1","Enumerator_1","EnumeratorBase_1","RegexMatchEnumerator","pattern","Regex","this","_pattern","prototype","matches","input","p","_this","yielder","match","success","index","length","yieldReturn","yieldBreak","empty","Object","defineProperty","value"],"mappings":";;;;CAIA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,uBAAwB,wCAAyC,6CAA8CN,IAElJ,SAAUI,EAASF,GAClB,YCNJ,IAAAM,GAAAJ,EAA2B,wBAC3BK,EAAAL,EAAoB,yCACpBM,EAAAN,EAA2B,6CAC3BO,EAAA,WAIC,QAAAA,GAAYC,GAERA,YAAmBJ,GAAAK,MAErBC,KAAKC,SAAWH,EAIhBE,KAAKC,SAAW,GAAIP,GAAAK,MAAMD,GAgC7B,MA5BCD,GAAAK,UAAAC,QAAA,SAAQC,GAAR,GAEKC,GAFLC,EAAAN,IAGC,OAAO,IAAIJ,GAAAA,WACV,WAECS,EAAI,GAEL,SAAAE,GAEC,GAAIC,GAAcF,EAAKL,SAASO,MAAMJ,EAAOC,EAC7C,OAAGG,GAAMC,SAERJ,EAAIG,EAAME,MAAQF,EAAMG,OACjBJ,EAAQK,YAAYJ,IAGrBD,EAAQM,gBAIXhB,EAAAM,QAAP,SAAeC,EAAcN,GAE5B,MAAOM,IAASN,EACb,GAAKD,GAAqBC,GAAUK,QAAQC,GAC5CT,EAAAmB,OAGLjB,IA5CaT,GAAAS,qBAAoBA,EA8CjCkB,OAAAC,eAAA5B,EAAA,cAAA6B,OAAA,IDPI7B,EAAAA,WCOWS,EAAqBM","file":"System/Text/RegexMatchEnumerator.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"./RegularExpressions\", \"../Collections/Enumeration/Enumerator\", \"../Collections/Enumeration/EnumeratorBase\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var RegularExpressions_1 = require(\"./RegularExpressions\");\n var Enumerator_1 = require(\"../Collections/Enumeration/Enumerator\");\n var EnumeratorBase_1 = require(\"../Collections/Enumeration/EnumeratorBase\");\n var RegexMatchEnumerator = (function () {\n function RegexMatchEnumerator(pattern) {\n if (pattern instanceof RegularExpressions_1.Regex) {\n this._pattern = pattern;\n }\n else {\n this._pattern = new RegularExpressions_1.Regex(pattern);\n }\n }\n RegexMatchEnumerator.prototype.matches = function (input) {\n var _this = this;\n var p;\n return new EnumeratorBase_1.default(function () {\n p = 0;\n }, function (yielder) {\n var match = _this._pattern.match(input, p);\n if (match.success) {\n p = match.index + match.length;\n return yielder.yieldReturn(match);\n }\n return yielder.yieldBreak();\n });\n };\n RegexMatchEnumerator.matches = function (input, pattern) {\n return input && pattern\n ? (new RegexMatchEnumerator(pattern)).matches(input)\n : Enumerator_1.empty;\n };\n return RegexMatchEnumerator;\n }());\n exports.RegexMatchEnumerator = RegexMatchEnumerator;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = RegexMatchEnumerator.matches;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\nimport {Regex, Match} from \"./RegularExpressions\";\r\nimport {empty} from \"../Collections/Enumeration/Enumerator\";\r\nimport EnumeratorBase from \"../Collections/Enumeration/EnumeratorBase\";\r\nexport class RegexMatchEnumerator\r\n{\r\n\tprivate _pattern:Regex;\r\n\r\n\tconstructor(pattern:string|RegExp|Regex)\r\n\t{\r\n\t\tif(pattern instanceof Regex)\r\n\t\t{\r\n\t\t\tthis._pattern = pattern;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthis._pattern = new Regex(pattern);\r\n\t\t}\r\n\t}\r\n\r\n\tmatches(input:string):IEnumerator\r\n\t{\r\n\t\tvar p:number; // pointer\r\n\t\treturn new EnumeratorBase(\r\n\t\t\t()=>\r\n\t\t\t{\r\n\t\t\t\tp = 0;\r\n\t\t\t},\r\n\t\t\tyielder=>\r\n\t\t\t{\r\n\t\t\t\tlet match:Match = this._pattern.match(input, p);\r\n\t\t\t\tif(match.success)\r\n\t\t\t\t{\r\n\t\t\t\t\tp = match.index + match.length;\r\n\t\t\t\t\treturn yielder.yieldReturn(match);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t});\r\n\t}\r\n\r\n\tstatic matches(input:string, pattern:string|RegExp|Regex):IEnumerator\r\n\t{\r\n\t\treturn input && pattern\r\n\t\t\t? (new RegexMatchEnumerator(pattern)).matches(input)\r\n\t\t\t: empty;\r\n\t}\r\n\r\n}\r\n\r\nexport default RegexMatchEnumerator.matches;"]} \ No newline at end of file +{"version":3,"sources":["System/Text/RegexMatchEnumerator.js","System/Text/RegexMatchEnumerator.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","RegularExpressions_1","Enumerator_1","EnumeratorBase_1","RegexMatchEnumerator","pattern","Regex","this","_pattern","prototype","matches","input","p","_this","EnumeratorBase","yielder","match","success","index","length","yieldReturn","yieldBreak","empty","Object","defineProperty","value"],"mappings":";;;;CAIA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,uBAAwB,wCAAyC,6CAA8CN,IAElJ,SAAUI,EAASF,GAClB,YCPJ,IAAAM,GAAAJ,EAA2B,wBAC3BK,EAAAL,EAAoB,yCACpBM,EAAAN,EAA6B,6CAG7BO,EAAA,WAIC,QAAAA,GAAYC,GAERA,YAAmBJ,GAAAK,MAErBC,KAAKC,SAAWH,EAIhBE,KAAKC,SAAW,GAAIP,GAAAK,MAAMD,GAgC7B,MA5BCD,GAAAK,UAAAC,QAAA,SAAQC,GAAR,GAEKC,GAFLC,EAAAN,IAGC,OAAO,IAAIJ,GAAAW,eACV,WAECF,EAAI,GAEL,SAAAG,GAEC,GAAIC,GAAcH,EAAKL,SAASQ,MAAML,EAAOC,EAC7C,OAAGI,GAAMC,SAERL,EAAII,EAAME,MAAQF,EAAMG,OACjBJ,EAAQK,YAAYJ,IAGrBD,EAAQM,gBAIXjB,EAAAM,QAAP,SAAeC,EAAcN,GAE5B,MAAOM,IAASN,EACb,GAAKD,GAAqBC,GAAUK,QAAQC,GAC5CT,EAAAoB,OAGLlB,IA5CaT,GAAAS,qBAAoBA,EA8CjCmB,OAAAC,eAAA7B,EAAA,cAAA8B,OAAA,IDRI9B,EAAAA,WCQWS,EAAqBM","file":"System/Text/RegexMatchEnumerator.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"./RegularExpressions\", \"../Collections/Enumeration/Enumerator\", \"../Collections/Enumeration/EnumeratorBase\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var RegularExpressions_1 = require(\"./RegularExpressions\");\n var Enumerator_1 = require(\"../Collections/Enumeration/Enumerator\");\n var EnumeratorBase_1 = require(\"../Collections/Enumeration/EnumeratorBase\");\n var RegexMatchEnumerator = (function () {\n function RegexMatchEnumerator(pattern) {\n if (pattern instanceof RegularExpressions_1.Regex) {\n this._pattern = pattern;\n }\n else {\n this._pattern = new RegularExpressions_1.Regex(pattern);\n }\n }\n RegexMatchEnumerator.prototype.matches = function (input) {\n var _this = this;\n var p;\n return new EnumeratorBase_1.EnumeratorBase(function () {\n p = 0;\n }, function (yielder) {\n var match = _this._pattern.match(input, p);\n if (match.success) {\n p = match.index + match.length;\n return yielder.yieldReturn(match);\n }\n return yielder.yieldBreak();\n });\n };\n RegexMatchEnumerator.matches = function (input, pattern) {\n return input && pattern\n ? (new RegexMatchEnumerator(pattern)).matches(input)\n : Enumerator_1.empty;\n };\n return RegexMatchEnumerator;\n }());\n exports.RegexMatchEnumerator = RegexMatchEnumerator;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = RegexMatchEnumerator.matches;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {Regex, Match} from \"./RegularExpressions\";\r\nimport {empty} from \"../Collections/Enumeration/Enumerator\";\r\nimport {EnumeratorBase} from \"../Collections/Enumeration/EnumeratorBase\";\r\nimport {IEnumerator} from \"../Collections/Enumeration/IEnumerator\";\r\n\r\nexport class RegexMatchEnumerator\r\n{\r\n\tprivate _pattern:Regex;\r\n\r\n\tconstructor(pattern:string|RegExp|Regex)\r\n\t{\r\n\t\tif(pattern instanceof Regex)\r\n\t\t{\r\n\t\t\tthis._pattern = pattern;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthis._pattern = new Regex(pattern);\r\n\t\t}\r\n\t}\r\n\r\n\tmatches(input:string):IEnumerator\r\n\t{\r\n\t\tvar p:number; // pointer\r\n\t\treturn new EnumeratorBase(\r\n\t\t\t()=>\r\n\t\t\t{\r\n\t\t\t\tp = 0;\r\n\t\t\t},\r\n\t\t\tyielder=>\r\n\t\t\t{\r\n\t\t\t\tlet match:Match = this._pattern.match(input, p);\r\n\t\t\t\tif(match.success)\r\n\t\t\t\t{\r\n\t\t\t\t\tp = match.index + match.length;\r\n\t\t\t\t\treturn yielder.yieldReturn(match);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t});\r\n\t}\r\n\r\n\tstatic matches(input:string, pattern:string|RegExp|Regex):IEnumerator\r\n\t{\r\n\t\treturn input && pattern\r\n\t\t\t? (new RegexMatchEnumerator(pattern)).matches(input)\r\n\t\t\t: empty;\r\n\t}\r\n\r\n}\r\n\r\nexport default RegexMatchEnumerator.matches;"]} \ No newline at end of file diff --git a/dist/umd.min/System/Text/RegularExpressions.d.ts b/dist/umd.min/System/Text/RegularExpressions.d.ts index af3b1fbd..e3638f84 100644 --- a/dist/umd.min/System/Text/RegularExpressions.d.ts +++ b/dist/umd.min/System/Text/RegularExpressions.d.ts @@ -1,9 +1,11 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * Named groups based on: http://trentrichardson.com/2011/08/02/javascript-regexp-match-named-captures/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { IMap } from "../Collections/Dictionaries/IDictionary"; +import { Primitive } from "../Primitive"; +import { Selector } from "../FunctionTypes"; export declare module RegexOptions { const IGNORE_CASE: string; const I: string; diff --git a/dist/umd.min/System/Text/RegularExpressions.js.map b/dist/umd.min/System/Text/RegularExpressions.js.map index 56e58c6c..8d6b4767 100644 --- a/dist/umd.min/System/Text/RegularExpressions.js.map +++ b/dist/umd.min/System/Text/RegularExpressions.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Text/RegularExpressions.js","System/Text/RegularExpressions.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","RegexOptions","EMPTY","_I","_G","_M","_U","_W","_Y","IGNORE_CASE","I","GLOBAL","G","MULTI_LINE","M","UNICODE","U","STICKY","Y","IGNORE_PATTERN_WHITESPACE","W","Regex","pattern","options","extra","_i","arguments","length","Error","patternString","flags","Array","isArray","concat","join","toLowerCase","RegExp","ignoreCase","indexOf","multiline","source","ignoreWhiteSpace","replace","keys","k","match","i","len","_keys","_re","freeze","input","startIndex","r","_","exec","substring","Match","Empty","first","index","loc","groups","groupMap","text","g","EmptyGroup","Group","push","m","matches","end","success","count","Infinity","result","isEvaluator","length_1","isMatch","test","e","Capture","value","defineProperty","get","enumerable","configurable","_super","call","namedGroups","slice","EmptyMatch"],"mappings":";;;;;AAKA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,WAAYN,IAEpC,SAAUI,EAASF,GAClB,YCPJ,IAQcM,GARRC,EAAe,GAEfC,EAAK,IAAKC,EAAK,IAAKC,EAAK,IAAKC,EAAK,IAAKC,EAAK,IAAKC,EAAK,KAM7D,SAAcP,GAKAA,EAAAQ,YAAqBN,EACrBF,EAAAS,EAAWP,EAKXF,EAAAU,OAAgBP,EAChBH,EAAAW,EAAWR,EAKXH,EAAAY,WAAoBR,EACpBJ,EAAAa,EAAWT,EAKXJ,EAAAc,QAAiBT,EACjBL,EAAAe,EAAWV,EAKXL,EAAAgB,OAAgBT,EAChBP,EAAAiB,EAAWV,EAKXP,EAAAkB,0BAAmCZ,EACnCN,EAAAmB,EAAWb,GApCXN,EAAAN,EAAAM,eAAAN,EAAAM,iBAoDd,IAAAoB,GAAA,WAKC,QAAAA,GACCC,EACAC,GDtCU,ICuCV,GAAAC,MAAAC,EAAA,EAAAA,EAAAC,UAAAC,OAAAF,IAAAD,EAAAC,EAAA,GAAAC,UAAAD,EAEA,KAAIH,EAAS,KAAM,IAAIM,OAAM,qCAE7B,IAAIC,GACAC,GACIP,IAAYQ,MAAMC,QAAQT,GAAWA,GAAWA,IAAUU,OAAOT,IAAUA,GAC7EU,KAAKhC,GAAOiC,aAElB,IAAGb,YAAmBc,QACtB,CACC,GAAIhD,GAAYkC,CACblC,GAAEiD,YAAmC,KAArBP,EAAMQ,QAAQnC,KAChC2B,GAAS3B,GACPf,EAAEmD,WAAkC,KAArBT,EAAMQ,QAAQjC,KAC/ByB,GAASzB,GACVwB,EAAgBzC,EAAEoD,WAIlBX,GAAgBP,CAEjB,IAAImB,GAAuC,IAApBX,EAAMQ,QAAQ/B,EAGrCuB,GAAQA,EAAMY,QAAQ,QAASxC,EAG/B,IAAIyC,MAECC,EAAIf,EAAcgB,MAAM,uBAC5B,IAAGD,EACH,CACC,IAAI,GAAIE,GAAI,EAAGC,EAAMH,EAAEjB,OAAUoB,EAAFD,EAAOA,IAErCH,EAAKG,EAAI,GAAKF,EAAEE,EAIjBjB,GAAgBA,EAAca,QAAQ,WAAYxC,GAClDnB,KAAKiE,MAAQL,EAGXF,IACFZ,EAAgBA,EAAca,QAAQ,OAAQ,SAE/C3D,KAAKkE,IAAM,GAAIb,QAAOP,EAAeC,GAItCvC,OAAO2D,OAAOnE,MAqHhB,MAlHCsC,GAAA/B,UAAAuD,MAAA,SAAMM,EAAcC,GAAA,SAAAA,IAAAA,EAAA,EAEnB,IACIC,GADAC,EAAIvE,IAER,KAAIoE,GACAC,GAAYD,EAAMxB,UAChB0B,EAAItE,KAAKkE,IAAIM,KAAKJ,EAAMK,UAAUJ,KACvC,MAAOK,GAAMC,KAETN,GAAW,IAAIA,EAAa,EAOjC,KAAI,GALAO,GAAuBP,EAAaC,EAAEO,MACtCC,EAAuBF,EACvBG,KACAC,KAEIjB,EAAI,EAAGC,EAAMM,EAAE1B,OAAUoB,EAAFD,IAASA,EACxC,CACC,GAAIkB,GAAOX,EAAEP,GACTmB,EAAIC,CACE,QAAPF,GAAsB,SAAPA,IAEjBC,EAAI,GAAIE,GAAMH,EAAMH,GACpBI,EAAEf,UAEAJ,GAAKQ,EAAEN,OAASF,EAAEQ,EAAEN,MAAMrB,SAAQoC,EAAST,EAAEN,MAAMF,IAAMmB,GAC5DH,EAAOM,KAAKH,GACL,IAAJnB,IAAOe,GAAOG,EAAKrC,QAGvB,GAAI0C,GAAI,GAAIZ,GAAMJ,EAAE,GAAIM,EAAOG,EAAQC,EAEvC,OADAM,GAAEnB,SACKmB,GAGRhD,EAAA/B,UAAAgF,QAAA,SAAQnB,GAGP,IADA,GAA0BkB,GAAtBC,KAA+BlF,EAAI,EAAGmF,EAAMpB,GAASA,EAAMxB,QAAU,EACjE4C,EAAFnF,IAAUiF,EAAItF,KAAK8D,MAAMM,EAAO/D,KAAOiF,EAAEG,SAE9CF,EAAQF,KAAKC,GACbjF,EAAIiF,EAAET,MAAQS,EAAE1C,MAEjB,OAAOpC,QAAO2D,OAAOoB,IAatBjD,EAAA/B,UAAAoD,QAAA,SACCS,EACAE,EACAoB,GAEA,GAFA,SAAAA,IAAAA,EAAAC,EAAAA,KAEIvB,GAAa,OAAJE,GAAiB,SAALA,GAAiBoB,EAAM,GAAI,MAAOtB,EAK3D,KAJA,GAGIkB,GAHAM,KACAvF,EAAI,EAAGmF,EAAMpB,EAAMxB,OAAQiD,EAAwB,kBAAHvB,GAEvCP,EAAW,EAChB2B,EAAF3B,GAAayB,EAAFnF,IAAUiF,EAAItF,KAAK8D,MAAMM,EAAO/D,KAAOiF,EAAEG,SAC1D,CACM,GAAAZ,GAAAS,EAAAT,MAAOiB,EAAAR,EAAA1C,MACTvC,KAAIwE,GAAOe,EAAOP,KAAKjB,EAAMK,UAAUpE,EAAGwE,IAC7Ce,EAAOP,KAAKQ,EAAcvB,EAAEgB,EAAGvB,KAAOO,GACtCjE,EAAIwE,EAAQiB,EAKb,MAFKN,GAAFnF,GAAOuF,EAAOP,KAAKjB,EAAMK,UAAUpE,IAE/BuF,EAAOzC,KAAKhC,IAGpBmB,EAAA/B,UAAAwF,QAAA,SAAQ3B,GAEP,MAAOpE,MAAKkE,IAAI8B,KAAK5B,IAGf9B,EAAAyD,QAAP,SACC3B,EACA7B,EACAC,GAEA,GAAI8B,GAAI,GAAIhC,GAAMC,EAASC,EAC3B,OAAO8B,GAAEyB,QAAQ3B,IAeX9B,EAAAqB,QAAP,SACCS,EACA7B,EACA0D,EACAzD,GAEA,GAAI8B,GAAI,GAAIhC,GAAMC,EAASC,EAC3B,OAAO8B,GAAEX,QAAQS,EAAO6B,IAE1B3D,IA/Ka1B,GAAA0B,MAAKA,CAiLlB,IAAA4D,GAAA,WASC,QAAAA,GACQC,EACAtB,GADP,SAAAsB,IAAAA,EAAAhF,GACA,SAAA0D,IAAAA,EAAA,IADO7E,KAAAmG,MAAAA,EACAnG,KAAA6E,MAAAA,EAQT,MAhBCrE,QAAA4F,eAAIF,EAAA3F,UAAA,UDnGO8F,ICmGX,WAEC,GAAIxF,GAAIb,KAAKmG,KACb,OAAOtF,IAAKA,EAAE+B,QAAU,GDlGd0D,YAAY,EACZC,cAAc,IC0GzBL,EAAA3F,UAAA4D,OAAA,WAEC3D,OAAO2D,OAAOnE,OAEhBkG,IAnBatF,GAAAsF,QAAOA,CAqBpB,IAAAd,GAAA,SAAAoB,GAOC,QAAApB,GACCe,EACAtB,GADA,SAAAsB,IAAAA,EAAAhF,GACA,SAAA0D,IAAAA,EAAA,IAEA2B,EAAAC,KAAAzG,KAAMmG,EAAOtB,GAQf,MAnB2B9E,WAAAqF,EAAAoB,GAE1BhG,OAAA4F,eAAIhB,EAAA7E,UAAA,WDlGO8F,ICkGX,WAEC,MAAoB,IAAbrG,KAAK6E,ODjGFyB,YAAY,EACZC,cAAc,IC0GzB/F,OAAA4F,eAAWhB,EAAA,SDvGAiB,ICuGX,WAEC,MAAOlB,IDtGGmB,YAAY,EACZC,cAAc,ICwG1BnB,GAnB2Bc,EAAdtF,GAAAwE,MAAKA,CAoBlB,IAAMD,GAAa,GAAIC,EACvBD,GAAWhB,QAEX,IAAAO,GAAA,SAAA8B,GAGC,QAAA9B,GACCyB,EACAtB,EACOE,EACA2B,GAHP,SAAAP,IAAAA,EAAAhF,GACA,SAAA0D,IAAAA,EAAA,IACA,SAAAE,IAAAA,MACA,SAAA2B,IAAAA,MAEAF,EAAAC,KAAAzG,KAAMmG,EAAOtB,GAHN7E,KAAA+E,OAAAA,EACA/E,KAAA0G,YAAAA,EAkBT,MAzB2B3G,WAAA2E,EAAA8B,GAY1B9B,EAAAnE,UAAA4D,OAAA,WAEC,IAAInE,KAAK+E,OAAQ,KAAM,IAAIlC,OAAM,2BACjC,KAAI7C,KAAK0G,YAAa,KAAM,IAAI7D,OAAM,6BACtCrC,QAAO2D,OAAOnE,KAAK+E,OAAO4B,SAC1BnG,OAAO2D,OAAOnE,KAAK0G,aACnBF,EAAAjG,UAAM4D,OAAMsC,KAAAzG,OAGbQ,OAAA4F,eAAW1B,EAAA,SDrGA2B,ICqGX,WAEC,MAAOO,IDpGGN,YAAY,EACZC,cAAc,ICqG1B7B,GAzB2BU,EAAdxE,GAAA8D,MAAKA,CA0BlB,IAAMkC,GAAa,GAAIlC,EACvBkC,GAAWzC,SAGX3D,OAAA4F,eAAAxF,EAAA,cAAAuF,OAAA,IDlGIvF,EAAAA,WCkGW0B","file":"System/Text/RegularExpressions.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Named groups based on: http://trentrichardson.com/2011/08/02/javascript-regexp-match-named-captures/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var EMPTY = \"\";\n var UNDEFINED = \"undefined\";\n var _I = 'i', _G = 'g', _M = 'm', _U = 'u', _W = 'w', _Y = 'y';\n var RegexOptions;\n (function (RegexOptions) {\n RegexOptions.IGNORE_CASE = _I;\n RegexOptions.I = _I;\n RegexOptions.GLOBAL = _G;\n RegexOptions.G = _G;\n RegexOptions.MULTI_LINE = _M;\n RegexOptions.M = _M;\n RegexOptions.UNICODE = _U;\n RegexOptions.U = _U;\n RegexOptions.STICKY = _Y;\n RegexOptions.Y = _Y;\n RegexOptions.IGNORE_PATTERN_WHITESPACE = _W;\n RegexOptions.W = _W;\n })(RegexOptions = exports.RegexOptions || (exports.RegexOptions = {}));\n var Regex = (function () {\n function Regex(pattern, options) {\n var extra = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n extra[_i - 2] = arguments[_i];\n }\n if (!pattern)\n throw new Error(\"'pattern' cannot be null or empty.\");\n var patternString, flags = (options && (Array.isArray(options) ? options : [options]).concat(extra) || extra)\n .join(EMPTY).toLowerCase();\n if (pattern instanceof RegExp) {\n var p = pattern;\n if (p.ignoreCase && flags.indexOf(_I) === -1)\n flags += _I;\n if (p.multiline && flags.indexOf(_M) === -1)\n flags += _M;\n patternString = p.source;\n }\n else {\n patternString = pattern;\n }\n var ignoreWhiteSpace = flags.indexOf(_W) != -1;\n flags = flags.replace(/[gw]/g, EMPTY);\n var keys = [];\n {\n var k = patternString.match(/(?!\\(\\?<)(\\w+)(?=>)/g);\n if (k) {\n for (var i = 0, len = k.length; i < len; i++) {\n keys[i + 1] = k[i];\n }\n patternString = patternString.replace(/\\?<\\w+>/g, EMPTY);\n this._keys = keys;\n }\n if (ignoreWhiteSpace)\n patternString = patternString.replace(/\\s+/g, \"\\\\s*\");\n this._re = new RegExp(patternString, flags);\n }\n Object.freeze(this);\n }\n Regex.prototype.match = function (input, startIndex) {\n if (startIndex === void 0) { startIndex = 0; }\n var _ = this;\n var r;\n if (!input\n || startIndex >= input.length\n || !(r = this._re.exec(input.substring(startIndex))))\n return Match.Empty;\n if (!(startIndex > 0))\n startIndex = 0;\n var first = startIndex + r.index, loc = first, groups = [], groupMap = {};\n for (var i = 0, len = r.length; i < len; ++i) {\n var text = r[i];\n var g = EmptyGroup;\n if (text !== null || text !== void 0) {\n g = new Group(text, loc);\n g.freeze();\n }\n if (i && _._keys && i < _._keys.length)\n groupMap[_._keys[i]] = g;\n groups.push(g);\n if (i !== 0)\n loc += text.length;\n }\n var m = new Match(r[0], first, groups, groupMap);\n m.freeze();\n return m;\n };\n Regex.prototype.matches = function (input) {\n var matches = [], m, p = 0, end = input && input.length || 0;\n while (p < end && (m = this.match(input, p)) && m.success) {\n matches.push(m);\n p = m.index + m.length;\n }\n return Object.freeze(matches);\n };\n Regex.prototype.replace = function (input, r, count) {\n if (count === void 0) { count = Infinity; }\n if (!input || r === null || r === void 0 || !(count > 0))\n return input;\n var result = [];\n var p = 0, end = input.length, isEvaluator = typeof r == \"function\";\n var m, i = 0;\n while (i < count && p < end && (m = this.match(input, p)) && m.success) {\n var index = m.index, length_1 = m.length;\n if (p !== index)\n result.push(input.substring(p, index));\n result.push(isEvaluator ? r(m, i++) : r);\n p = index + length_1;\n }\n if (p < end)\n result.push(input.substring(p));\n return result.join(EMPTY);\n };\n Regex.prototype.isMatch = function (input) {\n return this._re.test(input);\n };\n Regex.isMatch = function (input, pattern, options) {\n var r = new Regex(pattern, options);\n return r.isMatch(input);\n };\n Regex.replace = function (input, pattern, e, options) {\n var r = new Regex(pattern, options);\n return r.replace(input, e);\n };\n return Regex;\n }());\n exports.Regex = Regex;\n var Capture = (function () {\n function Capture(value, index) {\n if (value === void 0) { value = EMPTY; }\n if (index === void 0) { index = -1; }\n this.value = value;\n this.index = index;\n }\n Object.defineProperty(Capture.prototype, \"length\", {\n get: function () {\n var v = this.value;\n return v && v.length || 0;\n },\n enumerable: true,\n configurable: true\n });\n Capture.prototype.freeze = function () {\n Object.freeze(this);\n };\n return Capture;\n }());\n exports.Capture = Capture;\n var Group = (function (_super) {\n __extends(Group, _super);\n function Group(value, index) {\n if (value === void 0) { value = EMPTY; }\n if (index === void 0) { index = -1; }\n _super.call(this, value, index);\n }\n Object.defineProperty(Group.prototype, \"success\", {\n get: function () {\n return this.index != -1;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Group, \"Empty\", {\n get: function () {\n return EmptyGroup;\n },\n enumerable: true,\n configurable: true\n });\n return Group;\n }(Capture));\n exports.Group = Group;\n var EmptyGroup = new Group();\n EmptyGroup.freeze();\n var Match = (function (_super) {\n __extends(Match, _super);\n function Match(value, index, groups, namedGroups) {\n if (value === void 0) { value = EMPTY; }\n if (index === void 0) { index = -1; }\n if (groups === void 0) { groups = []; }\n if (namedGroups === void 0) { namedGroups = {}; }\n _super.call(this, value, index);\n this.groups = groups;\n this.namedGroups = namedGroups;\n }\n Match.prototype.freeze = function () {\n if (!this.groups)\n throw new Error(\"'groups' cannot be null.\");\n if (!this.namedGroups)\n throw new Error(\"'groupMap' cannot be null.\");\n Object.freeze(this.groups.slice());\n Object.freeze(this.namedGroups);\n _super.prototype.freeze.call(this);\n };\n Object.defineProperty(Match, \"Empty\", {\n get: function () {\n return EmptyMatch;\n },\n enumerable: true,\n configurable: true\n });\n return Match;\n }(Group));\n exports.Match = Match;\n var EmptyMatch = new Match();\n EmptyMatch.freeze();\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Regex;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Named groups based on: http://trentrichardson.com/2011/08/02/javascript-regexp-match-named-captures/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n\r\n// NOTE: Avoid dependencies so this class can be used cleanly.\r\n\r\nconst EMPTY:string = \"\";\r\nconst UNDEFINED:string = \"undefined\";\r\nconst _I = 'i', _G = 'g', _M = 'm', _U = 'u', _W = 'w', _Y = 'y';\r\n\r\n\r\n/**\r\n * https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regexoptions%28v=vs.110%29.aspx\r\n */\r\nexport module RegexOptions\r\n{\r\n\t/**\r\n\t * Specifies case-insensitive matching. For more information, see the \"Case-Insensitive Matching \" section in the Regular Expression Options topic.\r\n\t */\r\n\texport const IGNORE_CASE:string = _I;\r\n\texport const I:string = _I;\r\n\r\n\t/**\r\n\t * Specifies global matching instead of single.\r\n\t */\r\n\texport const GLOBAL:string = _G;\r\n\texport const G:string = _G;\r\n\r\n\t/**\r\n\t * treat beginning and end characters (^ and $) as working over multiple lines (i.e., match the beginning or end of each line (delimited by \\n or \\r), not only the very beginning or end of the whole input string)\r\n\t */\r\n\texport const MULTI_LINE:string = _M;\r\n\texport const M:string = _M;\r\n\r\n\t/**\r\n\t * treat pattern as a sequence of unicode code points\r\n\t */\r\n\texport const UNICODE:string = _U;\r\n\texport const U:string = _U;\r\n\r\n\t/**\r\n\t * matches only from the index indicated by the lastIndex property of this regular expression in the target string (and does not attempt to match from any later indexes).\r\n\t */\r\n\texport const STICKY:string = _Y;\r\n\texport const Y:string = _Y;\r\n\r\n\t/**\r\n\t * Modifies the pattern to ignore standard whitespace characters.\r\n\t */\r\n\texport const IGNORE_PATTERN_WHITESPACE:string = _W;\r\n\texport const W:string = _W;\r\n\r\n\texport type Global = 'g';\r\n\texport type IgnoreCase = 'i';\r\n\texport type MultiLine = 'm';\r\n\texport type Unicode = 'u';\r\n\texport type Sticky = 'y';\r\n\texport type IgnorePatternWhitespace = \"w\";\r\n\r\n\texport type Literal = Global | IgnoreCase | MultiLine | Unicode | Sticky | IgnorePatternWhitespace;\r\n}\r\n\r\nexport interface MatchEvaluator extends Selector\r\n{\r\n}\r\n\r\nexport class Regex\r\n{\r\n\tprivate _re:RegExp;\r\n\tprivate _keys:string[];\r\n\r\n\tconstructor(\r\n\t\tpattern:string|RegExp,\r\n\t\toptions?:RegexOptions.Literal|RegexOptions.Literal[],\r\n\t\t...extra:RegexOptions.Literal[])\r\n\t{\r\n\t\tif(!pattern) throw new Error(\"'pattern' cannot be null or empty.\");\r\n\r\n\t\tvar patternString:string,\r\n\t\t flags:string\r\n\t\t\t = (options && (Array.isArray(options) ? options : [options]).concat(extra) || extra)\r\n\t\t\t .join(EMPTY).toLowerCase();\r\n\r\n\t\tif(pattern instanceof RegExp)\r\n\t\t{\r\n\t\t\tlet p = pattern;\r\n\t\t\tif(p.ignoreCase && flags.indexOf(_I)=== -1)\r\n\t\t\t\tflags += _I;\r\n\t\t\tif(p.multiline && flags.indexOf(_M)=== -1)\r\n\t\t\t\tflags += _M;\r\n\t\t\tpatternString = p.source;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tpatternString = pattern;\r\n\t\t}\r\n\t\tvar ignoreWhiteSpace = flags.indexOf(_W)!= -1;\r\n\r\n\t\t// For the majority of expected behavior, we need to eliminate global and whitespace ignore.\r\n\t\tflags = flags.replace(/[gw]/g, EMPTY);\r\n\r\n\t\t// find the keys inside the pattern, and place in mapping array {0:'key1', 1:'key2', ...}\r\n\t\tvar keys:string[] = [];\r\n\t\t{\r\n\t\t\tlet k = patternString.match(/(?!\\(\\?<)(\\w+)(?=>)/g);\r\n\t\t\tif(k)\r\n\t\t\t{\r\n\t\t\t\tfor(let i = 0, len = k.length; i/g, EMPTY);\r\n\t\t\t\tthis._keys = keys;\r\n\t\t\t}\r\n\r\n\t\t\tif(ignoreWhiteSpace)\r\n\t\t\t\tpatternString = patternString.replace(/\\s+/g, \"\\\\s*\");\r\n\r\n\t\t\tthis._re = new RegExp(patternString, flags);\r\n\r\n\t\t}\r\n\r\n\t\tObject.freeze(this);\r\n\t}\r\n\r\n\tmatch(input:string, startIndex:number = 0):Match\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar r:RegExpExecArray;\r\n\t\tif(!input\r\n\t\t\t|| startIndex>=input.length\r\n\t\t\t|| !(r = this._re.exec(input.substring(startIndex))))\r\n\t\t\treturn Match.Empty;\r\n\r\n\t\tif(!(startIndex>0)) startIndex = 0;\r\n\r\n\t\tvar first = startIndex + r.index,\r\n\t\t loc = first,\r\n\t\t groups:Group[] = [],\r\n\t\t groupMap:IMap = {};\r\n\r\n\t\tfor(let i = 0, len = r.length; i0)) return input;\r\n\t\tvar result:string[] = [];\r\n\t\tvar p = 0, end = input.length, isEvaluator = typeof r==\"function\";\r\n\r\n\t\tvar m:Match, i:number = 0;\r\n\t\twhile(i = {})\r\n\t{\r\n\t\tsuper(value, index);\r\n\t}\r\n\r\n\tfreeze():void\r\n\t{\r\n\t\tif(!this.groups) throw new Error(\"'groups' cannot be null.\");\r\n\t\tif(!this.namedGroups) throw new Error(\"'groupMap' cannot be null.\");\r\n\t\tObject.freeze(this.groups.slice());\r\n\t\tObject.freeze(this.namedGroups);\r\n\t\tsuper.freeze();\r\n\t}\r\n\r\n\tstatic get Empty():Match\r\n\t{\r\n\t\treturn EmptyMatch;\r\n\t}\r\n}\r\nconst EmptyMatch = new Match();\r\nEmptyMatch.freeze();\r\n\r\n\r\nexport default Regex;"]} \ No newline at end of file +{"version":3,"sources":["System/Text/RegularExpressions.js","System/Text/RegularExpressions.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","RegexOptions","EMPTY","_I","_G","_M","_U","_W","_Y","IGNORE_CASE","I","GLOBAL","G","MULTI_LINE","M","UNICODE","U","STICKY","Y","IGNORE_PATTERN_WHITESPACE","W","Regex","pattern","options","extra","_i","arguments","length","Error","patternString","flags","Array","isArray","concat","join","toLowerCase","RegExp","ignoreCase","indexOf","multiline","source","ignoreWhiteSpace","replace","keys","k","match","i","len","_keys","_re","freeze","input","startIndex","r","_","exec","substring","Match","Empty","first","index","loc","groups","groupMap","text","g","EmptyGroup","Group","push","m","matches","end","success","count","Infinity","result","isEvaluator","length_1","isMatch","test","e","Capture","value","defineProperty","get","enumerable","configurable","_super","call","namedGroups","slice","EmptyMatch"],"mappings":"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","file":"System/Text/RegularExpressions.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Named groups based on: http://trentrichardson.com/2011/08/02/javascript-regexp-match-named-captures/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var EMPTY = \"\";\n var UNDEFINED = \"undefined\";\n var _I = 'i', _G = 'g', _M = 'm', _U = 'u', _W = 'w', _Y = 'y';\n var RegexOptions;\n (function (RegexOptions) {\n RegexOptions.IGNORE_CASE = _I;\n RegexOptions.I = _I;\n RegexOptions.GLOBAL = _G;\n RegexOptions.G = _G;\n RegexOptions.MULTI_LINE = _M;\n RegexOptions.M = _M;\n RegexOptions.UNICODE = _U;\n RegexOptions.U = _U;\n RegexOptions.STICKY = _Y;\n RegexOptions.Y = _Y;\n RegexOptions.IGNORE_PATTERN_WHITESPACE = _W;\n RegexOptions.W = _W;\n })(RegexOptions = exports.RegexOptions || (exports.RegexOptions = {}));\n var Regex = (function () {\n function Regex(pattern, options) {\n var extra = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n extra[_i - 2] = arguments[_i];\n }\n if (!pattern)\n throw new Error(\"'pattern' cannot be null or empty.\");\n var patternString, flags = (options && (Array.isArray(options) ? options : [options]).concat(extra) || extra)\n .join(EMPTY).toLowerCase();\n if (pattern instanceof RegExp) {\n var p = pattern;\n if (p.ignoreCase && flags.indexOf(_I) === -1)\n flags += _I;\n if (p.multiline && flags.indexOf(_M) === -1)\n flags += _M;\n patternString = p.source;\n }\n else {\n patternString = pattern;\n }\n var ignoreWhiteSpace = flags.indexOf(_W) != -1;\n flags = flags.replace(/[gw]/g, EMPTY);\n var keys = [];\n {\n var k = patternString.match(/(?!\\(\\?<)(\\w+)(?=>)/g);\n if (k) {\n for (var i = 0, len = k.length; i < len; i++) {\n keys[i + 1] = k[i];\n }\n patternString = patternString.replace(/\\?<\\w+>/g, EMPTY);\n this._keys = keys;\n }\n if (ignoreWhiteSpace)\n patternString = patternString.replace(/\\s+/g, \"\\\\s*\");\n this._re = new RegExp(patternString, flags);\n }\n Object.freeze(this);\n }\n Regex.prototype.match = function (input, startIndex) {\n if (startIndex === void 0) { startIndex = 0; }\n var _ = this;\n var r;\n if (!input\n || startIndex >= input.length\n || !(r = this._re.exec(input.substring(startIndex))))\n return Match.Empty;\n if (!(startIndex > 0))\n startIndex = 0;\n var first = startIndex + r.index, loc = first, groups = [], groupMap = {};\n for (var i = 0, len = r.length; i < len; ++i) {\n var text = r[i];\n var g = EmptyGroup;\n if (text !== null || text !== void 0) {\n g = new Group(text, loc);\n g.freeze();\n }\n if (i && _._keys && i < _._keys.length)\n groupMap[_._keys[i]] = g;\n groups.push(g);\n if (i !== 0)\n loc += text.length;\n }\n var m = new Match(r[0], first, groups, groupMap);\n m.freeze();\n return m;\n };\n Regex.prototype.matches = function (input) {\n var matches = [], m, p = 0, end = input && input.length || 0;\n while (p < end && (m = this.match(input, p)) && m.success) {\n matches.push(m);\n p = m.index + m.length;\n }\n return Object.freeze(matches);\n };\n Regex.prototype.replace = function (input, r, count) {\n if (count === void 0) { count = Infinity; }\n if (!input || r === null || r === void 0 || !(count > 0))\n return input;\n var result = [];\n var p = 0, end = input.length, isEvaluator = typeof r == \"function\";\n var m, i = 0;\n while (i < count && p < end && (m = this.match(input, p)) && m.success) {\n var index = m.index, length_1 = m.length;\n if (p !== index)\n result.push(input.substring(p, index));\n result.push(isEvaluator ? r(m, i++) : r);\n p = index + length_1;\n }\n if (p < end)\n result.push(input.substring(p));\n return result.join(EMPTY);\n };\n Regex.prototype.isMatch = function (input) {\n return this._re.test(input);\n };\n Regex.isMatch = function (input, pattern, options) {\n var r = new Regex(pattern, options);\n return r.isMatch(input);\n };\n Regex.replace = function (input, pattern, e, options) {\n var r = new Regex(pattern, options);\n return r.replace(input, e);\n };\n return Regex;\n }());\n exports.Regex = Regex;\n var Capture = (function () {\n function Capture(value, index) {\n if (value === void 0) { value = EMPTY; }\n if (index === void 0) { index = -1; }\n this.value = value;\n this.index = index;\n }\n Object.defineProperty(Capture.prototype, \"length\", {\n get: function () {\n var v = this.value;\n return v && v.length || 0;\n },\n enumerable: true,\n configurable: true\n });\n Capture.prototype.freeze = function () {\n Object.freeze(this);\n };\n return Capture;\n }());\n exports.Capture = Capture;\n var Group = (function (_super) {\n __extends(Group, _super);\n function Group(value, index) {\n if (value === void 0) { value = EMPTY; }\n if (index === void 0) { index = -1; }\n _super.call(this, value, index);\n }\n Object.defineProperty(Group.prototype, \"success\", {\n get: function () {\n return this.index != -1;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Group, \"Empty\", {\n get: function () {\n return EmptyGroup;\n },\n enumerable: true,\n configurable: true\n });\n return Group;\n }(Capture));\n exports.Group = Group;\n var EmptyGroup = new Group();\n EmptyGroup.freeze();\n var Match = (function (_super) {\n __extends(Match, _super);\n function Match(value, index, groups, namedGroups) {\n if (value === void 0) { value = EMPTY; }\n if (index === void 0) { index = -1; }\n if (groups === void 0) { groups = []; }\n if (namedGroups === void 0) { namedGroups = {}; }\n _super.call(this, value, index);\n this.groups = groups;\n this.namedGroups = namedGroups;\n }\n Match.prototype.freeze = function () {\n if (!this.groups)\n throw new Error(\"'groups' cannot be null.\");\n if (!this.namedGroups)\n throw new Error(\"'groupMap' cannot be null.\");\n Object.freeze(this.groups.slice());\n Object.freeze(this.namedGroups);\n _super.prototype.freeze.call(this);\n };\n Object.defineProperty(Match, \"Empty\", {\n get: function () {\n return EmptyMatch;\n },\n enumerable: true,\n configurable: true\n });\n return Match;\n }(Group));\n exports.Match = Match;\n var EmptyMatch = new Match();\n EmptyMatch.freeze();\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Regex;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Named groups based on: http://trentrichardson.com/2011/08/02/javascript-regexp-match-named-captures/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n// NOTE: Avoid real (types/interfaces only = ok) dependencies so this class can be used cleanly.\r\nimport {IMap} from \"../Collections/Dictionaries/IDictionary\";\r\nimport {Primitive} from \"../Primitive\";\r\nimport {Selector} from \"../FunctionTypes\";\r\n\r\nconst EMPTY:string = \"\";\r\nconst UNDEFINED:string = \"undefined\";\r\nconst _I = 'i', _G = 'g', _M = 'm', _U = 'u', _W = 'w', _Y = 'y';\r\n\r\n\r\n/**\r\n * https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regexoptions%28v=vs.110%29.aspx\r\n */\r\nexport module RegexOptions\r\n{\r\n\t/**\r\n\t * Specifies case-insensitive matching. For more information, see the \"Case-Insensitive Matching \" section in the Regular Expression Options topic.\r\n\t */\r\n\texport const IGNORE_CASE:string = _I;\r\n\texport const I:string = _I;\r\n\r\n\t/**\r\n\t * Specifies global matching instead of single.\r\n\t */\r\n\texport const GLOBAL:string = _G;\r\n\texport const G:string = _G;\r\n\r\n\t/**\r\n\t * treat beginning and end characters (^ and $) as working over multiple lines (i.e., match the beginning or end of each line (delimited by \\n or \\r), not only the very beginning or end of the whole input string)\r\n\t */\r\n\texport const MULTI_LINE:string = _M;\r\n\texport const M:string = _M;\r\n\r\n\t/**\r\n\t * treat pattern as a sequence of unicode code points\r\n\t */\r\n\texport const UNICODE:string = _U;\r\n\texport const U:string = _U;\r\n\r\n\t/**\r\n\t * matches only from the index indicated by the lastIndex property of this regular expression in the target string (and does not attempt to match from any later indexes).\r\n\t */\r\n\texport const STICKY:string = _Y;\r\n\texport const Y:string = _Y;\r\n\r\n\t/**\r\n\t * Modifies the pattern to ignore standard whitespace characters.\r\n\t */\r\n\texport const IGNORE_PATTERN_WHITESPACE:string = _W;\r\n\texport const W:string = _W;\r\n\r\n\texport type Global = 'g';\r\n\texport type IgnoreCase = 'i';\r\n\texport type MultiLine = 'm';\r\n\texport type Unicode = 'u';\r\n\texport type Sticky = 'y';\r\n\texport type IgnorePatternWhitespace = \"w\";\r\n\r\n\texport type Literal = Global | IgnoreCase | MultiLine | Unicode | Sticky | IgnorePatternWhitespace;\r\n}\r\n\r\nexport interface MatchEvaluator extends Selector\r\n{\r\n}\r\n\r\nexport class Regex\r\n{\r\n\tprivate _re:RegExp;\r\n\tprivate _keys:string[];\r\n\r\n\tconstructor(\r\n\t\tpattern:string|RegExp,\r\n\t\toptions?:RegexOptions.Literal|RegexOptions.Literal[],\r\n\t\t...extra:RegexOptions.Literal[])\r\n\t{\r\n\t\tif(!pattern) throw new Error(\"'pattern' cannot be null or empty.\");\r\n\r\n\t\tvar patternString:string,\r\n\t\t flags:string\r\n\t\t\t = (options && (Array.isArray(options) ? options : [options]).concat(extra) || extra)\r\n\t\t\t .join(EMPTY).toLowerCase();\r\n\r\n\t\tif(pattern instanceof RegExp)\r\n\t\t{\r\n\t\t\tlet p = pattern;\r\n\t\t\tif(p.ignoreCase && flags.indexOf(_I)=== -1)\r\n\t\t\t\tflags += _I;\r\n\t\t\tif(p.multiline && flags.indexOf(_M)=== -1)\r\n\t\t\t\tflags += _M;\r\n\t\t\tpatternString = p.source;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tpatternString = pattern;\r\n\t\t}\r\n\t\tvar ignoreWhiteSpace = flags.indexOf(_W)!= -1;\r\n\r\n\t\t// For the majority of expected behavior, we need to eliminate global and whitespace ignore.\r\n\t\tflags = flags.replace(/[gw]/g, EMPTY);\r\n\r\n\t\t// find the keys inside the pattern, and place in mapping array {0:'key1', 1:'key2', ...}\r\n\t\tvar keys:string[] = [];\r\n\t\t{\r\n\t\t\tlet k = patternString.match(/(?!\\(\\?<)(\\w+)(?=>)/g);\r\n\t\t\tif(k)\r\n\t\t\t{\r\n\t\t\t\tfor(let i = 0, len = k.length; i/g, EMPTY);\r\n\t\t\t\tthis._keys = keys;\r\n\t\t\t}\r\n\r\n\t\t\tif(ignoreWhiteSpace)\r\n\t\t\t\tpatternString = patternString.replace(/\\s+/g, \"\\\\s*\");\r\n\r\n\t\t\tthis._re = new RegExp(patternString, flags);\r\n\r\n\t\t}\r\n\r\n\t\tObject.freeze(this);\r\n\t}\r\n\r\n\tmatch(input:string, startIndex:number = 0):Match\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar r:RegExpExecArray;\r\n\t\tif(!input\r\n\t\t\t|| startIndex>=input.length\r\n\t\t\t|| !(r = this._re.exec(input.substring(startIndex))))\r\n\t\t\treturn Match.Empty;\r\n\r\n\t\tif(!(startIndex>0)) startIndex = 0;\r\n\r\n\t\tvar first = startIndex + r.index,\r\n\t\t loc = first,\r\n\t\t groups:Group[] = [],\r\n\t\t groupMap:IMap = {};\r\n\r\n\t\tfor(let i = 0, len = r.length; i0)) return input;\r\n\t\tvar result:string[] = [];\r\n\t\tvar p = 0, end = input.length, isEvaluator = typeof r==\"function\";\r\n\r\n\t\tvar m:Match, i:number = 0;\r\n\t\twhile(i = {})\r\n\t{\r\n\t\tsuper(value, index);\r\n\t}\r\n\r\n\tfreeze():void\r\n\t{\r\n\t\tif(!this.groups) throw new Error(\"'groups' cannot be null.\");\r\n\t\tif(!this.namedGroups) throw new Error(\"'groupMap' cannot be null.\");\r\n\t\tObject.freeze(this.groups.slice());\r\n\t\tObject.freeze(this.namedGroups);\r\n\t\tsuper.freeze();\r\n\t}\r\n\r\n\tstatic get Empty():Match\r\n\t{\r\n\t\treturn EmptyMatch;\r\n\t}\r\n}\r\nconst EmptyMatch = new Match();\r\nEmptyMatch.freeze();\r\n\r\n\r\nexport default Regex;"]} \ No newline at end of file diff --git a/dist/umd.min/System/Text/StringBuilder.d.ts b/dist/umd.min/System/Text/StringBuilder.d.ts index 72f52b4c..a5ee019f 100644 --- a/dist/umd.min/System/Text/StringBuilder.d.ts +++ b/dist/umd.min/System/Text/StringBuilder.d.ts @@ -1,10 +1,10 @@ -/// /*! * @author electricessence / https://github.com/electricessence/ * .NET Reference: http://referencesource.microsoft.com/#mscorlib/system/text/StringBuilder.cs * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -export default class StringBuilder implements IDisposable { +import { IDisposable } from "../Disposable/IDisposable"; +export declare class StringBuilder implements IDisposable { private _partArray; private _latest; constructor(...initial: any[]); @@ -19,3 +19,4 @@ export default class StringBuilder implements IDisposable { clear(): void; dispose(): void; } +export default StringBuilder; diff --git a/dist/umd.min/System/Text/StringBuilder.js b/dist/umd.min/System/Text/StringBuilder.js index 5ae9ea75..5a2127d1 100644 --- a/dist/umd.min/System/Text/StringBuilder.js +++ b/dist/umd.min/System/Text/StringBuilder.js @@ -3,5 +3,5 @@ * .NET Reference: http://referencesource.microsoft.com/#mscorlib/system/text/StringBuilder.cs * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -!function(t){if("object"==typeof module&&"object"==typeof module.exports){var e=t(require,exports);void 0!==e&&(module.exports=e)}else"function"==typeof define&&define.amd&&define(["require","exports","../Types"],t)}(function(t,e){"use strict";var r=t("../Types"),n=void 0,o=function(){function t(){for(var t=[],e=0;e\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport Type from '../Types';\r\nimport LinkedList from '../Collections/LinkedList';\r\n\r\nconst VOID0:any = void 0;\r\n\r\n/*****************************\r\n * IMPORTANT NOTES ABOUT PERFORMANCE:\r\n * http://jsperf.com/string-concatenation-looped\r\n * http://jsperf.com/adding-strings-to-an-array\r\n * http://jsperf.com/string-concatenation-versus-array-operations-with-join\r\n *\r\n * It is clearly inefficient to use a StringBuilder or LinkedList to build a string when you have a small set of string portions.\r\n * StringBuilder will really show it's benefit likely somewhere above 1000 items.\r\n *****************************/\r\n\r\n\r\nexport default\r\nclass StringBuilder implements IDisposable\r\n\t// Adding IDisposable allows for use with System.using();\r\n\t// ... and since this may end up being a large array container, might be a good idea to allow for flexible cleanup.\r\n{\r\n\t//noinspection JSMismatchedCollectionQueryUpdate\r\n\tprivate _partArray:any[];\r\n\tprivate _latest:string; // AKA persistentString\r\n\r\n\tconstructor(...initial:any[])\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_._latest = null;\r\n\t\t_._partArray = [];\r\n\t\t_.appendThese(initial);\r\n\t}\r\n\r\n\tprivate appendSingle(item:any):void\r\n\t{\r\n\t\tif(item!==null && item!==VOID0) {\r\n\t\t\tvar _ = this;\r\n\t\t\t_._latest = null;\r\n\t\t\tswitch(typeof item) {\r\n\t\t\t\tcase Type.OBJECT:\r\n\t\t\t\tcase Type.FUNCTION:\r\n\t\t\t\t\titem = item.toString();\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\t_._partArray.push(item); // Other primitive types can keep their format since a number or boolean is a smaller footprint than a string.\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tappendThese(items:any[]):StringBuilder\r\n\t{\r\n\t\tvar _ = this;\r\n\t\titems.forEach(s=> _.appendSingle(s));\r\n\t\treturn _;\r\n\t}\r\n\r\n\tappend(...items:any[]):StringBuilder\r\n\t{\r\n\t\tthis.appendThese(items);\r\n\t\treturn this;\r\n\t}\r\n\r\n\tappendLine(...items:any[]):StringBuilder\r\n\t{\r\n\t\tthis.appendLines(items);\r\n\t\treturn this;\r\n\t}\r\n\r\n\tappendLines(items:any[]):StringBuilder\r\n\t{\r\n\t\tvar _ = this;\r\n\t\titems.forEach(\r\n\t\t\t\ti=>\r\n\t\t\t{\r\n\t\t\t\tif(i!==null && i!==VOID0) {\r\n\t\t\t\t\t_.appendSingle(i);\r\n\t\t\t\t\t_._partArray.push(\"\\r\\n\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\t\treturn _;\r\n\t}\r\n\r\n\t/** /// These methods can only efficiently be added if not using a single array.\r\n\t insert(index: number, value: string, count: number = 1): StringBuilder\r\n\t {\r\n\r\n\t}\r\n\r\n\t remove(startIndex:number, length:number): StringBuilder\r\n\t {\r\n\r\n\t}\r\n\t /**/\r\n\r\n\tget isEmpty()\r\n\t{\r\n\t\treturn this._partArray.length===0;\r\n\t}\r\n\r\n\ttoString()\r\n\t{\r\n\t\tvar latest = this._latest;\r\n\t\tif(!latest===null)\r\n\t\t\tthis._latest = latest = this._partArray.join();\r\n\r\n\t\treturn latest;\r\n\t}\r\n\r\n\tjoin(delimiter:string):string\r\n\t{\r\n\t\treturn this._partArray.join(delimiter);\r\n\t}\r\n\r\n\tclear():void\r\n\t{\r\n\t\tthis._partArray.length = 0;\r\n\t\tthis._latest = null;\r\n\t}\r\n\r\n\tdispose():void\r\n\t{\r\n\t\tthis.clear();\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Text/StringBuilder.js","System/Text/StringBuilder.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","Types_1","VOID0","StringBuilder","initial","_i","arguments","length","_","this","_latest","_partArray","appendThese","prototype","appendSingle","item","Type","OBJECT","FUNCTION","toString","push","items","forEach","s","append","appendLine","appendLines","i","Object","defineProperty","get","enumerable","configurable","latest","join","delimiter","clear","dispose","value"],"mappings":";;;;;CAKA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,YAAaN,IAEhD,SAAUI,EAASF,GAClB,YCPJ,IAAAM,GAAAJ,EAAmB,YAGbK,EAAY,OAalBC,EAAA,WAQC,QAAAA,KDXW,ICWC,GAAAC,MAAAC,EAAA,EAAAA,EAAAC,UAAAC,OAAAF,IAAAD,EAAAC,EAAA,GAAAC,UAAAD,EAEX,IAAIG,GAAIC,IACRD,GAAEE,QAAU,KACZF,EAAEG,cACFH,EAAEI,YAAYR,GAkGhB,MA/FSD,GAAAU,UAAAC,aAAR,SAAqBC,GAEpB,GAAU,OAAPA,GAAeA,IAAOb,EACzB,CACC,GAAIM,GAAIC,IAER,QADAD,EAAEE,QAAU,WACEK,IAEb,IAAKd,GAAAe,KAAKC,OACV,IAAKhB,GAAAe,KAAKE,SACTH,EAAOA,EAAKI,WAGdX,EAAEG,WAAWS,KAAKL,KAKpBZ,EAAAU,UAAAD,YAAA,SAAYS,GAEX,GAAIb,GAAIC,IAER,OADAY,GAAMC,QAAQ,SAAAC,GAAI,MAAAf,GAAEM,aAAaS,KAC1Bf,GAGRL,EAAAU,UAAAW,OAAA,WDhBW,ICgBJ,GAAAH,MAAAhB,EAAA,EAAAA,EAAAC,UAAAC,OAAAF,IAAAgB,EAAAhB,EAAA,GAAAC,UAAAD,EAGN,OADAI,MAAKG,YAAYS,GACVZ,MAGRN,EAAAU,UAAAY,WAAA,WDdW,ICcA,GAAAJ,MAAAhB,EAAA,EAAAA,EAAAC,UAAAC,OAAAF,IAAAgB,EAAAhB,EAAA,GAAAC,UAAAD,EAGV,OADAI,MAAKiB,YAAYL,GACVZ,MAGRN,EAAAU,UAAAa,YAAA,SAAYL,GAEX,GAAIb,GAAIC,IAWR,OAVAY,GAAMC,QACL,SAAAK,GAEQ,OAAJA,GAAYA,IAAIzB,IAElBM,EAAEM,aAAaa,GACfnB,EAAEG,WAAWS,KAAK,WAIdZ,GAeRoB,OAAAC,eAAI1B,EAAAU,UAAA,WD/BOiB,IC+BX,WAEC,MAAgC,KAAzBrB,KAAKE,WAAWJ,QD9BbwB,YAAY,EACZC,cAAc,ICgCzB7B,EAAAU,UAAAM,SAAA,WAEC,GAAIc,GAASxB,KAAKC,OAIlB,OAHa,SAATuB,IACHxB,KAAKC,QAAUuB,EAASxB,KAAKE,WAAWuB,QAElCD,GAGR9B,EAAAU,UAAAqB,KAAA,SAAKC,GAEJ,MAAO1B,MAAKE,WAAWuB,KAAKC,IAG7BhC,EAAAU,UAAAuB,MAAA,WAEC3B,KAAKE,WAAWJ,OAAS,EACzBE,KAAKC,QAAU,MAGhBP,EAAAU,UAAAwB,QAAA,WAEC5B,KAAK2B,SAGPjC,IA/GaR,GAAAQ,cAAaA,EAiH1ByB,OAAAC,eAAAlC,EAAA,cAAA2C,OAAA,IDrCI3C,EAAAA,WCqCWQ","file":"System/Text/StringBuilder.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * .NET Reference: http://referencesource.microsoft.com/#mscorlib/system/text/StringBuilder.cs\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../Types\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var Types_1 = require(\"../Types\");\n var VOID0 = void 0;\n var StringBuilder = (function () {\n function StringBuilder() {\n var initial = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n initial[_i - 0] = arguments[_i];\n }\n var _ = this;\n _._latest = null;\n _._partArray = [];\n _.appendThese(initial);\n }\n StringBuilder.prototype.appendSingle = function (item) {\n if (item !== null && item !== VOID0) {\n var _ = this;\n _._latest = null;\n switch (typeof item) {\n case Types_1.Type.OBJECT:\n case Types_1.Type.FUNCTION:\n item = item.toString();\n break;\n }\n _._partArray.push(item);\n }\n };\n StringBuilder.prototype.appendThese = function (items) {\n var _ = this;\n items.forEach(function (s) { return _.appendSingle(s); });\n return _;\n };\n StringBuilder.prototype.append = function () {\n var items = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n items[_i - 0] = arguments[_i];\n }\n this.appendThese(items);\n return this;\n };\n StringBuilder.prototype.appendLine = function () {\n var items = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n items[_i - 0] = arguments[_i];\n }\n this.appendLines(items);\n return this;\n };\n StringBuilder.prototype.appendLines = function (items) {\n var _ = this;\n items.forEach(function (i) {\n if (i !== null && i !== VOID0) {\n _.appendSingle(i);\n _._partArray.push(\"\\r\\n\");\n }\n });\n return _;\n };\n Object.defineProperty(StringBuilder.prototype, \"isEmpty\", {\n get: function () {\n return this._partArray.length === 0;\n },\n enumerable: true,\n configurable: true\n });\n StringBuilder.prototype.toString = function () {\n var latest = this._latest;\n if (!latest === null)\n this._latest = latest = this._partArray.join();\n return latest;\n };\n StringBuilder.prototype.join = function (delimiter) {\n return this._partArray.join(delimiter);\n };\n StringBuilder.prototype.clear = function () {\n this._partArray.length = 0;\n this._latest = null;\n };\n StringBuilder.prototype.dispose = function () {\n this.clear();\n };\n return StringBuilder;\n }());\n exports.StringBuilder = StringBuilder;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = StringBuilder;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * .NET Reference: http://referencesource.microsoft.com/#mscorlib/system/text/StringBuilder.cs\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {Type} from \"../Types\";\r\nimport {IDisposable} from \"../Disposable/IDisposable\";\r\n\r\nconst VOID0:any = void 0;\r\n\r\n/*****************************\r\n * IMPORTANT NOTES ABOUT PERFORMANCE:\r\n * http://jsperf.com/string-concatenation-looped\r\n * http://jsperf.com/adding-strings-to-an-array\r\n * http://jsperf.com/string-concatenation-versus-array-operations-with-join\r\n *\r\n * It is clearly inefficient to use a StringBuilder or LinkedList to build a string when you have a small set of string portions.\r\n * StringBuilder will really show it's benefit likely somewhere above 1000 items.\r\n *****************************/\r\n\r\n\r\nexport class StringBuilder implements IDisposable\r\n\t// Adding IDisposable allows for use with System.using();\r\n\t// ... and since this may end up being a large array container, might be a good idea to allow for flexible cleanup.\r\n{\r\n\t//noinspection JSMismatchedCollectionQueryUpdate\r\n\tprivate _partArray:any[];\r\n\tprivate _latest:string; // AKA persistentString\r\n\r\n\tconstructor(...initial:any[])\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_._latest = null;\r\n\t\t_._partArray = [];\r\n\t\t_.appendThese(initial);\r\n\t}\r\n\r\n\tprivate appendSingle(item:any):void\r\n\t{\r\n\t\tif(item!==null && item!==VOID0)\r\n\t\t{\r\n\t\t\tvar _ = this;\r\n\t\t\t_._latest = null;\r\n\t\t\tswitch(typeof item)\r\n\t\t\t{\r\n\t\t\t\tcase Type.OBJECT:\r\n\t\t\t\tcase Type.FUNCTION:\r\n\t\t\t\t\titem = item.toString();\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\t_._partArray.push(item); // Other primitive types can keep their format since a number or boolean is a smaller footprint than a string.\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tappendThese(items:any[]):StringBuilder\r\n\t{\r\n\t\tvar _ = this;\r\n\t\titems.forEach(s=> _.appendSingle(s));\r\n\t\treturn _;\r\n\t}\r\n\r\n\tappend(...items:any[]):StringBuilder\r\n\t{\r\n\t\tthis.appendThese(items);\r\n\t\treturn this;\r\n\t}\r\n\r\n\tappendLine(...items:any[]):StringBuilder\r\n\t{\r\n\t\tthis.appendLines(items);\r\n\t\treturn this;\r\n\t}\r\n\r\n\tappendLines(items:any[]):StringBuilder\r\n\t{\r\n\t\tvar _ = this;\r\n\t\titems.forEach(\r\n\t\t\ti=>\r\n\t\t\t{\r\n\t\t\t\tif(i!==null && i!==VOID0)\r\n\t\t\t\t{\r\n\t\t\t\t\t_.appendSingle(i);\r\n\t\t\t\t\t_._partArray.push(\"\\r\\n\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\t\treturn _;\r\n\t}\r\n\r\n\t/** /// These methods can only efficiently be added if not using a single array.\r\n\t insert(index: number, value: string, count: number = 1): StringBuilder\r\n\t {\r\n\r\n\t}\r\n\r\n\t remove(startIndex:number, length:number): StringBuilder\r\n\t {\r\n\r\n\t}\r\n\t /**/\r\n\r\n\tget isEmpty()\r\n\t{\r\n\t\treturn this._partArray.length===0;\r\n\t}\r\n\r\n\ttoString()\r\n\t{\r\n\t\tvar latest = this._latest;\r\n\t\tif(!latest===null)\r\n\t\t\tthis._latest = latest = this._partArray.join();\r\n\r\n\t\treturn latest;\r\n\t}\r\n\r\n\tjoin(delimiter:string):string\r\n\t{\r\n\t\treturn this._partArray.join(delimiter);\r\n\t}\r\n\r\n\tclear():void\r\n\t{\r\n\t\tthis._partArray.length = 0;\r\n\t\tthis._latest = null;\r\n\t}\r\n\r\n\tdispose():void\r\n\t{\r\n\t\tthis.clear();\r\n\t}\r\n\r\n}\r\n\r\nexport default StringBuilder;"]} \ No newline at end of file diff --git a/dist/umd.min/System/Text/Utility.js b/dist/umd.min/System/Text/Utility.js index 2d8dd287..6ab7af49 100644 --- a/dist/umd.min/System/Text/Utility.js +++ b/dist/umd.min/System/Text/Utility.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -!function(r){if("object"==typeof module&&"object"==typeof module.exports){var e=r(require,exports);void 0!==e&&(module.exports=e)}else"function"==typeof define&&define.amd&&define(["require","exports","../Types"],r)}(function(r,e){"use strict";function t(r){var e=0;if(0==r.length)return e;for(var t=0,n=r.length;n>t;t++){var a=r.charCodeAt(t);e=(e<<5)-e+a,e|=0}return e}function n(r,t){var n=e.EMPTY;if(!isNaN(t))for(var a=0;t>a;a++)n+=r;return n}function a(r,t){if(void 0===t&&(t=1),Array.isArray(r)){for(var a=e.EMPTY,i=0,o=r;it;t++){var i=r.charCodeAt(t);e=(e<<5)-e+i,e|=0}return e}function n(r,t){var n=e.EMPTY;if(!isNaN(t))for(var i=0;t>i;i++)n+=r;return n}function i(r,t){if(void 0===t&&(t=1),Array.isArray(r)){for(var i=e.EMPTY,a=0,o=r;achars);\r\n\t\treturn source.replace(new RegExp('^[' + escaped + ']+|[' + escaped + ']+$', 'g' + (ignoreCase\r\n\t\t\t\t? 'i'\r\n\t\t\t\t: '')), EMPTY);\r\n\t}\r\n\r\n\treturn source.replace(/^\\s+|\\s+$/g, EMPTY);\r\n}\r\n\r\n/**\r\n * Takes any arg\r\n * @param source\r\n * @param args\r\n * @returns {string}\r\n */\r\nexport function format(source:string, ...args:any[])\r\n{\r\n\treturn supplant(source, args);\r\n}\r\n\r\n//\r\n\r\n/**\r\n * This takes a string and replaces '{string}' with the respected parameter.\r\n * Also allows for passing an array in order to use '{n}' notation.\r\n * Not limited to an array's indexes. For example, {length} is allowed.\r\n * Based upon Crockford's supplant function.\r\n * @param source\r\n * @param params\r\n * @returns {string}\r\n */\r\nexport function supplant(source:string, params:{[key:string]:any}|any[]):string\r\n{\r\n\tvar oIsArray = Array.isArray(params);\r\n\treturn source.replace(/\\{([^{}]*)\\}/g,\r\n\t\t(a:string, b:string):any=>\r\n\t\t{\r\n\t\t\tvar n:any = b;\r\n\t\t\tif(oIsArray)\r\n\t\t\t{\r\n\t\t\t\tlet i = parseInt(b);\r\n\t\t\t\tif(!isNaN(i)) n = i;\r\n\t\t\t}\r\n\r\n\t\t\tvar r = (params)[n];\r\n\t\t\tswitch(typeof r)\r\n\t\t\t{\r\n\t\t\t\tcase Type.STRING:\r\n\t\t\t\tcase Type.NUMBER:\r\n\t\t\t\tcase Type.BOOLEAN:\r\n\t\t\t\t\treturn r;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\treturn (r && Type.hasMemberOfType(r, \"toString\", Type.FUNCTION))\r\n\t\t\t\t\t\t? r.toString()\r\n\t\t\t\t\t\t: a;\r\n\t\t\t}\r\n\t\t}\r\n\t);\r\n}\r\n\r\n\r\nfunction canMatch(source:string, match:string):boolean {\r\n\tif(!Type.isString(source) || !match) return false;\r\n\tif(source===match) return true;\r\n\tif(match.lengthchars);\r\n\t\treturn source.replace(new RegExp('^[' + escaped + ']+|[' + escaped + ']+$', 'g' + (ignoreCase\r\n\t\t\t\t? 'i'\r\n\t\t\t\t: '')), EMPTY);\r\n\t}\r\n\r\n\treturn source.replace(/^\\s+|\\s+$/g, EMPTY);\r\n}\r\n\r\n/**\r\n * Takes any arg\r\n * @param source\r\n * @param args\r\n * @returns {string}\r\n */\r\nexport function format(source:string, ...args:any[])\r\n{\r\n\treturn supplant(source, args);\r\n}\r\n\r\n//\r\n\r\n/**\r\n * This takes a string and replaces '{string}' with the respected parameter.\r\n * Also allows for passing an array in order to use '{n}' notation.\r\n * Not limited to an array's indexes. For example, {length} is allowed.\r\n * Based upon Crockford's supplant function.\r\n * @param source\r\n * @param params\r\n * @returns {string}\r\n */\r\nexport function supplant(source:string, params:{[key:string]:any}|any[]):string\r\n{\r\n\tvar oIsArray = Array.isArray(params);\r\n\treturn source.replace(/\\{([^{}]*)\\}/g,\r\n\t\t(a:string, b:string):any=>\r\n\t\t{\r\n\t\t\tvar n:any = b;\r\n\t\t\tif(oIsArray)\r\n\t\t\t{\r\n\t\t\t\tlet i = parseInt(b);\r\n\t\t\t\tif(!isNaN(i)) n = i;\r\n\t\t\t}\r\n\r\n\t\t\tvar r = (params)[n];\r\n\t\t\tswitch(typeof r)\r\n\t\t\t{\r\n\t\t\t\tcase Type.STRING:\r\n\t\t\t\tcase Type.NUMBER:\r\n\t\t\t\tcase Type.BOOLEAN:\r\n\t\t\t\t\treturn r;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\treturn (r && Type.hasMemberOfType(r, \"toString\", Type.FUNCTION))\r\n\t\t\t\t\t\t? r.toString()\r\n\t\t\t\t\t\t: a;\r\n\t\t\t}\r\n\t\t}\r\n\t);\r\n}\r\n\r\n\r\nfunction canMatch(source:string, match:string):boolean {\r\n\tif(!Type.isString(source) || !match) return false;\r\n\tif(source===match) return true;\r\n\tif(match.length -/// -/// -/// -/// -/// -/// -/// -import TimeQuantity from './TimeQuantity'; -export default class ClockTime extends TimeQuantity implements IClockTime { +/*! + * @author electricessence / https://github.com/electricessence/ + * Originally based upon .NET source but with many additions and improvements. + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +import { TimeQuantity } from "./TimeQuantity"; +import { IClockTime } from "./ITimeStamp"; +export declare class ClockTime extends TimeQuantity implements IClockTime { days: number; hour: number; minute: number; @@ -20,3 +18,4 @@ export default class ClockTime extends TimeQuantity implements IClockTime { static millisecondsFromTime(hours: number, minutes: number, seconds?: number, milliseconds?: number): number; toString(): string; } +export default ClockTime; diff --git a/dist/umd.min/System/Time/ClockTime.js b/dist/umd.min/System/Time/ClockTime.js index 98718710..00eb4c66 100644 --- a/dist/umd.min/System/Time/ClockTime.js +++ b/dist/umd.min/System/Time/ClockTime.js @@ -1,2 +1,7 @@ -var __extends=this&&this.__extends||function(e,t){function n(){this.constructor=e}for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","./TimeQuantity"],e)}(function(e,t){"use strict";function n(e,t){return 1!==Math.abs(e)&&(t+="s"),t}var o=e("./TimeQuantity"),i=function(e){function t(){for(var n=[],o=0;o1?t.millisecondsFromTime(n[0]||0,n[1]||0,n.length>2&&n[2]||0,n.length>3&&n[3]||0):n.length>0&&n[0]||0);var i=this,r=Math.abs(i.getTotalMilliseconds()),u=Math.floor(r);i.tick=1e4*(r-u),i.days=u/864e5|0,u-=864e5*i.days,i.hour=u/36e5|0,u-=36e5*i.hour,i.minute=u/6e4|0,u-=6e4*i.minute,i.second=u/1e3|0,u-=1e3*i.second,i.millisecond=u,Object.freeze(i)}return __extends(t,e),t.from=function(e,n,o,i){return void 0===o&&(o=0),void 0===i&&(i=0),new t(e,n,o,i)},t.millisecondsFromTime=function(e,t,n,o){void 0===n&&(n=0),void 0===o&&(o=0);var i=e;return i*=60,i+=t,i*=60,i+=n,i*=1e3,i+=o},t.prototype.toString=function(){var e=this,t=[];return e.days&&t.push(n(e.days,"day")),e.hour&&t.push(n(e.hour,"hour")),e.minute&&t.push(n(e.minute,"minute")),e.second&&t.push(n(e.second,"second")),t.length>1&&t.splice(t.length-1,0,"and"),t.join(", ").replace(", and, "," and ")},t}(o["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=i}); +/*! + * @author electricessence / https://github.com/electricessence/ + * Originally based upon .NET source but with many additions and improvements. + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +var __extends=this&&this.__extends||function(e,t){function n(){this.constructor=e}for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","./TimeQuantity"],e)}(function(e,t){"use strict";function n(e,t){return 1!==Math.abs(e)&&(t+="s"),t}var o=e("./TimeQuantity"),i=function(e){function t(){for(var n=[],o=0;o1?t.millisecondsFromTime(n[0]||0,n[1]||0,n.length>2&&n[2]||0,n.length>3&&n[3]||0):n.length>0&&n[0]||0);var i=this,r=Math.abs(i.getTotalMilliseconds()),u=Math.floor(r);i.tick=1e4*(r-u),i.days=u/864e5|0,u-=864e5*i.days,i.hour=u/36e5|0,u-=36e5*i.hour,i.minute=u/6e4|0,u-=6e4*i.minute,i.second=u/1e3|0,u-=1e3*i.second,i.millisecond=u,Object.freeze(i)}return __extends(t,e),t.from=function(e,n,o,i){return void 0===o&&(o=0),void 0===i&&(i=0),new t(e,n,o,i)},t.millisecondsFromTime=function(e,t,n,o){void 0===n&&(n=0),void 0===o&&(o=0);var i=e;return i*=60,i+=t,i*=60,i+=n,i*=1e3,i+=o},t.prototype.toString=function(){var e=this,t=[];return e.days&&t.push(n(e.days,"day")),e.hour&&t.push(n(e.hour,"hour")),e.minute&&t.push(n(e.minute,"minute")),e.second&&t.push(n(e.second,"second")),t.length>1&&t.splice(t.length-1,0,"and"),t.join(", ").replace(", and, "," and ")},t}(o.TimeQuantity);t.ClockTime=i,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=i}); //# sourceMappingURL=ClockTime.js.map diff --git a/dist/umd.min/System/Time/ClockTime.js.map b/dist/umd.min/System/Time/ClockTime.js.map index bf822bfc..39436e4a 100644 --- a/dist/umd.min/System/Time/ClockTime.js.map +++ b/dist/umd.min/System/Time/ClockTime.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Time/ClockTime.js","System/Time/ClockTime.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","pluralize","value","label","Math","abs","TimeQuantity_1","ClockTime","_super","args","_i","arguments","length","call","millisecondsFromTime","_","ms","getTotalMilliseconds","msi","floor","tick","days","hour","minute","second","millisecond","freeze","from","hours","minutes","seconds","milliseconds","toString","a","push","splice","join","replace","defineProperty"],"mappings":"AAAA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,kBAAmBN,IAEtD,SAAUI,EAASF,GCCtB,YA2GA,SAAAM,GAAmBC,EAAcC,GAKhC,MAHqB,KAAlBC,KAAKC,IAAIH,KACXC,GAAS,KAEHA,EA7GR,GAAAG,GAAAT,EAAyB,kBAGzBU,EAAA,SAAAC,GAaC,QAAAD,KDbW,ICaC,GAAAE,MAAAC,EAAA,EAAAA,EAAAC,UAAAC,OAAAF,IAAAD,EAAAC,EAAA,GAAAC,UAAAD,EAEXF,GAAAK,KAAA9B,KACC0B,EAAKG,OAAO,EACTL,EAAUO,qBACZL,EAAK,IAAM,EACXA,EAAK,IAAM,EACXA,EAAKG,OAAO,GAAKH,EAAK,IAAM,EAC5BA,EAAKG,OAAO,GAAKH,EAAK,IAAM,GAEzBA,EAAKG,OAAO,GAAKH,EAAK,IAAM,EAGjC,IAAIM,GAAIhC,KACJiC,EAAKZ,KAAKC,IAAIU,EAAEE,wBAChBC,EAAMd,KAAKe,MAAMH,EAErBD,GAAEK,KAAkB,KAAVJ,EAAKE,GAEfH,EAAEM,KAAQH,EAAI,MAAgC,EAC9CA,GAAgB,MAATH,EAAEM,KAETN,EAAEO,KAAQJ,EAAI,KAAiC,EAC/CA,GAAgB,KAATH,EAAEO,KAETP,EAAEQ,OAAUL,EAAI,IAAmC,EACnDA,GAAkB,IAAXH,EAAEQ,OAETR,EAAES,OAAUN,EAAI,IAAmC,EACnDA,GAAkB,IAAXH,EAAES,OAETT,EAAEU,YAAcP,EAEhB3B,OAAOmC,OAAOX,GAmDhB,MAhGwBjC,WAAAyB,EAAAC,GAkDhBD,EAAAoB,KAAP,SAAYC,EAAcC,EAAgBC,EAAoBC,GAE7D,MAFyC,UAAAD,IAAAA,EAAA,GAAoB,SAAAC,IAAAA,EAAA,GAEtD,GAAIxB,GAAUqB,EAAOC,EAASC,EAASC,IAGxCxB,EAAAO,qBAAP,SACCc,EACAC,EACAC,EACAC,GADA,SAAAD,IAAAA,EAAA,GACA,SAAAC,IAAAA,EAAA,EAEA,IAAI7B,GAAQ0B,CAOZ,OANA1B,IAAS,GACTA,GAAS2B,EACT3B,GAAS,GACTA,GAAS4B,EACT5B,GAAS,IACTA,GAAS6B,GAIVxB,EAAAjB,UAAA0C,SAAA,WAKC,GAAIjB,GAAIhC,KAAMkD,IAiBd,OAfGlB,GAAEM,MACJY,EAAEC,KAAKjC,EAAUc,EAAEM,KAAM,QAEvBN,EAAEO,MACJW,EAAEC,KAAKjC,EAAUc,EAAEO,KAAM,SAEvBP,EAAEQ,QACJU,EAAEC,KAAKjC,EAAUc,EAAEQ,OAAQ,WAEzBR,EAAES,QACJS,EAAEC,KAAKjC,EAAUc,EAAES,OAAQ,WAEzBS,EAAErB,OAAO,GACXqB,EAAEE,OAAOF,EAAErB,OAAS,EAAG,EAAG,OAEpBqB,EAAEG,KAAK,MAAMC,QAAQ,UAAW,UAGzC9B,GAhGwBD,EAAAA,WADxBf,QAAA+C,eAAA3C,EAAA,cAAAO,OAAA,IDuDIP,EAAAA,WAAkBY","file":"System/Time/ClockTime.js","sourcesContent":["var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", './TimeQuantity'], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var TimeQuantity_1 = require('./TimeQuantity');\n var ClockTime = (function (_super) {\n __extends(ClockTime, _super);\n function ClockTime() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i - 0] = arguments[_i];\n }\n _super.call(this, args.length > 1\n ? ClockTime.millisecondsFromTime(args[0] || 0, args[1] || 0, args.length > 2 && args[2] || 0, args.length > 3 && args[3] || 0)\n : (args.length > 0 && args[0] || 0));\n var _ = this;\n var ms = Math.abs(_.getTotalMilliseconds());\n var msi = Math.floor(ms);\n _.tick = (ms - msi) * 10000;\n _.days = (msi / 86400000) | 0;\n msi -= _.days * 86400000;\n _.hour = (msi / 3600000) | 0;\n msi -= _.hour * 3600000;\n _.minute = (msi / 60000) | 0;\n msi -= _.minute * 60000;\n _.second = (msi / 1000) | 0;\n msi -= _.second * 1000;\n _.millisecond = msi;\n Object.freeze(_);\n }\n ClockTime.from = function (hours, minutes, seconds, milliseconds) {\n if (seconds === void 0) { seconds = 0; }\n if (milliseconds === void 0) { milliseconds = 0; }\n return new ClockTime(hours, minutes, seconds, milliseconds);\n };\n ClockTime.millisecondsFromTime = function (hours, minutes, seconds, milliseconds) {\n if (seconds === void 0) { seconds = 0; }\n if (milliseconds === void 0) { milliseconds = 0; }\n var value = hours;\n value *= 60;\n value += minutes;\n value *= 60;\n value += seconds;\n value *= 1000;\n value += milliseconds;\n return value;\n };\n ClockTime.prototype.toString = function () {\n var _ = this, a = [];\n if (_.days)\n a.push(pluralize(_.days, \"day\"));\n if (_.hour)\n a.push(pluralize(_.hour, \"hour\"));\n if (_.minute)\n a.push(pluralize(_.minute, \"minute\"));\n if (_.second)\n a.push(pluralize(_.second, \"second\"));\n if (a.length > 1)\n a.splice(a.length - 1, 0, \"and\");\n return a.join(\", \").replace(\", and, \", \" and \");\n };\n return ClockTime;\n }(TimeQuantity_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ClockTime;\n function pluralize(value, label) {\n if (Math.abs(value) !== 1)\n label += \"s\";\n return label;\n }\n});\n","///\r\n///\r\n///\r\n///\r\n///\r\n///\r\n///\r\n///\r\n/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Originally based upon .NET source but with many additions and improvements.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport {areEqual,compare} from '../Compare';\r\nimport TimeQuantity from './TimeQuantity';\r\n\r\n\r\nexport default\r\nclass ClockTime extends TimeQuantity implements IClockTime\r\n{\r\n\r\n\tdays:number;\r\n\thour:number;\r\n\tminute:number;\r\n\tsecond:number;\r\n\tmillisecond:number;\r\n\ttick:number;\r\n\r\n\tconstructor(milliseconds:number);\r\n\tconstructor(hours:number, minutes:number, seconds?:number, milliseconds?:number);\r\n\tconstructor(...args:number[])\r\n\t{\r\n\t\tsuper(\r\n\t\t\targs.length>1\r\n\t\t\t\t? ClockTime.millisecondsFromTime(\r\n\t\t\t\targs[0] || 0,\r\n\t\t\t\targs[1] || 0,\r\n\t\t\t\targs.length>2 && args[2] || 0,\r\n\t\t\t\targs.length>3 && args[3] || 0\r\n\t\t\t)\r\n\t\t\t\t: (args.length>0 && args[0] || 0)\r\n\t\t);\r\n\r\n\t\tvar _ = this;\r\n\t\tvar ms = Math.abs(_.getTotalMilliseconds());\r\n\t\tvar msi = Math.floor(ms);\r\n\r\n\t\t_.tick = (ms - msi)*HowMany.Ticks.Per.Millisecond;\r\n\r\n\t\t_.days = (msi/HowMany.Milliseconds.Per.Day) | 0;\r\n\t\tmsi -= _.days * HowMany.Milliseconds.Per.Day;\r\n\r\n\t\t_.hour = (msi/HowMany.Milliseconds.Per.Hour) | 0;\r\n\t\tmsi -= _.hour * HowMany.Milliseconds.Per.Hour;\r\n\r\n\t\t_.minute = (msi/HowMany.Milliseconds.Per.Minute) | 0;\r\n\t\tmsi -= _.minute * HowMany.Milliseconds.Per.Minute;\r\n\r\n\t\t_.second = (msi/HowMany.Milliseconds.Per.Second) | 0;\r\n\t\tmsi -= _.second * HowMany.Milliseconds.Per.Second;\r\n\r\n\t\t_.millisecond = msi;\r\n\r\n\t\tObject.freeze(_);\r\n\t}\r\n\r\n\r\n\t// Static version for relative consistency. Constructor does allow this format.\r\n\tstatic from(hours:number, minutes:number, seconds:number = 0, milliseconds:number = 0):ClockTime\r\n\t{\r\n\t\treturn new ClockTime(hours, minutes, seconds, milliseconds);\r\n\t}\r\n\r\n\tstatic millisecondsFromTime(\r\n\t\thours:number,\r\n\t\tminutes:number,\r\n\t\tseconds:number = 0,\r\n\t\tmilliseconds:number = 0):number\r\n\t{\r\n\t\tvar value = hours;\r\n\t\tvalue *= HowMany.Minutes.Per.Hour;\r\n\t\tvalue += minutes;\r\n\t\tvalue *= HowMany.Seconds.Per.Minute;\r\n\t\tvalue += seconds;\r\n\t\tvalue *= HowMany.Milliseconds.Per.Second;\r\n\t\tvalue += milliseconds;\r\n\t\treturn value;\r\n\t}\r\n\r\n\ttoString(/*format?:string, formatProvider?:IFormatProvider*/):string\r\n\t{\r\n\t\t/* INSERT CUSTOM FORMATTING CODE HERE */\r\n\r\n\r\n\t\tvar _ = this, a:string[] = [];\r\n\r\n\t\tif(_.days)\r\n\t\t\ta.push(pluralize(_.days, \"day\"));\r\n\r\n\t\tif(_.hour)\r\n\t\t\ta.push(pluralize(_.hour, \"hour\"));\r\n\r\n\t\tif(_.minute)\r\n\t\t\ta.push(pluralize(_.minute, \"minute\"));\r\n\r\n\t\tif(_.second)\r\n\t\t\ta.push(pluralize(_.second, \"second\"));\r\n\r\n\t\tif(a.length>1)\r\n\t\t\ta.splice(a.length - 1, 0, \"and\");\r\n\r\n\t\treturn a.join(\", \").replace(\", and, \", \" and \");\r\n\t}\r\n\r\n}\r\n\r\n\r\n// Temporary until the full TimeSpanFormat is available.\r\nfunction pluralize(value:number, label:string):string\r\n{\r\n\tif(Math.abs(value)!==1)\r\n\t\tlabel += \"s\";\r\n\r\n\treturn label;\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Time/ClockTime.js","System/Time/ClockTime.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","pluralize","value","label","Math","abs","TimeQuantity_1","ClockTime","_super","args","_i","arguments","length","call","millisecondsFromTime","_","ms","getTotalMilliseconds","msi","floor","tick","days","hour","minute","second","millisecond","freeze","from","hours","minutes","seconds","milliseconds","toString","a","push","splice","join","replace","TimeQuantity","defineProperty"],"mappings":";;;;;AAKA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,kBAAmBN,IAEtD,SAAUI,EAASF,GAClB,YC6FJ,SAAAM,GAAmBC,EAAcC,GAKhC,MAHqB,KAAlBC,KAAKC,IAAIH,KACXC,GAAS,KAEHA,EA9GR,GAAAG,GAAAT,EAA2B,kBAK3BU,EAAA,SAAAC,GAYC,QAAAD,KDCW,ICDC,GAAAE,MAAAC,EAAA,EAAAA,EAAAC,UAAAC,OAAAF,IAAAD,EAAAC,EAAA,GAAAC,UAAAD,EAEXF,GAAAK,KAAA9B,KACC0B,EAAKG,OAAO,EACTL,EAAUO,qBACZL,EAAK,IAAM,EACXA,EAAK,IAAM,EACXA,EAAKG,OAAO,GAAKH,EAAK,IAAM,EAC5BA,EAAKG,OAAO,GAAKH,EAAK,IAAM,GAEzBA,EAAKG,OAAO,GAAKH,EAAK,IAAM,EAGjC,IAAIM,GAAIhC,KACJiC,EAAKZ,KAAKC,IAAIU,EAAEE,wBAChBC,EAAMd,KAAKe,MAAMH,EAErBD,GAAEK,KAAkB,KAAVJ,EAAKE,GAEfH,EAAEM,KAAQH,EAAI,MAAwB,EACtCA,GAAc,MAAPH,EAAEM,KAETN,EAAEO,KAAQJ,EAAI,KAAyB,EACvCA,GAAc,KAAPH,EAAEO,KAETP,EAAEQ,OAAUL,EAAI,IAA2B,EAC3CA,GAAgB,IAATH,EAAEQ,OAETR,EAAES,OAAUN,EAAI,IAA2B,EAC3CA,GAAgB,IAATH,EAAES,OAETT,EAAEU,YAAcP,EAEhB3B,OAAOmC,OAAOX,GAmDhB,MAhG+BjC,WAAAyB,EAAAC,GAkDvBD,EAAAoB,KAAP,SAAYC,EAAcC,EAAgBC,EAAoBC,GAE7D,MAFyC,UAAAD,IAAAA,EAAA,GAAoB,SAAAC,IAAAA,EAAA,GAEtD,GAAIxB,GAAUqB,EAAOC,EAASC,EAASC,IAGxCxB,EAAAO,qBAAP,SACCc,EACAC,EACAC,EACAC,GADA,SAAAD,IAAAA,EAAA,GACA,SAAAC,IAAAA,EAAA,EAEA,IAAI7B,GAAQ0B,CAOZ,OANA1B,IAAS,GACTA,GAAS2B,EACT3B,GAAS,GACTA,GAAS4B,EACT5B,GAAS,IACTA,GAAS6B,GAIVxB,EAAAjB,UAAA0C,SAAA,WAKC,GAAIjB,GAAIhC,KAAMkD,IAiBd,OAfGlB,GAAEM,MACJY,EAAEC,KAAKjC,EAAUc,EAAEM,KAAM,QAEvBN,EAAEO,MACJW,EAAEC,KAAKjC,EAAUc,EAAEO,KAAM,SAEvBP,EAAEQ,QACJU,EAAEC,KAAKjC,EAAUc,EAAEQ,OAAQ,WAEzBR,EAAES,QACJS,EAAEC,KAAKjC,EAAUc,EAAES,OAAQ,WAEzBS,EAAErB,OAAO,GACXqB,EAAEE,OAAOF,EAAErB,OAAS,EAAG,EAAG,OAEpBqB,EAAEG,KAAK,MAAMC,QAAQ,UAAW,UAGzC9B,GAhG+BD,EAAAgC,aAAlB3C,GAAAY,UAASA,EA4GtBhB,OAAAgD,eAAA5C,EAAA,cAAAO,OAAA,IDlCIP,EAAAA,WCkCWY","file":"System/Time/ClockTime.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Originally based upon .NET source but with many additions and improvements.\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"./TimeQuantity\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var TimeQuantity_1 = require(\"./TimeQuantity\");\n var ClockTime = (function (_super) {\n __extends(ClockTime, _super);\n function ClockTime() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i - 0] = arguments[_i];\n }\n _super.call(this, args.length > 1\n ? ClockTime.millisecondsFromTime(args[0] || 0, args[1] || 0, args.length > 2 && args[2] || 0, args.length > 3 && args[3] || 0)\n : (args.length > 0 && args[0] || 0));\n var _ = this;\n var ms = Math.abs(_.getTotalMilliseconds());\n var msi = Math.floor(ms);\n _.tick = (ms - msi) * 10000;\n _.days = (msi / 86400000) | 0;\n msi -= _.days * 86400000;\n _.hour = (msi / 3600000) | 0;\n msi -= _.hour * 3600000;\n _.minute = (msi / 60000) | 0;\n msi -= _.minute * 60000;\n _.second = (msi / 1000) | 0;\n msi -= _.second * 1000;\n _.millisecond = msi;\n Object.freeze(_);\n }\n ClockTime.from = function (hours, minutes, seconds, milliseconds) {\n if (seconds === void 0) { seconds = 0; }\n if (milliseconds === void 0) { milliseconds = 0; }\n return new ClockTime(hours, minutes, seconds, milliseconds);\n };\n ClockTime.millisecondsFromTime = function (hours, minutes, seconds, milliseconds) {\n if (seconds === void 0) { seconds = 0; }\n if (milliseconds === void 0) { milliseconds = 0; }\n var value = hours;\n value *= 60;\n value += minutes;\n value *= 60;\n value += seconds;\n value *= 1000;\n value += milliseconds;\n return value;\n };\n ClockTime.prototype.toString = function () {\n var _ = this, a = [];\n if (_.days)\n a.push(pluralize(_.days, \"day\"));\n if (_.hour)\n a.push(pluralize(_.hour, \"hour\"));\n if (_.minute)\n a.push(pluralize(_.minute, \"minute\"));\n if (_.second)\n a.push(pluralize(_.second, \"second\"));\n if (a.length > 1)\n a.splice(a.length - 1, 0, \"and\");\n return a.join(\", \").replace(\", and, \", \" and \");\n };\n return ClockTime;\n }(TimeQuantity_1.TimeQuantity));\n exports.ClockTime = ClockTime;\n function pluralize(value, label) {\n if (Math.abs(value) !== 1)\n label += \"s\";\n return label;\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ClockTime;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Originally based upon .NET source but with many additions and improvements.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {TimeQuantity} from \"./TimeQuantity\";\r\nimport {IClockTime} from \"./ITimeStamp\";\r\nimport {Minutes, Seconds, Milliseconds, Ticks} from \"./HowMany\";\r\n\r\n\r\nexport class ClockTime extends TimeQuantity implements IClockTime\r\n{\r\n\r\n\tdays:number;\r\n\thour:number;\r\n\tminute:number;\r\n\tsecond:number;\r\n\tmillisecond:number;\r\n\ttick:number;\r\n\r\n\tconstructor(milliseconds:number);\r\n\tconstructor(hours:number, minutes:number, seconds?:number, milliseconds?:number);\r\n\tconstructor(...args:number[])\r\n\t{\r\n\t\tsuper(\r\n\t\t\targs.length>1\r\n\t\t\t\t? ClockTime.millisecondsFromTime(\r\n\t\t\t\targs[0] || 0,\r\n\t\t\t\targs[1] || 0,\r\n\t\t\t\targs.length>2 && args[2] || 0,\r\n\t\t\t\targs.length>3 && args[3] || 0\r\n\t\t\t)\r\n\t\t\t\t: (args.length>0 && args[0] || 0)\r\n\t\t);\r\n\r\n\t\tvar _ = this;\r\n\t\tvar ms = Math.abs(_.getTotalMilliseconds());\r\n\t\tvar msi = Math.floor(ms);\r\n\r\n\t\t_.tick = (ms - msi)*Ticks.Per.Millisecond;\r\n\r\n\t\t_.days = (msi/Milliseconds.Per.Day) | 0;\r\n\t\tmsi -= _.days*Milliseconds.Per.Day;\r\n\r\n\t\t_.hour = (msi/Milliseconds.Per.Hour) | 0;\r\n\t\tmsi -= _.hour*Milliseconds.Per.Hour;\r\n\r\n\t\t_.minute = (msi/Milliseconds.Per.Minute) | 0;\r\n\t\tmsi -= _.minute*Milliseconds.Per.Minute;\r\n\r\n\t\t_.second = (msi/Milliseconds.Per.Second) | 0;\r\n\t\tmsi -= _.second*Milliseconds.Per.Second;\r\n\r\n\t\t_.millisecond = msi;\r\n\r\n\t\tObject.freeze(_);\r\n\t}\r\n\r\n\r\n\t// Static version for relative consistency. Constructor does allow this format.\r\n\tstatic from(hours:number, minutes:number, seconds:number = 0, milliseconds:number = 0):ClockTime\r\n\t{\r\n\t\treturn new ClockTime(hours, minutes, seconds, milliseconds);\r\n\t}\r\n\r\n\tstatic millisecondsFromTime(\r\n\t\thours:number,\r\n\t\tminutes:number,\r\n\t\tseconds:number = 0,\r\n\t\tmilliseconds:number = 0):number\r\n\t{\r\n\t\tvar value = hours;\r\n\t\tvalue *= Minutes.Per.Hour;\r\n\t\tvalue += minutes;\r\n\t\tvalue *= Seconds.Per.Minute;\r\n\t\tvalue += seconds;\r\n\t\tvalue *= Milliseconds.Per.Second;\r\n\t\tvalue += milliseconds;\r\n\t\treturn value;\r\n\t}\r\n\r\n\ttoString(/*format?:string, formatProvider?:IFormatProvider*/):string\r\n\t{\r\n\t\t/* INSERT CUSTOM FORMATTING CODE HERE */\r\n\r\n\r\n\t\tvar _ = this, a:string[] = [];\r\n\r\n\t\tif(_.days)\r\n\t\t\ta.push(pluralize(_.days, \"day\"));\r\n\r\n\t\tif(_.hour)\r\n\t\t\ta.push(pluralize(_.hour, \"hour\"));\r\n\r\n\t\tif(_.minute)\r\n\t\t\ta.push(pluralize(_.minute, \"minute\"));\r\n\r\n\t\tif(_.second)\r\n\t\t\ta.push(pluralize(_.second, \"second\"));\r\n\r\n\t\tif(a.length>1)\r\n\t\t\ta.splice(a.length - 1, 0, \"and\");\r\n\r\n\t\treturn a.join(\", \").replace(\", and, \", \" and \");\r\n\t}\r\n\r\n}\r\n\r\n\r\n// Temporary until the full TimeSpanFormat is available.\r\nfunction pluralize(value:number, label:string):string\r\n{\r\n\tif(Math.abs(value)!==1)\r\n\t\tlabel += \"s\";\r\n\r\n\treturn label;\r\n}\r\n\r\nexport default ClockTime;"]} \ No newline at end of file diff --git a/dist/umd.min/System/Time/DateTime.d.ts b/dist/umd.min/System/Time/DateTime.d.ts index 76c3b280..dd375441 100644 --- a/dist/umd.min/System/Time/DateTime.d.ts +++ b/dist/umd.min/System/Time/DateTime.d.ts @@ -1,16 +1,15 @@ -/// -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Based on .NET DateTime's interface. * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import ClockTime from './ClockTime'; -import TimeSpan from './TimeSpan'; -declare class DateTime implements ICalendarDate, IDateTime { +import { ICalendarDate, ITimeStamp } from "./ITimeStamp"; +import { TimeSpan } from "./TimeSpan"; +import { ClockTime } from "./ClockTime"; +import { IDateTime } from "./IDateTime"; +import { Gregorian } from "./Calendars"; +import { ITimeQuantity } from "./ITimeQuantity"; +export declare class DateTime implements ICalendarDate, IDateTime { private _value; toJsDate(): Date; private _setJsDate(value); @@ -47,7 +46,7 @@ declare class DateTime implements ICalendarDate, IDateTime { static isLeapYear(year: number): boolean; static daysInMonth(year: number, month: Gregorian.Month): number; } -declare module DateTime { +export declare module DateTime { const enum Kind { Unspecified = 0, Local = 1, diff --git a/dist/umd.min/System/Time/DateTime.js b/dist/umd.min/System/Time/DateTime.js index 312750ac..9dbe86de 100644 --- a/dist/umd.min/System/Time/DateTime.js +++ b/dist/umd.min/System/Time/DateTime.js @@ -3,5 +3,5 @@ * Based on .NET DateTime's interface. * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","./ClockTime","./TimeSpan","./TimeStamp"],e)}(function(e,t){"use strict";var n=e("./ClockTime"),o=e("./TimeSpan"),r=e("./TimeStamp"),i=function(){function e(t,n){void 0===t&&(t=new Date),void 0===n&&(n=1);var o=this;o._kind=n,t instanceof e?o._value=t.toJsDate():t instanceof Date?o._setJsDate(t):o._value=void 0===t?new Date:new Date(t)}return e.prototype.toJsDate=function(){return new Date(this._value.getTime())},e.prototype._setJsDate=function(e){this._time=null,this._value=new Date(e.getTime())},Object.defineProperty(e.prototype,"kind",{get:function(){return this._kind},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"year",{get:function(){return this._value.getFullYear()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"month",{get:function(){return this._value.getMonth()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"day",{get:function(){return this._value.getDate()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dayOfWeek",{get:function(){return this._value.getDay()},enumerable:!0,configurable:!0}),e.prototype.addMilliseconds=function(t){return t=t||0,new e(this._value.getTime()+t,this._kind)},e.prototype.addSeconds=function(e){return e=e||0,this.addMilliseconds(1e3*e)},e.prototype.addMinutes=function(e){return e=e||0,this.addMilliseconds(6e4*e)},e.prototype.addHours=function(e){return e=e||0,this.addMilliseconds(36e5*e)},e.prototype.addDays=function(e){return e=e||0,this.addMilliseconds(864e5*e)},e.prototype.addMonths=function(t){t=t||0;var n=this.toJsDate();return n.setMonth(n.getMonth()+t),new e(n,this._kind)},e.prototype.addYears=function(t){t=t||0;var n=this.toJsDate();return n.setFullYear(n.getFullYear()+t),new e(n,this._kind)},e.prototype.add=function(e){return this.addMilliseconds(e.getTotalMilliseconds())},e.prototype.subtract=function(e){return this.addMilliseconds(-e.getTotalMilliseconds())},e.prototype.timePassedSince=function(t){return e.between(t,this)},Object.defineProperty(e.prototype,"date",{get:function(){var t=this;return new e(new Date(t.year,t.month,t.day),t._kind)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"timeOfDay",{get:function(){var e=this,t=e._time;if(!t){var o=this._value;e._time=t=new n["default"](o.getHours(),o.getMinutes(),o.getSeconds(),o.getMilliseconds())}return t},enumerable:!0,configurable:!0}),e.prototype.toTimeStamp=function(){return r["default"].from(this)},Object.defineProperty(e,"now",{get:function(){return new e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"toUniversalTime",{get:function(){var t=this;if(1!=t._kind)return new e(t,t._kind);var n=t._value;return new e(new Date(n.getUTCFullYear(),n.getUTCMonth(),n.getUTCDate(),n.getUTCHours(),n.getUTCMinutes(),n.getUTCSeconds(),n.getUTCMilliseconds()),2)},enumerable:!0,configurable:!0}),Object.defineProperty(e,"today",{get:function(){return e.now.date},enumerable:!0,configurable:!0}),Object.defineProperty(e,"tomorrow",{get:function(){var t=e.today;return t.addDays(1)},enumerable:!0,configurable:!0}),e.between=function(t,n){var r=t instanceof e?t._value:t,i=n instanceof e?n._value:n;return new o["default"](r.getTime()-i.getTime())},e.isLeapYear=function(e){return e%4==0&&e%100!=0||e%400==0},e.daysInMonth=function(e,t){return new Date(e,t+1,0).getDate()},e}();Object.freeze(i),Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=i}); +!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","./TimeSpan","./ClockTime","./TimeStamp"],e)}(function(e,t){"use strict";var n=e("./TimeSpan"),o=e("./ClockTime"),r=e("./TimeStamp"),i=function(){function e(t,n){void 0===t&&(t=new Date),void 0===n&&(n=1);var o=this;o._kind=n,t instanceof e?o._value=t.toJsDate():t instanceof Date?o._setJsDate(t):o._value=void 0===t?new Date:new Date(t)}return e.prototype.toJsDate=function(){return new Date(this._value.getTime())},e.prototype._setJsDate=function(e){this._time=null,this._value=new Date(e.getTime())},Object.defineProperty(e.prototype,"kind",{get:function(){return this._kind},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"year",{get:function(){return this._value.getFullYear()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"month",{get:function(){return this._value.getMonth()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"day",{get:function(){return this._value.getDate()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dayOfWeek",{get:function(){return this._value.getDay()},enumerable:!0,configurable:!0}),e.prototype.addMilliseconds=function(t){return t=t||0,new e(this._value.getTime()+t,this._kind)},e.prototype.addSeconds=function(e){return e=e||0,this.addMilliseconds(1e3*e)},e.prototype.addMinutes=function(e){return e=e||0,this.addMilliseconds(6e4*e)},e.prototype.addHours=function(e){return e=e||0,this.addMilliseconds(36e5*e)},e.prototype.addDays=function(e){return e=e||0,this.addMilliseconds(864e5*e)},e.prototype.addMonths=function(t){t=t||0;var n=this.toJsDate();return n.setMonth(n.getMonth()+t),new e(n,this._kind)},e.prototype.addYears=function(t){t=t||0;var n=this.toJsDate();return n.setFullYear(n.getFullYear()+t),new e(n,this._kind)},e.prototype.add=function(e){return this.addMilliseconds(e.getTotalMilliseconds())},e.prototype.subtract=function(e){return this.addMilliseconds(-e.getTotalMilliseconds())},e.prototype.timePassedSince=function(t){return e.between(t,this)},Object.defineProperty(e.prototype,"date",{get:function(){var t=this;return new e(new Date(t.year,t.month,t.day),t._kind)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"timeOfDay",{get:function(){var e=this,t=e._time;if(!t){var n=this._value;e._time=t=new o.ClockTime(n.getHours(),n.getMinutes(),n.getSeconds(),n.getMilliseconds())}return t},enumerable:!0,configurable:!0}),e.prototype.toTimeStamp=function(){return r.TimeStamp.from(this)},Object.defineProperty(e,"now",{get:function(){return new e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"toUniversalTime",{get:function(){var t=this;if(1!=t._kind)return new e(t,t._kind);var n=t._value;return new e(new Date(n.getUTCFullYear(),n.getUTCMonth(),n.getUTCDate(),n.getUTCHours(),n.getUTCMinutes(),n.getUTCSeconds(),n.getUTCMilliseconds()),2)},enumerable:!0,configurable:!0}),Object.defineProperty(e,"today",{get:function(){return e.now.date},enumerable:!0,configurable:!0}),Object.defineProperty(e,"tomorrow",{get:function(){var t=e.today;return t.addDays(1)},enumerable:!0,configurable:!0}),e.between=function(t,o){var r=t instanceof e?t._value:t,i=o instanceof e?o._value:o;return new n.TimeSpan(r.getTime()-i.getTime())},e.isLeapYear=function(e){return e%4==0&&e%100!=0||e%400==0},e.daysInMonth=function(e,t){return new Date(e,t+1,0).getDate()},e}();t.DateTime=i,Object.freeze(i),Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=i}); //# sourceMappingURL=DateTime.js.map diff --git a/dist/umd.min/System/Time/DateTime.js.map b/dist/umd.min/System/Time/DateTime.js.map index 98f08ba0..3a7f1359 100644 --- a/dist/umd.min/System/Time/DateTime.js.map +++ b/dist/umd.min/System/Time/DateTime.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Time/DateTime.js","System/Time/DateTime.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","ClockTime_1","TimeSpan_1","TimeStamp_1","DateTime","value","kind","Date","_","this","_kind","_value","toJsDate","_setJsDate","prototype","getTime","_time","Object","defineProperty","get","enumerable","configurable","getFullYear","getMonth","getDate","getDay","addMilliseconds","ms","addSeconds","seconds","addMinutes","minutes","addHours","hours","addDays","days","addMonths","months","d","setMonth","addYears","years","setFullYear","add","time","getTotalMilliseconds","subtract","timePassedSince","previous","between","year","month","day","t","getHours","getMinutes","getSeconds","getMilliseconds","toTimeStamp","from","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","now","date","today","first","last","f","l","isLeapYear","daysInMonth","freeze"],"mappings":"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","file":"System/Time/DateTime.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based on .NET DateTime's interface.\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", './ClockTime', './TimeSpan', './TimeStamp'], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var ClockTime_1 = require('./ClockTime');\n var TimeSpan_1 = require('./TimeSpan');\n var TimeStamp_1 = require('./TimeStamp');\n var DateTime = (function () {\n function DateTime(value, kind) {\n if (value === void 0) { value = new Date(); }\n if (kind === void 0) { kind = 1; }\n var _ = this;\n _._kind = kind;\n if (value instanceof DateTime)\n _._value = value.toJsDate();\n else if (value instanceof Date)\n _._setJsDate(value);\n else\n _._value = value === void (0)\n ? new Date()\n : new Date(value);\n }\n DateTime.prototype.toJsDate = function () {\n return new Date(this._value.getTime());\n };\n DateTime.prototype._setJsDate = function (value) {\n this._time = null;\n this._value = new Date(value.getTime());\n };\n Object.defineProperty(DateTime.prototype, \"kind\", {\n get: function () {\n return this._kind;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTime.prototype, \"year\", {\n get: function () {\n return this._value.getFullYear();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTime.prototype, \"month\", {\n get: function () {\n return this._value.getMonth();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTime.prototype, \"day\", {\n get: function () {\n return this._value.getDate();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTime.prototype, \"dayOfWeek\", {\n get: function () {\n return this._value.getDay();\n },\n enumerable: true,\n configurable: true\n });\n DateTime.prototype.addMilliseconds = function (ms) {\n ms = ms || 0;\n return new DateTime(this._value.getTime() + ms, this._kind);\n };\n DateTime.prototype.addSeconds = function (seconds) {\n seconds = seconds || 0;\n return this.addMilliseconds(seconds * 1000);\n };\n DateTime.prototype.addMinutes = function (minutes) {\n minutes = minutes || 0;\n return this.addMilliseconds(minutes * 60000);\n };\n DateTime.prototype.addHours = function (hours) {\n hours = hours || 0;\n return this.addMilliseconds(hours * 3600000);\n };\n DateTime.prototype.addDays = function (days) {\n days = days || 0;\n return this.addMilliseconds(days * 86400000);\n };\n DateTime.prototype.addMonths = function (months) {\n months = months || 0;\n var d = this.toJsDate();\n d.setMonth(d.getMonth() + months);\n return new DateTime(d, this._kind);\n };\n DateTime.prototype.addYears = function (years) {\n years = years || 0;\n var d = this.toJsDate();\n d.setFullYear(d.getFullYear() + years);\n return new DateTime(d, this._kind);\n };\n DateTime.prototype.add = function (time) {\n return this.addMilliseconds(time.getTotalMilliseconds());\n };\n DateTime.prototype.subtract = function (time) {\n return this.addMilliseconds(-time.getTotalMilliseconds());\n };\n DateTime.prototype.timePassedSince = function (previous) {\n return DateTime.between(previous, this);\n };\n Object.defineProperty(DateTime.prototype, \"date\", {\n get: function () {\n var _ = this;\n return new DateTime(new Date(_.year, _.month, _.day), _._kind);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTime.prototype, \"timeOfDay\", {\n get: function () {\n var _ = this, t = _._time;\n if (!t) {\n var d = this._value;\n _._time = t = new ClockTime_1.default(d.getHours(), d.getMinutes(), d.getSeconds(), d.getMilliseconds());\n }\n return t;\n },\n enumerable: true,\n configurable: true\n });\n DateTime.prototype.toTimeStamp = function () {\n return TimeStamp_1.default.from(this);\n };\n Object.defineProperty(DateTime, \"now\", {\n get: function () {\n return new DateTime();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTime.prototype, \"toUniversalTime\", {\n get: function () {\n var _ = this;\n if (_._kind != 1)\n return new DateTime(_, _._kind);\n var d = _._value;\n return new DateTime(new Date(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate(), d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds(), d.getUTCMilliseconds()), 2);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTime, \"today\", {\n get: function () {\n return DateTime.now.date;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTime, \"tomorrow\", {\n get: function () {\n var today = DateTime.today;\n return today.addDays(1);\n },\n enumerable: true,\n configurable: true\n });\n DateTime.between = function (first, last) {\n var f = first instanceof DateTime ? first._value : first, l = last instanceof DateTime ? last._value : last;\n return new TimeSpan_1.default(f.getTime() - l.getTime());\n };\n DateTime.isLeapYear = function (year) {\n return ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);\n };\n DateTime.daysInMonth = function (year, month) {\n return (new Date(year, month + 1, 0)).getDate();\n };\n return DateTime;\n }());\n Object.freeze(DateTime);\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = DateTime;\n});\n","///\r\n///\r\n///\r\n///\r\n///\r\n/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based on .NET DateTime's interface.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport Type from '../Types';\r\nimport ClockTime from './ClockTime';\r\nimport TimeSpan from './TimeSpan';\r\nimport TimeStamp from './TimeStamp';\r\n\r\n\r\nclass DateTime implements ICalendarDate, IDateTime\r\n{\r\n\tprivate _value:Date;\r\n\r\n\ttoJsDate():Date\r\n\t{\r\n\t\treturn new Date(this._value.getTime()); // return a clone.\r\n\t}\r\n\r\n\tprivate _setJsDate(value:Date)\r\n\t{\r\n\t\tthis._time = null;\r\n\t\tthis._value = new Date(value.getTime());\r\n\t}\r\n\r\n\tconstructor();\r\n\tconstructor(dateString:string, kind?:DateTime.Kind);\r\n\tconstructor(milliseconds:number, kind?:DateTime.Kind);\r\n\tconstructor(source:Date, kind?:DateTime.Kind);\r\n\tconstructor(source:DateTime, kind?:DateTime.Kind);\r\n\tconstructor(value:any = new Date(), kind:DateTime.Kind = DateTime.Kind.Local)\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_._kind = kind;\r\n\t\tif(value instanceof DateTime)\r\n\t\t\t_._value = value.toJsDate();\r\n\t\telse if(value instanceof Date)\r\n\t\t\t_._setJsDate(value);\r\n\t\telse\r\n\t\t\t_._value = value===void(0)\r\n\t\t\t\t? new Date()\r\n\t\t\t\t: new Date(value);\r\n\t}\r\n\r\n\tprivate _kind:DateTime.Kind;\r\n\tget kind():DateTime.Kind\r\n\t{\r\n\t\treturn this._kind;\r\n\t}\r\n\r\n\tget year():number\r\n\t{\r\n\t\treturn this._value.getFullYear();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the Gregorian Month (zero indexed).\r\n\t * @returns {number}\r\n\t */\r\n\tget month():Gregorian.Month\r\n\t{\r\n\t\treturn this._value.getMonth();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the day of the month. An integer between 1 and 31.\r\n\t * @returns {number}\r\n\t */\r\n\tget day():number\r\n\t{\r\n\t\treturn this._value.getDate();\r\n\t}\r\n\r\n\tget dayOfWeek():Gregorian.DayOfWeek\r\n\t{\r\n\t\treturn this._value.getDay();\r\n\t}\r\n\r\n\r\n\taddMilliseconds(ms:number):DateTime\r\n\t{\r\n\t\tms = ms || 0;\r\n\t\treturn new DateTime(this._value.getTime() + ms, this._kind);\r\n\t}\r\n\r\n\taddSeconds(seconds:number):DateTime\r\n\t{\r\n\t\tseconds = seconds || 0;\r\n\t\treturn this.addMilliseconds(seconds*HowMany.Milliseconds.Per.Second);\r\n\t}\r\n\r\n\taddMinutes(minutes:number):DateTime\r\n\t{\r\n\t\tminutes = minutes || 0;\r\n\t\treturn this.addMilliseconds(minutes*HowMany.Milliseconds.Per.Minute);\r\n\t}\r\n\r\n\taddHours(hours:number):DateTime\r\n\t{\r\n\t\thours = hours || 0;\r\n\t\treturn this.addMilliseconds(hours*HowMany.Milliseconds.Per.Hour);\r\n\t}\r\n\r\n\taddDays(days:number):DateTime\r\n\t{\r\n\t\tdays = days || 0;\r\n\t\treturn this.addMilliseconds(days*HowMany.Milliseconds.Per.Day);\r\n\t}\r\n\r\n\taddMonths(months:number):DateTime\r\n\t{\r\n\t\tmonths = months || 0;\r\n\t\tvar d = this.toJsDate();\r\n\t\td.setMonth(d.getMonth()+months);\r\n\t\treturn new DateTime(d, this._kind);\r\n\t}\r\n\r\n\taddYears(years:number):DateTime\r\n\t{\r\n\t\tyears = years || 0;\r\n\t\tvar d = this.toJsDate();\r\n\t\td.setFullYear(d.getFullYear()+years);\r\n\t\treturn new DateTime(d, this._kind);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Receives an ITimeQuantity value and adds based on the total milliseconds.\r\n\t * @param {ITimeQuantity} time\r\n\t * @returns {DateTime}\r\n\t */\r\n\tadd(time:ITimeQuantity):DateTime\r\n\t{\r\n\t\treturn this.addMilliseconds(time.getTotalMilliseconds());\r\n\t}\r\n\r\n\t/**\r\n\t * Receives an ITimeQuantity value and subtracts based on the total milliseconds.\r\n\t * @param {ITimeQuantity} time\r\n\t * @returns {DateTime}\r\n\t */\r\n\tsubtract(time:ITimeQuantity):DateTime\r\n\t{\r\n\t\treturn this.addMilliseconds(-time.getTotalMilliseconds());\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a TimeSpan representing the amount of time between two dates.\r\n\t * @param previous\r\n\t * @returns {TimeSpan}\r\n\t */\r\n\ttimePassedSince(previous:Date|DateTime):TimeSpan\r\n\t{\r\n\t\treturn DateTime.between(previous, this);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a DateTime object for 00:00 of this date.\r\n\t */\r\n\tget date():DateTime\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn new DateTime(\r\n\t\t\tnew Date(\r\n\t\t\t\t_.year,\r\n\t\t\t\t_.month,\r\n\t\t\t\t_.day\r\n\t\t\t)\r\n\t\t\t, _._kind\r\n\t\t);\r\n\t}\r\n\r\n\tprivate _time:ClockTime;\r\n\r\n\t/**\r\n\t * Returns the time of day represented by a ClockTime object.\r\n\t * @returns {ClockTime}\r\n\t */\r\n\tget timeOfDay():ClockTime\r\n\t{\r\n\t\tvar _ = this, t = _._time;\r\n\t\tif(!t)\r\n\t\t{\r\n\t\t\tvar d = this._value;\r\n\t\t\t_._time = t = new ClockTime(\r\n\t\t\t\td.getHours(),\r\n\t\t\t\td.getMinutes(),\r\n\t\t\t\td.getSeconds(),\r\n\t\t\t\td.getMilliseconds());\r\n\t\t}\r\n\t\treturn t;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a readonly object which contains all the date and time components.\r\n\t */\r\n\ttoTimeStamp():ITimeStamp {\r\n\t\treturn TimeStamp.from(this);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the now local time.\r\n\t * @returns {DateTime}\r\n\t */\r\n\tstatic get now():DateTime\r\n\t{\r\n\t\treturn new DateTime();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a UTC version of this date if its kind is local.\r\n\t * @returns {DateTime}\r\n\t */\r\n\tget toUniversalTime():DateTime\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(_._kind!=DateTime.Kind.Local)\r\n\t\t\treturn new DateTime(_, _._kind);\r\n\r\n\t\tvar d = _._value;\r\n\t\treturn new DateTime(\r\n\t\t\tnew Date(\r\n\t\t\t\td.getUTCFullYear(),\r\n\t\t\t\td.getUTCMonth(),\r\n\t\t\t\td.getUTCDate(),\r\n\t\t\t\td.getUTCHours(),\r\n\t\t\t\td.getUTCMinutes(),\r\n\t\t\t\td.getUTCSeconds(),\r\n\t\t\t\td.getUTCMilliseconds()\r\n\t\t\t),\r\n\t\t\tDateTime.Kind.Utc\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * The date component for now.\r\n\t * @returns {DateTime}\r\n\t */\r\n\tstatic get today():DateTime\r\n\t{\r\n\t\treturn DateTime.now.date;\r\n\t}\r\n\r\n\t/**\r\n\t * Midnight tomorrow.\r\n\t * @returns {DateTime}\r\n\t */\r\n\tstatic get tomorrow():DateTime\r\n\t{\r\n\t\tvar today:DateTime = DateTime.today;\r\n\t\treturn today.addDays(1);\r\n\t}\r\n\r\n\t/**\r\n\t * Measures the difference between two dates as a TimeSpan.\r\n\t * @param first\r\n\t * @param last\r\n\t */\r\n\tstatic between(first:Date|DateTime, last:Date|DateTime):TimeSpan\r\n\t{\r\n\t\tvar f:Date = first instanceof DateTime ? first._value : first,\r\n\t\t l:Date = last instanceof DateTime ? last._value : last;\r\n\r\n\t\treturn new TimeSpan(f.getTime() - l.getTime());\r\n\t}\r\n\r\n\t/**\r\n\t * Calculates if the given year is a leap year using the formula:\r\n\t * ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)\r\n\t * @param year\r\n\t * @returns {boolean}\r\n\t */\r\n\tstatic isLeapYear(year:number):boolean {\r\n\t\treturn ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the number of days for the specific year and month.\r\n\t * @param year\r\n\t * @param month\r\n\t * @returns {any}\r\n\t */\r\n\tstatic daysInMonth(year:number, month:Gregorian.Month):number {\r\n\t\t// Basically, add 1 month, subtract a day... What's the date?\r\n\t\treturn (new Date(year,month+1,0)).getDate();\r\n\t}\r\n\r\n\r\n}\r\n\r\n// Extend DateTime's usefulness.\r\nmodule DateTime\r\n{\r\n\texport const enum Kind {\r\n\t\tUnspecified,\r\n\t\tLocal,\r\n\t\tUtc,\r\n\t}\r\n}\r\n\r\nObject.freeze(DateTime);\r\n\r\nexport default DateTime;\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Time/DateTime.js","System/Time/DateTime.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","TimeSpan_1","ClockTime_1","TimeStamp_1","DateTime","value","kind","Date","_","this","_kind","_value","toJsDate","_setJsDate","prototype","getTime","_time","Object","defineProperty","get","enumerable","configurable","getFullYear","getMonth","getDate","getDay","addMilliseconds","ms","addSeconds","seconds","addMinutes","minutes","addHours","hours","addDays","days","addMonths","months","d","setMonth","addYears","years","setFullYear","add","time","getTotalMilliseconds","subtract","timePassedSince","previous","between","year","month","day","t","ClockTime","getHours","getMinutes","getSeconds","getMilliseconds","toTimeStamp","TimeStamp","from","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","now","date","today","first","last","f","l","TimeSpan","isLeapYear","daysInMonth","freeze"],"mappings":"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","file":"System/Time/DateTime.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based on .NET DateTime's interface.\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"./TimeSpan\", \"./ClockTime\", \"./TimeStamp\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var TimeSpan_1 = require(\"./TimeSpan\");\n var ClockTime_1 = require(\"./ClockTime\");\n var TimeStamp_1 = require(\"./TimeStamp\");\n var DateTime = (function () {\n function DateTime(value, kind) {\n if (value === void 0) { value = new Date(); }\n if (kind === void 0) { kind = 1; }\n var _ = this;\n _._kind = kind;\n if (value instanceof DateTime)\n _._value = value.toJsDate();\n else if (value instanceof Date)\n _._setJsDate(value);\n else\n _._value = value === void (0)\n ? new Date()\n : new Date(value);\n }\n DateTime.prototype.toJsDate = function () {\n return new Date(this._value.getTime());\n };\n DateTime.prototype._setJsDate = function (value) {\n this._time = null;\n this._value = new Date(value.getTime());\n };\n Object.defineProperty(DateTime.prototype, \"kind\", {\n get: function () {\n return this._kind;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTime.prototype, \"year\", {\n get: function () {\n return this._value.getFullYear();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTime.prototype, \"month\", {\n get: function () {\n return this._value.getMonth();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTime.prototype, \"day\", {\n get: function () {\n return this._value.getDate();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTime.prototype, \"dayOfWeek\", {\n get: function () {\n return this._value.getDay();\n },\n enumerable: true,\n configurable: true\n });\n DateTime.prototype.addMilliseconds = function (ms) {\n ms = ms || 0;\n return new DateTime(this._value.getTime() + ms, this._kind);\n };\n DateTime.prototype.addSeconds = function (seconds) {\n seconds = seconds || 0;\n return this.addMilliseconds(seconds * 1000);\n };\n DateTime.prototype.addMinutes = function (minutes) {\n minutes = minutes || 0;\n return this.addMilliseconds(minutes * 60000);\n };\n DateTime.prototype.addHours = function (hours) {\n hours = hours || 0;\n return this.addMilliseconds(hours * 3600000);\n };\n DateTime.prototype.addDays = function (days) {\n days = days || 0;\n return this.addMilliseconds(days * 86400000);\n };\n DateTime.prototype.addMonths = function (months) {\n months = months || 0;\n var d = this.toJsDate();\n d.setMonth(d.getMonth() + months);\n return new DateTime(d, this._kind);\n };\n DateTime.prototype.addYears = function (years) {\n years = years || 0;\n var d = this.toJsDate();\n d.setFullYear(d.getFullYear() + years);\n return new DateTime(d, this._kind);\n };\n DateTime.prototype.add = function (time) {\n return this.addMilliseconds(time.getTotalMilliseconds());\n };\n DateTime.prototype.subtract = function (time) {\n return this.addMilliseconds(-time.getTotalMilliseconds());\n };\n DateTime.prototype.timePassedSince = function (previous) {\n return DateTime.between(previous, this);\n };\n Object.defineProperty(DateTime.prototype, \"date\", {\n get: function () {\n var _ = this;\n return new DateTime(new Date(_.year, _.month, _.day), _._kind);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTime.prototype, \"timeOfDay\", {\n get: function () {\n var _ = this, t = _._time;\n if (!t) {\n var d = this._value;\n _._time = t = new ClockTime_1.ClockTime(d.getHours(), d.getMinutes(), d.getSeconds(), d.getMilliseconds());\n }\n return t;\n },\n enumerable: true,\n configurable: true\n });\n DateTime.prototype.toTimeStamp = function () {\n return TimeStamp_1.TimeStamp.from(this);\n };\n Object.defineProperty(DateTime, \"now\", {\n get: function () {\n return new DateTime();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTime.prototype, \"toUniversalTime\", {\n get: function () {\n var _ = this;\n if (_._kind != 1)\n return new DateTime(_, _._kind);\n var d = _._value;\n return new DateTime(new Date(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate(), d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds(), d.getUTCMilliseconds()), 2);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTime, \"today\", {\n get: function () {\n return DateTime.now.date;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTime, \"tomorrow\", {\n get: function () {\n var today = DateTime.today;\n return today.addDays(1);\n },\n enumerable: true,\n configurable: true\n });\n DateTime.between = function (first, last) {\n var f = first instanceof DateTime ? first._value : first, l = last instanceof DateTime ? last._value : last;\n return new TimeSpan_1.TimeSpan(f.getTime() - l.getTime());\n };\n DateTime.isLeapYear = function (year) {\n return ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);\n };\n DateTime.daysInMonth = function (year, month) {\n return (new Date(year, month + 1, 0)).getDate();\n };\n return DateTime;\n }());\n exports.DateTime = DateTime;\n Object.freeze(DateTime);\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = DateTime;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based on .NET DateTime's interface.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {ICalendarDate, ITimeStamp} from \"./ITimeStamp\";\r\nimport {TimeSpan} from \"./TimeSpan\";\r\nimport {ClockTime} from \"./ClockTime\";\r\nimport {Milliseconds} from \"./HowMany\";\r\nimport {TimeStamp} from \"./TimeStamp\";\r\nimport {IDateTime} from \"./IDateTime\";\r\nimport {Gregorian} from \"./Calendars\";\r\nimport {ITimeQuantity} from \"./ITimeQuantity\";\r\n\r\nexport class DateTime implements ICalendarDate, IDateTime\r\n{\r\n\tprivate _value:Date;\r\n\r\n\ttoJsDate():Date\r\n\t{\r\n\t\treturn new Date(this._value.getTime()); // return a clone.\r\n\t}\r\n\r\n\tprivate _setJsDate(value:Date)\r\n\t{\r\n\t\tthis._time = null;\r\n\t\tthis._value = new Date(value.getTime());\r\n\t}\r\n\r\n\tconstructor();\r\n\tconstructor(dateString:string, kind?:DateTime.Kind);\r\n\tconstructor(milliseconds:number, kind?:DateTime.Kind);\r\n\tconstructor(source:Date, kind?:DateTime.Kind);\r\n\tconstructor(source:DateTime, kind?:DateTime.Kind);\r\n\tconstructor(value:any = new Date(), kind:DateTime.Kind = DateTime.Kind.Local)\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_._kind = kind;\r\n\t\tif(value instanceof DateTime)\r\n\t\t\t_._value = value.toJsDate();\r\n\t\telse if(value instanceof Date)\r\n\t\t\t_._setJsDate(value);\r\n\t\telse\r\n\t\t\t_._value = value=== void(0)\r\n\t\t\t\t? new Date()\r\n\t\t\t\t: new Date(value);\r\n\t}\r\n\r\n\tprivate _kind:DateTime.Kind;\r\n\tget kind():DateTime.Kind\r\n\t{\r\n\t\treturn this._kind;\r\n\t}\r\n\r\n\tget year():number\r\n\t{\r\n\t\treturn this._value.getFullYear();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the Gregorian Month (zero indexed).\r\n\t * @returns {number}\r\n\t */\r\n\tget month():Gregorian.Month\r\n\t{\r\n\t\treturn this._value.getMonth();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the day of the month. An integer between 1 and 31.\r\n\t * @returns {number}\r\n\t */\r\n\tget day():number\r\n\t{\r\n\t\treturn this._value.getDate();\r\n\t}\r\n\r\n\tget dayOfWeek():Gregorian.DayOfWeek\r\n\t{\r\n\t\treturn this._value.getDay();\r\n\t}\r\n\r\n\r\n\taddMilliseconds(ms:number):DateTime\r\n\t{\r\n\t\tms = ms || 0;\r\n\t\treturn new DateTime(this._value.getTime() + ms, this._kind);\r\n\t}\r\n\r\n\taddSeconds(seconds:number):DateTime\r\n\t{\r\n\t\tseconds = seconds || 0;\r\n\t\treturn this.addMilliseconds(seconds*Milliseconds.Per.Second);\r\n\t}\r\n\r\n\taddMinutes(minutes:number):DateTime\r\n\t{\r\n\t\tminutes = minutes || 0;\r\n\t\treturn this.addMilliseconds(minutes*Milliseconds.Per.Minute);\r\n\t}\r\n\r\n\taddHours(hours:number):DateTime\r\n\t{\r\n\t\thours = hours || 0;\r\n\t\treturn this.addMilliseconds(hours*Milliseconds.Per.Hour);\r\n\t}\r\n\r\n\taddDays(days:number):DateTime\r\n\t{\r\n\t\tdays = days || 0;\r\n\t\treturn this.addMilliseconds(days*Milliseconds.Per.Day);\r\n\t}\r\n\r\n\taddMonths(months:number):DateTime\r\n\t{\r\n\t\tmonths = months || 0;\r\n\t\tvar d = this.toJsDate();\r\n\t\td.setMonth(d.getMonth() + months);\r\n\t\treturn new DateTime(d, this._kind);\r\n\t}\r\n\r\n\taddYears(years:number):DateTime\r\n\t{\r\n\t\tyears = years || 0;\r\n\t\tvar d = this.toJsDate();\r\n\t\td.setFullYear(d.getFullYear() + years);\r\n\t\treturn new DateTime(d, this._kind);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Receives an ITimeQuantity value and adds based on the total milliseconds.\r\n\t * @param {ITimeQuantity} time\r\n\t * @returns {DateTime}\r\n\t */\r\n\tadd(time:ITimeQuantity):DateTime\r\n\t{\r\n\t\treturn this.addMilliseconds(time.getTotalMilliseconds());\r\n\t}\r\n\r\n\t/**\r\n\t * Receives an ITimeQuantity value and subtracts based on the total milliseconds.\r\n\t * @param {ITimeQuantity} time\r\n\t * @returns {DateTime}\r\n\t */\r\n\tsubtract(time:ITimeQuantity):DateTime\r\n\t{\r\n\t\treturn this.addMilliseconds(-time.getTotalMilliseconds());\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a TimeSpan representing the amount of time between two dates.\r\n\t * @param previous\r\n\t * @returns {TimeSpan}\r\n\t */\r\n\ttimePassedSince(previous:Date|DateTime):TimeSpan\r\n\t{\r\n\t\treturn DateTime.between(previous, this);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a DateTime object for 00:00 of this date.\r\n\t */\r\n\tget date():DateTime\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn new DateTime(\r\n\t\t\tnew Date(\r\n\t\t\t\t_.year,\r\n\t\t\t\t_.month,\r\n\t\t\t\t_.day\r\n\t\t\t)\r\n\t\t\t, _._kind\r\n\t\t);\r\n\t}\r\n\r\n\tprivate _time:ClockTime;\r\n\r\n\t/**\r\n\t * Returns the time of day represented by a ClockTime object.\r\n\t * @returns {ClockTime}\r\n\t */\r\n\tget timeOfDay():ClockTime\r\n\t{\r\n\t\tvar _ = this, t = _._time;\r\n\t\tif(!t)\r\n\t\t{\r\n\t\t\tvar d = this._value;\r\n\t\t\t_._time = t = new ClockTime(\r\n\t\t\t\td.getHours(),\r\n\t\t\t\td.getMinutes(),\r\n\t\t\t\td.getSeconds(),\r\n\t\t\t\td.getMilliseconds());\r\n\t\t}\r\n\t\treturn t;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a readonly object which contains all the date and time components.\r\n\t */\r\n\ttoTimeStamp():ITimeStamp\r\n\t{\r\n\t\treturn TimeStamp.from(this);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the now local time.\r\n\t * @returns {DateTime}\r\n\t */\r\n\tstatic get now():DateTime\r\n\t{\r\n\t\treturn new DateTime();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a UTC version of this date if its kind is local.\r\n\t * @returns {DateTime}\r\n\t */\r\n\tget toUniversalTime():DateTime\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(_._kind!=DateTime.Kind.Local)\r\n\t\t\treturn new DateTime(_, _._kind);\r\n\r\n\t\tvar d = _._value;\r\n\t\treturn new DateTime(\r\n\t\t\tnew Date(\r\n\t\t\t\td.getUTCFullYear(),\r\n\t\t\t\td.getUTCMonth(),\r\n\t\t\t\td.getUTCDate(),\r\n\t\t\t\td.getUTCHours(),\r\n\t\t\t\td.getUTCMinutes(),\r\n\t\t\t\td.getUTCSeconds(),\r\n\t\t\t\td.getUTCMilliseconds()\r\n\t\t\t),\r\n\t\t\tDateTime.Kind.Utc\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * The date component for now.\r\n\t * @returns {DateTime}\r\n\t */\r\n\tstatic get today():DateTime\r\n\t{\r\n\t\treturn DateTime.now.date;\r\n\t}\r\n\r\n\t/**\r\n\t * Midnight tomorrow.\r\n\t * @returns {DateTime}\r\n\t */\r\n\tstatic get tomorrow():DateTime\r\n\t{\r\n\t\tvar today:DateTime = DateTime.today;\r\n\t\treturn today.addDays(1);\r\n\t}\r\n\r\n\t/**\r\n\t * Measures the difference between two dates as a TimeSpan.\r\n\t * @param first\r\n\t * @param last\r\n\t */\r\n\tstatic between(first:Date|DateTime, last:Date|DateTime):TimeSpan\r\n\t{\r\n\t\tvar f:Date = first instanceof DateTime ? first._value : first,\r\n\t\t l:Date = last instanceof DateTime ? last._value : last;\r\n\r\n\t\treturn new TimeSpan(f.getTime() - l.getTime());\r\n\t}\r\n\r\n\t/**\r\n\t * Calculates if the given year is a leap year using the formula:\r\n\t * ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)\r\n\t * @param year\r\n\t * @returns {boolean}\r\n\t */\r\n\tstatic isLeapYear(year:number):boolean\r\n\t{\r\n\t\treturn ((year%4==0) && (year%100!=0)) || (year%400==0);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the number of days for the specific year and month.\r\n\t * @param year\r\n\t * @param month\r\n\t * @returns {any}\r\n\t */\r\n\tstatic daysInMonth(year:number, month:Gregorian.Month):number\r\n\t{\r\n\t\t// Basically, add 1 month, subtract a day... What's the date?\r\n\t\treturn (new Date(year, month + 1, 0)).getDate();\r\n\t}\r\n\r\n\r\n}\r\n\r\n// Extend DateTime's usefulness.\r\nexport module DateTime\r\n{\r\n\texport const enum Kind {\r\n\t\tUnspecified,\r\n\t\tLocal,\r\n\t\tUtc,\r\n\t}\r\n}\r\n\r\nObject.freeze(DateTime);\r\n\r\nexport default DateTime;\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Time/HowMany.d.ts b/dist/umd.min/System/Time/HowMany.d.ts deleted file mode 100644 index 314a22e2..00000000 --- a/dist/umd.min/System/Time/HowMany.d.ts +++ /dev/null @@ -1,41 +0,0 @@ -/*! - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -declare module HowMany { - module Hours { - const enum Per { - Day = 24, - } - } - module Minutes { - const enum Per { - Hour = 60, - Day = 1440, - } - } - module Seconds { - const enum Per { - Minute = 60, - Hour = 3600, - Day = 86400, - } - } - module Milliseconds { - const enum Per { - Second = 1000, - Minute = 60000, - Hour = 3600000, - Day = 86400000, - } - } - module Ticks { - const enum Per { - Millisecond = 10000, - Second = 10000000, - Minute = 600000000, - Hour = 36000000000, - Day = 864000000000, - } - } -} diff --git a/dist/umd.min/System/Time/HowMany.js b/dist/umd.min/System/Time/HowMany.js deleted file mode 100644 index 874cebb9..00000000 --- a/dist/umd.min/System/Time/HowMany.js +++ /dev/null @@ -1,6 +0,0 @@ -/*! - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ - -//# sourceMappingURL=HowMany.js.map diff --git a/dist/umd.min/System/Time/HowMany.js.map b/dist/umd.min/System/Time/HowMany.js.map deleted file mode 100644 index c1b93c97..00000000 --- a/dist/umd.min/System/Time/HowMany.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":[],"names":[],"mappings":"","file":"System/Time/HowMany.js","sourcesContent":[]} \ No newline at end of file diff --git a/dist/umd.min/System/Time/TimeQuantity.d.ts b/dist/umd.min/System/Time/TimeQuantity.d.ts index 80ef81c5..c6d68ba4 100644 --- a/dist/umd.min/System/Time/TimeQuantity.d.ts +++ b/dist/umd.min/System/Time/TimeQuantity.d.ts @@ -1,13 +1,13 @@ -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import TimeUnit from './TimeUnit'; -export default class TimeQuantity implements IEquatable, IComparable, ITimeQuantity { +import { TimeUnit } from "./TimeUnit"; +import { IEquatable } from "../IEquatable"; +import { IComparable } from "../IComparable"; +import { ITimeQuantity } from "./ITimeQuantity"; +import { ITimeMeasurement } from "./ITimeMeasurement"; +export declare class TimeQuantity implements IEquatable, IComparable, ITimeQuantity { protected _quantity: number; constructor(_quantity?: number); getTotalMilliseconds(): number; @@ -18,3 +18,4 @@ export default class TimeQuantity implements IEquatable, ICompara total: ITimeMeasurement; getTotal(units: TimeUnit): number; } +export default TimeQuantity; diff --git a/dist/umd.min/System/Time/TimeQuantity.js b/dist/umd.min/System/Time/TimeQuantity.js index 315747dc..0112a227 100644 --- a/dist/umd.min/System/Time/TimeQuantity.js +++ b/dist/umd.min/System/Time/TimeQuantity.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../Compare","./TimeUnit"],e)}(function(e,t){"use strict";var o=e("../Compare"),i=e("./TimeUnit"),n=function(){function e(e){void 0===e&&(e=0),this._quantity=e}return e.prototype.getTotalMilliseconds=function(){return this._quantity},Object.defineProperty(e.prototype,"direction",{get:function(){return o.compare(this.getTotalMilliseconds(),0)},enumerable:!0,configurable:!0}),e.prototype.equals=function(e){return o.areEqual(this.getTotalMilliseconds(),e&&e.total&&e.total.milliseconds)},e.prototype.compareTo=function(e){return o.compare(this.getTotalMilliseconds(),e&&e.total&&e.total.milliseconds)},Object.defineProperty(e.prototype,"total",{get:function(){var e=this._total;if(!e){var t=this.getTotalMilliseconds();this._total=e=Object.freeze({ticks:1e4*t,milliseconds:t,seconds:t/1e3,minutes:t/6e4,hours:t/36e5,days:t/864e5})}return e},enumerable:!0,configurable:!0}),e.prototype.getTotal=function(e){return i["default"].fromMilliseconds(this.getTotalMilliseconds(),e)},e}();Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=n}); +!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../Compare","./TimeUnit"],e)}(function(e,t){"use strict";var o=e("../Compare"),i=e("./TimeUnit"),n=function(){function e(e){void 0===e&&(e=0),this._quantity=e}return e.prototype.getTotalMilliseconds=function(){return this._quantity},Object.defineProperty(e.prototype,"direction",{get:function(){return o.compare(this.getTotalMilliseconds(),0)},enumerable:!0,configurable:!0}),e.prototype.equals=function(e){return o.areEqual(this.getTotalMilliseconds(),e&&e.total&&e.total.milliseconds)},e.prototype.compareTo=function(e){return o.compare(this.getTotalMilliseconds(),e&&e.total&&e.total.milliseconds)},Object.defineProperty(e.prototype,"total",{get:function(){var e=this._total;if(!e){var t=this.getTotalMilliseconds();this._total=e=Object.freeze({ticks:1e4*t,milliseconds:t,seconds:t/1e3,minutes:t/6e4,hours:t/36e5,days:t/864e5})}return e},enumerable:!0,configurable:!0}),e.prototype.getTotal=function(e){return i.TimeUnit.fromMilliseconds(this.getTotalMilliseconds(),e)},e}();t.TimeQuantity=n,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=n}); //# sourceMappingURL=TimeQuantity.js.map diff --git a/dist/umd.min/System/Time/TimeQuantity.js.map b/dist/umd.min/System/Time/TimeQuantity.js.map index 51493c28..08b074bd 100644 --- a/dist/umd.min/System/Time/TimeQuantity.js.map +++ b/dist/umd.min/System/Time/TimeQuantity.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Time/TimeQuantity.js","System/Time/TimeQuantity.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","Compare_1","TimeUnit_1","TimeQuantity","_quantity","this","prototype","getTotalMilliseconds","Object","defineProperty","get","compare","enumerable","configurable","equals","other","areEqual","total","milliseconds","compareTo","t","_total","ms","freeze","ticks","seconds","minutes","hours","days","getTotal","units","fromMilliseconds","value"],"mappings":";;;;CAIA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,aAAc,cAAeN,IAEhE,SAAUI,EAASF,GCFtB,YAEA,IAAAM,GAAAJ,EAA+B,cAC/BK,EAAAL,EAAqB,cAKrBM,EAAA,WAIC,QAAAA,GAAsBC,GAAV,SAAAA,IAAAA,EAAA,GAAUC,KAAAD,UAAAA,EA2EvB,MAtECD,GAAAG,UAAAC,qBAAA,WAEC,MAAOF,MAAKD,WAObI,OAAAC,eAAIN,EAAAG,UAAA,aDXOI,ICWX,WAEC,MAAOT,GAAAU,QAAQN,KAAKE,uBAAwB,IDVlCK,YAAY,EACZC,cAAc,ICiBzBV,EAAAG,UAAAQ,OAAA,SAAOC,GAEN,MAAOd,GAAAe,SAASX,KAAKE,uBAAwBQ,GAASA,EAAME,OAASF,EAAME,MAAMC,eAQlFf,EAAAG,UAAAa,UAAA,SAAUJ,GAET,MAAOd,GAAAU,QAAQN,KAAKE,uBAAwBQ,GAASA,EAAME,OAASF,EAAME,MAAMC,eAWjFV,OAAAC,eAAIN,EAAAG,UAAA,SD/BOI,IC+BX,WAEC,GAAIU,GAAIf,KAAKgB,MACb,KAAID,EACJ,CACC,GAAIE,GAAKjB,KAAKE,sBAEdF,MAAKgB,OAASD,EAAsBZ,OAAOe,QAC1CC,MAAU,IAAHF,EACPJ,aAAcI,EACdG,QAASH,EAAG,IACZI,QAASJ,EAAG,IACZK,MAAOL,EAAG,KACVM,KAAMN,EAAG,QAGX,MAAOF,IDhCGR,YAAY,EACZC,cAAc,ICuCzBV,EAAAG,UAAAuB,SAAA,SAASC,GAER,MAAO5B,GAAAA,WAAS6B,iBAAiB1B,KAAKE,uBAAwBuB,IAEhE3B,IA/EAK,QAAAC,eAAAd,EAAA,cAAAqC,OAAA,ID4CIrC,EAAAA,WAAkBQ","file":"System/Time/TimeQuantity.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", '../Compare', './TimeUnit'], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var Compare_1 = require('../Compare');\n var TimeUnit_1 = require('./TimeUnit');\n var TimeQuantity = (function () {\n function TimeQuantity(_quantity) {\n if (_quantity === void 0) { _quantity = 0; }\n this._quantity = _quantity;\n }\n TimeQuantity.prototype.getTotalMilliseconds = function () {\n return this._quantity;\n };\n Object.defineProperty(TimeQuantity.prototype, \"direction\", {\n get: function () {\n return Compare_1.compare(this.getTotalMilliseconds(), 0);\n },\n enumerable: true,\n configurable: true\n });\n TimeQuantity.prototype.equals = function (other) {\n return Compare_1.areEqual(this.getTotalMilliseconds(), other && other.total && other.total.milliseconds);\n };\n TimeQuantity.prototype.compareTo = function (other) {\n return Compare_1.compare(this.getTotalMilliseconds(), other && other.total && other.total.milliseconds);\n };\n Object.defineProperty(TimeQuantity.prototype, \"total\", {\n get: function () {\n var t = this._total;\n if (!t) {\n var ms = this.getTotalMilliseconds();\n this._total = t = Object.freeze({\n ticks: ms * 10000,\n milliseconds: ms,\n seconds: ms / 1000,\n minutes: ms / 60000,\n hours: ms / 3600000,\n days: ms / 86400000,\n });\n }\n return t;\n },\n enumerable: true,\n configurable: true\n });\n TimeQuantity.prototype.getTotal = function (units) {\n return TimeUnit_1.default.fromMilliseconds(this.getTotalMilliseconds(), units);\n };\n return TimeQuantity;\n }());\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = TimeQuantity;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport {areEqual,compare} from '../Compare';\r\nimport TimeUnit from './TimeUnit';\r\n\r\n/**\r\n * This class provides a simple means for storing and calculating time quantities.\r\n */\r\nexport default\r\nclass TimeQuantity implements IEquatable, IComparable, ITimeQuantity\r\n{\r\n\r\n\tconstructor(protected _quantity:number = 0)\r\n\t{\r\n\t}\r\n\r\n\t// Provides an overridable mechanism for extending this class.\r\n\tgetTotalMilliseconds():number\r\n\t{\r\n\t\treturn this._quantity;\r\n\t}\r\n\r\n\t/**\r\n\t * +1, 0, or -1 depending on the time direction.\r\n\t * @returns {number}\r\n\t */\r\n\tget direction():number\r\n\t{\r\n\t\treturn compare(this.getTotalMilliseconds(), 0);\r\n\t}\r\n\r\n\t/**\r\n\t * Compares this instance against any other time quantity instance and return true if the amount of time is the same.\r\n\t * @param other\r\n\t * @returns {boolean}\r\n\t */\r\n\tequals(other:ITimeQuantity):boolean\r\n\t{\r\n\t\treturn areEqual(this.getTotalMilliseconds(), other && other.total && other.total.milliseconds);\r\n\t}\r\n\r\n\t/**\r\n\t * Compares this instance against any other time quantity instance.\r\n\t * @param other\r\n\t * @returns {CompareResult}\r\n\t */\r\n\tcompareTo(other:ITimeQuantity):number\r\n\t{\r\n\t\treturn compare(this.getTotalMilliseconds(), other && other.total && other.total.milliseconds);\r\n\t}\r\n\r\n\r\n\t// Clear this value if sub-class values change.\r\n\tprotected _total:ITimeMeasurement;\r\n\r\n\t/**\r\n\t * Returns an object with all units exposed as totals.\r\n\t * @returns {ITimeMeasurement}\r\n\t */\r\n\tget total():ITimeMeasurement\r\n\t{\r\n\t\tvar t = this._total;\r\n\t\tif(!t)\r\n\t\t{\r\n\t\t\tvar ms = this.getTotalMilliseconds();\r\n\r\n\t\t\tthis._total = t = Object.freeze({\r\n\t\t\t\tticks: ms*HowMany.Ticks.Per.Millisecond,\r\n\t\t\t\tmilliseconds: ms,\r\n\t\t\t\tseconds: ms/HowMany.Milliseconds.Per.Second,\r\n\t\t\t\tminutes: ms/HowMany.Milliseconds.Per.Minute,\r\n\t\t\t\thours: ms/HowMany.Milliseconds.Per.Hour,\r\n\t\t\t\tdays: ms/HowMany.Milliseconds.Per.Day,\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn t;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the total amount of time measured in the requested TimeUnit.\r\n\t * @param units\r\n\t * @returns {number}\r\n\t */\r\n\tgetTotal(units:TimeUnit):number\r\n\t{\r\n\t\treturn TimeUnit.fromMilliseconds(this.getTotalMilliseconds(), units);\r\n\t}\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Time/TimeQuantity.js","System/Time/TimeQuantity.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","Compare_1","TimeUnit_1","TimeQuantity","_quantity","this","prototype","getTotalMilliseconds","Object","defineProperty","get","compare","enumerable","configurable","equals","other","areEqual","total","milliseconds","compareTo","t","_total","ms","freeze","ticks","seconds","minutes","hours","days","getTotal","units","TimeUnit","fromMilliseconds","value"],"mappings":";;;;CAIA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,aAAc,cAAeN,IAEhE,SAAUI,EAASF,GAClB,YCNJ,IAAAM,GAAAJ,EAAgC,cAChCK,EAAAL,EAAuB,cAUvBM,EAAA,WAGC,QAAAA,GAAsBC,GAAV,SAAAA,IAAAA,EAAA,GAAUC,KAAAD,UAAAA,EA2EvB,MAtECD,GAAAG,UAAAC,qBAAA,WAEC,MAAOF,MAAKD,WAObI,OAAAC,eAAIN,EAAAG,UAAA,aDVOI,ICUX,WAEC,MAAOT,GAAAU,QAAQN,KAAKE,uBAAwB,IDTlCK,YAAY,EACZC,cAAc,ICgBzBV,EAAAG,UAAAQ,OAAA,SAAOC,GAEN,MAAOd,GAAAe,SAASX,KAAKE,uBAAwBQ,GAASA,EAAME,OAASF,EAAME,MAAMC,eAQlFf,EAAAG,UAAAa,UAAA,SAAUJ,GAET,MAAOd,GAAAU,QAAQN,KAAKE,uBAAwBQ,GAASA,EAAME,OAASF,EAAME,MAAMC,eAWjFV,OAAAC,eAAIN,EAAAG,UAAA,SD9BOI,IC8BX,WAEC,GAAIU,GAAIf,KAAKgB,MACb,KAAID,EACJ,CACC,GAAIE,GAAKjB,KAAKE,sBAEdF,MAAKgB,OAASD,EAAsBZ,OAAOe,QAC1CC,MAAU,IAAHF,EACPJ,aAAcI,EACdG,QAASH,EAAG,IACZI,QAASJ,EAAG,IACZK,MAAOL,EAAG,KACVM,KAAMN,EAAG,QAGX,MAAOF,ID/BGR,YAAY,EACZC,cAAc,ICsCzBV,EAAAG,UAAAuB,SAAA,SAASC,GAER,MAAO5B,GAAA6B,SAASC,iBAAiB3B,KAAKE,uBAAwBuB,IAEhE3B,IA9EaR,GAAAQ,aAAYA,EAgFzBK,OAAAC,eAAAd,EAAA,cAAAsC,OAAA,IDnCItC,EAAAA,WCmCWQ","file":"System/Time/TimeQuantity.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../Compare\", \"./TimeUnit\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var Compare_1 = require(\"../Compare\");\n var TimeUnit_1 = require(\"./TimeUnit\");\n var TimeQuantity = (function () {\n function TimeQuantity(_quantity) {\n if (_quantity === void 0) { _quantity = 0; }\n this._quantity = _quantity;\n }\n TimeQuantity.prototype.getTotalMilliseconds = function () {\n return this._quantity;\n };\n Object.defineProperty(TimeQuantity.prototype, \"direction\", {\n get: function () {\n return Compare_1.compare(this.getTotalMilliseconds(), 0);\n },\n enumerable: true,\n configurable: true\n });\n TimeQuantity.prototype.equals = function (other) {\n return Compare_1.areEqual(this.getTotalMilliseconds(), other && other.total && other.total.milliseconds);\n };\n TimeQuantity.prototype.compareTo = function (other) {\n return Compare_1.compare(this.getTotalMilliseconds(), other && other.total && other.total.milliseconds);\n };\n Object.defineProperty(TimeQuantity.prototype, \"total\", {\n get: function () {\n var t = this._total;\n if (!t) {\n var ms = this.getTotalMilliseconds();\n this._total = t = Object.freeze({\n ticks: ms * 10000,\n milliseconds: ms,\n seconds: ms / 1000,\n minutes: ms / 60000,\n hours: ms / 3600000,\n days: ms / 86400000,\n });\n }\n return t;\n },\n enumerable: true,\n configurable: true\n });\n TimeQuantity.prototype.getTotal = function (units) {\n return TimeUnit_1.TimeUnit.fromMilliseconds(this.getTotalMilliseconds(), units);\n };\n return TimeQuantity;\n }());\n exports.TimeQuantity = TimeQuantity;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = TimeQuantity;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {areEqual, compare} from \"../Compare\";\r\nimport {TimeUnit} from \"./TimeUnit\";\r\nimport {Milliseconds, Ticks} from \"./HowMany\";\r\nimport {IEquatable} from \"../IEquatable\";\r\nimport {IComparable} from \"../IComparable\";\r\nimport {ITimeQuantity} from \"./ITimeQuantity\";\r\nimport {ITimeMeasurement} from \"./ITimeMeasurement\";\r\n\r\n/**\r\n * This class provides a simple means for storing and calculating time quantities.\r\n */\r\nexport class TimeQuantity implements IEquatable, IComparable, ITimeQuantity\r\n{\r\n\r\n\tconstructor(protected _quantity:number = 0)\r\n\t{\r\n\t}\r\n\r\n\t// Provides an overridable mechanism for extending this class.\r\n\tgetTotalMilliseconds():number\r\n\t{\r\n\t\treturn this._quantity;\r\n\t}\r\n\r\n\t/**\r\n\t * +1, 0, or -1 depending on the time direction.\r\n\t * @returns {number}\r\n\t */\r\n\tget direction():number\r\n\t{\r\n\t\treturn compare(this.getTotalMilliseconds(), 0);\r\n\t}\r\n\r\n\t/**\r\n\t * Compares this instance against any other time quantity instance and return true if the amount of time is the same.\r\n\t * @param other\r\n\t * @returns {boolean}\r\n\t */\r\n\tequals(other:ITimeQuantity):boolean\r\n\t{\r\n\t\treturn areEqual(this.getTotalMilliseconds(), other && other.total && other.total.milliseconds);\r\n\t}\r\n\r\n\t/**\r\n\t * Compares this instance against any other time quantity instance.\r\n\t * @param other\r\n\t * @returns {CompareResult}\r\n\t */\r\n\tcompareTo(other:ITimeQuantity):number\r\n\t{\r\n\t\treturn compare(this.getTotalMilliseconds(), other && other.total && other.total.milliseconds);\r\n\t}\r\n\r\n\r\n\t// Clear this value if sub-class values change.\r\n\tprotected _total:ITimeMeasurement;\r\n\r\n\t/**\r\n\t * Returns an object with all units exposed as totals.\r\n\t * @returns {ITimeMeasurement}\r\n\t */\r\n\tget total():ITimeMeasurement\r\n\t{\r\n\t\tvar t = this._total;\r\n\t\tif(!t)\r\n\t\t{\r\n\t\t\tvar ms = this.getTotalMilliseconds();\r\n\r\n\t\t\tthis._total = t = Object.freeze({\r\n\t\t\t\tticks: ms*Ticks.Per.Millisecond,\r\n\t\t\t\tmilliseconds: ms,\r\n\t\t\t\tseconds: ms/Milliseconds.Per.Second,\r\n\t\t\t\tminutes: ms/Milliseconds.Per.Minute,\r\n\t\t\t\thours: ms/Milliseconds.Per.Hour,\r\n\t\t\t\tdays: ms/Milliseconds.Per.Day,\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn t;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the total amount of time measured in the requested TimeUnit.\r\n\t * @param units\r\n\t * @returns {number}\r\n\t */\r\n\tgetTotal(units:TimeUnit):number\r\n\t{\r\n\t\treturn TimeUnit.fromMilliseconds(this.getTotalMilliseconds(), units);\r\n\t}\r\n}\r\n\r\nexport default TimeQuantity;"]} \ No newline at end of file diff --git a/dist/umd.min/System/Time/TimeSpan.d.ts b/dist/umd.min/System/Time/TimeSpan.d.ts index 670fd9af..03f0dba3 100644 --- a/dist/umd.min/System/Time/TimeSpan.d.ts +++ b/dist/umd.min/System/Time/TimeSpan.d.ts @@ -1,16 +1,14 @@ -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Originally based upon .NET source but with many additions and improvements. * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import TimeUnit from './TimeUnit'; -import ClockTime from './ClockTime'; -import TimeQuantity from './TimeQuantity'; -export default class TimeSpan extends TimeQuantity implements ITimeMeasurement { +import { TimeUnit } from "./TimeUnit"; +import { ClockTime } from "./ClockTime"; +import { TimeQuantity } from "./TimeQuantity"; +import { ITimeMeasurement } from "./ITimeMeasurement"; +import { ITimeQuantity } from "./ITimeQuantity"; +export declare class TimeSpan extends TimeQuantity implements ITimeMeasurement { ticks: number; milliseconds: number; seconds: number; @@ -32,3 +30,4 @@ export default class TimeSpan extends TimeQuantity implements ITimeMeasurement { static fromTicks(value: number): TimeSpan; static zero: TimeSpan; } +export default TimeSpan; diff --git a/dist/umd.min/System/Time/TimeSpan.js b/dist/umd.min/System/Time/TimeSpan.js index 18b0b6ff..17e3e1b3 100644 --- a/dist/umd.min/System/Time/TimeSpan.js +++ b/dist/umd.min/System/Time/TimeSpan.js @@ -3,5 +3,5 @@ * Originally based upon .NET source but with many additions and improvements. * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(e,t){function n(){this.constructor=e}for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../Types","./TimeUnit","./ClockTime","./TimeQuantity"],e)}(function(e,t){"use strict";var n=e("../Types"),i=e("./TimeUnit"),o=e("./ClockTime"),r=e("./TimeQuantity"),u=function(e){function t(t,n){void 0===n&&(n=i["default"].Milliseconds);var o=i["default"].toMilliseconds(t,n);e.call(this,o);var r=this;r.ticks=1e4*o,r.milliseconds=o,r.seconds=o/1e3,r.minutes=o/6e4,r.hours=o/36e5,r.days=o/864e5}return __extends(t,e),Object.defineProperty(t.prototype,"total",{get:function(){return this},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"time",{get:function(){var e=this,t=e._time;return t||(e._time=t=new o["default"](e.getTotalMilliseconds())),t},enumerable:!0,configurable:!0}),t.prototype.add=function(e){if(n["default"].isNumber(e))throw new Error("Use .addUnit(value:number,units:TimeUnit) to add a numerical value amount. Default units are milliseconds.\n.add only supports quantifiable time values (ITimeTotal).");return new t(this.getTotalMilliseconds()+e.total.milliseconds)},t.prototype.addUnit=function(e,n){return void 0===n&&(n=i["default"].Milliseconds),new t(this.getTotalMilliseconds()+i["default"].toMilliseconds(e,n))},t.from=function(e,n){return new t(e,n)},t.fromDays=function(e){return new t(e,i["default"].Days)},t.fromHours=function(e){return new t(e,i["default"].Hours)},t.fromMinutes=function(e){return new t(e,i["default"].Minutes)},t.fromSeconds=function(e){return new t(e,i["default"].Seconds)},t.fromMilliseconds=function(e){return new t(e,i["default"].Milliseconds)},t.fromTicks=function(e){return new t(e,i["default"].Ticks)},Object.defineProperty(t,"zero",{get:function(){return s||(s=new t(0))},enumerable:!0,configurable:!0}),t}(r["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=u;var s}); +var __extends=this&&this.__extends||function(e,t){function n(){this.constructor=e}for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../Types","./TimeUnit","./ClockTime","./TimeQuantity"],e)}(function(e,t){"use strict";var n=e("../Types"),i=e("./TimeUnit"),o=e("./ClockTime"),r=e("./TimeQuantity"),s=function(e){function t(t,n){void 0===n&&(n=i.TimeUnit.Milliseconds);var o=i.TimeUnit.toMilliseconds(t,n);e.call(this,o);var r=this;r.ticks=1e4*o,r.milliseconds=o,r.seconds=o/1e3,r.minutes=o/6e4,r.hours=o/36e5,r.days=o/864e5}return __extends(t,e),Object.defineProperty(t.prototype,"total",{get:function(){return this},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"time",{get:function(){var e=this,t=e._time;return t||(e._time=t=new o.ClockTime(e.getTotalMilliseconds())),t},enumerable:!0,configurable:!0}),t.prototype.add=function(e){if(n.Type.isNumber(e))throw new Error("Use .addUnit(value:number,units:TimeUnit) to add a numerical value amount. Default units are milliseconds.\n.add only supports quantifiable time values (ITimeTotal).");return new t(this.getTotalMilliseconds()+e.total.milliseconds)},t.prototype.addUnit=function(e,n){return void 0===n&&(n=i.TimeUnit.Milliseconds),new t(this.getTotalMilliseconds()+i.TimeUnit.toMilliseconds(e,n))},t.from=function(e,n){return new t(e,n)},t.fromDays=function(e){return new t(e,i.TimeUnit.Days)},t.fromHours=function(e){return new t(e,i.TimeUnit.Hours)},t.fromMinutes=function(e){return new t(e,i.TimeUnit.Minutes)},t.fromSeconds=function(e){return new t(e,i.TimeUnit.Seconds)},t.fromMilliseconds=function(e){return new t(e,i.TimeUnit.Milliseconds)},t.fromTicks=function(e){return new t(e,i.TimeUnit.Ticks)},Object.defineProperty(t,"zero",{get:function(){return u||(u=new t(0))},enumerable:!0,configurable:!0}),t}(r.TimeQuantity);t.TimeSpan=s;var u;Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=s}); //# sourceMappingURL=TimeSpan.js.map diff --git a/dist/umd.min/System/Time/TimeSpan.js.map b/dist/umd.min/System/Time/TimeSpan.js.map index 1d0b67b6..10979acc 100644 --- a/dist/umd.min/System/Time/TimeSpan.js.map +++ b/dist/umd.min/System/Time/TimeSpan.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Time/TimeSpan.js","System/Time/TimeSpan.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","Types_1","TimeUnit_1","ClockTime_1","TimeQuantity_1","TimeSpan","_super","value","units","Milliseconds","ms","toMilliseconds","call","_","ticks","milliseconds","seconds","minutes","hours","days","defineProperty","get","enumerable","configurable","t","_time","getTotalMilliseconds","add","other","isNumber","Error","total","addUnit","from","fromDays","Days","fromHours","Hours","fromMinutes","Minutes","fromSeconds","Seconds","fromMilliseconds","fromTicks","Ticks","timeSpanZero"],"mappings":"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","file":"System/Time/TimeSpan.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Originally based upon .NET source but with many additions and improvements.\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", '../Types', './TimeUnit', './ClockTime', './TimeQuantity'], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var Types_1 = require('../Types');\n var TimeUnit_1 = require('./TimeUnit');\n var ClockTime_1 = require('./ClockTime');\n var TimeQuantity_1 = require('./TimeQuantity');\n var TimeSpan = (function (_super) {\n __extends(TimeSpan, _super);\n function TimeSpan(value, units) {\n if (units === void 0) { units = TimeUnit_1.default.Milliseconds; }\n var ms = TimeUnit_1.default.toMilliseconds(value, units);\n _super.call(this, ms);\n var _ = this;\n _.ticks = ms * 10000;\n _.milliseconds = ms;\n _.seconds = ms / 1000;\n _.minutes = ms / 60000;\n _.hours = ms / 3600000;\n _.days = ms / 86400000;\n }\n Object.defineProperty(TimeSpan.prototype, \"total\", {\n get: function () {\n return this;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TimeSpan.prototype, \"time\", {\n get: function () {\n var _ = this, t = _._time;\n if (!t)\n _._time = t = new ClockTime_1.default(_.getTotalMilliseconds());\n return t;\n },\n enumerable: true,\n configurable: true\n });\n TimeSpan.prototype.add = function (other) {\n if (Types_1.default.isNumber(other))\n throw new Error(\"Use .addUnit(value:number,units:TimeUnit) to add a numerical value amount. Default units are milliseconds.\\n\" +\n \".add only supports quantifiable time values (ITimeTotal).\");\n return new TimeSpan(this.getTotalMilliseconds() + other.total.milliseconds);\n };\n TimeSpan.prototype.addUnit = function (value, units) {\n if (units === void 0) { units = TimeUnit_1.default.Milliseconds; }\n return new TimeSpan(this.getTotalMilliseconds() + TimeUnit_1.default.toMilliseconds(value, units));\n };\n TimeSpan.from = function (value, units) {\n return new TimeSpan(value, units);\n };\n TimeSpan.fromDays = function (value) {\n return new TimeSpan(value, TimeUnit_1.default.Days);\n };\n TimeSpan.fromHours = function (value) {\n return new TimeSpan(value, TimeUnit_1.default.Hours);\n };\n TimeSpan.fromMinutes = function (value) {\n return new TimeSpan(value, TimeUnit_1.default.Minutes);\n };\n TimeSpan.fromSeconds = function (value) {\n return new TimeSpan(value, TimeUnit_1.default.Seconds);\n };\n TimeSpan.fromMilliseconds = function (value) {\n return new TimeSpan(value, TimeUnit_1.default.Milliseconds);\n };\n TimeSpan.fromTicks = function (value) {\n return new TimeSpan(value, TimeUnit_1.default.Ticks);\n };\n Object.defineProperty(TimeSpan, \"zero\", {\n get: function () {\n return timeSpanZero || (timeSpanZero = new TimeSpan(0));\n },\n enumerable: true,\n configurable: true\n });\n return TimeSpan;\n }(TimeQuantity_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = TimeSpan;\n var timeSpanZero;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Originally based upon .NET source but with many additions and improvements.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport {areEqual,compare} from '../Compare';\r\nimport Type from '../Types';\r\nimport TimeUnit from './TimeUnit';\r\nimport ClockTime from './ClockTime';\r\nimport TimeQuantity from './TimeQuantity';\r\n\r\n/**\r\n * TimeSpan expands on TimeQuantity to provide an class that is similar to .NET's TimeSpan including many useful static methods.\r\n */\r\nexport default\r\nclass TimeSpan extends TimeQuantity implements ITimeMeasurement\r\n{\r\n\r\n\tticks: number;\r\n\tmilliseconds: number;\r\n\tseconds: number;\r\n\tminutes: number;\r\n\thours: number;\r\n\tdays: number;\r\n\r\n\t// In .NET the default type is Ticks, but for JavaScript, we will use Milliseconds.\r\n\tconstructor(value:number, units:TimeUnit = TimeUnit.Milliseconds)\r\n\t{\r\n\t\tvar ms = TimeUnit.toMilliseconds(value, units);\r\n\t\tsuper(ms);\r\n\r\n\t\tvar _ = this;\r\n\t\t_.ticks = ms*HowMany.Ticks.Per.Millisecond;\r\n\t\t_.milliseconds = ms;\r\n\t\t_.seconds = ms/HowMany.Milliseconds.Per.Second;\r\n\t\t_.minutes = ms/HowMany.Milliseconds.Per.Minute;\r\n\t\t_.hours = ms/HowMany.Milliseconds.Per.Hour;\r\n\t\t_.days = ms/HowMany.Milliseconds.Per.Day;\r\n\t}\r\n\r\n\t/**\r\n\t * Provides an standard interface for acquiring the total time.\r\n\t * @returns {TimeSpan}\r\n\t */\r\n\tget total():TimeSpan\r\n\t{\r\n\t\treturn this;\r\n\t}\r\n\r\n\tprivate _time:ClockTime;\r\n\t// Instead of the confusing getTotal versus unit name, expose a 'ClockTime' value which reports the individual components.\r\n\tget time():ClockTime\r\n\t{\r\n\t\tvar _ = this, t = _._time;\r\n\t\tif(!t) _._time = t = new ClockTime(_.getTotalMilliseconds());\r\n\t\treturn t;\r\n\t}\r\n\r\n\tadd(other:ITimeQuantity):TimeSpan\r\n\t{\r\n\t\tif(Type.isNumber(other))\r\n\t\t\tthrow new Error(\r\n\t\t\t\t\"Use .addUnit(value:number,units:TimeUnit) to add a numerical value amount. Default units are milliseconds.\\n\" +\r\n\t\t\t\t\".add only supports quantifiable time values (ITimeTotal).\"\r\n\t\t\t);\r\n\r\n\t\treturn new TimeSpan(this.getTotalMilliseconds() + other.total.milliseconds);\r\n\t}\r\n\r\n\taddUnit(value:number, units:TimeUnit = TimeUnit.Milliseconds):TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(this.getTotalMilliseconds() + TimeUnit.toMilliseconds(value, units));\r\n\t}\r\n\r\n\r\n\tstatic from(value:number, units:TimeUnit)\r\n\t{\r\n\t\treturn new TimeSpan(value, units);\r\n\t}\r\n\r\n\tstatic fromDays(value:number):TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(value, TimeUnit.Days);\r\n\t}\r\n\r\n\tstatic fromHours(value:number):TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(value, TimeUnit.Hours);\r\n\t}\r\n\r\n\tstatic fromMinutes(value:number):TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(value, TimeUnit.Minutes);\r\n\t}\r\n\r\n\tstatic fromSeconds(value:number):TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(value, TimeUnit.Seconds);\r\n\t}\r\n\r\n\tstatic fromMilliseconds(value:number):TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(value, TimeUnit.Milliseconds);\r\n\t}\r\n\r\n\tstatic fromTicks(value:number):TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(value, TimeUnit.Ticks);\r\n\t}\r\n\r\n\r\n\tstatic get zero():TimeSpan\r\n\t{\r\n\t\treturn timeSpanZero || (timeSpanZero = new TimeSpan(0));\r\n\t}\r\n}\r\n\r\n\r\nvar timeSpanZero:TimeSpan;\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Time/TimeSpan.js","System/Time/TimeSpan.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","Types_1","TimeUnit_1","ClockTime_1","TimeQuantity_1","TimeSpan","_super","value","units","TimeUnit","Milliseconds","ms","toMilliseconds","call","_","ticks","milliseconds","seconds","minutes","hours","days","defineProperty","get","enumerable","configurable","t","_time","ClockTime","getTotalMilliseconds","add","other","Type","isNumber","Error","total","addUnit","from","fromDays","Days","fromHours","Hours","fromMinutes","Minutes","fromSeconds","Seconds","fromMilliseconds","fromTicks","Ticks","timeSpanZero","TimeQuantity"],"mappings":";;;;;AAKA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,WAAY,aAAc,cAAe,kBAAmBN,IAE/F,SAAUI,EAASF,GAClB,YCZJ,IAAAM,GAAAJ,EAAmB,YACnBK,EAAAL,EAAuB,cACvBM,EAAAN,EAAwB,eACxBO,EAAAP,EAA2B,kBAS3BQ,EAAA,SAAAC,GAWC,QAAAD,GAAYE,EAAcC,GAAA,SAAAA,IAAAA,EAAiBN,EAAAO,SAASC,aAEnD,IAAIC,GAAKT,EAAAO,SAASG,eAAeL,EAAOC,EACxCF,GAAAO,KAAA9B,KAAM4B,EAEN,IAAIG,GAAI/B,IACR+B,GAAEC,MAAW,IAAHJ,EACVG,EAAEE,aAAeL,EACjBG,EAAEG,QAAUN,EAAG,IACfG,EAAEI,QAAUP,EAAG,IACfG,EAAEK,MAAQR,EAAG,KACbG,EAAEM,KAAOT,EAAG,MA8Ed,MApG8B7B,WAAAuB,EAAAC,GA6B7Bf,OAAA8B,eAAIhB,EAAAf,UAAA,SDTOgC,ICSX,WAEC,MAAOvC,ODRGwC,YAAY,EACZC,cAAc,ICYzBjC,OAAA8B,eAAIhB,EAAAf,UAAA,QDTOgC,ICSX,WAEC,GAAIR,GAAI/B,KAAM0C,EAAIX,EAAEY,KAEpB,OADID,KAAGX,EAAEY,MAAQD,EAAI,GAAItB,GAAAwB,UAAUb,EAAEc,yBAC9BH,GDPGF,YAAY,EACZC,cAAc,ICSzBnB,EAAAf,UAAAuC,IAAA,SAAIC,GAEH,GAAG7B,EAAA8B,KAAKC,SAASF,GAChB,KAAM,IAAIG,OACT,yKAIF,OAAO,IAAI5B,GAAStB,KAAK6C,uBAAyBE,EAAMI,MAAMlB,eAG/DX,EAAAf,UAAA6C,QAAA,SAAQ5B,EAAcC,GAErB,MAFqB,UAAAA,IAAAA,EAAiBN,EAAAO,SAASC,cAExC,GAAIL,GAAStB,KAAK6C,uBAAyB1B,EAAAO,SAASG,eAAeL,EAAOC,KAI3EH,EAAA+B,KAAP,SAAY7B,EAAcC,GAEzB,MAAO,IAAIH,GAASE,EAAOC,IAGrBH,EAAAgC,SAAP,SAAgB9B,GAEf,MAAO,IAAIF,GAASE,EAAOL,EAAAO,SAAS6B,OAG9BjC,EAAAkC,UAAP,SAAiBhC,GAEhB,MAAO,IAAIF,GAASE,EAAOL,EAAAO,SAAS+B,QAG9BnC,EAAAoC,YAAP,SAAmBlC,GAElB,MAAO,IAAIF,GAASE,EAAOL,EAAAO,SAASiC,UAG9BrC,EAAAsC,YAAP,SAAmBpC,GAElB,MAAO,IAAIF,GAASE,EAAOL,EAAAO,SAASmC,UAG9BvC,EAAAwC,iBAAP,SAAwBtC,GAEvB,MAAO,IAAIF,GAASE,EAAOL,EAAAO,SAASC,eAG9BL,EAAAyC,UAAP,SAAiBvC,GAEhB,MAAO,IAAIF,GAASE,EAAOL,EAAAO,SAASsC,QAIrCxD,OAAA8B,eAAWhB,EAAA,QD5BAiB,IC4BX,WAEC,MAAO0B,KAAiBA,EAAe,GAAI3C,GAAS,KD3B1CkB,YAAY,EACZC,cAAc,IC4B1BnB,GApG8BD,EAAA6C,aAAjBtD,GAAAU,SAAQA,CAuGrB,IAAI2C,EAEJzD,QAAA8B,eAAA1B,EAAA,cAAAY,OAAA,ID1BIZ,EAAAA,WC0BWU","file":"System/Time/TimeSpan.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Originally based upon .NET source but with many additions and improvements.\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../Types\", \"./TimeUnit\", \"./ClockTime\", \"./TimeQuantity\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var Types_1 = require(\"../Types\");\n var TimeUnit_1 = require(\"./TimeUnit\");\n var ClockTime_1 = require(\"./ClockTime\");\n var TimeQuantity_1 = require(\"./TimeQuantity\");\n var TimeSpan = (function (_super) {\n __extends(TimeSpan, _super);\n function TimeSpan(value, units) {\n if (units === void 0) { units = TimeUnit_1.TimeUnit.Milliseconds; }\n var ms = TimeUnit_1.TimeUnit.toMilliseconds(value, units);\n _super.call(this, ms);\n var _ = this;\n _.ticks = ms * 10000;\n _.milliseconds = ms;\n _.seconds = ms / 1000;\n _.minutes = ms / 60000;\n _.hours = ms / 3600000;\n _.days = ms / 86400000;\n }\n Object.defineProperty(TimeSpan.prototype, \"total\", {\n get: function () {\n return this;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TimeSpan.prototype, \"time\", {\n get: function () {\n var _ = this, t = _._time;\n if (!t)\n _._time = t = new ClockTime_1.ClockTime(_.getTotalMilliseconds());\n return t;\n },\n enumerable: true,\n configurable: true\n });\n TimeSpan.prototype.add = function (other) {\n if (Types_1.Type.isNumber(other))\n throw new Error(\"Use .addUnit(value:number,units:TimeUnit) to add a numerical value amount. Default units are milliseconds.\\n\" +\n \".add only supports quantifiable time values (ITimeTotal).\");\n return new TimeSpan(this.getTotalMilliseconds() + other.total.milliseconds);\n };\n TimeSpan.prototype.addUnit = function (value, units) {\n if (units === void 0) { units = TimeUnit_1.TimeUnit.Milliseconds; }\n return new TimeSpan(this.getTotalMilliseconds() + TimeUnit_1.TimeUnit.toMilliseconds(value, units));\n };\n TimeSpan.from = function (value, units) {\n return new TimeSpan(value, units);\n };\n TimeSpan.fromDays = function (value) {\n return new TimeSpan(value, TimeUnit_1.TimeUnit.Days);\n };\n TimeSpan.fromHours = function (value) {\n return new TimeSpan(value, TimeUnit_1.TimeUnit.Hours);\n };\n TimeSpan.fromMinutes = function (value) {\n return new TimeSpan(value, TimeUnit_1.TimeUnit.Minutes);\n };\n TimeSpan.fromSeconds = function (value) {\n return new TimeSpan(value, TimeUnit_1.TimeUnit.Seconds);\n };\n TimeSpan.fromMilliseconds = function (value) {\n return new TimeSpan(value, TimeUnit_1.TimeUnit.Milliseconds);\n };\n TimeSpan.fromTicks = function (value) {\n return new TimeSpan(value, TimeUnit_1.TimeUnit.Ticks);\n };\n Object.defineProperty(TimeSpan, \"zero\", {\n get: function () {\n return timeSpanZero || (timeSpanZero = new TimeSpan(0));\n },\n enumerable: true,\n configurable: true\n });\n return TimeSpan;\n }(TimeQuantity_1.TimeQuantity));\n exports.TimeSpan = TimeSpan;\n var timeSpanZero;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = TimeSpan;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Originally based upon .NET source but with many additions and improvements.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {Type} from \"../Types\";\r\nimport {TimeUnit} from \"./TimeUnit\";\r\nimport {ClockTime} from \"./ClockTime\";\r\nimport {TimeQuantity} from \"./TimeQuantity\";\r\nimport {Milliseconds, Ticks} from \"./HowMany\";\r\nimport {ITimeMeasurement} from \"./ITimeMeasurement\";\r\nimport {ITimeQuantity} from \"./ITimeQuantity\";\r\n\r\n\r\n/**\r\n * TimeSpan expands on TimeQuantity to provide an class that is similar to .NET's TimeSpan including many useful static methods.\r\n */\r\nexport class TimeSpan extends TimeQuantity implements ITimeMeasurement\r\n{\r\n\r\n\tticks:number;\r\n\tmilliseconds:number;\r\n\tseconds:number;\r\n\tminutes:number;\r\n\thours:number;\r\n\tdays:number;\r\n\r\n\t// In .NET the default type is Ticks, but for JavaScript, we will use Milliseconds.\r\n\tconstructor(value:number, units:TimeUnit = TimeUnit.Milliseconds)\r\n\t{\r\n\t\tvar ms = TimeUnit.toMilliseconds(value, units);\r\n\t\tsuper(ms);\r\n\r\n\t\tvar _ = this;\r\n\t\t_.ticks = ms*Ticks.Per.Millisecond;\r\n\t\t_.milliseconds = ms;\r\n\t\t_.seconds = ms/Milliseconds.Per.Second;\r\n\t\t_.minutes = ms/Milliseconds.Per.Minute;\r\n\t\t_.hours = ms/Milliseconds.Per.Hour;\r\n\t\t_.days = ms/Milliseconds.Per.Day;\r\n\t}\r\n\r\n\t/**\r\n\t * Provides an standard interface for acquiring the total time.\r\n\t * @returns {TimeSpan}\r\n\t */\r\n\tget total():TimeSpan\r\n\t{\r\n\t\treturn this;\r\n\t}\r\n\r\n\tprivate _time:ClockTime;\r\n\t// Instead of the confusing getTotal versus unit name, expose a 'ClockTime' value which reports the individual components.\r\n\tget time():ClockTime\r\n\t{\r\n\t\tvar _ = this, t = _._time;\r\n\t\tif(!t) _._time = t = new ClockTime(_.getTotalMilliseconds());\r\n\t\treturn t;\r\n\t}\r\n\r\n\tadd(other:ITimeQuantity):TimeSpan\r\n\t{\r\n\t\tif(Type.isNumber(other))\r\n\t\t\tthrow new Error(\r\n\t\t\t\t\"Use .addUnit(value:number,units:TimeUnit) to add a numerical value amount. Default units are milliseconds.\\n\" +\r\n\t\t\t\t\".add only supports quantifiable time values (ITimeTotal).\"\r\n\t\t\t);\r\n\r\n\t\treturn new TimeSpan(this.getTotalMilliseconds() + other.total.milliseconds);\r\n\t}\r\n\r\n\taddUnit(value:number, units:TimeUnit = TimeUnit.Milliseconds):TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(this.getTotalMilliseconds() + TimeUnit.toMilliseconds(value, units));\r\n\t}\r\n\r\n\r\n\tstatic from(value:number, units:TimeUnit)\r\n\t{\r\n\t\treturn new TimeSpan(value, units);\r\n\t}\r\n\r\n\tstatic fromDays(value:number):TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(value, TimeUnit.Days);\r\n\t}\r\n\r\n\tstatic fromHours(value:number):TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(value, TimeUnit.Hours);\r\n\t}\r\n\r\n\tstatic fromMinutes(value:number):TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(value, TimeUnit.Minutes);\r\n\t}\r\n\r\n\tstatic fromSeconds(value:number):TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(value, TimeUnit.Seconds);\r\n\t}\r\n\r\n\tstatic fromMilliseconds(value:number):TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(value, TimeUnit.Milliseconds);\r\n\t}\r\n\r\n\tstatic fromTicks(value:number):TimeSpan\r\n\t{\r\n\t\treturn new TimeSpan(value, TimeUnit.Ticks);\r\n\t}\r\n\r\n\r\n\tstatic get zero():TimeSpan\r\n\t{\r\n\t\treturn timeSpanZero || (timeSpanZero = new TimeSpan(0));\r\n\t}\r\n}\r\n\r\n\r\nvar timeSpanZero:TimeSpan;\r\n\r\nexport default TimeSpan;"]} \ No newline at end of file diff --git a/dist/umd.min/System/Time/TimeStamp.d.ts b/dist/umd.min/System/Time/TimeStamp.d.ts index e3dcad40..5e85f277 100644 --- a/dist/umd.min/System/Time/TimeStamp.d.ts +++ b/dist/umd.min/System/Time/TimeStamp.d.ts @@ -1,12 +1,11 @@ -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -export default class TimeStamp implements ITimeStamp, IDateTime { +import { ITimeStamp } from "./ITimeStamp"; +import { IDateTime } from "./IDateTime"; +import { Gregorian } from "./Calendars"; +export declare class TimeStamp implements ITimeStamp, IDateTime { year: number; month: Gregorian.Month; day: number; @@ -19,3 +18,4 @@ export default class TimeStamp implements ITimeStamp, IDateTime { toJsDate(): Date; static from(d: Date | IDateTime): TimeStamp; } +export default TimeStamp; diff --git a/dist/umd.min/System/Time/TimeStamp.js b/dist/umd.min/System/Time/TimeStamp.js index 713b54bc..f4fba7b0 100644 --- a/dist/umd.min/System/Time/TimeStamp.js +++ b/dist/umd.min/System/Time/TimeStamp.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../Types"],e)}(function(e,t){"use strict";var o=e("../Types"),i=function(){function e(e,t,o,i,n,s,r,d){void 0===o&&(o=1),void 0===i&&(i=0),void 0===n&&(n=0),void 0===s&&(s=0),void 0===r&&(r=0),void 0===d&&(d=0),this.year=e,this.month=t,this.day=o,this.hour=i,this.minute=n,this.second=s,this.millisecond=r,this.tick=d,Object.freeze(this)}return e.prototype.toJsDate=function(){var e=this;return new Date(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond+e.tick/1e4)},e.from=function(t){if(t instanceof Date||!o["default"].hasMember(t,"toJsDate")||(t=t.toJsDate()),t instanceof Date)return new e(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds());throw Error("Invalid date type.")},e}();Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=i}); +!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../Types"],e)}(function(e,t){"use strict";var o=e("../Types"),i=function(){function e(e,t,o,i,n,s,r,d){void 0===o&&(o=1),void 0===i&&(i=0),void 0===n&&(n=0),void 0===s&&(s=0),void 0===r&&(r=0),void 0===d&&(d=0),this.year=e,this.month=t,this.day=o,this.hour=i,this.minute=n,this.second=s,this.millisecond=r,this.tick=d,Object.freeze(this)}return e.prototype.toJsDate=function(){var e=this;return new Date(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond+e.tick/1e4)},e.from=function(t){if(t instanceof Date||!o.Type.hasMember(t,"toJsDate")||(t=t.toJsDate()),t instanceof Date)return new e(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds());throw Error("Invalid date type.")},e}();t.TimeStamp=i,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=i}); //# sourceMappingURL=TimeStamp.js.map diff --git a/dist/umd.min/System/Time/TimeStamp.js.map b/dist/umd.min/System/Time/TimeStamp.js.map index 2d86c110..d8282553 100644 --- a/dist/umd.min/System/Time/TimeStamp.js.map +++ b/dist/umd.min/System/Time/TimeStamp.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Time/TimeStamp.js","System/Time/TimeStamp.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","Types_1","TimeStamp","year","month","day","hour","minute","second","millisecond","tick","this","Object","freeze","prototype","toJsDate","_","Date","from","d","hasMember","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","Error","defineProperty","value"],"mappings":";;;;CAIA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,YAAaN,IAEhD,SAAUI,EAASF,GCFtB,YAEA,IAAAM,GAAAJ,EAAiB,YAKjBK,EAAA,WAIC,QAAAA,GACQC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GALP,SAAAL,IAAAA,EAAA,GACA,SAAAC,IAAAA,EAAA,GACA,SAAAC,IAAAA,EAAA,GACA,SAAAC,IAAAA,EAAA,GACA,SAAAC,IAAAA,EAAA,GACA,SAAAC,IAAAA,EAAA,GAPOC,KAAAR,KAAAA,EACAQ,KAAAP,MAAAA,EACAO,KAAAN,IAAAA,EACAM,KAAAL,KAAAA,EACAK,KAAAJ,OAAAA,EACAI,KAAAH,OAAAA,EACAG,KAAAF,YAAAA,EACAE,KAAAD,KAAAA,EAKPE,OAAOC,OAAOF,MA8BhB,MA3BCT,GAAAY,UAAAC,SAAA,WAEC,GAAIC,GAAIL,IACR,OAAO,IAAIM,MAAKD,EAAEb,KAAMa,EAAEZ,MAAOY,EAAEX,IAAKW,EAAEV,KAAMU,EAAET,OAAQS,EAAER,OAAQQ,EAAEP,YAAcO,EAAEN,KAAK,MAGrFR,EAAAgB,KAAP,SAAYC,GAIX,GAFMA,YAAaF,QAAShB,EAAAA,WAAKmB,UAAUD,EAAE,cAC5CA,EAAgBA,EAAGJ,YACjBI,YAAaF,MAEf,MAAO,IAAIf,GACViB,EAAEE,cACFF,EAAEG,WACFH,EAAEI,UACFJ,EAAEK,WACFL,EAAEM,aACFN,EAAEO,aACFP,EAAEQ,kBAKH,MAAMC,OAAM,uBAGf1B,IA/CAU,QAAAiB,eAAAlC,EAAA,cAAAmC,OAAA,IDiCInC,EAAAA,WAAkBO","file":"System/Time/TimeStamp.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", '../Types'], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var Types_1 = require('../Types');\n var TimeStamp = (function () {\n function TimeStamp(year, month, day, hour, minute, second, millisecond, tick) {\n if (day === void 0) { day = 1; }\n if (hour === void 0) { hour = 0; }\n if (minute === void 0) { minute = 0; }\n if (second === void 0) { second = 0; }\n if (millisecond === void 0) { millisecond = 0; }\n if (tick === void 0) { tick = 0; }\n this.year = year;\n this.month = month;\n this.day = day;\n this.hour = hour;\n this.minute = minute;\n this.second = second;\n this.millisecond = millisecond;\n this.tick = tick;\n Object.freeze(this);\n }\n TimeStamp.prototype.toJsDate = function () {\n var _ = this;\n return new Date(_.year, _.month, _.day, _.hour, _.minute, _.second, _.millisecond + _.tick / 10000);\n };\n TimeStamp.from = function (d) {\n if (!(d instanceof Date) && Types_1.default.hasMember(d, 'toJsDate'))\n d = d.toJsDate();\n if (d instanceof Date) {\n return new TimeStamp(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes(), d.getSeconds(), d.getMilliseconds());\n }\n else {\n throw Error('Invalid date type.');\n }\n };\n return TimeStamp;\n }());\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = TimeStamp;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport Type from '../Types';\r\n\r\n/**\r\n * An alternative to Date or DateTime. Is a model representing the exact date and time.\r\n */\r\nexport default\r\nclass TimeStamp implements ITimeStamp, IDateTime\r\n{\r\n\r\n\tconstructor(\r\n\t\tpublic year:number,\r\n\t\tpublic month:Gregorian.Month,\r\n\t\tpublic day:number = 1,\r\n\t\tpublic hour:number = 0,\r\n\t\tpublic minute:number = 0,\r\n\t\tpublic second:number = 0,\r\n\t\tpublic millisecond:number = 0,\r\n\t\tpublic tick:number = 0)\r\n\t{\r\n\r\n\t\t// TODO: Add validation or properly carry out of range values...\r\n\r\n\t\tObject.freeze(this);\r\n\t}\r\n\r\n\ttoJsDate():Date\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn new Date(_.year, _.month, _.day, _.hour, _.minute, _.second, _.millisecond + _.tick/HowMany.Ticks.Per.Millisecond);\r\n\t}\r\n\r\n\tstatic from(d:Date|IDateTime):TimeStamp\r\n\t{\r\n\t\tif (!(d instanceof Date) && Type.hasMember(d,'toJsDate'))\r\n\t\t\td = (d).toJsDate();\r\n\t\tif(d instanceof Date)\r\n\t\t{\r\n\t\t\treturn new TimeStamp(\r\n\t\t\t\td.getFullYear(),\r\n\t\t\t\td.getMonth(),\r\n\t\t\t\td.getDate(),\r\n\t\t\t\td.getHours(),\r\n\t\t\t\td.getMinutes(),\r\n\t\t\t\td.getSeconds(),\r\n\t\t\t\td.getMilliseconds()\r\n\t\t\t);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthrow Error('Invalid date type.');\r\n\t\t}\r\n\t}\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Time/TimeStamp.js","System/Time/TimeStamp.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","Types_1","TimeStamp","year","month","day","hour","minute","second","millisecond","tick","this","Object","freeze","prototype","toJsDate","_","Date","from","d","Type","hasMember","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","Error","defineProperty","value"],"mappings":";;;;CAIA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,YAAaN,IAEhD,SAAUI,EAASF,GAClB,YCPJ,IAAAM,GAAAJ,EAAmB,YASnBK,EAAA,WAGC,QAAAA,GACQC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GALP,SAAAL,IAAAA,EAAA,GACA,SAAAC,IAAAA,EAAA,GACA,SAAAC,IAAAA,EAAA,GACA,SAAAC,IAAAA,EAAA,GACA,SAAAC,IAAAA,EAAA,GACA,SAAAC,IAAAA,EAAA,GAPOC,KAAAR,KAAAA,EACAQ,KAAAP,MAAAA,EACAO,KAAAN,IAAAA,EACAM,KAAAL,KAAAA,EACAK,KAAAJ,OAAAA,EACAI,KAAAH,OAAAA,EACAG,KAAAF,YAAAA,EACAE,KAAAD,KAAAA,EAKPE,OAAOC,OAAOF,MA8BhB,MA3BCT,GAAAY,UAAAC,SAAA,WAEC,GAAIC,GAAIL,IACR,OAAO,IAAIM,MAAKD,EAAEb,KAAMa,EAAEZ,MAAOY,EAAEX,IAAKW,EAAEV,KAAMU,EAAET,OAAQS,EAAER,OAAQQ,EAAEP,YAAcO,EAAEN,KAAK,MAGrFR,EAAAgB,KAAP,SAAYC,GAIX,GAFKA,YAAaF,QAAShB,EAAAmB,KAAKC,UAAUF,EAAG,cAC5CA,EAAgBA,EAAGJ,YACjBI,YAAaF,MAEf,MAAO,IAAIf,GACViB,EAAEG,cACFH,EAAEI,WACFJ,EAAEK,UACFL,EAAEM,WACFN,EAAEO,aACFP,EAAEQ,aACFR,EAAES,kBAKH,MAAMC,OAAM,uBAGf3B,IA9CaP,GAAAO,UAASA,EAgDtBU,OAAAkB,eAAAnC,EAAA,cAAAoC,OAAA,IDZIpC,EAAAA,WCYWO","file":"System/Time/TimeStamp.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../Types\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var Types_1 = require(\"../Types\");\n var TimeStamp = (function () {\n function TimeStamp(year, month, day, hour, minute, second, millisecond, tick) {\n if (day === void 0) { day = 1; }\n if (hour === void 0) { hour = 0; }\n if (minute === void 0) { minute = 0; }\n if (second === void 0) { second = 0; }\n if (millisecond === void 0) { millisecond = 0; }\n if (tick === void 0) { tick = 0; }\n this.year = year;\n this.month = month;\n this.day = day;\n this.hour = hour;\n this.minute = minute;\n this.second = second;\n this.millisecond = millisecond;\n this.tick = tick;\n Object.freeze(this);\n }\n TimeStamp.prototype.toJsDate = function () {\n var _ = this;\n return new Date(_.year, _.month, _.day, _.hour, _.minute, _.second, _.millisecond + _.tick / 10000);\n };\n TimeStamp.from = function (d) {\n if (!(d instanceof Date) && Types_1.Type.hasMember(d, 'toJsDate'))\n d = d.toJsDate();\n if (d instanceof Date) {\n return new TimeStamp(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes(), d.getSeconds(), d.getMilliseconds());\n }\n else {\n throw Error('Invalid date type.');\n }\n };\n return TimeStamp;\n }());\n exports.TimeStamp = TimeStamp;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = TimeStamp;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {Type} from \"../Types\";\r\nimport {ITimeStamp} from \"./ITimeStamp\";\r\nimport {Ticks} from \"./HowMany\";\r\nimport {IDateTime} from \"./IDateTime\";\r\nimport {Gregorian} from \"./Calendars\";\r\n\r\n/**\r\n * An alternative to Date or DateTime. Is a model representing the exact date and time.\r\n */\r\nexport class TimeStamp implements ITimeStamp, IDateTime\r\n{\r\n\r\n\tconstructor(\r\n\t\tpublic year:number,\r\n\t\tpublic month:Gregorian.Month,\r\n\t\tpublic day:number = 1,\r\n\t\tpublic hour:number = 0,\r\n\t\tpublic minute:number = 0,\r\n\t\tpublic second:number = 0,\r\n\t\tpublic millisecond:number = 0,\r\n\t\tpublic tick:number = 0)\r\n\t{\r\n\r\n\t\t// TODO: Add validation or properly carry out of range values...\r\n\r\n\t\tObject.freeze(this);\r\n\t}\r\n\r\n\ttoJsDate():Date\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn new Date(_.year, _.month, _.day, _.hour, _.minute, _.second, _.millisecond + _.tick/Ticks.Per.Millisecond);\r\n\t}\r\n\r\n\tstatic from(d:Date|IDateTime):TimeStamp\r\n\t{\r\n\t\tif(!(d instanceof Date) && Type.hasMember(d, 'toJsDate'))\r\n\t\t\td = (d).toJsDate();\r\n\t\tif(d instanceof Date)\r\n\t\t{\r\n\t\t\treturn new TimeStamp(\r\n\t\t\t\td.getFullYear(),\r\n\t\t\t\td.getMonth(),\r\n\t\t\t\td.getDate(),\r\n\t\t\t\td.getHours(),\r\n\t\t\t\td.getMinutes(),\r\n\t\t\t\td.getSeconds(),\r\n\t\t\t\td.getMilliseconds()\r\n\t\t\t);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthrow Error('Invalid date type.');\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default TimeStamp;"]} \ No newline at end of file diff --git a/dist/umd.min/System/Time/TimeUnit.d.ts b/dist/umd.min/System/Time/TimeUnit.d.ts index 6dcded54..a312eb74 100644 --- a/dist/umd.min/System/Time/TimeUnit.d.ts +++ b/dist/umd.min/System/Time/TimeUnit.d.ts @@ -1,11 +1,10 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Originally based upon .NET source but with many additions and improvements. * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -declare enum TimeUnit { +import { ITimeQuantity } from "./ITimeQuantity"; +export declare enum TimeUnit { Ticks = 0, Milliseconds = 1, Seconds = 2, @@ -13,7 +12,7 @@ declare enum TimeUnit { Hours = 4, Days = 5, } -declare module TimeUnit { +export declare module TimeUnit { function toMilliseconds(value: number, units?: TimeUnit): number; function fromMilliseconds(ms: number, units: TimeUnit): number; function from(quantity: ITimeQuantity, unit: TimeUnit): number; diff --git a/dist/umd.min/System/Time/TimeUnit.js b/dist/umd.min/System/Time/TimeUnit.js index ebb635a2..4fff6903 100644 --- a/dist/umd.min/System/Time/TimeUnit.js +++ b/dist/umd.min/System/Time/TimeUnit.js @@ -3,5 +3,5 @@ * Originally based upon .NET source but with many additions and improvements. * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -!function(e){if("object"==typeof module&&"object"==typeof module.exports){var s=e(require,exports);void 0!==s&&(module.exports=s)}else"function"==typeof define&&define.amd&&define(["require","exports"],e)}(function(e,s){"use strict";var i;!function(e){e[e.Ticks=0]="Ticks",e[e.Milliseconds=1]="Milliseconds",e[e.Seconds=2]="Seconds",e[e.Minutes=3]="Minutes",e[e.Hours=4]="Hours",e[e.Days=5]="Days"}(i||(i={}));var i;!function(e){function s(s,i){switch(void 0===i&&(i=e.Milliseconds),i){case e.Days:s*=24;case e.Hours:s*=60;case e.Minutes:s*=60;case e.Seconds:s*=1e3;case e.Milliseconds:return s;case e.Ticks:return s/1e4;default:throw new Error("Invalid TimeUnit.")}}function i(s,i){switch(i){case e.Days:return s/864e5;case e.Hours:return s/36e5;case e.Minutes:return s/6e4;case e.Seconds:return s/1e3;case e.Milliseconds:return s;case e.Ticks:return 1e4*s;default:throw new Error("Invalid TimeUnit.")}}function n(e,s){return e&&i(e.getTotalMilliseconds(),s)}function r(s){if(isNaN(s)||s>e.Days||se.Days||i TimeUnit.Days || unit < TimeUnit.Ticks || Math.floor(unit) !== unit)\n throw new Error(\"Invalid TimeUnit.\");\n return true;\n }\n TimeUnit.assertValid = assertValid;\n })(TimeUnit || (TimeUnit = {}));\n Object.freeze(TimeUnit);\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = TimeUnit;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Originally based upon .NET source but with many additions and improvements.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n\r\n\r\nenum TimeUnit\r\n{\r\n\tTicks,\r\n\tMilliseconds,\r\n\tSeconds,\r\n\tMinutes,\r\n\tHours,\r\n\tDays\r\n} // Earth Days\r\n\r\nmodule TimeUnit\r\n{\r\n\r\n\texport function toMilliseconds(\r\n\t\tvalue:number,\r\n\t\tunits:TimeUnit = TimeUnit.Milliseconds):number\r\n\t{\r\n\t\t// noinspection FallThroughInSwitchStatementJS\r\n\t\tswitch(units)\r\n\t\t{\r\n\t\t\tcase TimeUnit.Days:\r\n\t\t\t\tvalue *= HowMany.Hours.Per.Day;\r\n\t\t\tcase TimeUnit.Hours:\r\n\t\t\t\tvalue *= HowMany.Minutes.Per.Hour;\r\n\t\t\tcase TimeUnit.Minutes:\r\n\t\t\t\tvalue *= HowMany.Seconds.Per.Minute;\r\n\t\t\tcase TimeUnit.Seconds:\r\n\t\t\t\tvalue *= HowMany.Milliseconds.Per.Second;\r\n\t\t\tcase TimeUnit.Milliseconds:\r\n\t\t\t\treturn value;\r\n\t\t\tcase TimeUnit.Ticks:\r\n\t\t\t\treturn value/HowMany.Ticks.Per.Millisecond;\r\n\t\t\tdefault:\r\n\t\t\t\tthrow new Error(\"Invalid TimeUnit.\");\r\n\t\t}\r\n\t}\r\n\r\n\texport function fromMilliseconds(\r\n\t\tms:number,\r\n\t\tunits:TimeUnit)\r\n\t{\r\n\t\tswitch(units)\r\n\t\t{\r\n\t\t\tcase TimeUnit.Days:\r\n\t\t\t\treturn ms/HowMany.Milliseconds.Per.Day;\r\n\t\t\tcase TimeUnit.Hours:\r\n\t\t\t\treturn ms/HowMany.Milliseconds.Per.Hour;\r\n\t\t\tcase TimeUnit.Minutes:\r\n\t\t\t\treturn ms/HowMany.Milliseconds.Per.Minute;\r\n\t\t\tcase TimeUnit.Seconds:\r\n\t\t\t\treturn ms/HowMany.Milliseconds.Per.Second;\r\n\t\t\tcase TimeUnit.Milliseconds:\r\n\t\t\t\treturn ms;\r\n\t\t\tcase TimeUnit.Ticks:\r\n\t\t\t\treturn ms*HowMany.Ticks.Per.Millisecond;\r\n\t\t\tdefault:\r\n\t\t\t\tthrow new Error(\"Invalid TimeUnit.\");\r\n\t\t}\r\n\t}\r\n\r\n\texport function from(quantity:ITimeQuantity, unit:TimeUnit):number {\r\n\t\treturn quantity && fromMilliseconds(quantity.getTotalMilliseconds(),unit);\r\n\t}\r\n\r\n\r\n\texport function assertValid(unit:TimeUnit):boolean\r\n\t{\r\n\t\tif(isNaN(unit) || unit>TimeUnit.Days || unit TimeUnit.Days || unit < TimeUnit.Ticks || Math.floor(unit) !== unit)\n throw new Error(\"Invalid TimeUnit.\");\n return true;\n }\n TimeUnit.assertValid = assertValid;\n })(TimeUnit = exports.TimeUnit || (exports.TimeUnit = {}));\n Object.freeze(TimeUnit);\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = TimeUnit;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Originally based upon .NET source but with many additions and improvements.\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {Hours, Minutes, Seconds, Milliseconds, Ticks} from \"./HowMany\";\r\nimport {ITimeQuantity} from \"./ITimeQuantity\";\r\n\r\nexport enum TimeUnit\r\n{\r\n\tTicks,\r\n\tMilliseconds,\r\n\tSeconds,\r\n\tMinutes,\r\n\tHours,\r\n\tDays\r\n} // Earth Days\r\n\r\nexport module TimeUnit\r\n{\r\n\r\n\texport function toMilliseconds(\r\n\t\tvalue:number,\r\n\t\tunits:TimeUnit = TimeUnit.Milliseconds):number\r\n\t{\r\n\t\t// noinspection FallThroughInSwitchStatementJS\r\n\t\tswitch(units)\r\n\t\t{\r\n\t\t\tcase TimeUnit.Days:\r\n\t\t\t\tvalue *= Hours.Per.Day;\r\n\t\t\tcase TimeUnit.Hours:\r\n\t\t\t\tvalue *= Minutes.Per.Hour;\r\n\t\t\tcase TimeUnit.Minutes:\r\n\t\t\t\tvalue *= Seconds.Per.Minute;\r\n\t\t\tcase TimeUnit.Seconds:\r\n\t\t\t\tvalue *= Milliseconds.Per.Second;\r\n\t\t\tcase TimeUnit.Milliseconds:\r\n\t\t\t\treturn value;\r\n\t\t\tcase TimeUnit.Ticks:\r\n\t\t\t\treturn value/Ticks.Per.Millisecond;\r\n\t\t\tdefault:\r\n\t\t\t\tthrow new Error(\"Invalid TimeUnit.\");\r\n\t\t}\r\n\t}\r\n\r\n\texport function fromMilliseconds(\r\n\t\tms:number,\r\n\t\tunits:TimeUnit)\r\n\t{\r\n\t\tswitch(units)\r\n\t\t{\r\n\t\t\tcase TimeUnit.Days:\r\n\t\t\t\treturn ms/Milliseconds.Per.Day;\r\n\t\t\tcase TimeUnit.Hours:\r\n\t\t\t\treturn ms/Milliseconds.Per.Hour;\r\n\t\t\tcase TimeUnit.Minutes:\r\n\t\t\t\treturn ms/Milliseconds.Per.Minute;\r\n\t\t\tcase TimeUnit.Seconds:\r\n\t\t\t\treturn ms/Milliseconds.Per.Second;\r\n\t\t\tcase TimeUnit.Milliseconds:\r\n\t\t\t\treturn ms;\r\n\t\t\tcase TimeUnit.Ticks:\r\n\t\t\t\treturn ms*Ticks.Per.Millisecond;\r\n\t\t\tdefault:\r\n\t\t\t\tthrow new Error(\"Invalid TimeUnit.\");\r\n\t\t}\r\n\t}\r\n\r\n\texport function from(quantity:ITimeQuantity, unit:TimeUnit):number\r\n\t{\r\n\t\treturn quantity && fromMilliseconds(quantity.getTotalMilliseconds(), unit);\r\n\t}\r\n\r\n\r\n\texport function assertValid(unit:TimeUnit):boolean\r\n\t{\r\n\t\tif(isNaN(unit) || unit>TimeUnit.Days || unit -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import TimeUnit from './TimeUnit'; -import TimeQuantity from './TimeQuantity'; +import { TimeUnit } from "./TimeUnit"; +import { TimeQuantity } from "./TimeQuantity"; +import { ITimeQuantity } from "./ITimeQuantity"; export default class TimeUnitValue extends TimeQuantity { private _units; constructor(value: number | ITimeQuantity, _units: TimeUnit); diff --git a/dist/umd.min/System/Time/TimeUnitValue.js b/dist/umd.min/System/Time/TimeUnitValue.js index 5669cb70..7ada86c9 100644 --- a/dist/umd.min/System/Time/TimeUnitValue.js +++ b/dist/umd.min/System/Time/TimeUnitValue.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)};!function(t){if("object"==typeof module&&"object"==typeof module.exports){var e=t(require,exports);void 0!==e&&(module.exports=e)}else"function"==typeof define&&define.amd&&define(["require","exports","./TimeUnit","./TimeQuantity"],t)}(function(t,e){"use strict";function n(t,e){return i["default"].fromMilliseconds(t.getTotalMilliseconds(),e)}var i=t("./TimeUnit"),o=t("./TimeQuantity"),r=function(t){function e(e,o){t.call(this,"number"==typeof e?e:n(e,o)),this._units=o,i["default"].assertValid(o)}return __extends(e,t),Object.defineProperty(e.prototype,"value",{get:function(){return this._quantity},set:function(t){this._total=null,this._quantity=t},enumerable:!0,configurable:!0}),e.prototype.getTotalMilliseconds=function(){return i["default"].toMilliseconds(this._quantity,this._units)},Object.defineProperty(e.prototype,"units",{get:function(){return this._units},enumerable:!0,configurable:!0}),e.prototype.to=function(t){return void 0===t&&(t=this.units),e.from(this,t)},e.from=function(t,n){return void 0===n&&(n=i["default"].Milliseconds),new e(t,n)},e}(o["default"]);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r}); +var __extends=this&&this.__extends||function(t,e){function i(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)};!function(t){if("object"==typeof module&&"object"==typeof module.exports){var e=t(require,exports);void 0!==e&&(module.exports=e)}else"function"==typeof define&&define.amd&&define(["require","exports","./TimeUnit","./TimeQuantity"],t)}(function(t,e){"use strict";function i(t,e){return n.TimeUnit.fromMilliseconds(t.getTotalMilliseconds(),e)}var n=t("./TimeUnit"),o=t("./TimeQuantity"),r=function(t){function e(e,o){t.call(this,"number"==typeof e?e:i(e,o)),this._units=o,n.TimeUnit.assertValid(o)}return __extends(e,t),Object.defineProperty(e.prototype,"value",{get:function(){return this._quantity},set:function(t){this._total=null,this._quantity=t},enumerable:!0,configurable:!0}),e.prototype.getTotalMilliseconds=function(){return n.TimeUnit.toMilliseconds(this._quantity,this._units)},Object.defineProperty(e.prototype,"units",{get:function(){return this._units},enumerable:!0,configurable:!0}),e.prototype.to=function(t){return void 0===t&&(t=this.units),e.from(this,t)},e.from=function(t,i){return void 0===i&&(i=n.TimeUnit.Milliseconds),new e(t,i)},e}(o.TimeQuantity);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r}); //# sourceMappingURL=TimeUnitValue.js.map diff --git a/dist/umd.min/System/Time/TimeUnitValue.js.map b/dist/umd.min/System/Time/TimeUnitValue.js.map index 7458b1c0..5a2ee130 100644 --- a/dist/umd.min/System/Time/TimeUnitValue.js.map +++ b/dist/umd.min/System/Time/TimeUnitValue.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Time/TimeUnitValue.js","System/Time/TimeUnitValue.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","getUnitQuantityFrom","q","units","TimeUnit_1","fromMilliseconds","getTotalMilliseconds","TimeQuantity_1","TimeUnitValue","_super","value","_units","call","assertValid","defineProperty","get","_quantity","set","_total","enumerable","configurable","toMilliseconds","to","from","Milliseconds"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,aAAc,kBAAmBN,IAEpE,SAAUI,EAASF,GCPtB,YAuDA,SAAAM,GAA6BC,EAAiBC,GAE7C,MAAOC,GAAAA,WAASC,iBAAiBH,EAAEI,uBAAwBH,GAtD5D,GAAAC,GAAAP,EAAqB,cACrBU,EAAAV,EAAyB,kBAKzBW,EAAA,SAAAC,GAIC,QAAAD,GAAYE,EAAoCC,GAE/CF,EAAAG,KAAA7B,KAAqB,gBAAT,GACD2B,EACRT,EAAmCS,EAAOC,IAJE5B,KAAA4B,OAAAA,EAK/CP,EAAAA,WAASS,YAAYF,GAmCvB,MA3C4B7B,WAAA0B,EAAAC,GAW3BlB,OAAAuB,eAAIN,EAAAlB,UAAA,SDAOyB,ICAX,WAEC,MAAOhC,MAAKiC,WDCFC,ICEX,SAAUrB,GAETb,KAAKmC,OAAS,KACdnC,KAAKiC,UAAYpB,GDDPuB,YAAY,EACZC,cAAc,ICGzBZ,EAAAlB,UAAAgB,qBAAA,WAEC,MAAOF,GAAAA,WAASiB,eAAetC,KAAKiC,UAAWjC,KAAK4B,SAIrDpB,OAAAuB,eAAIN,EAAAlB,UAAA,SDHOyB,ICGX,WAEC,MAAOhC,MAAK4B,QDFFQ,YAAY,EACZC,cAAc,ICIzBZ,EAAAlB,UAAAgC,GAAA,SAAGnB,GAEF,MAFE,UAAAA,IAAAA,EAAiBpB,KAAKoB,OAEjBK,EAAce,KAAKxC,KAAKoB,IAGzBK,EAAAe,KAAP,SAAYb,EAA4BP,GAEvC,MAFuC,UAAAA,IAAAA,EAAiBC,EAAAA,WAASoB,cAE1D,GAAIhB,GAAcE,EAAOP,IAGlCK,GA3C4BD,EAAAA,WAD5BhB,QAAAuB,eAAAnB,EAAA,cAAAe,OAAA,ID2CIf,EAAAA,WAAkBa","file":"System/Time/TimeUnitValue.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", './TimeUnit', './TimeQuantity'], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var TimeUnit_1 = require('./TimeUnit');\n var TimeQuantity_1 = require('./TimeQuantity');\n var TimeUnitValue = (function (_super) {\n __extends(TimeUnitValue, _super);\n function TimeUnitValue(value, _units) {\n _super.call(this, typeof (value) == 'number'\n ? value\n : getUnitQuantityFrom(value, _units));\n this._units = _units;\n TimeUnit_1.default.assertValid(_units);\n }\n Object.defineProperty(TimeUnitValue.prototype, \"value\", {\n get: function () {\n return this._quantity;\n },\n set: function (v) {\n this._total = null;\n this._quantity = v;\n },\n enumerable: true,\n configurable: true\n });\n TimeUnitValue.prototype.getTotalMilliseconds = function () {\n return TimeUnit_1.default.toMilliseconds(this._quantity, this._units);\n };\n Object.defineProperty(TimeUnitValue.prototype, \"units\", {\n get: function () {\n return this._units;\n },\n enumerable: true,\n configurable: true\n });\n TimeUnitValue.prototype.to = function (units) {\n if (units === void 0) { units = this.units; }\n return TimeUnitValue.from(this, units);\n };\n TimeUnitValue.from = function (value, units) {\n if (units === void 0) { units = TimeUnit_1.default.Milliseconds; }\n return new TimeUnitValue(value, units);\n };\n return TimeUnitValue;\n }(TimeQuantity_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = TimeUnitValue;\n function getUnitQuantityFrom(q, units) {\n return TimeUnit_1.default.fromMilliseconds(q.getTotalMilliseconds(), units);\n }\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport {areEqual, compare} from '../Compare';\r\nimport TimeUnit from './TimeUnit';\r\nimport TimeQuantity from './TimeQuantity';\r\n\r\n/**\r\n * TimeUnitValue allows for passing around a reference to a changeable measure of time coerced by its unit type.\r\n */\r\nexport default\r\nclass TimeUnitValue extends TimeQuantity\r\n{\r\n\r\n\tconstructor(value:number|ITimeQuantity, private _units:TimeUnit)\r\n\t{\r\n\t\tsuper(typeof(value)=='number'\r\n\t\t\t? value\r\n\t\t\t: getUnitQuantityFrom(value, _units));\r\n\t\tTimeUnit.assertValid(_units);\r\n\t}\r\n\r\n\tget value():number\r\n\t{\r\n\t\treturn this._quantity;\r\n\t}\r\n\r\n\tset value(v:number)\r\n\t{\r\n\t\tthis._total = null;\r\n\t\tthis._quantity = v;\r\n\t}\r\n\r\n\tgetTotalMilliseconds():number\r\n\t{\r\n\t\treturn TimeUnit.toMilliseconds(this._quantity, this._units);\r\n\t}\r\n\r\n\t// To avoid confusion, the unit type can only be set once at construction.\r\n\tget units():TimeUnit\r\n\t{\r\n\t\treturn this._units;\r\n\t}\r\n\r\n\tto(units:TimeUnit = this.units):TimeUnitValue\r\n\t{\r\n\t\treturn TimeUnitValue.from(this,units);\r\n\t}\r\n\r\n\tstatic from(value:number|ITimeQuantity, units:TimeUnit = TimeUnit.Milliseconds):TimeUnitValue\r\n\t{\r\n\t\treturn new TimeUnitValue(value, units);\r\n\t}\r\n\r\n}\r\n\r\nfunction getUnitQuantityFrom(q:ITimeQuantity, units:TimeUnit)\r\n{\r\n\treturn TimeUnit.fromMilliseconds(q.getTotalMilliseconds(), units);\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Time/TimeUnitValue.js","System/Time/TimeUnitValue.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","getUnitQuantityFrom","q","units","TimeUnit_1","TimeUnit","fromMilliseconds","getTotalMilliseconds","TimeQuantity_1","TimeUnitValue","_super","value","_units","call","assertValid","defineProperty","get","_quantity","set","_total","enumerable","configurable","toMilliseconds","to","from","Milliseconds","TimeQuantity"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,aAAc,kBAAmBN,IAEpE,SAAUI,EAASF,GAClB,YC0CJ,SAAAM,GAA6BC,EAAiBC,GAE7C,MAAOC,GAAAC,SAASC,iBAAiBJ,EAAEK,uBAAwBJ,GAvD5D,GAAAC,GAAAP,EAAuB,cACvBW,EAAAX,EAA2B,kBAM3BY,EAAA,SAAAC,GAIC,QAAAD,GAAYE,EAAoCC,GAE/CF,EAAAG,KAAA9B,KAAqB,gBAAT,GACD4B,EACRV,EAAmCU,EAAOC,IAJE7B,KAAA6B,OAAAA,EAK/CR,EAAAC,SAASS,YAAYF,GAmCvB,MA3C4B9B,WAAA2B,EAAAC,GAW3BnB,OAAAwB,eAAIN,EAAAnB,UAAA,SDKO0B,ICLX,WAEC,MAAOjC,MAAKkC,WDMFC,ICHX,SAAUtB,GAETb,KAAKoC,OAAS,KACdpC,KAAKkC,UAAYrB,GDIPwB,YAAY,EACZC,cAAc,ICFzBZ,EAAAnB,UAAAiB,qBAAA,WAEC,MAAOH,GAAAC,SAASiB,eAAevC,KAAKkC,UAAWlC,KAAK6B,SAIrDrB,OAAAwB,eAAIN,EAAAnB,UAAA,SDEO0B,ICFX,WAEC,MAAOjC,MAAK6B,QDGFQ,YAAY,EACZC,cAAc,ICDzBZ,EAAAnB,UAAAiC,GAAA,SAAGpB,GAEF,MAFE,UAAAA,IAAAA,EAAiBpB,KAAKoB,OAEjBM,EAAce,KAAKzC,KAAKoB,IAGzBM,EAAAe,KAAP,SAAYb,EAA4BR,GAEvC,MAFuC,UAAAA,IAAAA,EAAiBC,EAAAC,SAASoB,cAE1D,GAAIhB,GAAcE,EAAOR,IAGlCM,GA3C4BD,EAAAkB,aAD5BnC,QAAAwB,eAAApB,EAAA,cAAAgB,OAAA,IDgDIhB,EAAAA,WAAkBc","file":"System/Time/TimeUnitValue.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"./TimeUnit\", \"./TimeQuantity\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var TimeUnit_1 = require(\"./TimeUnit\");\n var TimeQuantity_1 = require(\"./TimeQuantity\");\n var TimeUnitValue = (function (_super) {\n __extends(TimeUnitValue, _super);\n function TimeUnitValue(value, _units) {\n _super.call(this, typeof (value) == 'number'\n ? value\n : getUnitQuantityFrom(value, _units));\n this._units = _units;\n TimeUnit_1.TimeUnit.assertValid(_units);\n }\n Object.defineProperty(TimeUnitValue.prototype, \"value\", {\n get: function () {\n return this._quantity;\n },\n set: function (v) {\n this._total = null;\n this._quantity = v;\n },\n enumerable: true,\n configurable: true\n });\n TimeUnitValue.prototype.getTotalMilliseconds = function () {\n return TimeUnit_1.TimeUnit.toMilliseconds(this._quantity, this._units);\n };\n Object.defineProperty(TimeUnitValue.prototype, \"units\", {\n get: function () {\n return this._units;\n },\n enumerable: true,\n configurable: true\n });\n TimeUnitValue.prototype.to = function (units) {\n if (units === void 0) { units = this.units; }\n return TimeUnitValue.from(this, units);\n };\n TimeUnitValue.from = function (value, units) {\n if (units === void 0) { units = TimeUnit_1.TimeUnit.Milliseconds; }\n return new TimeUnitValue(value, units);\n };\n return TimeUnitValue;\n }(TimeQuantity_1.TimeQuantity));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = TimeUnitValue;\n function getUnitQuantityFrom(q, units) {\n return TimeUnit_1.TimeUnit.fromMilliseconds(q.getTotalMilliseconds(), units);\n }\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {TimeUnit} from \"./TimeUnit\";\r\nimport {TimeQuantity} from \"./TimeQuantity\";\r\nimport {ITimeQuantity} from \"./ITimeQuantity\";\r\n\r\n/**\r\n * TimeUnitValue allows for passing around a reference to a changeable measure of time coerced by its unit type.\r\n */\r\nexport default\r\nclass TimeUnitValue extends TimeQuantity\r\n{\r\n\r\n\tconstructor(value:number|ITimeQuantity, private _units:TimeUnit)\r\n\t{\r\n\t\tsuper(typeof(value)=='number'\r\n\t\t\t? value\r\n\t\t\t: getUnitQuantityFrom(value, _units));\r\n\t\tTimeUnit.assertValid(_units);\r\n\t}\r\n\r\n\tget value():number\r\n\t{\r\n\t\treturn this._quantity;\r\n\t}\r\n\r\n\tset value(v:number)\r\n\t{\r\n\t\tthis._total = null;\r\n\t\tthis._quantity = v;\r\n\t}\r\n\r\n\tgetTotalMilliseconds():number\r\n\t{\r\n\t\treturn TimeUnit.toMilliseconds(this._quantity, this._units);\r\n\t}\r\n\r\n\t// To avoid confusion, the unit type can only be set once at construction.\r\n\tget units():TimeUnit\r\n\t{\r\n\t\treturn this._units;\r\n\t}\r\n\r\n\tto(units:TimeUnit = this.units):TimeUnitValue\r\n\t{\r\n\t\treturn TimeUnitValue.from(this,units);\r\n\t}\r\n\r\n\tstatic from(value:number|ITimeQuantity, units:TimeUnit = TimeUnit.Milliseconds):TimeUnitValue\r\n\t{\r\n\t\treturn new TimeUnitValue(value, units);\r\n\t}\r\n\r\n}\r\n\r\nfunction getUnitQuantityFrom(q:ITimeQuantity, units:TimeUnit)\r\n{\r\n\treturn TimeUnit.fromMilliseconds(q.getTotalMilliseconds(), units);\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Timers/Timer.d.ts b/dist/umd.min/System/Timers/Timer.d.ts index 00797473..61035b51 100644 --- a/dist/umd.min/System/Timers/Timer.d.ts +++ b/dist/umd.min/System/Timers/Timer.d.ts @@ -1,10 +1,10 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import ObservableBase from "./../Observable/ObservableBase"; +import { ICancellable } from "../Tasks/ICancellable"; +import { ObservableBase } from "../Observable/ObservableBase"; +import { ITimer } from "./ITimer"; export default class Timer extends ObservableBase implements ITimer, ICancellable { private _interval; private _maxCount; diff --git a/dist/umd.min/System/Timers/Timer.js b/dist/umd.min/System/Timers/Timer.js index 43f12587..08b5d7ce 100644 --- a/dist/umd.min/System/Timers/Timer.js +++ b/dist/umd.min/System/Timers/Timer.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)};!function(t){if("object"==typeof module&&"object"==typeof module.exports){var e=t(require,exports);void 0!==e&&(module.exports=e)}else"function"==typeof define&&define.amd&&define(["require","exports","./../Observable/ObservableBase"],t)}(function(t,e){"use strict";var n=t("./../Observable/ObservableBase"),o=function(t){function e(e,n,o){if(void 0===n&&(n=1/0),void 0===o&&(o=e),t.call(this),this._interval=e,this._maxCount=n,this._initialDelay=o,this._count=0,null===e||void 0===e)throw"'interval' must be a valid number.";if(0>e)throw"'interval' cannot be negative."}return __extends(e,t),e.startNew=function(t,n,o){void 0===n&&(n=1/0),void 0===o&&(o=t);var i=new e(t,n,t);return i.start(),i},Object.defineProperty(e.prototype,"isRunning",{get:function(){return!!this._cancel},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"count",{get:function(){return this._count},enumerable:!0,configurable:!0}),e.prototype.start=function(){var t=this;if(!t._cancel&&t._count=o;e&&(t.cancel(),t.start()),i&&t.stop(),o>n&&t._onNext(n),i&&t._onCompleted()},e}(n["default"]);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=o}); +var __extends=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)};!function(t){if("object"==typeof module&&"object"==typeof module.exports){var e=t(require,exports);void 0!==e&&(module.exports=e)}else"function"==typeof define&&define.amd&&define(["require","exports","../Observable/ObservableBase"],t)}(function(t,e){"use strict";var n=t("../Observable/ObservableBase"),o=function(t){function e(e,n,o){if(void 0===n&&(n=1/0),void 0===o&&(o=e),t.call(this),this._interval=e,this._maxCount=n,this._initialDelay=o,this._count=0,null===e||void 0===e)throw"'interval' must be a valid number.";if(0>e)throw"'interval' cannot be negative."}return __extends(e,t),e.startNew=function(t,n,o){void 0===n&&(n=1/0),void 0===o&&(o=t);var i=new e(t,n,t);return i.start(),i},Object.defineProperty(e.prototype,"isRunning",{get:function(){return!!this._cancel},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"count",{get:function(){return this._count},enumerable:!0,configurable:!0}),e.prototype.start=function(){var t=this;if(!t._cancel&&t._count=o;e&&(t.cancel(),t.start()),i&&t.stop(),o>n&&t._onNext(n),i&&t._onCompleted()},e}(n.ObservableBase);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=o}); //# sourceMappingURL=Timer.js.map diff --git a/dist/umd.min/System/Timers/Timer.js.map b/dist/umd.min/System/Timers/Timer.js.map index 9503b9d7..bd3cfd1c 100644 --- a/dist/umd.min/System/Timers/Timer.js.map +++ b/dist/umd.min/System/Timers/Timer.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Timers/Timer.js","System/Timers/Timer.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","ObservableBase_1","Timer","_super","_interval","_maxCount","_initialDelay","Infinity","call","_count","startNew","millisecondInterval","maxCount","initialDelay","t","start","defineProperty","get","_cancel","enumerable","configurable","_","i_1","setInterval","_onTick","clearInterval","i_2","setTimeout","clearTimeout","stop","cancel","reset","dispose","timer","reInitTimer","index","max","isComplete","_onNext","_onCompleted","value"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,kCAAmCN,IAEtE,SAAUI,EAASF,GAClB,YCVJ,IAAAM,GAAAJ,EAA2B,kCAE3BK,EAAA,SAAAC,GAMC,QAAAD,GACSE,EACAC,EACAC,GAIR,GALA,SAAAD,IAAAA,EAAAE,EAAAA,GACA,SAAAD,IAAAA,EAAAF,GAEAD,EAAAK,KAAAzB,MAJQA,KAAAqB,UAAAA,EACArB,KAAAsB,UAAAA,EACAtB,KAAAuB,cAAAA,EALDvB,KAAA0B,OAAgB,EASR,OAAZL,GAAiC,SAAbA,EACtB,KAAM,oCACP,IAAa,EAAVA,EACF,KAAM,iCAkHT,MAlImCtB,WAAAoB,EAAAC,GAmB3BD,EAAAQ,SAAP,SACCC,EACAC,EACAC,GADA,SAAAD,IAAAA,EAAAL,EAAAA,GACA,SAAAM,IAAAA,EAAAF,EAEA,IAAIG,GAAI,GAAIZ,GAAMS,EAAqBC,EAAUD,EAEjD,OADAG,GAAEC,QACKD,GAGRvB,OAAAyB,eAAId,EAAAZ,UAAA,aDIO2B,ICJX,WAEC,QAASlC,KAAKmC,SDKJC,YAAY,EACZC,cAAc,ICHzB7B,OAAAyB,eAAId,EAAAZ,UAAA,SDMO2B,ICNX,WAEC,MAAOlC,MAAK0B,QDOFU,YAAY,EACZC,cAAc,ICLzBlB,EAAAZ,UAAAyB,MAAA,WAEC,GAAIM,GAAItC,IACR,KAAIsC,EAAEH,SAAWG,EAAEZ,OAAOY,EAAEhB,UAG3B,GAAGgB,EAAEZ,QAAUY,EAAEf,eAAee,EAAEjB,UAClC,CACC,GAAIkB,GAAIC,YACPrB,EAAMsB,QACNH,EAAEjB,UACFiB,EAEDA,GAAEH,QAAU,WAEXO,cAAcH,QAIhB,CACC,GAAII,GAAIC,WACPzB,EAAMsB,QACNH,EAAEf,cACFe,GAAG,EAEJA,GAAEH,QAAU,WAEXU,aAAaF,MAOjBxB,EAAAZ,UAAAuC,KAAA,WAEC9C,KAAK+C,UAGN5B,EAAAZ,UAAAyC,MAAA,WAEChD,KAAK8C,OACL9C,KAAK0B,OAAS,GAGfP,EAAAZ,UAAAwC,OAAA,WACC,MAAG/C,MAAKmC,SAEPnC,KAAKmC,UACLnC,KAAKmC,QAAU,MACR,IAED,GAGRhB,EAAAZ,UAAA0C,QAAA,WACCjD,KAAK+C,SACL3B,EAAAb,UAAM0C,QAAOxB,KAAAzB,OAICmB,EAAAsB,QAAf,SACCS,EACAC,GAEA,GAAIC,GAAaF,EAAMxB,SACnB2B,EAAaH,EAAM5B,UACnBgC,EAAaJ,EAAMxB,QAAQ2B,CAE5BF,KAEFD,EAAMH,SACNG,EAAMlB,SAGJsB,GAEFJ,EAAMJ,OAGEO,EAAND,GAEFF,EAAMK,QAAQH,GAGZE,GAEFJ,EAAMM,gBAITrC,GAlImCD,EAAAA,WAAnCV,QAAAyB,eAAArB,EAAA,cAAA6C,OAAA,IDqGI7C,EAAAA,WAAkBO","file":"System/Timers/Timer.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"./../Observable/ObservableBase\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var ObservableBase_1 = require(\"./../Observable/ObservableBase\");\n var Timer = (function (_super) {\n __extends(Timer, _super);\n function Timer(_interval, _maxCount, _initialDelay) {\n if (_maxCount === void 0) { _maxCount = Infinity; }\n if (_initialDelay === void 0) { _initialDelay = _interval; }\n _super.call(this);\n this._interval = _interval;\n this._maxCount = _maxCount;\n this._initialDelay = _initialDelay;\n this._count = 0;\n if (_interval === null || _interval === void (0))\n throw \"'interval' must be a valid number.\";\n if (_interval < 0)\n throw \"'interval' cannot be negative.\";\n }\n Timer.startNew = function (millisecondInterval, maxCount, initialDelay) {\n if (maxCount === void 0) { maxCount = Infinity; }\n if (initialDelay === void 0) { initialDelay = millisecondInterval; }\n var t = new Timer(millisecondInterval, maxCount, millisecondInterval);\n t.start();\n return t;\n };\n Object.defineProperty(Timer.prototype, \"isRunning\", {\n get: function () {\n return !!this._cancel;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Timer.prototype, \"count\", {\n get: function () {\n return this._count;\n },\n enumerable: true,\n configurable: true\n });\n Timer.prototype.start = function () {\n var _ = this;\n if (!_._cancel && _._count < _._maxCount) {\n if (_._count || _._initialDelay == _._interval) {\n var i_1 = setInterval(Timer._onTick, _._interval, _);\n _._cancel = function () {\n clearInterval(i_1);\n };\n }\n else {\n var i_2 = setTimeout(Timer._onTick, _._initialDelay, _, true);\n _._cancel = function () {\n clearTimeout(i_2);\n };\n }\n }\n };\n Timer.prototype.stop = function () {\n this.cancel();\n };\n Timer.prototype.reset = function () {\n this.stop();\n this._count = 0;\n };\n Timer.prototype.cancel = function () {\n if (this._cancel) {\n this._cancel();\n this._cancel = null;\n return true;\n }\n return false;\n };\n Timer.prototype.dispose = function () {\n this.cancel();\n _super.prototype.dispose.call(this);\n };\n Timer._onTick = function (timer, reInitTimer) {\n var index = timer._count++, max = timer._maxCount, isComplete = timer._count >= max;\n if (reInitTimer) {\n timer.cancel();\n timer.start();\n }\n if (isComplete) {\n timer.stop();\n }\n if (index < max) {\n timer._onNext(index);\n }\n if (isComplete) {\n timer._onCompleted();\n }\n };\n return Timer;\n }(ObservableBase_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Timer;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\nimport ObservableBase from \"./../Observable/ObservableBase\";\r\n\r\nexport default class Timer extends ObservableBase implements ITimer, ICancellable\r\n{\r\n\r\n\tprivate _cancel:()=>void;\r\n\tprivate _count:number = 0;\r\n\r\n\tconstructor(\r\n\t\tprivate _interval:number,\r\n\t\tprivate _maxCount:number = Infinity,\r\n\t\tprivate _initialDelay = _interval)\r\n\t{\r\n\t\tsuper();\r\n\r\n\t\tif(_interval===null || _interval=== void(0))\r\n\t\t\tthrow \"'interval' must be a valid number.\";\r\n\t\tif(_interval<0)\r\n\t\t\tthrow \"'interval' cannot be negative.\";\r\n\t}\r\n\r\n\tstatic startNew(\r\n\t\tmillisecondInterval:number,\r\n\t\tmaxCount:number = Infinity,\r\n\t\tinitialDelay:number = millisecondInterval):Timer\r\n\t{\r\n\t\tvar t = new Timer(millisecondInterval, maxCount, millisecondInterval);\r\n\t\tt.start();\r\n\t\treturn t;\r\n\t}\r\n\r\n\tget isRunning():boolean\r\n\t{\r\n\t\treturn !!this._cancel;\r\n\t}\r\n\r\n\tget count():number\r\n\t{\r\n\t\treturn this._count;\r\n\t}\r\n\r\n\tstart():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(!_._cancel && _._count<_._maxCount)\r\n\t\t{\r\n\t\t\t// For now, if it's isn't the start...\r\n\t\t\tif(_._count || _._initialDelay==_._interval)\r\n\t\t\t{\r\n\t\t\t\tlet i = setInterval(\r\n\t\t\t\t\tTimer._onTick,\r\n\t\t\t\t\t_._interval,\r\n\t\t\t\t\t_);\r\n\r\n\t\t\t\t_._cancel = ()=>\r\n\t\t\t\t{\r\n\t\t\t\t\tclearInterval(i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tlet i = setTimeout(\r\n\t\t\t\t\tTimer._onTick,\r\n\t\t\t\t\t_._initialDelay,\r\n\t\t\t\t\t_, true);\r\n\r\n\t\t\t\t_._cancel = ()=>\r\n\t\t\t\t{\r\n\t\t\t\t\tclearTimeout(i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tstop():void\r\n\t{\r\n\t\tthis.cancel();\r\n\t}\r\n\r\n\treset():void\r\n\t{\r\n\t\tthis.stop();\r\n\t\tthis._count = 0;\r\n\t}\r\n\r\n\tcancel():boolean {\r\n\t\tif(this._cancel)\r\n\t\t{\r\n\t\t\tthis._cancel();\r\n\t\t\tthis._cancel = null;\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tdispose():void {\r\n\t\tthis.cancel();\r\n\t\tsuper.dispose();\r\n\t}\r\n\r\n\t// We use a private static here so there's no need to create a handler every time.\r\n\tprivate static _onTick(\r\n\t\ttimer:Timer,\r\n\t\treInitTimer?:boolean):void\r\n\t{\r\n\t\tvar index = timer._count++,\r\n\t\t max = timer._maxCount,\r\n\t\t isComplete = timer._count>=max;\r\n\r\n\t\tif(reInitTimer)\r\n\t\t{\r\n\t\t\ttimer.cancel();\r\n\t\t\ttimer.start();\r\n\t\t}\r\n\r\n\t\tif(isComplete)\r\n\t\t{\r\n\t\t\ttimer.stop();\r\n\t\t}\r\n\r\n\t\tif(index= max;\n if (reInitTimer) {\n timer.cancel();\n timer.start();\n }\n if (isComplete) {\n timer.stop();\n }\n if (index < max) {\n timer._onNext(index);\n }\n if (isComplete) {\n timer._onCompleted();\n }\n };\n return Timer;\n }(ObservableBase_1.ObservableBase));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Timer;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {ICancellable} from \"../Tasks/ICancellable\";\r\nimport {ObservableBase} from \"../Observable/ObservableBase\";\r\nimport {ITimer} from \"./ITimer\";\r\n\r\nexport default class Timer extends ObservableBase implements ITimer, ICancellable\r\n{\r\n\r\n\tprivate _cancel:()=>void;\r\n\tprivate _count:number = 0;\r\n\r\n\tconstructor(\r\n\t\tprivate _interval:number,\r\n\t\tprivate _maxCount:number = Infinity,\r\n\t\tprivate _initialDelay = _interval)\r\n\t{\r\n\t\tsuper();\r\n\r\n\t\tif(_interval===null || _interval=== void(0))\r\n\t\t\tthrow \"'interval' must be a valid number.\";\r\n\t\tif(_interval<0)\r\n\t\t\tthrow \"'interval' cannot be negative.\";\r\n\t}\r\n\r\n\tstatic startNew(\r\n\t\tmillisecondInterval:number,\r\n\t\tmaxCount:number = Infinity,\r\n\t\tinitialDelay:number = millisecondInterval):Timer\r\n\t{\r\n\t\tvar t = new Timer(millisecondInterval, maxCount, millisecondInterval);\r\n\t\tt.start();\r\n\t\treturn t;\r\n\t}\r\n\r\n\tget isRunning():boolean\r\n\t{\r\n\t\treturn !!this._cancel;\r\n\t}\r\n\r\n\tget count():number\r\n\t{\r\n\t\treturn this._count;\r\n\t}\r\n\r\n\tstart():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(!_._cancel && _._count<_._maxCount)\r\n\t\t{\r\n\t\t\t// For now, if it's isn't the start...\r\n\t\t\tif(_._count || _._initialDelay==_._interval)\r\n\t\t\t{\r\n\t\t\t\tlet i = setInterval(\r\n\t\t\t\t\tTimer._onTick,\r\n\t\t\t\t\t_._interval,\r\n\t\t\t\t\t_);\r\n\r\n\t\t\t\t_._cancel = ()=>\r\n\t\t\t\t{\r\n\t\t\t\t\tclearInterval(i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tlet i = setTimeout(\r\n\t\t\t\t\tTimer._onTick,\r\n\t\t\t\t\t_._initialDelay,\r\n\t\t\t\t\t_, true);\r\n\r\n\t\t\t\t_._cancel = ()=>\r\n\t\t\t\t{\r\n\t\t\t\t\tclearTimeout(i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tstop():void\r\n\t{\r\n\t\tthis.cancel();\r\n\t}\r\n\r\n\treset():void\r\n\t{\r\n\t\tthis.stop();\r\n\t\tthis._count = 0;\r\n\t}\r\n\r\n\tcancel():boolean\r\n\t{\r\n\t\tif(this._cancel)\r\n\t\t{\r\n\t\t\tthis._cancel();\r\n\t\t\tthis._cancel = null;\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tdispose():void\r\n\t{\r\n\t\tthis.cancel();\r\n\t\tsuper.dispose();\r\n\t}\r\n\r\n\t// We use a private static here so there's no need to create a handler every time.\r\n\tprivate static _onTick(\r\n\t\ttimer:Timer,\r\n\t\treInitTimer?:boolean):void\r\n\t{\r\n\t\tvar index = timer._count++,\r\n\t\t max = timer._maxCount,\r\n\t\t isComplete = timer._count>=max;\r\n\r\n\t\tif(reInitTimer)\r\n\t\t{\r\n\t\t\ttimer.cancel();\r\n\t\t\ttimer.start();\r\n\t\t}\r\n\r\n\t\tif(isComplete)\r\n\t\t{\r\n\t\t\ttimer.stop();\r\n\t\t}\r\n\r\n\t\tif(index -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { Primitive } from "./Primitive"; +import { IArray } from "./Collections/Array/IArray"; export declare class TypeInfo { private target; type: string; diff --git a/dist/umd.min/System/Types.js.map b/dist/umd.min/System/Types.js.map index ee037759..d4e5cd1a 100644 --- a/dist/umd.min/System/Types.js.map +++ b/dist/umd.min/System/Types.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Types.js","System/Types.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","VOID0","_BOOLEAN","_NUMBER","_STRING","_OBJECT","_UNDEFINED","_FUNCTION","LENGTH","typeInfoRegistry","TypeInfo","target","_","this","isBoolean","isNumber","isString","isTrueNaN","isObject","isFunction","isUndefined","isNull","isPrimitive","type","isNaN","isFinite","isValidNumber","isNullOrUndefined","Object","freeze","prototype","member","name","t","getFor","info","Type","value","allowNaN","allowNull","numberOrNaN","NaN","of","hasMember","property","hasMemberOfType","instance","isArrayLike","Array","BOOLEAN","NUMBER","STRING","OBJECT","UNDEFINED","FUNCTION","defineProperty"],"mappings":"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","file":"System/Types.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\"], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var VOID0 = void (0), _BOOLEAN = typeof true, _NUMBER = typeof 0, _STRING = typeof \"\", _OBJECT = typeof {}, _UNDEFINED = typeof VOID0, _FUNCTION = typeof function () { }, LENGTH = \"length\";\n var typeInfoRegistry = {};\n var TypeInfo = (function () {\n function TypeInfo(target) {\n var _ = this;\n _.isBoolean = false;\n _.isNumber = false;\n _.isString = false;\n _.isTrueNaN = false;\n _.isObject = false;\n _.isFunction = false;\n _.isUndefined = false;\n _.isNull = false;\n _.isPrimitive = false;\n switch (_.type = typeof target) {\n case _BOOLEAN:\n _.isBoolean = true;\n _.isPrimitive = true;\n break;\n case _NUMBER:\n _.isNumber = true;\n _.isTrueNaN = isNaN(target);\n _.isFinite = isFinite(target);\n _.isValidNumber = !_.isTrueNaN;\n _.isPrimitive = true;\n break;\n case _STRING:\n _.isString = true;\n _.isPrimitive = true;\n break;\n case _OBJECT:\n _.target = target;\n if (target === null) {\n _.isNull = true;\n _.isNullOrUndefined = true;\n _.isPrimitive = true;\n }\n else {\n _.isObject = true;\n }\n break;\n case _FUNCTION:\n _.target = target;\n _.isFunction = true;\n break;\n case _UNDEFINED:\n _.isUndefined = true;\n _.isNullOrUndefined = true;\n _.isPrimitive = true;\n break;\n default:\n throw \"Fatal type failure. Unknown type: \" + _.type;\n }\n Object.freeze(_);\n }\n TypeInfo.prototype.member = function (name) {\n var t = this.target;\n return TypeInfo.getFor(t && (name) in (t)\n ? t[name]\n : undefined);\n };\n TypeInfo.getFor = function (target) {\n var type = typeof target;\n switch (type) {\n case _OBJECT:\n case _FUNCTION:\n return new TypeInfo(target);\n }\n var info = typeInfoRegistry[type];\n if (!info)\n typeInfoRegistry[type] = info = new TypeInfo(target);\n return info;\n };\n return TypeInfo;\n }());\n exports.TypeInfo = TypeInfo;\n var Type;\n (function (Type) {\n Type.BOOLEAN = _BOOLEAN;\n Type.NUMBER = _NUMBER;\n Type.STRING = _STRING;\n Type.OBJECT = _OBJECT;\n Type.UNDEFINED = _UNDEFINED;\n Type.FUNCTION = _FUNCTION;\n function isBoolean(value) {\n return typeof value === _BOOLEAN;\n }\n Type.isBoolean = isBoolean;\n function isNumber(value, allowNaN) {\n if (allowNaN === VOID0)\n allowNaN = true;\n return typeof value === _NUMBER && (allowNaN || !isNaN(value));\n }\n Type.isNumber = isNumber;\n function isTrueNaN(value) {\n return typeof value === _NUMBER && isNaN(value);\n }\n Type.isTrueNaN = isTrueNaN;\n function isString(value) {\n return typeof value === _STRING;\n }\n Type.isString = isString;\n function isPrimitive(value) {\n var t = typeof value;\n switch (t) {\n case _BOOLEAN:\n case _STRING:\n case _NUMBER:\n case _UNDEFINED:\n return true;\n case _OBJECT:\n return value === null;\n }\n return false;\n }\n Type.isPrimitive = isPrimitive;\n function isFunction(value) {\n return typeof value === _FUNCTION;\n }\n Type.isFunction = isFunction;\n function isObject(value, allowNull) {\n if (allowNull === void 0) { allowNull = false; }\n return typeof value === _OBJECT && (allowNull || value !== null);\n }\n Type.isObject = isObject;\n function numberOrNaN(value) {\n return isNaN(value) ? NaN : value;\n }\n Type.numberOrNaN = numberOrNaN;\n function of(target) {\n return TypeInfo.getFor(target);\n }\n Type.of = of;\n function hasMember(value, property) {\n return value && !isPrimitive(value) && (property) in (value);\n }\n Type.hasMember = hasMember;\n function hasMemberOfType(instance, property, type) {\n return hasMember(instance, property) && typeof (instance[property]) === type;\n }\n Type.hasMemberOfType = hasMemberOfType;\n function isArrayLike(instance) {\n return instance instanceof Array\n || Type.isString(instance)\n || !Type.isFunction(instance) && hasMember(instance, LENGTH);\n }\n Type.isArrayLike = isArrayLike;\n })(Type = exports.Type || (exports.Type = {}));\n Object.freeze(Type);\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Type;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n\r\nconst\r\n\tVOID0:any = void(0),\r\n\t_BOOLEAN:string = typeof true,\r\n\t_NUMBER:string = typeof 0,\r\n\t_STRING:string = typeof \"\",\r\n\t_OBJECT:string = typeof {},\r\n\t_UNDEFINED:string = typeof VOID0,\r\n\t_FUNCTION:string = typeof function() {},\r\n\tLENGTH:string = \"length\";\r\n\r\n// Only used for primitives.\r\nvar typeInfoRegistry:{[key:string]:TypeInfo} = {};\r\n\r\n/**\r\n * Exposes easy access to type information including inquiring about members.\r\n */\r\nexport class TypeInfo\r\n{\r\n\t// Not retained for primitives. Since they have no members.\r\n\tprivate target:any;\r\n\r\n\ttype:string;\r\n\r\n\tisBoolean:boolean;\r\n\tisNumber:boolean;\r\n\tisFinite:boolean;\r\n\tisValidNumber:boolean;\r\n\tisString:boolean;\r\n\tisTrueNaN:boolean;\r\n\tisObject:boolean;\r\n\tisFunction:boolean;\r\n\tisUndefined:boolean;\r\n\tisNull:boolean;\r\n\tisNullOrUndefined:boolean;\r\n\tisPrimitive:boolean;\r\n\r\n\tconstructor(target:any)\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.isBoolean = false;\r\n\t\t_.isNumber = false;\r\n\t\t_.isString = false;\r\n\t\t_.isTrueNaN = false;\r\n\t\t_.isObject = false;\r\n\t\t_.isFunction = false;\r\n\t\t_.isUndefined = false;\r\n\t\t_.isNull = false;\r\n\t\t_.isPrimitive = false;\r\n\r\n\t\tswitch(_.type = typeof target)\r\n\t\t{\r\n\t\t\tcase _BOOLEAN:\r\n\t\t\t\t_.isBoolean = true;\r\n\t\t\t\t_.isPrimitive = true;\r\n\t\t\t\tbreak;\r\n\t\t\tcase _NUMBER:\r\n\t\t\t\t_.isNumber = true;\r\n\t\t\t\t_.isTrueNaN = isNaN(target);\r\n\t\t\t\t_.isFinite = isFinite(target);\r\n\t\t\t\t_.isValidNumber = !_.isTrueNaN;\r\n\t\t\t\t_.isPrimitive = true;\r\n\t\t\t\tbreak;\r\n\t\t\tcase _STRING:\r\n\t\t\t\t_.isString = true;\r\n\t\t\t\t_.isPrimitive = true;\r\n\t\t\t\tbreak;\r\n\t\t\tcase _OBJECT:\r\n\t\t\t\t_.target = target;\r\n\t\t\t\tif(target===null)\r\n\t\t\t\t{\r\n\t\t\t\t\t_.isNull = true;\r\n\t\t\t\t\t_.isNullOrUndefined = true;\r\n\t\t\t\t\t_.isPrimitive = true;\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\t_.isObject = true;\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase _FUNCTION:\r\n\t\t\t\t_.target = target;\r\n\t\t\t\t_.isFunction = true;\r\n\t\t\t\tbreak;\r\n\t\t\tcase _UNDEFINED:\r\n\t\t\t\t_.isUndefined = true;\r\n\t\t\t\t_.isNullOrUndefined = true;\r\n\t\t\t\t_.isPrimitive = true;\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tthrow \"Fatal type failure. Unknown type: \" + _.type;\r\n\t\t}\r\n\r\n\t\tObject.freeze(_);\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a TypeInfo for any member or non-member,\r\n\t * where non-members are of type undefined.\r\n\t * @param name\r\n\t * @returns {TypeInfo}\r\n\t */\r\n\tmember(name:string):TypeInfo\r\n\t{\r\n\t\tvar t = this.target;\r\n\t\treturn TypeInfo.getFor(\r\n\t\t\tt && (name)in(t)\r\n\t\t\t\t? t[name]\r\n\t\t\t\t: undefined);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a TypeInfo for any target object.\r\n\t * If the target object is of a primitive type, it returns the TypeInfo instance assigned to that type.\r\n\t * @param target\r\n\t * @returns {TypeInfo}\r\n\t */\r\n\tstatic getFor(target:any):TypeInfo\r\n\t{\r\n\t\tvar type:string = typeof target;\r\n\t\tswitch(type)\r\n\t\t{\r\n\t\t\tcase _OBJECT:\r\n\t\t\tcase _FUNCTION:\r\n\t\t\t\treturn new TypeInfo(target);\r\n\t\t}\r\n\t\tvar info = typeInfoRegistry[type];\r\n\t\tif(!info) typeInfoRegistry[type] = info = new TypeInfo(target);\r\n\t\treturn info;\r\n\t}\r\n\r\n}\r\n\r\nexport module Type\r\n{\r\n\t/**\r\n\t * typeof true\r\n\t * @type {string}\r\n\t */\r\n\texport const BOOLEAN:string = _BOOLEAN;\r\n\r\n\t/**\r\n\t * typeof 0\r\n\t * @type {string}\r\n\t */\r\n\texport const NUMBER:string = _NUMBER;\r\n\r\n\t/**\r\n\t * typeof \"\"\r\n\t * @type {string}\r\n\t */\r\n\texport const STRING:string = _STRING;\r\n\r\n\t/**\r\n\t * typeof {}\r\n\t * @type {string}\r\n\t */\r\n\texport const OBJECT:string = _OBJECT;\r\n\r\n\r\n\t/**\r\n\t * typeof undefined\r\n\t * @type {string}\r\n\t */\r\n\texport const UNDEFINED:string = _UNDEFINED;\r\n\r\n\t/**\r\n\t * typeof function\r\n\t * @type {string}\r\n\t */\r\n\texport const FUNCTION:string = _FUNCTION;\r\n\r\n\t/**\r\n\t * Returns true if the value parameter is a boolean.\r\n\t * @param value\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isBoolean(value:any):value is boolean\r\n\t{\r\n\t\treturn typeof value===_BOOLEAN;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns true if the value parameter is a number.\r\n\t * @param value\r\n\t * @param allowNaN Default is true.\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isNumber(value:any, allowNaN?:boolean):value is number\r\n\t{\r\n\t\tif(allowNaN===VOID0) allowNaN = true;\r\n\t\treturn typeof value===_NUMBER && (allowNaN || !isNaN(value));\r\n\t}\r\n\r\n\t/**\r\n\t * Returns true if is a number and is NaN.\r\n\t * @param value\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isTrueNaN(value:any):value is number\r\n\t{\r\n\t\treturn typeof value===_NUMBER && isNaN(value);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns true if the value parameter is a string.\r\n\t * @param value\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isString(value:any):value is string\r\n\t{\r\n\t\treturn typeof value===_STRING;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns true if the value is a boolean, string, number, null, or undefined.\r\n\t * @param value\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isPrimitive(value:any):value is Primitive\r\n\t{\r\n\t\tvar t = typeof value;\r\n\t\tswitch(t)\r\n\t\t{\r\n\t\t\tcase _BOOLEAN:\r\n\t\t\tcase _STRING:\r\n\t\t\tcase _NUMBER:\r\n\t\t\tcase _UNDEFINED:\r\n\t\t\t\treturn true;\r\n\t\t\tcase _OBJECT:\r\n\t\t\t\treturn value===null;\r\n\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns true if the value parameter is a function.\r\n\t * @param value\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isFunction(value:any):value is Function\r\n\t{\r\n\t\treturn typeof value===_FUNCTION;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns true if the value parameter is an object.\r\n\t * @param value\r\n\t * @param allowNull If false (default) null is not considered an object.\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isObject(value:any, allowNull:boolean = false):boolean\r\n\t{\r\n\t\treturn typeof value===_OBJECT && (allowNull || value!==null) ;\r\n\t}\r\n\r\n\t/**\r\n\t * Guarantees a number value or NaN instead.\r\n\t * @param value\r\n\t * @returns {number}\r\n\t */\r\n\texport function numberOrNaN(value:any):number\r\n\t{\r\n\t\treturn isNaN(value) ? NaN : value;\r\n\t}\r\n\r\n\texport function of(target:any):TypeInfo\r\n\t{\r\n\t\treturn TypeInfo.getFor(target);\r\n\t}\r\n\r\n\texport function hasMember(value:any, property:string):boolean\r\n\t{\r\n\t\treturn value && !isPrimitive(value) && (property)in(value);\r\n\t}\r\n\r\n\texport function hasMemberOfType(instance:any, property:string, type:string):instance is T\r\n\t{\r\n\t\treturn hasMember(instance, property) && typeof(instance[property])===type;\r\n\t}\r\n\r\n\texport function isArrayLike(instance:any):instance is IArray\r\n\t{\r\n\t\t/*\r\n\t\t * NOTE:\r\n\t\t *\r\n\t\t * Functions:\r\n\t\t * Enumerating a function although it has a .length property will yield nothing or unexpected results.\r\n\t\t * Effectively, a function is not like an array.\r\n\t\t *\r\n\t\t * Strings:\r\n\t\t * Behave like arrays but don't have the same exact methods.\r\n\t\t */\r\n\t\treturn instance instanceof Array\r\n\t\t\t|| Type.isString(instance)\r\n\t\t\t|| !Type.isFunction(instance) && hasMember(instance, LENGTH);\r\n\t}\r\n}\r\n\r\nObject.freeze(Type);\r\n\r\nexport default Type;\r\n\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Types.js","System/Types.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","VOID0","_BOOLEAN","_NUMBER","_STRING","_OBJECT","_UNDEFINED","_FUNCTION","LENGTH","typeInfoRegistry","TypeInfo","target","_","this","isBoolean","isNumber","isString","isTrueNaN","isObject","isFunction","isUndefined","isNull","isPrimitive","type","isNaN","isFinite","isValidNumber","isNullOrUndefined","Object","freeze","prototype","member","name","t","getFor","info","Type","value","allowNaN","allowNull","numberOrNaN","NaN","of","hasMember","property","hasMemberOfType","instance","isArrayLike","Array","BOOLEAN","NUMBER","STRING","OBJECT","UNDEFINED","FUNCTION","defineProperty"],"mappings":"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","file":"System/Types.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var VOID0 = void (0), _BOOLEAN = typeof true, _NUMBER = typeof 0, _STRING = typeof \"\", _OBJECT = typeof {}, _UNDEFINED = typeof VOID0, _FUNCTION = typeof function () { }, LENGTH = \"length\";\n var typeInfoRegistry = {};\n var TypeInfo = (function () {\n function TypeInfo(target) {\n var _ = this;\n _.isBoolean = false;\n _.isNumber = false;\n _.isString = false;\n _.isTrueNaN = false;\n _.isObject = false;\n _.isFunction = false;\n _.isUndefined = false;\n _.isNull = false;\n _.isPrimitive = false;\n switch (_.type = typeof target) {\n case _BOOLEAN:\n _.isBoolean = true;\n _.isPrimitive = true;\n break;\n case _NUMBER:\n _.isNumber = true;\n _.isTrueNaN = isNaN(target);\n _.isFinite = isFinite(target);\n _.isValidNumber = !_.isTrueNaN;\n _.isPrimitive = true;\n break;\n case _STRING:\n _.isString = true;\n _.isPrimitive = true;\n break;\n case _OBJECT:\n _.target = target;\n if (target === null) {\n _.isNull = true;\n _.isNullOrUndefined = true;\n _.isPrimitive = true;\n }\n else {\n _.isObject = true;\n }\n break;\n case _FUNCTION:\n _.target = target;\n _.isFunction = true;\n break;\n case _UNDEFINED:\n _.isUndefined = true;\n _.isNullOrUndefined = true;\n _.isPrimitive = true;\n break;\n default:\n throw \"Fatal type failure. Unknown type: \" + _.type;\n }\n Object.freeze(_);\n }\n TypeInfo.prototype.member = function (name) {\n var t = this.target;\n return TypeInfo.getFor(t && (name) in (t)\n ? t[name]\n : undefined);\n };\n TypeInfo.getFor = function (target) {\n var type = typeof target;\n switch (type) {\n case _OBJECT:\n case _FUNCTION:\n return new TypeInfo(target);\n }\n var info = typeInfoRegistry[type];\n if (!info)\n typeInfoRegistry[type] = info = new TypeInfo(target);\n return info;\n };\n return TypeInfo;\n }());\n exports.TypeInfo = TypeInfo;\n var Type;\n (function (Type) {\n Type.BOOLEAN = _BOOLEAN;\n Type.NUMBER = _NUMBER;\n Type.STRING = _STRING;\n Type.OBJECT = _OBJECT;\n Type.UNDEFINED = _UNDEFINED;\n Type.FUNCTION = _FUNCTION;\n function isBoolean(value) {\n return typeof value === _BOOLEAN;\n }\n Type.isBoolean = isBoolean;\n function isNumber(value, allowNaN) {\n if (allowNaN === VOID0)\n allowNaN = true;\n return typeof value === _NUMBER && (allowNaN || !isNaN(value));\n }\n Type.isNumber = isNumber;\n function isTrueNaN(value) {\n return typeof value === _NUMBER && isNaN(value);\n }\n Type.isTrueNaN = isTrueNaN;\n function isString(value) {\n return typeof value === _STRING;\n }\n Type.isString = isString;\n function isPrimitive(value) {\n var t = typeof value;\n switch (t) {\n case _BOOLEAN:\n case _STRING:\n case _NUMBER:\n case _UNDEFINED:\n return true;\n case _OBJECT:\n return value === null;\n }\n return false;\n }\n Type.isPrimitive = isPrimitive;\n function isFunction(value) {\n return typeof value === _FUNCTION;\n }\n Type.isFunction = isFunction;\n function isObject(value, allowNull) {\n if (allowNull === void 0) { allowNull = false; }\n return typeof value === _OBJECT && (allowNull || value !== null);\n }\n Type.isObject = isObject;\n function numberOrNaN(value) {\n return isNaN(value) ? NaN : value;\n }\n Type.numberOrNaN = numberOrNaN;\n function of(target) {\n return TypeInfo.getFor(target);\n }\n Type.of = of;\n function hasMember(value, property) {\n return value && !isPrimitive(value) && (property) in (value);\n }\n Type.hasMember = hasMember;\n function hasMemberOfType(instance, property, type) {\n return hasMember(instance, property) && typeof (instance[property]) === type;\n }\n Type.hasMemberOfType = hasMemberOfType;\n function isArrayLike(instance) {\n return instance instanceof Array\n || Type.isString(instance)\n || !Type.isFunction(instance) && hasMember(instance, LENGTH);\n }\n Type.isArrayLike = isArrayLike;\n })(Type = exports.Type || (exports.Type = {}));\n Object.freeze(Type);\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Type;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {Primitive} from \"./Primitive\";\r\nimport {IArray} from \"./Collections/Array/IArray\"; // For compatibility with (let, const, function, class);\r\n\r\nconst\r\n\tVOID0:any = void(0),\r\n\t_BOOLEAN:string = typeof true,\r\n\t_NUMBER:string = typeof 0,\r\n\t_STRING:string = typeof \"\",\r\n\t_OBJECT:string = typeof {},\r\n\t_UNDEFINED:string = typeof VOID0,\r\n\t_FUNCTION:string = typeof function() {},\r\n\tLENGTH:string = \"length\";\r\n\r\n// Only used for primitives.\r\nvar typeInfoRegistry:{[key:string]:TypeInfo} = {};\r\n\r\n/**\r\n * Exposes easy access to type information including inquiring about members.\r\n */\r\nexport class TypeInfo\r\n{\r\n\t// Not retained for primitives. Since they have no members.\r\n\tprivate target:any;\r\n\r\n\ttype:string;\r\n\r\n\tisBoolean:boolean;\r\n\tisNumber:boolean;\r\n\tisFinite:boolean;\r\n\tisValidNumber:boolean;\r\n\tisString:boolean;\r\n\tisTrueNaN:boolean;\r\n\tisObject:boolean;\r\n\tisFunction:boolean;\r\n\tisUndefined:boolean;\r\n\tisNull:boolean;\r\n\tisNullOrUndefined:boolean;\r\n\tisPrimitive:boolean;\r\n\r\n\tconstructor(target:any)\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.isBoolean = false;\r\n\t\t_.isNumber = false;\r\n\t\t_.isString = false;\r\n\t\t_.isTrueNaN = false;\r\n\t\t_.isObject = false;\r\n\t\t_.isFunction = false;\r\n\t\t_.isUndefined = false;\r\n\t\t_.isNull = false;\r\n\t\t_.isPrimitive = false;\r\n\r\n\t\tswitch(_.type = typeof target)\r\n\t\t{\r\n\t\t\tcase _BOOLEAN:\r\n\t\t\t\t_.isBoolean = true;\r\n\t\t\t\t_.isPrimitive = true;\r\n\t\t\t\tbreak;\r\n\t\t\tcase _NUMBER:\r\n\t\t\t\t_.isNumber = true;\r\n\t\t\t\t_.isTrueNaN = isNaN(target);\r\n\t\t\t\t_.isFinite = isFinite(target);\r\n\t\t\t\t_.isValidNumber = !_.isTrueNaN;\r\n\t\t\t\t_.isPrimitive = true;\r\n\t\t\t\tbreak;\r\n\t\t\tcase _STRING:\r\n\t\t\t\t_.isString = true;\r\n\t\t\t\t_.isPrimitive = true;\r\n\t\t\t\tbreak;\r\n\t\t\tcase _OBJECT:\r\n\t\t\t\t_.target = target;\r\n\t\t\t\tif(target===null)\r\n\t\t\t\t{\r\n\t\t\t\t\t_.isNull = true;\r\n\t\t\t\t\t_.isNullOrUndefined = true;\r\n\t\t\t\t\t_.isPrimitive = true;\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\t_.isObject = true;\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase _FUNCTION:\r\n\t\t\t\t_.target = target;\r\n\t\t\t\t_.isFunction = true;\r\n\t\t\t\tbreak;\r\n\t\t\tcase _UNDEFINED:\r\n\t\t\t\t_.isUndefined = true;\r\n\t\t\t\t_.isNullOrUndefined = true;\r\n\t\t\t\t_.isPrimitive = true;\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tthrow \"Fatal type failure. Unknown type: \" + _.type;\r\n\t\t}\r\n\r\n\t\tObject.freeze(_);\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a TypeInfo for any member or non-member,\r\n\t * where non-members are of type undefined.\r\n\t * @param name\r\n\t * @returns {TypeInfo}\r\n\t */\r\n\tmember(name:string):TypeInfo\r\n\t{\r\n\t\tvar t = this.target;\r\n\t\treturn TypeInfo.getFor(\r\n\t\t\tt && (name) in (t)\r\n\t\t\t\t? t[name]\r\n\t\t\t\t: undefined);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a TypeInfo for any target object.\r\n\t * If the target object is of a primitive type, it returns the TypeInfo instance assigned to that type.\r\n\t * @param target\r\n\t * @returns {TypeInfo}\r\n\t */\r\n\tstatic getFor(target:any):TypeInfo\r\n\t{\r\n\t\tvar type:string = typeof target;\r\n\t\tswitch(type)\r\n\t\t{\r\n\t\t\tcase _OBJECT:\r\n\t\t\tcase _FUNCTION:\r\n\t\t\t\treturn new TypeInfo(target);\r\n\t\t}\r\n\t\tvar info = typeInfoRegistry[type];\r\n\t\tif(!info) typeInfoRegistry[type] = info = new TypeInfo(target);\r\n\t\treturn info;\r\n\t}\r\n\r\n}\r\n\r\nexport module Type\r\n{\r\n\t/**\r\n\t * typeof true\r\n\t * @type {string}\r\n\t */\r\n\texport const BOOLEAN:string = _BOOLEAN;\r\n\r\n\t/**\r\n\t * typeof 0\r\n\t * @type {string}\r\n\t */\r\n\texport const NUMBER:string = _NUMBER;\r\n\r\n\t/**\r\n\t * typeof \"\"\r\n\t * @type {string}\r\n\t */\r\n\texport const STRING:string = _STRING;\r\n\r\n\t/**\r\n\t * typeof {}\r\n\t * @type {string}\r\n\t */\r\n\texport const OBJECT:string = _OBJECT;\r\n\r\n\r\n\t/**\r\n\t * typeof undefined\r\n\t * @type {string}\r\n\t */\r\n\texport const UNDEFINED:string = _UNDEFINED;\r\n\r\n\t/**\r\n\t * typeof function\r\n\t * @type {string}\r\n\t */\r\n\texport const FUNCTION:string = _FUNCTION;\r\n\r\n\t/**\r\n\t * Returns true if the value parameter is a boolean.\r\n\t * @param value\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isBoolean(value:any):value is boolean\r\n\t{\r\n\t\treturn typeof value===_BOOLEAN;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns true if the value parameter is a number.\r\n\t * @param value\r\n\t * @param allowNaN Default is true.\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isNumber(value:any, allowNaN?:boolean):value is number\r\n\t{\r\n\t\tif(allowNaN===VOID0) allowNaN = true;\r\n\t\treturn typeof value===_NUMBER && (allowNaN || !isNaN(value));\r\n\t}\r\n\r\n\t/**\r\n\t * Returns true if is a number and is NaN.\r\n\t * @param value\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isTrueNaN(value:any):value is number\r\n\t{\r\n\t\treturn typeof value===_NUMBER && isNaN(value);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns true if the value parameter is a string.\r\n\t * @param value\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isString(value:any):value is string\r\n\t{\r\n\t\treturn typeof value===_STRING;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns true if the value is a boolean, string, number, null, or undefined.\r\n\t * @param value\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isPrimitive(value:any):value is Primitive\r\n\t{\r\n\t\tvar t = typeof value;\r\n\t\tswitch(t)\r\n\t\t{\r\n\t\t\tcase _BOOLEAN:\r\n\t\t\tcase _STRING:\r\n\t\t\tcase _NUMBER:\r\n\t\t\tcase _UNDEFINED:\r\n\t\t\t\treturn true;\r\n\t\t\tcase _OBJECT:\r\n\t\t\t\treturn value===null;\r\n\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns true if the value parameter is a function.\r\n\t * @param value\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isFunction(value:any):value is Function\r\n\t{\r\n\t\treturn typeof value===_FUNCTION;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns true if the value parameter is an object.\r\n\t * @param value\r\n\t * @param allowNull If false (default) null is not considered an object.\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isObject(value:any, allowNull:boolean = false):boolean\r\n\t{\r\n\t\treturn typeof value===_OBJECT && (allowNull || value!==null);\r\n\t}\r\n\r\n\t/**\r\n\t * Guarantees a number value or NaN instead.\r\n\t * @param value\r\n\t * @returns {number}\r\n\t */\r\n\texport function numberOrNaN(value:any):number\r\n\t{\r\n\t\treturn isNaN(value) ? NaN : value;\r\n\t}\r\n\r\n\texport function of(target:any):TypeInfo\r\n\t{\r\n\t\treturn TypeInfo.getFor(target);\r\n\t}\r\n\r\n\texport function hasMember(value:any, property:string):boolean\r\n\t{\r\n\t\treturn value && !isPrimitive(value) && (property) in (value);\r\n\t}\r\n\r\n\texport function hasMemberOfType(instance:any, property:string, type:string):instance is T\r\n\t{\r\n\t\treturn hasMember(instance, property) && typeof(instance[property])===type;\r\n\t}\r\n\r\n\texport function isArrayLike(instance:any):instance is IArray\r\n\t{\r\n\t\t/*\r\n\t\t * NOTE:\r\n\t\t *\r\n\t\t * Functions:\r\n\t\t * Enumerating a function although it has a .length property will yield nothing or unexpected results.\r\n\t\t * Effectively, a function is not like an array.\r\n\t\t *\r\n\t\t * Strings:\r\n\t\t * Behave like arrays but don't have the same exact methods.\r\n\t\t */\r\n\t\treturn instance instanceof Array\r\n\t\t\t|| Type.isString(instance)\r\n\t\t\t|| !Type.isFunction(instance) && hasMember(instance, LENGTH);\r\n\t}\r\n}\r\n\r\nObject.freeze(Type);\r\n\r\nexport default Type;\r\n\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Uri/HostNameType.d.ts b/dist/umd.min/System/Uri/HostNameType.d.ts index b4e74073..57b342ec 100644 --- a/dist/umd.min/System/Uri/HostNameType.d.ts +++ b/dist/umd.min/System/Uri/HostNameType.d.ts @@ -3,7 +3,7 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based on: https://msdn.microsoft.com/en-us/library/system.UriHostNameType%28v=vs.110%29.aspx */ -declare enum UriHostNameType { +export declare enum UriHostNameType { Basic = 0, DNS = 1, IPv4 = 2, diff --git a/dist/umd.min/System/Uri/HostNameType.js b/dist/umd.min/System/Uri/HostNameType.js index 4f1526ed..df414ad9 100644 --- a/dist/umd.min/System/Uri/HostNameType.js +++ b/dist/umd.min/System/Uri/HostNameType.js @@ -3,5 +3,5 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based on: https://msdn.microsoft.com/en-us/library/system.UriHostNameType%28v=vs.110%29.aspx */ -!function(e){if("object"==typeof module&&"object"==typeof module.exports){var o=e(require,exports);void 0!==o&&(module.exports=o)}else"function"==typeof define&&define.amd&&define(["require","exports"],e)}(function(e,o){"use strict";var t;!function(e){e[e.Basic=0]="Basic",e[e.DNS=1]="DNS",e[e.IPv4=2]="IPv4",e[e.IPv6=3]="IPv6",e[e.Unknown=4]="Unknown"}(t||(t={})),Object.freeze(t),Object.defineProperty(o,"__esModule",{value:!0}),o["default"]=t}); +!function(e){if("object"==typeof module&&"object"==typeof module.exports){var o=e(require,exports);void 0!==o&&(module.exports=o)}else"function"==typeof define&&define.amd&&define(["require","exports"],e)}(function(e,o){"use strict";!function(e){e[e.Basic=0]="Basic",e[e.DNS=1]="DNS",e[e.IPv4=2]="IPv4",e[e.IPv6=3]="IPv6",e[e.Unknown=4]="Unknown"}(o.UriHostNameType||(o.UriHostNameType={}));var t=o.UriHostNameType;Object.freeze(t),Object.defineProperty(o,"__esModule",{value:!0}),o["default"]=t}); //# sourceMappingURL=HostNameType.js.map diff --git a/dist/umd.min/System/Uri/HostNameType.js.map b/dist/umd.min/System/Uri/HostNameType.js.map index b9c87779..00722196 100644 --- a/dist/umd.min/System/Uri/HostNameType.js.map +++ b/dist/umd.min/System/Uri/HostNameType.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Uri/HostNameType.js","System/Uri/HostNameType.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","UriHostNameType","Object","freeze","defineProperty","value"],"mappings":";;;;;CAKA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,WAAYN,IAEpC,SAAUI,EAASF,GAClB,YCNJ,IAAKM,IAAL,SAAKA,GAIJA,EAAAA,EAAA,MAAA,GAAA,QAKAA,EAAAA,EAAA,IAAA,GAAA,MAKAA,EAAAA,EAAA,KAAA,GAAA,OAKAA,EAAAA,EAAA,KAAA,GAAA,OAKAA,EAAAA,EAAA,QAAA,GAAA,WAxBIA,IAAAA,OA2BLC,OAAOC,OAAOF,GAEdC,OAAAE,eAAAT,EAAA,cAAAU,OAAA,IDZIV,EAAAA,WCYWM","file":"System/Uri/HostNameType.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based on: https://msdn.microsoft.com/en-us/library/system.UriHostNameType%28v=vs.110%29.aspx\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var UriHostNameType;\n (function (UriHostNameType) {\n UriHostNameType[UriHostNameType[\"Basic\"] = 0] = \"Basic\";\n UriHostNameType[UriHostNameType[\"DNS\"] = 1] = \"DNS\";\n UriHostNameType[UriHostNameType[\"IPv4\"] = 2] = \"IPv4\";\n UriHostNameType[UriHostNameType[\"IPv6\"] = 3] = \"IPv6\";\n UriHostNameType[UriHostNameType[\"Unknown\"] = 4] = \"Unknown\";\n })(UriHostNameType || (UriHostNameType = {}));\n Object.freeze(UriHostNameType);\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = UriHostNameType;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based on: https://msdn.microsoft.com/en-us/library/system.UriHostNameType%28v=vs.110%29.aspx\r\n */\r\n\r\n\r\nenum UriHostNameType {\r\n\t/**\r\n\t * The host is set, but the type cannot be determined.\r\n\t */\r\n\tBasic,\r\n\r\n\t/**\r\n\t * The host name is a domain name system (DNS) style host name.\r\n\t */\r\n\tDNS,\r\n\r\n\t/**\r\n\t * The host name is an Internet Protocol (IP) version 4 host address.\r\n\t */\r\n\tIPv4,\r\n\r\n\t/**\r\n\t * The host name is an Internet Protocol (IP) version 6 host address.\r\n\t */\r\n\tIPv6,\r\n\r\n\t/**\r\n\t * The type of the host name is not supplied.\r\n\t */\r\n\tUnknown\r\n}\r\n\r\nObject.freeze(UriHostNameType);\r\n\r\nexport default UriHostNameType;\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Uri/HostNameType.js","System/Uri/HostNameType.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","UriHostNameType","Object","freeze","defineProperty","value"],"mappings":";;;;;CAKA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,WAAYN,IAEpC,SAAUI,EAASF,GAClB,cCNJ,SAAYM,GAIXA,EAAAA,EAAA,MAAA,GAAA,QAKAA,EAAAA,EAAA,IAAA,GAAA,MAKAA,EAAAA,EAAA,KAAA,GAAA,OAKAA,EAAAA,EAAA,KAAA,GAAA,OAKAA,EAAAA,EAAA,QAAA,GAAA,WAxBWN,EAAAM,kBAAAN,EAAAM,oBAAZ,IAAYA,GAAAN,EAAAM,eA2BZC,QAAOC,OAAOF,GAEdC,OAAAE,eAAAT,EAAA,cAAAU,OAAA,IDZIV,EAAAA,WCYWM","file":"System/Uri/HostNameType.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based on: https://msdn.microsoft.com/en-us/library/system.UriHostNameType%28v=vs.110%29.aspx\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n (function (UriHostNameType) {\n UriHostNameType[UriHostNameType[\"Basic\"] = 0] = \"Basic\";\n UriHostNameType[UriHostNameType[\"DNS\"] = 1] = \"DNS\";\n UriHostNameType[UriHostNameType[\"IPv4\"] = 2] = \"IPv4\";\n UriHostNameType[UriHostNameType[\"IPv6\"] = 3] = \"IPv6\";\n UriHostNameType[UriHostNameType[\"Unknown\"] = 4] = \"Unknown\";\n })(exports.UriHostNameType || (exports.UriHostNameType = {}));\n var UriHostNameType = exports.UriHostNameType;\n Object.freeze(UriHostNameType);\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = UriHostNameType;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based on: https://msdn.microsoft.com/en-us/library/system.UriHostNameType%28v=vs.110%29.aspx\r\n */\r\n\r\n\r\nexport enum UriHostNameType {\r\n\t/**\r\n\t * The host is set, but the type cannot be determined.\r\n\t */\r\n\tBasic,\r\n\r\n\t/**\r\n\t * The host name is a domain name system (DNS) style host name.\r\n\t */\r\n\tDNS,\r\n\r\n\t/**\r\n\t * The host name is an Internet Protocol (IP) version 4 host address.\r\n\t */\r\n\tIPv4,\r\n\r\n\t/**\r\n\t * The host name is an Internet Protocol (IP) version 6 host address.\r\n\t */\r\n\tIPv6,\r\n\r\n\t/**\r\n\t * The type of the host name is not supplied.\r\n\t */\r\n\tUnknown\r\n}\r\n\r\nObject.freeze(UriHostNameType);\r\n\r\nexport default UriHostNameType;\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Uri/QueryBuilder.d.ts b/dist/umd.min/System/Uri/QueryBuilder.d.ts index 891db685..42637877 100644 --- a/dist/umd.min/System/Uri/QueryBuilder.d.ts +++ b/dist/umd.min/System/Uri/QueryBuilder.d.ts @@ -1,17 +1,16 @@ -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import OrderedStringKeyDictionary from "../Collections/Dictionaries/OrderedStringKeyDictionary"; -export default class QueryBuilder extends OrderedStringKeyDictionary { - constructor(query: QueryParamsConvertible, decodeValues?: boolean); - static init(query: QueryParamsConvertible, decodeValues?: boolean): QueryBuilder; - importQuery(query: QueryParamsConvertible, decodeValues?: boolean): QueryBuilder; +import { OrderedStringKeyDictionary } from "../Collections/Dictionaries/OrderedStringKeyDictionary"; +import * as UriComponent from "./UriComponent"; +import * as QueryParam from "./QueryParam"; +export declare class QueryBuilder extends OrderedStringKeyDictionary { + constructor(query: QueryParam.Convertible, decodeValues?: boolean); + static init(query: QueryParam.Convertible, decodeValues?: boolean): QueryBuilder; + importQuery(query: QueryParam.Convertible, decodeValues?: boolean): QueryBuilder; importFromString(values: string, deserialize?: boolean, decodeValues?: boolean): QueryBuilder; encode(prefixIfNotEmpty?: boolean): string; toString(): string; } +export default QueryBuilder; diff --git a/dist/umd.min/System/Uri/QueryBuilder.js b/dist/umd.min/System/Uri/QueryBuilder.js index c4deef0b..38e91bcb 100644 --- a/dist/umd.min/System/Uri/QueryBuilder.js +++ b/dist/umd.min/System/Uri/QueryBuilder.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -var __extends=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../Types","./QueryParams","../Collections/Dictionaries/OrderedStringKeyDictionary","../Collections/Enumeration/Enumerator"],e)}(function(e,t){"use strict";var r=e("../Types"),o=e("./QueryParams"),i=e("../Collections/Dictionaries/OrderedStringKeyDictionary"),n=e("../Collections/Enumeration/Enumerator"),s=function(e){function t(t,r){void 0===r&&(r=!0),e.call(this),this.importQuery(t,r)}return __extends(t,e),t.init=function(e,r){return void 0===r&&(r=!0),new t(e,r)},t.prototype.importQuery=function(e,t){return void 0===t&&(t=!0),r["default"].isString(e)?this.importFromString(e,t):n.isEnumerableOrArrayLike(e)?this.importEntries(e):this.importMap(e),this},t.prototype.importFromString=function(e,t,r){void 0===t&&(t=!0),void 0===r&&(r=!0);var i=this;return o.parse(e,function(e,t){if(i.containsKey(e)){var r=i.getValue(e);Array.isArray(r)?r.push(t):i.setValue(e,[r,t])}else i.setValue(e,t)},t,r),this},t.prototype.encode=function(e){return o.encode(this,e)},t.prototype.toString=function(){return this.encode()},t}(i["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=s}); +var __extends=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../Types","../Collections/Dictionaries/OrderedStringKeyDictionary","../Collections/Enumeration/Enumerator","./QueryParams"],e)}(function(e,t){"use strict";var r=e("../Types"),i=e("../Collections/Dictionaries/OrderedStringKeyDictionary"),o=e("../Collections/Enumeration/Enumerator"),n=e("./QueryParams"),s=function(e){function t(t,r){void 0===r&&(r=!0),e.call(this),this.importQuery(t,r)}return __extends(t,e),t.init=function(e,r){return void 0===r&&(r=!0),new t(e,r)},t.prototype.importQuery=function(e,t){return void 0===t&&(t=!0),r.Type.isString(e)?this.importFromString(e,t):o.isEnumerableOrArrayLike(e)?this.importEntries(e):this.importMap(e),this},t.prototype.importFromString=function(e,t,r){void 0===t&&(t=!0),void 0===r&&(r=!0);var i=this;return n.parse(e,function(e,t){if(i.containsKey(e)){var r=i.getValue(e);Array.isArray(r)?r.push(t):i.setValue(e,[r,t])}else i.setValue(e,t)},t,r),this},t.prototype.encode=function(e){return n.encode(this,e)},t.prototype.toString=function(){return this.encode()},t}(i.OrderedStringKeyDictionary);t.QueryBuilder=s,Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=s}); //# sourceMappingURL=QueryBuilder.js.map diff --git a/dist/umd.min/System/Uri/QueryBuilder.js.map b/dist/umd.min/System/Uri/QueryBuilder.js.map index 83c51a0c..10fef933 100644 --- a/dist/umd.min/System/Uri/QueryBuilder.js.map +++ b/dist/umd.min/System/Uri/QueryBuilder.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Uri/QueryBuilder.js","System/Uri/QueryBuilder.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","Types_1","QueryParams","OrderedStringKeyDictionary_1","Enumerator_1","QueryBuilder","_super","query","decodeValues","call","importQuery","init","isString","importFromString","isEnumerableOrArrayLike","importEntries","importMap","values","deserialize","_","parse","key","value","containsKey","prev","getValue","Array","isArray","push","setValue","encode","prefixIfNotEmpty","toString","defineProperty"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,WAAY,gBAAiB,yDAA0D,yCAA0CN,IAEpK,SAAUI,EAASF,GCPtB,YAEA,IAAAM,GAAAJ,EAAiB,YACLK,EAAWL,EAAM,iBAC7BM,EAAAN,EAAuC,0DACvCO,EAAAP,EAAsC,yCAQtCQ,EAAA,SAAAC,GAIC,QAAAD,GACCE,EACAC,GAAA,SAAAA,IAAAA,GAAA,GAEAF,EAAAG,KAAA1B,MAEAA,KAAK2B,YAAYH,EAAMC,GA8EzB,MAvF2B1B,WAAAuB,EAAAC,GAanBD,EAAAM,KAAP,SACCJ,EACAC,GAEA,MAFA,UAAAA,IAAAA,GAAA,GAEO,GAAIH,GAAaE,EAAOC,IAGhCH,EAAAf,UAAAoB,YAAA,SACCH,EACAC,GAeA,MAfA,UAAAA,IAAAA,GAAA,GAEGP,EAAAA,WAAKW,SAASL,GAEhBxB,KAAK8B,iBAAyBN,EAAOC,GAE9BJ,EAAAU,wBAAwBP,GAE/BxB,KAAKgC,cAAcR,GAInBxB,KAAKiC,UAA4BT,GAG3BxB,MAURsB,EAAAf,UAAAuB,iBAAA,SACCI,EACAC,EACAV,GADA,SAAAU,IAAAA,GAAA,GACA,SAAAV,IAAAA,GAAA,EAEA,IAAIW,GAAIpC,IAkBR,OAjBAmB,GAAYkB,MAAMH,EACjB,SAACI,EAAKC,GAEL,GAAGH,EAAEI,YAAYF,GACjB,CACC,GAAIG,GAAOL,EAAEM,SAASJ,EACnBK,OAAMC,QAAQH,GAChBA,EAAKI,KAAKN,GAEVH,EAAEU,SAASR,GAAyBG,EAAMF,QAG3CH,GAAEU,SAASR,EAAKC,IAElBJ,EACAV,GAEMzB,MAQRsB,EAAAf,UAAAwC,OAAA,SAAOC,GAEN,MAAO7B,GAAY4B,OAAO/C,KAAMgD,IAGjC1B,EAAAf,UAAA0C,SAAA,WAEC,MAAOjD,MAAK+C,UAEdzB,GAvF2BF,EAAAA,WAD3BZ,QAAA0C,eAAAtC,EAAA,cAAA2B,OAAA,IDkDI3B,EAAAA,WAAkBU","file":"System/Uri/QueryBuilder.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../Types\", \"./QueryParams\", \"../Collections/Dictionaries/OrderedStringKeyDictionary\", \"../Collections/Enumeration/Enumerator\"], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var Types_1 = require(\"../Types\");\n var QueryParams = require(\"./QueryParams\");\n var OrderedStringKeyDictionary_1 = require(\"../Collections/Dictionaries/OrderedStringKeyDictionary\");\n var Enumerator_1 = require(\"../Collections/Enumeration/Enumerator\");\n var QueryBuilder = (function (_super) {\n __extends(QueryBuilder, _super);\n function QueryBuilder(query, decodeValues) {\n if (decodeValues === void 0) { decodeValues = true; }\n _super.call(this);\n this.importQuery(query, decodeValues);\n }\n QueryBuilder.init = function (query, decodeValues) {\n if (decodeValues === void 0) { decodeValues = true; }\n return new QueryBuilder(query, decodeValues);\n };\n QueryBuilder.prototype.importQuery = function (query, decodeValues) {\n if (decodeValues === void 0) { decodeValues = true; }\n if (Types_1.default.isString(query)) {\n this.importFromString(query, decodeValues);\n }\n else if (Enumerator_1.isEnumerableOrArrayLike(query)) {\n this.importEntries(query);\n }\n else {\n this.importMap(query);\n }\n return this;\n };\n QueryBuilder.prototype.importFromString = function (values, deserialize, decodeValues) {\n if (deserialize === void 0) { deserialize = true; }\n if (decodeValues === void 0) { decodeValues = true; }\n var _ = this;\n QueryParams.parse(values, function (key, value) {\n if (_.containsKey(key)) {\n var prev = _.getValue(key);\n if (Array.isArray(prev))\n prev.push(value);\n else\n _.setValue(key, [prev, value]);\n }\n else\n _.setValue(key, value);\n }, deserialize, decodeValues);\n return this;\n };\n QueryBuilder.prototype.encode = function (prefixIfNotEmpty) {\n return QueryParams.encode(this, prefixIfNotEmpty);\n };\n QueryBuilder.prototype.toString = function () {\n return this.encode();\n };\n return QueryBuilder;\n }(OrderedStringKeyDictionary_1.default));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = QueryBuilder;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport Type from \"../Types\";\r\nimport * as QueryParams from \"./QueryParams\";\r\nimport OrderedStringKeyDictionary from \"../Collections/Dictionaries/OrderedStringKeyDictionary\";\r\nimport {isEnumerableOrArrayLike} from \"../Collections/Enumeration/Enumerator\";\r\n\r\n\r\n/**\r\n * Provides a means for parsing and building a set of parameters.\r\n *\r\n * In other languages, dictionaries are not reliable for retaining the order of stored values. So for certainty and flexibility we use an ordered dictionary as a base class.\r\n */\r\nexport default\r\nclass QueryBuilder extends OrderedStringKeyDictionary\r\n{\r\n\r\n\tconstructor(\r\n\t\tquery:QueryParamsConvertible,\r\n\t\tdecodeValues:boolean = true)\r\n\t{\r\n\t\tsuper();\r\n\r\n\t\tthis.importQuery(query,decodeValues);\r\n\t}\r\n\r\n\r\n\tstatic init(\r\n\t\tquery:QueryParamsConvertible,\r\n\t\tdecodeValues:boolean = true):QueryBuilder\r\n\t{\r\n\t\treturn new QueryBuilder(query, decodeValues);\r\n\t}\r\n\r\n\timportQuery(\r\n\t\tquery:QueryParamsConvertible,\r\n\t\tdecodeValues:boolean = true):QueryBuilder {\r\n\r\n\t\tif(Type.isString(query))\r\n\t\t{\r\n\t\t\tthis.importFromString(query, decodeValues);\r\n\t\t}\r\n\t\telse if(isEnumerableOrArrayLike(query))\r\n\t\t{\r\n\t\t\tthis.importEntries(query);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthis.importMap(query);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t * Property parses the components of an URI into their values or array of values.\r\n\t * @param values\r\n\t * @param deserialize\r\n\t * @param decodeValues\r\n\t * @returns {QueryBuilder}\r\n\t */\r\n\timportFromString(\r\n\t\tvalues:string,\r\n\t\tdeserialize:boolean = true,\r\n\t\tdecodeValues:boolean = true):QueryBuilder\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tQueryParams.parse(values,\r\n\t\t\t(key, value)=>\r\n\t\t\t{\r\n\t\t\t\tif(_.containsKey(key))\r\n\t\t\t\t{\r\n\t\t\t\t\tvar prev = _.getValue(key);\r\n\t\t\t\t\tif(Array.isArray(prev))\r\n\t\t\t\t\t\tprev.push(value);\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\t_.setValue(key, [prev, value]);\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t\t_.setValue(key, value);\r\n\t\t\t},\r\n\t\t\tdeserialize,\r\n\t\t\tdecodeValues);\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\r\n\r\n\t/**\r\n\t * Returns the encoded URI string\r\n\t */\r\n\tencode(prefixIfNotEmpty?:boolean):string\r\n\t{\r\n\t\treturn QueryParams.encode(this, prefixIfNotEmpty);\r\n\t}\r\n\r\n\ttoString():string\r\n\t{\r\n\t\treturn this.encode();\r\n\t}\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Uri/QueryBuilder.js","System/Uri/QueryBuilder.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","Types_1","OrderedStringKeyDictionary_1","Enumerator_1","QueryParams","QueryBuilder","_super","query","decodeValues","call","importQuery","init","Type","isString","importFromString","isEnumerableOrArrayLike","importEntries","importMap","values","deserialize","_","parse","key","value","containsKey","prev","getValue","Array","isArray","push","setValue","encode","prefixIfNotEmpty","toString","OrderedStringKeyDictionary","defineProperty"],"mappings":";;;;AAIA,GAAIA,WAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAII,KAAKH,GAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAEnDJ,GAAEM,UAAkB,OAANL,EAAaM,OAAOC,OAAOP,IAAMC,EAAGI,UAAYL,EAAEK,UAAW,GAAIJ,MAEnF,SAAWO,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,WAAY,yDAA0D,wCAAyC,iBAAkBN,IAEpK,SAAUI,EAASF,GAClB,YCXJ,IAAAM,GAAAJ,EAAmB,YACnBK,EAAAL,EAAyC,0DACzCM,EAAAN,EAAsC,yCAG1BO,EAAWP,EAAM,iBAQ7BQ,EAAA,SAAAC,GAGC,QAAAD,GACCE,EACAC,GAAA,SAAAA,IAAAA,GAAA,GAEAF,EAAAG,KAAA1B,MAEAA,KAAK2B,YAAYH,EAAOC,GA8E1B,MAvFkC1B,WAAAuB,EAAAC,GAa1BD,EAAAM,KAAP,SACCJ,EACAC,GAEA,MAFA,UAAAA,IAAAA,GAAA,GAEO,GAAIH,GAAaE,EAAOC,IAGhCH,EAAAf,UAAAoB,YAAA,SACCH,EACAC,GAgBA,MAhBA,UAAAA,IAAAA,GAAA,GAGGP,EAAAW,KAAKC,SAASN,GAEhBxB,KAAK+B,iBAAyBP,EAAOC,GAE9BL,EAAAY,wBAAwBR,GAE/BxB,KAAKiC,cAAcT,GAInBxB,KAAKkC,UAA4BV,GAG3BxB,MAURsB,EAAAf,UAAAwB,iBAAA,SACCI,EACAC,EACAX,GADA,SAAAW,IAAAA,GAAA,GACA,SAAAX,IAAAA,GAAA,EAEA,IAAIY,GAAIrC,IAkBR,OAjBAqB,GAAYiB,MAAMH,EACjB,SAACI,EAAKC,GAEL,GAAGH,EAAEI,YAAYF,GACjB,CACC,GAAIG,GAAOL,EAAEM,SAASJ,EACnBK,OAAMC,QAAQH,GAChBA,EAAKI,KAAKN,GAEVH,EAAEU,SAASR,GAA0BG,EAAMF,QAG5CH,GAAEU,SAASR,EAAKC,IAElBJ,EACAX,GAEMzB,MAORsB,EAAAf,UAAAyC,OAAA,SAAOC,GAEN,MAAO5B,GAAY2B,OAAOhD,KAAMiD,IAGjC3B,EAAAf,UAAA2C,SAAA,WAEC,MAAOlD,MAAKgD,UAEd1B,GAvFkCH,EAAAgC,2BAArBvC,GAAAU,aAAYA,EAyFzBd,OAAA4C,eAAAxC,EAAA,cAAA4B,OAAA,IDnCI5B,EAAAA,WCmCWU","file":"System/Uri/QueryBuilder.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../Types\", \"../Collections/Dictionaries/OrderedStringKeyDictionary\", \"../Collections/Enumeration/Enumerator\", \"./QueryParams\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var Types_1 = require(\"../Types\");\n var OrderedStringKeyDictionary_1 = require(\"../Collections/Dictionaries/OrderedStringKeyDictionary\");\n var Enumerator_1 = require(\"../Collections/Enumeration/Enumerator\");\n var QueryParams = require(\"./QueryParams\");\n var QueryBuilder = (function (_super) {\n __extends(QueryBuilder, _super);\n function QueryBuilder(query, decodeValues) {\n if (decodeValues === void 0) { decodeValues = true; }\n _super.call(this);\n this.importQuery(query, decodeValues);\n }\n QueryBuilder.init = function (query, decodeValues) {\n if (decodeValues === void 0) { decodeValues = true; }\n return new QueryBuilder(query, decodeValues);\n };\n QueryBuilder.prototype.importQuery = function (query, decodeValues) {\n if (decodeValues === void 0) { decodeValues = true; }\n if (Types_1.Type.isString(query)) {\n this.importFromString(query, decodeValues);\n }\n else if (Enumerator_1.isEnumerableOrArrayLike(query)) {\n this.importEntries(query);\n }\n else {\n this.importMap(query);\n }\n return this;\n };\n QueryBuilder.prototype.importFromString = function (values, deserialize, decodeValues) {\n if (deserialize === void 0) { deserialize = true; }\n if (decodeValues === void 0) { decodeValues = true; }\n var _ = this;\n QueryParams.parse(values, function (key, value) {\n if (_.containsKey(key)) {\n var prev = _.getValue(key);\n if (Array.isArray(prev))\n prev.push(value);\n else\n _.setValue(key, [prev, value]);\n }\n else\n _.setValue(key, value);\n }, deserialize, decodeValues);\n return this;\n };\n QueryBuilder.prototype.encode = function (prefixIfNotEmpty) {\n return QueryParams.encode(this, prefixIfNotEmpty);\n };\n QueryBuilder.prototype.toString = function () {\n return this.encode();\n };\n return QueryBuilder;\n }(OrderedStringKeyDictionary_1.OrderedStringKeyDictionary));\n exports.QueryBuilder = QueryBuilder;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = QueryBuilder;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {Type} from \"../Types\";\r\nimport {OrderedStringKeyDictionary} from \"../Collections/Dictionaries/OrderedStringKeyDictionary\";\r\nimport {isEnumerableOrArrayLike} from \"../Collections/Enumeration/Enumerator\";\r\nimport * as UriComponent from \"./UriComponent\";\r\nimport * as QueryParam from \"./QueryParam\";\r\nimport * as QueryParams from \"./QueryParams\";\r\n\r\n\r\n/**\r\n * Provides a means for parsing and building a set of parameters.\r\n *\r\n * In other languages, dictionaries are not reliable for retaining the order of stored values. So for certainty and flexibility we use an ordered dictionary as a base class.\r\n */\r\nexport class QueryBuilder extends OrderedStringKeyDictionary\r\n{\r\n\r\n\tconstructor(\r\n\t\tquery:QueryParam.Convertible,\r\n\t\tdecodeValues:boolean = true)\r\n\t{\r\n\t\tsuper();\r\n\r\n\t\tthis.importQuery(query, decodeValues);\r\n\t}\r\n\r\n\r\n\tstatic init(\r\n\t\tquery:QueryParam.Convertible,\r\n\t\tdecodeValues:boolean = true):QueryBuilder\r\n\t{\r\n\t\treturn new QueryBuilder(query, decodeValues);\r\n\t}\r\n\r\n\timportQuery(\r\n\t\tquery:QueryParam.Convertible,\r\n\t\tdecodeValues:boolean = true):QueryBuilder\r\n\t{\r\n\r\n\t\tif(Type.isString(query))\r\n\t\t{\r\n\t\t\tthis.importFromString(query, decodeValues);\r\n\t\t}\r\n\t\telse if(isEnumerableOrArrayLike(query))\r\n\t\t{\r\n\t\t\tthis.importEntries(query);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthis.importMap(query);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t * Property parses the components of an URI into their values or array of values.\r\n\t * @param values\r\n\t * @param deserialize\r\n\t * @param decodeValues\r\n\t * @returns {QueryBuilder}\r\n\t */\r\n\timportFromString(\r\n\t\tvalues:string,\r\n\t\tdeserialize:boolean = true,\r\n\t\tdecodeValues:boolean = true):QueryBuilder\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tQueryParams.parse(values,\r\n\t\t\t(key, value)=>\r\n\t\t\t{\r\n\t\t\t\tif(_.containsKey(key))\r\n\t\t\t\t{\r\n\t\t\t\t\tvar prev = _.getValue(key);\r\n\t\t\t\t\tif(Array.isArray(prev))\r\n\t\t\t\t\t\tprev.push(value);\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\t_.setValue(key, [prev, value]);\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t\t_.setValue(key, value);\r\n\t\t\t},\r\n\t\t\tdeserialize,\r\n\t\t\tdecodeValues);\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Returns the encoded URI string\r\n\t */\r\n\tencode(prefixIfNotEmpty?:boolean):string\r\n\t{\r\n\t\treturn QueryParams.encode(this, prefixIfNotEmpty);\r\n\t}\r\n\r\n\ttoString():string\r\n\t{\r\n\t\treturn this.encode();\r\n\t}\r\n}\r\n\r\nexport default QueryBuilder;\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Uri/QueryParams.d.ts b/dist/umd.min/System/Uri/QueryParams.d.ts index 6bedb350..f90cd30d 100644 --- a/dist/umd.min/System/Uri/QueryParams.d.ts +++ b/dist/umd.min/System/Uri/QueryParams.d.ts @@ -1,17 +1,20 @@ -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -export declare function encode(values: IUriComponentMap | QueryParamEnumerableOrArray, prefixIfNotEmpty?: boolean): string; -export declare function encodeValue(value: UriComponentValue): string; -export declare function isUriComponentFormattable(instance: any): instance is IUriComponentFormattable; +import * as UriComponent from "./UriComponent"; +import * as QueryParam from "./QueryParam"; +import { IMap } from "../Collections/Dictionaries/IDictionary"; +import { Primitive } from "../Primitive"; +import { IStringKeyValuePair } from "../KeyValuePair"; +export declare function encode(values: UriComponent.Map | QueryParam.EnumerableOrArray, prefixIfNotEmpty?: boolean): string; +export declare function encodeValue(value: UriComponent.Value): string; +export declare function isUriComponentFormattable(instance: any): instance is UriComponent.Formattable; export declare function parse(query: string, entryHandler: (key: string, value: Primitive) => void, deserialize?: boolean, decodeValues?: boolean): void; export declare function parseToMap(query: string, deserialize?: boolean, decodeValues?: boolean): IMap; export declare function parseToArray(query: string, deserialize?: boolean, decodeValues?: boolean): IStringKeyValuePair[]; export declare module Separator { + const Query: string; const Entry: string; const KeyValue: string; } diff --git a/dist/umd.min/System/Uri/QueryParams.js b/dist/umd.min/System/Uri/QueryParams.js index edb4fc37..e8a7db5b 100644 --- a/dist/umd.min/System/Uri/QueryParams.js +++ b/dist/umd.min/System/Uri/QueryParams.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -!function(e){if("object"==typeof module&&"object"==typeof module.exports){var n=e(require,exports);void 0!==n&&(module.exports=n)}else"function"==typeof define&&define.amd&&define(["require","exports","../Types","../Serialization/Utility","../KeyValueExtract","../Collections/Enumeration/Enumerator"],e)}(function(e,n){"use strict";function r(e,n){if(!e)return"";var r=[];return p.isEnumerableOrArrayLike(e)?p.forEach(e,function(e){return d["default"](e,function(e,n){return o(r,e,n)})}):Object.keys(e).forEach(function(n){return o(r,n,e[n])}),(r.length&&n?"?":"")+r.join(v)}function t(e,n,r){e.push(n+m+i(r))}function o(e,n,r){p.isEnumerableOrArrayLike(r)?p.forEach(r,function(r){return t(e,n,r)}):t(e,n,r)}function i(e){var n=null;if(u(e)){if(n=e.toUriComponent(),n&&1!=n.indexOf("&"))throw".toUriComponent() did not encode the value."}else n=encodeURIComponent(s.toString(n));return n}function u(e){return l["default"].hasMemberOfType(e,"toUriComponent",l["default"].FUNCTION)}function a(e,n,r,t){if(void 0===r&&(r=!0),void 0===t&&(t=!0),e&&(e=e.replace(/^\s*\?+/,"")))for(var o=e.split(v),i=0,u=o;i\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport Type from \"../Types\";\r\nimport * as Serialization from \"../Serialization/Utility\";\r\nimport extractKeyValue from \"../KeyValueExtract\";\r\nimport {forEach, isEnumerableOrArrayLike} from \"../Collections/Enumeration/Enumerator\";\r\n\r\n/*\r\n * This module is provided as a lighter weight utility for acquiring query params.\r\n * If more detailed operations are necessary, consider importing QueryBuilder.\r\n */\r\n\r\nconst\r\n\tENTRY_SEPARATOR = \"&\",\r\n\tKEY_VALUE_SEPARATOR = \"=\";\r\n\r\n\r\n/**\r\n * Returns the encoded URI string\r\n * @param values\r\n * @param prefixIfNotEmpty\r\n * @returns {string}\r\n */\r\nexport function encode(\r\n\tvalues:IUriComponentMap | QueryParamEnumerableOrArray,\r\n\tprefixIfNotEmpty?:boolean):string\r\n{\r\n\tif(!values) return '';\r\n\tvar entries:string[] = [];\r\n\r\n\tif(isEnumerableOrArrayLike(values))\r\n\t{\r\n\t\tforEach(values, entry=>\r\n\t\t\textractKeyValue(entry,\r\n\t\t\t\t(key, value)=> appendKeyValue(entries, key, value))\r\n\t\t);\r\n\t}\r\n\telse\r\n\t{\r\n\t\tObject.keys(values).forEach(\r\n\t\t\tkey=> appendKeyValue(entries, key, values[key])\r\n\t\t);\r\n\t}\r\n\r\n\treturn (entries.length && prefixIfNotEmpty ? '?' : '')\r\n\t\t+ entries.join(ENTRY_SEPARATOR);\r\n}\r\n\r\nfunction appendKeyValueSingle(\r\n\tentries:string[],\r\n\tkey:string,\r\n\tvalue:UriComponentValue):void\r\n{\r\n\tentries.push(key + KEY_VALUE_SEPARATOR + encodeValue(value));\r\n}\r\n\r\n// According to spec, if there is an array of values with the same key, then each value is replicated with that key.\r\nfunction appendKeyValue(\r\n\tentries:string[],\r\n\tkey:string,\r\n\tvalue:UriComponentValue|IEnumerableOrArray):void\r\n{\r\n\tif(isEnumerableOrArrayLike(value))\r\n\t{\r\n\t\tforEach(value, v=> appendKeyValueSingle(entries, key, v));\r\n\t}\r\n\telse\r\n\t{\r\n\t\tappendKeyValueSingle(entries, key, value)\r\n\t}\r\n}\r\n\r\n/**\r\n * Converts any primitive, serializable or uri-component object to an encoded string.\r\n * @param value\r\n * @returns {string}\r\n */\r\nexport function encodeValue(value:UriComponentValue):string\r\n{\r\n\tvar v:string = null;\r\n\tif(isUriComponentFormattable(value))\r\n\t{\r\n\t\tv = value.toUriComponent();\r\n\t\tif(v && v.indexOf('&')!=1)\r\n\t\t\tthrow '.toUriComponent() did not encode the value.';\r\n\t}\r\n\telse\r\n\t{\r\n\t\tv = encodeURIComponent(Serialization.toString(v));\r\n\t}\r\n\treturn v;\r\n}\r\n\r\n/**\r\n * A shortcut for identifying an IUriComponentFormattable object.\r\n * @param instance\r\n * @returns {boolean}\r\n */\r\nexport function isUriComponentFormattable(instance:any):instance is IUriComponentFormattable\r\n{\r\n\treturn Type.hasMemberOfType(instance, \"toUriComponent\", Type.FUNCTION);\r\n}\r\n\r\n/**\r\n * Parses a string for valid query param entries and pipes them through a handler.\r\n * @param query\r\n * @param entryHandler\r\n * @param deserialize Default is true.\r\n * @param decodeValues Default is true.\r\n */\r\nexport function parse(\r\n\tquery:string,\r\n\tentryHandler:(key:string, value:Primitive)=>void,\r\n\tdeserialize:boolean = true,\r\n\tdecodeValues:boolean = true):void\r\n{\r\n\tif(query && (query = query.replace(/^\\s*\\?+/, '')))\r\n\t{\r\n\t\tvar entries = query.split(ENTRY_SEPARATOR);\r\n\t\tfor(let entry of entries)\r\n\t\t{\r\n\t\t\t/*\r\n\t\t\t * Since it is technically possible to have multiple '=' we need to identify the first one.\r\n\t\t\t * And if there is no '=' then the entry is ignored.\r\n\t\t\t */\r\n\t\t\tvar si = entry.indexOf(KEY_VALUE_SEPARATOR);\r\n\t\t\tif(si!= -1)\r\n\t\t\t{\r\n\t\t\t\tvar key = entry.substring(0, si);\r\n\t\t\t\tvar value = entry.substring(si + 1);\r\n\t\t\t\tif(decodeValues) value = decodeURIComponent(value);\r\n\t\t\t\tif(deserialize) value = Serialization.toPrimitive(value);\r\n\t\t\t\tentryHandler(key, value);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Parses a string for valid query params and returns a key-value map of the entries.\r\n * @param query\r\n * @param deserialize Default is true.\r\n * @param decodeValues Default is true.\r\n * @returns {IMap}\r\n */\r\nexport function parseToMap(\r\n\tquery:string,\r\n\tdeserialize:boolean = true,\r\n\tdecodeValues:boolean = true):IMap\r\n{\r\n\tvar result:IMap = {};\r\n\tparse(query,\r\n\t\t(key, value)=>\r\n\t\t{\r\n\t\t\tif((key) in (result))\r\n\t\t\t{\r\n\t\t\t\tvar prev:any = result[key];\r\n\t\t\t\tif(!(Array.isArray(prev)))\r\n\t\t\t\t\tresult[key] = prev = [prev];\r\n\t\t\t\tprev.push(value);\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t\tresult[key] = value;\r\n\t\t},\r\n\t\tdeserialize,\r\n\t\tdecodeValues);\r\n\treturn result;\r\n}\r\n\r\n/**\r\n * Parses a string for valid query params and returns a key-value pair array of the entries.\r\n * @param query\r\n * @param deserialize Default is true.\r\n * @param decodeValues Default is true.\r\n * @returns {IKeyValuePair[]}\r\n */\r\nexport function parseToArray(\r\n\tquery:string,\r\n\tdeserialize:boolean = true,\r\n\tdecodeValues:boolean = true):IStringKeyValuePair[]\r\n{\r\n\tvar result:IStringKeyValuePair[] = [];\r\n\tparse(query,\r\n\t\t(key, value)=> {result.push({key: key, value: value});},\r\n\t\tdeserialize,\r\n\t\tdecodeValues\r\n\t);\r\n\treturn result;\r\n}\r\n\r\n\r\nexport module Separator\r\n{\r\n\texport const Entry:string = ENTRY_SEPARATOR;\r\n\texport const KeyValue:string = KEY_VALUE_SEPARATOR;\r\n}\r\nObject.freeze(Separator);\r\n\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Uri/QueryParams.js","System/Uri/QueryParams.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","encode","values","prefixIfNotEmpty","EMPTY","entries","Enumerator_1","isEnumerableOrArrayLike","forEach","entry","KeyValueExtract_1","extractKeyValue","key","value","appendKeyValue","Object","keys","length","QUERY_SEPARATOR","join","ENTRY_SEPARATOR","appendKeyValueSingle","push","KEY_VALUE_SEPARATOR","encodeValue","isUriComponentFormattable","toUriComponent","indexOf","encodeURIComponent","Serialization","toString","instance","Types_1","Type","hasMemberOfType","TO_URI_COMPONENT","FUNCTION","parse","query","entryHandler","deserialize","decodeValues","replace","split","_i","entries_1","si","substring","decodeURIComponent","toPrimitive","parseToMap","result","prev","Array","isArray","parseToArray","Separator","Query","Entry","KeyValue","freeze"],"mappings":"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","file":"System/Uri/QueryParams.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../Serialization/Utility\", \"../Types\", \"../KeyValueExtract\", \"../Collections/Enumeration/Enumerator\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var Serialization = require(\"../Serialization/Utility\");\n var Types_1 = require(\"../Types\");\n var KeyValueExtract_1 = require(\"../KeyValueExtract\");\n var Enumerator_1 = require(\"../Collections/Enumeration/Enumerator\");\n var EMPTY = \"\", QUERY_SEPARATOR = \"?\", ENTRY_SEPARATOR = \"&\", KEY_VALUE_SEPARATOR = \"=\", TO_URI_COMPONENT = \"toUriComponent\";\n function encode(values, prefixIfNotEmpty) {\n if (!values)\n return EMPTY;\n var entries = [];\n if (Enumerator_1.isEnumerableOrArrayLike(values)) {\n Enumerator_1.forEach(values, function (entry) {\n return KeyValueExtract_1.extractKeyValue(entry, function (key, value) { return appendKeyValue(entries, key, value); });\n });\n }\n else {\n Object.keys(values).forEach(function (key) { return appendKeyValue(entries, key, values[key]); });\n }\n return (entries.length && prefixIfNotEmpty ? QUERY_SEPARATOR : EMPTY)\n + entries.join(ENTRY_SEPARATOR);\n }\n exports.encode = encode;\n function appendKeyValueSingle(entries, key, value) {\n entries.push(key + KEY_VALUE_SEPARATOR + encodeValue(value));\n }\n function appendKeyValue(entries, key, value) {\n if (Enumerator_1.isEnumerableOrArrayLike(value)) {\n Enumerator_1.forEach(value, function (v) { return appendKeyValueSingle(entries, key, v); });\n }\n else {\n appendKeyValueSingle(entries, key, value);\n }\n }\n function encodeValue(value) {\n var v = null;\n if (isUriComponentFormattable(value)) {\n v = value.toUriComponent();\n if (v && v.indexOf(ENTRY_SEPARATOR) != 1)\n throw '.toUriComponent() did not encode the value.';\n }\n else {\n v = encodeURIComponent(Serialization.toString(v));\n }\n return v;\n }\n exports.encodeValue = encodeValue;\n function isUriComponentFormattable(instance) {\n return Types_1.Type.hasMemberOfType(instance, TO_URI_COMPONENT, Types_1.Type.FUNCTION);\n }\n exports.isUriComponentFormattable = isUriComponentFormattable;\n function parse(query, entryHandler, deserialize, decodeValues) {\n if (deserialize === void 0) { deserialize = true; }\n if (decodeValues === void 0) { decodeValues = true; }\n if (query && (query = query.replace(/^\\s*\\?+/, ''))) {\n var entries = query.split(ENTRY_SEPARATOR);\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n var si = entry.indexOf(KEY_VALUE_SEPARATOR);\n if (si != -1) {\n var key = entry.substring(0, si);\n var value = entry.substring(si + 1);\n if (decodeValues)\n value = decodeURIComponent(value);\n if (deserialize)\n value = Serialization.toPrimitive(value);\n entryHandler(key, value);\n }\n }\n }\n }\n exports.parse = parse;\n function parseToMap(query, deserialize, decodeValues) {\n if (deserialize === void 0) { deserialize = true; }\n if (decodeValues === void 0) { decodeValues = true; }\n var result = {};\n parse(query, function (key, value) {\n if ((key) in (result)) {\n var prev = result[key];\n if (!(Array.isArray(prev)))\n result[key] = prev = [prev];\n prev.push(value);\n }\n else\n result[key] = value;\n }, deserialize, decodeValues);\n return result;\n }\n exports.parseToMap = parseToMap;\n function parseToArray(query, deserialize, decodeValues) {\n if (deserialize === void 0) { deserialize = true; }\n if (decodeValues === void 0) { decodeValues = true; }\n var result = [];\n parse(query, function (key, value) { result.push({ key: key, value: value }); }, deserialize, decodeValues);\n return result;\n }\n exports.parseToArray = parseToArray;\n var Separator;\n (function (Separator) {\n Separator.Query = QUERY_SEPARATOR;\n Separator.Entry = ENTRY_SEPARATOR;\n Separator.KeyValue = KEY_VALUE_SEPARATOR;\n })(Separator = exports.Separator || (exports.Separator = {}));\n Object.freeze(Separator);\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport * as Serialization from \"../Serialization/Utility\";\r\nimport * as UriComponent from \"./UriComponent\";\r\nimport * as QueryParam from \"./QueryParam\";\r\nimport {Type} from \"../Types\";\r\nimport {extractKeyValue} from \"../KeyValueExtract\";\r\nimport {forEach, isEnumerableOrArrayLike} from \"../Collections/Enumeration/Enumerator\";\r\nimport {IMap} from \"../Collections/Dictionaries/IDictionary\";\r\nimport {Primitive} from \"../Primitive\";\r\nimport {IStringKeyValuePair} from \"../KeyValuePair\";\r\nimport {IEnumerableOrArray} from \"../Collections/IEnumerableOrArray\";\r\n\r\n/*\r\n * This module is provided as a lighter weight utility for acquiring query params.\r\n * If more detailed operations are necessary, consider importing QueryBuilder.\r\n */\r\n\r\nconst\r\n\tEMPTY = \"\",\r\n\tQUERY_SEPARATOR = \"?\",\r\n\tENTRY_SEPARATOR = \"&\",\r\n\tKEY_VALUE_SEPARATOR = \"=\",\r\n\tTO_URI_COMPONENT = \"toUriComponent\";\r\n\r\n\r\n/**\r\n * Returns the encoded URI string\r\n * @param values\r\n * @param prefixIfNotEmpty\r\n * @returns {string}\r\n */\r\nexport function encode(\r\n\tvalues:UriComponent.Map | QueryParam.EnumerableOrArray,\r\n\tprefixIfNotEmpty?:boolean):string\r\n{\r\n\tif(!values) return EMPTY;\r\n\tvar entries:string[] = [];\r\n\r\n\tif(isEnumerableOrArrayLike(values))\r\n\t{\r\n\t\tforEach(values, entry=>\r\n\t\t\textractKeyValue(entry,\r\n\t\t\t\t(key, value)=> appendKeyValue(entries, key, value))\r\n\t\t);\r\n\t}\r\n\telse\r\n\t{\r\n\t\tObject.keys(values).forEach(\r\n\t\t\tkey=> appendKeyValue(entries, key, values[key])\r\n\t\t);\r\n\t}\r\n\r\n\treturn (entries.length && prefixIfNotEmpty ? QUERY_SEPARATOR : EMPTY)\r\n\t\t+ entries.join(ENTRY_SEPARATOR);\r\n}\r\n\r\nfunction appendKeyValueSingle(\r\n\tentries:string[],\r\n\tkey:string,\r\n\tvalue:UriComponent.Value):void\r\n{\r\n\tentries.push(key + KEY_VALUE_SEPARATOR + encodeValue(value));\r\n}\r\n\r\n// According to spec, if there is an array of values with the same key, then each value is replicated with that key.\r\nfunction appendKeyValue(\r\n\tentries:string[],\r\n\tkey:string,\r\n\tvalue:UriComponent.Value|IEnumerableOrArray):void\r\n{\r\n\tif(isEnumerableOrArrayLike(value))\r\n\t{\r\n\t\tforEach(value, v=> appendKeyValueSingle(entries, key, v));\r\n\t}\r\n\telse\r\n\t{\r\n\t\tappendKeyValueSingle(entries, key, value)\r\n\t}\r\n}\r\n\r\n/**\r\n * Converts any primitive, serializable or uri-component object to an encoded string.\r\n * @param value\r\n * @returns {string}\r\n */\r\nexport function encodeValue(value:UriComponent.Value):string\r\n{\r\n\tvar v:string = null;\r\n\tif(isUriComponentFormattable(value))\r\n\t{\r\n\t\tv = value.toUriComponent();\r\n\t\tif(v && v.indexOf(ENTRY_SEPARATOR)!=1)\r\n\t\t\tthrow '.toUriComponent() did not encode the value.';\r\n\t}\r\n\telse\r\n\t{\r\n\t\tv = encodeURIComponent(Serialization.toString(v));\r\n\t}\r\n\treturn v;\r\n}\r\n\r\n/**\r\n * A shortcut for identifying an UriComponent.Formattable object.\r\n * @param instance\r\n * @returns {boolean}\r\n */\r\nexport function isUriComponentFormattable(instance:any):instance is UriComponent.Formattable\r\n{\r\n\treturn Type.hasMemberOfType(instance, TO_URI_COMPONENT, Type.FUNCTION);\r\n}\r\n\r\n/**\r\n * Parses a string for valid query param entries and pipes them through a handler.\r\n * @param query\r\n * @param entryHandler\r\n * @param deserialize Default is true.\r\n * @param decodeValues Default is true.\r\n */\r\nexport function parse(\r\n\tquery:string,\r\n\tentryHandler:(key:string, value:Primitive)=>void,\r\n\tdeserialize:boolean = true,\r\n\tdecodeValues:boolean = true):void\r\n{\r\n\tif(query && (query = query.replace(/^\\s*\\?+/, '')))\r\n\t{\r\n\t\tvar entries = query.split(ENTRY_SEPARATOR);\r\n\t\tfor(let entry of entries)\r\n\t\t{\r\n\t\t\t/*\r\n\t\t\t * Since it is technically possible to have multiple '=' we need to identify the first one.\r\n\t\t\t * And if there is no '=' then the entry is ignored.\r\n\t\t\t */\r\n\t\t\tvar si = entry.indexOf(KEY_VALUE_SEPARATOR);\r\n\t\t\tif(si!= -1)\r\n\t\t\t{\r\n\t\t\t\tvar key = entry.substring(0, si);\r\n\t\t\t\tvar value = entry.substring(si + 1);\r\n\t\t\t\tif(decodeValues) value = decodeURIComponent(value);\r\n\t\t\t\tif(deserialize) value = Serialization.toPrimitive(value);\r\n\t\t\t\tentryHandler(key, value);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Parses a string for valid query params and returns a key-value map of the entries.\r\n * @param query\r\n * @param deserialize Default is true.\r\n * @param decodeValues Default is true.\r\n * @returns {IMap}\r\n */\r\nexport function parseToMap(\r\n\tquery:string,\r\n\tdeserialize:boolean = true,\r\n\tdecodeValues:boolean = true):IMap\r\n{\r\n\tvar result:IMap = {};\r\n\tparse(query,\r\n\t\t(key, value)=>\r\n\t\t{\r\n\t\t\tif((key) in (result))\r\n\t\t\t{\r\n\t\t\t\tvar prev:any = result[key];\r\n\t\t\t\tif(!(Array.isArray(prev)))\r\n\t\t\t\t\tresult[key] = prev = [prev];\r\n\t\t\t\tprev.push(value);\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t\tresult[key] = value;\r\n\t\t},\r\n\t\tdeserialize,\r\n\t\tdecodeValues);\r\n\treturn result;\r\n}\r\n\r\n/**\r\n * Parses a string for valid query params and returns a key-value pair array of the entries.\r\n * @param query\r\n * @param deserialize Default is true.\r\n * @param decodeValues Default is true.\r\n * @returns {IKeyValuePair[]}\r\n */\r\nexport function parseToArray(\r\n\tquery:string,\r\n\tdeserialize:boolean = true,\r\n\tdecodeValues:boolean = true):IStringKeyValuePair[]\r\n{\r\n\tvar result:IStringKeyValuePair[] = [];\r\n\tparse(query,\r\n\t\t(key, value)=> {result.push({key: key, value: value});},\r\n\t\tdeserialize,\r\n\t\tdecodeValues\r\n\t);\r\n\treturn result;\r\n}\r\n\r\n\r\nexport module Separator\r\n{\r\n\texport const Query:string = QUERY_SEPARATOR;\r\n\texport const Entry:string = ENTRY_SEPARATOR;\r\n\texport const KeyValue:string = KEY_VALUE_SEPARATOR;\r\n}\r\nObject.freeze(Separator);\r\n\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Uri/Scheme.d.ts b/dist/umd.min/System/Uri/Scheme.d.ts index 5e625ec8..406f9ce0 100644 --- a/dist/umd.min/System/Uri/Scheme.d.ts +++ b/dist/umd.min/System/Uri/Scheme.d.ts @@ -3,19 +3,20 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based on: https://msdn.microsoft.com/en-us/library/system.uri.scheme%28v=vs.110%29.aspx */ -declare enum Scheme { - file = 0, - ftp = 1, - gopher = 2, - http = 3, - https = 4, - ldap = 5, - mailto = 6, - pipe = 7, - tcp = 8, - news = 9, - nntp = 10, - telnet = 11, - uuid = 12, -} -export default Scheme; +import * as Scheme from "./SchemeValue"; +import { SchemeValue } from "./SchemeValue"; +export declare const File: Scheme.File; +export declare const FTP: Scheme.FTP; +export declare const GOPHER: Scheme.Gopher; +export declare const HTTP: Scheme.HTTP; +export declare const HTTPS: Scheme.HTTPS; +export declare const LDAP: Scheme.LDAP; +export declare const MAILTO: Scheme.MailTo; +export declare const PIPE: Scheme.Pipe; +export declare const TCP: Scheme.TCP; +export declare const NEWS: Scheme.NNTP; +export declare const NNTP: Scheme.NNTP; +export declare const TELNET: Scheme.Telnet; +export declare const UUID: Scheme.UUID; +export declare const All: SchemeValue[]; +export declare function isValid(scheme: string): scheme is SchemeValue; diff --git a/dist/umd.min/System/Uri/Scheme.js b/dist/umd.min/System/Uri/Scheme.js index 1478c96a..ebadbc27 100644 --- a/dist/umd.min/System/Uri/Scheme.js +++ b/dist/umd.min/System/Uri/Scheme.js @@ -3,5 +3,5 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based on: https://msdn.microsoft.com/en-us/library/system.uri.scheme%28v=vs.110%29.aspx */ -!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports"],e)}(function(e,t){"use strict";var p;!function(e){e[e.file=0]="file",e[e.ftp=1]="ftp",e[e.gopher=2]="gopher",e[e.http=3]="http",e[e.https=4]="https",e[e.ldap=5]="ldap",e[e.mailto=6]="mailto",e[e.pipe=7]="pipe",e[e.tcp=8]="tcp",e[e.news=9]="news",e[e.nntp=10]="nntp",e[e.telnet=11]="telnet",e[e.uuid=12]="uuid"}(p||(p={}));var i="net.pipe",o="net.tcp";p[p.pipe]=i,p[p.tcp]=o,p[i]=p.pipe,p[o]=p.tcp,Object.freeze(p),Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=p}); +!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports"],e)}(function(e,t){"use strict";function i(e){return-1!=t.All.indexOf(e)}t.File="file",t.FTP="ftp",t.GOPHER="gopher",t.HTTP="http",t.HTTPS="https",t.LDAP="ldap",t.MAILTO="mailto",t.PIPE="net.pipe",t.TCP="net.tcp",t.NEWS="news",t.NNTP="nntp",t.TELNET="telnet",t.UUID="uuid",t.All=Object.freeze([t.File,t.FTP,t.GOPHER,t.HTTP,t.HTTPS,t.LDAP,t.MAILTO,t.PIPE,t.TCP,t.NEWS,t.NNTP,t.TELNET,t.UUID]),t.isValid=i}); //# sourceMappingURL=Scheme.js.map diff --git a/dist/umd.min/System/Uri/Scheme.js.map b/dist/umd.min/System/Uri/Scheme.js.map index 8e519dec..05561306 100644 --- a/dist/umd.min/System/Uri/Scheme.js.map +++ b/dist/umd.min/System/Uri/Scheme.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Uri/Scheme.js","System/Uri/Scheme.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","Scheme","PIPE","TCP","pipe","tcp","Object","freeze","defineProperty","value"],"mappings":";;;;;CAKA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,WAAYN,IAEpC,SAAUI,EAASF,GAClB,YCNJ,IAAKM,IAAL,SAAKA,GAIJA,EAAAA,EAAA,KAAA,GAAA,OAMAA,EAAAA,EAAA,IAAA,GAAA,MAMAA,EAAAA,EAAA,OAAA,GAAA,SAMAA,EAAAA,EAAA,KAAA,GAAA,OAMAA,EAAAA,EAAA,MAAA,GAAA,QAMAA,EAAAA,EAAA,KAAA,GAAA,OAMAA,EAAAA,EAAA,OAAA,GAAA,SAMAA,EAAAA,EAAA,KAAA,GAAA,OAMAA,EAAAA,EAAA,IAAA,GAAA,MAMAA,EAAAA,EAAA,KAAA,GAAA,OAMAA,EAAAA,EAAA,KAAA,IAAA,OAMAA,EAAAA,EAAA,OAAA,IAAA,SAKAA,EAAAA,EAAA,KAAA,IAAA,QA3EIA,IAAAA,MA+EL,IAAMC,GAAO,WACPC,EAAM,SAEZF,GAAOA,EAAOG,MAAQF,EACtBD,EAAOA,EAAOI,KAAOF,EAEfF,EAAQC,GAAQD,EAAOG,KACvBH,EAAQE,GAAOF,EAAOI,IAE5BC,OAAOC,OAAON,GAEdK,OAAAE,eAAAb,EAAA,cAAAc,OAAA,ID3DId,EAAAA,WC2DWM","file":"System/Uri/Scheme.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based on: https://msdn.microsoft.com/en-us/library/system.uri.scheme%28v=vs.110%29.aspx\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var Scheme;\n (function (Scheme) {\n Scheme[Scheme[\"file\"] = 0] = \"file\";\n Scheme[Scheme[\"ftp\"] = 1] = \"ftp\";\n Scheme[Scheme[\"gopher\"] = 2] = \"gopher\";\n Scheme[Scheme[\"http\"] = 3] = \"http\";\n Scheme[Scheme[\"https\"] = 4] = \"https\";\n Scheme[Scheme[\"ldap\"] = 5] = \"ldap\";\n Scheme[Scheme[\"mailto\"] = 6] = \"mailto\";\n Scheme[Scheme[\"pipe\"] = 7] = \"pipe\";\n Scheme[Scheme[\"tcp\"] = 8] = \"tcp\";\n Scheme[Scheme[\"news\"] = 9] = \"news\";\n Scheme[Scheme[\"nntp\"] = 10] = \"nntp\";\n Scheme[Scheme[\"telnet\"] = 11] = \"telnet\";\n Scheme[Scheme[\"uuid\"] = 12] = \"uuid\";\n })(Scheme || (Scheme = {}));\n var PIPE = 'net.pipe';\n var TCP = 'net.tcp';\n Scheme[Scheme.pipe] = PIPE;\n Scheme[Scheme.tcp] = TCP;\n Scheme[PIPE] = Scheme.pipe;\n Scheme[TCP] = Scheme.tcp;\n Object.freeze(Scheme);\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Scheme;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based on: https://msdn.microsoft.com/en-us/library/system.uri.scheme%28v=vs.110%29.aspx\r\n */\r\n\r\n// TODO: Possibly use string literals instead.\r\nenum Scheme {\r\n\t/**\r\n\t * The resource is a file on the local computer.\r\n\t */\r\n\tfile,\r\n\r\n\r\n\t/**\r\n\t * The resource is accessed through FTP.\r\n\t */\r\n\tftp,\r\n\r\n\r\n\t/**\r\n\t * The resource is accessed through the Gopher protocol.\r\n\t */\r\n\tgopher,\r\n\r\n\r\n\t/**\r\n\t * The resource is accessed through HTTP.\r\n\t */\r\n\thttp,\r\n\r\n\r\n\t/**\r\n\t * The resource is accessed through SSL-encrypted HTTP.\r\n\t */\r\n\thttps,\r\n\r\n\r\n\t/**\r\n\t * The resource is accessed through the LDAP protocol.\r\n\t */\r\n\tldap,\r\n\r\n\r\n\t/**\r\n\t * The resource is an e-mail address and accessed through the SMTP protocol.\r\n\t */\r\n\tmailto,\r\n\r\n\r\n\t/**\r\n\t * The resource is accessed through a named pipe.\r\n\t */\r\n\tpipe,\r\n\r\n\r\n\t/**\r\n\t * The resource is accessed from TCP endpoint.\r\n\t */\r\n\ttcp,\r\n\r\n\r\n\t/**\r\n\t * The resource is accessed through the NNTP protocol.\r\n\t */\r\n\tnews,\r\n\r\n\r\n\t/**\r\n\t * The resource is accessed through the NNTP protocol.\r\n\t */\r\n\tnntp,\r\n\r\n\r\n\t/**\r\n\t * The resource is accessed through the TELNET protocol.\r\n\t */\r\n\ttelnet,\r\n\r\n\t/**\r\n\t * The resource is accessed through a unique UUID endpoint name for communicating with a service.\r\n\t */\r\n\tuuid\r\n}\r\n\r\n// Extend the usefulness of the enum.\r\nconst PIPE = 'net.pipe';\r\nconst TCP = 'net.tcp';\r\n\r\nScheme[Scheme.pipe] = PIPE;\r\nScheme[Scheme.tcp] = TCP;\r\n\r\n(Scheme)[PIPE] = Scheme.pipe;\r\n(Scheme)[TCP] = Scheme.tcp;\r\n\r\nObject.freeze(Scheme);\r\n\r\nexport default Scheme;\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Uri/Scheme.js","System/Uri/Scheme.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","isValid","scheme","All","indexOf","File","FTP","GOPHER","HTTP","HTTPS","LDAP","MAILTO","PIPE","TCP","NEWS","NNTP","TELNET","UUID","Object","freeze"],"mappings":";;;;;CAKA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,WAAYN,IAEpC,SAAUI,EAASF,GAClB,YCiFJ,SAAAM,GAAwBC,GACvB,MAAiC,IAA1BP,EAAAQ,IAAIC,QAAaF,GAlFZP,EAAAU,KAAmB,OAMnBV,EAAAW,IAAiB,MAMjBX,EAAAY,OAAuB,SAMvBZ,EAAAa,KAAmB,OAMnBb,EAAAc,MAAqB,QAMrBd,EAAAe,KAAmB,OAMnBf,EAAAgB,OAAuB,SAMvBhB,EAAAiB,KAAmB,WAMnBjB,EAAAkB,IAAiB,UAMjBlB,EAAAmB,KAAmB,OAMnBnB,EAAAoB,KAAmB,OAMnBpB,EAAAqB,OAAuB,SAKvBrB,EAAAsB,KAAmB,OAMnBtB,EAAAQ,IAAoBe,OAAOC,QACvCxB,EAAAU,KAAMV,EAAAW,IAAKX,EAAAY,OAAQZ,EAAAa,KAAMb,EAAAc,MAAOd,EAAAe,KAAMf,EAAAgB,OAAQhB,EAAAiB,KAAMjB,EAAAkB,IAAKlB,EAAAmB,KAAMnB,EAAAoB,KAAMpB,EAAAqB,OAAQrB,EAAAsB,OAG9DtB,EAAAM,QAAOA","file":"System/Uri/Scheme.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based on: https://msdn.microsoft.com/en-us/library/system.uri.scheme%28v=vs.110%29.aspx\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n exports.File = \"file\";\n exports.FTP = \"ftp\";\n exports.GOPHER = \"gopher\";\n exports.HTTP = \"http\";\n exports.HTTPS = \"https\";\n exports.LDAP = \"ldap\";\n exports.MAILTO = \"mailto\";\n exports.PIPE = \"net.pipe\";\n exports.TCP = \"net.tcp\";\n exports.NEWS = \"news\";\n exports.NNTP = \"nntp\";\n exports.TELNET = \"telnet\";\n exports.UUID = \"uuid\";\n exports.All = Object.freeze([\n exports.File, exports.FTP, exports.GOPHER, exports.HTTP, exports.HTTPS, exports.LDAP, exports.MAILTO, exports.PIPE, exports.TCP, exports.NEWS, exports.NNTP, exports.TELNET, exports.UUID\n ]);\n function isValid(scheme) {\n return exports.All.indexOf(scheme) != -1;\n }\n exports.isValid = isValid;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based on: https://msdn.microsoft.com/en-us/library/system.uri.scheme%28v=vs.110%29.aspx\r\n */\r\n\r\nimport * as Scheme from \"./SchemeValue\";\r\nimport {SchemeValue} from \"./SchemeValue\";\r\n\r\n\r\n/**\r\n * The resource is a file on the local computer.\r\n */\r\nexport const File:Scheme.File = \"file\";\r\n\r\n\r\n/**\r\n * The resource is accessed through FTP.\r\n */\r\nexport const FTP:Scheme.FTP = \"ftp\";\r\n\r\n\r\n/**\r\n * The resource is accessed through the Gopher protocol.\r\n */\r\nexport const GOPHER:Scheme.Gopher = \"gopher\";\r\n\r\n\r\n/**\r\n * The resource is accessed through HTTP.\r\n */\r\nexport const HTTP:Scheme.HTTP = \"http\";\r\n\r\n\r\n/**\r\n * The resource is accessed through SSL-encrypted HTTP.\r\n */\r\nexport const HTTPS:Scheme.HTTPS = \"https\";\r\n\r\n\r\n/**\r\n * The resource is accessed through the LDAP protocol.\r\n */\r\nexport const LDAP:Scheme.LDAP = \"ldap\";\r\n\r\n\r\n/**\r\n * The resource is an e-mail address and accessed through the SMTP protocol.\r\n */\r\nexport const MAILTO:Scheme.MailTo = \"mailto\";\r\n\r\n\r\n/**\r\n * The resource is accessed through a named pipe.\r\n */\r\nexport const PIPE:Scheme.Pipe = \"net.pipe\";\r\n\r\n\r\n/**\r\n * The resource is accessed from TCP endpoint.\r\n */\r\nexport const TCP:Scheme.TCP = \"net.tcp\";\r\n\r\n\r\n/**\r\n * The resource is accessed through the NNTP protocol.\r\n */\r\nexport const NEWS:Scheme.NNTP = \"news\";\r\n\r\n\r\n/**\r\n * The resource is accessed through the NNTP protocol.\r\n */\r\nexport const NNTP:Scheme.NNTP = \"nntp\";\r\n\r\n\r\n/**\r\n * The resource is accessed through the TELNET protocol.\r\n */\r\nexport const TELNET:Scheme.Telnet = \"telnet\";\r\n\r\n/**\r\n * The resource is accessed through a unique UUID endpoint name for communicating with a service.\r\n */\r\nexport const UUID:Scheme.UUID = \"uuid\";\r\n\r\n/**\r\n * An index of possible values to validate against.\r\n * @type {Array}\r\n */\r\nexport const All:SchemeValue[] = Object.freeze([\r\n\tFile, FTP, GOPHER, HTTP, HTTPS, LDAP, MAILTO, PIPE, TCP, NEWS, NNTP, TELNET, UUID\r\n]);\r\n\r\nexport function isValid(scheme:string):scheme is SchemeValue {\r\n\treturn All.indexOf(scheme)!=-1;\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Uri/Uri.d.ts b/dist/umd.min/System/Uri/Uri.d.ts index b48843c9..07123b10 100644 --- a/dist/umd.min/System/Uri/Uri.d.ts +++ b/dist/umd.min/System/Uri/Uri.d.ts @@ -1,14 +1,15 @@ -/// -/// -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based on: https://en.wikipedia.org/wiki/Uniform_Resource_Identifier */ -import UriScheme from "../Uri/Scheme"; -export default class Uri implements IUri, IEquatable { +import * as QueryParam from "./QueryParam"; +import { SchemeValue } from "./SchemeValue"; +import { IUri } from "./IUri"; +import { IMap } from "../Collections/Dictionaries/IDictionary"; +import { Primitive } from "../Primitive"; +import { IEquatable } from "../IEquatable"; +export declare class Uri implements IUri, IEquatable { scheme: SchemeValue; userInfo: string; host: string; @@ -17,14 +18,14 @@ export default class Uri implements IUri, IEquatable { query: string; fragment: string; queryParams: IMap; - constructor(scheme: UriScheme | SchemeValue, userInfo: string, host: string, port: number, path: string, query?: QueryParamsConvertible, fragment?: string); + constructor(scheme: SchemeValue, userInfo: string, host: string, port: number, path: string, query?: QueryParam.Convertible, fragment?: string); equals(other: IUri): boolean; static from(uri: string | IUri, defaults?: IUri): Uri; static parse(url: string, throwIfInvalid?: boolean): IUri; static tryParse(url: string, out: (result: IUri) => void): boolean; static copyOf(map: IUri): IUri; copyTo(map: IUri): IUri; - updateQuery(query: QueryParamsConvertible): Uri; + updateQuery(query: QueryParam.Convertible): Uri; protected getAbsoluteUri(): string; protected getAuthority(): string; protected getPathAndQuery(): string; @@ -47,3 +48,4 @@ export declare enum Fields { query = 5, fragment = 6, } +export default Uri; diff --git a/dist/umd.min/System/Uri/Uri.js b/dist/umd.min/System/Uri/Uri.js index be2e1261..0d81b19b 100644 --- a/dist/umd.min/System/Uri/Uri.js +++ b/dist/umd.min/System/Uri/Uri.js @@ -3,5 +3,5 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Based on: https://en.wikipedia.org/wiki/Uniform_Resource_Identifier */ -!function(t){if("object"==typeof module&&"object"==typeof module.exports){var e=t(require,exports);void 0!==e&&(module.exports=e)}else"function"==typeof define&&define.amd&&define(["require","exports","../Types","../Uri/QueryParams","../Text/Utility","../Uri/Scheme","../Exceptions/ArgumentException","../Exceptions/ArgumentOutOfRangeException"],t)}(function(t,e){"use strict";function r(t,e){var r,n=0;for(e||(e={});r=v[n++];){var i=t[r];i&&(e[r]=i)}return e}function n(t){var e=t;if(p["default"].isString(e)){if(!e)return g;if(e=d["default"][h.trim(e).toLowerCase().replace(/[^a-z0-9+.-]+$/g,q)],isNaN(e))throw new y["default"]("scheme",t,"Invalid scheme.")}if(p["default"].isNumber(e,!1)){if(e=d["default"][e],!e)throw new y["default"]("scheme",t,"Invalid scheme.");return e}return g}function i(t){if(0===t)return t;if(!t)return null;var e;if(p["default"].isNumber(t,!0)){if(e=t,e>=0&&isFinite(e))return e}else if(p["default"].isString(t)&&(e=parseInt(t))&&!isNaN(e))return i(e);throw new m["default"]("port","invalid value")}function u(t){if(!t.host){if(t.userInfo)throw new m["default"]("host","Cannot include user info when there is no host.");if(p["default"].isNumber(t.port,!1))throw new m["default"]("host","Cannot include a port when there is no host.")}var e=t.host||q;return e&&(t.userInfo&&(e=t.userInfo+N+e),isNaN(t.port)||(e+=":"+t.port),e=x+e),e}function o(t){return t&&(0!==t.indexOf(O)?O:q)+t}function s(t){return t&&(0!==t.indexOf(U)?U:q)+t}function f(t){var e=t.path,r=t.query;return q+(e||q)+(o(r)||q)}function a(t){var e=n(t.scheme),r=u(t),i=f(t),o=s(t.fragment),a=q+(e&&e+":"||q)+(r||q),l=q+(i||q)+(o||q);if(a&&l&&e&&!r)throw new m["default"]("authority","Cannot format schemed Uri with missing authority.");return a&&i&&0!==i.indexOf(w)&&(l=w+l),a+l}function l(t,e){if(!t)return new m["default"]("url","Nothing to parse.");var i,u={};if(i=t.indexOf(U),-1!=i&&(u.fragment=t.substring(i+1)||g,t=t.substring(0,i)),i=t.indexOf(O),-1!=i&&(u.query=t.substring(i+1)||g,t=t.substring(0,i)),i=t.indexOf(x),-1!=i){var o=h.trim(t.substring(0,i)),s=/:$/;if(!s.test(o))return new m["default"]("url","Scheme was improperly formatted");o=h.trim(o.replace(s,q));try{u.scheme=n(o)||g}catch(f){return f}t=t.substring(i+2)}if(i=t.indexOf(w),-1!=i&&(u.path=t.substring(i),t=t.substring(0,i)),i=t.indexOf(N),-1!=i&&(u.userInfo=t.substring(0,i)||g,t=t.substring(i+1)),i=t.indexOf(":"),-1!=i){var a=parseInt(h.trim(t.substring(i+1)));if(isNaN(a))return new m["default"]("url","Port was invalid.");u.port=a,t=t.substring(0,i)}return t=h.trim(t),t&&(u.host=t),e(r(u)),null}var p=t("../Types"),c=t("../Uri/QueryParams"),h=t("../Text/Utility"),d=t("../Uri/Scheme"),m=t("../Exceptions/ArgumentException"),y=t("../Exceptions/ArgumentOutOfRangeException"),g=void 0,b=function(){function t(t,e,r,u,f,a,l){var h=this;h.scheme=n(t)||null,h.userInfo=e||null,h.host=r||null,h.port=i(u),h.authority=h.getAuthority()||null,h.path=f||null,p["default"].isString(a)||(a=c.encode(a)),h.query=o(a)||null,Object.freeze(h.queryParams=h.query?c.parseToMap(h.query):{}),h.pathAndQuery=h.getPathAndQuery()||null,h.fragment=s(l)||null,h.absoluteUri=h.getAbsoluteUri(),h.baseUri=h.absoluteUri.replace(/[?#].*/,""),Object.freeze(h)}return t.prototype.equals=function(e){return this===e||this.absoluteUri==t.toString(e)},t.from=function(e,r){var n=!e||p["default"].isString(e)?t.parse(e):e;return new t(n.scheme||r&&r.scheme,n.userInfo||r&&r.userInfo,n.host||r&&r.host,isNaN(n.port)?r&&r.port:n.port,n.path||r&&r.path,n.query||r&&r.query,n.fragment||r&&r.fragment)},t.parse=function(t,e){void 0===e&&(e=!0);var r=null,n=l(t,function(t){r=t});if(e&&n)throw n;return r},t.tryParse=function(t,e){return!l(t,e)},t.copyOf=function(t){return r(t)},t.prototype.copyTo=function(t){return r(this,t)},t.prototype.updateQuery=function(e){var r=this.toMap();return r.query=e,t.from(r)},t.prototype.getAbsoluteUri=function(){return a(this)},t.prototype.getAuthority=function(){return u(this)},t.prototype.getPathAndQuery=function(){return f(this)},Object.defineProperty(t.prototype,"pathSegments",{get:function(){return this.path.match(/^[\/]|[^\/]*[\/]|[^\/]+$/g)},enumerable:!0,configurable:!0}),t.prototype.toMap=function(){return this.copyTo({})},t.prototype.toString=function(){return this.absoluteUri},t.toString=function(e){return e instanceof t?e.absoluteUri:a(e)},t.getAuthority=function(t){return u(t)},t}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=b,function(t){t[t.scheme=0]="scheme",t[t.userInfo=1]="userInfo",t[t.host=2]="host",t[t.port=3]="port",t[t.path=4]="path",t[t.query=5]="query",t[t.fragment=6]="fragment"}(e.Fields||(e.Fields={}));var v=e.Fields;Object.freeze(v);var w="/",x="//",O="?",U="#",q="",N="@"}); +!function(t){if("object"==typeof module&&"object"==typeof module.exports){var e=t(require,exports);void 0!==e&&(module.exports=e)}else"function"==typeof define&&define.amd&&define(["require","exports","../Types","./QueryParams","./Scheme","../Text/Utility","../Exceptions/ArgumentException","../Exceptions/ArgumentOutOfRangeException"],t)}(function(t,e){"use strict";function r(t,e){var r,n=0;for(e||(e={});r=x[n++];){var i=t[r];i&&(e[r]=i)}return e}function n(t){var e=t;if(c.Type.isString(e)){if(!e)return null;if(e=g.trim(e).toLowerCase().replace(/[^a-z0-9+.-]+$/g,E),!e)return null;if(l.isValid(e))return e}else if(null===e||void 0===e)return e;throw new y.ArgumentOutOfRangeException("scheme",t,"Invalid scheme.")}function i(t){if(0===t)return t;if(!t)return null;var e;if(c.Type.isNumber(t,!0)){if(e=t,e>=0&&isFinite(e))return e}else if(c.Type.isString(t)&&(e=parseInt(t))&&!isNaN(e))return i(e);throw new m.ArgumentException("port","invalid value")}function u(t){if(!t.host){if(t.userInfo)throw new m.ArgumentException("host","Cannot include user info when there is no host.");if(c.Type.isNumber(t.port,!1))throw new m.ArgumentException("host","Cannot include a port when there is no host.")}var e=t.host||E;return e&&(t.userInfo&&(e=t.userInfo+q+e),isNaN(t.port)||(e+=":"+t.port),e=w+e),e}function o(t){return t&&(0!==t.indexOf(O)?O:E)+t}function s(t){return t&&(0!==t.indexOf(A)?A:E)+t}function f(t){var e=t.path,r=t.query;return E+(e||E)+(o(r)||E)}function a(t){var e=n(t.scheme),r=u(t),i=f(t),o=s(t.fragment),a=E+(e&&e+":"||E)+(r||E),p=E+(i||E)+(o||E);if(a&&p&&e&&!r)throw new m.ArgumentException("authority","Cannot format schemed Uri with missing authority.");return a&&i&&0!==i.indexOf(v)&&(p=v+p),a+p}function p(t,e){if(!t)return new m.ArgumentException("url","Nothing to parse.");var i,u={};if(i=t.indexOf(A),-1!=i&&(u.fragment=t.substring(i+1)||d,t=t.substring(0,i)),i=t.indexOf(O),-1!=i&&(u.query=t.substring(i+1)||d,t=t.substring(0,i)),i=t.indexOf(w),-1!=i){var o=g.trim(t.substring(0,i)),s=/:$/;if(!s.test(o))return new m.ArgumentException("url","Scheme was improperly formatted");o=g.trim(o.replace(s,E));try{u.scheme=n(o)||d}catch(f){return f}t=t.substring(i+2)}if(i=t.indexOf(v),-1!=i&&(u.path=t.substring(i),t=t.substring(0,i)),i=t.indexOf(q),-1!=i&&(u.userInfo=t.substring(0,i)||d,t=t.substring(i+1)),i=t.indexOf(":"),-1!=i){var a=parseInt(g.trim(t.substring(i+1)));if(isNaN(a))return new m.ArgumentException("url","Port was invalid.");u.port=a,t=t.substring(0,i)}return t=g.trim(t),t&&(u.host=t),e(r(u)),null}var c=t("../Types"),h=t("./QueryParams"),l=t("./Scheme"),g=t("../Text/Utility"),m=t("../Exceptions/ArgumentException"),y=t("../Exceptions/ArgumentOutOfRangeException"),d=void 0,b=function(){function t(t,e,r,u,f,a,p){var l=this;l.scheme=n(t)||null,l.userInfo=e||null,l.host=r||null,l.port=i(u),l.authority=l.getAuthority()||null,l.path=f||null,c.Type.isString(a)||(a=h.encode(a)),l.query=o(a)||null,Object.freeze(l.queryParams=l.query?h.parseToMap(l.query):{}),l.pathAndQuery=l.getPathAndQuery()||null,l.fragment=s(p)||null,l.absoluteUri=l.getAbsoluteUri(),l.baseUri=l.absoluteUri.replace(/[?#].*/,""),Object.freeze(l)}return t.prototype.equals=function(e){return this===e||this.absoluteUri==t.toString(e)},t.from=function(e,r){var n=!e||c.Type.isString(e)?t.parse(e):e;return new t(n.scheme||r&&r.scheme,n.userInfo||r&&r.userInfo,n.host||r&&r.host,isNaN(n.port)?r&&r.port:n.port,n.path||r&&r.path,n.query||r&&r.query,n.fragment||r&&r.fragment)},t.parse=function(t,e){void 0===e&&(e=!0);var r=null,n=p(t,function(t){r=t});if(e&&n)throw n;return r},t.tryParse=function(t,e){return!p(t,e)},t.copyOf=function(t){return r(t)},t.prototype.copyTo=function(t){return r(this,t)},t.prototype.updateQuery=function(e){var r=this.toMap();return r.query=e,t.from(r)},t.prototype.getAbsoluteUri=function(){return a(this)},t.prototype.getAuthority=function(){return u(this)},t.prototype.getPathAndQuery=function(){return f(this)},Object.defineProperty(t.prototype,"pathSegments",{get:function(){return this.path.match(/^[\/]|[^\/]*[\/]|[^\/]+$/g)},enumerable:!0,configurable:!0}),t.prototype.toMap=function(){return this.copyTo({})},t.prototype.toString=function(){return this.absoluteUri},t.toString=function(e){return e instanceof t?e.absoluteUri:a(e)},t.getAuthority=function(t){return u(t)},t}();e.Uri=b,function(t){t[t.scheme=0]="scheme",t[t.userInfo=1]="userInfo",t[t.host=2]="host",t[t.port=3]="port",t[t.path=4]="path",t[t.query=5]="query",t[t.fragment=6]="fragment"}(e.Fields||(e.Fields={}));var x=e.Fields;Object.freeze(x);var v="/",w="//",O=h.Separator.Query,A="#",E="",q="@";Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=b}); //# sourceMappingURL=Uri.js.map diff --git a/dist/umd.min/System/Uri/Uri.js.map b/dist/umd.min/System/Uri/Uri.js.map index a6bdb5f8..32f1cf95 100644 --- a/dist/umd.min/System/Uri/Uri.js.map +++ b/dist/umd.min/System/Uri/Uri.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Uri/Uri.js","System/Uri/Uri.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","copyUri","from","to","field","i","Fields","value","getScheme","scheme","s","Types_1","isString","VOID0","Scheme_1","Utility_1","trim","toLowerCase","replace","EMPTY","isNaN","ArgumentOutOfRangeException_1","isNumber","getPort","port","p","isFinite","parseInt","ArgumentException_1","getAuthority","uri","host","userInfo","result","AT","SLASH2","formatQuery","query","indexOf","QM","formatFragment","fragment","HASH","getPathAndQuery","path","uriToString","authority","pathAndQuery","part1","part2","SLASH","tryParse","url","out","substring","c","test","ex","QueryParams","Uri","_","this","encode","Object","freeze","queryParams","parseToMap","absoluteUri","getAbsoluteUri","baseUri","prototype","equals","other","toString","defaults","u","parse","throwIfInvalid","copyOf","map","copyTo","updateQuery","toMap","defineProperty","get","match","enumerable","configurable"],"mappings":"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","file":"System/Uri/Uri.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based on: https://en.wikipedia.org/wiki/Uniform_Resource_Identifier\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../Types\", \"../Uri/QueryParams\", \"../Text/Utility\", \"../Uri/Scheme\", \"../Exceptions/ArgumentException\", \"../Exceptions/ArgumentOutOfRangeException\"], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var Types_1 = require(\"../Types\");\n var QueryParams = require(\"../Uri/QueryParams\");\n var Utility_1 = require(\"../Text/Utility\");\n var Scheme_1 = require(\"../Uri/Scheme\");\n var ArgumentException_1 = require(\"../Exceptions/ArgumentException\");\n var ArgumentOutOfRangeException_1 = require(\"../Exceptions/ArgumentOutOfRangeException\");\n var VOID0 = void (0);\n var Uri = (function () {\n function Uri(scheme, userInfo, host, port, path, query, fragment) {\n var _ = this;\n _.scheme = getScheme(scheme) || null;\n _.userInfo = userInfo || null;\n _.host = host || null;\n _.port = getPort(port);\n _.authority = _.getAuthority() || null;\n _.path = path || null;\n if (!Types_1.default.isString(query))\n query = QueryParams.encode(query);\n _.query = formatQuery(query) || null;\n Object.freeze(_.queryParams\n = _.query\n ? QueryParams.parseToMap(_.query)\n : {});\n _.pathAndQuery = _.getPathAndQuery() || null;\n _.fragment = formatFragment(fragment) || null;\n _.absoluteUri = _.getAbsoluteUri();\n _.baseUri = _.absoluteUri.replace(/[?#].*/, '');\n Object.freeze(_);\n }\n Uri.prototype.equals = function (other) {\n return this === other || this.absoluteUri == Uri.toString(other);\n };\n Uri.from = function (uri, defaults) {\n var u = (!uri || Types_1.default.isString(uri))\n ? Uri.parse(uri) : uri;\n return new Uri(u.scheme || defaults && defaults.scheme, u.userInfo || defaults && defaults.userInfo, u.host || defaults && defaults.host, isNaN(u.port) ? defaults && defaults.port : u.port, u.path || defaults && defaults.path, u.query || defaults && defaults.query, u.fragment || defaults && defaults.fragment);\n };\n Uri.parse = function (url, throwIfInvalid) {\n if (throwIfInvalid === void 0) { throwIfInvalid = true; }\n var result = null;\n var ex = tryParse(url, function (out) { result = out; });\n if (throwIfInvalid && ex)\n throw ex;\n return result;\n };\n Uri.tryParse = function (url, out) {\n return !tryParse(url, out);\n };\n Uri.copyOf = function (map) {\n return copyUri(map);\n };\n Uri.prototype.copyTo = function (map) {\n return copyUri(this, map);\n };\n Uri.prototype.updateQuery = function (query) {\n var map = this.toMap();\n map.query = query;\n return Uri.from(map);\n };\n Uri.prototype.getAbsoluteUri = function () {\n return uriToString(this);\n };\n Uri.prototype.getAuthority = function () {\n return getAuthority(this);\n };\n Uri.prototype.getPathAndQuery = function () {\n return getPathAndQuery(this);\n };\n Object.defineProperty(Uri.prototype, \"pathSegments\", {\n get: function () {\n return this.path.match(/^[/]|[^/]*[/]|[^/]+$/g);\n },\n enumerable: true,\n configurable: true\n });\n Uri.prototype.toMap = function () {\n return this.copyTo({});\n };\n Uri.prototype.toString = function () {\n return this.absoluteUri;\n };\n Uri.toString = function (uri) {\n return uri instanceof Uri\n ? uri.absoluteUri\n : uriToString(uri);\n };\n Uri.getAuthority = function (uri) {\n return getAuthority(uri);\n };\n return Uri;\n }());\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Uri;\n (function (Fields) {\n Fields[Fields[\"scheme\"] = 0] = \"scheme\";\n Fields[Fields[\"userInfo\"] = 1] = \"userInfo\";\n Fields[Fields[\"host\"] = 2] = \"host\";\n Fields[Fields[\"port\"] = 3] = \"port\";\n Fields[Fields[\"path\"] = 4] = \"path\";\n Fields[Fields[\"query\"] = 5] = \"query\";\n Fields[Fields[\"fragment\"] = 6] = \"fragment\";\n })(exports.Fields || (exports.Fields = {}));\n var Fields = exports.Fields;\n Object.freeze(Fields);\n function copyUri(from, to) {\n var i = 0, field;\n if (!to)\n to = {};\n while (field = Fields[i++]) {\n var value = from[field];\n if (value)\n to[field] = value;\n }\n return to;\n }\n var SLASH = '/', SLASH2 = '//', QM = '?', HASH = '#', EMPTY = '', AT = '@';\n function getScheme(scheme) {\n var s = scheme;\n if (Types_1.default.isString(s)) {\n if (!s)\n return VOID0;\n s = Scheme_1.default[Utility_1.trim(s).toLowerCase().replace(/[^a-z0-9+.-]+$/g, EMPTY)];\n if (isNaN(s))\n throw new ArgumentOutOfRangeException_1.default('scheme', scheme, 'Invalid scheme.');\n }\n if (Types_1.default.isNumber(s, false)) {\n s = Scheme_1.default[s];\n if (!s)\n throw new ArgumentOutOfRangeException_1.default('scheme', scheme, 'Invalid scheme.');\n return s;\n }\n return VOID0;\n }\n function getPort(port) {\n if (port === 0)\n return port;\n if (!port)\n return null;\n var p;\n if (Types_1.default.isNumber(port, true)) {\n p = port;\n if (p >= 0 && isFinite(p))\n return p;\n }\n else if (Types_1.default.isString(port) && (p = parseInt(port)) && !isNaN(p)) {\n return getPort(p);\n }\n throw new ArgumentException_1.default(\"port\", \"invalid value\");\n }\n function getAuthority(uri) {\n if (!uri.host) {\n if (uri.userInfo)\n throw new ArgumentException_1.default('host', 'Cannot include user info when there is no host.');\n if (Types_1.default.isNumber(uri.port, false))\n throw new ArgumentException_1.default('host', 'Cannot include a port when there is no host.');\n }\n var result = uri.host || EMPTY;\n if (result) {\n if (uri.userInfo)\n result = uri.userInfo + AT + result;\n if (!isNaN(uri.port))\n result += ':' + uri.port;\n result = SLASH2 + result;\n }\n return result;\n }\n function formatQuery(query) {\n return query && ((query.indexOf(QM) !== 0 ? QM : EMPTY) + query);\n }\n function formatFragment(fragment) {\n return fragment && ((fragment.indexOf(HASH) !== 0 ? HASH : EMPTY) + fragment);\n }\n function getPathAndQuery(uri) {\n var path = uri.path, query = uri.query;\n return EMPTY\n + (path || EMPTY)\n + (formatQuery(query) || EMPTY);\n }\n function uriToString(uri) {\n var scheme = getScheme(uri.scheme), authority = getAuthority(uri), pathAndQuery = getPathAndQuery(uri), fragment = formatFragment(uri.fragment);\n var part1 = EMPTY\n + ((scheme && (scheme + ':')) || EMPTY)\n + (authority || EMPTY);\n var part2 = EMPTY\n + (pathAndQuery || EMPTY)\n + (fragment || EMPTY);\n if (part1 && part2 && scheme && !authority)\n throw new ArgumentException_1.default('authority', \"Cannot format schemed Uri with missing authority.\");\n if (part1 && pathAndQuery && pathAndQuery.indexOf(SLASH) !== 0)\n part2 = SLASH + part2;\n return part1 + part2;\n }\n function tryParse(url, out) {\n if (!url)\n return new ArgumentException_1.default('url', 'Nothing to parse.');\n var i, result = {};\n i = url.indexOf(HASH);\n if (i != -1) {\n result.fragment = url.substring(i + 1) || VOID0;\n url = url.substring(0, i);\n }\n i = url.indexOf(QM);\n if (i != -1) {\n result.query = url.substring(i + 1) || VOID0;\n url = url.substring(0, i);\n }\n i = url.indexOf(SLASH2);\n if (i != -1) {\n var scheme = Utility_1.trim(url.substring(0, i)), c = /:$/;\n if (!c.test(scheme))\n return new ArgumentException_1.default('url', 'Scheme was improperly formatted');\n scheme = Utility_1.trim(scheme.replace(c, EMPTY));\n try {\n result.scheme = getScheme(scheme) || VOID0;\n }\n catch (ex) {\n return ex;\n }\n url = url.substring(i + 2);\n }\n i = url.indexOf(SLASH);\n if (i != -1) {\n result.path = url.substring(i);\n url = url.substring(0, i);\n }\n i = url.indexOf(AT);\n if (i != -1) {\n result.userInfo = url.substring(0, i) || VOID0;\n url = url.substring(i + 1);\n }\n i = url.indexOf(':');\n if (i != -1) {\n var port = parseInt(Utility_1.trim(url.substring(i + 1)));\n if (isNaN(port))\n return new ArgumentException_1.default('url', 'Port was invalid.');\n result.port = port;\n url = url.substring(0, i);\n }\n url = Utility_1.trim(url);\n if (url)\n result.host = url;\n out(copyUri(result));\n return null;\n }\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based on: https://en.wikipedia.org/wiki/Uniform_Resource_Identifier\r\n */\r\n\r\n///\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport Type from \"../Types\";\r\nimport * as QueryParams from \"../Uri/QueryParams\";\r\nimport {trim} from \"../Text/Utility\";\r\nimport UriScheme from \"../Uri/Scheme\";\r\nimport Exception from \"../Exception\";\r\nimport ArgumentException from \"../Exceptions/ArgumentException\";\r\nimport ArgumentOutOfRangeException from \"../Exceptions/ArgumentOutOfRangeException\";\r\n\r\nconst VOID0:any = void(0);\r\n\r\n/**\r\n * Provides an read-only model representation of a uniform resource identifier (URI) and easy access to the parts of the URI.\r\n *\r\n * The read-only model (frozen) is easier for debugging than exposing accessors for each property.\r\n * ICloneable<Uri> is not used to prevent unnecessary copying of values that won't change.\r\n */\r\nexport default class Uri implements IUri, IEquatable\r\n{\r\n\r\n\tscheme:SchemeValue;\r\n\tuserInfo:string;\r\n\thost:string;\r\n\tport:number;\r\n\tpath:string;\r\n\tquery:string;\r\n\tfragment:string;\r\n\r\n\tqueryParams:IMap;\r\n\r\n\t/**\r\n\t * @param scheme The user name, password, or other user-specific information associated with the specified URI.\r\n\t * @param userInfo The host component of this instance.\r\n\t * @param host The port number of this URI.\r\n\t * @param port The absolute path of the URI.\r\n\t * @param path The absolute path of the URI.\r\n\t * @param query Any query information included in the specified URI.\r\n\t * @param fragment The escaped URI fragment.\r\n\t */\r\n\tconstructor(\r\n\t\tscheme:UriScheme|SchemeValue,\r\n\t\tuserInfo:string,\r\n\t\thost:string,\r\n\t\tport:number,\r\n\t\tpath:string,\r\n\t\tquery?:QueryParamsConvertible,\r\n\t\tfragment?:string)\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.scheme = getScheme(scheme) || null;\r\n\t\t_.userInfo = userInfo || null;\r\n\t\t_.host = host || null;\r\n\r\n\t\t_.port = getPort(port);\r\n\r\n\t\t_.authority = _.getAuthority() || null;\r\n\r\n\t\t_.path = path || null;\r\n\r\n\r\n\t\tif(!Type.isString(query))\r\n\t\t\tquery = QueryParams.encode([]>query);\r\n\r\n\t\t_.query = formatQuery(query) || null;\r\n\t\tObject.freeze(_.queryParams\r\n\t\t\t= _.query\r\n\t\t\t? QueryParams.parseToMap(_.query)\r\n\t\t\t: {});\r\n\r\n\t\t_.pathAndQuery = _.getPathAndQuery() || null;\r\n\r\n\t\t_.fragment = formatFragment(fragment) || null;\r\n\r\n\t\t// This should validate the uri...\r\n\t\t_.absoluteUri = _.getAbsoluteUri();\r\n\r\n\t\t_.baseUri = _.absoluteUri.replace(/[?#].*/, '');\r\n\r\n\t\t// Intended to be read-only. Call .toMap() to get a writable copy.\r\n\t\tObject.freeze(_);\r\n\t}\r\n\r\n\t/**\r\n\t * Compares the values of another IUri via toString comparison.\r\n\t * @param other\r\n\t * @returns {boolean}\r\n\t */\r\n\tequals(other:IUri):boolean\r\n\t{\r\n\t\treturn this===other || this.absoluteUri==Uri.toString(other);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Parses or clones values from existing Uri values.\r\n\t * @param uri\r\n\t * @param defaults\r\n\t * @returns {Uri}\r\n\t */\r\n\tstatic from(uri:string|IUri, defaults?:IUri):Uri\r\n\t{\r\n\t\tvar u = (!uri || Type.isString(uri))\r\n\t\t\t? Uri.parse(uri) : uri;\r\n\r\n\t\treturn new Uri(\r\n\t\t\tu.scheme || defaults && defaults.scheme,\r\n\t\t\tu.userInfo || defaults && defaults.userInfo,\r\n\t\t\tu.host || defaults && defaults.host,\r\n\t\t\tisNaN(u.port) ? defaults && defaults.port : u.port,\r\n\t\t\tu.path || defaults && defaults.path,\r\n\t\t\tu.query || defaults && defaults.query,\r\n\t\t\tu.fragment || defaults && defaults.fragment\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * Parses a URL into it's components.\r\n\t * @param url The url to parse.\r\n\t * @param throwIfInvalid Defaults to true.\r\n\t * @returns {IUri} Returns a map of the values or *null* if invalid and *throwIfInvalid* is false.\r\n\t */\r\n\tstatic parse(url:string, throwIfInvalid:boolean = true):IUri\r\n\t{\r\n\t\tvar result:IUri = null;\r\n\t\tvar ex = tryParse(url, (out)=> {result = out;});\r\n\t\tif(throwIfInvalid && ex) throw ex;\r\n\t\treturn result;\r\n\t}\r\n\r\n\t/**\r\n\t * Parses a URL into it's components.\r\n\t * @param url The url to parse.\r\n\t * @param out A delegate to capture the value.\r\n\t * @returns {boolean} True if valid. False if invalid.\r\n\t */\r\n\tstatic tryParse(url:string, out:(result:IUri)=>void):boolean\r\n\t{\r\n\t\treturn !tryParse(url, out); // return type is Exception.\r\n\t}\r\n\r\n\tstatic copyOf(map:IUri):IUri\r\n\t{\r\n\t\treturn copyUri(map);\r\n\t}\r\n\r\n\tcopyTo(map:IUri):IUri\r\n\t{\r\n\t\treturn copyUri(this, map);\r\n\t}\r\n\r\n\tupdateQuery(query:QueryParamsConvertible):Uri\r\n\t{\r\n\t\tvar map = this.toMap();\r\n\t\tmap.query = query;\r\n\t\treturn Uri.from(map);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Is provided for sub classes to override this value.\r\n\t */\r\n\tprotected getAbsoluteUri():string\r\n\t{\r\n\t\treturn uriToString(this);\r\n\t}\r\n\r\n\t/**\r\n\t * Is provided for sub classes to override this value.\r\n\t */\r\n\tprotected getAuthority():string\r\n\t{\r\n\t\treturn getAuthority(this);\r\n\t}\r\n\r\n\t/**\r\n\t * Is provided for sub classes to override this value.\r\n\t */\r\n\tprotected getPathAndQuery():string\r\n\t{\r\n\t\treturn getPathAndQuery(this);\r\n\t}\r\n\r\n\t/**\r\n\t * The absolute URI.\r\n\t */\r\n\tabsoluteUri:string;\r\n\r\n\t/**\r\n\t * Gets the Domain Name System (DNS) host name or IP address and the port number for a server.\r\n\t */\r\n\tauthority:string;\r\n\r\n\t/**\r\n\t * Gets the path and Query properties separated by a question mark (?).\r\n\t */\r\n\tpathAndQuery:string;\r\n\r\n\t/**\r\n\t * Gets the full path without the query or fragment.\r\n\t */\r\n\tbaseUri:string;\r\n\r\n\t/**\r\n\t * The segments that represent a path.
\r\n\t * https://msdn.microsoft.com/en-us/library/system.uri.segments%28v=vs.110%29.aspx\r\n\t *\r\n\t *
Example:
\r\n\t * If the path value equals: ```/tree/node/index.html```
\r\n\t * The result will be: ```['/','tree/','node/','index.html']```\r\n\t * @returns {string[]}\r\n\t */\r\n\tget pathSegments():string[]\r\n\t{\r\n\t\treturn this.path.match(/^[/]|[^/]*[/]|[^/]+$/g);\r\n\t}\r\n\r\n\t/**\r\n\t * Creates a writable copy.\r\n\t * @returns {IUri}\r\n\t */\r\n\ttoMap():IUri\r\n\t{\r\n\t\treturn this.copyTo({});\r\n\t}\r\n\r\n\t/**\r\n\t * @returns {string} The full absolute uri.\r\n\t */\r\n\ttoString():string\r\n\t{\r\n\t\treturn this.absoluteUri;\r\n\t}\r\n\r\n\t/**\r\n\t * Properly converts an existing URI to a string.\r\n\t * @param uri\r\n\t * @returns {string}\r\n\t */\r\n\tstatic toString(uri:IUri):string\r\n\t{\r\n\t\treturn uri instanceof Uri\r\n\t\t\t? (uri).absoluteUri\r\n\t\t\t: uriToString(uri);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the authority segment of an URI.\r\n\t * @param uri\r\n\t * @returns {string}\r\n\t */\r\n\tstatic getAuthority(uri:IUri):string\r\n\t{\r\n\t\treturn getAuthority(uri);\r\n\t}\r\n\r\n\r\n}\r\n\r\nexport enum Fields {\r\n\tscheme,\r\n\tuserInfo,\r\n\thost,\r\n\tport,\r\n\tpath,\r\n\tquery,\r\n\tfragment\r\n}\r\nObject.freeze(Fields);\r\n\r\nfunction copyUri(from:IUri, to?:IUri)\r\n{\r\n\tvar i = 0, field:string;\r\n\tif(!to) to = {};\r\n\twhile(field = Fields[i++])\r\n\t{\r\n\t\tvar value = (from)[field];\r\n\t\tif(value) (to)[field] = value;\r\n\t}\r\n\treturn to;\r\n}\r\n\r\nconst SLASH = '/', SLASH2 = '//', QM = '?', HASH = '#', EMPTY = '', AT = '@';\r\n\r\nfunction getScheme(scheme:UriScheme|string):SchemeValue\r\n{\r\n\tvar s:any = scheme;\r\n\tif(Type.isString(s))\r\n\t{\r\n\t\tif(!s) return VOID0;\r\n\r\n\t\ts = UriScheme[trim(s).toLowerCase().replace(/[^a-z0-9+.-]+$/g, EMPTY)];\r\n\r\n\t\tif(isNaN(s))\r\n\t\t\tthrow new ArgumentOutOfRangeException('scheme', scheme, 'Invalid scheme.');\r\n\t}\r\n\r\n\tif(Type.isNumber(s, false))\r\n\t{\r\n\t\ts = UriScheme[s];\r\n\t\tif(!s)\r\n\t\t\tthrow new ArgumentOutOfRangeException('scheme', scheme, 'Invalid scheme.');\r\n\r\n\t\treturn s;\r\n\t}\r\n\r\n\treturn VOID0;\r\n}\r\n\r\nfunction getPort(port:number|string):number\r\n{\r\n\tif(port===0) return port;\r\n\tif(!port) return null;\r\n\tvar p:number;\r\n\r\n\tif(Type.isNumber(port, true))\r\n\t{\r\n\t\tp = port;\r\n\t\tif(p>=0 && isFinite(p))\r\n\t\t\treturn p;\r\n\t}\r\n\telse if(Type.isString(port) && (p = parseInt(port)) && !isNaN(p))\r\n\t{\r\n\t\treturn getPort(p);\r\n\t}\r\n\r\n\tthrow new ArgumentException(\"port\", \"invalid value\");\r\n}\r\n\r\nfunction getAuthority(uri:IUri):string\r\n{\r\n\r\n\tif(!uri.host)\r\n\t{\r\n\t\tif(uri.userInfo)\r\n\t\t\tthrow new ArgumentException('host', 'Cannot include user info when there is no host.');\r\n\r\n\t\tif(Type.isNumber(uri.port, false))\r\n\t\t\tthrow new ArgumentException('host', 'Cannot include a port when there is no host.');\r\n\t}\r\n\r\n\t/*\r\n\t * [//[user:password@]host[:port]]\r\n\t */\r\n\r\n\tvar result = uri.host || EMPTY;\r\n\r\n\tif(result)\r\n\t{\r\n\t\tif(uri.userInfo) result = uri.userInfo + AT + result;\r\n\t\tif(!isNaN(uri.port)) result += ':' + uri.port;\r\n\t\tresult = SLASH2 + result;\r\n\t}\r\n\r\n\treturn result;\r\n}\r\n\r\nfunction formatQuery(query:string):string\r\n{\r\n\treturn query && ((query.indexOf(QM)!==0 ? QM : EMPTY) + query);\r\n}\r\n\r\nfunction formatFragment(fragment:string):string\r\n{\r\n\treturn fragment && ((fragment.indexOf(HASH)!==0 ? HASH : EMPTY) + fragment);\r\n}\r\n\r\nfunction getPathAndQuery(uri:IUri):string\r\n{\r\n\r\n\tvar path = uri.path,\r\n\t query = uri.query;\r\n\r\n\treturn EMPTY\r\n\t\t+ (path || EMPTY)\r\n\t\t+ (formatQuery(query) || EMPTY);\r\n\r\n}\r\n\r\nfunction uriToString(uri:IUri):string\r\n{\r\n\t// scheme:[//[user:password@]domain[:port]][/]path[?query][#fragment]\r\n\t// {scheme}{authority}{path}{query}{fragment}\r\n\r\n\tvar scheme = getScheme(uri.scheme),\r\n\t authority = getAuthority(uri),\r\n\t pathAndQuery = getPathAndQuery(uri),\r\n\t fragment = formatFragment(uri.fragment);\r\n\r\n\tvar part1 = EMPTY\r\n\t\t+ ((scheme && (scheme + ':')) || EMPTY)\r\n\t\t+ (authority || EMPTY);\r\n\r\n\tvar part2 = EMPTY\r\n\t\t+ (pathAndQuery || EMPTY)\r\n\t\t+ (fragment || EMPTY);\r\n\r\n\tif(part1 && part2 && scheme && !authority)\r\n\t\tthrow new ArgumentException('authority', \"Cannot format schemed Uri with missing authority.\");\r\n\r\n\tif(part1 && pathAndQuery && pathAndQuery.indexOf(SLASH)!==0)\r\n\t\tpart2 = SLASH + part2;\r\n\r\n\treturn part1 + part2;\r\n\r\n}\r\n\r\n\r\nfunction tryParse(url:string, out:(result:IUri)=>void):Exception\r\n{\r\n\tif(!url)\r\n\t\treturn new ArgumentException('url', 'Nothing to parse.');\r\n\r\n\r\n\t// Could use a regex here, but well follow some rules instead.\r\n\t// The intention is to 'gather' the pieces. This isn't validation (yet).\r\n\r\n\t// scheme:[//[user:password@]domain[:port]][/]path[?query][#fragment]\r\n\tvar i:number, result:IUri = {};\r\n\r\n\t// Anything after the first # is the fragment.\r\n\ti = url.indexOf(HASH);\r\n\tif(i!= -1)\r\n\t{\r\n\t\tresult.fragment = url.substring(i + 1) || VOID0;\r\n\t\turl = url.substring(0, i);\r\n\t}\r\n\r\n\t// Anything after the first ? is the query.\r\n\ti = url.indexOf(QM);\r\n\tif(i!= -1)\r\n\t{\r\n\t\tresult.query = url.substring(i + 1) || VOID0;\r\n\t\turl = url.substring(0, i);\r\n\t}\r\n\r\n\t// Guarantees a separation.\r\n\ti = url.indexOf(SLASH2);\r\n\tif(i!= -1)\r\n\t{\r\n\t\tvar scheme = trim(url.substring(0, i)), c = /:$/;\r\n\t\tif(!c.test(scheme))\r\n\t\t\treturn new ArgumentException('url', 'Scheme was improperly formatted');\r\n\r\n\t\tscheme = trim(scheme.replace(c, EMPTY));\r\n\t\ttry\r\n\t\t{\r\n\t\t\tresult.scheme = getScheme(scheme) || VOID0;\r\n\t\t}\r\n\t\tcatch(ex)\r\n\t\t{\r\n\t\t\treturn ex;\r\n\t\t}\r\n\r\n\t\turl = url.substring(i + 2);\r\n\t}\r\n\r\n\t// Find any path information.\r\n\ti = url.indexOf(SLASH);\r\n\tif(i!= -1)\r\n\t{\r\n\t\tresult.path = url.substring(i);\r\n\t\turl = url.substring(0, i);\r\n\t}\r\n\r\n\t// Separate user info.\r\n\ti = url.indexOf(AT);\r\n\tif(i!= -1)\r\n\t{\r\n\t\tresult.userInfo = url.substring(0, i) || VOID0;\r\n\t\turl = url.substring(i + 1);\r\n\t}\r\n\r\n\t// Remaining is host and port.\r\n\ti = url.indexOf(':');\r\n\tif(i!= -1)\r\n\t{\r\n\t\tvar port = parseInt(trim(url.substring(i + 1)));\r\n\t\tif(isNaN(port))\r\n\t\t\treturn new ArgumentException('url', 'Port was invalid.');\r\n\r\n\t\tresult.port = port;\r\n\t\turl = url.substring(0, i);\r\n\t}\r\n\r\n\turl = trim(url);\r\n\tif(url)\r\n\t\tresult.host = url;\r\n\r\n\tout(copyUri(result));\r\n\r\n\t// null is good! (here)\r\n\treturn null;\r\n\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Uri/Uri.js","System/Uri/Uri.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","copyUri","from","to","field","i","Fields","value","getScheme","scheme","s","Types_1","Type","isString","Utility_1","trim","toLowerCase","replace","EMPTY","Scheme","isValid","ArgumentOutOfRangeException_1","ArgumentOutOfRangeException","getPort","port","p","isNumber","isFinite","parseInt","isNaN","ArgumentException_1","ArgumentException","getAuthority","uri","host","userInfo","result","AT","SLASH2","formatQuery","query","indexOf","QM","formatFragment","fragment","HASH","getPathAndQuery","path","uriToString","authority","pathAndQuery","part1","part2","SLASH","tryParse","url","out","substring","VOID0","c","test","ex","QueryParams","Uri","_","this","encode","Object","freeze","queryParams","parseToMap","absoluteUri","getAbsoluteUri","baseUri","prototype","equals","other","toString","defaults","u","parse","throwIfInvalid","copyOf","map","copyTo","updateQuery","toMap","defineProperty","get","match","enumerable","configurable","Separator","Query"],"mappings":"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","file":"System/Uri/Uri.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Based on: https://en.wikipedia.org/wiki/Uniform_Resource_Identifier\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../Types\", \"./QueryParams\", \"./Scheme\", \"../Text/Utility\", \"../Exceptions/ArgumentException\", \"../Exceptions/ArgumentOutOfRangeException\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var Types_1 = require(\"../Types\");\n var QueryParams = require(\"./QueryParams\");\n var Scheme = require(\"./Scheme\");\n var Utility_1 = require(\"../Text/Utility\");\n var ArgumentException_1 = require(\"../Exceptions/ArgumentException\");\n var ArgumentOutOfRangeException_1 = require(\"../Exceptions/ArgumentOutOfRangeException\");\n var VOID0 = void (0);\n var Uri = (function () {\n function Uri(scheme, userInfo, host, port, path, query, fragment) {\n var _ = this;\n _.scheme = getScheme(scheme) || null;\n _.userInfo = userInfo || null;\n _.host = host || null;\n _.port = getPort(port);\n _.authority = _.getAuthority() || null;\n _.path = path || null;\n if (!Types_1.Type.isString(query))\n query = QueryParams.encode(query);\n _.query = formatQuery(query) || null;\n Object.freeze(_.queryParams\n = _.query\n ? QueryParams.parseToMap(_.query)\n : {});\n _.pathAndQuery = _.getPathAndQuery() || null;\n _.fragment = formatFragment(fragment) || null;\n _.absoluteUri = _.getAbsoluteUri();\n _.baseUri = _.absoluteUri.replace(/[?#].*/, '');\n Object.freeze(_);\n }\n Uri.prototype.equals = function (other) {\n return this === other || this.absoluteUri == Uri.toString(other);\n };\n Uri.from = function (uri, defaults) {\n var u = (!uri || Types_1.Type.isString(uri))\n ? Uri.parse(uri) : uri;\n return new Uri(u.scheme || defaults && defaults.scheme, u.userInfo || defaults && defaults.userInfo, u.host || defaults && defaults.host, isNaN(u.port) ? defaults && defaults.port : u.port, u.path || defaults && defaults.path, u.query || defaults && defaults.query, u.fragment || defaults && defaults.fragment);\n };\n Uri.parse = function (url, throwIfInvalid) {\n if (throwIfInvalid === void 0) { throwIfInvalid = true; }\n var result = null;\n var ex = tryParse(url, function (out) { result = out; });\n if (throwIfInvalid && ex)\n throw ex;\n return result;\n };\n Uri.tryParse = function (url, out) {\n return !tryParse(url, out);\n };\n Uri.copyOf = function (map) {\n return copyUri(map);\n };\n Uri.prototype.copyTo = function (map) {\n return copyUri(this, map);\n };\n Uri.prototype.updateQuery = function (query) {\n var map = this.toMap();\n map.query = query;\n return Uri.from(map);\n };\n Uri.prototype.getAbsoluteUri = function () {\n return uriToString(this);\n };\n Uri.prototype.getAuthority = function () {\n return getAuthority(this);\n };\n Uri.prototype.getPathAndQuery = function () {\n return getPathAndQuery(this);\n };\n Object.defineProperty(Uri.prototype, \"pathSegments\", {\n get: function () {\n return this.path.match(/^[/]|[^/]*[/]|[^/]+$/g);\n },\n enumerable: true,\n configurable: true\n });\n Uri.prototype.toMap = function () {\n return this.copyTo({});\n };\n Uri.prototype.toString = function () {\n return this.absoluteUri;\n };\n Uri.toString = function (uri) {\n return uri instanceof Uri\n ? uri.absoluteUri\n : uriToString(uri);\n };\n Uri.getAuthority = function (uri) {\n return getAuthority(uri);\n };\n return Uri;\n }());\n exports.Uri = Uri;\n (function (Fields) {\n Fields[Fields[\"scheme\"] = 0] = \"scheme\";\n Fields[Fields[\"userInfo\"] = 1] = \"userInfo\";\n Fields[Fields[\"host\"] = 2] = \"host\";\n Fields[Fields[\"port\"] = 3] = \"port\";\n Fields[Fields[\"path\"] = 4] = \"path\";\n Fields[Fields[\"query\"] = 5] = \"query\";\n Fields[Fields[\"fragment\"] = 6] = \"fragment\";\n })(exports.Fields || (exports.Fields = {}));\n var Fields = exports.Fields;\n Object.freeze(Fields);\n function copyUri(from, to) {\n var i = 0, field;\n if (!to)\n to = {};\n while (field = Fields[i++]) {\n var value = from[field];\n if (value)\n to[field] = value;\n }\n return to;\n }\n var SLASH = '/', SLASH2 = '//', QM = QueryParams.Separator.Query, HASH = '#', EMPTY = '', AT = '@';\n function getScheme(scheme) {\n var s = scheme;\n if (Types_1.Type.isString(s)) {\n if (!s)\n return null;\n s = Utility_1.trim(s).toLowerCase().replace(/[^a-z0-9+.-]+$/g, EMPTY);\n if (!s)\n return null;\n if (Scheme.isValid(s))\n return s;\n }\n else {\n if (s === null || s === undefined)\n return s;\n }\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('scheme', scheme, 'Invalid scheme.');\n }\n function getPort(port) {\n if (port === 0)\n return port;\n if (!port)\n return null;\n var p;\n if (Types_1.Type.isNumber(port, true)) {\n p = port;\n if (p >= 0 && isFinite(p))\n return p;\n }\n else if (Types_1.Type.isString(port) && (p = parseInt(port)) && !isNaN(p)) {\n return getPort(p);\n }\n throw new ArgumentException_1.ArgumentException(\"port\", \"invalid value\");\n }\n function getAuthority(uri) {\n if (!uri.host) {\n if (uri.userInfo)\n throw new ArgumentException_1.ArgumentException('host', 'Cannot include user info when there is no host.');\n if (Types_1.Type.isNumber(uri.port, false))\n throw new ArgumentException_1.ArgumentException('host', 'Cannot include a port when there is no host.');\n }\n var result = uri.host || EMPTY;\n if (result) {\n if (uri.userInfo)\n result = uri.userInfo + AT + result;\n if (!isNaN(uri.port))\n result += ':' + uri.port;\n result = SLASH2 + result;\n }\n return result;\n }\n function formatQuery(query) {\n return query && ((query.indexOf(QM) !== 0 ? QM : EMPTY) + query);\n }\n function formatFragment(fragment) {\n return fragment && ((fragment.indexOf(HASH) !== 0 ? HASH : EMPTY) + fragment);\n }\n function getPathAndQuery(uri) {\n var path = uri.path, query = uri.query;\n return EMPTY\n + (path || EMPTY)\n + (formatQuery(query) || EMPTY);\n }\n function uriToString(uri) {\n var scheme = getScheme(uri.scheme), authority = getAuthority(uri), pathAndQuery = getPathAndQuery(uri), fragment = formatFragment(uri.fragment);\n var part1 = EMPTY\n + ((scheme && (scheme + ':')) || EMPTY)\n + (authority || EMPTY);\n var part2 = EMPTY\n + (pathAndQuery || EMPTY)\n + (fragment || EMPTY);\n if (part1 && part2 && scheme && !authority)\n throw new ArgumentException_1.ArgumentException('authority', \"Cannot format schemed Uri with missing authority.\");\n if (part1 && pathAndQuery && pathAndQuery.indexOf(SLASH) !== 0)\n part2 = SLASH + part2;\n return part1 + part2;\n }\n function tryParse(url, out) {\n if (!url)\n return new ArgumentException_1.ArgumentException('url', 'Nothing to parse.');\n var i, result = {};\n i = url.indexOf(HASH);\n if (i != -1) {\n result.fragment = url.substring(i + 1) || VOID0;\n url = url.substring(0, i);\n }\n i = url.indexOf(QM);\n if (i != -1) {\n result.query = url.substring(i + 1) || VOID0;\n url = url.substring(0, i);\n }\n i = url.indexOf(SLASH2);\n if (i != -1) {\n var scheme = Utility_1.trim(url.substring(0, i)), c = /:$/;\n if (!c.test(scheme))\n return new ArgumentException_1.ArgumentException('url', 'Scheme was improperly formatted');\n scheme = Utility_1.trim(scheme.replace(c, EMPTY));\n try {\n result.scheme = getScheme(scheme) || VOID0;\n }\n catch (ex) {\n return ex;\n }\n url = url.substring(i + 2);\n }\n i = url.indexOf(SLASH);\n if (i != -1) {\n result.path = url.substring(i);\n url = url.substring(0, i);\n }\n i = url.indexOf(AT);\n if (i != -1) {\n result.userInfo = url.substring(0, i) || VOID0;\n url = url.substring(i + 1);\n }\n i = url.indexOf(':');\n if (i != -1) {\n var port = parseInt(Utility_1.trim(url.substring(i + 1)));\n if (isNaN(port))\n return new ArgumentException_1.ArgumentException('url', 'Port was invalid.');\n result.port = port;\n url = url.substring(0, i);\n }\n url = Utility_1.trim(url);\n if (url)\n result.host = url;\n out(copyUri(result));\n return null;\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Uri;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * Based on: https://en.wikipedia.org/wiki/Uniform_Resource_Identifier\r\n */\r\n\r\n\r\nimport {Type} from \"../Types\";\r\nimport * as QueryParams from \"./QueryParams\";\r\nimport * as QueryParam from \"./QueryParam\";\r\nimport * as UriComponent from \"./UriComponent\";\r\nimport * as Scheme from \"./Scheme\";\r\nimport {SchemeValue} from \"./SchemeValue\";\r\nimport {trim} from \"../Text/Utility\";\r\nimport {Exception} from \"../Exception\";\r\nimport {ArgumentException} from \"../Exceptions/ArgumentException\";\r\nimport {ArgumentOutOfRangeException} from \"../Exceptions/ArgumentOutOfRangeException\";\r\nimport {IUri} from \"./IUri\";\r\nimport {IMap} from \"../Collections/Dictionaries/IDictionary\";\r\nimport {Primitive} from \"../Primitive\";\r\nimport {StringKeyValuePair} from \"../KeyValuePair\";\r\nimport {IEquatable} from \"../IEquatable\";\r\n\r\nconst VOID0:any = void(0);\r\n\r\n/**\r\n * Provides an read-only model representation of a uniform resource identifier (URI) and easy access to the parts of the URI.\r\n *\r\n * The read-only model (frozen) is easier for debugging than exposing accessors for each property.\r\n * ICloneable<Uri> is not used to prevent unnecessary copying of values that won't change.\r\n */\r\nexport class Uri implements IUri, IEquatable\r\n{\r\n\r\n\tscheme:SchemeValue;\r\n\tuserInfo:string;\r\n\thost:string;\r\n\tport:number;\r\n\tpath:string;\r\n\tquery:string;\r\n\tfragment:string;\r\n\r\n\tqueryParams:IMap;\r\n\r\n\t/**\r\n\t * @param scheme The user name, password, or other user-specific information associated with the specified URI.\r\n\t * @param userInfo The host component of this instance.\r\n\t * @param host The port number of this URI.\r\n\t * @param port The absolute path of the URI.\r\n\t * @param path The absolute path of the URI.\r\n\t * @param query Any query information included in the specified URI.\r\n\t * @param fragment The escaped URI fragment.\r\n\t */\r\n\tconstructor(\r\n\t\tscheme:SchemeValue,\r\n\t\tuserInfo:string,\r\n\t\thost:string,\r\n\t\tport:number,\r\n\t\tpath:string,\r\n\t\tquery?:QueryParam.Convertible,\r\n\t\tfragment?:string)\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.scheme = getScheme(scheme) || null;\r\n\t\t_.userInfo = userInfo || null;\r\n\t\t_.host = host || null;\r\n\r\n\t\t_.port = getPort(port);\r\n\r\n\t\t_.authority = _.getAuthority() || null;\r\n\r\n\t\t_.path = path || null;\r\n\r\n\r\n\t\tif(!Type.isString(query))\r\n\t\t\tquery = QueryParams.encode([]>query);\r\n\r\n\t\t_.query = formatQuery(query) || null;\r\n\t\tObject.freeze(_.queryParams\r\n\t\t\t= _.query\r\n\t\t\t? QueryParams.parseToMap(_.query)\r\n\t\t\t: {});\r\n\r\n\t\t_.pathAndQuery = _.getPathAndQuery() || null;\r\n\r\n\t\t_.fragment = formatFragment(fragment) || null;\r\n\r\n\t\t// This should validate the uri...\r\n\t\t_.absoluteUri = _.getAbsoluteUri();\r\n\r\n\t\t_.baseUri = _.absoluteUri.replace(/[?#].*/, '');\r\n\r\n\t\t// Intended to be read-only. Call .toMap() to get a writable copy.\r\n\t\tObject.freeze(_);\r\n\t}\r\n\r\n\t/**\r\n\t * Compares the values of another IUri via toString comparison.\r\n\t * @param other\r\n\t * @returns {boolean}\r\n\t */\r\n\tequals(other:IUri):boolean\r\n\t{\r\n\t\treturn this===other || this.absoluteUri==Uri.toString(other);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Parses or clones values from existing Uri values.\r\n\t * @param uri\r\n\t * @param defaults\r\n\t * @returns {Uri}\r\n\t */\r\n\tstatic from(uri:string|IUri, defaults?:IUri):Uri\r\n\t{\r\n\t\tvar u = (!uri || Type.isString(uri))\r\n\t\t\t? Uri.parse(uri) : uri;\r\n\r\n\t\treturn new Uri(\r\n\t\t\tu.scheme || defaults && defaults.scheme,\r\n\t\t\tu.userInfo || defaults && defaults.userInfo,\r\n\t\t\tu.host || defaults && defaults.host,\r\n\t\t\tisNaN(u.port) ? defaults && defaults.port : u.port,\r\n\t\t\tu.path || defaults && defaults.path,\r\n\t\t\tu.query || defaults && defaults.query,\r\n\t\t\tu.fragment || defaults && defaults.fragment\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * Parses a URL into it's components.\r\n\t * @param url The url to parse.\r\n\t * @param throwIfInvalid Defaults to true.\r\n\t * @returns {IUri} Returns a map of the values or *null* if invalid and *throwIfInvalid* is false.\r\n\t */\r\n\tstatic parse(url:string, throwIfInvalid:boolean = true):IUri\r\n\t{\r\n\t\tvar result:IUri = null;\r\n\t\tvar ex = tryParse(url, (out)=> {result = out;});\r\n\t\tif(throwIfInvalid && ex) throw ex;\r\n\t\treturn result;\r\n\t}\r\n\r\n\t/**\r\n\t * Parses a URL into it's components.\r\n\t * @param url The url to parse.\r\n\t * @param out A delegate to capture the value.\r\n\t * @returns {boolean} True if valid. False if invalid.\r\n\t */\r\n\tstatic tryParse(url:string, out:(result:IUri)=>void):boolean\r\n\t{\r\n\t\treturn !tryParse(url, out); // return type is Exception.\r\n\t}\r\n\r\n\tstatic copyOf(map:IUri):IUri\r\n\t{\r\n\t\treturn copyUri(map);\r\n\t}\r\n\r\n\tcopyTo(map:IUri):IUri\r\n\t{\r\n\t\treturn copyUri(this, map);\r\n\t}\r\n\r\n\tupdateQuery(query:QueryParam.Convertible):Uri\r\n\t{\r\n\t\tvar map = this.toMap();\r\n\t\tmap.query = query;\r\n\t\treturn Uri.from(map);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Is provided for sub classes to override this value.\r\n\t */\r\n\tprotected getAbsoluteUri():string\r\n\t{\r\n\t\treturn uriToString(this);\r\n\t}\r\n\r\n\t/**\r\n\t * Is provided for sub classes to override this value.\r\n\t */\r\n\tprotected getAuthority():string\r\n\t{\r\n\t\treturn getAuthority(this);\r\n\t}\r\n\r\n\t/**\r\n\t * Is provided for sub classes to override this value.\r\n\t */\r\n\tprotected getPathAndQuery():string\r\n\t{\r\n\t\treturn getPathAndQuery(this);\r\n\t}\r\n\r\n\t/**\r\n\t * The absolute URI.\r\n\t */\r\n\tabsoluteUri:string;\r\n\r\n\t/**\r\n\t * Gets the Domain Name System (DNS) host name or IP address and the port number for a server.\r\n\t */\r\n\tauthority:string;\r\n\r\n\t/**\r\n\t * Gets the path and Query properties separated by a question mark (?).\r\n\t */\r\n\tpathAndQuery:string;\r\n\r\n\t/**\r\n\t * Gets the full path without the query or fragment.\r\n\t */\r\n\tbaseUri:string;\r\n\r\n\t/**\r\n\t * The segments that represent a path.
\r\n\t * https://msdn.microsoft.com/en-us/library/system.uri.segments%28v=vs.110%29.aspx\r\n\t *\r\n\t *
Example:
\r\n\t * If the path value equals: ```/tree/node/index.html```
\r\n\t * The result will be: ```['/','tree/','node/','index.html']```\r\n\t * @returns {string[]}\r\n\t */\r\n\tget pathSegments():string[]\r\n\t{\r\n\t\treturn this.path.match(/^[/]|[^/]*[/]|[^/]+$/g);\r\n\t}\r\n\r\n\t/**\r\n\t * Creates a writable copy.\r\n\t * @returns {IUri}\r\n\t */\r\n\ttoMap():IUri\r\n\t{\r\n\t\treturn this.copyTo({});\r\n\t}\r\n\r\n\t/**\r\n\t * @returns {string} The full absolute uri.\r\n\t */\r\n\ttoString():string\r\n\t{\r\n\t\treturn this.absoluteUri;\r\n\t}\r\n\r\n\t/**\r\n\t * Properly converts an existing URI to a string.\r\n\t * @param uri\r\n\t * @returns {string}\r\n\t */\r\n\tstatic toString(uri:IUri):string\r\n\t{\r\n\t\treturn uri instanceof Uri\r\n\t\t\t? (uri).absoluteUri\r\n\t\t\t: uriToString(uri);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the authority segment of an URI.\r\n\t * @param uri\r\n\t * @returns {string}\r\n\t */\r\n\tstatic getAuthority(uri:IUri):string\r\n\t{\r\n\t\treturn getAuthority(uri);\r\n\t}\r\n\r\n\r\n}\r\n\r\nexport enum Fields {\r\n\tscheme,\r\n\tuserInfo,\r\n\thost,\r\n\tport,\r\n\tpath,\r\n\tquery,\r\n\tfragment\r\n}\r\nObject.freeze(Fields);\r\n\r\nfunction copyUri(from:IUri, to?:IUri)\r\n{\r\n\tvar i = 0, field:string;\r\n\tif(!to) to = {};\r\n\twhile(field = Fields[i++])\r\n\t{\r\n\t\tvar value = (from)[field];\r\n\t\tif(value) (to)[field] = value;\r\n\t}\r\n\treturn to;\r\n}\r\n\r\nconst SLASH = '/', SLASH2 = '//', QM = QueryParams.Separator.Query, HASH = '#', EMPTY = '', AT = '@';\r\n\r\nfunction getScheme(scheme:string):SchemeValue\r\n{\r\n\tvar s:any = scheme;\r\n\tif(Type.isString(s))\r\n\t{\r\n\t\tif(!s) return null;\r\n\t\ts = trim(s).toLowerCase().replace(/[^a-z0-9+.-]+$/g, EMPTY);\r\n\t\tif(!s) return null;\r\n\t\tif(Scheme.isValid(s)) return s;\r\n\t} else {\r\n\t\tif(s===null || s===undefined) return s;\r\n\t}\r\n\tthrow new ArgumentOutOfRangeException('scheme', scheme, 'Invalid scheme.');\r\n}\r\n\r\nfunction getPort(port:number|string):number\r\n{\r\n\tif(port===0) return port;\r\n\tif(!port) return null;\r\n\tvar p:number;\r\n\r\n\tif(Type.isNumber(port, true))\r\n\t{\r\n\t\tp = port;\r\n\t\tif(p>=0 && isFinite(p))\r\n\t\t\treturn p;\r\n\t}\r\n\telse if(Type.isString(port) && (p = parseInt(port)) && !isNaN(p))\r\n\t{\r\n\t\treturn getPort(p);\r\n\t}\r\n\r\n\tthrow new ArgumentException(\"port\", \"invalid value\");\r\n}\r\n\r\nfunction getAuthority(uri:IUri):string\r\n{\r\n\r\n\tif(!uri.host)\r\n\t{\r\n\t\tif(uri.userInfo)\r\n\t\t\tthrow new ArgumentException('host', 'Cannot include user info when there is no host.');\r\n\r\n\t\tif(Type.isNumber(uri.port, false))\r\n\t\t\tthrow new ArgumentException('host', 'Cannot include a port when there is no host.');\r\n\t}\r\n\r\n\t/*\r\n\t * [//[user:password@]host[:port]]\r\n\t */\r\n\r\n\tvar result = uri.host || EMPTY;\r\n\r\n\tif(result)\r\n\t{\r\n\t\tif(uri.userInfo) result = uri.userInfo + AT + result;\r\n\t\tif(!isNaN(uri.port)) result += ':' + uri.port;\r\n\t\tresult = SLASH2 + result;\r\n\t}\r\n\r\n\treturn result;\r\n}\r\n\r\nfunction formatQuery(query:string):string\r\n{\r\n\treturn query && ((query.indexOf(QM)!==0 ? QM : EMPTY) + query);\r\n}\r\n\r\nfunction formatFragment(fragment:string):string\r\n{\r\n\treturn fragment && ((fragment.indexOf(HASH)!==0 ? HASH : EMPTY) + fragment);\r\n}\r\n\r\nfunction getPathAndQuery(uri:IUri):string\r\n{\r\n\r\n\tvar path = uri.path,\r\n\t query = uri.query;\r\n\r\n\treturn EMPTY\r\n\t\t+ (path || EMPTY)\r\n\t\t+ (formatQuery(query) || EMPTY);\r\n\r\n}\r\n\r\nfunction uriToString(uri:IUri):string\r\n{\r\n\t// scheme:[//[user:password@]domain[:port]][/]path[?query][#fragment]\r\n\t// {scheme}{authority}{path}{query}{fragment}\r\n\r\n\tvar scheme = getScheme(uri.scheme),\r\n\t authority = getAuthority(uri),\r\n\t pathAndQuery = getPathAndQuery(uri),\r\n\t fragment = formatFragment(uri.fragment);\r\n\r\n\tvar part1 = EMPTY\r\n\t\t+ ((scheme && (scheme + ':')) || EMPTY)\r\n\t\t+ (authority || EMPTY);\r\n\r\n\tvar part2 = EMPTY\r\n\t\t+ (pathAndQuery || EMPTY)\r\n\t\t+ (fragment || EMPTY);\r\n\r\n\tif(part1 && part2 && scheme && !authority)\r\n\t\tthrow new ArgumentException('authority', \"Cannot format schemed Uri with missing authority.\");\r\n\r\n\tif(part1 && pathAndQuery && pathAndQuery.indexOf(SLASH)!==0)\r\n\t\tpart2 = SLASH + part2;\r\n\r\n\treturn part1 + part2;\r\n\r\n}\r\n\r\n\r\nfunction tryParse(url:string, out:(result:IUri)=>void):Exception\r\n{\r\n\tif(!url)\r\n\t\treturn new ArgumentException('url', 'Nothing to parse.');\r\n\r\n\r\n\t// Could use a regex here, but well follow some rules instead.\r\n\t// The intention is to 'gather' the pieces. This isn't validation (yet).\r\n\r\n\t// scheme:[//[user:password@]domain[:port]][/]path[?query][#fragment]\r\n\tvar i:number, result:IUri = {};\r\n\r\n\t// Anything after the first # is the fragment.\r\n\ti = url.indexOf(HASH);\r\n\tif(i!= -1)\r\n\t{\r\n\t\tresult.fragment = url.substring(i + 1) || VOID0;\r\n\t\turl = url.substring(0, i);\r\n\t}\r\n\r\n\t// Anything after the first ? is the query.\r\n\ti = url.indexOf(QM);\r\n\tif(i!= -1)\r\n\t{\r\n\t\tresult.query = url.substring(i + 1) || VOID0;\r\n\t\turl = url.substring(0, i);\r\n\t}\r\n\r\n\t// Guarantees a separation.\r\n\ti = url.indexOf(SLASH2);\r\n\tif(i!= -1)\r\n\t{\r\n\t\tvar scheme = trim(url.substring(0, i)), c = /:$/;\r\n\t\tif(!c.test(scheme))\r\n\t\t\treturn new ArgumentException('url', 'Scheme was improperly formatted');\r\n\r\n\t\tscheme = trim(scheme.replace(c, EMPTY));\r\n\t\ttry\r\n\t\t{\r\n\t\t\tresult.scheme = getScheme(scheme) || VOID0;\r\n\t\t}\r\n\t\tcatch(ex)\r\n\t\t{\r\n\t\t\treturn ex;\r\n\t\t}\r\n\r\n\t\turl = url.substring(i + 2);\r\n\t}\r\n\r\n\t// Find any path information.\r\n\ti = url.indexOf(SLASH);\r\n\tif(i!= -1)\r\n\t{\r\n\t\tresult.path = url.substring(i);\r\n\t\turl = url.substring(0, i);\r\n\t}\r\n\r\n\t// Separate user info.\r\n\ti = url.indexOf(AT);\r\n\tif(i!= -1)\r\n\t{\r\n\t\tresult.userInfo = url.substring(0, i) || VOID0;\r\n\t\turl = url.substring(i + 1);\r\n\t}\r\n\r\n\t// Remaining is host and port.\r\n\ti = url.indexOf(':');\r\n\tif(i!= -1)\r\n\t{\r\n\t\tvar port = parseInt(trim(url.substring(i + 1)));\r\n\t\tif(isNaN(port))\r\n\t\t\treturn new ArgumentException('url', 'Port was invalid.');\r\n\r\n\t\tresult.port = port;\r\n\t\turl = url.substring(0, i);\r\n\t}\r\n\r\n\turl = trim(url);\r\n\tif(url)\r\n\t\tresult.host = url;\r\n\r\n\tout(copyUri(result));\r\n\r\n\t// null is good! (here)\r\n\treturn null;\r\n\r\n}\r\n\r\nexport default Uri;"]} \ No newline at end of file diff --git a/dist/umd.min/System/Utility/clone.js b/dist/umd.min/System/Utility/clone.js index e1fe7d8d..80661a65 100644 --- a/dist/umd.min/System/Utility/clone.js +++ b/dist/umd.min/System/Utility/clone.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -!function(e){if("object"==typeof module&&"object"==typeof module.exports){var r=e(require,exports);void 0!==r&&(module.exports=r)}else"function"==typeof define&&define.amd&&define(["require","exports","../Types"],e)}(function(e,r){"use strict";function t(e,r){if(void 0===r&&(r=0),0>r)return e;if(!i["default"].isObject(e))return e;var o;if(Array.isArray(e)){if(o=e.slice(),r>0)for(var f=0;f0)for(var n in e)o[n]=t(e[n],r-1);return o}var i=e("../Types");Object.defineProperty(r,"__esModule",{value:!0}),r["default"]=t}); +!function(e){if("object"==typeof module&&"object"==typeof module.exports){var r=e(require,exports);void 0!==r&&(module.exports=r)}else"function"==typeof define&&define.amd&&define(["require","exports","../Types"],e)}(function(e,r){"use strict";function i(e,r){if(void 0===r&&(r=0),0>r)return e;if(!t.Type.isObject(e))return e;var o;if(Array.isArray(e)){if(o=e.slice(),r>0)for(var f=0;f0)for(var n in e)o[n]=i(e[n],r-1);return o}var t=e("../Types");Object.defineProperty(r,"__esModule",{value:!0}),r["default"]=i}); //# sourceMappingURL=clone.js.map diff --git a/dist/umd.min/System/Utility/clone.js.map b/dist/umd.min/System/Utility/clone.js.map index e082e3aa..c560af0d 100644 --- a/dist/umd.min/System/Utility/clone.js.map +++ b/dist/umd.min/System/Utility/clone.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Utility/clone.js","System/Utility/clone.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","clone","source","depth","Types_1","isObject","result","Array","isArray","slice","i","length","k","Object","defineProperty","value"],"mappings":";;;;CAIA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,YAAaN,IAEhD,SAAUI,EAASF,GAClB,YCLJ,SAAAM,GAA8BC,EAAYC,GAEzC,GAFyC,SAAAA,IAAAA,EAAA,GAEhC,EAANA,EACF,MAAOD,EAGR,KAAIE,EAAAA,WAAKC,SAASH,GAAS,MAAOA,EAElC,IAAII,EACJ,IAAGC,MAAMC,QAAQN,IAGhB,GADAI,EAAeJ,EAAQO,QACpBN,EAAM,EAER,IAAI,GAAIO,GAAI,EAAGA,EAAEJ,EAAOK,OAAQD,IAE/BJ,EAAOI,GAAKT,EAAMK,EAAOI,GAAIP,EAAQ,OAOvC,IADAG,KACGH,EAAM,EAAG,IAAI,GAAIS,KAAKV,GAGxBI,EAAOM,GAAKX,EAAMC,EAAOU,GAAIT,EAAQ,EAIvC,OAAOG,GAhCR,GAAAF,GAAAP,EAAiB,WAEjBgB,QAAAC,eAAAnB,EAAA,cAAAoB,OAAA,IDgCIpB,EAAAA,WAAkBM","file":"System/Utility/clone.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", '../Types'], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var Types_1 = require('../Types');\n function clone(source, depth) {\n if (depth === void 0) { depth = 0; }\n if (depth < 0)\n return source;\n if (!Types_1.default.isObject(source))\n return source;\n var result;\n if (Array.isArray(source)) {\n result = source.slice();\n if (depth > 0) {\n for (var i = 0; i < result.length; i++) {\n result[i] = clone(result[i], depth - 1);\n }\n }\n }\n else {\n result = {};\n if (depth > 0)\n for (var k in source) {\n result[k] = clone(source[k], depth - 1);\n }\n }\n return result;\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = clone;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport Type from '../Types';\r\n\r\nexport default function clone(source:any, depth:number = 0):any\r\n{\r\n\tif(depth<0)\r\n\t\treturn source;\r\n\r\n\t// return primitives as is.\r\n\tif(!Type.isObject(source)) return source;\r\n\r\n\tvar result:any;\r\n\tif(Array.isArray(source))\r\n\t{\r\n\t\tresult = (source).slice();\r\n\t\tif(depth>0)\r\n\t\t{\r\n\t\t\tfor(let i = 0; i0) for(let k in source)\r\n\t\t{\r\n\t\t\t//noinspection JSUnfilteredForInLoop\r\n\t\t\tresult[k] = clone(source[k], depth - 1);\r\n\t\t}\r\n\t}\r\n\r\n\treturn result;\r\n\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Utility/clone.js","System/Utility/clone.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","clone","source","depth","Types_1","Type","isObject","result","Array","isArray","slice","i","length","k","Object","defineProperty","value"],"mappings":";;;;CAIA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,YAAaN,IAEhD,SAAUI,EAASF,GAClB,YCLJ,SAAAM,GAA8BC,EAAYC,GAEzC,GAFyC,SAAAA,IAAAA,EAAA,GAEhC,EAANA,EACF,MAAOD,EAGR,KAAIE,EAAAC,KAAKC,SAASJ,GAAS,MAAOA,EAElC,IAAIK,EACJ,IAAGC,MAAMC,QAAQP,IAGhB,GADAK,EAAeL,EAAQQ,QACpBP,EAAM,EAER,IAAI,GAAIQ,GAAI,EAAGA,EAAEJ,EAAOK,OAAQD,IAE/BJ,EAAOI,GAAKV,EAAMM,EAAOI,GAAIR,EAAQ,OAOvC,IADAI,KACGJ,EAAM,EAAG,IAAI,GAAIU,KAAKX,GAGxBK,EAAOM,GAAKZ,EAAMC,EAAOW,GAAIV,EAAQ,EAIvC,OAAOI,GAhCR,GAAAH,GAAAP,EAAmB,WAEnBiB,QAAAC,eAAApB,EAAA,cAAAqB,OAAA,IDgCIrB,EAAAA,WAAkBM","file":"System/Utility/clone.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../Types\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var Types_1 = require(\"../Types\");\n function clone(source, depth) {\n if (depth === void 0) { depth = 0; }\n if (depth < 0)\n return source;\n if (!Types_1.Type.isObject(source))\n return source;\n var result;\n if (Array.isArray(source)) {\n result = source.slice();\n if (depth > 0) {\n for (var i = 0; i < result.length; i++) {\n result[i] = clone(result[i], depth - 1);\n }\n }\n }\n else {\n result = {};\n if (depth > 0)\n for (var k in source) {\n result[k] = clone(source[k], depth - 1);\n }\n }\n return result;\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = clone;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {Type} from \"../Types\";\r\n\r\nexport default function clone(source:any, depth:number = 0):any\r\n{\r\n\tif(depth<0)\r\n\t\treturn source;\r\n\r\n\t// return primitives as is.\r\n\tif(!Type.isObject(source)) return source;\r\n\r\n\tvar result:any;\r\n\tif(Array.isArray(source))\r\n\t{\r\n\t\tresult = (source).slice();\r\n\t\tif(depth>0)\r\n\t\t{\r\n\t\t\tfor(let i = 0; i0) for(let k in source)\r\n\t\t{\r\n\t\t\t//noinspection JSUnfilteredForInLoop\r\n\t\t\tresult[k] = clone(source[k], depth - 1);\r\n\t\t}\r\n\t}\r\n\r\n\treturn result;\r\n\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Utility/shallowCopy.d.ts b/dist/umd.min/System/Utility/shallowCopy.d.ts index df935e23..51512af7 100644 --- a/dist/umd.min/System/Utility/shallowCopy.d.ts +++ b/dist/umd.min/System/Utility/shallowCopy.d.ts @@ -2,4 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -export default function shallowCopy(source: any, target?: any): any; +export declare function shallowCopy(source: any, target?: any): any; +export default shallowCopy; diff --git a/dist/umd.min/System/Utility/shallowCopy.js b/dist/umd.min/System/Utility/shallowCopy.js index 92175e9d..2bff48e3 100644 --- a/dist/umd.min/System/Utility/shallowCopy.js +++ b/dist/umd.min/System/Utility/shallowCopy.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -!function(e){if("object"==typeof module&&"object"==typeof module.exports){var o=e(require,exports);void 0!==o&&(module.exports=o)}else"function"==typeof define&&define.amd&&define(["require","exports"],e)}(function(e,o){"use strict";function t(e,o){if(void 0===o&&(o={}),o)for(var t in e)o[t]=e[t];return o}Object.defineProperty(o,"__esModule",{value:!0}),o["default"]=t}); +!function(e){if("object"==typeof module&&"object"==typeof module.exports){var o=e(require,exports);void 0!==o&&(module.exports=o)}else"function"==typeof define&&define.amd&&define(["require","exports"],e)}(function(e,o){"use strict";function t(e,o){if(void 0===o&&(o={}),o)for(var t in e)o[t]=e[t];return o}o.shallowCopy=t,Object.defineProperty(o,"__esModule",{value:!0}),o["default"]=t}); //# sourceMappingURL=shallowCopy.js.map diff --git a/dist/umd.min/System/Utility/shallowCopy.js.map b/dist/umd.min/System/Utility/shallowCopy.js.map index e127fa3b..bb8f8271 100644 --- a/dist/umd.min/System/Utility/shallowCopy.js.map +++ b/dist/umd.min/System/Utility/shallowCopy.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Utility/shallowCopy.js","System/Utility/shallowCopy.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","shallowCopy","source","target","k","Object","defineProperty","value"],"mappings":";;;;CAIA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,WAAYN,IAEpC,SAAUI,EAASF,GAClB,YCPJ,SAAAM,GAAoCC,EAAYC,GAE/C,GAF+C,SAAAA,IAAAA,MAE5CA,EAEF,IAAI,GAAIC,KAAKF,GAGZC,EAAOC,GAAKF,EAAOE,EAIrB,OAAOD,GAXRE,OAAAC,eAAAX,EAAA,cAAAY,OAAA,IDkBIZ,EAAAA,WAAkBM","file":"System/Utility/shallowCopy.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n function shallowCopy(source, target) {\n if (target === void 0) { target = {}; }\n if (target) {\n for (var k in source) {\n target[k] = source[k];\n }\n }\n return target;\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = shallowCopy;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nexport default function shallowCopy(source:any, target:any = {}):any\r\n{\r\n\tif(target)\r\n\t{\r\n\t\tfor(let k in source)\r\n\t\t{\r\n\t\t\t//noinspection JSUnfilteredForInLoop\r\n\t\t\ttarget[k] = source[k];\r\n\t\t}\r\n\t}\r\n\r\n\treturn target;\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Utility/shallowCopy.js","System/Utility/shallowCopy.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","shallowCopy","source","target","k","Object","defineProperty","value"],"mappings":";;;;CAIA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,WAAYN,IAEpC,SAAUI,EAASF,GAClB,YCPJ,SAAAM,GAA4BC,EAAYC,GAEvC,GAFuC,SAAAA,IAAAA,MAEpCA,EAEF,IAAI,GAAIC,KAAKF,GAGZC,EAAOC,GAAKF,EAAOE,EAIrB,OAAOD,GAXQR,EAAAM,YAAWA,EAc3BI,OAAAC,eAAAX,EAAA,cAAAY,OAAA,IDKIZ,EAAAA,WCLWM","file":"System/Utility/shallowCopy.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n function shallowCopy(source, target) {\n if (target === void 0) { target = {}; }\n if (target) {\n for (var k in source) {\n target[k] = source[k];\n }\n }\n return target;\n }\n exports.shallowCopy = shallowCopy;\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = shallowCopy;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nexport function shallowCopy(source:any, target:any = {}):any\r\n{\r\n\tif(target)\r\n\t{\r\n\t\tfor(let k in source)\r\n\t\t{\r\n\t\t\t//noinspection JSUnfilteredForInLoop\r\n\t\t\ttarget[k] = source[k];\r\n\t\t}\r\n\t}\r\n\r\n\treturn target;\r\n}\r\n\r\nexport default shallowCopy;"]} \ No newline at end of file diff --git a/dist/umd.min/System/Validation/ValidationResult.d.ts b/dist/umd.min/System/Validation/ValidationResult.d.ts index 8fdffed8..563c9625 100644 --- a/dist/umd.min/System/Validation/ValidationResult.d.ts +++ b/dist/umd.min/System/Validation/ValidationResult.d.ts @@ -1,9 +1,9 @@ -/// -/// /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ +import { IEquatable } from "../IEquatable"; +import { IValidationResult } from "./IValidationResult"; export default class ValidationResult implements IValidationResult, IEquatable { isValid: boolean; message: string; diff --git a/dist/umd.min/System/Validation/ValidationResult.js.map b/dist/umd.min/System/Validation/ValidationResult.js.map index 1b0f0889..9807589e 100644 --- a/dist/umd.min/System/Validation/ValidationResult.js.map +++ b/dist/umd.min/System/Validation/ValidationResult.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Validation/ValidationResult.js","System/Validation/ValidationResult.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","valid","ValidationResult","isValid","message","data","this","Object","freeze","prototype","equals","other","_","defineProperty","get","enumerable","configurable","invalid","value"],"mappings":";;;;CAIA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,WAAYN,IAEpC,SAAUI,EAASF,GCJtB,YAEA,IAAMM,GAAQ,GAAIC,IAAiB,GAKnCA,EAAA,WAOC,QAAAA,GACQC,EACAC,EACAC,GAFP,SAAAF,IAAAA,GAAA,GACA,SAAAC,IAAAA,EAAA,MACA,SAAAC,IAAAA,EAAA,MAFOC,KAAAH,QAAAA,EACAG,KAAAF,QAAAA,EACAE,KAAAD,KAAAA,EAIPE,OAAOC,OAAOF,MAgChB,MA1BCJ,GAAAO,UAAAC,OAAA,SAAOC,GAEN,GAAIC,GAAIN,IACR,OAAOM,GAAET,UAAUQ,EAAMR,SACrBS,EAAER,SAASQ,EAAER,SACbQ,EAAEP,MAAMO,EAAEP,MAQfE,OAAAM,eAAWX,EAAA,SDhBAY,ICgBX,WACC,MAAOb,IDdGc,YAAY,EACZC,cAAc,ICmBlBd,EAAAe,QAAP,SACCb,EACAC,GAEA,MAFA,UAAAA,IAAAA,EAAA,MAEO,GAAIH,IAAiB,EAAOE,EAASC,IAE9CH,IA9CAK,QAAAM,eAAAlB,EAAA,cAAAuB,OAAA,ID8BIvB,EAAAA,WAAkBO","file":"System/Validation/ValidationResult.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\"], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var valid = new ValidationResult(true);\n var ValidationResult = (function () {\n function ValidationResult(isValid, message, data) {\n if (isValid === void 0) { isValid = false; }\n if (message === void 0) { message = null; }\n if (data === void 0) { data = null; }\n this.isValid = isValid;\n this.message = message;\n this.data = data;\n Object.freeze(this);\n }\n ValidationResult.prototype.equals = function (other) {\n var _ = this;\n return _.isValid === other.isValid\n && _.message == _.message\n && _.data == _.data;\n };\n Object.defineProperty(ValidationResult, \"valid\", {\n get: function () {\n return valid;\n },\n enumerable: true,\n configurable: true\n });\n ValidationResult.invalid = function (message, data) {\n if (data === void 0) { data = null; }\n return new ValidationResult(false, message, data);\n };\n return ValidationResult;\n }());\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ValidationResult;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n/// \r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nconst valid = new ValidationResult(true);\r\n\r\n/**\r\n * A class for generating responses to validation.\r\n */\r\nexport default\r\nclass ValidationResult\r\nimplements IValidationResult, IEquatable\r\n{\r\n\t/**\r\n\t * Allows for rare cases that ValidationResult.valid and ValidationResult.invalid() don't cover.\r\n\t */\r\n\tconstructor(\r\n\t\tpublic isValid:boolean = false,\r\n\t\tpublic message:string = null,\r\n\t\tpublic data:any = null)\r\n\t{\r\n\r\n\t\t// Readonly...\r\n\t\tObject.freeze(this);\r\n\t}\r\n\r\n\t/**\r\n\t * Allows for comparing another IValidationResult to see if they are equal.\r\n\t */\r\n\tequals(other:IValidationResult):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn _.isValid===other.isValid\r\n\t\t\t&& _.message==_.message\r\n\t\t\t&& _.data==_.data;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Represents a single/shared instance of a valid result.\r\n\t * Allows for returning this instance like you would return 'true'.\r\n\t */\r\n\tstatic get valid():IValidationResult {\r\n\t\treturn valid;\r\n\t}\r\n\r\n\t/**\r\n\t * Factory method for easily creating an invalid result.\r\n\t */\r\n\tstatic invalid(\r\n\t\tmessage:string,\r\n\t\tdata:any = null):IValidationResult\r\n\t{\r\n\t\treturn new ValidationResult(false, message, data);\r\n\t}\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Validation/ValidationResult.js","System/Validation/ValidationResult.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","valid","ValidationResult","isValid","message","data","this","Object","freeze","prototype","equals","other","_","defineProperty","get","enumerable","configurable","invalid","value"],"mappings":";;;;CAIA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,WAAYN,IAEpC,SAAUI,EAASF,GAClB,YCJJ,IAAMM,GAAQ,GAAIC,IAAiB,GAKnCA,EAAA,WAOC,QAAAA,GACQC,EACAC,EACAC,GAFP,SAAAF,IAAAA,GAAA,GACA,SAAAC,IAAAA,EAAA,MACA,SAAAC,IAAAA,EAAA,MAFOC,KAAAH,QAAAA,EACAG,KAAAF,QAAAA,EACAE,KAAAD,KAAAA,EAIPE,OAAOC,OAAOF,MAgChB,MA1BCJ,GAAAO,UAAAC,OAAA,SAAOC,GAEN,GAAIC,GAAIN,IACR,OAAOM,GAAET,UAAUQ,EAAMR,SACrBS,EAAER,SAASQ,EAAER,SACbQ,EAAEP,MAAMO,EAAEP,MAQfE,OAAAM,eAAWX,EAAA,SDfAY,ICeX,WACC,MAAOb,IDbGc,YAAY,EACZC,cAAc,ICkBlBd,EAAAe,QAAP,SACCb,EACAC,GAEA,MAFA,UAAAA,IAAAA,EAAA,MAEO,GAAIH,IAAiB,EAAOE,EAASC,IAE9CH,IA9CAK,QAAAM,eAAAlB,EAAA,cAAAuB,OAAA,ID+BIvB,EAAAA,WAAkBO","file":"System/Validation/ValidationResult.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var valid = new ValidationResult(true);\n var ValidationResult = (function () {\n function ValidationResult(isValid, message, data) {\n if (isValid === void 0) { isValid = false; }\n if (message === void 0) { message = null; }\n if (data === void 0) { data = null; }\n this.isValid = isValid;\n this.message = message;\n this.data = data;\n Object.freeze(this);\n }\n ValidationResult.prototype.equals = function (other) {\n var _ = this;\n return _.isValid === other.isValid\n && _.message == _.message\n && _.data == _.data;\n };\n Object.defineProperty(ValidationResult, \"valid\", {\n get: function () {\n return valid;\n },\n enumerable: true,\n configurable: true\n });\n ValidationResult.invalid = function (message, data) {\n if (data === void 0) { data = null; }\n return new ValidationResult(false, message, data);\n };\n return ValidationResult;\n }());\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ValidationResult;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {IEquatable} from \"../IEquatable\";\r\nimport {IValidationResult} from \"./IValidationResult\"; // For compatibility with (let, const, function, class);\r\n\r\nconst valid = new ValidationResult(true);\r\n\r\n/**\r\n * A class for generating responses to validation.\r\n */\r\nexport default\r\nclass ValidationResult\r\nimplements IValidationResult, IEquatable\r\n{\r\n\t/**\r\n\t * Allows for rare cases that ValidationResult.valid and ValidationResult.invalid() don't cover.\r\n\t */\r\n\tconstructor(\r\n\t\tpublic isValid:boolean = false,\r\n\t\tpublic message:string = null,\r\n\t\tpublic data:any = null)\r\n\t{\r\n\r\n\t\t// Readonly...\r\n\t\tObject.freeze(this);\r\n\t}\r\n\r\n\t/**\r\n\t * Allows for comparing another IValidationResult to see if they are equal.\r\n\t */\r\n\tequals(other:IValidationResult):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn _.isValid===other.isValid\r\n\t\t\t&& _.message==_.message\r\n\t\t\t&& _.data==_.data;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Represents a single/shared instance of a valid result.\r\n\t * Allows for returning this instance like you would return 'true'.\r\n\t */\r\n\tstatic get valid():IValidationResult {\r\n\t\treturn valid;\r\n\t}\r\n\r\n\t/**\r\n\t * Factory method for easily creating an invalid result.\r\n\t */\r\n\tstatic invalid(\r\n\t\tmessage:string,\r\n\t\tdata:any = null):IValidationResult\r\n\t{\r\n\t\treturn new ValidationResult(false, message, data);\r\n\t}\r\n}\r\n"]} \ No newline at end of file diff --git a/package.json b/package.json index fabc0fec..4e1555bf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "typescript-dotnet", - "version": "2.12.3", + "version": "2.13.0", "license": "MIT", "author": "electricessence ", "description": "A JavaScript-Friendly .NET Based TypeScript Library.", diff --git a/source/System.Linq/Linq.js.map b/source/System.Linq/Linq.js.map index cd36e62a..30ad59d1 100644 --- a/source/System.Linq/Linq.js.map +++ b/source/System.Linq/Linq.js.map @@ -1 +1 @@ -{"version":3,"file":"Linq.js","sourceRoot":"","sources":["Linq.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Linq.js","sourceRoot":"","sources":["Linq.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;;;;;;;;;;;;;IAGH,IAAY,MAAM,WAAM,mBAAmB,CAAC,CAAA;IAC5C,IAAY,MAAM,WAAM,qCAAqC,CAAC,CAAA;IAC9D,IAAY,YAAY,WAAM,qCAAqC,CAAC,CAAA;IACpE,2BAQO,8CAA8C,CAAC,CAAA;IACtD,sBAAmB,iBAAiB,CAAC,CAAA;IACrC,wBAAsB,mBAAmB,CAAC,CAAA;IAC1C,0BAAyC,qBAAqB,CAAC,CAAA;IAC/D,gCAA8B,mDAAmD,CAAC,CAAA;IAClF,+BAA6B,kDAAkD,CAAC,CAAA;IAChF,2BAAyB,+CAA+C,CAAC,CAAA;IACzE,sBAAoB,6BAA6B,CAAC,CAAA;IAClD,wBAA6B,8BAA8B,CAAC,CAAA;IAC5D,+BAA6B,qCAAqC,CAAC,CAAA;IACnE,+CAA6C,kEAAkE,CAAC,CAAA;IAChH,wCAAsC,8CAA8C,CAAC,CAAA;IACrF,iCAA+B,gDAAgD,CAAC,CAAA;IAChF,sCAAoC,4CAA4C,CAAC,CAAA;IACjF,4CAA0C,kDAAkD,CAAC,CAAA;IAc7F,IAAM,eAAe,GAAO,EAAE,CAAC;IAC/B,IAAM,KAAK,GAAO,KAAK,CAAC,CAAC;IACzB,IAAM,KAAK,GAA6B,UAAA,OAAO,IAAI,OAAA,CAAsB,EAAtB,CAAsB,CAAC;IAG1E;QAA4B,iCAAa;QAAzC;YAA4B,8BAAa;QAWzC,CAAC;QATA,+BAAO,GAAP,UAAW,CAAG,EAAE,CAAG;YAElB,MAAM,CAAC,CAAC,GAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;QAED,8BAAM,GAAN,UAAU,CAAG,EAAE,CAAG;YAEjB,MAAM,CAAC,CAAC,GAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;QACF,oBAAC;IAAD,CAAC,AAXD,CAA4B,qBAAa,GAWxC;IAED,IAAI,SAAS,GAAG,IAAI,aAAa,EAAE,CAAC;IACpC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAGzB;QAEC,MAAM,CAAC,kBAAe,CAAC;IACxB,CAAC;IAuBD;QACQ,sCAAc;QAErB,4BACW,kBAAuC,EACjD,SAAqB;YAErB,kBAAM,SAAS,CAAC,CAAC;YAHP,uBAAkB,GAAlB,kBAAkB,CAAqB;YAIjD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACxB,CAAC;QAGD,sBAAI,yCAAS;iBAAb;gBAEC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YACxB,CAAC;;;WAAA;QAGD,0CAAa,GAAb;YAGC,IAAI,CAAC,eAAe,EAAE,CAAC;YAEvB,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAClC,CAAC;QAKS,uCAAU,GAApB;YAEC,gBAAK,CAAC,UAAU,WAAE,CAAC;YACnB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAChC,CAAC;QAKD,yCAAY,GAAZ;YAEC,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,kBAAkB,CAAI,cAAM,OAAA,CAAC,CAAC,aAAa,EAAE,EAAjB,CAAiB,CAAC,CAAC;QAC3D,CAAC;QASD,qCAAQ,GAAR,UACC,MAAqF,EACrF,WAAqB,EACrB,SAAkC;YAAlC,yBAAkC,GAAlC,YAAoB,IAAI,CAAC,SAAS;YAGlC,IAAI,CAAC,GAAG,IAAI,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;YAE9C,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,IAAI,UAAyB,CAAC;gBAC9B,IAAI,KAAK,GAAU,CAAC,CAAC;gBAErB,MAAM,CAAC,IAAI,+BAAc,CACxB;oBAEC,eAAe,CAAC,QAAQ,CAAC,CAAC;oBAE1B,EAAE,CAAA,CAAC,WAAW,CAAC;wBAAC,WAAW,EAAE,CAAC;oBAC9B,KAAK,GAAG,CAAC,CAAC;oBACV,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;gBAEhC,CAAC,EAED,UAAC,OAAO;oBAEP,eAAe,CAAC,QAAQ,CAAC,CAAC;oBAE1B,OAAM,UAAU,CAAC,QAAQ,EAAE,EAC3B,CAAC;wBACA,IAAI,YAAY,GAAQ,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;wBAE5D,EAAE,CAAA,CAAC,YAAY,KAAG,KAAK,IAAI,YAAY,KAAG,CAAsB,CAAC;4BAChE,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;wBAE7B,EAAE,CAAA,CAAC,YAAY,KAAG,CAAqB,CAAC;4BACvC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;oBAGjD,CAAC;oBACD,MAAM,CAAC,KAAK,CAAC;gBACd,CAAC,EAED;oBAEC,iBAAO,CAAC,UAAU,CAAC,CAAC;gBACrB,CAAC,EAED,SAAS,CACT,CAAC;YAEH,CAAC,EAGD;gBAEC,QAAQ,GAAG,IAAI,CAAC;YACjB,CAAC,EAED,SAAS,CACT,CAAC;QACH,CAAC;QAGD,kCAAK,GAAL;YAEC,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;iBAClB,aAAa,EAAE;iBACf,QAAQ,EAAE,CAAC;QAEd,CAAC;QAGD,iCAAI,GAAJ,UAAK,KAAY;YAEhB,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,CAAC,CAAC,eAAe,EAAE,CAAC;YAEpB,EAAE,CAAA,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACnB,MAAM,CAAC,UAAU,CAAC,KAAK,EAAK,CAAC;YAE9B,iBAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAE/B,MAAM,CAAC,IAAI,CAAC,QAAQ,CACnB,UAAC,OAAS,EAAE,KAAa;gBACxB,OAAA,KAAK,GAAC,KAAK;sBACR,CAAqB;sBACrB,CAAuB;YAF1B,CAE0B,CAC3B,CAAC;QACH,CAAC;QAGD,iCAAI,GAAJ,UAAK,KAAY;YAEhB,EAAE,CAAA,CAAC,CAAC,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC;gBACb,MAAM,CAAC,UAAU,CAAC,KAAK,EAAK,CAAC;YAE9B,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,CAAC,CAAC,eAAe,EAAE,CAAC;YAEpB,EAAE,CAAA,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACnB,MAAM,IAAI,yDAA2B,CAAC,OAAO,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC;YAE1E,iBAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAG/B,MAAM,CAAgB,CAAC,CAAC,QAAQ,CAAC,UAAC,OAAS,EAAE,KAAa,IAAK,OAAA,KAAK,GAAC,KAAK,EAAX,CAAW,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC1F,CAAC;QAID,sCAAS,GAAT,UAAU,KAAY;YAErB,IAAI,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;YACxD,EAAE,CAAA,CAAC,CAAC,KAAG,eAAe,CAAC;gBAAC,MAAM,IAAI,yDAA2B,CAAC,OAAO,EAAE,KAAK,EAAE,8DAA8D,CAAC,CAAC;YAC9I,MAAM,CAAC,CAAC,CAAC;QACV,CAAC;QAED,+CAAkB,GAAlB,UAAmB,KAAY,EAAE,YAAqB;YAArB,4BAAqB,GAArB,mBAAqB;YAErD,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,CAAC,CAAC,eAAe,EAAE,CAAC;YAEpB,iBAAO,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC5C,IAAI,CAAC,GAAU,KAAK,CAAC;YAErB,MAAM,CAAC,eAAK,CACX,IAAI,CAAC,aAAa,EAAE,EACpB,UAAA,CAAC;gBAEA,IAAI,CAAC,GAAG,CAAC,CAAC;gBACV,OAAM,CAAC,CAAC,QAAQ,EAAE,EAClB,CAAC;oBACA,EAAE,CAAA,CAAC,CAAC,IAAE,CAAC,CAAC;wBAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;oBAC1B,CAAC,EAAE,CAAC;gBACL,CAAC;gBAED,MAAM,CAAC,YAAY,CAAC;YACrB,CAAC,CAAC,CAAC;QACL,CAAC;QAWD,kCAAK,GAAL;YAEC,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;YAC7C,EAAE,CAAA,CAAC,CAAC,KAAG,eAAe,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YACxE,MAAM,CAAC,CAAC,CAAC;QACV,CAAC;QAED,2CAAc,GAAd,UAAe,YAAqB;YAArB,4BAAqB,GAArB,mBAAqB;YAEnC,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,CAAC,CAAC,eAAe,EAAE,CAAC;YAEpB,MAAM,CAAC,eAAK,CACX,IAAI,CAAC,aAAa,EAAE,EACpB,UAAA,CAAC,IAAG,OAAA,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,OAAO,GAAG,YAAY,EAAvC,CAAuC,CAC3C,CAAC;QACH,CAAC;QAGD,mCAAM,GAAN;YAEC,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,CAAC,CAAC,eAAe,EAAE,CAAC;YAEpB,MAAM,CAAC,eAAK,CACX,IAAI,CAAC,aAAa,EAAE,EACpB,UAAA,CAAC;gBAEA,EAAE,CAAA,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAChB,CAAC;oBACA,IAAI,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC;oBACtB,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;wBAAC,MAAM,CAAC,KAAK,CAAC;oBAC/B,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;gBACpE,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAClD,CAAC,CACD,CAAC;QACH,CAAC;QAED,4CAAe,GAAf,UAAgB,YAAqB;YAArB,4BAAqB,GAArB,mBAAqB;YAGpC,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,CAAC,CAAC,eAAe,EAAE,CAAC;YAEpB,MAAM,CAAC,eAAK,CACX,IAAI,CAAC,aAAa,EAAE,EACpB,UAAA,CAAC;gBAEA,EAAE,CAAA,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAChB,CAAC;oBACA,IAAI,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC;oBACtB,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;wBAAC,MAAM,CAAC,KAAK,CAAC;gBAChC,CAAC;gBACD,MAAM,CAAC,YAAY,CAAC;YACrB,CAAC,CACD,CAAC;QACH,CAAC;QAED,gCAAG,GAAH;YAEC,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,CAAC,CAAC,eAAe,EAAE,CAAC;YAEpB,MAAM,CAAC,eAAK,CACX,IAAI,CAAC,aAAa,EAAE,EACpB,UAAA,CAAC,IAAG,OAAA,CAAC,CAAC,QAAQ,EAAE,EAAZ,CAAY,CAChB,CAAC;QACH,CAAC;QAED,oCAAO,GAAP;YAEC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACpB,CAAC;QAqBD,iDAAoB,GAApB,UACC,gBAA+D,EAC/D,cAE+C;YAF/C,8BAE+C,GAF/C,iBAE6B,SAAS,CAAC,QAAQ;YAE/C,IAAI,CAAC,GAAG,IAAI,EAAE,SAAS,GAAG,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC;YAG/C,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,IAAI,UAA2B,CAAC;gBAChC,IAAI,SAAS,GAAU,CAAC,CAAC;gBACzB,IAAI,MAAY,EAAE,GAAU,CAAC;gBAE7B,MAAM,CAAC,IAAI,+BAAc,CACxB;oBAEC,SAAS,GAAG,CAAC,CAAC;oBACd,MAAM,GAAG,EAAE,CAAC;oBACZ,GAAG,GAAG,CAAC,CAAC;oBACR,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;gBAChC,CAAC,EAED,UAAC,OAAO;oBAEP,OAAM,IAAI,EACV,CAAC;wBACA,EAAE,CAAA,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CACzB,CAAC;4BACA,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC;4BACnC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;wBAC3E,CAAC;wBAED,EAAE,CAAA,CAAC,CAAC,GAAG,CAAC;4BACP,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;wBAE7B,IAAI,IAAI,GAAG,UAAU;6BACnB,IAAI,CAAC,MAAM,CAAC;6BACZ,UAAU,CAAC,gBAAgB,CAAC,CAAC;wBAE/B,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CACf,CAAC;4BACA,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;wBAC7B,CAAC;wBACD,IAAI,CACJ,CAAC;4BACA,SAAS,EAAE,CAAC;4BACZ,MAAM,GAAG,EAAE,CAAC;4BACZ,GAAG,GAAG,CAAC,CAAC;4BACR,UAAU,CAAC,OAAO,EAAE,CAAC;4BACrB,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;wBACnC,CAAC;oBACF,CAAC;gBACF,CAAC,EAED;oBAEC,iBAAO,CAAC,UAAU,CAAC,CAAC;oBACpB,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBACnB,CAAC,EAED,SAAS,CACT,CAAC;YACH,CAAC,EACD,IAAI,EAEJ,SAAS,CACT,CAAC;QACH,CAAC;QAiBD,+CAAkB,GAAlB,UACC,gBAA+D,EAC/D,cAE+C;YAF/C,8BAE+C,GAF/C,iBAE6B,SAAS,CAAC,QAAQ;YAE/C,IAAI,CAAC,GAAG,IAAI,EAAE,SAAS,GAAG,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC;YAE/C,MAAM,CAAC,IAAI,UAAU,CACpB;gBAGC,IAAI,eAAe,GAAsB,EAAE,CAAC;gBAC5C,IAAI,UAA2B,CAAC;gBAChC,IAAI,GAAU,CAAC;gBAEf,MAAM,CAAC,IAAI,+BAAc,CACxB;oBAEC,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;oBAC/B,GAAG,GAAG,CAAC,CAAC;gBACT,CAAC,EAED,UAAC,OAAO;oBAEP,OAAM,IAAI,EACV,CAAC;wBACA,EAAE,CAAA,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CACzB,CAAC;4BACA,IAAI,KAAK,GAAG,cAAc,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;4BACpD,eAAe,CAAC,GAAG,EAAE,CAAC,GAAG,UAAU,CAAC;4BACpC,IAAI,CAAC,GAAG,UAAU,CAAC,OAAO,CAAM,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;4BACtE,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,GAAG,kBAAe,CAAC;4BACrD,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;wBACnC,CAAC;wBAED,EAAE,CAAA,CAAC,GAAG,IAAE,CAAC,CAAC;4BAAC,MAAM,CAAC,KAAK,CAAC;wBAExB,UAAU,CAAC,OAAO,EAAE,CAAC;wBACrB,UAAU,GAAG,eAAe,CAAC,EAAE,GAAG,CAAC,CAAC;wBACpC,eAAe,CAAC,MAAM,GAAG,GAAG,CAAC;oBAC9B,CAAC;gBACF,CAAC,EAED;oBAEC,IACA,CAAC;wBACA,iBAAO,CAAC,UAAU,CAAC,CAAC;oBACrB,CAAC;4BAED,CAAC;wBACA,iBAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;oBAChC,CAAC;gBACF,CAAC,EAED,SAAS,CACT,CAAC;YACH,CAAC,EACD,IAAI,EACJ,SAAS,CACT,CAAC;QACH,CAAC;QAGD,oCAAO,GAAP;YAEC,IAAI,CAAC,GAAG,IAAI,EAAE,SAAS,GAAG,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC;YAE/C,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,IAAI,UAA2B,CAAC;gBAChC,IAAI,gBAAgB,GAAoB,IAAI,CAAC;gBAE7C,MAAM,CAAC,IAAI,+BAAc,CACxB;oBAEC,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;gBAChC,CAAC,EAED,UAAC,OAAO;oBAEP,OAAM,IAAI,EACV,CAAC;wBACA,EAAE,CAAA,CAAC,gBAAgB,CAAC,CACpB,CAAC;4BACA,EAAE,CAAA,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAC/B,CAAC;gCACA,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;4BACtD,CAAC;4BACD,IAAI,CACJ,CAAC;gCACA,gBAAgB,CAAC,OAAO,EAAE,CAAC;gCAC3B,gBAAgB,GAAG,IAAI,CAAC;4BACzB,CAAC;wBACF,CAAC;wBAED,EAAE,CAAA,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CACzB,CAAC;4BACA,IAAI,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC;4BAG3B,IAAI,CAAC,GAAG,CAAC,YAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;4BACnD,EAAE,CAAA,CAAC,CAAC,CAAC,CACL,CAAC;gCACA,gBAAgB;sCACb,CAAC;yCACF,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC;yCAC9B,OAAO,EAAE;yCACT,aAAa,EAAE,CAAC;gCAClB,QAAQ,CAAC;4BACV,CAAC;4BACD,IAAI,CACJ,CAAC;gCACA,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;4BAC/B,CAAC;wBACF,CAAC;wBAED,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;oBAC7B,CAAC;gBACF,CAAC,EAED;oBAEC,iBAAO,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;gBACvC,CAAC,EAED,SAAS,CACT,CAAC;YACH,CAAC,EACD,IAAI,EACJ,SAAS,CACT,CAAC;QACH,CAAC;QAGD,qCAAQ,GAAR,UAAkB,QAAuC;YAExD,IAAI,CAAC,GAAG,IAAI,CAAC;YAEb,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,IAAI,UAAyB,CAAC;gBAE9B,MAAM,CAAC,IAAI,+BAAc,CACxB;oBAEC,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;oBAC/B,UAAU,CAAC,QAAQ,EAAE,CAAC;gBACvB,CAAC,EAED,UAAC,OAAO;oBAEP,IAAI,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC;oBAC9B,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE;2BACxB,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC7D,CAAC,EAED;oBAEC,iBAAO,CAAC,UAAU,CAAC,CAAC;gBACrB,CAAC,EAED,CAAC,CAAC,UAAU,CACZ,CAAC;YACH,CAAC,EACD,IAAI,EAEJ,CAAC,CAAC,UAAU,CACZ,CAAC;QACH,CAAC;QAED,iCAAI,GAAJ,UAAK,IAAoB,EAAE,IAAO;YAGjC,IAAI,SAAS,GAAG,IAAI,KAAG,KAAK,CAAC;YAC7B,IAAI,CAAC,GAAG,IAAI,CAAC;YAEb,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,IAAI,UAAyB,CAAC;gBAC9B,IAAI,KAAO,CAAC;gBACZ,IAAI,OAAe,CAAC;gBAEpB,MAAM,CAAC,IAAI,+BAAc,CACxB;oBAEC,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;oBAC/B,OAAO,GAAG,IAAI,CAAC;gBAChB,CAAC,EAED,UAAC,OAAO;oBAEP,EAAE,CAAA,CAAC,OAAO,CAAC,CACX,CAAC;wBACA,OAAO,GAAG,KAAK,CAAC;wBAEhB,MAAM,CAAC,SAAS;8BACb,OAAO,CAAC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC;8BACjC,UAAU,CAAC,QAAQ,EAAE,IAAI,OAAO,CAAC,WAAW,CAAC,KAAK;kCAClD,UAAU,CAAC,OAAO,CAAC,CAAC;oBACxB,CAAC;oBAED,MAAM,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;0BAC3B,OAAO,CAAC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;0BAC5D,KAAK,CAAC;gBACV,CAAC,EAED;oBAEC,iBAAO,CAAC,UAAU,CAAC,CAAC;gBACrB,CAAC,EAED,CAAC,CAAC,UAAU,CACZ,CAAC;YACH,CAAC,EACD,IAAI,EAEJ,CAAC,CAAC,UAAU,CACZ,CAAC;QACH,CAAC;QAID,mCAAM,GAAN,UAAgB,QAA6B;YAE5C,IAAI,CAAC,GAAG,IAAI,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;YAE9C,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,IAAI,UAAyB,CAAC;gBAC9B,IAAI,KAAK,GAAU,CAAC,CAAC;gBAErB,MAAM,CAAC,IAAI,+BAAc,CACxB;oBAEC,eAAe,CAAC,QAAQ,CAAC,CAAC;oBAE1B,KAAK,GAAG,CAAC,CAAC;oBACV,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;gBAChC,CAAC,EAED,UAAC,OAAO;oBAEP,eAAe,CAAC,QAAQ,CAAC,CAAC;oBAE1B,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE;0BACzB,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;0BAC1D,OAAO,CAAC,UAAU,EAAE,CAAC;gBACzB,CAAC,EAED;oBAEC,iBAAO,CAAC,UAAU,CAAC,CAAC;gBACrB,CAAC,EAED,CAAC,CAAC,UAAU,CACZ,CAAC;YACH,CAAC,EAED;gBAEC,QAAQ,GAAG,IAAI,CAAC;YACjB,CAAC,EAED,CAAC,CAAC,UAAU,CACZ,CAAC;QACH,CAAC;QASS,wCAAW,GAArB,UACC,kBAA4D,EAC5D,cAA2D;YAE3D,IAAI,CAAC,GAAG,IAAI,EAAE,SAAS,GAAG,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC;YAC/C,EAAE,CAAA,CAAC,CAAC,cAAc,CAAC;gBAClB,cAAc,GAAG,UAAC,CAAG,EAAE,CAAK,IAAK,OAAS,CAAC,EAAV,CAAU,CAAC;YAE7C,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,IAAI,UAAyB,CAAC;gBAC9B,IAAI,gBAAiC,CAAC;gBACtC,IAAI,KAAK,GAAU,CAAC,CAAC;gBAErB,MAAM,CAAC,IAAI,+BAAc,CACxB;oBAEC,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;oBAC/B,gBAAgB,GAAG,SAAS,CAAC;oBAC7B,KAAK,GAAG,CAAC,CAAC;gBACX,CAAC,EAED,UAAC,OAAO;oBAIP,EAAE,CAAA,CAAC,gBAAgB,KAAG,KAAK,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;wBACrD,MAAM,CAAC,KAAK,CAAC;oBAGd,GACA,CAAC;wBAGA,EAAE,CAAA,CAAC,CAAC,gBAAgB,CAAC,CACrB,CAAC;4BACA,IAAI,SAAS,GAAG,kBAAkB,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;4BAGhE,EAAE,CAAA,CAAC,CAAC,SAAS,CAAC;gCACb,QAAQ,CAAC;4BAEV,gBAAgB,GAAG,iBAAc,CAAC,SAAS,CAAC,CAAC;wBAC9C,CAAC;wBAED,EAAE,CAAA,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;4BAC9B,MAAM,CAAC,OAAO,CAAC,WAAW,CACzB,cAAc,CACb,UAAU,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAC5C,CACD,CAAC;wBAIH,gBAAgB,CAAC,OAAO,EAAE,CAAC;wBAC3B,gBAAgB,GAAG,IAAI,CAAC;oBAEzB,CAAC,QACK,UAAU,CAAC,QAAQ,EAAE,EAAE;oBAE7B,MAAM,CAAC,KAAK,CAAC;gBACd,CAAC,EAED;oBAEC,iBAAO,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;oBACtC,UAAU,GAAG,IAAI,CAAC;oBAClB,gBAAgB,GAAG,IAAI,CAAC;gBACzB,CAAC,EAED,SAAS,CACT,CAAC;YACH,CAAC,EACD,IAAI,EAEJ,SAAS,CACT,CAAC;QACH,CAAC;QASD,uCAAU,GAAV,UACC,kBAAuD,EACvD,cAAsD;YAEtD,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;QAC7D,CAAC;QAES,oCAAO,GAAjB,UAA2B,QAA6B;YAGvD,IAAI,CAAC,GAAG,IAAI,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;YAE9C,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,IAAI,UAAyB,CAAC;gBAC9B,IAAI,KAAK,GAAU,CAAC,CAAC;gBAErB,MAAM,CAAC,IAAI,+BAAc,CACxB;oBAEC,eAAe,CAAC,QAAQ,CAAC,CAAC;oBAE1B,KAAK,GAAG,CAAC,CAAC;oBACV,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;gBAChC,CAAC,EAED,UAAC,OAAO;oBAEP,eAAe,CAAC,QAAQ,CAAC,CAAC;oBAE1B,OAAM,UAAU,CAAC,QAAQ,EAAE,EAC3B,CAAC;wBACA,IAAI,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;wBACnD,EAAE,CAAA,CAAC,MAAM,KAAG,IAAI,IAAI,MAAM,KAAG,KAAK,CAAC;4BAClC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;oBACrC,CAAC;oBAED,MAAM,CAAC,KAAK,CAAC;gBACd,CAAC,EAED;oBAEC,iBAAO,CAAC,UAAU,CAAC,CAAC;gBACrB,CAAC,EAED,CAAC,CAAC,UAAU,CACZ,CAAC;YACH,CAAC,EAED;gBAEC,QAAQ,GAAG,IAAI,CAAC;YACjB,CAAC,EAED,CAAC,CAAC,UAAU,CACZ,CAAC;QACH,CAAC;QAOD,mCAAM,GAAN,UAAO,QAA8C;YAA9C,wBAA8C,GAA9C,WAA4B,SAAS,CAAC,QAAQ;YAEpD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAC9B,CAAC;QAED,kCAAK,GAAL,UAAM,SAAsB;YAG3B,IAAI,CAAC,GAAG,IAAI,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;YAE9C,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,IAAI,UAAyB,CAAC;gBAC9B,IAAI,KAAK,GAAU,CAAC,CAAC;gBAErB,MAAM,CAAC,IAAI,+BAAc,CACxB;oBAEC,eAAe,CAAC,QAAQ,CAAC,CAAC;oBAE1B,KAAK,GAAG,CAAC,CAAC;oBACV,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;gBAChC,CAAC,EAED,UAAC,OAAO;oBAEP,eAAe,CAAC,QAAQ,CAAC,CAAC;oBAE1B,OAAM,UAAU,CAAC,QAAQ,EAAE,EAC3B,CAAC;wBACA,EAAE,CAAA,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;4BACzC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;oBACjD,CAAC;oBACD,MAAM,CAAC,KAAK,CAAC;gBACd,CAAC,EAED;oBAEC,iBAAO,CAAC,UAAU,CAAC,CAAC;gBACrB,CAAC,EAED,CAAC,CAAC,UAAU,CACZ,CAAC;YACH,CAAC,EAED;gBAEC,QAAQ,GAAG,IAAI,CAAC;YACjB,CAAC,EAED,CAAC,CAAC,UAAU,CACZ,CAAC;QAEH,CAAC;QAGD,mCAAM,GAAN,UAAc,IAAQ;YAErB,IAAI,QAAe,CAAC;YACpB,MAAM,CAAA,CAAM,IAAI,CAAC,CACjB,CAAC;gBACA,KAAK,MAAM;oBACV,QAAQ,GAAG,YAAI,CAAC,MAAM,CAAC;oBACvB,KAAK,CAAC;gBACP,KAAK,MAAM;oBACV,QAAQ,GAAG,YAAI,CAAC,MAAM,CAAC;oBACvB,KAAK,CAAC;gBACP,KAAK,OAAO;oBACX,QAAQ,GAAG,YAAI,CAAC,OAAO,CAAC;oBACxB,KAAK,CAAC;gBACP,KAAK,QAAQ;oBACZ,QAAQ,GAAG,YAAI,CAAC,QAAQ,CAAC;oBACzB,KAAK,CAAC;gBACP;oBACC,MAAM,CAAkB,IAAI;yBAC1B,KAAK,CAAC,UAAA,CAAC,IAAE,OAAA,CAAC,YAAY,IAAI,EAAjB,CAAiB,CAAC,CAAC;YAChC,CAAC;YACD,MAAM,CAAkB,IAAI;iBAC1B,MAAM,EAAE;iBACR,KAAK,CAAC,UAAA,CAAC,IAAE,OAAA,CAAC,OAAO,CAAC,CAAC,KAAG,QAAQ,EAArB,CAAqB,CAAC,CAAC;QACnC,CAAC;QAED,mCAAM,GAAN,UACC,MAA4B,EAC5B,eAAsC;YAEtC,IAAI,CAAC,GAAG,IAAI,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;YAE9C,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,IAAI,UAAyB,CAAC;gBAC9B,IAAI,IAA2B,CAAC;gBAEhC,MAAM,CAAC,IAAI,+BAAc,CACxB;oBAEC,eAAe,CAAC,QAAQ,CAAC,CAAC;oBAC1B,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;oBAC/B,IAAI,GAAG,IAAI,uBAAU,CAAa,eAAe,CAAC,CAAC;oBACnD,EAAE,CAAA,CAAC,MAAM,CAAC;wBACT,oBAAO,CAAC,MAAM,EAAE,UAAA,GAAG,IAAI,OAAA,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,EAA7B,CAA6B,CAAC,CAAC;gBACxD,CAAC,EAED,UAAC,OAAO;oBAEP,eAAe,CAAC,QAAQ,CAAC,CAAC;oBAC1B,OAAM,UAAU,CAAC,QAAQ,EAAE,EAC3B,CAAC;wBACA,IAAI,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;wBACjC,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAC9B,CAAC;4BACA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;4BAClC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;wBACrC,CAAC;oBACF,CAAC;oBACD,MAAM,CAAC,KAAK,CAAC;gBACd,CAAC,EAED;oBAEC,iBAAO,CAAC,UAAU,CAAC,CAAC;oBACpB,IAAI,CAAC,KAAK,EAAE,CAAC;gBACd,CAAC,EAED,CAAC,CAAC,UAAU,CACZ,CAAC;YACH,CAAC,EAED;gBAEC,QAAQ,GAAG,IAAI,CAAC;YACjB,CAAC,EAED,CAAC,CAAC,UAAU,CACZ,CAAC;QACH,CAAC;QAED,qCAAQ,GAAR,UAAS,eAA+B;YAEvC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QAC3C,CAAC;QAGD,iDAAoB,GAApB,UAA+B,eAA0D;YAA1D,+BAA0D,GAA1D,kBAAwC,SAAS,CAAC,QAAQ;YAGxF,IAAI,CAAC,GAAG,IAAI,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;YAE9C,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,IAAI,UAAyB,CAAC;gBAC9B,IAAI,UAAmB,CAAC;gBACxB,IAAI,OAAO,GAAW,IAAI,CAAC;gBAE3B,MAAM,CAAC,IAAI,+BAAc,CACxB;oBAEC,eAAe,CAAC,QAAQ,CAAC,CAAC;oBAC1B,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;gBAChC,CAAC,EAED,UAAC,OAAO;oBAEP,eAAe,CAAC,QAAQ,CAAC,CAAC;oBAC1B,OAAM,UAAU,CAAC,QAAQ,EAAE,EAC3B,CAAC;wBACA,IAAI,GAAG,GAAG,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;wBAE9C,EAAE,CAAA,CAAC,OAAO,CAAC,CACX,CAAC;4BACA,OAAO,GAAG,KAAK,CAAC;wBACjB,CAAC;wBACD,IAAI,CAAC,EAAE,CAAA,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CACzC,CAAC;4BACA,QAAQ,CAAC;wBACV,CAAC;wBAED,UAAU,GAAG,GAAG,CAAC;wBACjB,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;oBAChD,CAAC;oBACD,MAAM,CAAC,KAAK,CAAC;gBACd,CAAC,EAED;oBAEC,iBAAO,CAAC,UAAU,CAAC,CAAC;gBACrB,CAAC,EAED,CAAC,CAAC,UAAU,CACZ,CAAC;YACH,CAAC,EAED;gBAEC,QAAQ,GAAG,IAAI,CAAC;YACjB,CAAC,EAED,CAAC,CAAC,UAAU,CACZ,CAAC;QACH,CAAC;QAQD,2CAAc,GAAd,UAAe,YAAqB;YAArB,4BAAqB,GAArB,mBAAqB;YAEnC,IAAI,CAAC,GAAG,IAAI,EAAE,QAAQ,GAAW,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;YAEtD,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,IAAI,UAAyB,CAAC;gBAC9B,IAAI,OAAe,CAAC;gBAEpB,MAAM,CAAC,IAAI,+BAAc,CACxB;oBAEC,OAAO,GAAG,IAAI,CAAC;oBACf,eAAe,CAAC,QAAQ,CAAC,CAAC;oBAC1B,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;gBAChC,CAAC,EAED,UAAC,OAAO;oBAEP,eAAe,CAAC,QAAQ,CAAC,CAAC;oBAE1B,EAAE,CAAA,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CACzB,CAAC;wBACA,OAAO,GAAG,KAAK,CAAC;wBAChB,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;oBAChD,CAAC;oBACD,IAAI,CAAC,EAAE,CAAA,CAAC,OAAO,CAAC,CAChB,CAAC;wBACA,OAAO,GAAG,KAAK,CAAC;wBAChB,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;oBAC1C,CAAC;oBACD,MAAM,CAAC,KAAK,CAAC;gBACd,CAAC,EAED;oBAEC,iBAAO,CAAC,UAAU,CAAC,CAAC;gBACrB,CAAC,EAED,CAAC,CAAC,UAAU,CACZ,CAAC;YACH,CAAC,EACD,IAAI,EAEJ,CAAC,CAAC,UAAU,CACZ,CAAC;QACH,CAAC;QAED,gCAAG,GAAH,UACC,MAAkC,EAClC,cAAkE;YAElE,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,CAAC,CAAC,eAAe,EAAE,CAAC;YAGpB,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,IAAI,eAA8B,CAAC;gBACnC,IAAI,gBAAqC,CAAC;gBAC1C,IAAI,KAAK,GAAU,CAAC,CAAC;gBAErB,MAAM,CAAC,IAAI,+BAAc,CACxB;oBAEC,KAAK,GAAG,CAAC,CAAC;oBACV,eAAe,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;oBACpC,gBAAgB,GAAG,iBAAc,CAAU,MAAM,CAAC,CAAC;gBACpD,CAAC,EAED,UAAC,OAAO,IAAI,OAAA,eAAe,CAAC,QAAQ,EAAE;uBACnC,gBAAgB,CAAC,QAAQ,EAAE;uBAC3B,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,eAAe,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,EAFtF,CAEsF,EAElG;oBAEC,iBAAO,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;gBAC5C,CAAC,CACD,CAAC;YACH,CAAC,CACD,CAAC;QACH,CAAC;QAGD,wCAAW,GAAX,UACC,MAA0C,EAC1C,cAAkE;YAElE,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,CAAC,CAAC,eAAe,EAAE,CAAC;YAEpB,EAAE,CAAA,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;gBACjB,MAAM,CAAC,UAAU,CAAC,KAAK,EAAW,CAAC;YAEpC,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,IAAI,UAAqB,CAAC;gBAC1B,IAAI,eAA8B,CAAC;gBACnC,IAAI,gBAAqC,CAAC;gBAC1C,IAAI,KAAK,GAAU,CAAC,CAAC;gBAErB,MAAM,CAAC,IAAI,+BAAc,CACxB;oBAEC,UAAU,GAAG,IAAI,aAAK,CAAM,MAAM,CAAC,CAAC;oBACpC,KAAK,GAAG,CAAC,CAAC;oBACV,eAAe,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;oBACpC,gBAAgB,GAAG,IAAI,CAAC;gBACzB,CAAC,EAED,UAAC,OAAO;oBAEP,EAAE,CAAA,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAC9B,CAAC;wBACA,OAAM,IAAI,EACV,CAAC;4BACA,OAAM,CAAC,gBAAgB,EACvB,CAAC;gCACA,EAAE,CAAA,CAAC,UAAU,CAAC,KAAK,CAAC,CACpB,CAAC;oCACA,IAAI,IAAI,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;oCAChC,EAAE,CAAA,CAAC,IAAI,CAAC;wCACP,gBAAgB,GAAG,iBAAc,CAAU,IAAI,CAAC,CAAC;gCACnD,CAAC;gCACD,IAAI;oCACH,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;4BAC9B,CAAC;4BAED,EAAE,CAAA,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;gCAC9B,MAAM,CAAC,OAAO,CAAC,WAAW,CACzB,cAAc,CAAC,eAAe,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAC1E,CAAC;4BAEH,gBAAgB,CAAC,OAAO,EAAE,CAAC;4BAC3B,gBAAgB,GAAG,IAAI,CAAC;wBACzB,CAAC;oBACF,CAAC;oBAED,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBAC7B,CAAC,EAED;oBAEC,iBAAO,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;gBACtC,CAAC,CACD,CAAC;YACH,CAAC,CACD,CAAC;QACH,CAAC;QAKD,iCAAI,GAAJ,UACC,KAAgC,EAChC,gBAAkC,EAClC,gBAAuC,EACvC,cAAiD,EACjD,eAA6D;YAA7D,+BAA6D,GAA7D,kBAA2C,SAAS,CAAC,QAAQ;YAG7D,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,IAAI,eAA8B,CAAC;gBACnC,IAAI,MAA2B,CAAC;gBAChC,IAAI,aAAa,GAAY,IAAI,CAAC;gBAClC,IAAI,UAAU,GAAU,CAAC,CAAC;gBAE1B,MAAM,CAAC,IAAI,+BAAc,CACxB;oBAEC,eAAe,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;oBACpC,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;yBAC7B,QAAQ,CAAC,gBAAgB,EAAE,SAAS,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;gBACnE,CAAC,EAED,UAAC,OAAO;oBAEP,OAAM,IAAI,EACV,CAAC;wBACA,EAAE,CAAA,CAAC,aAAa,IAAE,IAAI,CAAC,CACvB,CAAC;4BACA,IAAI,YAAY,GAAG,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC;4BAC/C,EAAE,CAAA,CAAC,YAAY,KAAG,KAAK,CAAC;gCACvB,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;4BAEnF,YAAY,GAAG,IAAI,CAAC;4BACpB,UAAU,GAAG,CAAC,CAAC;wBAChB,CAAC;wBAED,EAAE,CAAA,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAC9B,CAAC;4BACA,IAAI,GAAG,GAAG,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;4BACpD,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;wBACjC,CAAC;wBACD,IAAI,CACJ,CAAC;4BACA,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;wBAC7B,CAAC;oBACF,CAAC;gBACF,CAAC,EAED;oBAEC,iBAAO,CAAC,eAAe,CAAC,CAAC;gBAC1B,CAAC,CACD,CAAC;YACH,CAAC,CACD,CAAC;QACH,CAAC;QAED,sCAAS,GAAT,UACC,KAAgC,EAChC,gBAAkC,EAClC,gBAAuC,EACvC,cAAmD,EACnD,eAA6D;YAA7D,+BAA6D,GAA7D,kBAA2C,SAAS,CAAC,QAAQ;YAE7D,IAAI,CAAC,GAAG,IAAI,CAAC;YAEb,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,IAAI,UAAyB,CAAC;gBAC9B,IAAI,MAAM,GAAyB,IAAI,CAAC;gBAExC,MAAM,CAAC,IAAI,+BAAc,CACxB;oBAEC,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;oBAC/B,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;yBAC7B,QAAQ,CAAC,gBAAgB,EAAE,SAAS,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;gBACnE,CAAC,EAED,UAAC,OAAO;oBACR,OAAA,UAAU,CAAC,QAAQ,EAAE;2BAClB,OAAO,CAAC,WAAW,CACrB,cAAc,CACb,UAAU,CAAC,OAAO,EAClB,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAChD,CACD;gBAND,CAMC,EAED;oBAEC,iBAAO,CAAC,UAAU,CAAC,CAAC;gBACrB,CAAC,CACD,CAAC;YACH,CAAC,CACD,CAAC;QACH,CAAC;QAGD,kCAAK,GAAL,UAAM,WAAyC;YAE9C,IAAI,CAAC,GAAG,IAAI,EAAE,SAAS,GAAG,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC;YAE/C,EAAE,CAAA,CAAC,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,IAAE,CAAC,CAAC;gBACxC,MAAM,CAAC,CAAC,CAAC;YAEV,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,IAAI,UAAyB,CAAC;gBAC9B,IAAI,KAAkC,CAAC;gBAEvC,MAAM,CAAC,IAAI,+BAAc,CACxB;oBAGC,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;oBAC/B,KAAK,GAAG,IAAI,aAAK,CAAwB,WAAW,CAAC,CAAC;gBACvD,CAAC,EAED,UAAC,OAAO;oBAEP,OAAM,IAAI,EACV,CAAC;wBAEA,OAAM,CAAC,UAAU,IAAI,KAAK,CAAC,KAAK,EAChC,CAAC;4BACA,UAAU,GAAG,iBAAc,CAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;wBACjD,CAAC;wBAED,EAAE,CAAA,CAAC,UAAU,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;4BACtC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;wBAEhD,EAAE,CAAA,CAAC,UAAU,CAAC,CACd,CAAC;4BACA,UAAU,CAAC,OAAO,EAAE,CAAC;4BACrB,UAAU,GAAG,IAAI,CAAC;4BAClB,QAAQ,CAAC;wBACV,CAAC;wBAED,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;oBAC7B,CAAC;gBACF,CAAC,EAED;oBAEC,iBAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;gBAC5B,CAAC,EAED,SAAS,CACT,CAAC;YACH,CAAC,EACD,IAAI,EACJ,SAAS,CACT,CAAC;QACH,CAAC;QAED,mCAAM,GAAN;YAAO,qBAA2C;iBAA3C,WAA2C,CAA3C,sBAA2C,CAA3C,IAA2C;gBAA3C,oCAA2C;;YAEjD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAChC,CAAC;QAGD,kCAAK,GAAL,UACC,MAA4B,EAC5B,eAA0D;YAA1D,+BAA0D,GAA1D,kBAAwC,SAAS,CAAC,QAAQ;YAE1D,IAAI,CAAC,GAAG,IAAI,EAAE,SAAS,GAAG,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC;YAC/C,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,IAAI,eAA8B,CAAC;gBACnC,IAAI,gBAA+B,CAAC;gBACpC,IAAI,IAAuB,CAAC;gBAE5B,MAAM,CAAC,IAAI,+BAAc,CACxB;oBAEC,eAAe,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;oBACpC,IAAI,GAAG,IAAI,uBAAU,CAAS,eAAe,CAAC,CAAC;gBAChD,CAAC,EAED,UAAC,OAAO;oBAEP,IAAI,OAAS,CAAC;oBACd,EAAE,CAAA,CAAC,gBAAgB,KAAG,KAAK,CAAC,CAC5B,CAAC;wBACA,OAAM,eAAe,CAAC,QAAQ,EAAE,EAChC,CAAC;4BACA,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC;4BAClC,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAC9B,CAAC;gCACA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gCAClC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;4BACrC,CAAC;wBACF,CAAC;wBACD,gBAAgB,GAAG,iBAAc,CAAC,MAAM,CAAC,CAAC;oBAC3C,CAAC;oBACD,OAAM,gBAAgB,CAAC,QAAQ,EAAE,EACjC,CAAC;wBACA,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC;wBACnC,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAC9B,CAAC;4BACA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;4BAClC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;wBACrC,CAAC;oBACF,CAAC;oBACD,MAAM,CAAC,KAAK,CAAC;gBACd,CAAC,EAED;oBAEC,iBAAO,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;gBAC5C,CAAC,EAED,SAAS,CACT,CAAC;YACH,CAAC,EACD,IAAI,EAEJ,SAAS,CACT,CAAC;QACH,CAAC;QAED,qCAAQ,GAAR,UAAS,KAAY,EAAE,KAA2B;YAEjD,iBAAO,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC5C,IAAI,CAAC,GAAU,KAAK,CAAC;YAErB,IAAI,CAAC,GAAG,IAAI,EAAE,SAAS,GAAG,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC;YAC/C,CAAC,CAAC,eAAe,EAAE,CAAC;YAEpB,MAAM,CAAC,IAAI,UAAU,CACpB;gBAGC,IAAI,eAA8B,CAAC;gBACnC,IAAI,gBAA+B,CAAC;gBAEpC,IAAI,KAAK,GAAU,CAAC,CAAC;gBACrB,IAAI,YAAY,GAAW,KAAK,CAAC;gBAEjC,MAAM,CAAC,IAAI,+BAAc,CACxB;oBAEC,KAAK,GAAG,CAAC,CAAC;oBACV,eAAe,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;oBACpC,gBAAgB,GAAG,iBAAc,CAAI,KAAK,CAAC,CAAC;oBAC5C,YAAY,GAAG,KAAK,CAAC;gBACtB,CAAC,EAED,UAAC,OAAO;oBAEP,EAAE,CAAA,CAAC,KAAK,IAAE,CAAC,CAAC,CACZ,CAAC;wBACA,YAAY,GAAG,IAAI,CAAC;wBACpB,EAAE,CAAA,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;4BAC9B,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;oBACvD,CAAC;oBAED,EAAE,CAAA,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAC9B,CAAC;wBACA,KAAK,EAAE,CAAC;wBACR,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;oBACrD,CAAC;oBAED,MAAM,CAAC,CAAC,YAAY;2BAChB,gBAAgB,CAAC,QAAQ,EAAE;2BAC3B,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBACnD,CAAC,EAED;oBAEC,iBAAO,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;gBAC5C,CAAC,EAED,SAAS,CACT,CAAC;YACH,CAAC,EACD,IAAI,EAEJ,SAAS,CACT,CAAC;QACH,CAAC;QAGD,8CAAiB,GAAjB,UAAkB,QAA8B;YAE/C,IAAI,CAAC,GAAG,IAAI,CAAC;YAEb,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,IAAI,MAAQ,EACR,IAAqB,EACrB,UAAyB,EACzB,mBAAkC,CAAC;gBAEvC,MAAM,CAAC,IAAI,+BAAc,CACxB;oBAGC,mBAAmB,GAAG,IAAI,iCAAe,CACxC,UAAU,CAAC,OAAO,CAAI,QAAQ,CAAC,CAC/B,CAAC;oBAEF,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;oBAE/B,IAAI,aAAa,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;oBAC1C,IAAI,GAAG,aAAa;0BACjB,CAAuB;0BACvB,CAAsB,CAAC;oBAE1B,EAAE,CAAA,CAAC,aAAa,CAAC;wBAChB,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC;gBAC9B,CAAC,EAED,UAAC,OAAO;oBAEP,MAAM,CAAA,CAAC,IAAI,CAAC,CACZ,CAAC;wBACA,KAAK,CAAsB;4BAC1B,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;wBAE7B,KAAK,CAAqB;4BACzB,EAAE,CAAA,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC;gCACjC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;4BACzD,mBAAmB,CAAC,KAAK,EAAE,CAAC;4BAC5B,IAAI,GAAG,CAAuB,CAAC;4BAC/B,KAAK,CAAC;oBACR,CAAC;oBAED,IAAI,MAAM,GAAG,MAAM,CAAC;oBAKpB,IAAI,OAAO,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;oBACpC,IAAI,GAAG,OAAO;0BACX,CAAqB;0BACrB,CAAsB,CAAC;oBAE1B,EAAE,CAAA,CAAC,OAAO,CAAC;wBACV,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC;oBAE7B,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAEpC,CAAC,EAED;oBAEC,iBAAO,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;gBAC1C,CAAC,EAED,CAAC,CAAC,UAAU,CACZ,CAAC;YACH,CAAC,EACD,IAAI,EAEJ,CAAC,CAAC,UAAU,CACZ,CAAC;QACH,CAAC;QAED,4CAAe,GAAf,UAAgB,KAAO;YAEtB,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACvD,CAAC;QAED,sCAAS,GAAT;YAAU,kBAAe;iBAAf,WAAe,CAAf,sBAAe,CAAf,IAAe;gBAAf,iCAAe;;YAExB,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACzC,CAAC;QAID,uCAAU,GAAV,UAAW,OAAuB;YAEjC,IAAI,CAAC,GAAG,IAAI,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;YAC9C,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,IAAI,UAAyB,CAAC;gBAE9B,MAAM,CAAC,IAAI,+BAAc,CACxB;oBAEC,IACA,CAAC;wBACA,eAAe,CAAC,QAAQ,CAAC,CAAC;wBAC1B,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;oBAChC,CACA;oBAAA,KAAK,CAAA,CAAC,CAAC,CAAC,CACR,CAAC;oBAED,CAAC;gBACF,CAAC,EAED,UAAC,OAAO;oBAEP,IACA,CAAC;wBACA,eAAe,CAAC,QAAQ,CAAC,CAAC;wBAC1B,EAAE,CAAA,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;4BACxB,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;oBACjD,CACA;oBAAA,KAAK,CAAA,CAAC,CAAC,CAAC,CACR,CAAC;wBACA,OAAO,CAAC,CAAC,CAAC,CAAC;oBACZ,CAAC;oBACD,MAAM,CAAC,KAAK,CAAC;gBACd,CAAC,EAED;oBAEC,iBAAO,CAAC,UAAU,CAAC,CAAC;gBACrB,CAAC,CACD,CAAC;YACH,CAAC,CACD,CAAC;QACH,CAAC;QAED,0CAAa,GAAb,UAAc,MAAiB;YAE9B,IAAI,CAAC,GAAG,IAAI,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;YAE9C,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,IAAI,UAAyB,CAAC;gBAE9B,MAAM,CAAC,IAAI,+BAAc,CACxB;oBAEC,eAAe,CAAC,QAAQ,CAAC,CAAC;oBAC1B,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;gBAChC,CAAC,EAED,UAAC,OAAO;oBAEP,eAAe,CAAC,QAAQ,CAAC,CAAC;oBAC1B,MAAM,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;0BAC3B,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC;0BACvC,KAAK,CAAC;gBACV,CAAC,EAED;oBAEC,IACA,CAAC;wBACA,iBAAO,CAAC,UAAU,CAAC,CAAC;oBACrB,CAAC;4BAED,CAAC;wBACA,MAAM,EAAE,CAAC;oBACV,CAAC;gBACF,CAAC,CACD,CAAC;YACH,CAAC,CACD,CAAC;QACH,CAAC;QAGD,mCAAM,GAAN,UAAO,IAAW;YAEjB,EAAE,CAAA,CAAC,IAAI,GAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAEzC,iBAAO,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAE7B,IAAI,CAAC,GAAG,IAAI,EAAE,GAAU,CAAC;YAEzB,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,IAAI,UAAyB,CAAC;gBAC9B,MAAM,CAAC,IAAI,+BAAc,CACxB;oBAEC,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;gBAChC,CAAC,EAED,UAAC,OAAO;oBAEP,IAAI,KAAK,GAAO,YAAY,CAAC,UAAU,CAAI,IAAI,CAAC,CAAC;oBACjD,GAAG,GAAG,CAAC,CAAC;oBACR,OAAM,GAAG,GAAC,IAAI,IAAI,UAAU,CAAC,QAAQ,EAAE,EACvC,CAAC;wBACA,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC;oBACnC,CAAC;oBAED,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;oBACnB,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBAC1C,CAAC,EAED;oBAEC,iBAAO,CAAC,UAAU,CAAC,CAAC;gBACrB,CAAC,EAED,CAAC,CAAC,UAAU,CACZ,CAAC;YACH,CAAC,EACD,IAAI,EAEJ,CAAC,CAAC,UAAU,CACZ,CAAC;QACH,CAAC;QAGD,kCAAK,GAAL;YAEC,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,CAAC,CAAC,eAAe,EAAE,CAAC;YAEpB,IAAI,gBAA+B,CAAC;YACpC,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,MAAM,CAAC,gBAAgB,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC;YACnE,CAAC,EAED;gBAEC,iBAAO,CAAC,gBAAgB,CAAC,CAAC;YAC3B,CAAC,EAED,CAAC,CAAC,UAAU,CACZ,CAAC;QACH,CAAC;QAGF,yBAAC;IAAD,CAAC,AAprDD,CACQ,+BAAc,GAmrDrB;IAprDY,0BAAkB,qBAorD9B,CAAA;IASD;QACQ,8BAAqB;QAG5B,oBACC,iBAAsC,EACtC,SAAqB,EACrB,SAAwB;YAAxB,yBAAwB,GAAxB,gBAAwB;YAExB,kBAAM,iBAAiB,EAAE,SAAS,CAAC,CAAC;YACpC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC7B,CAAC;QAOM,eAAI,GAAX,UAAe,MAA4B;YAE1C,IAAI,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACnC,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC;gBAAC,MAAM,IAAI,+DAA8B,EAAE,CAAC;YAClD,MAAM,CAAC,CAAC,CAAC;QACV,CAAC;QAaM,kBAAO,GAAd,UACC,MAAU,EACV,iBAAsC;YAAtC,iCAAsC,GAAtC,wBAAsC;YAEtC,EAAE,CAAA,CAAC,YAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,YAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAClD,CAAC;gBACA,EAAE,CAAA,CAAC,MAAM,YAAY,UAAU,CAAC;oBAC/B,MAAM,CAAC,MAAM,CAAC;gBAEf,EAAE,CAAA,CAAC,YAAI,CAAC,WAAW,CAAI,MAAM,CAAC,CAAC;oBAC9B,MAAM,CAAC,IAAI,eAAe,CAAI,MAAM,CAAC,CAAC;gBAEvC,EAAE,CAAA,CAAC,yBAAY,CAAI,MAAM,CAAC,CAAC;oBAC1B,MAAM,CAAC,IAAI,UAAU,CACpB,cAAI,OAAA,MAAM,CAAC,aAAa,EAAE,EAAtB,CAAsB,EAC1B,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YAC3B,CAAC;YAED,MAAM,CAAC,iBAAiB,CAAC;QAC1B,CAAC;QAEM,sBAAW,GAAlB,UAAsB,MAA4B;YAEjD,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,KAAK,EAAK,CAAC;QAC5D,CAAC;QAOM,kBAAO,GAAd,UAAkB,MAA4B;YAE7C,EAAE,CAAA,CAAC,MAAM,YAAY,UAAU,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAEzB,MAAM,CAAC,oBAAO,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;QAKM,iBAAM,GAAb,UAAiB,MAAgB;YAEhC,IAAI,GAAG,GAAG,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;YAGlC,EAAE,CAAA,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACzB,MAAM,IAAI,yDAA2B,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAEzD,MAAM,CAAC,IAAI,kBAAkB,CAC5B,cAAM,OAAA,IAAI,+BAAc,CACvB,IAAI,EACJ,UAAC,OAAO;gBACP,OAAA,OAAO,CAAC,WAAW,CAAC,iBAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAAlD,CAAkD,EACnD,IAAI,CACJ,EALK,CAKL,CACD,CAAC;QACH,CAAC;QAEM,qBAAU,GAAjB;YAAqB,cAAW;iBAAX,WAAW,CAAX,sBAAW,CAAX,IAAW;gBAAX,6BAAW;;YAE/B,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC;QAEM,gBAAK,GAAZ,UAAgB,MAAgB;YAE/B,IAAI,GAAG,GAAG,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;YAGlC,EAAE,CAAA,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACzB,MAAM,IAAI,yDAA2B,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAEzD,MAAM,CAAC,IAAI,kBAAkB,CAC5B;gBAEC,IAAI,KAAK,GAAU,CAAC,CAAC;gBACrB,MAAM,CAAC,IAAI,+BAAc,CACxB;oBAEC,KAAK,GAAG,CAAC,CAAC;gBACX,CAAC,EACD,UAAC,OAAO;oBAEP,EAAE,CAAA,CAAC,KAAK,IAAE,MAAM,CAAC,MAAM,CAAC;wBAAC,KAAK,GAAG,CAAC,CAAC;oBACnC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC7C,CAAC,EACD,IAAI,CACJ,CAAC;YACH,CAAC,CACD,CAAC;QACH,CAAC;QAEM,uBAAY,GAAnB;YAAuB,cAAW;iBAAX,WAAW,CAAX,sBAAW,CAAX,IAAW;gBAAX,6BAAW;;YAEjC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;QAEM,gBAAK,GAAZ;YAGC,MAAM,CAAC,IAAI,gBAAgB,CAAI,kBAAkB,CAAC,CAAC;QACpD,CAAC;QAIM,iBAAM,GAAb,UAAiB,OAAS,EAAE,KAAuB;YAAvB,qBAAuB,GAAvB,gBAAuB;YAElD,EAAE,CAAA,CAAC,CAAC,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC;gBACb,MAAM,CAAC,UAAU,CAAC,KAAK,EAAK,CAAC;YAE9B,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,iBAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC;kBACrD,IAAI,gBAAgB,CACtB;oBAEC,IAAI,CAAC,GAAU,KAAK,CAAC;oBACrB,IAAI,KAAK,GAAU,CAAC,CAAC;oBAErB,MAAM,CAAC,IAAI,+BAAc,CACxB,cAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EACpB,UAAC,OAAO,IAAI,OAAA,CAAC,KAAK,EAAE,GAAC,CAAC,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,EAA3C,CAA2C,EACvD,IAAI,EACJ,KAAK,CACL,CAAC;gBACH,CAAC,CACD;kBACE,IAAI,UAAU,CAChB;oBACC,OAAA,IAAI,+BAAc,CACjB,IAAI,EACJ,UAAC,OAAO,IAAI,OAAA,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,EAA5B,CAA4B,EACxC,IAAI,CACJ;gBAJD,CAIC,CACF,CAAC;QACH,CAAC;QAGM,6BAAkB,GAAzB,UACC,WAAmB,EACnB,SAA6B;YAG7B,MAAM,CAAC,IAAI,kBAAkB,CAC5B;gBAEC,IAAI,OAAS,CAAC;gBACd,MAAM,CAAC,IAAI,+BAAc,CACxB;oBAEC,OAAO,GAAG,WAAW,EAAE,CAAC;gBACzB,CAAC,EAED,UAAC,OAAO,IAAI,OAAA,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,EAA5B,CAA4B,EAExC;oBAEC,SAAS,CAAC,OAAO,CAAC,CAAC;gBACpB,CAAC,EAED,IAAI,CAEJ,CAAC;YACH,CAAC,CACD,CAAC;QACH,CAAC;QAOM,eAAI,GAAX,UAAe,OAAS;YAEvB,MAAM,CAAC,UAAU,CAAC,MAAM,CAAI,OAAO,EAAE,CAAC,CAAC,CAAC;QACzC,CAAC;QAIM,gBAAK,GAAZ,UACC,KAAY,EACZ,KAAY,EACZ,IAAe;YAAf,oBAAe,GAAf,QAAe;YAEf,EAAE,CAAA,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACnB,MAAM,IAAI,yDAA2B,CAAC,OAAO,EAAE,KAAK,EAAE,0BAA0B,CAAC,CAAC;YAEnF,EAAE,CAAA,CAAC,CAAC,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC;gBACb,MAAM,CAAC,UAAU,CAAC,KAAK,EAAU,CAAC;YAEnC,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC;gBACR,MAAM,IAAI,yDAA2B,CAAC,MAAM,EAAE,IAAI,EAAE,uBAAuB,CAAC,CAAC;YAE9E,EAAE,CAAA,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAClB,MAAM,IAAI,yDAA2B,CAAC,MAAM,EAAE,IAAI,EAAE,0BAA0B,CAAC,CAAC;YAEjF,iBAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAE/B,MAAM,CAAC,IAAI,gBAAgB,CAC1B;gBAEC,IAAI,KAAY,CAAC;gBACjB,IAAI,CAAC,GAAU,KAAK,CAAC;gBACrB,IAAI,KAAK,GAAU,CAAC,CAAC;gBAErB,MAAM,CAAC,IAAI,+BAAc,CACxB;oBAEC,KAAK,GAAG,CAAC,CAAC;oBACV,KAAK,GAAG,KAAK,CAAC;gBACf,CAAC,EAED,UAAC,OAAO;oBAEP,IAAI,MAAM,GACL,KAAK,EAAE,GAAC,CAAC;2BACN,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;oBAEnC,EAAE,CAAA,CAAC,MAAM,IAAI,KAAK,GAAC,KAAK,CAAC;wBACxB,KAAK,IAAI,IAAI,CAAC;oBAEf,MAAM,CAAC,MAAM,CAAC;gBACf,CAAC,EAED,KAAK,CACL,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAEM,oBAAS,GAAhB,UACC,KAAY,EACZ,KAAY,EACZ,IAAe;YAAf,oBAAe,GAAf,QAAe;YAEf,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,CAAC;YAE1B,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC;QAGM,qBAAU,GAAjB,UACC,KAAgB,EAChB,IAAe;YADf,qBAAgB,GAAhB,SAAgB;YAChB,oBAAe,GAAf,QAAe;YAEf,EAAE,CAAA,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACnB,MAAM,IAAI,yDAA2B,CAAC,OAAO,EAAE,KAAK,EAAE,0BAA0B,CAAC,CAAC;YAEnF,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC;gBACR,MAAM,IAAI,yDAA2B,CAAC,MAAM,EAAE,IAAI,EAAE,uBAAuB,CAAC,CAAC;YAE9E,EAAE,CAAA,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAClB,MAAM,IAAI,yDAA2B,CAAC,MAAM,EAAE,IAAI,EAAE,0BAA0B,CAAC,CAAC;YAEjF,MAAM,CAAC,IAAI,kBAAkB,CAC5B;gBAEC,IAAI,KAAY,CAAC;gBAEjB,MAAM,CAAC,IAAI,+BAAc,CACxB;oBAEC,KAAK,GAAG,KAAK,CAAC;gBACf,CAAC,EAED,UAAC,OAAO;oBAEP,IAAI,OAAO,GAAU,KAAK,CAAC;oBAC3B,KAAK,IAAI,IAAI,CAAC;oBACd,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBACrC,CAAC,EAED,IAAI,CACJ,CAAC;YACH,CAAC,CACD,CAAC;QACH,CAAC;QAEM,6BAAkB,GAAzB,UACC,KAAgB,EAChB,IAAe;YADf,qBAAgB,GAAhB,SAAgB;YAChB,oBAAe,GAAf,QAAe;YAEf,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;QAEM,kBAAO,GAAd,UACC,KAAY,EACZ,EAAS,EACT,IAAe;YAAf,oBAAe,GAAf,QAAe;YAEf,EAAE,CAAA,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAC7B,MAAM,IAAI,yDAA2B,CAAC,IAAI,EAAE,EAAE,EAAE,0BAA0B,CAAC,CAAC;YAE7E,EAAE,CAAA,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC1B,MAAM,IAAI,yDAA2B,CAAC,MAAM,EAAE,IAAI,EAAE,mCAAmC,CAAC,CAAC;YAG1F,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAEtB,MAAM,CAAC,IAAI,gBAAgB,CAC1B;gBAEC,IAAI,KAAY,CAAC;gBAEjB,MAAM,CAAC,IAAI,+BAAc,CAAS,cAAQ,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,EACzD,KAAK,GAAC,EAAE;;wBAEP,UAAA,OAAO;4BAEN,IAAI,MAAM,GAAW,KAAK,IAAE,EAAE,IAAI,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;4BAE7D,EAAE,CAAA,CAAC,MAAM,CAAC;gCACT,KAAK,IAAI,IAAI,CAAC;4BAEf,MAAM,CAAC,MAAM,CAAC;wBACf,CAAC;;wBAED,UAAA,OAAO;4BAEN,IAAI,MAAM,GAAW,KAAK,IAAE,EAAE,IAAI,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;4BAE7D,EAAE,CAAA,CAAC,MAAM,CAAC;gCACT,KAAK,IAAI,IAAI,CAAC;4BAEf,MAAM,CAAC,MAAM,CAAC;wBACf,CAAC,EACA,KAAK,CAAC,CAAC;YACX,CAAC,CACD,CAAC;QACH,CAAC;QAEM,kBAAO,GAAd,UAAe,KAAY,EAAE,OAAW,EAAE,KAAiB;YAAjB,qBAAiB,GAAjB,UAAiB;YAE1D,EAAE,CAAA,CAAC,KAAK,KAAG,IAAI,IAAI,KAAK,KAAG,KAAK,CAAC;gBAChC,MAAM,IAAI,6CAAqB,CAAC,OAAO,CAAC,CAAC;YAC1C,IAAI,IAAI,GAAG,OAAO,KAAK,CAAC;YACxB,EAAE,CAAA,CAAC,IAAI,IAAE,YAAI,CAAC,MAAM,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,sCAAsC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;YAEvE,EAAE,CAAA,CAAC,OAAO,YAAY,MAAM,CAAC,CAC7B,CAAC;gBACA,KAAK,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;gBACzC,KAAK,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;gBACxC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;YAC1B,CAAC;YAED,EAAE,CAAA,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAI,CAAC,CAAC,CAAC;gBAAC,KAAK,IAAI,GAAG,CAAC;YAE1C,MAAM,CAAC,IAAI,gBAAgB,CAC1B;gBAEC,IAAI,KAAY,CAAC;gBACjB,MAAM,CAAC,IAAI,+BAAc,CACxB;oBAEC,KAAK,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBACpC,CAAC,EAED,UAAC,OAAO;oBAGP,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC9B,MAAM,CAAC,CAAC,KAAK,KAAG,IAAI,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;gBAC5D,CAAC,CACD,CAAC;YACH,CAAC,CACD,CAAC;QACH,CAAC;QAIM,mBAAQ,GAAf,UAAmB,OAA4B,EAAE,KAAuB;YAAvB,qBAAuB,GAAvB,gBAAuB;YAGvE,EAAE,CAAA,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,IAAE,CAAC,CAAC;gBAC3B,MAAM,CAAC,UAAU,CAAC,KAAK,EAAK,CAAC;YAE9B,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,iBAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC;;oBAEvD,IAAI,gBAAgB,CACnB;wBAEC,IAAI,CAAC,GAAU,KAAK,CAAC;wBACrB,IAAI,KAAK,GAAU,CAAC,CAAC;wBAErB,MAAM,CAAC,IAAI,+BAAc,CACxB;4BAEC,KAAK,GAAG,CAAC,CAAC;wBACX,CAAC,EAED,UAAC,OAAO;4BAEP,IAAI,OAAO,GAAU,KAAK,EAAE,CAAC;4BAC7B,MAAM,CAAC,OAAO,GAAC,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;wBAC3D,CAAC,EAED,KAAK,CACL,CAAC;oBACH,CAAC,CAAC;;oBAEH,IAAI,kBAAkB,CACrB;wBAEC,IAAI,KAAK,GAAU,CAAC,CAAC;wBACrB,MAAM,CAAC,IAAI,+BAAc,CACxB;4BAEC,KAAK,GAAG,CAAC,CAAC;wBACX,CAAC,EAED,UAAC,OAAO,IAAI,OAAA,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,EAArC,CAAqC,EAEjD,IAAI,CACJ,CAAC;oBACH,CAAC,CAAC,CAAC;QACN,CAAC;QAEM,iBAAM,GAAb,UACC,IAAM,EACN,YAA2B,EAC3B,QAAwB;YAAxB,wBAAwB,GAAxB,gBAAwB;YAExB,MAAM,CAAC,IAAI,kBAAkB,CAC5B;gBAEC,IAAI,KAAK,GAAU,CAAC,CAAC;gBACrB,IAAI,KAAO,CAAC;gBACZ,IAAI,OAAe,CAAC;gBACpB,MAAM,CAAC,IAAI,+BAAc,CACxB;oBAEC,KAAK,GAAG,CAAC,CAAC;oBACV,KAAK,GAAG,IAAI,CAAC;oBACb,OAAO,GAAG,CAAC,QAAQ,CAAC;gBACrB,CAAC,EAED,UAAC,OAAO;oBAEP,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC;oBAChB,EAAE,CAAA,CAAC,OAAO,CAAC;wBACV,OAAO,GAAG,KAAK,CAAC;oBACjB,IAAI;wBACH,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;oBAChC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACnC,CAAC,EAED,IAAI,CACJ,CAAC;YACH,CAAC,CACD,CAAC;QACH,CAAC;QAEM,kBAAO,GAAd,UACC,UAAgC,EAChC,MAAwC;YAIxC,oBAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC7B,CAAC;QAEM,cAAG,GAAV,UACC,UAAgC,EAChC,QAA4B;YAI5B,MAAM,CAAC,gBAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAElC,CAAC;QAGM,cAAG,GAAV,UAAW,MAA+B;YAEzC,MAAM,CAAC,MAAM;iBACX,SAAS,CAAC,UAAA,CAAC,IAAG,OAAA,CAAC,IAAG,CAAC,QAAQ,EAAb,CAAa,EAAE,IAAI,CAAC;iBAClC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;QAEM,cAAG,GAAV,UAAW,MAA+B;YAEzC,MAAM,CAAC,MAAM;iBACX,SAAS,CAAC,UAAA,CAAC,IAAG,OAAA,CAAC,IAAG,CAAC,QAAQ,EAAb,CAAa,EAAE,IAAI,CAAC;iBAClC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;QAQM,gBAAK,GAAZ,UACC,WAAqD;YAErD,EAAE,CAAA,CAAC,CAAC,WAAW,CAAC;gBACf,MAAM,IAAI,6CAAqB,CAAC,aAAa,CAAC,CAAC;YAEhD,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,IAAI,KAA2B,CAAC;gBAChC,IAAI,cAAiD,CAAC;gBACtD,IAAI,KAAY,CAAC;gBAEjB,MAAM,CAAC,IAAI,+BAAc,CACxB;oBAEC,KAAK,GAAG,CAAC,CAAC;oBACV,KAAK,GAAG,IAAI,aAAK,EAAkB,CAAC;oBACpC,cAAc,GAAG,iBAAc,CAAC,WAAW,CAAC,CAAC;gBAC9C,CAAC,EAED,UAAC,OAAO;oBAEP,IAAI,CAAgB,CAAC;oBAGrB,EAAE,CAAA,CAAC,cAAc,CAAC,CAClB,CAAC;wBACA,OAAM,CAAC,CAAC,IAAI,cAAc,CAAC,QAAQ,EAAE,EACrC,CAAC;4BACA,IAAI,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC;4BAC/B,CAAC,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC,IAAI,iBAAc,CAAC,CAAC,CAAC,CAAC,CAAC;wBACnD,CAAC;wBAED,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC;4BACL,cAAc,GAAG,IAAI,CAAC;oBACxB,CAAC;oBAED,OAAM,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,EACvB,CAAC;wBACA,CAAC,GAAG,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC5C,CAAC;oBAED,MAAM,CAAC,CAAC;0BACL,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC;0BAC9B,OAAO,CAAC,UAAU,EAAE,CAAC;gBAEzB,CAAC,EAED;oBAEC,iBAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;oBAC5B,iBAAO,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;oBAC/B,cAAc,GAAG,IAAI,CAAC;oBACtB,KAAK,GAAG,IAAI,CAAC;gBACd,CAAC,CACD,CAAC;YACH,CAAC,CACD,CAAC;QACH,CAAC;QAID,6BAAQ,GAAR,UACC,MAA+E,EAC/E,WAAqB,EACrB,SAAkC;YAAlC,yBAAkC,GAAlC,YAAoB,IAAI,CAAC,SAAS;YAElC,MAAM,CAAgB,gBAAK,CAAC,QAAQ,YAAC,MAAM,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QACtE,CAAC;QAID,yBAAI,GAAJ,UAAK,KAAY;YAEhB,MAAM,CAAgB,gBAAK,CAAC,IAAI,YAAC,KAAK,CAAC,CAAC;QACzC,CAAC;QAED,8BAAS,GAAT,UAAU,SAAsB;YAE/B,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC,QAAQ,CACnB,UAAC,OAAS,EAAE,KAAa;gBACxB,OAAA,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC;sBACtB,CAAqB;sBACrB,CAAuB;YAF1B,CAE0B,CAC3B,CAAC;QACH,CAAC;QAED,8BAAS,GAAT,UAAU,SAAsB;YAE/B,IAAI,CAAC,eAAe,EAAE,CAAC;YAEvB,EAAE,CAAA,CAAC,CAAC,SAAS,CAAC;gBACb,MAAM,IAAI,6CAAqB,CAAC,WAAW,CAAC,CAAC;YAE9C,MAAM,CAAC,IAAI,CAAC,QAAQ,CACnB,UAAC,OAAS,EAAE,KAAa;gBACxB,OAAA,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC;sBACtB,CAAuB;sBACvB,CAAsB;YAFzB,CAEyB,EAC1B,IAAI,EACJ,IAAI,CACJ,CAAC;QACH,CAAC;QAGD,8BAAS,GAAT,UAAU,SAAsB,EAAE,iBAA0B;YAE3D,IAAI,CAAC,eAAe,EAAE,CAAC;YAEvB,EAAE,CAAA,CAAC,CAAC,SAAS,CAAC;gBACb,MAAM,IAAI,6CAAqB,CAAC,WAAW,CAAC,CAAC;YAE9C,EAAE,CAAA,CAAC,CAAC,iBAAiB,CAAC;gBACrB,MAAM,CAAC,IAAI,CAAC,QAAQ,CACnB,UAAC,OAAS,EAAE,KAAa;oBACxB,OAAA,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC;0BACtB,CAAsB;0BACtB,CAAuB;gBAF1B,CAE0B,EAC3B,IAAI,EACJ,IAAI,CACJ,CAAC;YAEH,IAAI,KAAK,GAAW,KAAK,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,QAAQ,CACnB,UAAC,OAAS,EAAE,KAAa;gBAExB,EAAE,CAAA,CAAC,KAAK,CAAC;oBACR,MAAM,CAAC,CAAsB,CAAC;gBAE/B,KAAK,GAAG,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAClC,MAAM,CAAC,CAAuB,CAAC;YAChC,CAAC,EACD;gBAEC,KAAK,GAAG,KAAK,CAAC;YACf,CAAC,EACD,IAAI,CACJ,CAAC;QACH,CAAC;QAGD,4BAAO,GAAP,UAAQ,MAA+B;YAGtC,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,2BAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAE5B,IAAI,KAAK,GAAU,CAAC,CAAC;YAErB,eAAK,CACJ,CAAC,CAAC,aAAa,EAAE,EAAE,UAAA,CAAC;gBAEnB,2BAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;gBAG5B,OAAM,CAAC,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,EACzC,CAAC;oBACA,EAAE,CAAA,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,KAAG,KAAK,CAAC;wBACrC,KAAK,CAAC;gBACR,CAAC;YACF,CAAC,CACD,CAAC;QACH,CAAC;QAGD,4BAAO,GAAP,UAAQ,SAAuB;YAE9B,MAAM,CAAC,SAAS;kBACb,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE;kBAC/B,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACpB,CAAC;QAED,2BAAM,GAAN,UAAO,MAAU,EAAE,KAAgB;YAAhB,qBAAgB,GAAhB,SAAgB;YAElC,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,EAAE,CAAA,CAAC,CAAC,MAAM,CAAC;gBAAC,MAAM,IAAI,6CAAqB,CAAC,QAAQ,CAAC,CAAC;YACtD,iBAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;YAGnC,oBAAO,CAAI,IAAI,EAAE,UAAC,CAAC,EAAE,CAAC;gBAErB,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;YACtB,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC;QACf,CAAC;QAED,6BAAQ,GAAR,UACC,WAA6B,EAC7B,eAAwD,EACxD,eAA6D;YAD7D,+BAAwD,GAAxD,kBAAsC,SAAS,CAAC,QAAQ;YACxD,+BAA6D,GAA7D,kBAA2C,SAAS,CAAC,QAAQ;YAE7D,IAAI,IAAI,GAA8B,IAAI,uBAAU,CAAiB,eAAe,CAAC,CAAC;YACtF,IAAI,CAAC,OAAO,CACX,UAAA,CAAC;gBAEA,IAAI,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gBACzB,IAAI,OAAO,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;gBAEjC,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAC/B,EAAE,CAAA,CAAC,KAAK,KAAG,KAAK,CAAC;oBAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACtC,IAAI;oBAAC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;YACzC,CAAC,CACD,CAAC;YACF,MAAM,CAAC,IAAI,MAAM,CAAe,IAAI,CAAC,CAAC;QACvC,CAAC;QAED,0BAAK,GAAL,UACC,WAA+B,EAC/B,eAAoC;YAEpC,IAAI,GAAG,GAAiB,EAAE,CAAC;YAC3B,IAAI,CAAC,OAAO,CAAC,UAAC,CAAC,EAAE,CAAC;gBAEjB,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAChD,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,GAAG,CAAC;QACZ,CAAC;QAED,iCAAY,GAAZ,UACC,WAA6B,EAC7B,eAAmC,EACnC,eAA6D;YAA7D,+BAA6D,GAA7D,kBAA2C,SAAS,CAAC,QAAQ;YAE7D,IAAI,IAAI,GAA4B,IAAI,uBAAU,CAAe,eAAe,CAAC,CAAC;YAClF,IAAI,CAAC,OAAO,CAAC,UAAC,CAAC,EAAE,CAAC,IAAI,OAAA,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAA5D,CAA4D,CAAC,CAAC;YACpF,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,mCAAc,GAAd,UAAe,SAAqB,EAAE,QAAiD;YAAxE,yBAAqB,GAArB,cAAqB;YAAE,wBAAiD,GAAjD,WAA+B,SAAS,CAAC,QAAQ;YAEtF,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxD,CAAC;QAKD,mCAAc,GAAd,UAAe,KAAgB;YAAhB,qBAAgB,GAAhB,SAAgB;YAE9B,IAAI,CAAC,GAAG,IAAI,CAAC;YAEb,EAAE,CAAA,CAAC,CAAC,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC;gBACb,MAAM,CAAC,CAAC,CAAC;YAEV,EAAE,CAAA,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACnB,MAAM,CAAC,UAAU,CAAC,KAAK,EAAK,CAAC;YAE9B,iBAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC/B,IAAI,CAAC,GAAG,KAAK,CAAC;YAEd,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,IAAI,UAAyB,CAAC;gBAC9B,IAAI,CAAU,CAAC;gBAEf,MAAM,CAAC,IAAI,+BAAc,CACxB;oBAEC,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;oBAC/B,CAAC,GAAG,IAAI,aAAK,EAAK,CAAC;gBACpB,CAAC,EAED,UAAC,OAAO;oBAEP,OAAM,UAAU,CAAC,QAAQ,EAAE,EAC3B,CAAC;wBAEA,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;wBAG9B,EAAE,CAAA,CAAC,CAAC,CAAC,KAAK,GAAC,CAAC,CAAC;4BAEZ,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC1C,CAAC;oBACD,MAAM,CAAC,KAAK,CAAC;gBACd,CAAC,EAED;oBAEC,iBAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;gBACxB,CAAC,CACD,CAAC;YACH,CAAC,CACD,CAAC;QACH,CAAC;QAED,+BAAU,GAAV,UAAW,KAAY;YAEtB,EAAE,CAAA,CAAC,CAAC,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC;gBACb,MAAM,CAAC,UAAU,CAAC,KAAK,EAAK,CAAC;YAE9B,IAAI,CAAC,GAAG,IAAI,CAAC;YAEb,EAAE,CAAA,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACnB,MAAM,CAAC,CAAC,CAAC;YAEV,iBAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAG/B,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE;iBAChB,IAAI,CAAC,KAAK,CAAC;iBACX,OAAO,EAAE,CAAC;QACb,CAAC;QAID,0BAAK,GAAL,UAAM,SAAsB;YAE3B,MAAM,CAAgB,gBAAK,CAAC,KAAK,YAAC,SAAS,CAAC,CAAC;QAC9C,CAAC;QAED,2BAAM,GAAN,UAAgB,QAA6B;YAE5C,MAAM,CAAsB,gBAAK,CAAC,MAAM,YAAC,QAAQ,CAAC,CAAC;QACpD,CAAC;QAUD,+BAAU,GAAV,UACC,kBAAuD,EACvD,cAAoD;YAEpD,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;QAC7D,CAAC;QAID,2BAAM,GAAN,UAAO,QAA8C;YAA9C,wBAA8C,GAA9C,WAA4B,SAAS,CAAC,QAAQ;YAEpD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;QAED,4BAAO,GAAP;YAEC,IAAI,CAAC,GAAG,IAAI,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;YAC9C,2BAAc,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAE7B,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,IAAI,MAAU,CAAC;gBACf,IAAI,KAAK,GAAU,CAAC,CAAC;gBAErB,MAAM,CAAC,IAAI,+BAAc,CACxB;oBAEC,eAAe,CAAC,QAAQ,CAAC,CAAC;oBAC1B,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;oBACrB,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;gBACvB,CAAC,EAED,UAAC,OAAO,IAAI,OAAA,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC,EAA7C,CAA6C,EAEzD;oBAEC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBACnB,CAAC,CACD,CAAC;YACH,CAAC,EAED;gBAEC,QAAQ,GAAG,IAAI,CAAC;YACjB,CAAC,CACD,CAAC;QACH,CAAC;QAED,4BAAO,GAAP;YAEC,IAAI,CAAC,GAAG,IAAI,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;YAC9C,2BAAc,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAE7B,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,IAAI,MAAU,CAAC;gBACf,IAAI,QAAe,CAAC;gBACpB,IAAI,GAAU,CAAC;gBAEf,MAAM,CAAC,IAAI,+BAAc,CACxB;oBAEC,eAAe,CAAC,QAAQ,CAAC,CAAC;oBAC1B,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;oBACrB,QAAQ,GAAG,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;gBAChC,CAAC,EAED,UAAC,OAAO;oBAGP,EAAE,CAAA,CAAC,CAAC,GAAG,CAAC;wBACP,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;oBAE7B,IAAI,aAAa,GAAG,iBAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACxC,IAAI,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;oBAE1C,MAAM,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;oBACtC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;oBAEnB,EAAE,CAAA,CAAC,GAAG,GAAC,EAAE,IAAE,CAAC,CAAC;wBACZ,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC;oBAErB,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;gBAC3C,CAAC,EAED;oBAEC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBACnB,CAAC,CACD,CAAC;YACH,CAAC,EAED;gBAEC,QAAQ,GAAG,IAAI,CAAC;YACjB,CAAC,CACD,CAAC;QACH,CAAC;QAED,0BAAK,GAAL,UAAM,SAAuB;YAE5B,IAAI,KAAK,GAAU,CAAC,CAAC;YACrB,IAAI,CAAC,OAAO,CACX,SAAS;;oBAGR,UAAC,CAAC,EAAE,CAAC;wBAEJ,EAAE,CAAA,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;4BAAA,EAAE,KAAK,CAAC;oBAC5B,CAAC;;oBAGD;wBAEC,EAAE,KAAK,CAAC;oBACT,CAAC,CACF,CAAC;YAEF,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAGD,wBAAG,GAAH,UAAI,SAAsB;YAEzB,EAAE,CAAA,CAAC,CAAC,SAAS,CAAC;gBACb,MAAM,IAAI,6CAAqB,CAAC,WAAW,CAAC,CAAC;YAE9C,IAAI,MAAM,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,OAAO,CAAC,UAAC,CAAC,EAAE,CAAC;gBAEjB,EAAE,CAAA,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CACpB,CAAC;oBACA,MAAM,GAAG,KAAK,CAAC;oBACf,MAAM,CAAC,KAAK,CAAC;gBACd,CAAC;YACF,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC;QACf,CAAC;QAGD,0BAAK,GAAL,UAAM,SAAsB;YAE3B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC5B,CAAC;QAGD,wBAAG,GAAH,UAAI,SAAuB;YAE1B,EAAE,CAAA,CAAC,CAAC,SAAS,CAAC;gBACb,MAAM,CAAC,gBAAK,CAAC,GAAG,WAAE,CAAC;YAEpB,IAAI,MAAM,GAAG,KAAK,CAAC;YAGnB,IAAI,CAAC,OAAO,CACX,UAAC,CAAC,EAAE,CAAC;gBAEJ,MAAM,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACzB,MAAM,CAAC,CAAC,MAAM,CAAC;YAChB,CAAC,CAAC,CAAC;YACJ,MAAM,CAAC,MAAM,CAAC;QAEf,CAAC;QAGD,yBAAI,GAAJ,UAAK,SAAsB;YAE1B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC5B,CAAC;QAGD,6BAAQ,GAAR,UAAmB,KAAO,EAAE,eAAsC;YAEjE,MAAM,CAAC,eAAe;kBACnB,IAAI,CAAC,GAAG,CAAC,UAAA,CAAC,IAAG,OAAA,eAAe,CAAC,CAAC,CAAC,KAAG,eAAe,CAAC,KAAK,CAAC,EAA3C,CAA2C,CAAC;kBACzD,IAAI,CAAC,GAAG,CAAC,UAAA,CAAC,IAAG,OAAA,CAAC,KAAG,KAAK,EAAT,CAAS,CAAC,CAAC;QAC5B,CAAC;QAKD,4BAAO,GAAP,UAAkB,KAAO,EAAE,eAAsC;YAEhE,IAAI,KAAK,GAAU,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,OAAO,CACX,eAAe;;oBAEd,UAAC,OAAS,EAAE,CAAS;wBAEpB,EAAE,CAAA,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CACjF,CAAC;4BACA,KAAK,GAAG,CAAC,CAAC;4BACV,MAAM,CAAC,KAAK,CAAC;wBACd,CAAC;oBACF,CAAC;;oBAED,UAAC,OAAS,EAAE,CAAS;wBAGpB,EAAE,CAAA,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CACzC,CAAC;4BACA,KAAK,GAAG,CAAC,CAAC;4BACV,MAAM,CAAC,KAAK,CAAC;wBACd,CAAC;oBACF,CAAC,CAAC,CAAC;YAGL,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAED,gCAAW,GAAX,UAAsB,KAAO,EAAE,eAAsC;YAEpE,IAAI,MAAM,GAAU,CAAC,CAAC,CAAC;YACvB,IAAI,CAAC,OAAO,CACX,eAAe;;oBAEd,UAAC,OAAS,EAAE,CAAS;wBAEpB,EAAE,CAAA,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;4BAAC,MAAM;kCACrF,CAAC,CAAC;oBACN,CAAC;;oBAGD,UAAC,OAAS,EAAE,CAAS;wBAEpB,EAAE,CAAA,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;4BAAC,MAAM,GAAG,CAAC,CAAC;oBACtD,CAAC,CAAC,CAAC;YAEL,MAAM,CAAC,MAAM,CAAC;QACf,CAAC;QAED,0BAAK,GAAL,UAAM,WAAyC;YAE9C,MAAM,CAAgB,gBAAK,CAAC,KAAK,YAAC,WAAW,CAAC,CAAC;QAChD,CAAC;QAED,2BAAM,GAAN;YAAO,qBAA2C;iBAA3C,WAA2C,CAA3C,sBAA2C,CAA3C,IAA2C;gBAA3C,oCAA2C;;YAEjD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAChC,CAAC;QAGD,8BAAS,GAAT,UACC,MAA4B,EAC5B,eAAsC;YAEtC,IAAI,CAAC,GAAG,IAAI,CAAC;YAEb,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,IAAI,UAAyB,CAAC;gBAC9B,IAAI,IAA0B,CAAC;gBAC/B,IAAI,IAA0B,CAAC;gBAE/B,MAAM,CAAC,IAAI,+BAAc,CACxB;oBAEC,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;oBAE/B,IAAI,GAAG,IAAI,uBAAU,CAAa,eAAe,CAAC,CAAC;oBACnD,IAAI,GAAG,IAAI,uBAAU,CAAa,eAAe,CAAC,CAAC;oBAEnD,oBAAO,CAAC,MAAM,EAAE,UAAA,GAAG;wBAElB,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBAC/B,CAAC,CAAC,CAAC;gBACJ,CAAC,EAED,UAAC,OAAO;oBAEP,OAAM,UAAU,CAAC,QAAQ,EAAE,EAC3B,CAAC;wBACA,IAAI,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;wBACjC,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAC3D,CAAC;4BACA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;4BAClC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;wBACrC,CAAC;oBACF,CAAC;oBACD,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBAC7B,CAAC,EAED;oBAEC,iBAAO,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBACjC,CAAC,EACD,CAAC,CAAC,UAAU,CACZ,CAAC;YACH,CAAC,EACD,IAAI,EACJ,CAAC,CAAC,UAAU,CACZ,CAAC;QACH,CAAC;QAED,kCAAa,GAAb,UACC,MAA4B,EAC5B,gBAAwD;YAAxD,gCAAwD,GAAxD,mBAAyC,MAAM,CAAC,QAAQ;YAExD,MAAM,CAAC,eAAK,CACX,IAAI,CAAC,aAAa,EAAE,EACpB,UAAA,EAAE,IAAG,OAAA,eAAK,CACT,iBAAc,CAAC,MAAM,CAAC,EACtB,UAAA,EAAE;gBAGD,2BAAc,CAAC,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC;gBAE7C,OAAM,EAAE,CAAC,QAAQ,EAAE,EACnB,CAAC;oBACA,EAAE,CAAA,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;wBAC9D,MAAM,CAAC,KAAK,CAAC;gBACf,CAAC;gBAED,MAAM,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;YACvB,CAAC,CACD,EAfI,CAeJ,CACD,CAAC;QACH,CAAC;QAeD,2BAAM,GAAN,UAAc,IAAQ;YAErB,MAAM,CAAoB,gBAAK,CAAC,MAAM,YAAC,IAAI,CAAC,CAAC;QAC9C,CAAC;QAED,2BAAM,GAAN,UACC,MAA4B,EAC5B,eAAsC;YAEtC,MAAM,CAAgB,gBAAK,CAAC,MAAM,YAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAC7D,CAAC;QAED,6BAAQ,GAAR,UAAS,eAA6B;YAErC,MAAM,CAAgB,gBAAK,CAAC,QAAQ,YAAC,eAAe,CAAC,CAAC;QACvD,CAAC;QAED,yCAAoB,GAApB,UAA+B,eAA0D;YAA1D,+BAA0D,GAA1D,kBAAwC,SAAS,CAAC,QAAQ;YAExF,MAAM,CAAgB,gBAAK,CAAC,oBAAoB,YAAC,eAAe,CAAC,CAAC;QACnE,CAAC;QAID,4BAAO,GAAP,UAAiC,WAAkD;YAAlD,2BAAkD,GAAlD,cAAgC,SAAS,CAAC,QAAQ;YAElF,MAAM,CAAC,IAAI,iBAAiB,CAAS,IAAI,EAAE,WAAW,EAAE,CAAe,CAAC,CAAC;QAC1E,CAAC;QAED,+BAAU,GAAV,UAAW,UAAwB;YAElC,MAAM,CAAC,IAAI,iBAAiB,CAAQ,IAAI,EAAE,IAAI,EAAE,CAAe,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QACpF,CAAC;QAED,uCAAkB,GAAlB,UAAmB,UAAwB;YAE1C,MAAM,CAAC,IAAI,iBAAiB,CAAQ,IAAI,EAAE,IAAI,EAAE,EAAgB,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QACrF,CAAC;QAED,sCAAiB,GAAjB,UAA2C,WAAkD;YAAlD,2BAAkD,GAAlD,cAAgC,SAAS,CAAC,QAAQ;YAE5F,MAAM,CAAC,IAAI,iBAAiB,CAAS,IAAI,EAAE,WAAW,EAAE,EAAgB,CAAC,CAAC;QAC3E,CAAC;QAkDD,2BAAM,GAAN,UAAO,IAAW;YAEjB,MAAM,CAAkB,gBAAK,CAAC,MAAM,YAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;QAYD,4BAAO,GAAP,UACC,WAA6B,EAC7B,eAAsC,EACtC,eAAyC;YAH1C,iBAUC;YALA,EAAE,CAAA,CAAC,CAAC,eAAe,CAAC;gBAAC,eAAe,GAAG,SAAS,CAAC,QAAQ,CAAC;YAC1D,MAAM,CAAC,IAAI,UAAU,CACpB,cAAM,OAAA,KAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,eAAe,EAAE,eAAe,CAAC;iBAChE,aAAa,EAAE,EADX,CACW,CACjB,CAAC;QACH,CAAC;QAQD,gCAAW,GAAX,UACC,WAA6B,EAC7B,eAAsC,EACtC,cACiF,EACjF,eACqB;YAHrB,8BACiF,GADjF,iBACG,UAAC,GAAQ,EAAE,QAAmB,IAAK,OAAA,IAAI,QAAQ,CAAiB,GAAG,EAAE,QAAQ,CAAC,EAA3C,CAA2C;YACjF,+BACqB,GADrB,kBACG,SAAS,CAAC,QAAQ;YAGrB,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,EAAE,CAAA,CAAC,CAAC,eAAe,CAAC;gBAAC,eAAe,GAAG,SAAS,CAAC,QAAQ,CAAC;YAC1D,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,IAAI,UAAyB,CAAC;gBAC9B,IAAI,GAAQ,CAAC;gBACb,IAAI,UAAmB,CAAC;gBACxB,IAAI,KAAgB,CAAC;gBACrB,IAAI,GAAU,CAAC;gBAEf,MAAM,CAAC,IAAI,+BAAc,CACxB;oBAEC,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;oBAC/B,EAAE,CAAA,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CACzB,CAAC;wBACA,GAAG,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;wBACtC,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;wBAClC,KAAK,GAAG,CAAC,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;wBAC9C,GAAG,GAAG,CAAC,CAAC;oBACT,CAAC;oBACD,IAAI;wBACH,KAAK,GAAG,IAAI,CAAC;gBACf,CAAC,EAED,UAAC,OAAO;oBAEP,EAAE,CAAA,CAAC,CAAC,KAAK,CAAC;wBACT,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;oBAE7B,IAAI,OAAe,EAAE,CAAG,CAAC;oBACzB,OAAM,CAAC,OAAO,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC,EACvC,CAAC;wBACA,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC;wBACvB,EAAE,CAAA,CAAC,UAAU,KAAG,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC/C,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;wBACnC,IAAI;4BACH,KAAK,CAAC;oBACR,CAAC;oBAED,IAAI,MAAM,GACH,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;oBAElC,EAAE,CAAA,CAAC,OAAO,CAAC,CACX,CAAC;wBACA,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC;wBACvB,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;wBACrB,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;wBAClC,KAAK,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC7B,GAAG,GAAG,CAAC,CAAC;oBACT,CAAC;oBACD,IAAI,CACJ,CAAC;wBACA,KAAK,GAAG,IAAI,CAAC;oBACd,CAAC;oBAED,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBACpC,CAAC,EAED;oBAEC,iBAAO,CAAC,UAAU,CAAC,CAAC;oBACpB,KAAK,GAAG,IAAI,CAAC;gBACd,CAAC,CACD,CAAC;YACH,CAAC,CACD,CAAC;QACH,CAAC;QAMD,8BAAS,GAAT,UACC,IAAoB,EACpB,IAAO;YAEP,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC;QAC9C,CAAC;QAED,4BAAO,GAAP,UAAQ,QAA+C;YAA/C,wBAA+C,GAA/C,WAA+B,YAAI,CAAC,WAAW;YAEtD,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC;gBAEvB,KAAK,EAAE,CAAC;gBACR,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACvB,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;kBAC1B,GAAG;kBACH,CAAC,GAAG,GAAC,KAAK,CAAC,CAAC;QAChB,CAAC;QAGD,wBAAG,GAAH;YAEC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;QAED,wBAAG,GAAH;YAEC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC;QAED,0BAAK,GAAL,UAAgB,WAAsD;YAAtD,2BAAsD,GAAtD,cAAoC,SAAS,CAAC,QAAQ;YAErE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAC,CAAG,EAAE,CAAG,IAAK,OAAA,CAAC,WAAW,CAAC,CAAC,CAAC,GAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAvC,CAAuC,CAAC,CAAC;QAC9E,CAAC;QAED,0BAAK,GAAL,UAAgB,WAAsD;YAAtD,2BAAsD,GAAtD,cAAoC,SAAS,CAAC,QAAQ;YAErE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAC,CAAG,EAAE,CAAG,IAAK,OAAA,CAAC,WAAW,CAAC,CAAC,CAAC,GAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAvC,CAAuC,CAAC,CAAC;QAC9E,CAAC;QAGD,wBAAG,GAAH,UAAI,QAA+C;YAA/C,wBAA+C,GAA/C,WAA+B,YAAI,CAAC,WAAW;YAElD,IAAI,GAAG,GAAG,CAAC,CAAC;YAGZ,IAAI,WAAW,GAAG,CAAC,CAAC;YAEpB,IAAI,CAAC,OAAO,CACX,UAAA,CAAC;gBAEA,IAAI,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACxB,EAAE,CAAA,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAChB,CAAC;oBACA,GAAG,GAAG,GAAG,CAAC;oBACV,MAAM,CAAC,KAAK,CAAC;gBACd,CAAC;gBACD,EAAE,CAAA,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oBAClB,GAAG,IAAI,KAAK,CAAC;gBACd,IAAI;oBACH,WAAW;wBACV,KAAK,GAAC,CAAC;4BACN,CAAC,CAAC,CAAC,CAAC;4BACJ,CAAC,CAAC,CAAC,CAAC,CAAC;YACT,CAAC,CACD,CAAC;YAEF,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,WAAW,GAAG,CAAC,WAAW,GAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC;QACxE,CAAC;QAGD,4BAAO,GAAP,UAAQ,QAA+C;YAA/C,wBAA+C,GAA/C,WAA+B,YAAI,CAAC,WAAW;YAEtD,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAW,KAAK,CAAC;YAEvC,IAAI,CAAC,OAAO,CACX,UAAC,CAAC,EAAE,CAAC;gBAEJ,MAAM,GAAG,IAAI,CAAC;gBACd,IAAI,KAAK,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC3B,EAAE,CAAA,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAChB,CAAC;oBACA,MAAM,GAAG,GAAG,CAAC;oBACb,MAAM,CAAC,KAAK,CAAC;gBACd,CAAC;gBAED,EAAE,CAAA,CAAC,KAAK,IAAE,CAAC,CAAC,CACZ,CAAC;oBACA,MAAM,GAAG,CAAC,CAAC;oBACX,MAAM,CAAC,KAAK,CAAC;gBACd,CAAC;gBAID,MAAM,IAAI,KAAK,CAAC;YACjB,CAAC,CACD,CAAC;YAEF,MAAM,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC;QACjD,CAAC;QAOD,6BAAQ,GAAR,UAAS,QAA+C;YAA/C,wBAA+C,GAA/C,WAA+B,YAAI,CAAC,WAAW;YAEvD,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,IAAI,MAAM,GAAU,GAAG,CAAC;YAExB,IAAI,CAAC,OAAO,CACX,UAAC,CAAC,EAAE,CAAC;gBAEJ,IAAI,KAAK,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC3B,KAAK,EAAE,CAAC;gBAER,EAAE,CAAA,CAAC,KAAK,KAAG,CAAC,CAAC,CACb,CAAC;oBACA,MAAM,GAAG,KAAK,CAAC;gBAChB,CAAC;gBACD,IAAI,CACJ,CAAC;oBACA,EAAE,CAAA,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,KAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CACjD,CAAC;wBACA,MAAM,GAAG,GAAG,CAAC;wBACb,MAAM,CAAC,KAAK,CAAC;oBACd,CAAC;oBAED,MAAM,IAAI,KAAK,CAAC;gBACjB,CAAC;YAEF,CAAC,CACD,CAAC;YAEF,EAAE,CAAA,CAAC,KAAK,KAAG,CAAC,CAAC;gBACZ,MAAM,GAAG,GAAG,CAAC;YAEd,MAAM,CAAC,MAAM,CAAC;QACf,CAAC;QAMD,yBAAI,GAAJ;YAEC,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,CAAC,CAAC,eAAe,EAAE,CAAC;YAEpB,IAAI,KAAK,GAAK,SAAS,CAAC;YACxB,IAAI,KAAK,GAAW,KAAK,CAAC;YAC1B,CAAC,CAAC,OAAO,CACR,UAAA,CAAC;gBAEA,KAAK,GAAG,IAAI,CAAC;gBACb,KAAK,GAAG,CAAC,CAAC;YACX,CAAC,CACD,CAAC;YAEF,EAAE,CAAA,CAAC,CAAC,KAAK,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;YACvE,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAED,kCAAa,GAAb,UAAc,YAAqB;YAArB,4BAAqB,GAArB,mBAAqB;YAElC,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,CAAC,CAAC,eAAe,EAAE,CAAC;YAEpB,IAAI,KAAK,GAAK,SAAS,CAAC;YACxB,IAAI,KAAK,GAAW,KAAK,CAAC;YAC1B,CAAC,CAAC,OAAO,CACR,UAAA,CAAC;gBAEA,KAAK,GAAG,IAAI,CAAC;gBACb,KAAK,GAAG,CAAC,CAAC;YACX,CAAC,CACD,CAAC;YACF,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,YAAY,GAAG,KAAK,CAAC;QACxC,CAAC;QAID,0BAAK,GAAL;YAEC,MAAM,CAAgB,gBAAK,CAAC,KAAK,WAAE,CAAC;QACrC,CAAC;QAGD,+BAAU,GAAV,UAAW,OAAqB;YAE/B,MAAM,CAAgB,gBAAK,CAAC,UAAU,YAAC,OAAO,CAAC,CAAC;QACjD,CAAC;QAGD,kCAAa,GAAb,UAAc,MAAe;YAE5B,MAAM,CAAgB,gBAAK,CAAC,aAAa,YAAC,MAAM,CAAC,CAAC;QACnD,CAAC;QAED,4BAAO,GAAP;YAEC,IAAI,CAAC,GAAG,IAAI,EAAE,QAAQ,GAAW,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;YAEtD,IAAI,KAAS,CAAC;YACd,IAAI,UAAyB,CAAC;YAE9B,MAAM,CAAC,IAAI,UAAU,CACpB;gBAGC,IAAI,KAAK,GAAU,CAAC,CAAC;gBAErB,MAAM,CAAC,IAAI,+BAAc,CACxB;oBAEC,eAAe,CAAC,QAAQ,CAAC,CAAC;oBAC1B,EAAE,CAAA,CAAC,CAAC,UAAU,CAAC;wBACd,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;oBAChC,EAAE,CAAA,CAAC,CAAC,KAAK,CAAC;wBACT,KAAK,GAAG,EAAE,CAAC;oBACZ,KAAK,GAAG,CAAC,CAAC;gBACX,CAAC,EAED,UAAC,OAAO;oBAEP,eAAe,CAAC,QAAQ,CAAC,CAAC;oBAE1B,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC;oBAEhB,EAAE,CAAA,CAAC,CAAC,IAAE,KAAK,CAAC,MAAM,CAAC,CACnB,CAAC;wBACA,MAAM,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;8BAC3B,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC;8BAClD,KAAK,CAAC;oBACV,CAAC;oBAED,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtC,CAAC,CACD,CAAC;YACH,CAAC,EAED;gBAEC,QAAQ,GAAG,IAAI,CAAC;gBAChB,EAAE,CAAA,CAAC,KAAK,CAAC;oBACR,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;gBAClB,KAAK,GAAG,IAAI,CAAC;gBAEb,iBAAO,CAAC,UAAU,CAAC,CAAC;gBACpB,UAAU,GAAG,IAAI,CAAC;YACnB,CAAC,CACD,CAAC;QACH,CAAC;QAGF,iBAAC;IAAD,CAAC,AAxnDD,CACQ,kBAAkB,GAunDzB;IAxnDY,kBAAU,aAwnDtB,CAAA;IAID;QACQ,oCAAa;QAEpB,0BACC,iBAAsC,EACtC,SAAqB;YAErB,kBAAM,iBAAiB,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC5C,CAAC;QAEF,uBAAC;IAAD,CAAC,AAVD,CACQ,UAAU,GASjB;IAVY,wBAAgB,mBAU5B,CAAA;IAED;QACQ,mCAAmB;QAI1B,yBAAY,MAAgB;YAE3B,kBAAM;gBAEL,CAAC,CAAC,eAAe,EAAE,CAAC;gBACpB,MAAM,CAAC,IAAI,iCAAe,CAAI;oBAE7B,CAAC,CAAC,eAAe,CAAC,8CAA8C,EAAE,iBAAiB,CAAC,CAAC;oBAErF,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;gBAClB,CAAC,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,CAAC,CAAC,qBAAqB,GAAG,iBAAiB,CAAC;YAC5C,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC;QAEpB,CAAC;QAES,oCAAU,GAApB;YAEC,gBAAK,CAAC,UAAU,WAAE,CAAC;YACnB,IAAI,CAAC,OAAO,GAAQ,IAAI,CAAC;QAC1B,CAAC;QAED,sBAAI,mCAAM;iBAAV;gBAEC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;YACrB,CAAC;;;WAAA;QAED,iCAAO,GAAP;YAEC,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,CAAC,CAAC,eAAe,EAAE,CAAC;YAEpB,MAAM,CAAC,oBAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QAED,sCAAY,GAAZ;YAEC,MAAM,CAAC,IAAI,eAAe,CAAI,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;QAGD,iCAAO,GAAP,UAAQ,MAA+B;YAEtC,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,CAAC,CAAC,eAAe,EAAE,CAAC;YAEpB,oBAAO,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5B,CAAC;QAID,6BAAG,GAAH,UAAI,SAAuB;YAE1B,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,CAAC,CAAC,eAAe,EAAE,CAAC;YAEpB,IAAI,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;YAC5C,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,SAAS,IAAI,gBAAK,CAAC,GAAG,YAAC,SAAS,CAAC,CAAC,CAAC;QACpD,CAAC;QAED,+BAAK,GAAL,UAAM,SAAuB;YAE5B,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,CAAC,CAAC,eAAe,EAAE,CAAC;YAEpB,IAAI,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;YAC5C,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,GAAG,gBAAK,CAAC,KAAK,YAAC,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC;QAC1D,CAAC;QAED,4CAAkB,GAAlB,UAAmB,KAAY,EAAE,YAAqB;YAArB,4BAAqB,GAArB,mBAAqB;YAErD,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,iBAAO,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAE5C,IAAI,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC;YACvB,MAAM,CAAC,KAAK,GAAC,MAAM,CAAC,MAAM;kBACvB,MAAM,CAAC,KAAK,CAAC;kBACb,YAAY,CAAC;QACjB,CAAC;QAED,8BAAI,GAAJ;YAEC,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,CAAC,CAAC,eAAe,EAAE,CAAC;YAEpB,IAAI,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;YAC5C,MAAM,CAAC,CAAC,GAAG,CAAC;kBACT,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;kBACf,gBAAK,CAAC,IAAI,WAAE,CAAC;QACjB,CAAC;QAED,uCAAa,GAAb,UAAc,YAAqB;YAArB,4BAAqB,GAArB,mBAAqB;YAElC,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,CAAC,CAAC,eAAe,EAAE,CAAC;YAEpB,IAAI,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;YAC5C,MAAM,CAAC,GAAG;kBACP,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;kBACf,YAAY,CAAC;QACjB,CAAC;QAED,8BAAI,GAAJ,UAAK,KAAY;YAGhB,IAAI,CAAC,GAAG,IAAI,CAAC;YAEb,EAAE,CAAA,CAAC,CAAC,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC;gBACb,MAAM,CAAC,CAAC,CAAC;YAEV,MAAM,CAAC,IAAI,UAAU,CACpB,cAAM,OAAA,IAAI,iCAAe,CAAI,cAAM,OAAA,CAAC,CAAC,OAAO,EAAT,CAAS,EAAE,KAAK,CAAC,EAA9C,CAA8C,CACpD,CAAC;QACH,CAAC;QAED,wCAAc,GAAd,UAAe,KAAgB;YAAhB,qBAAgB,GAAhB,SAAgB;YAE9B,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;QACzC,CAAC;QAED,oCAAU,GAAV,UAAW,KAAY;YAEtB,EAAE,CAAA,CAAC,CAAC,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC;gBACb,MAAM,CAAC,UAAU,CAAC,KAAK,EAAK,CAAC;YAE9B,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,EAAE,CAAA,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACnB,MAAM,CAAC,CAAC,CAAC;YAEV,IAAI,GAAG,GAAG,CAAC,CAAC,OAAO;kBAChB,CAAC,CAAC,OAAO,CAAC,MAAM;kBAChB,CAAC,CAAC;YAEL,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;QAC5B,CAAC;QAED,iCAAO,GAAP;YAEC,IAAI,CAAC,GAAG,IAAI,CAAC;YAEb,MAAM,CAAC,IAAI,UAAU,CACpB,cAAM,OAAA,IAAI,iCAAe,CACxB,cAAM,OAAA,CAAC,CAAC,OAAO,EAAT,CAAS,EAAE,CAAC,CAAC,OAAO;kBACvB,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;kBACtB,CAAC,EAAE,CAAC,CAAC,CACR,EAJK,CAIL,CACD,CAAC;QACH,CAAC;QAED,iCAAO,GAAP;YAEC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;QAC5B,CAAC;QAED,uCAAa,GAAb,UACC,MAA4B,EAC5B,gBAAwD;YAAxD,gCAAwD,GAAxD,mBAAyC,MAAM,CAAC,QAAQ;YAExD,EAAE,CAAA,CAAC,YAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC3B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;YAErE,EAAE,CAAA,CAAC,MAAM,YAAY,eAAe,CAAC;gBACpC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;YAE5D,MAAM,CAAC,gBAAK,CAAC,aAAa,YAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;QACtD,CAAC;QAGD,wCAAc,GAAd,UAAe,SAAqB,EAAE,QAAiD;YAAxE,yBAAqB,GAArB,cAAqB;YAAE,wBAAiD,GAAjD,WAA+B,SAAS,CAAC,QAAQ;YAEtF,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;YACrB,MAAM,CAAC,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;kBACtB,CAAE,CAAC,IAAI,CAAC,SAAS,CAAC;kBAC7B,gBAAK,CAAC,cAAc,YAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC9C,CAAC;QAEF,sBAAC;IAAD,CAAC,AA1LD,CACQ,gBAAgB,GAyLvB;IASD;QACQ,4BAAyB;QAGhC,kBAAoB,SAAc,EAAE,QAAmB;YAEtD,kBAAM,QAAQ,CAAC,CAAC;YAFG,cAAS,GAAT,SAAS,CAAK;QAGlC,CAAC;QAED,sBAAI,yBAAG;iBAAP;gBAEC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YACvB,CAAC;;;WAAA;QACF,eAAC;IAAD,CAAC,AAbD,CACQ,eAAe,GAYtB;IAWD;QAIC,gBAAoB,WAAwC;YAAxC,gBAAW,GAAX,WAAW,CAA6B;QAE5D,CAAC;QAED,sBAAI,yBAAK;iBAAT;gBAEC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YAC/B,CAAC;;;WAAA;QAED,oBAAG,GAAH,UAAI,GAAQ;YAEX,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACvC,CAAC;QAED,yBAAQ,GAAR,UAAS,GAAQ;YAEhB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1C,CAAC;QAED,8BAAa,GAAb;YAGC,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,IAAI,UAAuD,CAAC;YAE5D,MAAM,CAAC,IAAI,+BAAc,CACxB;gBAEC,UAAU,GAAG,CAAC,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;YAC5C,CAAC,EACD,UAAC,OAAO;gBAGP,EAAE,CAAA,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;oBACzB,MAAM,CAAC,KAAK,CAAC;gBAEd,IAAI,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;gBAEjC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,QAAQ,CAAiB,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YACtF,CAAC,EACD;gBAEC,iBAAO,CAAC,UAAU,CAAC,CAAC;YACrB,CAAC,CACD,CAAC;QACH,CAAC;QAEF,aAAC;IAAD,CAAC,AAnDD,IAmDC;IAYD;QACQ,qCAAmB;QAG1B,2BACS,MAAqB,EACtB,WAAiC,EACjC,KAAW,EACX,MAAgC,EAChC,QAAuC;YAA9C,wBAA8C,GAA9C,WAAgC,MAAM,CAAC,OAAO;YAE9C,kBAAM,IAAI,CAAC,CAAC;YANJ,WAAM,GAAN,MAAM,CAAe;YACtB,gBAAW,GAAX,WAAW,CAAsB;YACjC,UAAK,GAAL,KAAK,CAAM;YACX,WAAM,GAAN,MAAM,CAA0B;YAChC,aAAQ,GAAR,QAAQ,CAA+B;YAG9C,2BAAc,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC;QAC5C,CAAC;QAEO,mDAAuB,GAA/B,UACC,WAAiC,EACjC,KAAW;YAEX,MAAM,CAAC,IAAI,iBAAiB,CAAa,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACjF,CAAC;QAED,kCAAM,GAAN,UAAO,WAAiC;YAEvC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,CAAe,CAAC,CAAC;QACnE,CAAC;QAED,qCAAS,GAAT,UAAU,UAAwB;YAEjC,MAAM,CAAC,IAAI,iBAAiB,CAAQ,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAe,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QAC3F,CAAC;QAED,4CAAgB,GAAhB,UAAiB,WAAiC;YAEjD,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,EAAgB,CAAC,CAAC;QACpE,CAAC;QAED,6CAAiB,GAAjB,UAAkB,UAAwB;YAEzC,MAAM,CAAC,IAAI,iBAAiB,CAAQ,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,EAAgB,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QAC5F,CAAC;QAED,yCAAa,GAAb;YAEC,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,IAAI,MAAU,CAAC;YACf,IAAI,OAAgB,CAAC;YACrB,IAAI,KAAK,GAAU,CAAC,CAAC;YAErB,MAAM,CAAC,IAAI,+BAAc,CACxB;gBAEC,KAAK,GAAG,CAAC,CAAC;gBACV,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBACtC,OAAO,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;YAC9D,CAAC,EAED,UAAC,OAAO;gBAEP,MAAM,CAAC,CAAC,KAAK,GAAC,OAAO,CAAC,MAAM,CAAC;sBAC1B,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;sBAC7C,KAAK,CAAC;YACV,CAAC,EAED;gBAEC,EAAE,CAAA,CAAC,MAAM,CAAC;oBACT,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBACnB,MAAM,GAAG,IAAI,CAAC;gBACd,EAAE,CAAA,CAAC,OAAO,CAAC;oBACV,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;gBACpB,OAAO,GAAG,IAAI,CAAC;YAChB,CAAC,EAED,KAAK,CACL,CAAC;QACH,CAAC;QAES,sCAAU,GAApB;YAEC,gBAAK,CAAC,UAAU,WAAE,CAAC;YACnB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACpB,CAAC;QAEF,wBAAC;IAAD,CAAC,AAvFD,CACQ,gBAAgB,GAsFvB;IAGD,wBAA2B,KAA2B,EAAE,CAAgB;QAEvE,EAAE,CAAA,CAAC,CAAC,CAAC,CACL,CAAC;YACA,EAAE,CAAA,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAChB,CAAC;gBACA,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,IAAI,CACJ,CAAC;gBACA,iBAAO,CAAC,CAAC,CAAC,CAAC;gBACX,CAAC,GAAG,IAAI,CAAC;YACV,CAAC;QACF,CAAC;QACD,MAAM,CAAC,CAAC,CAAC;IACV,CAAC;IAQD,2BACC,iBAA+C,EAC/C,cAAkC;QAAlC,8BAAkC,GAAlC,qBAAkC;QAGlC,IAAI,OAAO,GAAG,IAAI,mCAAgB,CACjC,cAAc,EACd,iBAAiB,CAAC,WAAW,EAC7B,iBAAiB,CAAC,KAAK,EACvB,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAE7B,EAAE,CAAA,CAAC,iBAAiB,CAAC,MAAM,CAAC;YAC3B,MAAM,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAE7D,MAAM,CAAC,OAAO,CAAC;IAChB,CAAC;IAKD,yBAAyB,QAAgB;QAExC,EAAE,CAAA,CAAC,QAAQ,CAAC;YAAC,MAAM,IAAI,iDAAuB,CAAC,YAAY,CAAC,CAAC;IAC9D,CAAC;IAGD;sBAAe,UAAU,CAAC"} \ No newline at end of file diff --git a/source/System.Linq/Linq.ts b/source/System.Linq/Linq.ts index d10b4f3e..85885f0c 100644 --- a/source/System.Linq/Linq.ts +++ b/source/System.Linq/Linq.ts @@ -40,6 +40,7 @@ import {IMap} from "../System/Collections/Dictionaries/IDictionary"; import {Comparable} from "../System/IComparable"; import {IComparer} from "../System/IComparer"; import {IKeyValuePair} from "../System/KeyValuePair"; +import {Order} from "../System/Collections/Sorting/Order"; // #region Local Constants. @@ -2157,7 +2158,7 @@ extends InfiniteEnumerable return new EnumeratorBase(() => { value = start; }, start)=> + yielder=> { var result:boolean = value<=to && yielder.yieldReturn(value); @@ -2167,7 +2168,7 @@ extends InfiniteEnumerable return result; } : - (yielder:IYield)=> + yielder=> { var result:boolean = value>=to && yielder.yieldReturn(value); diff --git a/source/System/Collections/Array/ReadOnlyArrayWrapper.js b/source/System/Collections/Array/ReadOnlyArrayWrapper.js index c5e9bba3..4575732a 100644 --- a/source/System/Collections/Array/ReadOnlyArrayWrapper.js +++ b/source/System/Collections/Array/ReadOnlyArrayWrapper.js @@ -12,13 +12,13 @@ var __extends = (this && this.__extends) || function (d, b) { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", "../../Exceptions/ArgumentNullException", "../Enumeration/Enumerator", "../ReadOnlyCollectionBase"], factory); + define(["require", "exports", "../../Exceptions/ArgumentNullException", "../ReadOnlyCollectionBase", "../Enumeration/Enumerator"], factory); } })(function (require, exports) { "use strict"; var ArgumentNullException_1 = require("../../Exceptions/ArgumentNullException"); - var Enumerator_1 = require("../Enumeration/Enumerator"); var ReadOnlyCollectionBase_1 = require("../ReadOnlyCollectionBase"); + var Enumerator_1 = require("../Enumeration/Enumerator"); var ReadOnlyArrayWrapper = (function (_super) { __extends(ReadOnlyArrayWrapper, _super); function ReadOnlyArrayWrapper(array) { diff --git a/source/System/Collections/Array/ReadOnlyArrayWrapper.js.map b/source/System/Collections/Array/ReadOnlyArrayWrapper.js.map index 414b79df..faeb339c 100644 --- a/source/System/Collections/Array/ReadOnlyArrayWrapper.js.map +++ b/source/System/Collections/Array/ReadOnlyArrayWrapper.js.map @@ -1 +1 @@ -{"version":3,"file":"ReadOnlyArrayWrapper.js","sourceRoot":"","sources":["ReadOnlyArrayWrapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;;;;IAEH,sCAAoC,wCAAwC,CAAC,CAAA;IAC7E,2BAAqC,2BAA2B,CAAC,CAAA;IACjE,uCAAqC,2BAA2B,CAAC,CAAA;IAEjE;QAAqD,wCAAyB;QAG7E,8BAAY,KAAe;YAE1B,iBAAO,CAAC;YACR,EAAE,CAAA,CAAC,CAAC,KAAK,CAAC;gBACT,MAAM,IAAI,6CAAqB,CAAC,OAAO,CAAC,CAAC;YAE1C,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,CAAC,CAAC,SAAS,GAAG,cAAM,OAAA,KAAK,CAAC,MAAM,EAAZ,CAAY,CAAC;YACjC,CAAC,CAAC,aAAa,GAAG,cAAM,OAAA,iBAAc,CAAC,KAAK,CAAC,EAArB,CAAqB,CAAC;YAC9C,CAAC,CAAC,UAAU,GAAG,UAAA,CAAC,IAAI,OAAA,KAAK,CAAC,CAAC,CAAC,EAAR,CAAQ,CAAC;QAC9B,CAAC;QAGF,2BAAC;IAAD,CAAC,AAhBD,CAAqD,+CAAsB,GAgB1E;IAhBD;0CAgBC,CAAA"} \ No newline at end of file +{"version":3,"file":"ReadOnlyArrayWrapper.js","sourceRoot":"","sources":["ReadOnlyArrayWrapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;;;;IAEH,sCAAoC,wCAAwC,CAAC,CAAA;IAC7E,uCAAqC,2BAA2B,CAAC,CAAA;IAEjE,2BAAqC,2BAA2B,CAAC,CAAA;IAEjE;QAAqD,wCAAyB;QAG7E,8BAAY,KAAe;YAE1B,iBAAO,CAAC;YACR,EAAE,CAAA,CAAC,CAAC,KAAK,CAAC;gBACT,MAAM,IAAI,6CAAqB,CAAC,OAAO,CAAC,CAAC;YAE1C,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,CAAC,CAAC,SAAS,GAAG,cAAM,OAAA,KAAK,CAAC,MAAM,EAAZ,CAAY,CAAC;YACjC,CAAC,CAAC,aAAa,GAAG,cAAM,OAAA,iBAAc,CAAC,KAAK,CAAC,EAArB,CAAqB,CAAC;YAC9C,CAAC,CAAC,UAAU,GAAG,UAAA,CAAC,IAAI,OAAA,KAAK,CAAC,CAAC,CAAC,EAAR,CAAQ,CAAC;QAC9B,CAAC;QAGF,2BAAC;IAAD,CAAC,AAhBD,CAAqD,+CAAsB,GAgB1E;IAhBD;0CAgBC,CAAA"} \ No newline at end of file diff --git a/source/System/Collections/Array/ReadOnlyArrayWrapper.ts b/source/System/Collections/Array/ReadOnlyArrayWrapper.ts index 998460ee..6a803995 100644 --- a/source/System/Collections/Array/ReadOnlyArrayWrapper.ts +++ b/source/System/Collections/Array/ReadOnlyArrayWrapper.ts @@ -4,8 +4,9 @@ */ import {ArgumentNullException} from "../../Exceptions/ArgumentNullException"; -import {from as enumeratorFrom} from "../Enumeration/Enumerator"; import {ReadOnlyCollectionBase} from "../ReadOnlyCollectionBase"; +import {IArray} from "./IArray"; +import {from as enumeratorFrom} from "../Enumeration/Enumerator"; export default class ReadOnlyArrayWrapper extends ReadOnlyCollectionBase { diff --git a/source/System/Collections/Array/Sort.js.map b/source/System/Collections/Array/Sort.js.map index 56fdd66d..390b2cf1 100644 --- a/source/System/Collections/Array/Sort.js.map +++ b/source/System/Collections/Array/Sort.js.map @@ -1 +1 @@ -{"version":3,"file":"Sort.js","sourceRoot":"","sources":["Sort.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;IAEH,sBAAmB,aAAa,CAAC,CAAA;IACjC,wBAAsB,eAAe,CAAC,CAAA;IAItC,qBAAwB,KAAW;QAElC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;cACnB,KAAK;cACV,CAAI,KAAK,CAAC,CAAC;IACf,CAAC;IAyBD,wBACC,QAA4C,EAC5C,KAAuC,EACvC,eAAyB;QADzB,qBAAuC,GAAvC,SAAuC;QACvC,+BAAyB,GAAzB,qBAAyB;QAEzB,IAAI,gBAAgB,GAAG,CAAC,YAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAExD,MAAM,CAAC,UAAC,CAAmB,EAAE,CAAmB;YAG/C,IAAI,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAEjD,IAAI,MAAM,GAAW,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;YACzD,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAC,GAAG,EAAE,CAAC,EAAE,EACzB,CAAC;gBACA,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,EAC9B,CAAC,GAAoB,MAAM;sBACxB,CAAC,CAAC,GAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAe,CAAC;sBACxC,KAAK,CAAC;gBAEpB,EAAE,CAAA,CAAC,gBAAgB,CAAC,CACpB,CAAC;oBACA,EAAE,CAAA,CAAC,YAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;wBACrB,EAAE,GAAG,eAAe,CAAC;oBACtB,EAAE,CAAA,CAAC,YAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;wBACrB,EAAE,GAAG,eAAe,CAAC;gBAEvB,CAAC;gBAED,IAAI,CAAC,GAAG,iBAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBACxB,EAAE,CAAA,CAAC,CAAC,KAAG,CAAmB,CAAC;oBAC1B,MAAM,CAAC,CAAC,GAAC,CAAC,CAAC;YAEb,CAAC;YAED,MAAM,CAAC,CAAC,CAAC;QACV,CAAC,CAAC;IACH,CAAC;IAvCe,sBAAc,iBAuC7B;IAGkB,eAAO;IACP,UAAE,kBAJpB;IAKA"} \ No newline at end of file +{"version":3,"file":"Sort.js","sourceRoot":"","sources":["Sort.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;IAGH,sBAAmB,aAAa,CAAC,CAAA;IACjC,wBAAsB,eAAe,CAAC,CAAA;IAMtC,qBAAwB,KAAW;QAElC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;cACnB,KAAK;cACV,CAAI,KAAK,CAAC,CAAC;IACf,CAAC;IAyBD,wBACC,QAA4C,EAC5C,KAAuC,EACvC,eAAyB;QADzB,qBAAuC,GAAvC,SAAuC;QACvC,+BAAyB,GAAzB,qBAAyB;QAEzB,IAAI,gBAAgB,GAAG,CAAC,YAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAExD,MAAM,CAAC,UAAC,CAAmB,EAAE,CAAmB;YAG/C,IAAI,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAEjD,IAAI,MAAM,GAAW,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;YACzD,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAC,GAAG,EAAE,CAAC,EAAE,EACzB,CAAC;gBACA,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,EAC9B,CAAC,GAAoB,MAAM;sBACxB,CAAC,CAAC,GAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAe,CAAC;sBACxC,KAAK,CAAC;gBAEpB,EAAE,CAAA,CAAC,gBAAgB,CAAC,CACpB,CAAC;oBACA,EAAE,CAAA,CAAC,YAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;wBACrB,EAAE,GAAG,eAAe,CAAC;oBACtB,EAAE,CAAA,CAAC,YAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;wBACrB,EAAE,GAAG,eAAe,CAAC;gBAEvB,CAAC;gBAED,IAAI,CAAC,GAAG,iBAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBACxB,EAAE,CAAA,CAAC,CAAC,KAAG,CAAmB,CAAC;oBAC1B,MAAM,CAAC,CAAC,GAAC,CAAC,CAAC;YAEb,CAAC;YAED,MAAM,CAAC,CAAC,CAAC;QACV,CAAC,CAAC;IACH,CAAC;IAvCe,sBAAc,iBAuC7B;IAGkB,eAAO;IACP,UAAE,kBAJpB;IAKA"} \ No newline at end of file diff --git a/source/System/Collections/Array/Sort.ts b/source/System/Collections/Array/Sort.ts index f687c991..d7197a60 100644 --- a/source/System/Collections/Array/Sort.ts +++ b/source/System/Collections/Array/Sort.ts @@ -3,10 +3,13 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ + import {Type} from "../../Types"; import {compare} from "../../Compare"; import {Primitive} from "../../Primitive"; import {Selector, Comparison} from "../../FunctionTypes"; +import {CompareResult} from "../../CompareResult"; +import {Order} from "../Sorting/Order"; function ensureArray(value:T|T[]):T[] { diff --git a/source/System/Collections/CollectionBase.js.map b/source/System/Collections/CollectionBase.js.map index c5b86926..e9669466 100644 --- a/source/System/Collections/CollectionBase.js.map +++ b/source/System/Collections/CollectionBase.js.map @@ -1 +1 @@ -{"version":3,"file":"CollectionBase.js","sourceRoot":"","sources":["CollectionBase.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"CollectionBase.js","sourceRoot":"","sources":["CollectionBase.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/source/System/Collections/CollectionBase.ts b/source/System/Collections/CollectionBase.ts index 11512fbd..36c3ebdc 100644 --- a/source/System/Collections/CollectionBase.ts +++ b/source/System/Collections/CollectionBase.ts @@ -12,6 +12,8 @@ import {ICollection} from "./ICollection"; import {IEnumerator} from "./Enumeration/IEnumerator"; import {IEnumerateEach} from "./Enumeration/IEnumerateEach"; import {EqualityComparison, Predicate, Action} from "../FunctionTypes"; +import {IEnumerableOrArray} from "./IEnumerableOrArray"; +import {IArray} from "./Array/IArray"; //noinspection SpellCheckingInspection const NAME = "CollectionBase", diff --git a/source/System/Collections/Dictionaries/DictionaryBase.js b/source/System/Collections/Dictionaries/DictionaryBase.js index d8efb124..2c87879c 100644 --- a/source/System/Collections/Dictionaries/DictionaryBase.js +++ b/source/System/Collections/Dictionaries/DictionaryBase.js @@ -158,6 +158,7 @@ var __extends = (this && this.__extends) || function (d, b) { }; return DictionaryBase; }(CollectionBase_1.CollectionBase)); + exports.DictionaryBase = DictionaryBase; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = DictionaryBase; }); diff --git a/source/System/Collections/Dictionaries/DictionaryBase.js.map b/source/System/Collections/Dictionaries/DictionaryBase.js.map index 4955e41e..d6340ec8 100644 --- a/source/System/Collections/Dictionaries/DictionaryBase.js.map +++ b/source/System/Collections/Dictionaries/DictionaryBase.js.map @@ -1 +1 @@ -{"version":3,"file":"DictionaryBase.js","sourceRoot":"","sources":["DictionaryBase.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"DictionaryBase.js","sourceRoot":"","sources":["DictionaryBase.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/source/System/Collections/Dictionaries/DictionaryBase.ts b/source/System/Collections/Dictionaries/DictionaryBase.ts index efe94485..8f88c63b 100644 --- a/source/System/Collections/Dictionaries/DictionaryBase.ts +++ b/source/System/Collections/Dictionaries/DictionaryBase.ts @@ -3,6 +3,7 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ + import {areEqual} from "../../Compare"; import {forEach} from "../Enumeration/Enumerator"; import {CollectionBase} from "../CollectionBase"; @@ -18,7 +19,7 @@ import {IEnumerableOrArray} from "../IEnumerableOrArray"; const VOID0:any = void(0); // Design Note: Should DictionaryAbstractBase be IDisposable? -abstract class DictionaryBase +export abstract class DictionaryBase extends CollectionBase> implements IDictionary { constructor(source?:IEnumerableOrArray>) diff --git a/source/System/Collections/Dictionaries/OrderedStringKeyDictionary.js b/source/System/Collections/Dictionaries/OrderedStringKeyDictionary.js index 80417146..d9dfec88 100644 --- a/source/System/Collections/Dictionaries/OrderedStringKeyDictionary.js +++ b/source/System/Collections/Dictionaries/OrderedStringKeyDictionary.js @@ -77,6 +77,7 @@ var __extends = (this && this.__extends) || function (d, b) { }; return OrderedStringKeyDictionary; }(StringKeyDictionary_1.StringKeyDictionary)); + exports.OrderedStringKeyDictionary = OrderedStringKeyDictionary; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = OrderedStringKeyDictionary; }); diff --git a/source/System/Collections/Dictionaries/OrderedStringKeyDictionary.js.map b/source/System/Collections/Dictionaries/OrderedStringKeyDictionary.js.map index 1e480933..79d2d34b 100644 --- a/source/System/Collections/Dictionaries/OrderedStringKeyDictionary.js.map +++ b/source/System/Collections/Dictionaries/OrderedStringKeyDictionary.js.map @@ -1 +1 @@ -{"version":3,"file":"OrderedStringKeyDictionary.js","sourceRoot":"","sources":["OrderedStringKeyDictionary.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"OrderedStringKeyDictionary.js","sourceRoot":"","sources":["OrderedStringKeyDictionary.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;;;;IAEH,IAAY,YAAY,WAAM,kBAAkB,CAAC,CAAA;IACjD,oCAAkC,uBAAuB,CAAC,CAAA;IAC1D,4CAA0C,8CAA8C,CAAC,CAAA;IAGzF,IAAM,KAAK,GAAO,KAAK,CAAC,CAAC;IAEzB;QACQ,8CAA2B;QAMlC;YAEC,iBAAO,CAAC;YAJD,WAAM,GAAY,EAAE,CAAC;QAK7B,CAAC;QAED,+CAAU,GAAV,UAAW,GAAU;YAEpB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YACpB,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1C,CAAC;QAED,oDAAe,GAAf,UAAgB,KAAY;YAE3B,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YACpB,MAAM,CAAC,KAAK,GAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;QACzD,CAAC;QAGD,6CAAQ,GAAR,UAAS,GAAU,EAAE,KAAY,EAAE,SAAkB;YAGpD,IAAI,CAAC,GAAG,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAG,CAAC,CAAC,CAAC;YAC9C,EAAE,CAAA,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,KAAG,KAAK,IAAI,SAAS,CAAC,CAAC;gBAC1C,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpB,IAAI,CAAC,EAAE,CAAA,CAAC,MAAM,IAAI,KAAK,KAAG,KAAK,IAAI,CAAC,SAAS,CAAC;gBAC7C,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAEpC,MAAM,CAAC,gBAAK,CAAC,QAAQ,YAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACnC,CAAC;QAED,+CAAU,GAAV,UAAW,KAAY,EAAE,KAAY;YAEpC,IAAI,CAAC,GAAG,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;YAC/B,EAAE,CAAA,CAAC,KAAK,GAAC,CAAC,CAAC;gBACV,MAAM,IAAI,yDAA2B,CAAC,OAAO,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC;YAC7E,EAAE,CAAA,CAAC,KAAK,IAAE,KAAK,CAAC,MAAM,CAAC;gBACtB,MAAM,IAAI,yDAA2B,CAAC,OAAO,EAAE,KAAK,EAAE,4BAA4B,CAAC,CAAC;YACrF,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;QACxC,CAAC;QAGD,iDAAY,GAAZ,UAAa,MAAe;YAE3B,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,MAAM,CAAC,CAAC,CAAC,YAAY,CACpB;gBAEC,IAAI,OAAO,GAAW,KAAK,CAAC;gBAC5B,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EACnC,CAAC;oBACA,EAAE,CAAA,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC7B,OAAO,GAAG,IAAI,CAAC;gBACjB,CAAC;gBACD,MAAM,CAAC,OAAO,CAAC;YAChB,CAAC,CACD,CAAC;QAEH,CAAC;QAGD,8CAAS,GAAT;YAAU,gBAAkB;iBAAlB,WAAkB,CAAlB,sBAAkB,CAAlB,IAAkB;gBAAlB,+BAAkB;;YAE3B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;QAED,kDAAa,GAAb,UAAc,KAAY;YAEzB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACtC,CAAC;QAES,4CAAO,GAAjB;YAEC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;YAC3B,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,UAAA,GAAG,IAAG,OAAA,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,EAAlB,CAAkB,CAAC,IAAI,EAAE,CAAC;QAC7D,CAAC;QAEF,iCAAC;IAAD,CAAC,AAnFD,CACQ,yCAAmB,GAkF1B;IAnFY,kCAA0B,6BAmFtC,CAAA;IAED;sBAAe,0BAA0B,CAAC"} \ No newline at end of file diff --git a/source/System/Collections/Dictionaries/OrderedStringKeyDictionary.ts b/source/System/Collections/Dictionaries/OrderedStringKeyDictionary.ts index e84643ea..d4f98de7 100644 --- a/source/System/Collections/Dictionaries/OrderedStringKeyDictionary.ts +++ b/source/System/Collections/Dictionaries/OrderedStringKeyDictionary.ts @@ -10,8 +10,7 @@ import {IOrderedDictionary} from "./IDictionary"; const VOID0:any = void 0; -export default -class OrderedStringKeyDictionary +export class OrderedStringKeyDictionary extends StringKeyDictionary implements IOrderedDictionary { @@ -95,3 +94,5 @@ extends StringKeyDictionary implements IOrderedDictionary +export class StringKeyDictionary extends DictionaryBase implements IStringKeyDictionary { @@ -136,3 +136,5 @@ extends DictionaryBase implements IStringKeyDictionary } + +export default StringKeyDictionary; diff --git a/source/System/Collections/Enumeration/Enumerator.js.map b/source/System/Collections/Enumeration/Enumerator.js.map index 718ee952..8b63ef3c 100644 --- a/source/System/Collections/Enumeration/Enumerator.js.map +++ b/source/System/Collections/Enumeration/Enumerator.js.map @@ -1 +1 @@ -{"version":3,"file":"Enumerator.js","sourceRoot":"","sources":["Enumerator.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Enumerator.js","sourceRoot":"","sources":["Enumerator.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/source/System/Collections/Enumeration/Enumerator.ts b/source/System/Collections/Enumeration/Enumerator.ts index 3f808f91..5d65f24c 100644 --- a/source/System/Collections/Enumeration/Enumerator.ts +++ b/source/System/Collections/Enumeration/Enumerator.ts @@ -3,11 +3,13 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ + import {using} from "../../Disposable/dispose"; import {Type} from "../../Types"; import {ArrayEnumerator} from "./ArrayEnumerator"; import {IndexEnumerator} from "./IndexEnumerator"; import {UnsupportedEnumerableException} from "./UnsupportedEnumerableException"; +import {Selector} from "../../FunctionTypes"; import {IEnumerator} from "./IEnumerator"; import {IEnumerable} from "./IEnumerable"; import {IIteratorResult} from "./IIterator"; diff --git a/source/System/Collections/Enumeration/EnumeratorBase.js.map b/source/System/Collections/Enumeration/EnumeratorBase.js.map index a55c2224..7dfa3663 100644 --- a/source/System/Collections/Enumeration/EnumeratorBase.js.map +++ b/source/System/Collections/Enumeration/EnumeratorBase.js.map @@ -1 +1 @@ -{"version":3,"file":"EnumeratorBase.js","sourceRoot":"","sources":["EnumeratorBase.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"EnumeratorBase.js","sourceRoot":"","sources":["EnumeratorBase.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/source/System/Collections/Enumeration/EnumeratorBase.ts b/source/System/Collections/Enumeration/EnumeratorBase.ts index 89cf3b54..c305768a 100644 --- a/source/System/Collections/Enumeration/EnumeratorBase.ts +++ b/source/System/Collections/Enumeration/EnumeratorBase.ts @@ -9,6 +9,7 @@ import {ObjectPool} from "../../Disposable/ObjectPool"; import {IDisposable} from "../../Disposable/IDisposable"; import {IEnumerator} from "./IEnumerator"; import {IIteratorResult} from "./IIterator"; +import {IYield} from "./IYield"; const VOID0:any = void(0); diff --git a/source/System/Collections/Enumeration/IYield.d.ts b/source/System/Collections/Enumeration/IYield.d.ts index 241b9cd1..df7dc0f7 100644 --- a/source/System/Collections/Enumeration/IYield.d.ts +++ b/source/System/Collections/Enumeration/IYield.d.ts @@ -4,8 +4,10 @@ */ -interface IYield { +export interface IYield { current: T; yieldReturn(value:T): boolean; yieldBreak(): boolean; } + +export default IYield; diff --git a/source/System/Collections/List.js.map b/source/System/Collections/List.js.map index 698701f9..dc6eb06d 100644 --- a/source/System/Collections/List.js.map +++ b/source/System/Collections/List.js.map @@ -1 +1 @@ -{"version":3,"file":"List.js","sourceRoot":"","sources":["List.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"List.js","sourceRoot":"","sources":["List.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/source/System/Collections/List.ts b/source/System/Collections/List.ts index bb3df08d..0afbdf58 100644 --- a/source/System/Collections/List.ts +++ b/source/System/Collections/List.ts @@ -15,6 +15,7 @@ import {IEnumerator} from "./Enumeration/IEnumerator"; import {IList} from "./IList"; import {IEnumerateEach} from "./Enumeration/IEnumerateEach"; import {IEnumerableOrArray} from "./IEnumerableOrArray"; +import {IArray} from "./Array/IArray"; export class List extends CollectionBase implements IList, IEnumerateEach diff --git a/source/System/Collections/Queue.js.map b/source/System/Collections/Queue.js.map index 9284387f..79efe228 100644 --- a/source/System/Collections/Queue.js.map +++ b/source/System/Collections/Queue.js.map @@ -1 +1 @@ -{"version":3,"file":"Queue.js","sourceRoot":"","sources":["Queue.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Queue.js","sourceRoot":"","sources":["Queue.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/source/System/Collections/Queue.ts b/source/System/Collections/Queue.ts index b576ff57..162daf03 100644 --- a/source/System/Collections/Queue.ts +++ b/source/System/Collections/Queue.ts @@ -15,6 +15,7 @@ import {ArgumentOutOfRangeException} from "../Exceptions/ArgumentOutOfRangeExcep import {CollectionBase} from "./CollectionBase"; import {EqualityComparison, Predicate, Action} from "../FunctionTypes"; import {IEnumerator} from "./Enumeration/IEnumerator"; +import {IEnumerableOrArray} from "./IEnumerableOrArray"; const MINIMUM_GROW:number = 4; const SHRINK_THRESHOLD:number = 32; // Unused? diff --git a/source/System/Collections/Sorting/KeySortedContext.js.map b/source/System/Collections/Sorting/KeySortedContext.js.map index 11352438..0dc8f207 100644 --- a/source/System/Collections/Sorting/KeySortedContext.js.map +++ b/source/System/Collections/Sorting/KeySortedContext.js.map @@ -1 +1 @@ -{"version":3,"file":"KeySortedContext.js","sourceRoot":"","sources":["KeySortedContext.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;;;;IAEH,IAAY,MAAM,WAAM,eAAe,CAAC,CAAA;IACxC,4BAA0B,eAAe,CAAC,CAAA;IAC1C,0BAAwB,iBAAiB,CAAC,CAAA;IAG1C;QAAkE,oCAAc;QAE/E,0BACC,IAAiB,EACP,YAA6B,EACvC,KAA6B,EAC7B,QAAuC;YADvC,qBAA6B,GAA7B,SAA6B;YAC7B,wBAAuC,GAAvC,WAAyB,MAAM,CAAC,OAAO;YAEvC,kBAAM,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YAJnB,iBAAY,GAAZ,YAAY,CAAiB;QAKxC,CAAC;QAED,kCAAO,GAAP,UAAQ,CAAG,EAAE,CAAG;YAEf,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,YAAY,CAAC;YAClC,EAAE,CAAA,CAAC,CAAC,EAAE,IAAI,EAAE,IAAE,qBAAS,CAAC,QAAQ,CAAC;gBAAC,MAAM,CAAC,gBAAK,CAAC,OAAO,YAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAE7D,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAM,EAAE,CAAC,CAAC,CAAC,EAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,EAAE,CAAA,CAAC,CAAC,IAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;gBAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACjD,MAAM,CAAC,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC;QACnB,CAAC;QACF,uBAAC;IAAD,CAAC,AApBD,CAAkE,yBAAW,GAoB5E;IApBY,wBAAgB,mBAoB5B,CAAA;IAED;sBAAe,gBAAgB,CAAC"} \ No newline at end of file +{"version":3,"file":"KeySortedContext.js","sourceRoot":"","sources":["KeySortedContext.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;;;;IAEH,IAAY,MAAM,WAAM,eAAe,CAAC,CAAA;IACxC,4BAA0B,eAAe,CAAC,CAAA;IAC1C,0BAAwB,iBAAiB,CAAC,CAAA;IAM1C;QAAkE,oCAAc;QAE/E,0BACC,IAAiB,EACP,YAA6B,EACvC,KAA6B,EAC7B,QAAuC;YADvC,qBAA6B,GAA7B,SAA6B;YAC7B,wBAAuC,GAAvC,WAAyB,MAAM,CAAC,OAAO;YAEvC,kBAAM,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YAJnB,iBAAY,GAAZ,YAAY,CAAiB;QAKxC,CAAC;QAED,kCAAO,GAAP,UAAQ,CAAG,EAAE,CAAG;YAEf,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,YAAY,CAAC;YAClC,EAAE,CAAA,CAAC,CAAC,EAAE,IAAI,EAAE,IAAE,qBAAS,CAAC,QAAQ,CAAC;gBAAC,MAAM,CAAC,gBAAK,CAAC,OAAO,YAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAE7D,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAM,EAAE,CAAC,CAAC,CAAC,EAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,EAAE,CAAA,CAAC,CAAC,IAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;gBAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACjD,MAAM,CAAC,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC;QACnB,CAAC;QACF,uBAAC;IAAD,CAAC,AApBD,CAAkE,yBAAW,GAoB5E;IApBY,wBAAgB,mBAoB5B,CAAA;IAED;sBAAe,gBAAgB,CAAC"} \ No newline at end of file diff --git a/source/System/Collections/Sorting/KeySortedContext.ts b/source/System/Collections/Sorting/KeySortedContext.ts index e6c1de63..bf1698c1 100644 --- a/source/System/Collections/Sorting/KeySortedContext.ts +++ b/source/System/Collections/Sorting/KeySortedContext.ts @@ -7,6 +7,9 @@ import * as Values from "../../Compare"; import {SortContext} from "./SortContext"; import {Functions} from "../../Functions"; import {Comparison, Selector} from "../../FunctionTypes"; +import {Comparable} from "../../IComparable"; +import {IComparer} from "../../IComparer"; +import {Order} from "./Order"; export class KeySortedContext extends SortContext { diff --git a/source/System/Collections/Sorting/Order.d.ts b/source/System/Collections/Sorting/Order.d.ts index 51e670e2..ad5346d1 100644 --- a/source/System/Collections/Sorting/Order.d.ts +++ b/source/System/Collections/Sorting/Order.d.ts @@ -1,8 +1,10 @@ /** * Enum representation of sorting order. */ -declare const enum Order +export declare const enum Order { Ascending = +1, Descending = -1 } + +export default Order; diff --git a/source/System/Collections/Sorting/SortContext.js.map b/source/System/Collections/Sorting/SortContext.js.map index 90b8b18b..7fc1cd9e 100644 --- a/source/System/Collections/Sorting/SortContext.js.map +++ b/source/System/Collections/Sorting/SortContext.js.map @@ -1 +1 @@ -{"version":3,"file":"SortContext.js","sourceRoot":"","sources":["SortContext.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;IAGH,IAAY,MAAM,WAAM,eAAe,CAAC,CAAA;IAGxC;QAUC,qBACW,KAAkB,EAClB,SAAwC,EACxC,MAA8B;YADxC,yBAAkD,GAAlD,YAAoC,MAAM,CAAC,OAAO;YAClD,sBAAwC,GAAxC,UAAwC;YAF9B,UAAK,GAAL,KAAK,CAAa;YAClB,cAAS,GAAT,SAAS,CAA+B;YACxC,WAAM,GAAN,MAAM,CAAwB;QAEzC,CAAC;QARD,sBAAI,8BAAK;iBAAT,cACE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;;;WAAA;QAevB,2CAAqB,GAArB,UAAsB,MAAU;YAAhC,iBAMC;YAJA,EAAE,CAAA,CAAC,MAAM,IAAE,IAAI,CAAC;gBAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,IAAI,MAAM,GAAY,MAAM,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC,IAAG,OAAA,CAAC,EAAD,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,KAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAlC,CAAkC,CAAC,CAAC;YAC1D,MAAM,CAAC,MAAM,CAAC;QACf,CAAC;QAQD,6BAAO,GAAP,UAAQ,CAAG,EAAE,CAAG;YAEf,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1B,EAAE,CAAA,CAAC,CAAC,IAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;gBAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACjD,MAAM,CAAC,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC;QACnB,CAAC;QACF,kBAAC;IAAD,CAAC,AA5CD,IA4CC;IA5CY,mBAAW,cA4CvB,CAAA;IAED;sBAAe,WAAW,CAAC"} \ No newline at end of file +{"version":3,"file":"SortContext.js","sourceRoot":"","sources":["SortContext.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;IAGH,IAAY,MAAM,WAAM,eAAe,CAAC,CAAA;IAKxC;QAUC,qBACW,KAAkB,EAClB,SAAwC,EACxC,MAA8B;YADxC,yBAAkD,GAAlD,YAAoC,MAAM,CAAC,OAAO;YAClD,sBAAwC,GAAxC,UAAwC;YAF9B,UAAK,GAAL,KAAK,CAAa;YAClB,cAAS,GAAT,SAAS,CAA+B;YACxC,WAAM,GAAN,MAAM,CAAwB;QAEzC,CAAC;QARD,sBAAI,8BAAK;iBAAT,cACE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;;;WAAA;QAevB,2CAAqB,GAArB,UAAsB,MAAU;YAAhC,iBAMC;YAJA,EAAE,CAAA,CAAC,MAAM,IAAE,IAAI,CAAC;gBAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,IAAI,MAAM,GAAY,MAAM,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC,IAAG,OAAA,CAAC,EAAD,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,KAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAlC,CAAkC,CAAC,CAAC;YAC1D,MAAM,CAAC,MAAM,CAAC;QACf,CAAC;QAQD,6BAAO,GAAP,UAAQ,CAAG,EAAE,CAAG;YAEf,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1B,EAAE,CAAA,CAAC,CAAC,IAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;gBAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACjD,MAAM,CAAC,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC;QACnB,CAAC;QACF,kBAAC;IAAD,CAAC,AA5CD,IA4CC;IA5CY,mBAAW,cA4CvB,CAAA;IAED;sBAAe,WAAW,CAAC"} \ No newline at end of file diff --git a/source/System/Collections/Sorting/SortContext.ts b/source/System/Collections/Sorting/SortContext.ts index 85a2c792..8753820f 100644 --- a/source/System/Collections/Sorting/SortContext.ts +++ b/source/System/Collections/Sorting/SortContext.ts @@ -6,6 +6,8 @@ import * as Values from "../../Compare"; import {Comparison} from "../../FunctionTypes"; +import {IComparer} from "../../IComparer"; +import {Order} from "./Order"; export class SortContext implements IComparer { diff --git a/source/System/Compare.js b/source/System/Compare.js index 15ce4785..f860313a 100644 --- a/source/System/Compare.js +++ b/source/System/Compare.js @@ -25,15 +25,15 @@ function compare(a, b, strict) { if (strict === void 0) { strict = true; } if (areEqual(a, b, strict)) - return CompareResult.Equal; + return 0; if (a && Types_1.Type.hasMember(a, COMPARE_TO)) return a.compareTo(b); else if (b && Types_1.Type.hasMember(b, COMPARE_TO)) return -b.compareTo(a); if (a > b || strict && (a === 0 && b == 0 || a === null && b === VOID0)) - return CompareResult.Greater; + return 1; if (b > a || strict && (b === 0 && a == 0 || b === null && a === VOID0)) - return CompareResult.Less; + return -1; return NaN; } exports.compare = compare; diff --git a/source/System/Compare.js.map b/source/System/Compare.js.map index 7f5377ee..827e3270 100644 --- a/source/System/Compare.js.map +++ b/source/System/Compare.js.map @@ -1 +1 @@ -{"version":3,"file":"Compare.js","sourceRoot":"","sources":["Compare.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Compare.js","sourceRoot":"","sources":["Compare.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/source/System/Compare.ts b/source/System/Compare.ts index 176d3fbc..3bded438 100644 --- a/source/System/Compare.ts +++ b/source/System/Compare.ts @@ -3,11 +3,11 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -/// -/// -/// + import {Type} from "./Types"; import {Primitive} from "./Primitive"; +import {IComparable} from "./IComparable"; +import {CompareResult} from "./CompareResult"; import isTrueNaN = Type.isTrueNaN; const VOID0:any = void 0; diff --git a/source/System/Diagnostics/Stopwatch.js b/source/System/Diagnostics/Stopwatch.js index 43ddc1e7..87e6f95b 100644 --- a/source/System/Diagnostics/Stopwatch.js +++ b/source/System/Diagnostics/Stopwatch.js @@ -10,7 +10,7 @@ define(["require", "exports", "../Time/TimeSpan"], factory); } })(function (require, exports) { - 'use strict'; + "use strict"; var TimeSpan_1 = require("../Time/TimeSpan"); function getTimestampMilliseconds() { return (new Date()).getTime(); diff --git a/source/System/Diagnostics/Stopwatch.js.map b/source/System/Diagnostics/Stopwatch.js.map index b7584206..e11af921 100644 --- a/source/System/Diagnostics/Stopwatch.js.map +++ b/source/System/Diagnostics/Stopwatch.js.map @@ -1 +1 @@ -{"version":3,"file":"Stopwatch.js","sourceRoot":"","sources":["Stopwatch.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Stopwatch.js","sourceRoot":"","sources":["Stopwatch.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/source/System/Diagnostics/Stopwatch.ts b/source/System/Diagnostics/Stopwatch.ts index 8a08aa04..6726667b 100644 --- a/source/System/Diagnostics/Stopwatch.ts +++ b/source/System/Diagnostics/Stopwatch.ts @@ -3,11 +3,9 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -/// - -'use strict'; // For compatibility with (let, const, function, class); import {TimeSpan} from "../Time/TimeSpan"; +import {ITimer} from "../Timers/ITimer"; function getTimestampMilliseconds():number { @@ -50,11 +48,12 @@ class Stopwatch implements ITimer closure(); return new TimeSpan(getTimestampMilliseconds() - start); } - + start():void { var _ = this; - if(!_._isRunning) { + if(!_._isRunning) + { _._startTimeStamp = getTimestampMilliseconds(); _._isRunning = true; } @@ -63,7 +62,8 @@ class Stopwatch implements ITimer stop():void { var _ = this; - if(_._isRunning) { + if(_._isRunning) + { _._elapsed += _.currentLapMilliseconds; _._isRunning = false; } @@ -82,7 +82,8 @@ class Stopwatch implements ITimer lap():TimeSpan { var _ = this; - if(_._isRunning) { + if(_._isRunning) + { var t = getTimestampMilliseconds(); var s = _._startTimeStamp; var e = t - s; diff --git a/source/System/Events/EventDispatcherEntry.js.map b/source/System/Events/EventDispatcherEntry.js.map index fbc877b3..9b81d615 100644 --- a/source/System/Events/EventDispatcherEntry.js.map +++ b/source/System/Events/EventDispatcherEntry.js.map @@ -1 +1 @@ -{"version":3,"file":"EventDispatcherEntry.js","sourceRoot":"","sources":["EventDispatcherEntry.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;;;;IAEH,sBAAmB,UAAU,CAAC,CAAA;IAC9B,+BAA6B,8BAA8B,CAAC,CAAA;IAC5D,sCAAoC,qCAAqC,CAAC,CAAA;IAC1E,kCAAgC,iCAAiC,CAAC,CAAA;IAClE,wBAA4B,YAAY,CAAC,CAAA;IAGzC;QACQ,wCAAc;QAGrB,8BACQ,IAAW,EACX,QAAuB,EACvB,MAAqB,EAC5B,SAAqB;YADrB,sBAA4B,GAA5B,aAA4B;YAG5B,kBAAM,SAAS,CAAC,CAAC;YALV,SAAI,GAAJ,IAAI,CAAO;YACX,aAAQ,GAAR,QAAQ,CAAe;YACvB,WAAM,GAAN,MAAM,CAAe;YAK5B,EAAE,CAAA,CAAC,CAAC,QAAQ,CAAC;gBACZ,MAAM,IAAI,6CAAqB,CAAC,UAAU,CAAC,CAAC;YAC7C,EAAE,CAAA,CAAC,YAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,aAAa,EAAE,YAAI,CAAC,QAAQ,CAAC,CAAC;gBAC3F,MAAM,IAAI,qCAAiB,CAAC,UAAU,EAAE,uEAAuE,CAAC,CAAC;YAElH,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;YACd,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACtB,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC;YAClB,CAAC,CAAC,qBAAqB,GAAG,sBAAsB,CAAC;QAClD,CAAC;QAES,yCAAU,GAApB;YAEC,gBAAK,CAAC,UAAU,WAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACtB,CAAC;QAOD,uCAAQ,GAAR,UAAS,CAAO;YAEf,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,EAAE,CAAA,CAAC,CAAC,CAAC,WAAW,CAAC;gBAAC,MAAM,CAAC,KAAK,CAAC;YAE/B,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,IAAE,CAAC,CAAC,IAAI,CAAC;YAC5C,EAAE,CAAA,CAAC,CAAC,CAAC,CACL,CAAC;gBACA,EAAE,CAAA,CAAC,YAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;oBACf,CAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACtB,IAAI;oBACmB,CAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC1C,CAAC;YACD,MAAM,CAAC,CAAC,CAAC;QACV,CAAC;QAQD,sCAAO,GAAP,UAAQ,IAAW,EAAE,QAAuB;YAE3C,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,MAAM,CAAC,CAAC,CAAC,IAAI,IAAE,IAAI;mBACf,CAAC,CAAC,QAAQ,IAAE,QAAQ,CAAC;QAC1B,CAAC;QAOD,qCAAM,GAAN,UAAO,KAAmC;YAEzC,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC;mBACxC,uBAAa,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAClD,CAAC;QACF,2BAAC;IAAD,CAAC,AA3ED,CACQ,+BAAc,GA0ErB;IA3EY,4BAAoB,uBA2EhC,CAAA;IAED;sBAAe,oBAAoB,CAAC"} \ No newline at end of file +{"version":3,"file":"EventDispatcherEntry.js","sourceRoot":"","sources":["EventDispatcherEntry.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;;;;IAEH,sBAAmB,UAAU,CAAC,CAAA;IAC9B,+BAA6B,8BAA8B,CAAC,CAAA;IAC5D,sCAAoC,qCAAqC,CAAC,CAAA;IAC1E,kCAAgC,iCAAiC,CAAC,CAAA;IAClE,wBAA4B,YAAY,CAAC,CAAA;IAIzC;QACQ,wCAAc;QAGrB,8BACQ,IAAW,EACX,QAAuB,EACvB,MAAqB,EAC5B,SAAqB;YADrB,sBAA4B,GAA5B,aAA4B;YAG5B,kBAAM,SAAS,CAAC,CAAC;YALV,SAAI,GAAJ,IAAI,CAAO;YACX,aAAQ,GAAR,QAAQ,CAAe;YACvB,WAAM,GAAN,MAAM,CAAe;YAK5B,EAAE,CAAA,CAAC,CAAC,QAAQ,CAAC;gBACZ,MAAM,IAAI,6CAAqB,CAAC,UAAU,CAAC,CAAC;YAC7C,EAAE,CAAA,CAAC,YAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,aAAa,EAAE,YAAI,CAAC,QAAQ,CAAC,CAAC;gBAC3F,MAAM,IAAI,qCAAiB,CAAC,UAAU,EAAE,uEAAuE,CAAC,CAAC;YAElH,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;YACd,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACtB,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC;YAClB,CAAC,CAAC,qBAAqB,GAAG,sBAAsB,CAAC;QAClD,CAAC;QAES,yCAAU,GAApB;YAEC,gBAAK,CAAC,UAAU,WAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACtB,CAAC;QAOD,uCAAQ,GAAR,UAAS,CAAO;YAEf,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,EAAE,CAAA,CAAC,CAAC,CAAC,WAAW,CAAC;gBAAC,MAAM,CAAC,KAAK,CAAC;YAE/B,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,IAAE,CAAC,CAAC,IAAI,CAAC;YAC5C,EAAE,CAAA,CAAC,CAAC,CAAC,CACL,CAAC;gBACA,EAAE,CAAA,CAAC,YAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;oBACf,CAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACtB,IAAI;oBACmB,CAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC1C,CAAC;YACD,MAAM,CAAC,CAAC,CAAC;QACV,CAAC;QAQD,sCAAO,GAAP,UAAQ,IAAW,EAAE,QAAuB;YAE3C,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,MAAM,CAAC,CAAC,CAAC,IAAI,IAAE,IAAI;mBACf,CAAC,CAAC,QAAQ,IAAE,QAAQ,CAAC;QAC1B,CAAC;QAOD,qCAAM,GAAN,UAAO,KAAmC;YAEzC,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC;mBACxC,uBAAa,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAClD,CAAC;QACF,2BAAC;IAAD,CAAC,AA3ED,CACQ,+BAAc,GA0ErB;IA3EY,4BAAoB,uBA2EhC,CAAA;IAED;sBAAe,oBAAoB,CAAC"} \ No newline at end of file diff --git a/source/System/Events/EventDispatcherEntry.ts b/source/System/Events/EventDispatcherEntry.ts index bc2271fc..d62c6fab 100644 --- a/source/System/Events/EventDispatcherEntry.ts +++ b/source/System/Events/EventDispatcherEntry.ts @@ -9,6 +9,7 @@ import {ArgumentNullException} from "../Exceptions/ArgumentNullException"; import {ArgumentException} from "../Exceptions/ArgumentException"; import {areEquivalent} from "../Compare"; import {IEventListener} from "./IEventListener"; +import {IEquatable} from "../IEquatable"; export class EventDispatcherEntry extends DisposableBase implements IEquatable> diff --git a/source/System/Exceptions/ArgumentException.js b/source/System/Exceptions/ArgumentException.js index 534303ef..81935492 100644 --- a/source/System/Exceptions/ArgumentException.js +++ b/source/System/Exceptions/ArgumentException.js @@ -16,7 +16,7 @@ var __extends = (this && this.__extends) || function (d, b) { define(["require", "exports", "./SystemException", "../Text/Utility"], factory); } })(function (require, exports) { - 'use strict'; + "use strict"; var SystemException_1 = require("./SystemException"); var Utility_1 = require("../Text/Utility"); var NAME = 'ArgumentException'; diff --git a/source/System/Exceptions/ArgumentException.js.map b/source/System/Exceptions/ArgumentException.js.map index 91965cf5..d1070416 100644 --- a/source/System/Exceptions/ArgumentException.js.map +++ b/source/System/Exceptions/ArgumentException.js.map @@ -1 +1 @@ -{"version":3,"file":"ArgumentException.js","sourceRoot":"","sources":["ArgumentException.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;;;;;;;;;;;;IAEH,YAAY,CAAC;IAEb,gCAA8B,mBAAmB,CAAC,CAAA;IAClD,wBAAmB,iBAAiB,CAAC,CAAA;IAGrC,IAAM,IAAI,GAAU,mBAAmB,CAAC;IAExC;QAAuC,qCAAe;QAMrD,2BACC,SAAgB,EAChB,OAAqB,EACrB,cAA2B,EAC3B,aAA6B;YAF7B,uBAAqB,GAArB,cAAqB;YACrB,8BAA2B,GAA3B,qBAA2B;YAG3B,IAAI,EAAE,GAAG,SAAS,GAAG,CAAC,GAAG,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACnD,kBAAM,cAAI,CAAC,EAAE,GAAG,CAAC,OAAO,IAAE,EAAE,CAAC,CAAC,EAAE,cAAc,EAAE,UAAC,CAAC;gBACjD,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC;gBACxB,EAAE,CAAA,CAAC,aAAa,CAAC;oBAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;QACJ,CAAC;QAGS,mCAAO,GAAjB;YAEC,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAEF,wBAAC;IAAD,CAAC,AAzBD,CAAuC,iCAAe,GAyBrD;IAzBY,yBAAiB,oBAyB7B,CAAA;IAED;sBAAe,iBAAiB,CAAC"} \ No newline at end of file +{"version":3,"file":"ArgumentException.js","sourceRoot":"","sources":["ArgumentException.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;;;;;;;;;;;;;IAGH,gCAA8B,mBAAmB,CAAC,CAAA;IAClD,wBAAmB,iBAAiB,CAAC,CAAA;IAGrC,IAAM,IAAI,GAAU,mBAAmB,CAAC;IAExC;QAAuC,qCAAe;QAMrD,2BACC,SAAgB,EAChB,OAAqB,EACrB,cAA2B,EAC3B,aAA6B;YAF7B,uBAAqB,GAArB,cAAqB;YACrB,8BAA2B,GAA3B,qBAA2B;YAG3B,IAAI,EAAE,GAAG,SAAS,GAAG,CAAC,GAAG,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACnD,kBAAM,cAAI,CAAC,EAAE,GAAG,CAAC,OAAO,IAAE,EAAE,CAAC,CAAC,EAAE,cAAc,EAAE,UAAC,CAAC;gBACjD,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC;gBACxB,EAAE,CAAA,CAAC,aAAa,CAAC;oBAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;QACJ,CAAC;QAGS,mCAAO,GAAjB;YAEC,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAEF,wBAAC;IAAD,CAAC,AAzBD,CAAuC,iCAAe,GAyBrD;IAzBY,yBAAiB,oBAyB7B,CAAA;IAED;sBAAe,iBAAiB,CAAC"} \ No newline at end of file diff --git a/source/System/Exceptions/ArgumentException.ts b/source/System/Exceptions/ArgumentException.ts index c9f31547..1b85dcc4 100644 --- a/source/System/Exceptions/ArgumentException.ts +++ b/source/System/Exceptions/ArgumentException.ts @@ -4,7 +4,6 @@ * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -'use strict'; // For compatibility with (let, const, function, class); import {SystemException} from "./SystemException"; import {trim} from "../Text/Utility"; diff --git a/source/System/Exceptions/ArgumentOutOfRangeException.js b/source/System/Exceptions/ArgumentOutOfRangeException.js index 42c563a7..b5d1a0cb 100644 --- a/source/System/Exceptions/ArgumentOutOfRangeException.js +++ b/source/System/Exceptions/ArgumentOutOfRangeException.js @@ -18,7 +18,6 @@ var __extends = (this && this.__extends) || function (d, b) { })(function (require, exports) { "use strict"; var ArgumentException_1 = require("./ArgumentException"); - 'use strict'; var NAME = 'ArgumentOutOfRangeException'; var ArgumentOutOfRangeException = (function (_super) { __extends(ArgumentOutOfRangeException, _super); diff --git a/source/System/Exceptions/ArgumentOutOfRangeException.js.map b/source/System/Exceptions/ArgumentOutOfRangeException.js.map index 3e380d95..8b829a9c 100644 --- a/source/System/Exceptions/ArgumentOutOfRangeException.js.map +++ b/source/System/Exceptions/ArgumentOutOfRangeException.js.map @@ -1 +1 @@ -{"version":3,"file":"ArgumentOutOfRangeException.js","sourceRoot":"","sources":["ArgumentOutOfRangeException.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;;;;;;;;;;;;;IAGH,kCAAgC,qBAAqB,CAAC,CAAA;IACtD,YAAY,CAAC;IAGb,IAAM,IAAI,GAAU,6BAA6B,CAAC;IAElD;QAAiD,+CAAiB;QAIjE,qCACC,SAAgB,EAChB,WAAiC,EACjC,OAAoB,EACpB,cAA+B;YAD/B,uBAAoB,GAApB,aAAoB;YACpB,8BAA+B,GAA/B,qBAA+B;YAE/B,kBAAM,SAAS,EAAE,CAAE,OAAI,WAAW,QAAI,GAAG,OAAO,EAAG,cAAc,EAAE,UAAC,CAAC;gBACpE,CAAC,CAAC,WAAW,GAAG,WAAW,CAAC;YAC7B,CAAC,CAAC,CAAC;QACJ,CAAC;QAGS,6CAAO,GAAjB;YAEC,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAEF,kCAAC;IAAD,CAAC,AArBD,CAAiD,qCAAiB,GAqBjE;IArBY,mCAA2B,8BAqBvC,CAAA;IAED;sBAAe,2BAA2B,CAAC"} \ No newline at end of file +{"version":3,"file":"ArgumentOutOfRangeException.js","sourceRoot":"","sources":["ArgumentOutOfRangeException.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;;;;;;;;;;;;;IAIH,kCAAgC,qBAAqB,CAAC,CAAA;IAEtD,IAAM,IAAI,GAAU,6BAA6B,CAAC;IAElD;QAAiD,+CAAiB;QAIjE,qCACC,SAAgB,EAChB,WAAiC,EACjC,OAAoB,EACpB,cAA+B;YAD/B,uBAAoB,GAApB,aAAoB;YACpB,8BAA+B,GAA/B,qBAA+B;YAE/B,kBAAM,SAAS,EAAE,CAAE,OAAI,WAAW,QAAI,GAAG,OAAO,EAAG,cAAc,EAAE,UAAC,CAAC;gBACpE,CAAC,CAAC,WAAW,GAAG,WAAW,CAAC;YAC7B,CAAC,CAAC,CAAC;QACJ,CAAC;QAGS,6CAAO,GAAjB;YAEC,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAEF,kCAAC;IAAD,CAAC,AArBD,CAAiD,qCAAiB,GAqBjE;IArBY,mCAA2B,8BAqBvC,CAAA;IAED;sBAAe,2BAA2B,CAAC"} \ No newline at end of file diff --git a/source/System/Exceptions/ArgumentOutOfRangeException.ts b/source/System/Exceptions/ArgumentOutOfRangeException.ts index 0f110aad..01c6f3b4 100644 --- a/source/System/Exceptions/ArgumentOutOfRangeException.ts +++ b/source/System/Exceptions/ArgumentOutOfRangeException.ts @@ -4,10 +4,9 @@ * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ + import {Exception} from "../Exception"; import {ArgumentException} from "./ArgumentException"; -'use strict'; // For compatibility with (let, const, function, class); - const NAME:string = 'ArgumentOutOfRangeException'; diff --git a/source/System/Exceptions/NullReferenceException.js b/source/System/Exceptions/NullReferenceException.js index 0deb41ca..d66d8e24 100644 --- a/source/System/Exceptions/NullReferenceException.js +++ b/source/System/Exceptions/NullReferenceException.js @@ -16,7 +16,7 @@ var __extends = (this && this.__extends) || function (d, b) { define(["require", "exports", "./SystemException"], factory); } })(function (require, exports) { - 'use strict'; + "use strict"; var SystemException_1 = require("./SystemException"); var NAME = 'NullReferenceException'; var NullReferenceException = (function (_super) { diff --git a/source/System/Exceptions/NullReferenceException.js.map b/source/System/Exceptions/NullReferenceException.js.map index f38a96f2..838e0f55 100644 --- a/source/System/Exceptions/NullReferenceException.js.map +++ b/source/System/Exceptions/NullReferenceException.js.map @@ -1 +1 @@ -{"version":3,"file":"NullReferenceException.js","sourceRoot":"","sources":["NullReferenceException.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;;;;;;;;;;;;IAEH,YAAY,CAAC;IAEb,gCAA8B,mBAAmB,CAAC,CAAA;IAGlD,IAAM,IAAI,GAAU,wBAAwB,CAAC;IAE7C;QACqC,0CAAe;QADpD;YACqC,8BAAe;QAOpD,CAAC;QALU,wCAAO,GAAjB;YAEC,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAEF,6BAAC;IAAD,CAAC,AARD,CACqC,iCAAe,GAOnD;IARD;4CAQC,CAAA"} \ No newline at end of file +{"version":3,"file":"NullReferenceException.js","sourceRoot":"","sources":["NullReferenceException.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;;;;;;;;;;;;;IAGH,gCAA8B,mBAAmB,CAAC,CAAA;IAElD,IAAM,IAAI,GAAU,wBAAwB,CAAC;IAE7C;QACqC,0CAAe;QADpD;YACqC,8BAAe;QAOpD,CAAC;QALU,wCAAO,GAAjB;YAEC,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAEF,6BAAC;IAAD,CAAC,AARD,CACqC,iCAAe,GAOnD;IARD;4CAQC,CAAA"} \ No newline at end of file diff --git a/source/System/Exceptions/NullReferenceException.ts b/source/System/Exceptions/NullReferenceException.ts index 58bbeaac..a34b6e33 100644 --- a/source/System/Exceptions/NullReferenceException.ts +++ b/source/System/Exceptions/NullReferenceException.ts @@ -4,11 +4,9 @@ * Based upon: https://msdn.microsoft.com/en-us/library/System.Exception%28v=vs.110%29.aspx */ -'use strict'; // For compatibility with (let, const, function, class); import {SystemException} from "./SystemException"; - const NAME:string = 'NullReferenceException'; export default diff --git a/source/System/IFormattable.d.ts b/source/System/IFormattable.d.ts index 5be15c41..cafbbe9c 100644 --- a/source/System/IFormattable.d.ts +++ b/source/System/IFormattable.d.ts @@ -5,8 +5,8 @@ * Source: http://referencesource.microsoft.com/#mscorlib/system/IFormattable.cs */ -/// +import {IFormatProvider} from "./IFormatProvider"; export interface IFormattable { toString(format?:string, formatProvider?:IFormatProvider): string; diff --git a/source/System/ILazy.d.ts b/source/System/ILazy.d.ts index 17e2afb3..f2d6ba0f 100644 --- a/source/System/ILazy.d.ts +++ b/source/System/ILazy.d.ts @@ -5,6 +5,7 @@ import {IDisposable} from "./Disposable/IDisposable"; +import {IEquatable} from "./IEquatable"; export interface ILazy extends IDisposable, IEquatable> { diff --git a/source/System/Observable/IObservable.d.ts b/source/System/Observable/IObservable.d.ts index 4157f3be..817fc852 100644 --- a/source/System/Observable/IObservable.d.ts +++ b/source/System/Observable/IObservable.d.ts @@ -9,6 +9,7 @@ import {ISubscribable} from "./ISubscribable"; +import {IObserver} from "./IObserver"; export interface IObservable extends ISubscribable> { diff --git a/source/System/Observable/ObservableBase.js b/source/System/Observable/ObservableBase.js index 8db20887..0ce4e506 100644 --- a/source/System/Observable/ObservableBase.js +++ b/source/System/Observable/ObservableBase.js @@ -17,7 +17,7 @@ var __extends = (this && this.__extends) || function (d, b) { define(["require", "exports", "./SubscribableBase"], factory); } })(function (require, exports) { - 'use strict'; + "use strict"; var SubscribableBase_1 = require("./SubscribableBase"); var ObservableBase = (function (_super) { __extends(ObservableBase, _super); @@ -35,6 +35,7 @@ var __extends = (this && this.__extends) || function (d, b) { }; return ObservableBase; }(SubscribableBase_1.SubscribableBase)); + exports.ObservableBase = ObservableBase; var OBSERVER_ERROR_MESSAGE = 'One or more observers had errors when attempting to pass information.'; function processAction(observers, handler) { var observersErrors = null; diff --git a/source/System/Observable/ObservableBase.js.map b/source/System/Observable/ObservableBase.js.map index 63f97f5d..c99b5ff3 100644 --- a/source/System/Observable/ObservableBase.js.map +++ b/source/System/Observable/ObservableBase.js.map @@ -1 +1 @@ -{"version":3,"file":"ObservableBase.js","sourceRoot":"","sources":["ObservableBase.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;;;;;;;;;;;;;IAIH,YAAY,CAAC;IAEb,iCAA+B,oBAAoB,CAAC,CAAA;IAIpD;QACQ,kCAA8B;QADtC;YACQ,8BAA8B;QA2BtC,CAAC;QAvBU,gCAAO,GAAjB,UAAkB,KAAO;YAExB,aAAa,CACZ,IAAI,CAAC,eAAe,EAAE,EACtB,UAAA,CAAC,IAAM,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACrC,CAAC;QACH,CAAC;QAES,iCAAQ,GAAlB,UAAmB,KAAW;YAE7B,aAAa,CACZ,IAAI,CAAC,eAAe,EAAE,EACtB,UAAA,CAAC,IAAM,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACvC,CAAC;QACH,CAAC;QAES,qCAAY,GAAtB;YAEC,aAAa,CACZ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAC1B,UAAA,CAAC,IAAM,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAC1C,CAAC;QACH,CAAC;QACF,qBAAC;IAAD,CAAC,AA5BD,CACQ,mCAAgB,GA2BvB;IAED,IAAM,sBAAsB,GAAU,uEAAuE,CAAC;IAE9G,uBACC,SAAwB,EACxB,OAA8B;QAE9B,IAAI,eAAe,GAAoC,IAAI,CAAC;QAE5D,GAAG,CAAA,CAAU,UAAS,EAAT,uBAAS,EAAT,uBAAS,EAAT,IAAS,CAAC;YAAnB,IAAI,CAAC,kBAAA;YAER,IACA,CAAC;gBACA,OAAO,CAAC,CAAC,CAAC,CAAC;YACZ,CACA;YAAA,KAAK,CAAA,CAAC,EAAE,CAAC,CACT,CAAC;gBACA,eAAe,GAAG,eAAe,IAAI,EAAE,CAAC;gBAExC,eAAe,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAC,CAAC,CAAC;YAC7C,CAAC;SACD;QAED,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QAErB,EAAE,CAAA,CAAC,eAAe,IAAI,eAAe,CAAC,MAAM,CAAC,CAC7C,CAAC;YACA,EAAE,CAAA,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC;gBAC3B,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,eAAe,CAAC,CAAC;YACxD,IAAI;gBAAC,MAAM;oBACV,OAAO,EAAE,sBAAsB;oBAC/B,MAAM,EAAE,eAAe;iBACvB,CAAC;QACH,CAAC;IAEF,CAAC;IAED;sBAAe,cAAc,CAAC"} \ No newline at end of file +{"version":3,"file":"ObservableBase.js","sourceRoot":"","sources":["ObservableBase.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;;;;;;;;;;;;;;IAGH,iCAA+B,oBAAoB,CAAC,CAAA;IAMpD;QACQ,kCAA8B;QADtC;YACQ,8BAA8B;QA0BtC,CAAC;QAvBU,gCAAO,GAAjB,UAAkB,KAAO;YAExB,aAAa,CACZ,IAAI,CAAC,eAAe,EAAE,EACtB,UAAA,CAAC,IAAM,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACrC,CAAC;QACH,CAAC;QAES,iCAAQ,GAAlB,UAAmB,KAAW;YAE7B,aAAa,CACZ,IAAI,CAAC,eAAe,EAAE,EACtB,UAAA,CAAC,IAAM,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACvC,CAAC;QACH,CAAC;QAES,qCAAY,GAAtB;YAEC,aAAa,CACZ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAC1B,UAAA,CAAC,IAAM,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAC1C,CAAC;QACH,CAAC;QACF,qBAAC;IAAD,CAAC,AA3BD,CACQ,mCAAgB,GA0BvB;IA3BqB,sBAAc,iBA2BnC,CAAA;IAED,IAAM,sBAAsB,GAAU,uEAAuE,CAAC;IAE9G,uBACC,SAAwB,EACxB,OAA8B;QAE9B,IAAI,eAAe,GAAoC,IAAI,CAAC;QAE5D,GAAG,CAAA,CAAU,UAAS,EAAT,uBAAS,EAAT,uBAAS,EAAT,IAAS,CAAC;YAAnB,IAAI,CAAC,kBAAA;YAER,IACA,CAAC;gBACA,OAAO,CAAC,CAAC,CAAC,CAAC;YACZ,CACA;YAAA,KAAK,CAAA,CAAC,EAAE,CAAC,CACT,CAAC;gBACA,eAAe,GAAG,eAAe,IAAI,EAAE,CAAC;gBAExC,eAAe,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAC,CAAC,CAAC;YAC7C,CAAC;SACD;QAED,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QAErB,EAAE,CAAA,CAAC,eAAe,IAAI,eAAe,CAAC,MAAM,CAAC,CAC7C,CAAC;YACA,EAAE,CAAA,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC;gBAC3B,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,eAAe,CAAC,CAAC;YACxD,IAAI;gBAAC,MAAM;oBACV,OAAO,EAAE,sBAAsB;oBAC/B,MAAM,EAAE,eAAe;iBACvB,CAAC;QACH,CAAC;IAEF,CAAC;IAED;sBAAe,cAAc,CAAC"} \ No newline at end of file diff --git a/source/System/Observable/ObservableBase.ts b/source/System/Observable/ObservableBase.ts index 2db1ccad..594ff4cc 100644 --- a/source/System/Observable/ObservableBase.ts +++ b/source/System/Observable/ObservableBase.ts @@ -5,17 +5,15 @@ * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ -/// -/// -'use strict'; // For compatibility with (let, const, function, class); import {SubscribableBase} from "./SubscribableBase"; +import {IObservable} from "./IObservable"; +import {IObserver} from "./IObserver"; // Can be used as a base class, mixin, or simply reference on how to implement the pattern. -abstract class ObservableBase -extends SubscribableBase> -implements IObservable +export abstract class ObservableBase +extends SubscribableBase> implements IObservable { protected _onNext(value:T):void diff --git a/source/System/Observable/ObservableNodeBase.js b/source/System/Observable/ObservableNodeBase.js index f66d8abb..550ada73 100644 --- a/source/System/Observable/ObservableNodeBase.js +++ b/source/System/Observable/ObservableNodeBase.js @@ -14,10 +14,11 @@ var __extends = (this && this.__extends) || function (d, b) { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports"], factory); + define(["require", "exports", "./ObservableBase"], factory); } })(function (require, exports) { - 'use strict'; + "use strict"; + var ObservableBase_1 = require("./ObservableBase"); var ObservableNodeBase = (function (_super) { __extends(ObservableNodeBase, _super); function ObservableNodeBase() { @@ -33,7 +34,8 @@ var __extends = (this && this.__extends) || function (d, b) { this._onCompleted(); }; return ObservableNodeBase; - }(ObservableBase)); + }(ObservableBase_1.default)); + exports.ObservableNodeBase = ObservableNodeBase; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = ObservableNodeBase; }); diff --git a/source/System/Observable/ObservableNodeBase.js.map b/source/System/Observable/ObservableNodeBase.js.map index 01bde01b..f968f3c2 100644 --- a/source/System/Observable/ObservableNodeBase.js.map +++ b/source/System/Observable/ObservableNodeBase.js.map @@ -1 +1 @@ -{"version":3,"file":"ObservableNodeBase.js","sourceRoot":"","sources":["ObservableNodeBase.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;;;;;;;;;;;;;IAIH,YAAY,CAAC;IAGb;QAEQ,sCAAiB;QAFzB;YAEQ,8BAAiB;QAkBzB,CAAC;QAdA,mCAAM,GAAN,UAAO,KAAO;YAEb,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;QAED,oCAAO,GAAP,UAAQ,KAAW;YAElB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QAED,wCAAW,GAAX;YAEC,IAAI,CAAC,YAAY,EAAE,CAAC;QACrB,CAAC;QACF,yBAAC;IAAD,CAAC,AApBD,CAEQ,cAAc,GAkBrB;IApBD;wCAoBC,CAAA"} \ No newline at end of file +{"version":3,"file":"ObservableNodeBase.js","sourceRoot":"","sources":["ObservableNodeBase.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;;;;;;;;;;;;;;IAGH,+BAA2B,kBAAkB,CAAC,CAAA;IAG9C;QACQ,sCAAiB;QADzB;YACQ,8BAAiB;QAkBzB,CAAC;QAdA,mCAAM,GAAN,UAAO,KAAO;YAEb,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;QAED,oCAAO,GAAP,UAAQ,KAAW;YAElB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QAED,wCAAW,GAAX;YAEC,IAAI,CAAC,YAAY,EAAE,CAAC;QACrB,CAAC;QACF,yBAAC;IAAD,CAAC,AAnBD,CACQ,wBAAc,GAkBrB;IAnBY,0BAAkB,qBAmB9B,CAAA;IAED;sBAAe,kBAAkB,CAAC"} \ No newline at end of file diff --git a/source/System/Observable/ObservableNodeBase.ts b/source/System/Observable/ObservableNodeBase.ts index a6291689..f6a53528 100644 --- a/source/System/Observable/ObservableNodeBase.ts +++ b/source/System/Observable/ObservableNodeBase.ts @@ -5,13 +5,11 @@ * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ -/// -/// -'use strict'; // For compatibility with (let, const, function, class); - // Can be used as a base class, mixin, or simply reference on how to implement the pattern. -export default -class ObservableNodeBase +import ObservableBase from "./ObservableBase"; +import {IObserver} from "./IObserver"; + +export class ObservableNodeBase extends ObservableBase implements IObserver { @@ -31,3 +29,5 @@ implements IObserver this._onCompleted(); } } + +export default ObservableNodeBase; \ No newline at end of file diff --git a/source/System/Observable/SubscribableBase.js b/source/System/Observable/SubscribableBase.js index a91469c9..42309a05 100644 --- a/source/System/Observable/SubscribableBase.js +++ b/source/System/Observable/SubscribableBase.js @@ -66,6 +66,7 @@ }; return SubscribableBase; }()); + exports.SubscribableBase = SubscribableBase; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = SubscribableBase; }); diff --git a/source/System/Observable/SubscribableBase.js.map b/source/System/Observable/SubscribableBase.js.map index a563f8a9..17d9f792 100644 --- a/source/System/Observable/SubscribableBase.js.map +++ b/source/System/Observable/SubscribableBase.js.map @@ -1 +1 @@ -{"version":3,"file":"SubscribableBase.js","sourceRoot":"","sources":["SubscribableBase.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;;;;;;;;;IAEH,+BAA6B,+BAA+B,CAAC,CAAA;IAC7D,wBAAsB,uBAAuB,CAAC,CAAA;IAC9C,6BAA2B,gBAAgB,CAAC,CAAA;IAM5C;QAeC;YAEC,IAAI,CAAC,eAAe;kBACjB,IAAI,+BAAc,EAAmD,CAAC;QAC1E,CAAC;QAXS,0CAAe,GAAzB;YAEC,MAAM,CAAC,IAAI;iBACT,eAAe;iBACf,GAAG,CAAC,UAAA,IAAI,IAAE,OAAA,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAnC,CAAmC,CAAC,CAAC;QAClD,CAAC;QAQO,yCAAc,GAAtB,UACC,UAAsB;YAEtB,MAAM,CAAC,IAAI;iBACT,eAAe;iBACf,IAAI,CAAC,UAAA,CAAC,IAAE,OAAA,CAAC,CAAC,KAAK,CAAC,UAAU,KAAG,UAAU,EAA/B,CAA+B,CAAC,CAAC;QAC5C,CAAC;QAGD,oCAAS,GAAT,UAAU,UAAsB;YAE/B,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YACrC,EAAE,CAAA,CAAC,CAAC,CAAC;gBACJ,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;YAEhB,IAAI,CAAC,GAAG,IAAI,2BAAY,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;YACxC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,EAAC,KAAK,EAAE,CAAC,EAAC,CAAC,CAAC;YAEtC,MAAM,CAAC,CAAC,CAAC;QACV,CAAC;QAED,sCAAW,GAAX,UAAY,UAAsB;YAEjC,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YACrC,EAAE,CAAA,CAAC,CAAC,CAAC,CACL,CAAC;gBACA,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;gBAChB,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBAChC,CAAC,CAAC,OAAO,EAAE,CAAC;YACb,CAAC;QACF,CAAC;QAES,0CAAe,GAAzB,UAA0B,iBAAiC;YAAjC,iCAAiC,GAAjC,yBAAiC;YAE1D,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,eAAe,CAAC;YACrC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,UAAA,CAAC,IAAE,OAAA,CAAC,CAAC,KAAK,EAAP,CAAO,CAAC,CAAC;YAC3B,IAAI,CAAC,GAAG,iBAAiB,GAAG,CAAC,CAAC,GAAG,CAAC,UAAA,CAAC,IAAE,OAAA,CAAC,CAAC,UAAU,EAAZ,CAAY,CAAC,GAAG,IAAI,CAAC;YAC1D,EAAE,CAAC,KAAK,EAAE,CAAC;YAEX,iBAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAEjB,MAAM,CAAC,CAAC,CAAC;QACV,CAAC;QAED,yCAAc,GAAd;YAEC,IAAI,CAAC,eAAe,EAAE,CAAC;QACxB,CAAC;QAED,kCAAO,GAAP;YAEC,IAAI,CAAC,eAAe,EAAE,CAAC;QACxB,CAAC;QAEF,uBAAC;IAAD,CAAC,AA7ED,IA6EC;IA7ED;sCA6EC,CAAA"} \ No newline at end of file +{"version":3,"file":"SubscribableBase.js","sourceRoot":"","sources":["SubscribableBase.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;;;;;;;;;IAGH,+BAA6B,+BAA+B,CAAC,CAAA;IAC7D,wBAAsB,uBAAuB,CAAC,CAAA;IAC9C,6BAA2B,gBAAgB,CAAC,CAAA;IAK5C;QAcC;YAEC,IAAI,CAAC,eAAe;kBACjB,IAAI,+BAAc,EAAmD,CAAC;QAC1E,CAAC;QAXS,0CAAe,GAAzB;YAEC,MAAM,CAAC,IAAI;iBACT,eAAe;iBACf,GAAG,CAAC,UAAA,IAAI,IAAE,OAAA,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAnC,CAAmC,CAAC,CAAC;QAClD,CAAC;QAQO,yCAAc,GAAtB,UACC,UAAsB;YAEtB,MAAM,CAAC,IAAI;iBACT,eAAe;iBACf,IAAI,CAAC,UAAA,CAAC,IAAE,OAAA,CAAC,CAAC,KAAK,CAAC,UAAU,KAAG,UAAU,EAA/B,CAA+B,CAAC,CAAC;QAC5C,CAAC;QAGD,oCAAS,GAAT,UAAU,UAAsB;YAE/B,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YACrC,EAAE,CAAA,CAAC,CAAC,CAAC;gBACJ,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;YAEhB,IAAI,CAAC,GAAG,IAAI,2BAAY,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;YACxC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,EAAC,KAAK,EAAE,CAAC,EAAC,CAAC,CAAC;YAEtC,MAAM,CAAC,CAAC,CAAC;QACV,CAAC;QAED,sCAAW,GAAX,UAAY,UAAsB;YAEjC,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YACrC,EAAE,CAAA,CAAC,CAAC,CAAC,CACL,CAAC;gBACA,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;gBAChB,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBAChC,CAAC,CAAC,OAAO,EAAE,CAAC;YACb,CAAC;QACF,CAAC;QAES,0CAAe,GAAzB,UAA0B,iBAAiC;YAAjC,iCAAiC,GAAjC,yBAAiC;YAE1D,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,eAAe,CAAC;YACrC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,UAAA,CAAC,IAAE,OAAA,CAAC,CAAC,KAAK,EAAP,CAAO,CAAC,CAAC;YAC3B,IAAI,CAAC,GAAG,iBAAiB,GAAG,CAAC,CAAC,GAAG,CAAC,UAAA,CAAC,IAAE,OAAA,CAAC,CAAC,UAAU,EAAZ,CAAY,CAAC,GAAG,IAAI,CAAC;YAC1D,EAAE,CAAC,KAAK,EAAE,CAAC;YAEX,iBAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAEjB,MAAM,CAAC,CAAC,CAAC;QACV,CAAC;QAED,yCAAc,GAAd;YAEC,IAAI,CAAC,eAAe,EAAE,CAAC;QACxB,CAAC;QAED,kCAAO,GAAP;YAEC,IAAI,CAAC,eAAe,EAAE,CAAC;QACxB,CAAC;QAEF,uBAAC;IAAD,CAAC,AA5ED,IA4EC;IA5EY,wBAAgB,mBA4E5B,CAAA;IAED;sBAAe,gBAAgB,CAAC"} \ No newline at end of file diff --git a/source/System/Observable/SubscribableBase.ts b/source/System/Observable/SubscribableBase.ts index ecbcd643..3f2f95c3 100644 --- a/source/System/Observable/SubscribableBase.ts +++ b/source/System/Observable/SubscribableBase.ts @@ -5,6 +5,7 @@ * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ + import {LinkedNodeList} from "../Collections/LinkedNodeList"; import {dispose} from "../Disposable/dispose"; import {Subscription} from "./Subscription"; @@ -12,9 +13,7 @@ import {ILinkedNodeWithValue} from "../Collections/ILinkedListNode"; import {IDisposable} from "../Disposable/IDisposable"; // This class is very much akin to a registry or 'Set' but uses an intermediary (Subscription) for releasing the registration. - -export default -class SubscribableBase +export class SubscribableBase implements IDisposable { @@ -91,3 +90,5 @@ implements IDisposable } } + +export default SubscribableBase; diff --git a/source/System/Observable/Subscription.js.map b/source/System/Observable/Subscription.js.map index 322627b8..bf5c05f0 100644 --- a/source/System/Observable/Subscription.js.map +++ b/source/System/Observable/Subscription.js.map @@ -1 +1 @@ -{"version":3,"file":"Subscription.js","sourceRoot":"","sources":["Subscription.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;;;;;;;;;IAOH;QAEC,sBACS,aAA+B,EAC/B,WAAc;YADd,kBAAa,GAAb,aAAa,CAAkB;YAC/B,gBAAW,GAAX,WAAW,CAAG;YAEtB,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,WAAW,CAAC;gBAClC,MAAM,6CAA6C,CAAC;QACtD,CAAC;QAED,sBAAI,oCAAU;iBAAd;gBACC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;YACzB,CAAC;;;WAAA;QAiBD,sBAAI,qCAAW;iBAAf;gBAEC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;YACjD,CAAC;;;WAAA;QAED,8BAAO,GAAP;YAEC,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACjC,IAAI,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC;YAGtC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAG1B,EAAE,CAAC,CAAC,UAAU,IAAI,YAAY,CAAC,CAC/B,CAAC;gBACA,YAAY,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YACtC,CAAC;QACF,CAAC;QACF,mBAAC;IAAD,CAAC,AAjDD,IAiDC;IAjDY,oBAAY,eAiDxB,CAAA;IAED;sBAAe,YAAY,CAAC"} \ No newline at end of file +{"version":3,"file":"Subscription.js","sourceRoot":"","sources":["Subscription.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;;;;;;;;;IASH;QAEC,sBACS,aAA+B,EAC/B,WAAc;YADd,kBAAa,GAAb,aAAa,CAAkB;YAC/B,gBAAW,GAAX,WAAW,CAAG;YAEtB,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,WAAW,CAAC;gBAClC,MAAM,6CAA6C,CAAC;QACtD,CAAC;QAED,sBAAI,oCAAU;iBAAd;gBACC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;YACzB,CAAC;;;WAAA;QAiBD,sBAAI,qCAAW;iBAAf;gBAEC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;YACjD,CAAC;;;WAAA;QAED,8BAAO,GAAP;YAEC,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACjC,IAAI,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC;YAGtC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAG1B,EAAE,CAAC,CAAC,UAAU,IAAI,YAAY,CAAC,CAC/B,CAAC;gBACA,YAAY,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YACtC,CAAC;QACF,CAAC;QACF,mBAAC;IAAD,CAAC,AAjDD,IAiDC;IAjDY,oBAAY,eAiDxB,CAAA;IAED;sBAAe,YAAY,CAAC"} \ No newline at end of file diff --git a/source/System/Observable/Subscription.ts b/source/System/Observable/Subscription.ts index f8c6e73f..8dbbb5af 100644 --- a/source/System/Observable/Subscription.ts +++ b/source/System/Observable/Subscription.ts @@ -5,7 +5,9 @@ * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ -import {IDisposableAware} from "../Disposable/IDisposableAware"; // For compatibility with (let, const, function, class); + +import {IDisposableAware} from "../Disposable/IDisposableAware"; +import {ISubscribable} from "./ISubscribable"; // For compatibility with (let, const, function, class); /** * A registration that an IObservable returns that can be disposed in order to cancel sending data to the observer. diff --git a/source/System/Tasks/defer.js.map b/source/System/Tasks/defer.js.map index e4bb54b6..0710d645 100644 --- a/source/System/Tasks/defer.js.map +++ b/source/System/Tasks/defer.js.map @@ -1 +1 @@ -{"version":3,"file":"defer.js","sourceRoot":"","sources":["defer.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;;;;IAIH;QAAA;QAWA,CAAC;QAJA,2BAAO,GAAP;YAEC,IAAI,CAAC,MAAM,EAAE,CAAC;QACf,CAAC;QACF,gBAAC;IAAD,CAAC,AAXD,IAWC;IAED;QAAoB,yBAAS;QAI5B,eAAY,IAAY,EAAE,KAAa;YAEtC,iBAAO,CAAC;YACR,EAAE,CAAA,CAAC,CAAC,CAAC,KAAK,IAAE,CAAC,CAAC,CAAC;gBAAC,KAAK,GAAG,CAAC,CAAC;YAC1B,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACzD,CAAC;QAED,sBAAM,GAAN;YAEC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;YAClB,EAAE,CAAA,CAAC,EAAE,CAAC,CACN,CAAC;gBACA,YAAY,CAAC,EAAE,CAAC,CAAC;gBACjB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;YACD,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAGc,aAAO,GAAtB,UAAuB,IAAa,EAAE,CAAO;YAE5C,CAAC,CAAC,MAAM,EAAE,CAAC;YACX,IAAI,EAAE,CAAC;QACR,CAAC;QAEF,YAAC;IAAD,CAAC,AA9BD,CAAoB,SAAS,GA8B5B;IAED;QAA4B,iCAAS;QAIpC,uBACC,IAAa,EACb,QAAe,EACP,UAA4B;YAApC,0BAAoC,GAApC,qBAAoC;YAEpC,iBAAO,CAAC;YAFA,eAAU,GAAV,UAAU,CAAkB;YAGpC,EAAE,CAAA,CAAC,QAAQ,KAAG,IAAI,IAAI,QAAQ,KAAI,KAAI,CAAC,CAAC,CAAC,CAAC;gBACzC,MAAM,oCAAoC,CAAC;YAC5C,EAAE,CAAA,CAAC,QAAQ,GAAC,CAAC,CAAC;gBACb,MAAM,gCAAgC,CAAC;YAExC,IAAI,CAAC,GAAG,GAAG,WAAW,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACrE,CAAC;QAED,8BAAM,GAAN;YAEC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;YAClB,EAAE,CAAA,CAAC,EAAE,CAAC,CACN,CAAC;gBACA,aAAa,CAAC,EAAE,CAAC,CAAC;gBAClB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;YACD,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAEc,qBAAO,GAAtB,UAAuB,IAAa,EAAE,CAAe;YAEpD,EAAE,CAAA,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;gBAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YACjC,IAAI,EAAE,CAAC;QACR,CAAC;QAEF,oBAAC;IAAD,CAAC,AApCD,CAA4B,SAAS,GAoCpC;IAGD,eACC,IAAY,EACZ,KAAa;QAEb,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;IALD;2BAKC,CAAA;IAED,kBACC,IAAa,EACb,QAAe,EACf,KAAuB;QAAvB,qBAAuB,GAAvB,gBAAuB;QAEvB,MAAM,CAAC,IAAI,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC;IANe,gBAAQ,WAMvB,CAAA"} \ No newline at end of file +{"version":3,"file":"defer.js","sourceRoot":"","sources":["defer.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;;;;IAKH;QAAA;QAWA,CAAC;QAJA,2BAAO,GAAP;YAEC,IAAI,CAAC,MAAM,EAAE,CAAC;QACf,CAAC;QACF,gBAAC;IAAD,CAAC,AAXD,IAWC;IAED;QAAoB,yBAAS;QAI5B,eAAY,IAAY,EAAE,KAAa;YAEtC,iBAAO,CAAC;YACR,EAAE,CAAA,CAAC,CAAC,CAAC,KAAK,IAAE,CAAC,CAAC,CAAC;gBAAC,KAAK,GAAG,CAAC,CAAC;YAC1B,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACzD,CAAC;QAED,sBAAM,GAAN;YAEC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;YAClB,EAAE,CAAA,CAAC,EAAE,CAAC,CACN,CAAC;gBACA,YAAY,CAAC,EAAE,CAAC,CAAC;gBACjB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;YACD,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAGc,aAAO,GAAtB,UAAuB,IAAa,EAAE,CAAO;YAE5C,CAAC,CAAC,MAAM,EAAE,CAAC;YACX,IAAI,EAAE,CAAC;QACR,CAAC;QAEF,YAAC;IAAD,CAAC,AA9BD,CAAoB,SAAS,GA8B5B;IAED;QAA4B,iCAAS;QAIpC,uBACC,IAAa,EACb,QAAe,EACP,UAA4B;YAApC,0BAAoC,GAApC,qBAAoC;YAEpC,iBAAO,CAAC;YAFA,eAAU,GAAV,UAAU,CAAkB;YAGpC,EAAE,CAAA,CAAC,QAAQ,KAAG,IAAI,IAAI,QAAQ,KAAI,KAAI,CAAC,CAAC,CAAC,CAAC;gBACzC,MAAM,oCAAoC,CAAC;YAC5C,EAAE,CAAA,CAAC,QAAQ,GAAC,CAAC,CAAC;gBACb,MAAM,gCAAgC,CAAC;YAExC,IAAI,CAAC,GAAG,GAAG,WAAW,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACrE,CAAC;QAED,8BAAM,GAAN;YAEC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;YAClB,EAAE,CAAA,CAAC,EAAE,CAAC,CACN,CAAC;gBACA,aAAa,CAAC,EAAE,CAAC,CAAC;gBAClB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;YACD,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAEc,qBAAO,GAAtB,UAAuB,IAAa,EAAE,CAAe;YAEpD,EAAE,CAAA,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;gBAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YACjC,IAAI,EAAE,CAAC;QACR,CAAC;QAEF,oBAAC;IAAD,CAAC,AApCD,CAA4B,SAAS,GAoCpC;IAGD,eACC,IAAY,EACZ,KAAa;QAEb,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;IALD;2BAKC,CAAA;IAED,kBACC,IAAa,EACb,QAAe,EACf,KAAuB;QAAvB,qBAAuB,GAAvB,gBAAuB;QAEvB,MAAM,CAAC,IAAI,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC;IANe,gBAAQ,WAMvB,CAAA"} \ No newline at end of file diff --git a/source/System/Tasks/defer.ts b/source/System/Tasks/defer.ts index 8998ca07..c6dd0e57 100644 --- a/source/System/Tasks/defer.ts +++ b/source/System/Tasks/defer.ts @@ -3,8 +3,9 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -/// +import {ICancellable} from "./ICancellable"; +import {Closure} from "../FunctionTypes"; abstract class DeferBase implements ICancellable { // It may be a Timer in node, should not be restricted to number. diff --git a/source/System/Tasks/deferImmediate.js b/source/System/Tasks/deferImmediate.js index 9e8e0806..238a401b 100644 --- a/source/System/Tasks/deferImmediate.js +++ b/source/System/Tasks/deferImmediate.js @@ -15,7 +15,6 @@ var Types_1 = require("../Types"); var LinkedNodeList_1 = require("../Collections/LinkedNodeList"); var Queue_1 = require("../Collections/Queue"); - "use strict"; var requestTick; var isNodeJS = false; var flushing = false; diff --git a/source/System/Tasks/deferImmediate.js.map b/source/System/Tasks/deferImmediate.js.map index 8d9c5716..ec1a62b3 100644 --- a/source/System/Tasks/deferImmediate.js.map +++ b/source/System/Tasks/deferImmediate.js.map @@ -1 +1 @@ -{"version":3,"file":"deferImmediate.js","sourceRoot":"","sources":["deferImmediate.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"deferImmediate.js","sourceRoot":"","sources":["deferImmediate.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/source/System/Tasks/deferImmediate.ts b/source/System/Tasks/deferImmediate.ts index ed41e20c..2f8f9e49 100644 --- a/source/System/Tasks/deferImmediate.ts +++ b/source/System/Tasks/deferImmediate.ts @@ -4,7 +4,7 @@ * Based on code from: https://github.com/kriskowal/q */ -/// + import {Type} from "../Types"; import {LinkedNodeList} from "../Collections/LinkedNodeList"; import {Queue} from "../Collections/Queue"; @@ -32,8 +32,6 @@ interface ITaskQueueEntry extends ILinkedNode } -"use strict"; - var requestTick:()=>void; var isNodeJS:boolean = false; var flushing:boolean = false; diff --git a/source/System/Time/DateTime.js.map b/source/System/Time/DateTime.js.map index ab4aacde..8c42ee05 100644 --- a/source/System/Time/DateTime.js.map +++ b/source/System/Time/DateTime.js.map @@ -1 +1 @@ -{"version":3,"file":"DateTime.js","sourceRoot":"","sources":["DateTime.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"DateTime.js","sourceRoot":"","sources":["DateTime.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/source/System/Time/DateTime.ts b/source/System/Time/DateTime.ts index 2255c70a..0c8db50e 100644 --- a/source/System/Time/DateTime.ts +++ b/source/System/Time/DateTime.ts @@ -10,7 +10,9 @@ import {TimeSpan} from "./TimeSpan"; import {ClockTime} from "./ClockTime"; import {Milliseconds} from "./HowMany"; import {TimeStamp} from "./TimeStamp"; - +import {IDateTime} from "./IDateTime"; +import {Gregorian} from "./Calendars"; +import {ITimeQuantity} from "./ITimeQuantity"; export class DateTime implements ICalendarDate, IDateTime { diff --git a/source/System/Time/TimeQuantity.js.map b/source/System/Time/TimeQuantity.js.map index f47df5da..979e50e3 100644 --- a/source/System/Time/TimeQuantity.js.map +++ b/source/System/Time/TimeQuantity.js.map @@ -1 +1 @@ -{"version":3,"file":"TimeQuantity.js","sourceRoot":"","sources":["TimeQuantity.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;IAEH,wBAAgC,YAAY,CAAC,CAAA;IAC7C,yBAAuB,YAAY,CAAC,CAAA;IAOpC;QAGC,sBAAsB,SAAoB;YAA9B,yBAA8B,GAA9B,aAA8B;YAApB,cAAS,GAAT,SAAS,CAAW;QAE1C,CAAC;QAGD,2CAAoB,GAApB;YAEC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QACvB,CAAC;QAMD,sBAAI,mCAAS;iBAAb;gBAEC,MAAM,CAAC,iBAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC,CAAC;YAChD,CAAC;;;WAAA;QAOD,6BAAM,GAAN,UAAO,KAAmB;YAEzB,MAAM,CAAC,kBAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAChG,CAAC;QAOD,gCAAS,GAAT,UAAU,KAAmB;YAE5B,MAAM,CAAC,iBAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC/F,CAAC;QAUD,sBAAI,+BAAK;iBAAT;gBAEC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,CACN,CAAC;oBACA,IAAI,EAAE,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;oBAErC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAqB,MAAM,CAAC,MAAM,CAAC;wBACjD,KAAK,EAAE,EAAE,GAAC,KAAqB;wBAC/B,YAAY,EAAE,EAAE;wBAChB,OAAO,EAAE,EAAE,GAAC,IAAuB;wBACnC,OAAO,EAAE,EAAE,GAAC,KAAuB;wBACnC,KAAK,EAAE,EAAE,GAAC,OAAqB;wBAC/B,IAAI,EAAE,EAAE,GAAC,QAAoB;qBAC7B,CAAC,CAAC;gBACJ,CAAC;gBACD,MAAM,CAAC,CAAC,CAAC;YACV,CAAC;;;WAAA;QAOD,+BAAQ,GAAR,UAAS,KAAc;YAEtB,MAAM,CAAC,mBAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,KAAK,CAAC,CAAC;QACtE,CAAC;QACF,mBAAC;IAAD,CAAC,AA9ED,IA8EC;IA9EY,oBAAY,eA8ExB,CAAA;IAED;sBAAe,YAAY,CAAC"} \ No newline at end of file +{"version":3,"file":"TimeQuantity.js","sourceRoot":"","sources":["TimeQuantity.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;IAGH,wBAAgC,YAAY,CAAC,CAAA;IAC7C,yBAAuB,YAAY,CAAC,CAAA;IAUpC;QAGC,sBAAsB,SAAoB;YAA9B,yBAA8B,GAA9B,aAA8B;YAApB,cAAS,GAAT,SAAS,CAAW;QAE1C,CAAC;QAGD,2CAAoB,GAApB;YAEC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QACvB,CAAC;QAMD,sBAAI,mCAAS;iBAAb;gBAEC,MAAM,CAAC,iBAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC,CAAC;YAChD,CAAC;;;WAAA;QAOD,6BAAM,GAAN,UAAO,KAAmB;YAEzB,MAAM,CAAC,kBAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAChG,CAAC;QAOD,gCAAS,GAAT,UAAU,KAAmB;YAE5B,MAAM,CAAC,iBAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC/F,CAAC;QAUD,sBAAI,+BAAK;iBAAT;gBAEC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,CACN,CAAC;oBACA,IAAI,EAAE,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;oBAErC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAqB,MAAM,CAAC,MAAM,CAAC;wBACjD,KAAK,EAAE,EAAE,GAAC,KAAqB;wBAC/B,YAAY,EAAE,EAAE;wBAChB,OAAO,EAAE,EAAE,GAAC,IAAuB;wBACnC,OAAO,EAAE,EAAE,GAAC,KAAuB;wBACnC,KAAK,EAAE,EAAE,GAAC,OAAqB;wBAC/B,IAAI,EAAE,EAAE,GAAC,QAAoB;qBAC7B,CAAC,CAAC;gBACJ,CAAC;gBACD,MAAM,CAAC,CAAC,CAAC;YACV,CAAC;;;WAAA;QAOD,+BAAQ,GAAR,UAAS,KAAc;YAEtB,MAAM,CAAC,mBAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,KAAK,CAAC,CAAC;QACtE,CAAC;QACF,mBAAC;IAAD,CAAC,AA9ED,IA8EC;IA9EY,oBAAY,eA8ExB,CAAA;IAED;sBAAe,YAAY,CAAC"} \ No newline at end of file diff --git a/source/System/Time/TimeQuantity.ts b/source/System/Time/TimeQuantity.ts index 354382f5..b9b1255e 100644 --- a/source/System/Time/TimeQuantity.ts +++ b/source/System/Time/TimeQuantity.ts @@ -3,10 +3,14 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ + import {areEqual, compare} from "../Compare"; import {TimeUnit} from "./TimeUnit"; import {Milliseconds, Ticks} from "./HowMany"; - +import {IEquatable} from "../IEquatable"; +import {IComparable} from "../IComparable"; +import {ITimeQuantity} from "./ITimeQuantity"; +import {ITimeMeasurement} from "./ITimeMeasurement"; /** * This class provides a simple means for storing and calculating time quantities. diff --git a/source/System/Time/TimeSpan.js.map b/source/System/Time/TimeSpan.js.map index 2feef72f..e2caaaaf 100644 --- a/source/System/Time/TimeSpan.js.map +++ b/source/System/Time/TimeSpan.js.map @@ -1 +1 @@ -{"version":3,"file":"TimeSpan.js","sourceRoot":"","sources":["TimeSpan.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"TimeSpan.js","sourceRoot":"","sources":["TimeSpan.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/source/System/Time/TimeSpan.ts b/source/System/Time/TimeSpan.ts index 05e6b80e..fd3774c2 100644 --- a/source/System/Time/TimeSpan.ts +++ b/source/System/Time/TimeSpan.ts @@ -9,6 +9,8 @@ import {TimeUnit} from "./TimeUnit"; import {ClockTime} from "./ClockTime"; import {TimeQuantity} from "./TimeQuantity"; import {Milliseconds, Ticks} from "./HowMany"; +import {ITimeMeasurement} from "./ITimeMeasurement"; +import {ITimeQuantity} from "./ITimeQuantity"; /** diff --git a/source/System/Time/TimeStamp.js.map b/source/System/Time/TimeStamp.js.map index cd7fcb79..7774ea13 100644 --- a/source/System/Time/TimeStamp.js.map +++ b/source/System/Time/TimeStamp.js.map @@ -1 +1 @@ -{"version":3,"file":"TimeStamp.js","sourceRoot":"","sources":["TimeStamp.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;IAEH,sBAAmB,UAAU,CAAC,CAAA;IAO9B;QAGC,mBACQ,IAAW,EACX,KAAqB,EACrB,GAAc,EACd,IAAe,EACf,MAAiB,EACjB,MAAiB,EACjB,WAAsB,EACtB,IAAe;YALtB,mBAAqB,GAArB,OAAqB;YACrB,oBAAsB,GAAtB,QAAsB;YACtB,sBAAwB,GAAxB,UAAwB;YACxB,sBAAwB,GAAxB,UAAwB;YACxB,2BAA6B,GAA7B,eAA6B;YAC7B,oBAAsB,GAAtB,QAAsB;YAPf,SAAI,GAAJ,IAAI,CAAO;YACX,UAAK,GAAL,KAAK,CAAgB;YACrB,QAAG,GAAH,GAAG,CAAW;YACd,SAAI,GAAJ,IAAI,CAAW;YACf,WAAM,GAAN,MAAM,CAAW;YACjB,WAAM,GAAN,MAAM,CAAW;YACjB,gBAAW,GAAX,WAAW,CAAW;YACtB,SAAI,GAAJ,IAAI,CAAW;YAKtB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QAED,4BAAQ,GAAR;YAEC,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,GAAC,KAAqB,CAAC,CAAC;QACnH,CAAC;QAEM,cAAI,GAAX,UAAY,CAAgB;YAE3B,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,IAAI,YAAI,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;gBACxD,CAAC,GAAe,CAAE,CAAC,QAAQ,EAAE,CAAC;YAC/B,EAAE,CAAA,CAAC,CAAC,YAAY,IAAI,CAAC,CACrB,CAAC;gBACA,MAAM,CAAC,IAAI,SAAS,CACnB,CAAC,CAAC,WAAW,EAAE,EACf,CAAC,CAAC,QAAQ,EAAE,EACZ,CAAC,CAAC,OAAO,EAAE,EACX,CAAC,CAAC,QAAQ,EAAE,EACZ,CAAC,CAAC,UAAU,EAAE,EACd,CAAC,CAAC,UAAU,EAAE,EACd,CAAC,CAAC,eAAe,EAAE,CACnB,CAAC;YACH,CAAC;YACD,IAAI,CACJ,CAAC;gBACA,MAAM,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACnC,CAAC;QACF,CAAC;QACF,gBAAC;IAAD,CAAC,AA9CD,IA8CC;IA9CY,iBAAS,YA8CrB,CAAA;IAED;sBAAe,SAAS,CAAC"} \ No newline at end of file +{"version":3,"file":"TimeStamp.js","sourceRoot":"","sources":["TimeStamp.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;IAEH,sBAAmB,UAAU,CAAC,CAAA;IAS9B;QAGC,mBACQ,IAAW,EACX,KAAqB,EACrB,GAAc,EACd,IAAe,EACf,MAAiB,EACjB,MAAiB,EACjB,WAAsB,EACtB,IAAe;YALtB,mBAAqB,GAArB,OAAqB;YACrB,oBAAsB,GAAtB,QAAsB;YACtB,sBAAwB,GAAxB,UAAwB;YACxB,sBAAwB,GAAxB,UAAwB;YACxB,2BAA6B,GAA7B,eAA6B;YAC7B,oBAAsB,GAAtB,QAAsB;YAPf,SAAI,GAAJ,IAAI,CAAO;YACX,UAAK,GAAL,KAAK,CAAgB;YACrB,QAAG,GAAH,GAAG,CAAW;YACd,SAAI,GAAJ,IAAI,CAAW;YACf,WAAM,GAAN,MAAM,CAAW;YACjB,WAAM,GAAN,MAAM,CAAW;YACjB,gBAAW,GAAX,WAAW,CAAW;YACtB,SAAI,GAAJ,IAAI,CAAW;YAKtB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QAED,4BAAQ,GAAR;YAEC,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,GAAC,KAAqB,CAAC,CAAC;QACnH,CAAC;QAEM,cAAI,GAAX,UAAY,CAAgB;YAE3B,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,IAAI,YAAI,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;gBACxD,CAAC,GAAe,CAAE,CAAC,QAAQ,EAAE,CAAC;YAC/B,EAAE,CAAA,CAAC,CAAC,YAAY,IAAI,CAAC,CACrB,CAAC;gBACA,MAAM,CAAC,IAAI,SAAS,CACnB,CAAC,CAAC,WAAW,EAAE,EACf,CAAC,CAAC,QAAQ,EAAE,EACZ,CAAC,CAAC,OAAO,EAAE,EACX,CAAC,CAAC,QAAQ,EAAE,EACZ,CAAC,CAAC,UAAU,EAAE,EACd,CAAC,CAAC,UAAU,EAAE,EACd,CAAC,CAAC,eAAe,EAAE,CACnB,CAAC;YACH,CAAC;YACD,IAAI,CACJ,CAAC;gBACA,MAAM,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACnC,CAAC;QACF,CAAC;QACF,gBAAC;IAAD,CAAC,AA9CD,IA8CC;IA9CY,iBAAS,YA8CrB,CAAA;IAED;sBAAe,SAAS,CAAC"} \ No newline at end of file diff --git a/source/System/Time/TimeStamp.ts b/source/System/Time/TimeStamp.ts index 196b59df..19752c07 100644 --- a/source/System/Time/TimeStamp.ts +++ b/source/System/Time/TimeStamp.ts @@ -6,6 +6,8 @@ import {Type} from "../Types"; import {ITimeStamp} from "./ITimeStamp"; import {Ticks} from "./HowMany"; +import {IDateTime} from "./IDateTime"; +import {Gregorian} from "./Calendars"; /** * An alternative to Date or DateTime. Is a model representing the exact date and time. diff --git a/source/System/Time/TimeUnit.js.map b/source/System/Time/TimeUnit.js.map index f44ced00..30a7a006 100644 --- a/source/System/Time/TimeUnit.js.map +++ b/source/System/Time/TimeUnit.js.map @@ -1 +1 @@ -{"version":3,"file":"TimeUnit.js","sourceRoot":"","sources":["TimeUnit.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;;;;;;;;IAIH,WAAY,QAAQ;QAEnB,yCAAK,CAAA;QACL,uDAAY,CAAA;QACZ,6CAAO,CAAA;QACP,6CAAO,CAAA;QACP,yCAAK,CAAA;QACL,uCAAI,CAAA;IACL,CAAC,EARW,gBAAQ,KAAR,gBAAQ,QAQnB;IARD,IAAY,QAAQ,GAAR,gBAQX,CAAA;IAED,IAAc,QAAQ,CAgErB;IAhED,WAAc,QAAQ,EACtB,CAAC;QAEA,wBACC,KAAY,EACZ,KAAsC;YAAtC,qBAAsC,GAAtC,QAAiB,QAAQ,CAAC,YAAY;YAGtC,MAAM,CAAA,CAAC,KAAK,CAAC,CACb,CAAC;gBACA,KAAK,QAAQ,CAAC,IAAI;oBACjB,KAAK,IAAI,EAAa,CAAC;gBACxB,KAAK,QAAQ,CAAC,KAAK;oBAClB,KAAK,IAAI,EAAgB,CAAC;gBAC3B,KAAK,QAAQ,CAAC,OAAO;oBACpB,KAAK,IAAI,EAAkB,CAAC;gBAC7B,KAAK,QAAQ,CAAC,OAAO;oBACpB,KAAK,IAAI,IAAuB,CAAC;gBAClC,KAAK,QAAQ,CAAC,YAAY;oBACzB,MAAM,CAAC,KAAK,CAAC;gBACd,KAAK,QAAQ,CAAC,KAAK;oBAClB,MAAM,CAAC,KAAK,GAAC,KAAqB,CAAC;gBACpC;oBACC,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;YACvC,CAAC;QACF,CAAC;QAtBe,uBAAc,iBAsB7B,CAAA;QAED,0BACC,EAAS,EACT,KAAc;YAEd,MAAM,CAAA,CAAC,KAAK,CAAC,CACb,CAAC;gBACA,KAAK,QAAQ,CAAC,IAAI;oBACjB,MAAM,CAAC,EAAE,GAAC,QAAoB,CAAC;gBAChC,KAAK,QAAQ,CAAC,KAAK;oBAClB,MAAM,CAAC,EAAE,GAAC,OAAqB,CAAC;gBACjC,KAAK,QAAQ,CAAC,OAAO;oBACpB,MAAM,CAAC,EAAE,GAAC,KAAuB,CAAC;gBACnC,KAAK,QAAQ,CAAC,OAAO;oBACpB,MAAM,CAAC,EAAE,GAAC,IAAuB,CAAC;gBACnC,KAAK,QAAQ,CAAC,YAAY;oBACzB,MAAM,CAAC,EAAE,CAAC;gBACX,KAAK,QAAQ,CAAC,KAAK;oBAClB,MAAM,CAAC,EAAE,GAAC,KAAqB,CAAC;gBACjC;oBACC,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;YACvC,CAAC;QACF,CAAC;QArBe,yBAAgB,mBAqB/B,CAAA;QAED,cAAqB,QAAsB,EAAE,IAAa;YAEzD,MAAM,CAAC,QAAQ,IAAI,gBAAgB,CAAC,QAAQ,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QAC5E,CAAC;QAHe,aAAI,OAGnB,CAAA;QAGD,qBAA4B,IAAa;YAExC,EAAE,CAAA,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,GAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,GAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAG,IAAI,CAAC;gBACtF,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;YAEtC,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QANe,oBAAW,cAM1B,CAAA;IAEF,CAAC,EAhEa,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAgErB;IAED,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAExB;sBAAe,QAAQ,CAAC"} \ No newline at end of file +{"version":3,"file":"TimeUnit.js","sourceRoot":"","sources":["TimeUnit.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;;;;;;;;IAKH,WAAY,QAAQ;QAEnB,yCAAK,CAAA;QACL,uDAAY,CAAA;QACZ,6CAAO,CAAA;QACP,6CAAO,CAAA;QACP,yCAAK,CAAA;QACL,uCAAI,CAAA;IACL,CAAC,EARW,gBAAQ,KAAR,gBAAQ,QAQnB;IARD,IAAY,QAAQ,GAAR,gBAQX,CAAA;IAED,IAAc,QAAQ,CAgErB;IAhED,WAAc,QAAQ,EACtB,CAAC;QAEA,wBACC,KAAY,EACZ,KAAsC;YAAtC,qBAAsC,GAAtC,QAAiB,QAAQ,CAAC,YAAY;YAGtC,MAAM,CAAA,CAAC,KAAK,CAAC,CACb,CAAC;gBACA,KAAK,QAAQ,CAAC,IAAI;oBACjB,KAAK,IAAI,EAAa,CAAC;gBACxB,KAAK,QAAQ,CAAC,KAAK;oBAClB,KAAK,IAAI,EAAgB,CAAC;gBAC3B,KAAK,QAAQ,CAAC,OAAO;oBACpB,KAAK,IAAI,EAAkB,CAAC;gBAC7B,KAAK,QAAQ,CAAC,OAAO;oBACpB,KAAK,IAAI,IAAuB,CAAC;gBAClC,KAAK,QAAQ,CAAC,YAAY;oBACzB,MAAM,CAAC,KAAK,CAAC;gBACd,KAAK,QAAQ,CAAC,KAAK;oBAClB,MAAM,CAAC,KAAK,GAAC,KAAqB,CAAC;gBACpC;oBACC,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;YACvC,CAAC;QACF,CAAC;QAtBe,uBAAc,iBAsB7B,CAAA;QAED,0BACC,EAAS,EACT,KAAc;YAEd,MAAM,CAAA,CAAC,KAAK,CAAC,CACb,CAAC;gBACA,KAAK,QAAQ,CAAC,IAAI;oBACjB,MAAM,CAAC,EAAE,GAAC,QAAoB,CAAC;gBAChC,KAAK,QAAQ,CAAC,KAAK;oBAClB,MAAM,CAAC,EAAE,GAAC,OAAqB,CAAC;gBACjC,KAAK,QAAQ,CAAC,OAAO;oBACpB,MAAM,CAAC,EAAE,GAAC,KAAuB,CAAC;gBACnC,KAAK,QAAQ,CAAC,OAAO;oBACpB,MAAM,CAAC,EAAE,GAAC,IAAuB,CAAC;gBACnC,KAAK,QAAQ,CAAC,YAAY;oBACzB,MAAM,CAAC,EAAE,CAAC;gBACX,KAAK,QAAQ,CAAC,KAAK;oBAClB,MAAM,CAAC,EAAE,GAAC,KAAqB,CAAC;gBACjC;oBACC,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;YACvC,CAAC;QACF,CAAC;QArBe,yBAAgB,mBAqB/B,CAAA;QAED,cAAqB,QAAsB,EAAE,IAAa;YAEzD,MAAM,CAAC,QAAQ,IAAI,gBAAgB,CAAC,QAAQ,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QAC5E,CAAC;QAHe,aAAI,OAGnB,CAAA;QAGD,qBAA4B,IAAa;YAExC,EAAE,CAAA,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,GAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,GAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAG,IAAI,CAAC;gBACtF,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;YAEtC,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QANe,oBAAW,cAM1B,CAAA;IAEF,CAAC,EAhEa,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAgErB;IAED,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAExB;sBAAe,QAAQ,CAAC"} \ No newline at end of file diff --git a/source/System/Time/TimeUnit.ts b/source/System/Time/TimeUnit.ts index 16fc6269..17e715f7 100644 --- a/source/System/Time/TimeUnit.ts +++ b/source/System/Time/TimeUnit.ts @@ -5,6 +5,7 @@ */ import {Hours, Minutes, Seconds, Milliseconds, Ticks} from "./HowMany"; +import {ITimeQuantity} from "./ITimeQuantity"; export enum TimeUnit { diff --git a/source/System/Time/TimeUnitValue.js b/source/System/Time/TimeUnitValue.js index eb633b1e..0a2d901c 100644 --- a/source/System/Time/TimeUnitValue.js +++ b/source/System/Time/TimeUnitValue.js @@ -15,7 +15,7 @@ var __extends = (this && this.__extends) || function (d, b) { define(["require", "exports", "./TimeUnit", "./TimeQuantity"], factory); } })(function (require, exports) { - 'use strict'; + "use strict"; var TimeUnit_1 = require("./TimeUnit"); var TimeQuantity_1 = require("./TimeQuantity"); var TimeUnitValue = (function (_super) { diff --git a/source/System/Time/TimeUnitValue.js.map b/source/System/Time/TimeUnitValue.js.map index 05767128..9ef38837 100644 --- a/source/System/Time/TimeUnitValue.js.map +++ b/source/System/Time/TimeUnitValue.js.map @@ -1 +1 @@ -{"version":3,"file":"TimeUnitValue.js","sourceRoot":"","sources":["TimeUnitValue.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;;;IAMH,YAAY,CAAC;IAEb,yBAAuB,YAAY,CAAC,CAAA;IACpC,6BAA2B,gBAAgB,CAAC,CAAA;IAK5C;QAC4B,iCAAY;QAGvC,uBAAY,KAA0B,EAAU,MAAe;YAE9D,kBAAM,OAAM,CAAC,KAAK,CAAC,IAAE,QAAQ;kBAClB,KAAK;kBACb,mBAAmB,CAAgB,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;YAJP,WAAM,GAAN,MAAM,CAAS;YAK9D,mBAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;QAED,sBAAI,gCAAK;iBAAT;gBAEC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YACvB,CAAC;iBAED,UAAU,CAAQ;gBAEjB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;YACpB,CAAC;;;WANA;QAQD,4CAAoB,GAApB;YAEC,MAAM,CAAC,mBAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7D,CAAC;QAGD,sBAAI,gCAAK;iBAAT;gBAEC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;YACpB,CAAC;;;WAAA;QAED,0BAAE,GAAF,UAAG,KAA2B;YAA3B,qBAA2B,GAA3B,QAAiB,IAAI,CAAC,KAAK;YAE7B,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAC,KAAK,CAAC,CAAC;QACvC,CAAC;QAEM,kBAAI,GAAX,UAAY,KAA0B,EAAE,KAAsC;YAAtC,qBAAsC,GAAtC,QAAiB,mBAAQ,CAAC,YAAY;YAE7E,MAAM,CAAC,IAAI,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACxC,CAAC;QAEF,oBAAC;IAAD,CAAC,AA5CD,CAC4B,2BAAY,GA2CvC;IA5CD;mCA4CC,CAAA;IAED,6BAA6B,CAAe,EAAE,KAAc;QAE3D,MAAM,CAAC,mBAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,oBAAoB,EAAE,EAAE,KAAK,CAAC,CAAC;IACnE,CAAC"} \ No newline at end of file +{"version":3,"file":"TimeUnitValue.js","sourceRoot":"","sources":["TimeUnitValue.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;;;;IAGH,yBAAuB,YAAY,CAAC,CAAA;IACpC,6BAA2B,gBAAgB,CAAC,CAAA;IAM5C;QAC4B,iCAAY;QAGvC,uBAAY,KAA0B,EAAU,MAAe;YAE9D,kBAAM,OAAM,CAAC,KAAK,CAAC,IAAE,QAAQ;kBAClB,KAAK;kBACb,mBAAmB,CAAgB,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;YAJP,WAAM,GAAN,MAAM,CAAS;YAK9D,mBAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;QAED,sBAAI,gCAAK;iBAAT;gBAEC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YACvB,CAAC;iBAED,UAAU,CAAQ;gBAEjB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;YACpB,CAAC;;;WANA;QAQD,4CAAoB,GAApB;YAEC,MAAM,CAAC,mBAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7D,CAAC;QAGD,sBAAI,gCAAK;iBAAT;gBAEC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;YACpB,CAAC;;;WAAA;QAED,0BAAE,GAAF,UAAG,KAA2B;YAA3B,qBAA2B,GAA3B,QAAiB,IAAI,CAAC,KAAK;YAE7B,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAC,KAAK,CAAC,CAAC;QACvC,CAAC;QAEM,kBAAI,GAAX,UAAY,KAA0B,EAAE,KAAsC;YAAtC,qBAAsC,GAAtC,QAAiB,mBAAQ,CAAC,YAAY;YAE7E,MAAM,CAAC,IAAI,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACxC,CAAC;QAEF,oBAAC;IAAD,CAAC,AA5CD,CAC4B,2BAAY,GA2CvC;IA5CD;mCA4CC,CAAA;IAED,6BAA6B,CAAe,EAAE,KAAc;QAE3D,MAAM,CAAC,mBAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,oBAAoB,EAAE,EAAE,KAAK,CAAC,CAAC;IACnE,CAAC"} \ No newline at end of file diff --git a/source/System/Time/TimeUnitValue.ts b/source/System/Time/TimeUnitValue.ts index 124919a6..218cd6d1 100644 --- a/source/System/Time/TimeUnitValue.ts +++ b/source/System/Time/TimeUnitValue.ts @@ -3,14 +3,10 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -/// -/// -/// -/// -'use strict'; // For compatibility with (let, const, function, class); import {TimeUnit} from "./TimeUnit"; import {TimeQuantity} from "./TimeQuantity"; +import {ITimeQuantity} from "./ITimeQuantity"; /** * TimeUnitValue allows for passing around a reference to a changeable measure of time coerced by its unit type. diff --git a/source/System/Timers/ITimer.d.ts b/source/System/Timers/ITimer.d.ts index 09a1ec9c..30a647e5 100644 --- a/source/System/Timers/ITimer.d.ts +++ b/source/System/Timers/ITimer.d.ts @@ -3,9 +3,11 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -interface ITimer { +export interface ITimer { isRunning:boolean; start():void; stop():void; reset():void; } + +export default ITimer; diff --git a/source/System/Timers/Timer.js b/source/System/Timers/Timer.js index 14c1bcdf..3fc6d9ff 100644 --- a/source/System/Timers/Timer.js +++ b/source/System/Timers/Timer.js @@ -12,10 +12,11 @@ var __extends = (this && this.__extends) || function (d, b) { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports"], factory); + define(["require", "exports", "../Observable/ObservableBase"], factory); } })(function (require, exports) { "use strict"; + var ObservableBase_1 = require("../Observable/ObservableBase"); var Timer = (function (_super) { __extends(Timer, _super); function Timer(_interval, _maxCount, _initialDelay) { @@ -105,7 +106,7 @@ var __extends = (this && this.__extends) || function (d, b) { } }; return Timer; - }(ObservableBase)); + }(ObservableBase_1.ObservableBase)); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = Timer; }); diff --git a/source/System/Timers/Timer.js.map b/source/System/Timers/Timer.js.map index 12d5a23c..f02b3cde 100644 --- a/source/System/Timers/Timer.js.map +++ b/source/System/Timers/Timer.js.map @@ -1 +1 @@ -{"version":3,"file":"Timer.js","sourceRoot":"","sources":["Timer.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Timer.js","sourceRoot":"","sources":["Timer.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/source/System/Timers/Timer.ts b/source/System/Timers/Timer.ts index a153cea7..76c431db 100644 --- a/source/System/Timers/Timer.ts +++ b/source/System/Timers/Timer.ts @@ -3,8 +3,10 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -/// -/// + +import {ICancellable} from "../Tasks/ICancellable"; +import {ObservableBase} from "../Observable/ObservableBase"; +import {ITimer} from "./ITimer"; export default class Timer extends ObservableBase implements ITimer, ICancellable { @@ -90,7 +92,8 @@ export default class Timer extends ObservableBase implements ITimer, ICa this._count = 0; } - cancel():boolean { + cancel():boolean + { if(this._cancel) { this._cancel(); @@ -100,7 +103,8 @@ export default class Timer extends ObservableBase implements ITimer, ICa return false; } - dispose():void { + dispose():void + { this.cancel(); super.dispose(); } diff --git a/source/System/Types.js b/source/System/Types.js index 8f19c2b1..8b37b43f 100644 --- a/source/System/Types.js +++ b/source/System/Types.js @@ -10,7 +10,7 @@ define(["require", "exports"], factory); } })(function (require, exports) { - 'use strict'; + "use strict"; var VOID0 = void (0), _BOOLEAN = typeof true, _NUMBER = typeof 0, _STRING = typeof "", _OBJECT = typeof {}, _UNDEFINED = typeof VOID0, _FUNCTION = typeof function () { }, LENGTH = "length"; var typeInfoRegistry = {}; var TypeInfo = (function () { diff --git a/source/System/Types.js.map b/source/System/Types.js.map index 81ab644c..8efd66d9 100644 --- a/source/System/Types.js.map +++ b/source/System/Types.js.map @@ -1 +1 @@ -{"version":3,"file":"Types.js","sourceRoot":"","sources":["Types.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Types.js","sourceRoot":"","sources":["Types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/source/System/Types.ts b/source/System/Types.ts index d50e9f35..d8e40350 100644 --- a/source/System/Types.ts +++ b/source/System/Types.ts @@ -3,20 +3,19 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -/// -/// -'use strict'; // For compatibility with (let, const, function, class); +import {Primitive} from "./Primitive"; +import {IArray} from "./Collections/Array/IArray"; // For compatibility with (let, const, function, class); const - VOID0:any = void(0), - _BOOLEAN:string = typeof true, - _NUMBER:string = typeof 0, - _STRING:string = typeof "", - _OBJECT:string = typeof {}, + VOID0:any = void(0), + _BOOLEAN:string = typeof true, + _NUMBER:string = typeof 0, + _STRING:string = typeof "", + _OBJECT:string = typeof {}, _UNDEFINED:string = typeof VOID0, - _FUNCTION:string = typeof function() {}, - LENGTH:string = "length"; + _FUNCTION:string = typeof function() {}, + LENGTH:string = "length"; // Only used for primitives. var typeInfoRegistry:{[key:string]:TypeInfo} = {}; @@ -114,7 +113,7 @@ export class TypeInfo { var t = this.target; return TypeInfo.getFor( - t && (name)in(t) + t && (name) in (t) ? t[name] : undefined); } @@ -262,7 +261,7 @@ export module Type */ export function isObject(value:any, allowNull:boolean = false):boolean { - return typeof value===_OBJECT && (allowNull || value!==null) ; + return typeof value===_OBJECT && (allowNull || value!==null); } /** @@ -282,7 +281,7 @@ export module Type export function hasMember(value:any, property:string):boolean { - return value && !isPrimitive(value) && (property)in(value); + return value && !isPrimitive(value) && (property) in (value); } export function hasMemberOfType(instance:any, property:string, type:string):instance is T diff --git a/source/System/Uri/IUriDotNet.d.ts b/source/System/Uri/IUriDotNet.d.ts index d6c5bf3a..acbcf42d 100644 --- a/source/System/Uri/IUriDotNet.d.ts +++ b/source/System/Uri/IUriDotNet.d.ts @@ -4,17 +4,18 @@ * Based on: https://msdn.microsoft.com/en-us/library/system.uri%28v=vs.110%29.aspx */ + import {UriHostNameType} from "./HostNameType"; import {ISerializable} from "../Serialization/ISerializable"; import {IUri} from "./IUri"; - +import {IEquatable} from "../IEquatable"; /** * Provides an object representation of a uniform resource identifier (URI) and easy access to the parts of the URI. * Currently retained for reference to the .NET implementation. */ -interface IUriDotNet -extends IUri, ISerializable, IEquatable { +interface IUriDotNet extends IUri, ISerializable, IEquatable +{ diff --git a/source/System/Uri/QueryBuilder.js b/source/System/Uri/QueryBuilder.js index 59a0e212..f0dd4bf0 100644 --- a/source/System/Uri/QueryBuilder.js +++ b/source/System/Uri/QueryBuilder.js @@ -69,6 +69,7 @@ var __extends = (this && this.__extends) || function (d, b) { }; return QueryBuilder; }(OrderedStringKeyDictionary_1.OrderedStringKeyDictionary)); + exports.QueryBuilder = QueryBuilder; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = QueryBuilder; }); diff --git a/source/System/Uri/QueryBuilder.js.map b/source/System/Uri/QueryBuilder.js.map index f083762e..092fc163 100644 --- a/source/System/Uri/QueryBuilder.js.map +++ b/source/System/Uri/QueryBuilder.js.map @@ -1 +1 @@ -{"version":3,"file":"QueryBuilder.js","sourceRoot":"","sources":["QueryBuilder.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;;;;IAGH,sBAAmB,UAAU,CAAC,CAAA;IAC9B,2CAAyC,wDAAwD,CAAC,CAAA;IAClG,2BAAsC,uCAAuC,CAAC,CAAA;IAG9E,IAAY,WAAW,WAAM,eAAe,CAAC,CAAA;IAQ7C;QAC2B,gCAAmE;QAG7F,sBACC,KAA4B,EAC5B,YAA2B;YAA3B,4BAA2B,GAA3B,mBAA2B;YAE3B,iBAAO,CAAC;YAER,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QACvC,CAAC;QAGM,iBAAI,GAAX,UACC,KAA4B,EAC5B,YAA2B;YAA3B,4BAA2B,GAA3B,mBAA2B;YAE3B,MAAM,CAAC,IAAI,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAC9C,CAAC;QAED,kCAAW,GAAX,UACC,KAA4B,EAC5B,YAA2B;YAA3B,4BAA2B,GAA3B,mBAA2B;YAG3B,EAAE,CAAA,CAAC,YAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CACxB,CAAC;gBACA,IAAI,CAAC,gBAAgB,CAAS,KAAK,EAAE,YAAY,CAAC,CAAC;YACpD,CAAC;YACD,IAAI,CAAC,EAAE,CAAA,CAAC,oCAAuB,CAAC,KAAK,CAAC,CAAC,CACvC,CAAC;gBACA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;YACD,IAAI,CACJ,CAAC;gBACA,IAAI,CAAC,SAAS,CAAmB,KAAK,CAAC,CAAC;YACzC,CAAC;YAED,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QASD,uCAAgB,GAAhB,UACC,MAAa,EACb,WAA0B,EAC1B,YAA2B;YAD3B,2BAA0B,GAA1B,kBAA0B;YAC1B,4BAA2B,GAA3B,mBAA2B;YAE3B,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,WAAW,CAAC,KAAK,CAAC,MAAM,EACvB,UAAC,GAAG,EAAE,KAAK;gBAEV,EAAE,CAAA,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CACtB,CAAC;oBACA,IAAI,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;oBAC3B,EAAE,CAAA,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;wBACtB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAClB,IAAI;wBACH,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAqB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;gBACrD,CAAC;gBACD,IAAI;oBACH,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACzB,CAAC,EACD,WAAW,EACX,YAAY,CAAC,CAAC;YAEf,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAMD,6BAAM,GAAN,UAAO,gBAAyB;YAE/B,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QACnD,CAAC;QAED,+BAAQ,GAAR;YAEC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACtB,CAAC;QACF,mBAAC;IAAD,CAAC,AAxFD,CAC2B,uDAA0B,GAuFpD;IAxFD;kCAwFC,CAAA"} \ No newline at end of file +{"version":3,"file":"QueryBuilder.js","sourceRoot":"","sources":["QueryBuilder.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;;;;IAGH,sBAAmB,UAAU,CAAC,CAAA;IAC9B,2CAAyC,wDAAwD,CAAC,CAAA;IAClG,2BAAsC,uCAAuC,CAAC,CAAA;IAG9E,IAAY,WAAW,WAAM,eAAe,CAAC,CAAA;IAQ7C;QAAkC,gCAAmE;QAGpG,sBACC,KAA4B,EAC5B,YAA2B;YAA3B,4BAA2B,GAA3B,mBAA2B;YAE3B,iBAAO,CAAC;YAER,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QACvC,CAAC;QAGM,iBAAI,GAAX,UACC,KAA4B,EAC5B,YAA2B;YAA3B,4BAA2B,GAA3B,mBAA2B;YAE3B,MAAM,CAAC,IAAI,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAC9C,CAAC;QAED,kCAAW,GAAX,UACC,KAA4B,EAC5B,YAA2B;YAA3B,4BAA2B,GAA3B,mBAA2B;YAG3B,EAAE,CAAA,CAAC,YAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CACxB,CAAC;gBACA,IAAI,CAAC,gBAAgB,CAAS,KAAK,EAAE,YAAY,CAAC,CAAC;YACpD,CAAC;YACD,IAAI,CAAC,EAAE,CAAA,CAAC,oCAAuB,CAAC,KAAK,CAAC,CAAC,CACvC,CAAC;gBACA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;YACD,IAAI,CACJ,CAAC;gBACA,IAAI,CAAC,SAAS,CAAmB,KAAK,CAAC,CAAC;YACzC,CAAC;YAED,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QASD,uCAAgB,GAAhB,UACC,MAAa,EACb,WAA0B,EAC1B,YAA2B;YAD3B,2BAA0B,GAA1B,kBAA0B;YAC1B,4BAA2B,GAA3B,mBAA2B;YAE3B,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,WAAW,CAAC,KAAK,CAAC,MAAM,EACvB,UAAC,GAAG,EAAE,KAAK;gBAEV,EAAE,CAAA,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CACtB,CAAC;oBACA,IAAI,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;oBAC3B,EAAE,CAAA,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;wBACtB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAClB,IAAI;wBACH,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAqB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;gBACrD,CAAC;gBACD,IAAI;oBACH,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACzB,CAAC,EACD,WAAW,EACX,YAAY,CAAC,CAAC;YAEf,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAMD,6BAAM,GAAN,UAAO,gBAAyB;YAE/B,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QACnD,CAAC;QAED,+BAAQ,GAAR;YAEC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACtB,CAAC;QACF,mBAAC;IAAD,CAAC,AAvFD,CAAkC,uDAA0B,GAuF3D;IAvFY,oBAAY,eAuFxB,CAAA;IAED;sBAAe,YAAY,CAAC"} \ No newline at end of file diff --git a/source/System/Uri/QueryBuilder.ts b/source/System/Uri/QueryBuilder.ts index 06cf0f25..b40aad5b 100644 --- a/source/System/Uri/QueryBuilder.ts +++ b/source/System/Uri/QueryBuilder.ts @@ -17,8 +17,7 @@ import * as QueryParams from "./QueryParams"; * * In other languages, dictionaries are not reliable for retaining the order of stored values. So for certainty and flexibility we use an ordered dictionary as a base class. */ -export default -class QueryBuilder extends OrderedStringKeyDictionary +export class QueryBuilder extends OrderedStringKeyDictionary { constructor( @@ -106,3 +105,5 @@ class QueryBuilder extends OrderedStringKeyDictionary>; diff --git a/source/System/Uri/QueryParams.js.map b/source/System/Uri/QueryParams.js.map index 209fb634..eca70ef7 100644 --- a/source/System/Uri/QueryParams.js.map +++ b/source/System/Uri/QueryParams.js.map @@ -1 +1 @@ -{"version":3,"file":"QueryParams.js","sourceRoot":"","sources":["QueryParams.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"QueryParams.js","sourceRoot":"","sources":["QueryParams.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/source/System/Uri/QueryParams.ts b/source/System/Uri/QueryParams.ts index 23799cac..a1e6382c 100644 --- a/source/System/Uri/QueryParams.ts +++ b/source/System/Uri/QueryParams.ts @@ -3,6 +3,7 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ + import * as Serialization from "../Serialization/Utility"; import * as UriComponent from "./UriComponent"; import * as QueryParam from "./QueryParam"; @@ -12,6 +13,7 @@ import {forEach, isEnumerableOrArrayLike} from "../Collections/Enumeration/Enume import {IMap} from "../Collections/Dictionaries/IDictionary"; import {Primitive} from "../Primitive"; import {IStringKeyValuePair} from "../KeyValuePair"; +import {IEnumerableOrArray} from "../Collections/IEnumerableOrArray"; /* * This module is provided as a lighter weight utility for acquiring query params. diff --git a/source/System/Uri/Uri.js b/source/System/Uri/Uri.js index 8c7880f5..afb1d1dd 100644 --- a/source/System/Uri/Uri.js +++ b/source/System/Uri/Uri.js @@ -129,13 +129,20 @@ var SLASH = '/', SLASH2 = '//', QM = QueryParams.Separator.Query, HASH = '#', EMPTY = '', AT = '@'; function getScheme(scheme) { var s = scheme; - if (s && Types_1.Type.isString(s)) { + if (Types_1.Type.isString(s)) { + if (!s) + return null; s = Utility_1.trim(s).toLowerCase().replace(/[^a-z0-9+.-]+$/g, EMPTY); - if (!Scheme.isValid(s)) - throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('scheme', scheme, 'Invalid scheme.'); - return s; + if (!s) + return null; + if (Scheme.isValid(s)) + return s; } - return VOID0; + else { + if (s === null || s === undefined) + return s; + } + throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException('scheme', scheme, 'Invalid scheme.'); } function getPort(port) { if (port === 0) diff --git a/source/System/Uri/Uri.js.map b/source/System/Uri/Uri.js.map index 68b855a1..4ad982e5 100644 --- a/source/System/Uri/Uri.js.map +++ b/source/System/Uri/Uri.js.map @@ -1 +1 @@ -{"version":3,"file":"Uri.js","sourceRoot":"","sources":["Uri.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Uri.js","sourceRoot":"","sources":["Uri.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/source/System/Uri/Uri.ts b/source/System/Uri/Uri.ts index 517ff059..bef5c0d8 100644 --- a/source/System/Uri/Uri.ts +++ b/source/System/Uri/Uri.ts @@ -19,6 +19,7 @@ import {IUri} from "./IUri"; import {IMap} from "../Collections/Dictionaries/IDictionary"; import {Primitive} from "../Primitive"; import {StringKeyValuePair} from "../KeyValuePair"; +import {IEquatable} from "../IEquatable"; const VOID0:any = void(0); @@ -297,17 +298,16 @@ const SLASH = '/', SLASH2 = '//', QM = QueryParams.Separator.Query, HASH = '#', function getScheme(scheme:string):SchemeValue { var s:any = scheme; - if(s && Type.isString(s)) + if(Type.isString(s)) { + if(!s) return null; s = trim(s).toLowerCase().replace(/[^a-z0-9+.-]+$/g, EMPTY); - - if(!Scheme.isValid(s)) - throw new ArgumentOutOfRangeException('scheme', scheme, 'Invalid scheme.'); - - return s; + if(!s) return null; + if(Scheme.isValid(s)) return s; + } else { + if(s===null || s===undefined) return s; } - - return VOID0; + throw new ArgumentOutOfRangeException('scheme', scheme, 'Invalid scheme.'); } function getPort(port:number|string):number diff --git a/source/System/Validation/IValidationResult.d.ts b/source/System/Validation/IValidationResult.d.ts index 0c86996d..e9c51614 100644 --- a/source/System/Validation/IValidationResult.d.ts +++ b/source/System/Validation/IValidationResult.d.ts @@ -3,8 +3,10 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -interface IValidationResult { +export interface IValidationResult { isValid:boolean; message:string; data:any; } + +export default IValidationResult; \ No newline at end of file diff --git a/source/System/Validation/ValidationResult.js b/source/System/Validation/ValidationResult.js index f3d7e4fa..658b9f5c 100644 --- a/source/System/Validation/ValidationResult.js +++ b/source/System/Validation/ValidationResult.js @@ -10,7 +10,7 @@ define(["require", "exports"], factory); } })(function (require, exports) { - 'use strict'; + "use strict"; var valid = new ValidationResult(true); var ValidationResult = (function () { function ValidationResult(isValid, message, data) { diff --git a/source/System/Validation/ValidationResult.js.map b/source/System/Validation/ValidationResult.js.map index 24163878..eb7ba6ab 100644 --- a/source/System/Validation/ValidationResult.js.map +++ b/source/System/Validation/ValidationResult.js.map @@ -1 +1 @@ -{"version":3,"file":"ValidationResult.js","sourceRoot":"","sources":["ValidationResult.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;IAIH,YAAY,CAAC;IAEb,IAAM,KAAK,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAKzC;QAOC,0BACQ,OAAuB,EACvB,OAAqB,EACrB,IAAe;YAFtB,uBAA8B,GAA9B,eAA8B;YAC9B,uBAA4B,GAA5B,cAA4B;YAC5B,oBAAsB,GAAtB,WAAsB;YAFf,YAAO,GAAP,OAAO,CAAgB;YACvB,YAAO,GAAP,OAAO,CAAc;YACrB,SAAI,GAAJ,IAAI,CAAW;YAItB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QAKD,iCAAM,GAAN,UAAO,KAAuB;YAE7B,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,MAAM,CAAC,CAAC,CAAC,OAAO,KAAG,KAAK,CAAC,OAAO;mBAC5B,CAAC,CAAC,OAAO,IAAE,CAAC,CAAC,OAAO;mBACpB,CAAC,CAAC,IAAI,IAAE,CAAC,CAAC,IAAI,CAAC;QACpB,CAAC;QAOD,sBAAW,yBAAK;iBAAhB;gBACC,MAAM,CAAC,KAAK,CAAC;YACd,CAAC;;;WAAA;QAKM,wBAAO,GAAd,UACC,OAAc,EACd,IAAe;YAAf,oBAAe,GAAf,WAAe;YAEf,MAAM,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QACnD,CAAC;QACF,uBAAC;IAAD,CAAC,AA9CD,IA8CC;IA9CD;sCA8CC,CAAA"} \ No newline at end of file +{"version":3,"file":"ValidationResult.js","sourceRoot":"","sources":["ValidationResult.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;IAKH,IAAM,KAAK,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAKzC;QAOC,0BACQ,OAAuB,EACvB,OAAqB,EACrB,IAAe;YAFtB,uBAA8B,GAA9B,eAA8B;YAC9B,uBAA4B,GAA5B,cAA4B;YAC5B,oBAAsB,GAAtB,WAAsB;YAFf,YAAO,GAAP,OAAO,CAAgB;YACvB,YAAO,GAAP,OAAO,CAAc;YACrB,SAAI,GAAJ,IAAI,CAAW;YAItB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QAKD,iCAAM,GAAN,UAAO,KAAuB;YAE7B,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,MAAM,CAAC,CAAC,CAAC,OAAO,KAAG,KAAK,CAAC,OAAO;mBAC5B,CAAC,CAAC,OAAO,IAAE,CAAC,CAAC,OAAO;mBACpB,CAAC,CAAC,IAAI,IAAE,CAAC,CAAC,IAAI,CAAC;QACpB,CAAC;QAOD,sBAAW,yBAAK;iBAAhB;gBACC,MAAM,CAAC,KAAK,CAAC;YACd,CAAC;;;WAAA;QAKM,wBAAO,GAAd,UACC,OAAc,EACd,IAAe;YAAf,oBAAe,GAAf,WAAe;YAEf,MAAM,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QACnD,CAAC;QACF,uBAAC;IAAD,CAAC,AA9CD,IA8CC;IA9CD;sCA8CC,CAAA"} \ No newline at end of file diff --git a/source/System/Validation/ValidationResult.ts b/source/System/Validation/ValidationResult.ts index 93560402..4eafdf2d 100644 --- a/source/System/Validation/ValidationResult.ts +++ b/source/System/Validation/ValidationResult.ts @@ -3,9 +3,8 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -/// -/// -'use strict'; // For compatibility with (let, const, function, class); +import {IEquatable} from "../IEquatable"; +import {IValidationResult} from "./IValidationResult"; // For compatibility with (let, const, function, class); const valid = new ValidationResult(true); diff --git a/tests/mocha/System.Linq/Enumerable.js b/tests/mocha/System.Linq/Enumerable.js index 86265bfa..25187cff 100644 --- a/tests/mocha/System.Linq/Enumerable.js +++ b/tests/mocha/System.Linq/Enumerable.js @@ -772,4 +772,5 @@ }); }); }); -//# sourceMappingURL=Enumerable.js.map \ No newline at end of file + +//# sourceMappingURL=Enumerable.js.map diff --git a/tests/mocha/System.Linq/Enumerable.js.map b/tests/mocha/System.Linq/Enumerable.js.map index 0ec54e7f..88f2bb8e 100644 --- a/tests/mocha/System.Linq/Enumerable.js.map +++ b/tests/mocha/System.Linq/Enumerable.js.map @@ -1 +1 @@ -{"version":3,"file":"Enumerable.js","sourceRoot":"","sources":["Enumerable.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"sources":["System.Linq/Enumerable.ts"],"names":[],"mappings":"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","file":"System.Linq/Enumerable.js","sourcesContent":["///\r\n\r\nimport {contains, repeat} from \"../../../source/System/Collections/Array/Utility\";\r\nimport * as Procedure from \"../../../source/System/Collections/Array/Procedure\";\r\nimport Enumerable from \"../../../source/System.Linq/Linq\";\r\nimport Functions from \"../../../source/System/Functions\";\r\nimport {empty as EmptyEnumerator} from \"../../../source/System/Collections/Enumeration/Enumerator\";\r\nvar assert = require('../../../node_modules/assert/assert');\r\n\r\n\r\ninterface TestItem\r\n{\r\n\ta:number;\r\n\tb:number;\r\n\tc:string;\r\n\tchildren?:TestItem[];\r\n}\r\n\r\n\r\nconst source:TestItem[] = Object.freeze([\r\n\t{\r\n\t\ta: 1,\r\n\t\tb: 2,\r\n\t\tc: \"a\",\r\n\t\tchildren: [\r\n\t\t\t{\r\n\t\t\t\ta: 1,\r\n\t\t\t\tb: 2,\r\n\t\t\t\tc: \"a\",\r\n\t\t\t\tchildren: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ta: 1,\r\n\t\t\t\t\t\tb: 2,\r\n\t\t\t\t\t\tc: \"a\",\r\n\t\t\t\t\t\tchildren: []\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ta: 1,\r\n\t\t\t\t\t\tb: 1,\r\n\t\t\t\t\t\tc: \"b\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ta: 1,\r\n\t\t\t\t\t\tb: 3,\r\n\t\t\t\t\t\tc: \"c\"\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ta: 1,\r\n\t\t\t\tb: 1,\r\n\t\t\t\tc: \"b\",\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ta: 1,\r\n\t\t\t\tb: 3,\r\n\t\t\t\tc: \"c\"\r\n\t\t\t}\r\n\t\t]\r\n\t},\r\n\t{\r\n\t\ta: 1,\r\n\t\tb: 1,\r\n\t\tc: \"b\",\r\n\t},\r\n\t{\r\n\t\ta: 1,\r\n\t\tb: 3,\r\n\t\tc: \"c\"\r\n\t},\r\n\t{\r\n\t\ta: 2,\r\n\t\tb: 2,\r\n\t\tc: \"d\"\r\n\t},\r\n\t{\r\n\t\ta: 2,\r\n\t\tb: 1,\r\n\t\tc: \"e\"\r\n\t},\r\n\t{\r\n\t\ta: 2,\r\n\t\tb: 3,\r\n\t\tc: \"f\"\r\n\t}\r\n]);\r\n\r\n\r\nconst sourceMany:Enumerable = Enumerable.from(Object.freeze([\r\n\t\"a,b,c,d,e\",\r\n\tnull,\r\n\t\"f,g,h,i,j\",\r\n\t\"k,l,m,n,o\",\r\n\t\"p,q,r,s,t\",\r\n\t\"u,v,w,x,y\",\r\n]));\r\nconst sourceManyFlat = \"abcdefghijklmnopqrstuvwxy\";\r\n\r\nvar sourceArrayEnumerable = Enumerable.from(source),\r\n sourceEnumerable = new Enumerable(()=>sourceArrayEnumerable.getEnumerator());\r\n\r\ndescribe(\".force()\", ()=>\r\n{\r\n\tit(\"should not throw\", ()=>\r\n\t{\r\n\t\tassert.doesNotThrow(()=> { sourceEnumerable.force() });\r\n\t});\r\n});\r\n\r\ndescribe(\".count()\", ()=>\r\n{\r\n\tit(\"should match count to length\", ()=>\r\n\t{\r\n\t\tassert.equal(sourceArrayEnumerable.count(), source.length);\r\n\t\tassert.equal(sourceEnumerable.count(), source.length);\r\n\t\tassert.equal(Enumerable.from([]).count(), 0);\r\n\t\tassert.equal(Enumerable.empty().count(), 0);\r\n\t\tassert.equal(sourceArrayEnumerable.count(e=>e.a===1), 3);\r\n\t});\r\n});\r\n\r\ndescribe(\".source\", ()=>\r\n{\r\n\tit(\"should equal the original\", ()=>\r\n\t{\r\n\t\tassert.equal(source, ((sourceArrayEnumerable)).source);\r\n\t});\r\n});\r\n\r\ndescribe(\".memoize()\", ()=>\r\n{\r\n\tit(\"should cache the values as it goes for reuse later\", ()=>\r\n\t{\r\n\t\tvar source = sourceEnumerable;\r\n\t\tvar A = source.memoize();\r\n\r\n\t\tsource.memoize().dispose(); // Covers else condition.\r\n\r\n\t\tvar sum = A.sum(o=>o.a);\r\n\r\n\t\tassert.equal(sum, source.sum(o=>o.a), \"Values must be equal after memoize pass 1.\");\r\n\r\n\t\tsum = A.sum(o=>o.b);\r\n\t\tassert.equal(sum, source.sum(o=>o.b), \"Values must be equal after memoize pass 2.\");\r\n\t\tA.dispose(); // Disposing this memoized source should not affect other tests.\r\n\r\n\t\tassert.throws(()=>\r\n\t\t{\r\n\t\t\t// Should throw after disposal.\r\n\t\t\tA.force();\r\n\t\t});\r\n\r\n\t\tA = sourceArrayEnumerable.memoize();\r\n\t\tA.dispose();\r\n\t\tassert.throws(()=>\r\n\t\t{\r\n\t\t\t// Should throw after disposal.\r\n\t\t\tA.force();\r\n\t\t});\r\n\r\n\t});\r\n});\r\n\r\n\r\ndescribe(\".choose(predicate)\", ()=>\r\n{\r\n\tit(\"should filter out null and undefined values.\", ()=>\r\n\t{\r\n\t\tvar other = [null, void(0)];\r\n\t\tassert.equal(sourceArrayEnumerable\r\n\t\t\t.concat(other)\r\n\t\t\t.choose()\r\n\t\t\t.select(s=>s.a)\r\n\t\t\t.where(s=>s===1)\r\n\t\t\t.count(), 3);\r\n\r\n\t\tassert.equal(sourceArrayEnumerable\r\n\t\t\t.concat(other)\r\n\t\t\t.choose((e:TestItem, i:number)=>\r\n\t\t\t{\r\n\t\t\t\treturn (i%2 ? e : null);\r\n\t\t\t})\r\n\t\t\t.count(), 3);\r\n\r\n\t\tsourceArrayEnumerable\r\n\t\t\t.concat(other)\r\n\t\t\t.choose()\r\n\t\t\t.dispose();\r\n\r\n\t});\r\n});\r\n\r\ndescribe(\".where(predicate).memoize()\", ()=>\r\n{\r\n\tit(\"should cache the values as it goes for reuse later\", ()=>\r\n\t{\r\n\r\n\t\tvar source = sourceArrayEnumerable.where(i => i.a==1);\r\n\r\n\t\tvar sum:number, A = source;\r\n\r\n\t\tsum = A.sum(o=>o.a);\r\n\r\n\t\tassert.equal(sum, source.sum(o=>o.a), \"Values must be equal after where pass 1.\");\r\n\r\n\t\tsum = A.sum(o=>o.b);\r\n\t\tassert.equal(sum, source.sum(o=>o.b), \"Values must be equal after where pass 2.\");\r\n\r\n\r\n\t\tA = source.memoize();\r\n\r\n\t\tsum = A.sum(o=>o.a);\r\n\r\n\t\tassert.equal(sum, source.sum(o=>o.a), \"Values must be equal after memoize pass 1.\");\r\n\r\n\t\tsum = A.sum(o=>o.b);\r\n\t\tassert.equal(sum, source.sum(o=>o.b), \"Values must be equal after memoize pass 2.\");\r\n\r\n\t\tsource.dispose();\r\n\t});\r\n});\r\n\r\ndescribe(\".orderBy(selector)\", ()=>\r\n{\r\n\tit(\"should order ascending based upon the selector\", ()=>\r\n\t{\r\n\t\tvar source = sourceArrayEnumerable.reverse();\r\n\t\tassert.equal(source.first().c, \"f\");\r\n\t});\r\n});\r\n\r\n\r\ndescribe(\".orderBy(selector)\", ()=>\r\n{\r\n\tit(\"should order ascending based upon the selector\", ()=>\r\n\t{\r\n\r\n\t\tvar source = sourceArrayEnumerable.reverse();\r\n\r\n\t\tvar A = source.orderBy(o=>o.a).toArray();\r\n\t\tfor(let i = 0; i<3; i++)\r\n\t\t{\r\n\t\t\tassert.equal(A[i].a, 1, \"First three 'a' values should be 1 when ordered by 'a'.\");\r\n\t\t}\r\n\t\tfor(let i = 3; i<6; i++)\r\n\t\t{\r\n\t\t\tassert.equal(A[i].a, 2, \"Last three 'a' values should be 2 when ordered by 'a'.\");\r\n\t\t}\r\n\r\n\t\tvar B = source.orderBy(o=> o.b).toArray();\r\n\t\tfor(let i = 0; i<2; i++)\r\n\t\t{\r\n\t\t\tassert.equal(B[i].b, 1, \"First two 'b' values should be 1 when ordered by 'b'.\");\r\n\t\t}\r\n\t\tfor(let i = 2; i<4; i++)\r\n\t\t{\r\n\t\t\tassert.equal(B[i].b, 2, \"Second two 'b' values should be 2 when ordered by 'b'.\");\r\n\t\t}\r\n\t\tfor(let i = 4; i<6; i++)\r\n\t\t{\r\n\t\t\tassert.equal(B[i].b, 3, \"Last two 'b' values should be 3 when ordered by 'b'.\");\r\n\t\t}\r\n\t});\r\n});\r\n\r\n\r\ndescribe(\".orderByDescending(selector)\", ()=>\r\n{\r\n\tit(\"should order descending based upon the selector\", ()=>\r\n\t{\r\n\r\n\r\n\t\tvar source = sourceArrayEnumerable.reverse();\r\n\r\n\t\tvar A = source.orderByDescending((o:TestItem)=> o.a).toArray();\r\n\t\tfor(let i = 0; i<3; i++)\r\n\t\t{\r\n\t\t\tassert.equal(A[i].a, 2, \"First three 'a' values should be 2 when ordered by 'a'.\");\r\n\t\t}\r\n\t\tfor(let i = 3; i<6; i++)\r\n\t\t{\r\n\t\t\tassert.equal(A[i].a, 1, \"Last three 'a' values should be 1 when ordered by 'a'.\");\r\n\t\t}\r\n\r\n\t\tvar B = source.orderByDescending((o:TestItem)=> o.b).toArray();\r\n\t\tfor(let i = 0; i<2; i++)\r\n\t\t{\r\n\t\t\tassert.equal(B[i].b, 3, \"First two 'b' values should be 3 when ordered by 'b'.\");\r\n\t\t}\r\n\t\tfor(let i = 2; i<4; i++)\r\n\t\t{\r\n\t\t\tassert.equal(B[i].b, 2, \"Second two 'b' values should be 2 when ordered by 'b'.\");\r\n\t\t}\r\n\t\tfor(let i = 4; i<6; i++)\r\n\t\t{\r\n\t\t\tassert.equal(B[i].b, 1, \"Last two 'b' values should be 1 when ordered by 'b'.\");\r\n\t\t}\r\n\t});\r\n});\r\n\r\ndescribe(\".orderBy(selector).thenBy(selector)\", ()=>\r\n{\r\n\tit(\"should order by one then the other\", ()=>\r\n\t{\r\n\r\n\r\n\t\tvar B = sourceArrayEnumerable\r\n\t\t\t.orderBy(o => o.b)\r\n\t\t\t.thenBy(o => o.c)\r\n\t\t\t.toArray();\r\n\r\n\t\tfor(let i = 0; i<2; i++)\r\n\t\t{\r\n\t\t\tassert.equal(B[i].b, 1, \"First two 'b' values should be 1 when ordered by 'b'.\");\r\n\t\t}\r\n\t\tfor(let i = 2; i<4; i++)\r\n\t\t{\r\n\t\t\tassert.equal(B[i].b, 2, \"Second two 'b' values should be 2 when ordered by 'b'.\");\r\n\t\t}\r\n\t\tfor(let i = 4; i<6; i++)\r\n\t\t{\r\n\t\t\tassert.equal(B[i].b, 3, \"Last two 'b' values should be 3 when ordered by 'b'.\");\r\n\t\t}\r\n\r\n\t\tassert.equal(B[0].c, \"b\");\r\n\t\tassert.equal(B[1].c, \"e\");\r\n\r\n\t\tassert.equal(B[2].c, \"a\");\r\n\t\tassert.equal(B[3].c, \"d\");\r\n\r\n\t\tassert.equal(B[4].c, \"c\");\r\n\t\tassert.equal(B[5].c, \"f\");\r\n\t});\r\n\r\n});\r\n\r\ndescribe(\".select(b)\", ()=>\r\n{\r\n\r\n\tvar b = sourceArrayEnumerable.select(e=>e.b);\r\n\tdescribe(\".distinct()\", ()=>\r\n\t{\r\n\t\tvar d = b.distinct();\r\n\t\tdescribe(\".orderBy()\", ()=>\r\n\t\t{\r\n\t\t\tit(\"should be 1,2,3\", ()=>\r\n\t\t\t{\r\n\t\t\t\tvar s = d.orderBy();\r\n\t\t\t\tassert.equal(s.count(), 3);\r\n\t\t\t\tassert.equal(s.sum(), 6);\r\n\t\t\t\tassert.equal(s.elementAt(0), 1);\r\n\t\t\t\tassert.equal(s.elementAt(1), 2);\r\n\t\t\t\tassert.equal(s.elementAt(2), 3);\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tdescribe(\".orderByDescending()\", ()=>\r\n\t\t{\r\n\t\t\tit(\"should be 1,2,3\", ()=>\r\n\t\t\t{\r\n\t\t\t\tvar s = d.orderByDescending();\r\n\t\t\t\tassert.equal(s.count(), 3);\r\n\t\t\t\tassert.equal(s.sum(), 6);\r\n\t\t\t\tassert.equal(s.elementAt(0), 3);\r\n\t\t\t\tassert.equal(s.elementAt(1), 2);\r\n\t\t\t\tassert.equal(s.elementAt(2), 1);\r\n\t\t\t});\r\n\t\t});\r\n\t});\r\n\r\n\tdescribe(\".distinctUntilChanged()\", ()=>\r\n\t{\r\n\t\tit(\"should be as expected\", ()=>\r\n\t\t{\r\n\t\t\tassert.equal(b.distinctUntilChanged().toJoinedString(), \"213213\");\r\n\t\t\tassert.equal(b.distinctUntilChanged(v=>Math.max(v, 2)).toJoinedString(), \"2323\");\r\n\t\t\tassert.equal(b.distinctUntilChanged(v=>Math.min(v, 2)).toJoinedString(), \"21313\");\r\n\t\t\tassert.equal(b.orderBy().distinctUntilChanged().toJoinedString(), \"123\");\r\n\t\t});\r\n\t});\r\n});\r\n\r\ndescribe(\".groupBy(selector)\", ()=>\r\n{\r\n\tit(\"should group by key provided by the selector\", ()=>\r\n\t{\r\n\r\n\r\n\t\tvar A_distinct = sourceArrayEnumerable\r\n\t\t\t.select(o=>o.a).distinct();\r\n\t\tvar A = sourceArrayEnumerable\r\n\t\t\t.groupBy(o=>o.a);\r\n\r\n\t\tassert.equal(A_distinct.count(), A.count(), \"Number of groups should match distinct values.\");\r\n\r\n\t\tvar B = sourceArrayEnumerable\r\n\t\t\t.groupBy(o=>o.b);\r\n\r\n\t\tvar C = sourceArrayEnumerable\r\n\t\t\t.groupBy(o=>o.b, null, Functions.Identity);\r\n\r\n\t\tvar D = sourceArrayEnumerable\r\n\t\t\t.groupBy(o=>o.b, Functions.Identity, Functions.Identity);\r\n\r\n\r\n\t\tassert.ok(B.first().sequenceEqual(C.first()));\r\n\t\tassert.ok(C.first().sequenceEqual(D.first()));\r\n\r\n\t\tvar B_distinct = sourceArrayEnumerable\r\n\t\t\t.select(o=>o.b).distinct();\r\n\r\n\t\tassert.equal(B_distinct.count(), B.count(), \"Number of groups should match distinct values.\");\r\n\r\n\r\n\t\tconst COMPANY_A = \"Microsoft\", COMPANY_B = \"Hell Corp.\";\r\n\t\tvar objArray = [\r\n\t\t\t{Name: \"John\", Id: 0, Salary: 1300.00, Company: COMPANY_A},\r\n\t\t\t{Name: \"Peter\", Id: 1, Salary: 4800.50, Company: COMPANY_A},\r\n\t\t\t{Name: \"Sandra\", Id: 2, Salary: 999.99, Company: COMPANY_A},\r\n\t\t\t{Name: \"Me\", Id: 3, Salary: 1000000000.00, Company: COMPANY_B}\r\n\t\t];\r\n\t\tvar groups = Enumerable.from(objArray).groupBy(x => x.Company);\r\n\t\tvar companies = groups.select(x => x.key).toArray();\r\n\r\n\t\tassert.equal(companies.length, 2, \"2 groups expected.\");\r\n\t\tassert.ok(contains(companies, COMPANY_A), \"Expect \" + COMPANY_A);\r\n\t\tassert.ok(contains(companies, COMPANY_B), \"Expect \" + COMPANY_B);\r\n\t\tvar group_A = groups.where(g=>g.key==COMPANY_A).single();\r\n\t\tvar group_B = groups.where(g=>g.key==COMPANY_B).single();\r\n\t\tassert.equal(group_A.count(), 3, \"Expected count of 3.\");\r\n\t\tassert.equal(group_A.sum(x => x.Salary), 7100.49, \"Expected sum to be correct.\");\r\n\t\tassert.equal(group_B.count(), 1, \"Expected count of 1.\");\r\n\t\tassert.equal(group_B.sum(x => x.Salary), 1000000000.00, \"Expected sum to be correct.\");\r\n\t});\r\n});\r\n\r\ndescribe(\".take(count)\", ()=>\r\n{\r\n\tit(\"count should match number taken\", ()=>\r\n\t{\r\n\t\tvar e = sourceArrayEnumerable.take(2);\r\n\t\tassert.equal(e.count(), 2);\r\n\t});\r\n});\r\n\r\n\r\ndescribe(\".takeWhile(predicate)\", ()=>\r\n{\r\n\tit(\"should take while predicate returns true\", ()=>\r\n\t{\r\n\t\tvar e = sourceArrayEnumerable.takeWhile(v=>v.a==1);\r\n\t\tassert.equal(e.count(), 3, \"count should match number taken\");\r\n\t});\r\n\r\n});\r\n\r\n\r\ndescribe(\".takeUntil(predicate,includeUntil)\", ()=>\r\n{\r\n\tit(\"should take until predicate returns true\", ()=>\r\n\t{\r\n\t\tvar e = sourceArrayEnumerable.takeUntil(v=>v.a==2);\r\n\t\tassert.equal(e.count(), 3, \"count should match number taken\");\r\n\t});\r\n\r\n\tit(\"should take until predicate returns true and include value matched\", ()=>\r\n\t{\r\n\t\tvar e = sourceArrayEnumerable.takeUntil(v=>v.a==2, true);\r\n\t\tassert.equal(e.count(), 4, \"count should match number taken\");\r\n\t\tassert.equal(e.last().c, \"d\");\r\n\t});\r\n});\r\n\r\n\r\ndescribe(\".takeExceptLast(count)\", ()=>\r\n{\r\n\tit(\"should take the first ones minus the last\", ()=>\r\n\t{\r\n\t\tvar test = (s:Enumerable)=>\r\n\t\t{\r\n\t\t\tvar e = s.takeExceptLast(2);\r\n\t\t\tassert.equal(e.count(), 4);\r\n\t\t\tassert.equal(e.count(), 4, \"count should match number taken\");\r\n\t\t\tassert.equal(e.last().c, \"d\");\r\n\t\t\tvar e = s.takeExceptLast();\r\n\t\t\tassert.equal(e.count(), 5);\r\n\t\t\tassert.equal(e.count(), 5, \"count should match number taken\");\r\n\t\t\tassert.equal(e.last().c, \"e\");\r\n\t\t};\r\n\t\ttest(sourceArrayEnumerable);\r\n\t\ttest(sourceEnumerable);\r\n\t});\r\n\r\n});\r\n\r\n// Inverse of takeExceptLast\r\ndescribe(\".skipToLast(count)\", ()=>\r\n{\r\n\tit(\"should take the last items based on the count\", ()=>\r\n\t{\r\n\t\tvar test = (s:Enumerable)=>\r\n\t\t{\r\n\t\t\tvar e = s.skipToLast(2);\r\n\t\t\tassert.equal(e.count(), 2, \"count should match number taken\");\r\n\t\t\tassert.equal(e.first().c, \"e\");\r\n\t\t\tassert.equal(e.last().c, \"f\");\r\n\r\n\t\t\te = s.skipToLast(0);\r\n\t\t\tassert.equal(e.count(), 0);\r\n\t\t\te = s.skipToLast(Infinity);\r\n\t\t\tassert.equal(e.count(), 6);\r\n\t\t};\r\n\t\ttest(sourceArrayEnumerable);\r\n\t\ttest(sourceEnumerable);\r\n\t});\r\n\r\n});\r\n\r\n\r\ndescribe(\".skip(count)\", ()=>\r\n{\r\n\tit(\"count should match total less skipped\", ()=>\r\n\t{\r\n\t\tvar test = (s:Enumerable)=>\r\n\t\t{\r\n\t\t\tvar e = s.skip(2);\r\n\t\t\tassert.equal(e.count(), 4);\r\n\t\t\tassert.equal(e.first().c, \"c\");\r\n\t\t\tassert.equal(e.last().c, \"f\");\r\n\t\t};\r\n\t\ttest(sourceArrayEnumerable);\r\n\t\ttest(sourceEnumerable);\r\n\r\n\t\tassert.equal(sourceArrayEnumerable.skip(0), sourceArrayEnumerable)\r\n\t});\r\n\r\n});\r\n\r\n\r\ndescribe(\".skipWhile(predicate)\", ()=>\r\n{\r\n\tit(\"should skip while predicate returns true\", ()=>\r\n\t{\r\n\t\tvar e = sourceArrayEnumerable.skipWhile(v=>v.a==1);\r\n\t\tassert.equal(e.count(), 3, \"count should match number taken\");\r\n\t\tassert.equal(e.first().c, \"d\");\r\n\t\tassert.equal(e.last().c, \"f\");\r\n\t});\r\n\r\n});\r\n\r\n\r\ndescribe(\".select(selector)\", ()=>\r\n{\r\n\r\n\tit(\"should use appropriate selection mechanism\", ()=>\r\n\t{\r\n\t\tvar test = (s:Enumerable)=>\r\n\t\t{\r\n\t\t\tvar e = s.select(e=>e.c);\r\n\t\t\tassert.equal(e.count(), 6);\r\n\t\t\tassert.equal(e.first(), \"a\");\r\n\t\t\tassert.equal(e.last(), \"f\");\r\n\t\t};\r\n\t\ttest(sourceArrayEnumerable);\r\n\t\ttest(sourceEnumerable);\r\n\t});\r\n\r\n\tit(\"should use appropriate selection mechanism\", ()=>\r\n\t{\r\n\t\tvar test = (s:Enumerable)=>\r\n\t\t{\r\n\t\t\tvar e = s.select((e, i)=>i);\r\n\t\t\tassert.equal(e.count(), 6);\r\n\t\t\tassert.equal(e.first(), 0);\r\n\t\t\tassert.equal(e.last(), 5);\r\n\t\t};\r\n\t\ttest(sourceArrayEnumerable);\r\n\t\ttest(sourceEnumerable);\r\n\t});\r\n});\r\n\r\ndescribe(\".shuffle()\", ()=>\r\n{\r\n\tit(\"should randomize the enumerable\", ()=>\r\n\t{\r\n\t\tvar e = sourceArrayEnumerable.shuffle();\r\n\t\tassert.equal(e.count(v=>v.a==1), 3);\r\n\t\te.dispose();\r\n\t\tassert.throws(()=>e.count());\r\n\t});\r\n\r\n});\r\n\r\ndescribe(\".every(predicate)\", ()=>\r\n{\r\n\tit(\"should determine if every element matches the criteria\", ()=>\r\n\t{\r\n\t\tvar test = (s:Enumerable)=>\r\n\t\t{\r\n\t\t\tassert.ok(!s.every(v=>v.a==1));\r\n\t\t};\r\n\t\ttest(sourceArrayEnumerable);\r\n\t\ttest(sourceEnumerable);\r\n\r\n\t});\r\n\r\n});\r\n\r\ndescribe(\".any(predicate)\", ()=>\r\n{\r\n\tit(\"should determine if every element matches the criteria\", ()=>\r\n\t{\r\n\t\tvar test = (s:Enumerable)=>\r\n\t\t{\r\n\t\t\tassert.ok(s.some(v=>v.a==1));\r\n\t\t\tassert.ok(!s.isEmpty());\r\n\t\t};\r\n\t\ttest(sourceArrayEnumerable);\r\n\t\ttest(sourceEnumerable);\r\n\r\n\t});\r\n\r\n});\r\n\r\ndescribe(\".empty()\", ()=>\r\n{\r\n\r\n\tvar source = Enumerable.empty();\r\n\r\n\r\n\tdescribe(\".singleOrDefault()\", ()=>\r\n\t{\r\n\r\n\t\tit(\"should be defaulted\", ()=>\r\n\t\t{\r\n\t\t\tassert.equal(source.singleOrDefault(), null);\r\n\t\t\tassert.equal(source.singleOrDefault(-1), -1);\r\n\t\t});\r\n\r\n\t});\r\n\r\n\tdescribe(\".single()\", ()=>\r\n\t{\r\n\r\n\t\tit(\"should throw\", ()=>\r\n\t\t{\r\n\t\t\tassert.throws(()=>\r\n\t\t\t{\r\n\t\t\t\tsource.single();\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t});\r\n\r\n\tdescribe(\".first()\", ()=>\r\n\t{\r\n\r\n\t\tit(\"should throw\", ()=>\r\n\t\t{\r\n\t\t\tassert.throws(()=>\r\n\t\t\t{\r\n\t\t\t\tsource.first();\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t});\r\n\r\n\tdescribe(\".firstOrDefault()\", ()=>\r\n\t{\r\n\r\n\t\tit(\"should be defaulted\", ()=>\r\n\t\t{\r\n\t\t\tassert.equal(source.firstOrDefault(), null);\r\n\t\t});\r\n\r\n\t});\r\n\r\n\tdescribe(\".last()\", ()=>\r\n\t{\r\n\r\n\t\tit(\"should throw\", ()=>\r\n\t\t{\r\n\t\t\tassert.throws(()=>\r\n\t\t\t{\r\n\t\t\t\tsource.last();\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t});\r\n\r\n\tdescribe(\".lastOrDefault()\", ()=>\r\n\t{\r\n\r\n\t\tit(\"should be defaulted\", ()=>\r\n\t\t{\r\n\t\t\tassert.equal(source.lastOrDefault(), null);\r\n\t\t\tvar d = 1;\r\n\t\t\tassert.equal(source.lastOrDefault(d), d);\r\n\t\t});\r\n\r\n\t});\r\n\r\n});\r\n\r\n\r\ndescribe(\".last()\", ()=>\r\n{\r\n\r\n\tit(\"should match last\", ()=>\r\n\t{\r\n\t\tassert.equal(sourceArrayEnumerable.last().c, \"f\");\r\n\t});\r\n\r\n\tit(\"should throw\", ()=>\r\n\t{\r\n\t\tassert.throws(()=>Enumerable.from([]).last());\r\n\t});\r\n\r\n});\r\n\r\ndescribe(\".lastOrDefault()\", ()=>\r\n{\r\n\r\n\tit(\"should match last\", ()=>\r\n\t{\r\n\t\tassert.equal(sourceArrayEnumerable.lastOrDefault().c, \"f\");\r\n\t});\r\n\r\n\tit(\"should be defaulted\", ()=>\r\n\t{\r\n\t\tassert.equal(Enumerable.from([]).lastOrDefault(\"f\"), \"f\");\r\n\t});\r\n\r\n});\r\n\r\ndescribe(\".from(x)\", ()=>\r\n{\r\n\tit(\"should throw if not enumerable\", ()=>\r\n\t{\r\n\t\tassert.throws(()=>Enumerable.from(1));\r\n\t});\r\n});\r\n\r\ndescribe(\".fromAny(x,default)\", ()=>\r\n{\r\n\tit(\"should return the default if not enumerable\", ()=>\r\n\t{\r\n\t\tassert.equal(Enumerable.fromAny(1), null);\r\n\t});\r\n});\r\n\r\ndescribe(\".fromAny(x,default)\", ()=>\r\n{\r\n\tit(\"should return an enumerable from an enumerable\", ()=>\r\n\t{\r\n\t\tassert.ok(Enumerable.fromAny(sourceArrayEnumerable) instanceof Enumerable);\r\n\t});\r\n\tit(\"should return an enumerable from an array\", ()=>\r\n\t{\r\n\t\tassert.ok(Enumerable.fromAny(source) instanceof Enumerable);\r\n\t});\r\n\tit(\"should return an enumerable from an IEnumerable\", ()=>\r\n\t{\r\n\t\tvar e = Enumerable.fromAny({getEnumerator: ()=> { return EmptyEnumerator; }});\r\n\t\te.getEnumerator();\r\n\t\tassert.ok(e instanceof Enumerable);\r\n\t});\r\n});\r\n\r\ndescribe(\".from([1])\", ()=>\r\n{\r\n\r\n\tlet source = new Enumerable(()=>Enumerable.from([1]).getEnumerator());\r\n\r\n\tdescribe(\".singleOrDefault()\", ()=>\r\n\t{\r\n\r\n\t\tit(\"should return single value\", ()=>\r\n\t\t{\r\n\t\t\tassert.equal(source.single(), 1);\r\n\t\t});\r\n\r\n\t});\r\n\r\n\tdescribe(\".singleOrDefault()\", ()=>\r\n\t{\r\n\r\n\t\tit(\"should return single value\", ()=>\r\n\t\t{\r\n\t\t\tassert.equal(source.singleOrDefault(), 1);\r\n\t\t});\r\n\r\n\t});\r\n\r\n\tdescribe(\".elementAt(x)\", ()=>\r\n\t{\r\n\r\n\t\tit(\"should throw if no more\", ()=>\r\n\t\t{\r\n\t\t\tassert.throws(()=>source.elementAt(2));\r\n\t\t});\r\n\r\n\t});\r\n\r\n\tdescribe(\".elementAtOrDefault (x)\", ()=>\r\n\t{\r\n\r\n\t\tit(\"should be defaulted\", ()=>\r\n\t\t{\r\n\t\t\tassert.equal(source.elementAtOrDefault(2, -1), -1);\r\n\t\t\tassert.equal(source.elementAtOrDefault(2), null);\r\n\t\t});\r\n\r\n\t\tit(\"should throw\", ()=>\r\n\t\t{\r\n\t\t\tassert.throws(()=> {source.elementAtOrDefault(NaN)});\r\n\t\t\tassert.throws(()=> {source.elementAtOrDefault(-1)});\r\n\t\t\tassert.throws(()=> {source.elementAtOrDefault(Infinity)});\r\n\t\t});\r\n\r\n\t});\r\n\r\n});\r\n\r\n\r\ndescribe(\".elementAt(x)\", ()=>\r\n{\r\n\tit(\"should return the indexed element\", ()=>\r\n\t{\r\n\t\tassert.equal(sourceEnumerable.elementAt(2), source[2]);\r\n\t\tassert.equal(sourceArrayEnumerable.elementAt(2), source[2]);\r\n\t});\r\n\r\n\tit(\"should throw\", ()=>\r\n\t{\r\n\t\tassert.throws(()=>sourceArrayEnumerable.elementAt(-1));\r\n\t});\r\n\r\n});\r\n\r\ndescribe(\".elementAtOrDefault (x)\", ()=>\r\n{\r\n\tit(\"should return the indexed element\", ()=>\r\n\t{\r\n\t\tassert.equal(sourceEnumerable.elementAtOrDefault(2), source[2]);\r\n\t\tassert.equal(sourceArrayEnumerable.elementAtOrDefault(2), source[2]);\r\n\t\tvar d = {};\r\n\t\tassert.equal(sourceArrayEnumerable.elementAtOrDefault(10, d), d);\r\n\t});\r\n\r\n\tit(\"should throw\", ()=>\r\n\t{\r\n\t\tassert.throws(()=>sourceArrayEnumerable.elementAtOrDefault(-1));\r\n\t});\r\n\r\n});\r\n\r\n\r\ndescribe(\".min()\", ()=>\r\n{\r\n\tit(\"should return the minimum of the selected\", ()=>\r\n\t{\r\n\t\tassert.equal(sourceArrayEnumerable.select(e=>e.b).min(), 1);\r\n\t\tassert.equal(sourceArrayEnumerable.select(e=>e.c).min(), \"a\");\r\n\t});\r\n});\r\n\r\ndescribe(\".max()\", ()=>\r\n{\r\n\tit(\"should return the maximum of the selected\", ()=>\r\n\t{\r\n\t\tassert.equal(sourceArrayEnumerable.select(e=>e.b).max(), 3);\r\n\t\tassert.equal(sourceArrayEnumerable.select(e=>e.c).max(), \"f\");\r\n\r\n\r\n\t});\r\n});\r\n\r\ndescribe(\".minBy(selector)\", ()=>\r\n{\r\n\tit(\"should return the minimum of the selected\", ()=>\r\n\t{\r\n\t\tassert.equal(sourceArrayEnumerable.minBy(e=>e.b).b, 1);\r\n\t\tassert.equal(sourceArrayEnumerable.minBy(e=>e.c).c, \"a\");\r\n\r\n\t\tassert.equal(sourceArrayEnumerable.select(e=>e.b).minBy(), 1);\r\n\t\tassert.equal(sourceArrayEnumerable.select(e=>e.c).minBy(), \"a\");\r\n\t});\r\n});\r\n\r\n\r\ndescribe(\".maxBy(selector)\", ()=>\r\n{\r\n\tit(\"should return the maximum of the selected\", ()=>\r\n\t{\r\n\t\tassert.equal(sourceArrayEnumerable.maxBy(e=>e.b).b, 3);\r\n\t\tassert.equal(sourceArrayEnumerable.maxBy(e=>e.c).c, \"f\");\r\n\r\n\t\tassert.equal(sourceArrayEnumerable.select(e=>e.b).maxBy(), 3);\r\n\t\tassert.equal(sourceArrayEnumerable.select(e=>e.c).maxBy(), \"f\");\r\n\r\n\t});\r\n});\r\n\r\ndescribe(\".concat(...)\", ()=>\r\n{\r\n\tit(\"should remain the same\", ()=>\r\n\t{\r\n\t\tassert.equal(sourceArrayEnumerable.merge(null).count(), 6);\r\n\t\tassert.equal(sourceArrayEnumerable.merge([]).count(), 6);\r\n\t});\r\n\tit(\"should combine two into one\", ()=>\r\n\t{\r\n\t\tassert.equal(sourceArrayEnumerable.concat(sourceArrayEnumerable).count(), 12);\r\n\t});\r\n});\r\n\r\ndescribe(\".selectMany(...)\", ()=>\r\n{\r\n\tit(\"should select the sub values\", ()=>\r\n\t{\r\n\t\tfunction test(values:Enumerable)\r\n\t\t{\r\n\t\t\tassert.equal(values.count(), 25);\r\n\t\t\tassert.equal(values.toJoinedString(), sourceManyFlat);\r\n\t\t}\r\n\r\n\t\tvar split:(s:string)=>string[] = (s)=>s && s.split(\",\");\r\n\t\tvar sm:(s:string,e:string)=>string = (c, e)=>e;\r\n\r\n\t\tvar a = sourceMany.selectMany(split);\r\n\t\ttest(a);\r\n\t\tvar b = sourceMany.selectMany(split, sm);\r\n\t\ttest(b);\r\n\r\n\t\tassert.equal(Enumerable.from([]).selectMany(split).count(), 0);\r\n\r\n\t\tvar iSource = Enumerable.toInfinity().selectMany(s=>repeat(\"\" + s, s));\r\n\t\tassert.equal(iSource.take(10).toJoinedString(), \"1223334444\");\r\n\r\n\t\tvar s = sourceMany.select(s=>s.length);\r\n\t\ts.dispose();\r\n\t\tassert.throws(()=>s.toArray());\r\n\t});\r\n});\r\n\r\ndescribe(\".traverseBreadthFirst()\", ()=>\r\n{\r\n\tit(\"walk the tree in proper order\", ()=>\r\n\t{\r\n\t\tvar tree = sourceEnumerable\r\n\t\t\t.traverseBreadthFirst(e=>e.children),\r\n\t\t c = tree.select(e=>e.c);\r\n\r\n\t\tassert.equal(c.elementAt(2), \"c\");\r\n\t\tassert.equal(c.elementAt(6), \"a\");\r\n\t\tassert.equal(c.count(), 12);\r\n\r\n\t\tassert.equal(Enumerable.empty().traverseBreadthFirst(\r\n\t\t\te=>e.children, Functions.Identity).count(), 0);\r\n\t});\r\n});\r\n\r\ndescribe(\".traverseDepthFirst()\", ()=>\r\n{\r\n\tit(\"walk the tree in proper order\", ()=>\r\n\t{\r\n\t\tvar tree = sourceEnumerable\r\n\t\t\t.traverseDepthFirst(e=>e.children),\r\n\t\t c = tree.select(e=>e.c);\r\n\r\n\t\tassert.equal(c.elementAt(2), \"a\");\r\n\t\tassert.equal(c.elementAt(6), \"c\");\r\n\t\tassert.equal(c.count(), 12);\r\n\r\n\t\tassert.equal(Enumerable.empty().traverseDepthFirst(\r\n\t\t\te=>e.children, Functions.Identity).count(), 0);\r\n\t});\r\n});\r\n\r\ndescribe(\".flatten()\", ()=>\r\n{\r\n\tit(\"should convert deep enumerable to flat one\", ()=>\r\n\t{\r\n\t\tassert.equal(\r\n\t\t\tsourceMany\r\n\t\t\t\t.choose()\r\n\t\t\t\t.select(s=>s.split(','))\r\n\t\t\t\t.concat([[\"z\"]])\r\n\t\t\t\t.flatten()\r\n\t\t\t\t.toJoinedString(),\r\n\t\t\tsourceManyFlat + \"z\");\r\n\t});\r\n});\r\n\r\ndescribe(\".ofType(type)\", ()=>\r\n{\r\n\r\n\tvar source = Enumerable.from([\r\n\t\t1,\r\n\t\t\"a\",\r\n\t\ttrue,\r\n\t\t[],\r\n\t\t[],\r\n\t\t2,\r\n\t\t\"b\",\r\n\t\t[],\r\n\t\tfalse,\r\n\t\tfunction() {},\r\n\t\t3,\r\n\t\t\"c\",\r\n\t\t[],\r\n\t\t\"d\",\r\n\t\t\"e\",\r\n\t\tnull,\r\n\t\tundefined\r\n\t]);\r\n\r\n\tit(\"should select only the type requested\", ()=>\r\n\t{\r\n\t\tassert.equal(source.ofType(Number).count(), 3);\r\n\t\tassert.equal(source.ofType(String).count(), 5);\r\n\t\tassert.equal(source.ofType(Boolean).count(), 2);\r\n\t\tassert.equal(source.ofType(Function).count(), 1);\r\n\t\tassert.equal(source.ofType(Array).count(), 4);\r\n\t});\r\n});\r\n\r\ndescribe(\".buffer(size)\", ()=>\r\n{\r\n\tit(\"should return arrays at the size provided\", ()=>\r\n\t{\r\n\t\tvar s2 = sourceEnumerable.buffer(2);\r\n\t\tassert.equal(s2.first().length, 2);\r\n\t\tassert.equal(s2.count(), 3);\r\n\r\n\t});\r\n\r\n\tit(\"should throw for invalid sizes\", ()=>\r\n\t{\r\n\t\tassert.throws(()=>sourceEnumerable.buffer(-1));\r\n\t\tassert.throws(()=>sourceEnumerable.buffer(Infinity));\r\n\t});\r\n});\r\n\r\ndescribe(\".share()\", ()=>\r\n{\r\n\r\n\tit(\"should share an enumerator\", ()=>\r\n\t{\r\n\t\tvar s = sourceEnumerable.select(e=>e.c).share();\r\n\t\tvar e1 = s.getEnumerator();\r\n\t\tvar e2 = s.getEnumerator();\r\n\r\n\t\te1.moveNext();\r\n\t\tassert.equal(e1.current, \"a\");\r\n\t\tassert.equal(e2.current, \"a\");\r\n\t\te2.moveNext();\r\n\t\tassert.equal(e1.current, \"b\");\r\n\t\tassert.equal(e2.current, \"b\");\r\n\r\n\t});\r\n\r\n});\r\n\r\nvar mathTree = sourceEnumerable.traverseDepthFirst(e=>e.children),\r\n mathTreeArray = mathTree.select(e=>e.b).toArray();\r\n\r\ndescribe(\".sum()\", ()=>\r\n{\r\n\tit(\"should render the sum value\", ()=>\r\n\t{\r\n\t\tvar v = Procedure.sum(mathTreeArray);\r\n\r\n\t\tassert.equal(Enumerable.empty().sum(), 0);\r\n\t\tassert.equal(mathTree.select(e=>e.b).sum(), v);\r\n\t\tassert.equal(mathTree.select(e=>e.b).concat([Infinity, -Infinity]).sum(), v);\r\n\t\tassert.equal(mathTree.select(e=>e.b).concat([\r\n\t\t\tInfinity,\r\n\t\t\tInfinity,\r\n\t\t\t-Infinity\r\n\t\t]).sum(), Infinity);\r\n\t\tassert.equal(mathTree.select(e=>e.b).concat([\r\n\t\t\tInfinity,\r\n\t\t\t-Infinity,\r\n\t\t\t-Infinity\r\n\t\t]).sum(), -Infinity);\r\n\t\tassert.ok(isNaN(mathTree.select(e=>e.b).concat([NaN]).sum()));\r\n\t\tassert.equal(mathTree.sum(e=>e.b), v);\r\n\r\n\t});\r\n\r\n});\r\n\r\n\r\ndescribe(\".product()\", ()=>\r\n{\r\n\tit(\"should render the product value\", ()=>\r\n\t{\r\n\t\tvar v = Procedure.product(mathTreeArray);\r\n\r\n\t\tassert.equal(mathTree.select(e=>e.b).product(), v);\r\n\t\tassert.ok(isNaN(mathTree.select(e=>e.b).concat([NaN]).product()));\r\n\t\tassert.equal(mathTree.select(e=>e.b).concat([0]).product(), 0);\r\n\t\tassert.equal(mathTree.product(e=>e.b), v);\r\n\r\n\t});\r\n\r\n});\r\n\r\ndescribe(\".quotient()\", ()=>\r\n{\r\n\tit(\"should render the quotient value\", ()=>\r\n\t{\r\n\t\tvar v = Procedure.quotient(mathTreeArray);\r\n\r\n\t\tassert.equal(mathTree.select(e=>e.b).quotient(), v);\r\n\t\tassert.ok(isNaN(mathTree.select(e=>e.b).concat([NaN]).quotient()));\r\n\t\tassert.ok(isNaN(mathTree.select(e=>e.b).take(1).quotient()));\r\n\t\tassert.equal(mathTree.quotient(e=>e.b), v);\r\n\r\n\t});\r\n\r\n});\r\n\r\ndescribe(\".average()\", ()=>\r\n{\r\n\tit(\"should render the average value\", ()=>\r\n\t{\r\n\t\tvar tree = sourceEnumerable\r\n\t\t\t.traverseDepthFirst(e=>e.children);\r\n\t\tvar v = Procedure.average(mathTreeArray);\r\n\r\n\t\tassert.equal(mathTree.select(e=>e.b).average(), v);\r\n\t\tassert.ok(isNaN(mathTree.select(e=>e.b).concat([NaN]).average()));\r\n\t\tassert.equal(mathTree.average(e=>e.b), v);\r\n\r\n\t});\r\n\r\n});\r\n\r\ndescribe(\".weave(enumerables)\", ()=>\r\n{\r\n\r\n\tit(\"should weave in order\", ()=>\r\n\t{\r\n\t\tlet w = Enumerable.weave([\r\n\t\t\t[\"a\", \"d\"],\r\n\t\t\t[\"b\", \"e\", \"g\", \"i\"],\r\n\t\t\t[\"c\", \"f\", \"h\"]\r\n\t\t]);\r\n\r\n\t\tassert.equal(w.count(),9);\r\n\t\tassert.equal(w.toJoinedString(),\"abcdefghi\");\r\n\r\n\t\tassert.equal(\r\n\t\t\tEnumerable.weave([\r\n\t\t\t\t[1, 2, 3, 4, 5, 6, 7]\r\n\t\t\t]).count(), 7);\r\n\r\n\t});\r\n\r\n\tit(\"should throw\",()=>{\r\n\t\tassert.throws(()=>Enumerable.weave(null));\r\n\t});\r\n\r\n});"]} \ No newline at end of file diff --git a/tests/mocha/System.Linq/InfiniteEnumerable.js b/tests/mocha/System.Linq/InfiniteEnumerable.js index 1001715b..cacd8a98 100644 --- a/tests/mocha/System.Linq/InfiniteEnumerable.js +++ b/tests/mocha/System.Linq/InfiniteEnumerable.js @@ -114,4 +114,5 @@ }); }); }); -//# sourceMappingURL=InfiniteEnumerable.js.map \ No newline at end of file + +//# sourceMappingURL=InfiniteEnumerable.js.map diff --git a/tests/mocha/System.Linq/InfiniteEnumerable.js.map b/tests/mocha/System.Linq/InfiniteEnumerable.js.map index e99c046f..1a6b4d2b 100644 --- a/tests/mocha/System.Linq/InfiniteEnumerable.js.map +++ b/tests/mocha/System.Linq/InfiniteEnumerable.js.map @@ -1 +1 @@ -{"version":3,"file":"InfiniteEnumerable.js","sourceRoot":"","sources":["InfiniteEnumerable.ts"],"names":[],"mappings":";;;;;;;;;IAEA,qBAAuB,kCAAkC,CAAC,CAAA;IAC1D,IAAI,MAAM,GAAG,OAAO,CAAC,qCAAqC,CAAC,CAAC;IAG5D,IAAI,MAAM,GAAG,cAAU,CAAC,UAAU,EAAE,CAAC,YAAY,EAAE,CAAC;IAEpD,QAAQ,CAAC,gBAAgB,EAAC;QACzB,EAAE,CAAC,4BAA4B,EAAC;YAC/B,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAA,CAAC,IAAG,CAAC,CAAC,CAAC;YAC/B,CAAC,CAAC,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;YAC1B,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YACxB,CAAC,CAAC,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YACzB,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;YACtB,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YACxB,CAAC,CAAC,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,MAAM,CAAC,cAAI,OAAA,CAAC,CAAC,QAAQ,EAAE,EAAZ,CAAY,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE;QAGzB,EAAE,CAAC,kCAAkC,EAAE;YAEtC,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAC,EAAE,EAAE,CAAC,EAAE,EACxB,CAAC;gBACA,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACtC,CAAC;QACF,CAAC,CAAC,CAAC;IAEJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oBAAoB,EAAE;QAG9B,EAAE,CAAC,qBAAqB,EAAE;YAEzB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,IAAI,CAAC,CAAC;YAC7C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IAEJ,CAAC,CAAC,CAAC;IAGH,QAAQ,CAAC,WAAW,EAAE;QAGrB,EAAE,CAAC,cAAc,EAAE;YAElB,MAAM,CAAC,MAAM,CAAC;gBAEb,MAAM,CAAC,MAAM,EAAE,CAAC;YACjB,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IAEJ,CAAC,CAAC,CAAC;IAGH,QAAQ,CAAC,cAAc,EAAE;QAExB,EAAE,CAAC,iCAAiC,EAAE;YAErC,MAAM,CAAC,KAAK,CACX,MAAM;iBACJ,IAAI,CAAC,QAAQ,CAAC;iBACd,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IAEJ,CAAC,CAAC,CAAC;IAGH,QAAQ,CAAC,cAAc,EAAE;QAExB,EAAE,CAAC,kCAAkC,EAAE;YAEtC,MAAM,CAAC,KAAK,CACX,MAAM;iBACJ,IAAI,CAAC,CAAC,CAAC;iBACP,cAAc,CAAC,CAAC,CAAC,CAAC;iBAClB,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YAEhB,MAAM,CAAC,KAAK,CACX,MAAM;iBACJ,IAAI,CAAC,CAAC,CAAC,CAAC;iBACR,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAE3B,MAAM,CAAC,MAAM,CAAC;gBAEb,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACvB,IAAI,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;gBAC1B,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACb,CAAC,CAAC,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC,QAAQ,EAAE,CAAC;YACd,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,YAAY,CAAC;gBAEnB,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;gBACzB,MAAM,CAAC,EAAE,CACR,MAAM;qBACJ,KAAK,CAAC,UAAA,CAAC;oBAEP,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC;wBAAC,MAAM,OAAO,CAAC;oBACrB,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC,CAAC;qBACD,UAAU,CAAC,UAAA,KAAK;oBAEhB,CAAC,GAAG,KAAK,IAAE,OAAO,CAAC;gBACpB,CAAC,CAAC;qBACD,aAAa,CAAC;oBACd,CAAC,GAAG,IAAI,CAAC;gBACV,CAAC,CAAC;qBACD,OAAO,EAAE,CAAC,CAAC;gBACd,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACb,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACd,CAAC,CAAC,CAAC;QAEJ,CAAC,CAAC,CAAC;QAIH,EAAE,CAAC,2BAA2B,EAAE;YAE/B,MAAM,CAAC,MAAM,CAAC;gBAEb,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvB,CAAC,CAAC,CAAA;QACH,CAAC,CAAC,CAAC;IAEJ,CAAC,CAAC,CAAC;IAGH,QAAQ,CAAC,WAAW,EAAE;QAGrB,EAAE,CAAC,wBAAwB,EAAE;YAE5B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAC,CAAC,CAAC,CAAC;YACxC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,UAAA,CAAC,IAAE,OAAA,CAAC,EAAD,CAAC,CAAC,CAAC,KAAK,EAAE,EAAC,CAAC,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IAEJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,WAAW,EAAE;QAGrB,EAAE,CAAC,sCAAsC,EAAE;YAE1C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAC,CAAC,CAAC,CAAC;YAC7C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC;YAClD,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC;IAEJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,qBAAqB,EAAE;QAG/B,EAAE,CAAC,qCAAqC,EAAE;YAEzC,IAAI,CAAC,GAAG,cAAU,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,UAAC,CAAC,EAAC,CAAC,IAAG,OAAA,EAAE,GAAC,CAAC,GAAC,EAAE,GAAC,CAAC,EAAT,CAAS,CAAC,CAAC;YAC3D,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAC,IAAI,CAAC,CAAC;YAClC,CAAC,CAAC,OAAO,EAAE,CAAC;QACb,CAAC,CAAC,CAAC;IAEJ,CAAC,CAAC,CAAC"} \ No newline at end of file +{"version":3,"sources":["System.Linq/InfiniteEnumerable.ts"],"names":[],"mappings":"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","file":"System.Linq/InfiniteEnumerable.js","sourcesContent":["///\r\n\r\nimport Enumerable from \"../../../source/System.Linq/Linq\";\r\nvar assert = require('../../../node_modules/assert/assert');\r\n\r\n\r\nvar source = Enumerable.toInfinity().asEnumerable();\r\n\r\ndescribe(\".doAction(...)\",()=>{\r\n\tit(\"should throw when disposed\",()=>{\r\n\t\tvar a = source.doAction(e=>{});\r\n\t\ta.force();\r\n\t\tvar n = a.getEnumerator();\r\n\t\tassert.ok(n.moveNext());\r\n\t\tn.dispose();\r\n\t\tassert.ok(!n.moveNext());\r\n\t\tn = a.getEnumerator();\r\n\t\tassert.ok(n.moveNext());\r\n\t\ta.dispose();\r\n\t\tassert.throws(()=>n.moveNext());\r\n\t});\r\n});\r\n\r\ndescribe(\".elementAt(x)\", ()=>\r\n{\r\n\r\n\tit(\"the index should match the value\", ()=>\r\n\t{\r\n\t\tfor(let i = 0; i<10; i++)\r\n\t\t{\r\n\t\t\tassert.equal(source.elementAt(i), i);\r\n\t\t}\r\n\t});\r\n\r\n});\r\n\r\ndescribe(\".singleOrDefault()\", ()=>\r\n{\r\n\r\n\tit(\"should be defaulted\", ()=>\r\n\t{\r\n\t\tassert.equal(source.singleOrDefault(), null);\r\n\t\tassert.equal(source.singleOrDefault(-1), -1);\r\n\t});\r\n\r\n});\r\n\r\n\r\ndescribe(\".single()\", ()=>\r\n{\r\n\r\n\tit(\"should throw\", ()=>\r\n\t{\r\n\t\tassert.throws(()=>\r\n\t\t{\r\n\t\t\tsource.single();\r\n\t\t});\r\n\t});\r\n\r\n});\r\n\r\n\r\ndescribe(\".skip(count)\", ()=>\r\n{\r\n\tit(\"should return empty if Infinity\", ()=>\r\n\t{\r\n\t\tassert.equal(\r\n\t\t\tsource\r\n\t\t\t\t.skip(Infinity)\r\n\t\t\t\t.firstOrDefault(-1), -1);\r\n\t});\r\n\r\n});\r\n\r\n\r\ndescribe(\".take(count)\", ()=>\r\n{\r\n\tit(\"should return empty if zero less\", ()=>\r\n\t{\r\n\t\tassert.equal(\r\n\t\t\tsource\r\n\t\t\t\t.take(0)\r\n\t\t\t\t.defaultIfEmpty(-1)\r\n\t\t\t\t.first(), -1);\r\n\r\n\t\tassert.equal(\r\n\t\t\tsource\r\n\t\t\t\t.take(-1)\r\n\t\t\t\t.firstOrDefault(-1), -1);\r\n\r\n\t\tassert.throws(()=>\r\n\t\t{\r\n\t\t\tvar t = source.take(2);\r\n\t\t\tvar e = t.getEnumerator();\r\n\t\t\te.moveNext();\r\n\t\t\tt.dispose();\r\n\t\t\te.moveNext();\r\n\t\t});\r\n\r\n\t\tassert.doesNotThrow(()=>\r\n\t\t{\r\n\t\t\tvar e = false, f = false;\r\n\t\t\tassert.ok(\r\n\t\t\t\tsource\r\n\t\t\t\t\t.where(e=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(!e) throw \"Error\";\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.catchError(error=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\te = error==\"Error\";\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.finallyAction(()=>{\r\n\t\t\t\t\t\tf = true;\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.isEmpty());\r\n\t\t\tassert.ok(e);\r\n\t\t\tassert.ok(f);\r\n\t\t});\r\n\r\n\t});\r\n\r\n\t// All .take operations should return a finite enumerable.\r\n\t// For other conditional take operations, like takeWhile, the isEndless property is indeterminate.\r\n\tit(\"should throw for Infinity\", ()=>\r\n\t{\r\n\t\tassert.throws(()=>\r\n\t\t{\r\n\t\t\tsource.take(Infinity);\r\n\t\t})\r\n\t});\r\n\r\n});\r\n\r\n\r\ndescribe(\".choose()\", ()=>\r\n{\r\n\r\n\tit(\"should filter non-null\", ()=>\r\n\t{\r\n\t\tassert.equal(source.choose().first(),0);\r\n\t\tassert.equal(source.choose(s=>s).first(),0);\r\n\t});\r\n\r\n});\r\n\r\ndescribe(\".except()\", ()=>\r\n{\r\n\r\n\tit(\"should skip values that are excepted\", ()=>\r\n\t{\r\n\t\tassert.equal(source.except([0,1]).first(),2);\r\n\t\tassert.equal(source.except([1,2]).elementAt(2),4);\r\n\t\tsource.except([1,2]).dispose();\r\n\t});\r\n\r\n});\r\n\r\ndescribe(\".pairwise(selector)\", ()=>\r\n{\r\n\r\n\tit(\"should produce pair selected values\", ()=>\r\n\t{\r\n\t\tvar s = Enumerable.toInfinity().pairwise((a,b)=>\"\"+a+\"\"+b);\r\n\t\tassert.equal(s.elementAt(0),\"01\");\r\n\t\tassert.equal(s.elementAt(5),\"56\");\r\n\t\ts.dispose();\r\n\t});\r\n\r\n});\r\n"]} \ No newline at end of file diff --git a/tests/mocha/System/Collections/Arrays/Compare.js b/tests/mocha/System/Collections/Arrays/Compare.js index 765c4f17..7a16946a 100644 --- a/tests/mocha/System/Collections/Arrays/Compare.js +++ b/tests/mocha/System/Collections/Arrays/Compare.js @@ -60,4 +60,5 @@ }); }); }); -//# sourceMappingURL=Compare.js.map \ No newline at end of file + +//# sourceMappingURL=Compare.js.map diff --git a/tests/mocha/System/Collections/Arrays/Compare.js.map b/tests/mocha/System/Collections/Arrays/Compare.js.map index 3a57efdb..072a639a 100644 --- a/tests/mocha/System/Collections/Arrays/Compare.js.map +++ b/tests/mocha/System/Collections/Arrays/Compare.js.map @@ -1 +1 @@ -{"version":3,"file":"Compare.js","sourceRoot":"","sources":["Compare.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"sources":["System/Collections/Arrays/Compare.ts"],"names":[],"mappings":"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","file":"System/Collections/Arrays/Compare.js","sourcesContent":["///\r\n\r\nimport * as ArrayCompare from \"../../../../../source/System/Collections/Array/Compare\";\r\nvar assert = require('../../../../../node_modules/assert/assert');\r\n\r\nconst a1 = [1,2,3];\r\nconst a2 = [1,2,3];\r\nconst b = [4,5,6];\r\nconst c = [7,8,9,10];\r\nconst d = b.slice();\r\nconst e = c.slice();\r\nd.length = e.length = 200000;\r\n\r\ndescribe(\".areEqual()\",()=>{\r\n\r\n\tit(\"should be equal\",()=>{\r\n\t\tassert.ok(ArrayCompare.areEqual([],[]));\r\n\t\tassert.ok(ArrayCompare.areEqual(a1,a1));\r\n\t\tassert.ok(ArrayCompare.areEqual(a1,a2));\r\n\t});\r\n\r\n\tit(\"should not be equal\",()=>{\r\n\t\tassert.ok(!ArrayCompare.areEqual(null,a1));\r\n\t\tassert.ok(!ArrayCompare.areEqual(a1,null));\r\n\t\tassert.ok(!ArrayCompare.areEqual(a1,b));\r\n\t\tassert.ok(!ArrayCompare.areEqual(b,c));\r\n\t});\r\n\r\n});\r\n\r\ndescribe(\".areAllEqual()\",()=>{\r\n\r\n\tit(\"should be equal\",()=>{\r\n\t\tassert.ok(ArrayCompare.areAllEqual([[],[],[]]));\r\n\t\tassert.ok(ArrayCompare.areAllEqual([a1,a1,a2]));\r\n\t});\r\n\r\n\tit(\"should not be equal\",()=>{\r\n\t\tassert.ok(!ArrayCompare.areAllEqual([a1,null]));\r\n\t\tassert.ok(!ArrayCompare.areAllEqual([a1,b,c]));\r\n\t\tassert.ok(!ArrayCompare.areAllEqual([a1,b],true,()=>false));\r\n\t});\r\n\r\n\tit(\"should error for invalid\",()=>{\r\n\t\tassert.throws(()=>ArrayCompare.areAllEqual(null));\r\n\t\tassert.throws(()=>ArrayCompare.areAllEqual([]));\r\n\t\tassert.throws(()=>ArrayCompare.areAllEqual([a1]));\r\n\t});\r\n\r\n});\r\n\r\ndescribe(\".areEquivalent()\",()=>{\r\n\r\n\tit(\"should be equivalent\",()=>{\r\n\t\tassert.ok(ArrayCompare.areEquivalent([1],[1]));\r\n\t\tassert.ok(ArrayCompare.areEquivalent(a1,a1));\r\n\t\tassert.ok(ArrayCompare.areEquivalent(a1,a2));\r\n\t\tassert.ok(ArrayCompare.areEquivalent(a1,a1.slice().reverse()));\r\n\t});\r\n\r\n\tit(\"should not be equivalent\",()=>{\r\n\t\tassert.ok(!ArrayCompare.areEquivalent([1],[2]));\r\n\t\tassert.ok(!ArrayCompare.areEquivalent(a1,b,()=>1));\r\n\t\tassert.ok(!ArrayCompare.areEquivalent(a1,b));\r\n\t\tassert.ok(!ArrayCompare.areEquivalent(d,e));\r\n\t});\r\n\r\n});"]} \ No newline at end of file diff --git a/tests/mocha/System/Collections/Arrays/Dispatch.js b/tests/mocha/System/Collections/Arrays/Dispatch.js index 2db7717d..4255b726 100644 --- a/tests/mocha/System/Collections/Arrays/Dispatch.js +++ b/tests/mocha/System/Collections/Arrays/Dispatch.js @@ -52,4 +52,5 @@ }); }); }); -//# sourceMappingURL=Dispatch.js.map \ No newline at end of file + +//# sourceMappingURL=Dispatch.js.map diff --git a/tests/mocha/System/Collections/Arrays/Dispatch.js.map b/tests/mocha/System/Collections/Arrays/Dispatch.js.map index 0902eba6..a823b946 100644 --- a/tests/mocha/System/Collections/Arrays/Dispatch.js.map +++ b/tests/mocha/System/Collections/Arrays/Dispatch.js.map @@ -1 +1 @@ -{"version":3,"file":"Dispatch.js","sourceRoot":"","sources":["Dispatch.ts"],"names":[],"mappings":";;;;;;;;;IAEA,yBAAuC,yDAAyD,CAAC,CAAA;IACjG,IAAI,MAAM,GAAG,OAAO,CAAC,2CAA2C,CAAC,CAAC;IAElE,EAAE,CAAC,gCAAgC,EAAE;QAEpC,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,GAAG;YACP,UAAC,CAAQ;gBAER,MAAM,IAAI,CAAC,CAAC;YACb,CAAC;YACD,UAAC,CAAQ;gBAER,MAAM,IAAI,CAAC,CAAC;YACb,CAAC;YACD,IAAI;SACJ,CAAC;QAGF,mBAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChB,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAE1B,MAAM,CAAC,KAAK,CAAC,iBAAM,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QACrC,MAAM,CAAC,KAAK,CAAC,iBAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACvC,MAAM,CAAC,KAAK,CAAC,iBAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACtC,iBAAM,CAAC,IAAI,EAAC,EAAE,CAAC,CAAC;QAChB,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG;QACP,UAAC,CAAQ;YAER,MAAM,OAAO,CAAC;QACf,CAAC;KACD,CAAC;IAEF,EAAE,CAAC,yBAAyB,EAAC;QAC5B,MAAM,CAAC,MAAM,CAAC;YAEb,mBAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC;YAEb,iBAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAGH,EAAE,CAAC,oBAAoB,EAAC;QACvB,MAAM,CAAC,YAAY,CAAC;YAEnB,mBAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;YACtB,mBAAQ,CAAC,CAAC,EAAE,EAAE,EAAC,UAAA,GAAG,IAAE,OAAA,MAAM,CAAC,KAAK,CAAC,GAAG,EAAC,OAAO,CAAC,EAAzB,CAAyB,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,YAAY,CAAC;YAEnB,iBAAM,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;YACpB,iBAAM,CAAC,CAAC,EAAE,EAAE,EAAC,UAAA,GAAG,IAAE,OAAA,MAAM,CAAC,KAAK,CAAC,GAAG,EAAC,OAAO,CAAC,EAAzB,CAAyB,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC"} \ No newline at end of file +{"version":3,"sources":["System/Collections/Arrays/Dispatch.ts"],"names":[],"mappings":";;;;;;;;;IAEA,yBAAuC,yDAAyD,CAAC,CAAA;IACjG,IAAI,MAAM,GAAG,OAAO,CAAC,2CAA2C,CAAC,CAAC;IAElE,EAAE,CAAC,gCAAgC,EAAE;QAEpC,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,GAAG;YACP,UAAC,CAAQ;gBAER,MAAM,IAAI,CAAC,CAAC;YACb,CAAC;YACD,UAAC,CAAQ;gBAER,MAAM,IAAI,CAAC,CAAC;YACb,CAAC;YACD,IAAI;SACJ,CAAC;QAGF,mBAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChB,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAE1B,MAAM,CAAC,KAAK,CAAC,iBAAM,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QACrC,MAAM,CAAC,KAAK,CAAC,iBAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACvC,MAAM,CAAC,KAAK,CAAC,iBAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACtC,iBAAM,CAAC,IAAI,EAAC,EAAE,CAAC,CAAC;QAChB,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG;QACP,UAAC,CAAQ;YAER,MAAM,OAAO,CAAC;QACf,CAAC;KACD,CAAC;IAEF,EAAE,CAAC,yBAAyB,EAAC;QAC5B,MAAM,CAAC,MAAM,CAAC;YAEb,mBAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC;YAEb,iBAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAGH,EAAE,CAAC,oBAAoB,EAAC;QACvB,MAAM,CAAC,YAAY,CAAC;YAEnB,mBAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;YACtB,mBAAQ,CAAC,CAAC,EAAE,EAAE,EAAC,UAAA,GAAG,IAAE,OAAA,MAAM,CAAC,KAAK,CAAC,GAAG,EAAC,OAAO,CAAC,EAAzB,CAAyB,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,YAAY,CAAC;YAEnB,iBAAM,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;YACpB,iBAAM,CAAC,CAAC,EAAE,EAAE,EAAC,UAAA,GAAG,IAAE,OAAA,MAAM,CAAC,KAAK,CAAC,GAAG,EAAC,OAAO,CAAC,EAAzB,CAAyB,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC","file":"System/Collections/Arrays/Dispatch.js","sourcesContent":["///\r\n\r\nimport {dispatch, mapped, unsafe} from \"../../../../../source/System/Collections/Array/Dispatch\";\r\nvar assert = require('../../../../../node_modules/assert/assert');\r\n\r\nit(\"should apply closures in order\", ()=>\r\n{\r\n\tvar result = 0;\r\n\tvar a = [\r\n\t\t(p:number)=>\r\n\t\t{\r\n\t\t\tresult += p;\r\n\t\t},\r\n\t\t(p:number)=>\r\n\t\t{\r\n\t\t\tresult *= p;\r\n\t\t},\r\n\t\tnull\r\n\t];\r\n\r\n\r\n\tdispatch(a, 10);\r\n\tassert.equal(result, 100);\r\n\r\n\tassert.equal(mapped(null, 20), null);\r\n\tassert.equal(mapped([], 20).length, 0);\r\n\tassert.equal(mapped(a, 20).length, 3);\r\n\tunsafe(null,10);\r\n\tassert.equal(result, 2400);\r\n});\r\n\r\nvar b = [\r\n\t(p:number)=>\r\n\t{\r\n\t\tthrow \"error\";\r\n\t}\r\n];\r\n\r\nit(\"should propagate errors\",()=>{\r\n\tassert.throws(()=>\r\n\t{\r\n\t\tdispatch(b, 10);\r\n\t});\r\n\r\n\tassert.throws(()=>\r\n\t{\r\n\t\tmapped(b, 10);\r\n\t});\r\n});\r\n\r\n\r\nit(\"should trap errors\",()=>{\r\n\tassert.doesNotThrow(()=>\r\n\t{\r\n\t\tdispatch(b, 10, true);\r\n\t\tdispatch(b, 10,err=>assert.equal(err,'error'));\r\n\t});\r\n\r\n\tassert.doesNotThrow(()=>\r\n\t{\r\n\t\tmapped(b, 10, true);\r\n\t\tmapped(b, 10,err=>assert.equal(err,'error'));\r\n\t});\r\n});"]} \ No newline at end of file diff --git a/tests/mocha/System/Collections/Arrays/Procedure.js b/tests/mocha/System/Collections/Arrays/Procedure.js index eac2421e..5d380092 100644 --- a/tests/mocha/System/Collections/Arrays/Procedure.js +++ b/tests/mocha/System/Collections/Arrays/Procedure.js @@ -72,4 +72,5 @@ }); }); }); -//# sourceMappingURL=Procedure.js.map \ No newline at end of file + +//# sourceMappingURL=Procedure.js.map diff --git a/tests/mocha/System/Collections/Arrays/Procedure.js.map b/tests/mocha/System/Collections/Arrays/Procedure.js.map index 6418b59a..59ab3902 100644 --- a/tests/mocha/System/Collections/Arrays/Procedure.js.map +++ b/tests/mocha/System/Collections/Arrays/Procedure.js.map @@ -1 +1 @@ -{"version":3,"file":"Procedure.js","sourceRoot":"","sources":["Procedure.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"sources":["System/Collections/Arrays/Procedure.ts"],"names":[],"mappings":"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","file":"System/Collections/Arrays/Procedure.js","sourcesContent":["///\r\n\r\nimport * as ArrayProcedure from \"../../../../../source/System/Collections/Array/Procedure\";\r\nvar assert = require('../../../../../node_modules/assert/assert');\r\n\r\n\r\nconst\r\n\tminA = -10,\r\n\tmaxA = 2000,\r\n\tminB = -Infinity,\r\n\tmaxB = Infinity,\r\n\ta = [5, minA, -1, maxA, -2, NaN, 20],\r\n\tb = [5, 2000, maxB, -1, NaN, -10, minB, -2, 20],\r\n\tsum = 5 + minA + (-1) + maxA + (-2) + 20,\r\n\taverage = sum/6, // Not including NaN\r\n\tproduct = 5*minA*(-1)*maxA*(-2)*20,\r\n\tquotient = 5/minA/(-1)/maxA/(-2)/20;\r\n\r\n\r\nfunction procedureShouldBe(\r\n\tsource:number[],\r\n\tvalue:number,\r\n\tp:(array:number[], ignoreNaN?:boolean)=>number)\r\n{\r\n\tit('should be NaN', ()=>\r\n\t{\r\n\t\tassert.ok(isNaN(p(source)));\r\n\t});\r\n\tit('should be ' + value, ()=>\r\n\t{\r\n\t\tassert.equal(p(source, true), value);\r\n\t});\r\n}\r\n\r\ndescribe(\".sum(source)\", ()=>\r\n{\r\n\tprocedureShouldBe(a, sum, ArrayProcedure.sum);\r\n\tit('should be 0', ()=>\r\n\t{\r\n\t\tassert.equal(ArrayProcedure.sum([]), 0);\r\n\t});\r\n});\r\n\r\ndescribe(\".average(source)\", ()=>\r\n{\r\n\tprocedureShouldBe(a, average, ArrayProcedure.average);\r\n\tit('should be NaN', ()=>\r\n\t{\r\n\t\tassert.ok(isNaN(ArrayProcedure.average([])));\r\n\t});\r\n\r\n});\r\n\r\n\r\ndescribe(\".product(source)\", ()=>\r\n{\r\n\tprocedureShouldBe(a, product, ArrayProcedure.product);\r\n\tit('should be NaN', ()=>\r\n\t{\r\n\t\tassert.ok(isNaN(ArrayProcedure.product([])));\r\n\t\tassert.ok(isNaN(ArrayProcedure.product([NaN], true)));\r\n\t});\r\n\r\n});\r\n\r\ndescribe(\".quotient(source)\", ()=>\r\n{\r\n\tprocedureShouldBe(a, quotient, ArrayProcedure.quotient);\r\n\tit('should be NaN', ()=>\r\n\t{\r\n\t\tassert.ok(isNaN(ArrayProcedure.quotient([])));\r\n\t\tassert.ok(isNaN(ArrayProcedure.quotient([1])));\r\n\t\tassert.ok(isNaN(ArrayProcedure.quotient([3,2,1,0])));\r\n\t\tassert.ok(isNaN(ArrayProcedure.quotient([NaN], true)));\r\n\t\tassert.ok(isNaN(ArrayProcedure.quotient([NaN,NaN,NaN])));\r\n\t});\r\n\r\n});\r\n\r\n\r\ndescribe(\".min(source)\", ()=>\r\n{\r\n\tdescribe(\"a\", ()=>\r\n\t{\r\n\t\tprocedureShouldBe(a, minA, ArrayProcedure.min);\r\n\t});\r\n\r\n\tdescribe(\"b\", ()=>\r\n\t{\r\n\t\tprocedureShouldBe(b, minB, ArrayProcedure.min);\r\n\t});\r\n\r\n\tit(\"should be NaN\",()=>{\r\n\t\tassert.ok(isNaN(ArrayProcedure.min(null)));\r\n\t\tassert.ok(isNaN(ArrayProcedure.min([NaN],true)));\r\n\t});\r\n\r\n});\r\n\r\ndescribe(\".max(source)\", ()=>\r\n{\r\n\tdescribe(\"a\", ()=>\r\n\t{\r\n\t\tprocedureShouldBe(a, maxA, ArrayProcedure.max);\r\n\t});\r\n\r\n\tdescribe(\"b\", ()=>\r\n\t{\r\n\t\tprocedureShouldBe(b, maxB, ArrayProcedure.max);\r\n\t});\r\n\r\n\tit(\"should be NaN\",()=>{\r\n\t\tassert.ok(isNaN(ArrayProcedure.max(null)));\r\n\t\tassert.ok(isNaN(ArrayProcedure.max([NaN],true)));\r\n\t});\r\n});\r\n"]} \ No newline at end of file diff --git a/tests/mocha/System/Collections/Arrays/Utility.js b/tests/mocha/System/Collections/Arrays/Utility.js index 24660b25..3fff8ff8 100644 --- a/tests/mocha/System/Collections/Arrays/Utility.js +++ b/tests/mocha/System/Collections/Arrays/Utility.js @@ -244,4 +244,5 @@ }); } }); -//# sourceMappingURL=Utility.js.map \ No newline at end of file + +//# sourceMappingURL=Utility.js.map diff --git a/tests/mocha/System/Collections/Arrays/Utility.js.map b/tests/mocha/System/Collections/Arrays/Utility.js.map index d4029217..74983df4 100644 --- a/tests/mocha/System/Collections/Arrays/Utility.js.map +++ b/tests/mocha/System/Collections/Arrays/Utility.js.map @@ -1 +1 @@ -{"version":3,"file":"Utility.js","sourceRoot":"","sources":["Utility.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"sources":["System/Collections/Arrays/Utility.ts"],"names":[],"mappings":"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","file":"System/Collections/Arrays/Utility.js","sourcesContent":["///\r\n\r\nimport * as Arrays from \"../../../../../source/System/Collections/Array/Compare\";\r\nimport * as ArrayUtility from \"../../../../../source/System/Collections/Array/Utility\";\r\nimport Stopwatch from \"../../../../../source/System/Diagnostics/Stopwatch\";\r\nimport {IArray} from \"../../../../../source/System/Collections/Array/IArray\";\r\nvar assert = require('../../../../../node_modules/assert/assert');\r\n\r\n\r\n// Min/Max tests...\r\nconst minA = -10, maxA = 2000;\r\n\r\nfunction initTestArray()\r\n{\r\n\treturn [5, minA, -1, maxA, -2, NaN, 20]\r\n}\r\n\r\ndescribe(\".initialize(length)\", ()=>\r\n{\r\n\tfunction testLength(len:number):void\r\n\t{\r\n\t\tit(\"should be length \" + len, ()=>\r\n\t\t{\r\n\t\t\tvar a = ArrayUtility.initialize(len);\r\n\t\t\tassert.equal(a.length, len, \".length should be \" + len);\r\n\t\t});\r\n\t}\r\n\r\n\ttestLength(100);\r\n\ttestLength(100000);\r\n});\r\n\r\n\r\ndescribe(\".copy(source) & .equals(old,new)\", ()=>\r\n{\r\n\tit(\"should equal\", ()=>\r\n\t{\r\n\t\tvar s1 = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 1, 2, 3],\r\n\t\t s2 = ArrayUtility.copy(s1),\r\n\t\t s3 = ArrayUtility.copy(s1, 1),\r\n\t\t s4 = ArrayUtility.copy(s1, 1, 3),\r\n\t\t s5 = ArrayUtility.copy(null);\r\n\t\tassert.ok(Arrays.areEqual(s1, s2));\r\n\t\tassert.equal(s5, null);\r\n\t});\r\n\r\n});\r\n\r\ndescribe(\".copyTo(source,destination)\", ()=>\r\n{\r\n\tit(\"should throw for invalid parameter\", ()=>\r\n\t{\r\n\t\tassert.throws(()=> {ArrayUtility.copyTo(null, null);});\r\n\t\tassert.throws(()=> {ArrayUtility.copyTo([], null);});\r\n\t\tassert.throws(()=> {ArrayUtility.copyTo([1], [], -1);});\r\n\t\tassert.throws(()=> {ArrayUtility.copyTo([1], [], 2);});\r\n\t\tassert.throws(()=> {ArrayUtility.copyTo([1], {length: -1});});\r\n\t\tassert.throws(()=> {ArrayUtility.copyTo([1], [], 0, 0, 5);});\r\n\t});\r\n});\r\n\r\ndescribe(\".indexOf(source,value)\", ()=>\r\n{\r\n\tvar a = initTestArray();\r\n\tit(\"should return true for a value contained\", ()=>\r\n\t{\r\n\t\tassert.notEqual(ArrayUtility.indexOf(a, -1), -1);\r\n\t});\r\n});\r\n\r\n\r\ndescribe(\".contains(source,value)\", ()=>\r\n{\r\n\tvar a = initTestArray();\r\n\tit(\"should return true for a value contained\", ()=>\r\n\t{\r\n\t\tassert.ok(ArrayUtility.contains(a, -1));\r\n\t});\r\n\tit(\"should return false for a value that is not present\", ()=>\r\n\t{\r\n\t\tassert.ok(!ArrayUtility.contains(a, -9876));\r\n\t});\r\n});\r\n\r\n\r\ndescribe(\".replace(source,oldValue,newValue)\", ()=>\r\n{\r\n\tvar a = initTestArray();\r\n\ta.push(5);\r\n\tit(\"should properly replace items with max\", ()=>\r\n\t{\r\n\t\tassert.equal(ArrayUtility.replace(null, 5, 6), 0);\r\n\t\tassert.equal(ArrayUtility.replace([], 5, 6), 0);\r\n\t\tassert.equal(ArrayUtility.replace(a, 5, 6), 2);\r\n\t\tassert.ok(ArrayUtility.contains(a, 6));\r\n\t\tassert.equal(ArrayUtility.replace(a, 6, 5, 1), 1);\r\n\t\tassert.ok(ArrayUtility.contains(a, 6));\r\n\t\tassert.ok(ArrayUtility.contains(a, 5));\r\n\r\n\t});\r\n\tit(\"should throw for invalid parameter\", ()=>\r\n\t{\r\n\t\tassert.throws(()=> {ArrayUtility.replace([4, 5, 6], 5, 6, -5);});\r\n\t});\r\n});\r\n\r\ndescribe(\".findIndex(source,of)\", ()=>\r\n{\r\n\tvar a = initTestArray(), b:IArray = {0: 3, 1: 1, 2: 2, length: 3};\r\n\tit(\"should find and return the correct index\", ()=>\r\n\t{\r\n\t\tassert.equal(ArrayUtility.findIndex(a, (v:number)=>v== -1), 2);\r\n\t});\r\n\tit(\"should find and return the correct index\", ()=>\r\n\t{\r\n\t\tassert.equal(ArrayUtility.findIndex(b, (v:number)=>v==1), 1);\r\n\t});\r\n\tit(\"should return -1 when the value is not present\", ()=>\r\n\t{\r\n\t\tassert.equal(ArrayUtility.findIndex(a, (v:number)=> v== -9876), -1);\r\n\t});\r\n\r\n\tit(\"should throw for invalid parameter\", ()=>\r\n\t{\r\n\t\tassert.throws(()=> {ArrayUtility.findIndex(null, ()=>true)});\r\n\t\tassert.throws(()=> {ArrayUtility.findIndex(a, null)});\r\n\t});\r\n});\r\n\r\ndescribe(\".register(target,value)\", ()=>\r\n{\r\n\tit(\"should add a value that isn't present\", ()=>\r\n\t{\r\n\t\tvar a = initTestArray();\r\n\t\tvar len = a.length;\r\n\t\tassert.ok(ArrayUtility.register(a, -9876));\r\n\t\tassert.equal(a.length, len + 1);\r\n\t});\r\n\r\n\tit(\"should not add a value that is present\", ()=>\r\n\t{\r\n\t\tvar a = initTestArray();\r\n\t\tvar len = a.length;\r\n\t\tassert.ok(!ArrayUtility.register(a, -1));\r\n\t\tassert.equal(a.length, len);\r\n\t});\r\n\r\n\tit(\"should throw for invalid parameter\", ()=>\r\n\t{\r\n\t\tassert.throws(()=> {ArrayUtility.register(null, -1, ()=>true)});\r\n\t});\r\n\r\n});\r\n\r\n\r\ndescribe(\".remove(target,value)\", ()=>\r\n{\r\n\tit(\"should remove the item/value request and return the number of instances removed\", ()=>\r\n\t{\r\n\t\tvar s = [10, 9, 9, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 1, 2, 3, 3];\r\n\t\tvar len = s.length;\r\n\r\n\t\tassert.equal(ArrayUtility.remove(s, 9, 1), 1, \"Only 9 removed once\");\r\n\t\tassert.equal(s.length, len - 1, \".length should be less by one\");\r\n\t\tassert.equal(ArrayUtility.remove(s, 9, 3), 2, \"Remaining 9s removed.\");\r\n\t\tassert.equal(s[1], 8, \"Index [1] is now 8\");\r\n\t\tlen = s.length;\r\n\r\n\t\tassert.equal(ArrayUtility.remove(s, 2), 2, \"2 removed twice\");\r\n\t\tassert.equal(s.length, len - 2, \".length should be less by two\");\r\n\t\tassert.equal(s[7], 1, \"Index [7] is now 1\");\r\n\t\tassert.equal(s[10], 3, \"Index [10] is now 3\");\r\n\t\tlen = s.length;\r\n\r\n\t\tassert.equal(ArrayUtility.remove(s, 15), 0, \"15 does not exist\");\r\n\t\tassert.equal(s.length, len, \".length should be the same\");\r\n\t\tlen = s.length;\r\n\r\n\t\tassert.ok(ArrayUtility.removeIndex(s, 5), \"Index [5] removed\");\r\n\t\tassert.equal(s.length, len - 1, \".length should be less by one\");\r\n\t\tlen = s.length;\r\n\r\n\t\tassert.equal(ArrayUtility.remove(s, 3, null), 3, \"All 3s removed.\");\r\n\t\tassert.equal(s.length, len - 3, \".length should be the same\");\r\n\t\tlen = s.length;\r\n\r\n\t\tassert.ok(!ArrayUtility.removeIndex(s, 15), \"Index [15] doesn't exist\");\r\n\t\tassert.equal(s.length, len, \".length should be the same\");\r\n\t});\r\n\r\n\tit(\"should assert invalid parameters\", ()=>\r\n\t{\r\n\t\tassert.throws(()=>\r\n\t\t{\r\n\t\t\tArrayUtility.removeIndex(null, 0);\r\n\t\t});\r\n\t\tassert.throws(()=>\r\n\t\t{\r\n\t\t\tArrayUtility.removeIndex([1, 2], -1);\r\n\t\t});\r\n\t\tassert.throws(()=>\r\n\t\t{\r\n\t\t\tArrayUtility.remove([1, 2], 1, -2);\r\n\t\t});\r\n\t});\r\n\r\n});\r\n\r\n/*\tUtility.applyTo skipped.\r\n It has too many permutations while being a straight forward function. */\r\n\r\n\r\ndescribe(\".updateRange(value,count)\", ()=>\r\n{\r\n\tit(\"should correctly overwrite the value requested\", ()=>\r\n\t{\r\n\r\n\t\tvar value = 10, count = 3, r = [1, 2, 3];\r\n\t\tassert.doesNotThrow(()=> {ArrayUtility.updateRange(null, value)});\r\n\t\tArrayUtility.updateRange(r, value);\r\n\r\n\t\tassert.equal(r.length, count, \".length should be 3\");\r\n\t\tfor(let i = 0; i\r\n\t{\r\n\t\tassert.throws(()=> {ArrayUtility.updateRange([1, 2, 3], 4, 2, 1);})\r\n\t})\r\n});\r\n\r\ndescribe(\".applyTo(source,action)\", ()=>\r\n{\r\n\tit(\"should correctly overwrite the values\", ()=>\r\n\t{\r\n\r\n\t\tvar value = 10, count = 3, r = [1, 2, 3];\r\n\t\tassert.doesNotThrow(()=> {ArrayUtility.applyTo(null, ()=>null)});\r\n\t\tArrayUtility.applyTo(r, ()=>null);\r\n\t\tassert.equal(r.length, count, \".length should be 3\");\r\n\t\tfor(let i = 0; i\r\n{\r\n\tit(\"should correctly overwrite the values\", ()=>\r\n\t{\r\n\r\n\t\tvar count = 0, r = [1, 2, 3];\r\n\t\tassert.doesNotThrow(()=> {ArrayUtility.forEach(null, ()=>true)});\r\n\t\tArrayUtility.forEach(r, (n, i)=>\r\n\t\t{\r\n\t\t\tassert.equal(count, i, \"count should be \" + i);\r\n\t\t\tcount++;\r\n\t\t\treturn i ? false : true;\r\n\t\t});\r\n\t\tassert.equal(count, 2, \"count should be 2\");\r\n\t});\r\n});\r\n\r\ndescribe(\".repeat(value,count)\", ()=>\r\n{\r\n\tit(\"should correctly repeat the value requested\", ()=>\r\n\t{\r\n\t\tvar value = 10, count = 3;\r\n\t\tvar r = ArrayUtility.repeat(value, count);\r\n\t\tassert.equal(r.length, count, \".length should be 3\");\r\n\t\tfor(let i = 0; i\r\n\t{\r\n\t\tassert.throws(()=> {ArrayUtility.repeat(1, -2);})\r\n\t})\r\n});\r\n\r\ndescribe(\".rangeUntil(first,until,step)\", ()=>\r\n{\r\n\tit(\"should correctly increase the value requested\", ()=>\r\n\t{\r\n\t\tvar first = 10, count = 3, step = 2, until = first + count*step;\r\n\t\tvar r = ArrayUtility.rangeUntil(first, until, 2);\r\n\t\tassert.equal(r.length, count, \".length should be 3\");\r\n\t\tfor(let i = 0; i\r\n\t{\r\n\t\tassert.throws(()=> {ArrayUtility.rangeUntil(Infinity, 10);});\r\n\t\tassert.throws(()=> {ArrayUtility.rangeUntil(NaN, 10);});\r\n\t\tassert.throws(()=> {ArrayUtility.rangeUntil(1, NaN);});\r\n\t\tassert.throws(()=> {ArrayUtility.rangeUntil(1, Infinity);});\r\n\t\tassert.throws(()=> {ArrayUtility.range(1, -1);});\r\n\t\tassert.throws(()=> {ArrayUtility.rangeUntil(1, 5, 0);});\r\n\t});\r\n});\r\n\r\ndescribe(\".flatten(source,recurseDepth)\",()=>{\r\n\tit(\"should convert multi dimensional array tree to a flat one\",()=>{\r\n\t\tvar len = initTestArray().length;\r\n\t\tvar a = [[initTestArray(),initTestArray()],initTestArray()];\r\n\t\tvar b = ArrayUtility.flatten(a,3);\r\n\t\tassert.equal(b.length,len*3);\r\n\t});\r\n\r\n\tit(\"should reduce multi dimensional array tree\",()=>{\r\n\t\tvar len = initTestArray().length;\r\n\t\tvar a = [[initTestArray(),initTestArray()],initTestArray()];\r\n\t\tvar b = ArrayUtility.flatten(a);\r\n\t\tassert.equal(b.length,len+2);\r\n\t})\r\n\r\n});\r\n\r\nfunction measureRepeated(closure:()=>void):number\r\n{\r\n\tconst repeat = 50;\r\n\tvar ms = 0;\r\n\r\n\tfor(let i = 0; ivoid):void\r\n{\r\n\tit(measureRepeated(closure) + \" milliseconds: \" + suffix, ()=>\r\n\t{\r\n\t\tassert.ok(true);\r\n\t});\r\n}\r\n\r\n/*\r\n * The below code proves (for Node.js and Mocha) that best practice with arrays is:\r\n * 1) Initialize them. Set their capacity when constructed or set the length before iterating.\r\n * 2) Standard for loops are typically compiler optimized well and i++ may be compiler optimized as well (better than ++i).\r\n */\r\n//\r\n// describe(\"Array Performance\", ()=>\r\n// {\r\n// \tconst max = 1000000;\r\n// \toutputMeasured(\"Array.push(i)\", ()=>\r\n// \t{\r\n// \t\tlet a:number[] = [];\r\n// \t\tfor(let i = 0; i\r\n// \t{\r\n// \t\tlet a:number[] = [];\r\n// \t\tfor(let i = 0; i\r\n// \t{\r\n// \t\tlet a:number[] = [];\r\n// \t\ta.length = max;\r\n// \t\ta.forEach((v,i)=>{\r\n// \t\t\ta[i] = v;\r\n// \t\t});\r\n// \t\t// To ensure compiler doesn't dismiss the array, must consume the array at least once.\r\n// \t\treturn a[max-1];\r\n// \t});*/\r\n//\r\n// \toutputMeasured(\"Array[i] = i (preset capacity i++)\", ()=>\r\n// \t{\r\n// \t\tlet a:number[] = new Array(max);\r\n// \t\tfor(let i = 0; i\r\n// \t{\r\n// \t\tlet a:number[] = [];\r\n// \t\ta.length = max;\r\n// \t\tfor(let i = 0; i\r\n// \t{\r\n// \t\tlet a:number[] = [];\r\n// \t\tfor(let i=max-1;i>=0; i--) {\r\n// \t\t\ta[i] = i;\r\n// \t\t}\r\n// \t\t// To ensure compiler doesn't dismiss the array, must consume the array at least once.\r\n// \t\treturn a[max-1];\r\n// \t});\r\n//\r\n// \toutputMeasured(\"Array[i] = i (for reverse)\", ()=>\r\n// \t{\r\n// \t\tlet a:number[] = new Array(max);\r\n// \t\tfor(let i=max-1;i>=0; i--) {\r\n// \t\t\ta[i] = i;\r\n// \t\t}\r\n// \t\t// To ensure compiler doesn't dismiss the array, must consume the array at least once.\r\n// \t\treturn a[max-1];\r\n// \t});\r\n//\r\n// \toutputMeasured(\"Array[m] = m (while reverse)\", ()=>\r\n// \t{\r\n// \t\tlet a:number[] = new Array(max);\r\n// \t\tlet m = max;\r\n// \t\twhile(m--) {\r\n// \t\t\ta[m] = m;\r\n// \t\t}\r\n// \t\t// To ensure compiler doesn't dismiss the array, must consume the array at least once.\r\n// \t\treturn a[max-1];\r\n// \t});\r\n//\r\n// \toutputMeasured(\"LinkedList.add(i)\", ()=>\r\n// \t{\r\n// \t\tlet a = new LinkedList();\r\n// \t\tfor(let i = 0; i\r\n// \t{\r\n// \t\tlet root:LinkedNextNode = { value: -1, next:null };\r\n// \t\tlet next = root;\r\n// \t\tfor(let i = 0; i\r\n\r\nimport ArrayEnumerator from \"../../../../../source/System/Collections/Enumeration/ArrayEnumerator\";\r\nvar assert = require('../../../../../node_modules/assert/assert');\r\n\r\n\r\nit(\"should allow empty arrays\", ()=>\r\n{\r\n\tassert.doesNotThrow(()=>\r\n\t{\r\n\t\tvar i = new ArrayEnumerator([]);\r\n\t\ti.moveNext();\r\n\t});\r\n\r\n\tassert.doesNotThrow(()=>\r\n\t{\r\n\t\tvar i = new ArrayEnumerator(null);\r\n\t\ti.moveNext();\r\n\t});\r\n\r\n});\r\n"]} \ No newline at end of file diff --git a/tests/mocha/System/Collections/Enumeration/Enumerator.js b/tests/mocha/System/Collections/Enumeration/Enumerator.js index 2dd902bb..40cc3b0b 100644 --- a/tests/mocha/System/Collections/Enumeration/Enumerator.js +++ b/tests/mocha/System/Collections/Enumeration/Enumerator.js @@ -89,4 +89,5 @@ }); }); }); -//# sourceMappingURL=Enumerator.js.map \ No newline at end of file + +//# sourceMappingURL=Enumerator.js.map diff --git a/tests/mocha/System/Collections/Enumeration/Enumerator.js.map b/tests/mocha/System/Collections/Enumeration/Enumerator.js.map index f9604dfc..f2f82338 100644 --- a/tests/mocha/System/Collections/Enumeration/Enumerator.js.map +++ b/tests/mocha/System/Collections/Enumeration/Enumerator.js.map @@ -1 +1 @@ -{"version":3,"file":"Enumerator.js","sourceRoot":"","sources":["Enumerator.ts"],"names":[],"mappings":";;;;;;;;;IAEA,sBAAuB,oCAAoC,CAAC,CAAA;IAC5D,sBAAkB,gDAAgD,CAAC,CAAA;IACnE,IAAY,UAAU,WAAM,iEAAiE,CAAC,CAAA;IAC9F,IAAI,MAAM,GAAG,OAAO,CAAC,2CAA2C,CAAC,CAAC;IAElE,IAAM,KAAK,GAAO,KAAI,CAAC,CAAC,CAAC,CAAC;IAE1B,QAAQ,CAAC,eAAe,EAAC;QAExB,EAAE,CAAC,qCAAqC,EAAC;YACxC,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;YAC5C,OAAM,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;gBACvB,KAAK,EAAE,CAAC;YACT,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAC,KAAK,CAAC,CAAC;YACjC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,EAAC,KAAK,CAAC,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAC,IAAI,CAAC,CAAC;YACpC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAC,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,OAAO,EAAE,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+BAA+B,EAAC;YAClC,MAAM,CAAC,MAAM,CAAC,cAAI,OAAA,UAAU,CAAC,IAAI,CAAM,CAAC,CAAC,EAAvB,CAAuB,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAC;YACxC,MAAM,CAAC,MAAM,CAAC,cAAI,OAAA,UAAU,CAAC,IAAI,CAAM,EAAE,CAAC,EAAxB,CAAwB,CAAC,CAAC;YAC5C,MAAM,CAAC,MAAM,CAAC,cAAI,OAAA,UAAU,CAAC,IAAI,CAAM,CAAC,cAAI,OAAA,IAAI,EAAJ,CAAI,CAAC,CAAC,EAAhC,CAAgC,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAC;YACjC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC;YACpB,IAAI,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC;YAC9B,IAAI,CAAC,GAAG,IAAI,eAAK,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,IAAI,GAAG,IAAI,gBAAQ,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YAE7B,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,EAAC,aAAa,EAAC,cAAI,OAAA,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAlB,CAAkB,EAAC,CAAC,CAAC;YACnE,OAAM,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;gBACvB,KAAK,EAAE,CAAC;YACT,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,KAAK,EAAC,GAAG,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yBAAyB,EAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC;YACpB,IAAI,IAAI,GAAG,IAAI,gBAAQ,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACtB,IAAI,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC;YAC9B,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9B,OAAM,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;gBACvB,KAAK,EAAE,CAAC;YACT,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,KAAK,EAAC,GAAG,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0BAA0B,EAAC;YAC7B,IAAI,CAAC,GAAG,OAAO,CAAC;YAChB,IAAI,IAAI,GAAG,IAAI,gBAAQ,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACtB,IAAI,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC;YAC9B,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9B,OAAM,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;gBACvB,KAAK,EAAE,CAAC;YACT,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,KAAK,EAAC,GAAG,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAC;YACxC,IAAI,CAAC,GAAkB,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,CAAC;YACtD,IAAI,IAAI,GAAG,IAAI,gBAAQ,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACtB,IAAI,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC;YAC9B,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9B,OAAM,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;gBACvB,KAAK,EAAE,CAAC;YACT,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,KAAK,EAAC,GAAG,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IAEJ,CAAC,CAAC,CAAC;IAGH,QAAQ,CAAC,kBAAkB,EAAC;QAE3B,IAAM,WAAW,GAA0B,UAAC,CAAC,EAAC,CAAC,IAAI,CAAC,CAAC;QAErD,EAAE,CAAC,qBAAqB,EAAE;YAEzB,MAAM,CAAC,YAAY,CAAC,cAAI,OAAA,UAAU,CAAC,OAAO,CAAC,IAAI,EAAC,WAAW,CAAC,EAApC,CAAoC,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+BAA+B,EAAE;YAEnC,MAAM,CAAC,YAAY,CAAC,cAAI,OAAA,UAAU,CAAC,OAAO,CAAM,EAAE,EAAC,WAAW,CAAC,EAAvC,CAAuC,CAAC,CAAC;YACjE,MAAM,CAAC,YAAY,CAAC,cAAI,OAAA,UAAU,CAAC,OAAO,CAAM,CAAC,EAAC,WAAW,CAAC,EAAtC,CAAsC,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;IAEJ,CAAC,CAAC,CAAC"} \ No newline at end of file +{"version":3,"sources":["System/Collections/Enumeration/Enumerator.ts"],"names":[],"mappings":"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","file":"System/Collections/Enumeration/Enumerator.js","sourcesContent":["///\r\n\r\nimport {TypeInfo} from \"../../../../../source/System/Types\";\r\nimport Queue from \"../../../../../source/System/Collections/Queue\";\r\nimport * as Enumerator from \"../../../../../source/System/Collections/Enumeration/Enumerator\";\r\nimport {IArray} from \"../../../../../source/System/Collections/Array/IArray\";\r\nvar assert = require('../../../../../node_modules/assert/assert');\r\n\r\nconst VOID0:any = void(0);\r\n\r\ndescribe(\".from(source)\",()=>{\r\n\r\n\tit(\"null should use an empty enumerator\",()=>{\r\n\t\tvar test = Enumerator.from(null), count = 0;\r\n\t\twhile(test.moveNext()) {\r\n\t\t\tcount++;\r\n\t\t}\r\n\t\tassert.equal(test.current,VOID0);\r\n\t\tassert.equal(test.nextValue(),VOID0);\r\n\t\tassert.equal(test.next().done,true);\r\n\t\tassert.equal(count,0);\r\n\t\ttest.reset();\r\n\t\ttest.dispose();\r\n\t});\r\n\r\n\tit(\"primitive values should throw\",()=>{\r\n\t\tassert.throws(()=>Enumerator.from(1));\r\n\t});\r\n\r\n\tit(\"non enumerable objects should throw\",()=>{\r\n\t\tassert.throws(()=>Enumerator.from({}));\r\n\t\tassert.throws(()=>Enumerator.from((()=>true)));\r\n\t});\r\n\r\n\tit(\"IEnumerable should enumerate\",()=>{\r\n\t\tvar a = [0,1,2,3,4];\r\n\t\tvar len = a.length, count = 0;\r\n\t\tvar q = new Queue(a);\r\n\t\tvar type = new TypeInfo(q);\r\n\t\ttype.member(\"getEnumerator\");\r\n\t\t// Creates an enumerable.\r\n\t\tvar test = Enumerator.from({getEnumerator:()=>Enumerator.from(a)});\r\n\t\twhile(test.moveNext()) {\r\n\t\t\tcount++;\r\n\t\t}\r\n\t\tassert.equal(count,len);\r\n\t});\r\n\r\n\tit(\"arrays should enumerate\",()=>{\r\n\t\tvar a = [0,1,2,3,4];\r\n\t\tvar type = new TypeInfo(a);\r\n\t\ttype.member(\"length\");\r\n\t\tvar len = a.length, count = 0;\r\n\t\tvar test = Enumerator.from(a);\r\n\t\twhile(test.moveNext()) {\r\n\t\t\tcount++;\r\n\t\t}\r\n\t\tassert.equal(count,len);\r\n\t});\r\n\r\n\tit(\"strings should enumerate\",()=>{\r\n\t\tvar a = \"01234\";\r\n\t\tvar type = new TypeInfo(a);\r\n\t\ttype.member(\"length\");\r\n\t\tvar len = a.length, count = 0;\r\n\t\tvar test = Enumerator.from(a);\r\n\t\twhile(test.moveNext()) {\r\n\t\t\tcount++;\r\n\t\t}\r\n\t\tassert.equal(count,len);\r\n\t});\r\n\r\n\tit(\"array like objects should enumerate\",()=>{\r\n\t\tvar a:IArray = {0:0,1:1,2:2,3:3,4:4,length:5};\r\n\t\tvar type = new TypeInfo(a);\r\n\t\ttype.member(\"length\");\r\n\t\tvar len = a.length, count = 0;\r\n\t\tvar test = Enumerator.from(a);\r\n\t\twhile(test.moveNext()) {\r\n\t\t\tcount++;\r\n\t\t}\r\n\t\tassert.equal(count,len);\r\n\t});\r\n\r\n});\r\n\r\n\r\ndescribe(\".forEach(source)\",()=>\r\n{\r\n\tconst blankAction:(n:any,i:number)=>void = (n,i)=>{};\r\n\r\n\tit(\"null values ignored\", ()=>\r\n\t{\r\n\t\tassert.doesNotThrow(()=>Enumerator.forEach(null,blankAction));\r\n\t});\r\n\r\n\tit(\"non-enumerable values ignored\", ()=>\r\n\t{\r\n\t\tassert.doesNotThrow(()=>Enumerator.forEach({},blankAction));\r\n\t\tassert.doesNotThrow(()=>Enumerator.forEach(1,blankAction));\r\n\t});\r\n\r\n});\r\n"]} \ No newline at end of file diff --git a/tests/mocha/System/Collections/Enumeration/Enumerator.ts b/tests/mocha/System/Collections/Enumeration/Enumerator.ts index 4ac8f55a..c411beb3 100644 --- a/tests/mocha/System/Collections/Enumeration/Enumerator.ts +++ b/tests/mocha/System/Collections/Enumeration/Enumerator.ts @@ -3,6 +3,7 @@ import {TypeInfo} from "../../../../../source/System/Types"; import Queue from "../../../../../source/System/Collections/Queue"; import * as Enumerator from "../../../../../source/System/Collections/Enumeration/Enumerator"; +import {IArray} from "../../../../../source/System/Collections/Array/IArray"; var assert = require('../../../../../node_modules/assert/assert'); const VOID0:any = void(0); diff --git a/tests/mocha/System/Collections/Enumeration/IndexEnumerator.js b/tests/mocha/System/Collections/Enumeration/IndexEnumerator.js index 16e77c5b..5c5c2e52 100644 --- a/tests/mocha/System/Collections/Enumeration/IndexEnumerator.js +++ b/tests/mocha/System/Collections/Enumeration/IndexEnumerator.js @@ -102,4 +102,5 @@ test.dispose(); }); }); -//# sourceMappingURL=IndexEnumerator.js.map \ No newline at end of file + +//# sourceMappingURL=IndexEnumerator.js.map diff --git a/tests/mocha/System/Collections/Enumeration/IndexEnumerator.js.map b/tests/mocha/System/Collections/Enumeration/IndexEnumerator.js.map index f4b1702d..846995d7 100644 --- a/tests/mocha/System/Collections/Enumeration/IndexEnumerator.js.map +++ b/tests/mocha/System/Collections/Enumeration/IndexEnumerator.js.map @@ -1 +1 @@ -{"version":3,"file":"IndexEnumerator.js","sourceRoot":"","sources":["IndexEnumerator.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"sources":["System/Collections/Enumeration/IndexEnumerator.ts"],"names":[],"mappings":"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","file":"System/Collections/Enumeration/IndexEnumerator.js","sourcesContent":["///\r\n\r\nimport IndexEnumerator from \"../../../../../source/System/Collections/Enumeration/IndexEnumerator\";\r\nvar assert = require('../../../../../node_modules/assert/assert');\r\n\r\nconst VOID0:any = void(0);\r\n\r\n\r\nconst a:{ [index:number]:number } = {0: 0, 1: 1, 2: 2, 3: 3, 4: 4};\r\n\r\n\r\nit(\"should ignore null sources\", ()=>\r\n{\r\n\r\n\tassert.doesNotThrow(()=>\r\n\t{\r\n\t\tvar i = new IndexEnumerator(()=>\r\n\t\t{\r\n\t\t\treturn {\r\n\t\t\t\tsource: null,\r\n\t\t\t\tpointer: 1,\r\n\t\t\t\tlength: 3,\r\n\t\t\t\tstep: 0\r\n\t\t\t}\r\n\t\t});\r\n\t\ti.moveNext();\r\n\t});\r\n\r\n\tassert.doesNotThrow(()=>\r\n\t{\r\n\t\tvar i = new IndexEnumerator(()=>\r\n\t\t{\r\n\t\t\treturn {\r\n\t\t\t\tsource: null,\r\n\t\t\t\tlength: 3,\r\n\t\t\t}\r\n\t\t});\r\n\t\ti.dispose();\r\n\t});\r\n\r\n});\r\n\r\n\r\nit(\"should throw for invalid step\", ()=>\r\n{\r\n\r\n\tassert.throws(()=>\r\n\t{\r\n\t\tvar i = new IndexEnumerator(()=>\r\n\t\t{\r\n\t\t\treturn {\r\n\t\t\t\tsource: a,\r\n\t\t\t\tpointer: 1,\r\n\t\t\t\tlength: 3,\r\n\t\t\t\tstep: 0\r\n\t\t\t}\r\n\t\t});\r\n\t\ti.moveNext();\r\n\t});\r\n\r\n\tassert.throws(()=>\r\n\t{\r\n\t\tvar i = new IndexEnumerator(()=>\r\n\t\t{\r\n\t\t\treturn {\r\n\t\t\t\tsource: a,\r\n\t\t\t\tpointer: 1,\r\n\t\t\t\tlength: 3,\r\n\t\t\t\tstep: 1.2\r\n\t\t\t}\r\n\t\t});\r\n\t\ti.moveNext();\r\n\t});\r\n});\r\n\r\nit(\"should throw for invalid pointer\", ()=>\r\n{\r\n\r\n\tassert.throws(()=>\r\n\t{\r\n\t\tvar i = new IndexEnumerator(()=>\r\n\t\t{\r\n\t\t\treturn {\r\n\t\t\t\tsource: a,\r\n\t\t\t\tpointer: 1.3,\r\n\t\t\t\tlength: 3,\r\n\t\t\t\tstep: 1\r\n\t\t\t}\r\n\t\t});\r\n\t\ti.moveNext();\r\n\t});\r\n\r\n});\r\n\r\nit(\"should throw for invalid length\", ()=>\r\n{\r\n\r\n\tassert.throws(()=>\r\n\t{\r\n\t\tvar i = new IndexEnumerator(()=>\r\n\t\t{\r\n\t\t\treturn {\r\n\t\t\t\tsource: a,\r\n\t\t\t\tpointer: 1,\r\n\t\t\t\tlength: -1,\r\n\t\t\t\tstep: 1\r\n\t\t\t}\r\n\t\t});\r\n\t\ti.moveNext();\r\n\t});\r\n\r\n});\r\n\r\nit(\"should enumerate by 1 with no step\",()=>{\r\n\r\n\r\n\tvar a = [0,1,2,3,4];\r\n\tvar len = a.length, count = 0;\r\n\tvar test = new IndexEnumerator(()=>\r\n\t{\r\n\t\treturn {\r\n\t\t\tsource: [0,1,2,3,4],\r\n\t\t\tlength: 5,\r\n\t\t}\r\n\t});\r\n\tvar last:number = null;\r\n\twhile(test.moveNext()) {\r\n\t\tcount++;\r\n\t\tlast = test.current;\r\n\t}\r\n\tassert.equal(count,len);\r\n\tassert.equal(last,4);\r\n\ttest.dispose();\r\n});"]} \ No newline at end of file diff --git a/tests/mocha/System/Collections/ICollection.js b/tests/mocha/System/Collections/ICollection.js index fb57bb2a..395ec89c 100644 --- a/tests/mocha/System/Collections/ICollection.js +++ b/tests/mocha/System/Collections/ICollection.js @@ -140,4 +140,5 @@ } exports.InstanceCollection = InstanceCollection; }); -//# sourceMappingURL=ICollection.js.map \ No newline at end of file + +//# sourceMappingURL=ICollection.js.map diff --git a/tests/mocha/System/Collections/ICollection.js.map b/tests/mocha/System/Collections/ICollection.js.map index a8d743f1..ab609ae4 100644 --- a/tests/mocha/System/Collections/ICollection.js.map +++ b/tests/mocha/System/Collections/ICollection.js.map @@ -1 +1 @@ -{"version":3,"file":"ICollection.js","sourceRoot":"","sources":["ICollection.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"sources":["System/Collections/ICollection.ts"],"names":[],"mappings":"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","file":"System/Collections/ICollection.js","sourcesContent":["///\r\n///\r\n\r\nimport * as AU from \"../../../../source/System/Collections/Array/Utility\";\r\nimport NotImplementedException from \"../../../../source/System/Exceptions/NotImplementedException\";\r\nimport {ICollection} from \"../../../../source/System/Collections/ICollection\";\r\nvar assert = require('../../../../node_modules/assert/assert');\r\n\r\n/*\r\n * This is a reusable set of unit test for use with any ICollection to ensure all features of that ICollection function properly.\r\n */\r\n\r\nexport function General(\r\n\tcollection:ICollection):void\r\n{\r\n\tvar count = collection.count;\r\n\r\n\tdescribe(\".count\", ()=>\r\n\t{\r\n\t\tassertIsNumber(count);\r\n\t});\r\n}\r\n\r\nfunction assertIsNumber(value:any, message:string = \"should be a real number\")\r\n{\r\n\tassert.ok(!isNaN(value), message);\r\n}\r\n\r\nfunction assertAdding(c:ICollection, a:T[])\r\n{\r\n\tit(\".add(value)\", ()=>\r\n\t{\r\n\t\tvar count:number;\r\n\t\tfor(let v of a)\r\n\t\t{\r\n\t\t\tassertIsNumber(count = c.count, \"before adding\");\r\n\t\t\tc.add(v);\r\n\t\t\tassertIsNumber(c.count, \"after adding\");\r\n\t\t\tassert.equal(c.count, count + 1, \"count should have incremented\");\r\n\t\t\tassert.ok(c.contains(v), \"'value' must exist after adding\");\r\n\t\t}\r\n\t});\r\n}\r\n\r\nfunction assertCopyToClear(c:ICollection)\r\n{\r\n\tit(\".copyTo(other) & .clear()\", ()=>\r\n\t{\r\n\t\tvar count:number = c.count;\r\n\t\tassertIsNumber(count);\r\n\t\tif(count<2) throw \"Can't assert '.copyTo()' or '.clear()' without at least (2) entries.\";\r\n\r\n\t\tvar a:T[] = [];\r\n\r\n\t\tc.copyTo(a);\r\n\t\tassertIsNumber(c.count, 'count');\r\n\t\tassert.equal(a.length, count, \"An empty array's length should match the count if copied to.\");\r\n\t\tc.clear();\r\n\t\tassert.equal(c.count, 0, \"A collection's count should be zero after calling '.clear()'.\");\r\n\r\n\t\t// Restore contents.\r\n\t\tfor(let v of a) c.add(v);\r\n\r\n\t\tvar extraSize = 10;\r\n\t\tvar b = AU.initialize(count + extraSize);\r\n\r\n\t\tc.copyTo(b, 1);\r\n\t\tassert.equal(b.length, count + extraSize, \"An array's length should be equal to it's original length if the count added does not exceed the length.\");\r\n\t\tc.copyTo(b, count + extraSize - 1);\r\n\t\tassert.equal(b.length, 2*count + extraSize - 1, \"An array's length should be equal to index+count if the count exceeds the length.\");\r\n\t\tc.clear();\r\n\t\tassert.equal(c.count, 0, \"A collection's count should be zero after calling '.clear()'.\");\r\n\r\n\t\t// Restore contents.\r\n\t\tfor(let v of a) c.add(v);\r\n\t\tassert.equal(c.count, a.length, \"A collection's count should be equal to the number of items added.\");\r\n\t});\r\n\r\n}\r\n\r\nfunction assertRemoving(c:ICollection)\r\n{\r\n\tit(\".remove(values)\", ()=>\r\n\t{\r\n\r\n\t\tvar count:number;\r\n\t\tassertIsNumber(count = c.count);\r\n\t\tif(c.count<2) throw \"Can't assert '.remove()' without at least (2) entries.\";\r\n\r\n\t\tvar a:T[] = [];\r\n\t\tc.copyTo(a);\r\n\t\tassertIsNumber(c.count);\r\n\r\n\t\ttry\r\n\t\t{\r\n\t\t\tfor(let v of a)\r\n\t\t\t{\r\n\t\t\t\tcount -= c.remove(v); // More than one instance can exist and it should remove both.\r\n\t\t\t\tassertIsNumber(c.count, \"after removing\");\r\n\t\t\t\tassert.equal(c.count, count, \"'count' should increment after removing.\");\r\n\t\t\t\tassert.ok(!c.contains(v), \"'value' must not exist after removing.\");\r\n\t\t\t}\r\n\t\t}\r\n\t\tcatch(ex)\r\n\t\t{\r\n\t\t\tif((ex)instanceof(NotImplementedException))\r\n\t\t\t{\r\n\t\t\t\t//console.log(ex);\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tthrow ex;\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n}\r\n\r\nexport function Collection(\r\n\tname:string,\r\n\tcollection:ICollection,\r\n\tsourceValues:T[]):void\r\n{\r\n\tif(sourceValues.indexOf(null)!= -1)\r\n\t\tthrow \"Source values should not contain null as checking against null is one of the tests.\";\r\n\r\n\t/* The following tests inherently test:\r\n\t - count\r\n\t - contains\r\n\t */\r\n\tdescribe(name, ()=>\r\n\t{\r\n\t\tassertAdding(collection, sourceValues);\r\n\t\tassertCopyToClear(collection);\r\n\t\tassertRemoving(collection);\r\n\t\tit(\"equality comparison should be strict\", ()=>\r\n\t\t{\r\n\t\t\tassert.ok(!collection.contains(null));\r\n\t\t})\r\n\r\n\t});\r\n\r\n}\r\n\r\nexport function StringCollection(\r\n\tname:string,\r\n\tcollection:ICollection):void\r\n{\r\n\r\n\t//noinspection SpellCheckingInspection\r\n\tCollection(name + '<' + 'string>', collection, [\r\n\t\t\"\",\r\n\t\t\"lorem\",\r\n\t\t\"ipsum\",\r\n\t\t\"dolem\",\r\n\t\t\"ipsum\" // Have a repeated entry to test removing multiple.\r\n\t])\r\n\r\n\r\n}\r\n\r\nexport function NumberCollection(\r\n\tname:string,\r\n\tcollection:ICollection):void\r\n{\r\n\t//noinspection SpellCheckingInspection\r\n\tCollection(name + '<' + 'number>', collection, [\r\n\t\t0,\r\n\t\t1,\r\n\t\t1, // Have a repeated entry to test removing multiple.\r\n\t\t2,\r\n\t\t3,\r\n\t\t5,\r\n\t\t8,\r\n\t\tNaN // Must be able to reconginze NaN\r\n\t]);\r\n\r\n\r\n}\r\n\r\nexport function InstanceCollection(\r\n\tname:string,\r\n\tcollection:ICollection):void\r\n{\r\n\tvar repeat = {};\r\n\t//noinspection SpellCheckingInspection\r\n\tCollection(name + '<' + 'Object>', collection, [\r\n\t\tundefined,\r\n\t\t{},\r\n\t\trepeat,\r\n\t\t{},\r\n\t\trepeat // Have a repeated entry to test removing multiple.\r\n\t])\r\n}\r\n\r\n"]} \ No newline at end of file diff --git a/tests/mocha/System/Collections/ICollection.ts b/tests/mocha/System/Collections/ICollection.ts index 4954e643..b5db7929 100644 --- a/tests/mocha/System/Collections/ICollection.ts +++ b/tests/mocha/System/Collections/ICollection.ts @@ -3,6 +3,7 @@ import * as AU from "../../../../source/System/Collections/Array/Utility"; import NotImplementedException from "../../../../source/System/Exceptions/NotImplementedException"; +import {ICollection} from "../../../../source/System/Collections/ICollection"; var assert = require('../../../../node_modules/assert/assert'); /* diff --git a/tests/mocha/System/Collections/LinkedList.js b/tests/mocha/System/Collections/LinkedList.js index 86f123db..bd248c81 100644 --- a/tests/mocha/System/Collections/LinkedList.js +++ b/tests/mocha/System/Collections/LinkedList.js @@ -43,4 +43,5 @@ }); }); }); -//# sourceMappingURL=LinkedList.js.map \ No newline at end of file + +//# sourceMappingURL=LinkedList.js.map diff --git a/tests/mocha/System/Collections/LinkedList.js.map b/tests/mocha/System/Collections/LinkedList.js.map index 820e9e93..da07f6a8 100644 --- a/tests/mocha/System/Collections/LinkedList.js.map +++ b/tests/mocha/System/Collections/LinkedList.js.map @@ -1 +1 @@ -{"version":3,"file":"LinkedList.js","sourceRoot":"","sources":["LinkedList.ts"],"names":[],"mappings":";;;;;;;;;IAEA,IAAY,gBAAgB,WAAM,eAAe,CAAC,CAAA;IAClD,2BAAuB,kDAAkD,CAAC,CAAA;IAC1E,wBAAuB,qDAAqD,CAAC,CAAA;IAC7E,IAAI,MAAM,GAAG,OAAO,CAAC,wCAAwC,CAAC,CAAC;IAE/D,IAAM,UAAU,GAAG,YAAY,CAAC;IAChC,gBAAgB,CAAC,gBAAgB,CAAC,UAAU,EAAC,IAAI,oBAAU,EAAU,CAAC,CAAC;IACvE,gBAAgB,CAAC,gBAAgB,CAAC,UAAU,EAAC,IAAI,oBAAU,EAAU,CAAC,CAAC;IACvE,gBAAgB,CAAC,kBAAkB,CAAC,UAAU,EAAC,IAAI,oBAAU,EAAU,CAAC,CAAC;IAEzE,QAAQ,CAAC,wBAAwB,EAAE;QAElC,IAAI,KAAK,GAAY,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,KAAK,GAAY,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC;QACvD,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC;QACrD,IAAI,IAAI,GAAG,IAAI,oBAAU,CAAS,KAAK,CAAC,CAAC;QACzC,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC3B,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;QAExB,IAAI,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAI3B,EAAE,CAAC,qCAAqC,EAAE;YAEzC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC3B,MAAM,CAAC,EAAE,CAAC,kBAAQ,CAAC,KAAK,EAAC,KAAK,CAAC,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE;YAExD,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC3B,MAAM,CAAC,EAAE,CAAC,kBAAQ,CAAC,YAAY,EAAC,KAAK,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,CAAC;QAC7F,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAE;YAEvD,MAAM,CAAC,KAAK,CAAC,IAAI,GAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YAC7B,MAAM,CAAC,EAAE,CAAC,kBAAQ,CAAC,YAAY,EAAC,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,CAAC;QAC3D,CAAC,CAAC,CAAC;IAGJ,CAAC,CAAC,CAAC"} \ No newline at end of file +{"version":3,"sources":["System/Collections/LinkedList.ts"],"names":[],"mappings":";;;;;;;;;IAEA,IAAY,gBAAgB,WAAM,eAAe,CAAC,CAAA;IAClD,2BAAuB,kDAAkD,CAAC,CAAA;IAC1E,wBAAuB,qDAAqD,CAAC,CAAA;IAC7E,IAAI,MAAM,GAAG,OAAO,CAAC,wCAAwC,CAAC,CAAC;IAE/D,IAAM,UAAU,GAAG,YAAY,CAAC;IAChC,gBAAgB,CAAC,gBAAgB,CAAC,UAAU,EAAC,IAAI,oBAAU,EAAU,CAAC,CAAC;IACvE,gBAAgB,CAAC,gBAAgB,CAAC,UAAU,EAAC,IAAI,oBAAU,EAAU,CAAC,CAAC;IACvE,gBAAgB,CAAC,kBAAkB,CAAC,UAAU,EAAC,IAAI,oBAAU,EAAU,CAAC,CAAC;IAEzE,QAAQ,CAAC,wBAAwB,EAAE;QAElC,IAAI,KAAK,GAAY,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,KAAK,GAAY,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC;QACvD,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC;QACrD,IAAI,IAAI,GAAG,IAAI,oBAAU,CAAS,KAAK,CAAC,CAAC;QACzC,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC3B,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;QAExB,IAAI,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAI3B,EAAE,CAAC,qCAAqC,EAAE;YAEzC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC3B,MAAM,CAAC,EAAE,CAAC,kBAAQ,CAAC,KAAK,EAAC,KAAK,CAAC,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE;YAExD,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC3B,MAAM,CAAC,EAAE,CAAC,kBAAQ,CAAC,YAAY,EAAC,KAAK,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,CAAC;QAC7F,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAE;YAEvD,MAAM,CAAC,KAAK,CAAC,IAAI,GAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YAC7B,MAAM,CAAC,EAAE,CAAC,kBAAQ,CAAC,YAAY,EAAC,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,CAAC;QAC3D,CAAC,CAAC,CAAC;IAGJ,CAAC,CAAC,CAAC","file":"System/Collections/LinkedList.js","sourcesContent":["///\r\n\r\nimport * as ICollectionTests from \"./ICollection\";\r\nimport LinkedList from \"../../../../source/System/Collections/LinkedList\";\r\nimport {areEqual} from \"../../../../source/System/Collections/Array/Compare\";\r\nvar assert = require('../../../../node_modules/assert/assert');\r\n\r\nconst CLASS_NAME = 'LinkedList';\r\nICollectionTests.StringCollection(CLASS_NAME,new LinkedList());\r\nICollectionTests.NumberCollection(CLASS_NAME,new LinkedList());\r\nICollectionTests.InstanceCollection(CLASS_NAME,new LinkedList());\r\n\r\ndescribe('.addAfter & .addBefore', ()=>\r\n{\r\n\tvar part1:number[] = [1,2,3], part2:number[] = [5,6,7];\r\n\tvar parts = part1.concat(part2), len1 = parts.length;\r\n\tvar list = new LinkedList(parts);\r\n\tvar list1 = list.toArray();\r\n\tvar count1 = list.count;\r\n\r\n\tvar partsSpliced = part1.concat([4]).concat(part2);\r\n\tvar len2 = partsSpliced.length;\r\n\tlist.find(5).addBefore(4);\r\n\tvar count2 = list.count;\r\n\tvar list2 = list.toArray();\r\n\tlist.find(6).addAfter(6.5);\r\n\tvar count3 = list.count;\r\n\tvar list3 = list.toArray();\r\n\r\n\r\n\t\r\n\tit('should match expected initial count', ()=>\r\n\t{\r\n\t\tassert.equal(len1, count1);\r\n\t\tassert.ok(areEqual(parts,list1));\r\n\t});\r\n\r\n\tit('should match expected count after inserting before', ()=>\r\n\t{\r\n\t\tassert.equal(len2, count2);\r\n\t\tassert.ok(areEqual(partsSpliced,list2), partsSpliced.join(',') + \" != \" + list2.join(',') );\r\n\t});\r\n\r\n\tit('should match expected count after inserting after', ()=>\r\n\t{\r\n\t\tassert.equal(len2+1, count3);\r\n\t\tassert.ok(areEqual(partsSpliced,list2), list3.join(',') );\r\n\t});\r\n\r\n\r\n});"]} \ No newline at end of file diff --git a/tests/mocha/System/Collections/List.js b/tests/mocha/System/Collections/List.js index 095a1082..a89b9496 100644 --- a/tests/mocha/System/Collections/List.js +++ b/tests/mocha/System/Collections/List.js @@ -14,4 +14,5 @@ ICollectionTests.NumberCollection(CLASS_NAME, new List_1.default()); ICollectionTests.InstanceCollection(CLASS_NAME, new List_1.default()); }); -//# sourceMappingURL=List.js.map \ No newline at end of file + +//# sourceMappingURL=List.js.map diff --git a/tests/mocha/System/Collections/List.js.map b/tests/mocha/System/Collections/List.js.map index d3a656d0..6cfd781f 100644 --- a/tests/mocha/System/Collections/List.js.map +++ b/tests/mocha/System/Collections/List.js.map @@ -1 +1 @@ -{"version":3,"file":"List.js","sourceRoot":"","sources":["List.ts"],"names":[],"mappings":";;;;;;;;;IAEA,IAAY,gBAAgB,WAAM,eAAe,CAAC,CAAA;IAClD,qBAAiB,4CAA4C,CAAC,CAAA;IAE9D,IAAM,UAAU,GAAG,MAAM,CAAC;IAE1B,gBAAgB,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,cAAI,EAAU,CAAC,CAAC;IAClE,gBAAgB,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,cAAI,EAAU,CAAC,CAAC;IAClE,gBAAgB,CAAC,kBAAkB,CAAC,UAAU,EAAE,IAAI,cAAI,EAAU,CAAC,CAAC"} \ No newline at end of file +{"version":3,"sources":["System/Collections/List.ts"],"names":[],"mappings":";;;;;;;;;IAEA,IAAY,gBAAgB,WAAM,eAAe,CAAC,CAAA;IAClD,qBAAiB,4CAA4C,CAAC,CAAA;IAE9D,IAAM,UAAU,GAAG,MAAM,CAAC;IAE1B,gBAAgB,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,cAAI,EAAU,CAAC,CAAC;IAClE,gBAAgB,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,cAAI,EAAU,CAAC,CAAC;IAClE,gBAAgB,CAAC,kBAAkB,CAAC,UAAU,EAAE,IAAI,cAAI,EAAU,CAAC,CAAC","file":"System/Collections/List.js","sourcesContent":["///\r\n\r\nimport * as ICollectionTests from \"./ICollection\";\r\nimport List from \"../../../../source/System/Collections/List\";\r\n\r\nconst CLASS_NAME = 'List';\r\n\r\nICollectionTests.StringCollection(CLASS_NAME, new List());\r\nICollectionTests.NumberCollection(CLASS_NAME, new List());\r\nICollectionTests.InstanceCollection(CLASS_NAME, new List());"]} \ No newline at end of file diff --git a/tests/mocha/System/Collections/OrderedStringKeyDictionary.js b/tests/mocha/System/Collections/OrderedStringKeyDictionary.js index 879ee625..da831b1f 100644 --- a/tests/mocha/System/Collections/OrderedStringKeyDictionary.js +++ b/tests/mocha/System/Collections/OrderedStringKeyDictionary.js @@ -3,12 +3,12 @@ var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", './ICollection', '../../../../source/System/Collections/Dictionaries/OrderedStringKeyDictionary'], factory); + define(["require", "exports", "./ICollection", "../../../../source/System/Collections/Dictionaries/OrderedStringKeyDictionary"], factory); } })(function (require, exports) { "use strict"; - var ICollectionTests = require('./ICollection'); - var OrderedStringKeyDictionary_1 = require('../../../../source/System/Collections/Dictionaries/OrderedStringKeyDictionary'); + var ICollectionTests = require("./ICollection"); + var OrderedStringKeyDictionary_1 = require("../../../../source/System/Collections/Dictionaries/OrderedStringKeyDictionary"); ICollectionTests.Collection('OrderedStringKeyDictionary', new OrderedStringKeyDictionary_1.default(), [ { key: 'A', value: 1 }, { key: 'B', value: 2 }, diff --git a/tests/mocha/System/Collections/OrderedStringKeyDictionary.js.map b/tests/mocha/System/Collections/OrderedStringKeyDictionary.js.map index cfdcebf2..5d49ab0e 100644 --- a/tests/mocha/System/Collections/OrderedStringKeyDictionary.js.map +++ b/tests/mocha/System/Collections/OrderedStringKeyDictionary.js.map @@ -1 +1 @@ -{"version":3,"file":"OrderedStringKeyDictionary.js","sourceRoot":"","sources":["OrderedStringKeyDictionary.ts"],"names":[],"mappings":";;;;;;;;;IACA,IAAY,gBAAgB,WAAM,eAAe,CAAC,CAAA;IAClD,2CAAuC,+EAA+E,CAAC,CAAA;IAEvH,gBAAgB,CAAC,UAAU,CAC1B,oCAAoC,EACpC,IAAI,oCAA0B,EAAU,EACxC;QACC,EAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAC;QACpB,EAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAC;QACpB,EAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAC;QACpB,EAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAC;QACpB,EAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAC;QACpB,EAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAC;KACpB,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"OrderedStringKeyDictionary.js","sourceRoot":"","sources":["OrderedStringKeyDictionary.ts"],"names":[],"mappings":";;;;;;;;;IACA,IAAY,gBAAgB,WAAM,eAAe,CAAC,CAAA;IAClD,2CAAuC,+EAA+E,CAAC,CAAA;IAGvH,gBAAgB,CAAC,UAAU,CAC1B,oCAAoC,EACpC,IAAI,oCAA0B,EAAU,EACxC;QACC,EAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAC;QACpB,EAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAC;QACpB,EAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAC;QACpB,EAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAC;QACpB,EAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAC;QACpB,EAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAC;KACpB,CAAC,CAAC"} \ No newline at end of file diff --git a/tests/mocha/System/Collections/OrderedStringKeyDictionary.ts b/tests/mocha/System/Collections/OrderedStringKeyDictionary.ts index e4bf5760..7d81c63a 100644 --- a/tests/mocha/System/Collections/OrderedStringKeyDictionary.ts +++ b/tests/mocha/System/Collections/OrderedStringKeyDictionary.ts @@ -1,6 +1,7 @@ /// -import * as ICollectionTests from './ICollection'; -import OrderedStringKeyDictionary from '../../../../source/System/Collections/Dictionaries/OrderedStringKeyDictionary'; +import * as ICollectionTests from "./ICollection"; +import OrderedStringKeyDictionary from "../../../../source/System/Collections/Dictionaries/OrderedStringKeyDictionary"; +import {IKeyValuePair} from "../../../../source/System/KeyValuePair"; ICollectionTests.Collection>( 'OrderedStringKeyDictionary', diff --git a/tests/mocha/System/Collections/Queue.js b/tests/mocha/System/Collections/Queue.js index 97c971fe..01a7dcc4 100644 --- a/tests/mocha/System/Collections/Queue.js +++ b/tests/mocha/System/Collections/Queue.js @@ -13,4 +13,5 @@ ICollectionTests.NumberCollection('Queue', new Queue_1.default()); ICollectionTests.InstanceCollection('Queue', new Queue_1.default()); }); -//# sourceMappingURL=Queue.js.map \ No newline at end of file + +//# sourceMappingURL=Queue.js.map diff --git a/tests/mocha/System/Collections/Queue.js.map b/tests/mocha/System/Collections/Queue.js.map index feb60257..70749243 100644 --- a/tests/mocha/System/Collections/Queue.js.map +++ b/tests/mocha/System/Collections/Queue.js.map @@ -1 +1 @@ -{"version":3,"file":"Queue.js","sourceRoot":"","sources":["Queue.ts"],"names":[],"mappings":";;;;;;;;;IAAA,IAAY,gBAAgB,WAAM,eAAe,CAAC,CAAA;IAClD,sBAAkB,6CAA6C,CAAC,CAAA;IAEhE,gBAAgB,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,eAAK,EAAU,CAAC,CAAC;IAChE,gBAAgB,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,eAAK,EAAU,CAAC,CAAC;IAChE,gBAAgB,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,eAAK,EAAU,CAAC,CAAC"} \ No newline at end of file +{"version":3,"sources":["System/Collections/Queue.ts"],"names":[],"mappings":";;;;;;;;;IAAA,IAAY,gBAAgB,WAAM,eAAe,CAAC,CAAA;IAClD,sBAAkB,6CAA6C,CAAC,CAAA;IAEhE,gBAAgB,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,eAAK,EAAU,CAAC,CAAC;IAChE,gBAAgB,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,eAAK,EAAU,CAAC,CAAC;IAChE,gBAAgB,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,eAAK,EAAU,CAAC,CAAC","file":"System/Collections/Queue.js","sourcesContent":["import * as ICollectionTests from './ICollection';\r\nimport Queue from '../../../../source/System/Collections/Queue';\r\n\r\nICollectionTests.StringCollection('Queue', new Queue());\r\nICollectionTests.NumberCollection('Queue', new Queue());\r\nICollectionTests.InstanceCollection('Queue', new Queue());\r\n"]} \ No newline at end of file diff --git a/tests/mocha/System/Collections/Set.js b/tests/mocha/System/Collections/Set.js index fb60a2b4..8def722a 100644 --- a/tests/mocha/System/Collections/Set.js +++ b/tests/mocha/System/Collections/Set.js @@ -144,4 +144,5 @@ }); }); }); -//# sourceMappingURL=Set.js.map \ No newline at end of file + +//# sourceMappingURL=Set.js.map diff --git a/tests/mocha/System/Collections/Set.js.map b/tests/mocha/System/Collections/Set.js.map index 8e8c208d..042c151e 100644 --- a/tests/mocha/System/Collections/Set.js.map +++ b/tests/mocha/System/Collections/Set.js.map @@ -1 +1 @@ -{"version":3,"file":"Set.js","sourceRoot":"","sources":["Set.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"sources":["System/Collections/Set.ts"],"names":[],"mappings":"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","file":"System/Collections/Set.js","sourcesContent":["///\r\n///\r\n\r\nimport * as ICollectionTests from \"./ICollection\";\r\nimport Set from \"../../../../source/System/Collections/Set\";\r\nimport {Primitive} from \"../../../../source/System/Primitive\";\r\nvar assert = require('../../../../node_modules/assert/assert');\r\n\r\n//noinspection SpellCheckingInspection\r\nICollectionTests.Collection('Set<' + 'string>', new Set(), [\r\n\t\"\",\r\n\t\"lorem\",\r\n\t\"ipsum\",\r\n\t\"dolem\"\r\n]);\r\n\r\nICollectionTests.Collection('Set<' + 'number>', new Set(), [\r\n\t0,\r\n\t1,\r\n\t2,\r\n\t3,\r\n\t5,\r\n\t7,\r\n\t11,\r\n\t13\r\n]);\r\n\r\n\r\nICollectionTests.Collection('Set<' + 'Primitive>', new Set(), [\r\n\t0,\r\n\t1,\r\n\t2,\r\n\t3,\r\n\t5,\r\n\t7,\r\n\t11,\r\n\t13,\r\n\t\"\",\r\n\t\"0\",\r\n\t\"1\",\r\n\t\"2\",\r\n\t\"3\",\r\n\t\"5\",\r\n\t\"7\",\r\n\t\"11\",\r\n\t\"13\",\r\n\ttrue,\r\n\tfalse\r\n\r\n]);\r\n\r\nvar sourcePrimitives = [\r\n\t1, 2, 1, \"1\", true, false, \"hello\", \"hello\", \"hi\", true\r\n];\r\nvar subset = sourcePrimitives.slice(4);\r\nvar superset = sourcePrimitives.slice();\r\nsuperset.push(\"NO\");\r\nvar otherWithIntersect = [1,\"1\",4000,\"goodbye\"];\r\n\r\n\r\nit(\"should not repeat entries\", ()=>\r\n{\r\n\tvar s = new Set(sourcePrimitives);\r\n\r\n\tassert.equal(s.count, 7);\r\n\r\n});\r\n\r\n\r\ndescribe(\".setEquals()\", ()=>\r\n{\r\n\r\n\tit(\"the current set should equal to the same set and not equal for different sets\", ()=>\r\n\t{\r\n\t\tvar s = new Set(sourcePrimitives);\r\n\t\tvar v = sourcePrimitives.slice();\r\n\t\tv[8] = \"hola\";\r\n\r\n\t\tassert.equal(s.setEquals(sourcePrimitives), true, \"Exact same set should be equal.\");\r\n\t\tassert.equal(s.setEquals(subset), false, \"Smaller set should not be equal.\");\r\n\t\tassert.equal(s.setEquals(superset), false, \"Larger set should not be a equal.\");\r\n\t\tassert.equal(s.setEquals(v), false, \"Similar set should not be a equal.\");\r\n\t});\r\n\r\n});\r\n\r\ndescribe(\".isSupersetOf()\", ()=>\r\n{\r\n\r\n\tit(\"the current set should be a super set of any equal or smaller set\", ()=>\r\n\t{\r\n\t\tvar s = new Set(sourcePrimitives);\r\n\r\n\t\tassert.equal(s.isSupersetOf(sourcePrimitives), true, \"Exact same set should be a superset and subset.\");\r\n\t\tassert.equal(s.isSupersetOf(subset), true, \"Smaller set should be a subset.\");\r\n\t\tassert.equal(s.isSupersetOf(superset), false, \"Larger set should not be a subset.\");\r\n\t});\r\n\r\n});\r\n\r\n\r\ndescribe(\".isProperSupersetOf()\", ()=>\r\n{\r\n\r\n\tit(\"the current set should be a super set of any smaller matching set\", ()=>\r\n\t{\r\n\t\tvar s = new Set(sourcePrimitives);\r\n\r\n\t\tassert.equal(s.isProperSupersetOf(sourcePrimitives), false, \"Exact same set should not be a proper superset or subset.\");\r\n\t\tassert.equal(s.isProperSupersetOf(subset), true, \"Smaller set should be a subset.\");\r\n\t\tassert.equal(s.isProperSupersetOf(superset), false, \"Larger set should not be a subset.\");\r\n\t});\r\n\r\n});\r\n\r\ndescribe(\".isSubsetOf()\", ()=>\r\n{\r\n\r\n\tit(\"the current set should be a sub set of any equal or larger matching set\", ()=>\r\n\t{\r\n\t\tvar s = new Set(sourcePrimitives);\r\n\r\n\t\tassert.equal(s.isSubsetOf(sourcePrimitives), true, \"Exact same set should be a superset and subset.\");\r\n\t\tassert.equal(s.isSubsetOf(subset), false, \"Smaller set should be a subset.\");\r\n\t\tassert.equal(s.isSubsetOf(superset), true, \"Larger set should be a superset.\");\r\n\t});\r\n\r\n});\r\n\r\n\r\ndescribe(\".isProperSubsetOf()\", ()=>\r\n{\r\n\r\n\tit(\"the current set should be a sub set of any larger matching set\", ()=>\r\n\t{\r\n\t\tvar s = new Set(sourcePrimitives);\r\n\r\n\t\tassert.equal(s.isProperSubsetOf(sourcePrimitives), false, \"Exact same set should not be a proper superset or subset.\");\r\n\t\tassert.equal(s.isProperSubsetOf(subset), false, \"Smaller set should be a subset.\");\r\n\t\tassert.equal(s.isProperSubsetOf(superset), true, \"Larger set should be a superset.\");\r\n\t});\r\n\r\n});\r\n\r\ndescribe(\".exceptWith()\", ()=>\r\n{\r\n\r\n\tit(\"should remove the specified items fromt the set\", ()=>\r\n\t{\r\n\t\tvar s = new Set(sourcePrimitives);\r\n\t\ts.exceptWith([1,\"1\"]);\r\n\r\n\t\tassert.equal(s.count, 5);\r\n\t\tassert.equal(s.contains(1), false);\r\n\t\tassert.equal(s.contains(\"1\"), false);\r\n\t\tassert.equal(s.contains(\"hello\"), true);\r\n\t});\r\n\r\n});\r\n\r\ndescribe(\".intersectWith()\", ()=>\r\n{\r\n\r\n\tit(\"should only leave the intersecting items behind\", ()=>\r\n\t{\r\n\t\tvar s = new Set(sourcePrimitives);\r\n\t\ts.intersectWith(otherWithIntersect);\r\n\r\n\t\tassert.equal(s.count, 2);\r\n\t\tassert.equal(s.contains(1), true);\r\n\t\tassert.equal(s.contains(\"1\"), true);\r\n\t\tassert.equal(s.contains(\"hello\"), false);\r\n\t});\r\n\r\n});\r\n\r\ndescribe(\".unionWith()\", ()=>\r\n{\r\n\r\n\tit(\"should only leave the intersecting items behind\", ()=>\r\n\t{\r\n\t\tvar s = new Set(sourcePrimitives);\r\n\t\tvar c = s.count;\r\n\t\ts.unionWith(otherWithIntersect);\r\n\r\n\t\tassert.equal(s.count, c+2);\r\n\t\tassert.equal(s.contains(4000), true);\r\n\t\tassert.equal(s.contains(\"goodbye\"), true);\r\n\t});\r\n\r\n});\r\n\r\ndescribe(\".symmetricExceptWith()\", ()=>\r\n{\r\n\r\n\tit(\"should only leave unique items behind\", ()=>\r\n\t{\r\n\t\tvar s = new Set(sourcePrimitives);\r\n\t\tvar c = s.count;\r\n\t\ts.symmetricExceptWith(otherWithIntersect);\r\n\r\n\t\tassert.equal(s.count, c-2+2);\r\n\t\tassert.equal(s.contains(4000), true);\r\n\t\tassert.equal(s.contains(\"goodbye\"), true);\r\n\t\tassert.equal(s.contains(1), false);\r\n\t\tassert.equal(s.contains(\"1\"), false);\r\n\t});\r\n\r\n});"]} \ No newline at end of file diff --git a/tests/mocha/System/Collections/Set.ts b/tests/mocha/System/Collections/Set.ts index fc45e92d..abc99ff6 100644 --- a/tests/mocha/System/Collections/Set.ts +++ b/tests/mocha/System/Collections/Set.ts @@ -3,6 +3,7 @@ import * as ICollectionTests from "./ICollection"; import Set from "../../../../source/System/Collections/Set"; +import {Primitive} from "../../../../source/System/Primitive"; var assert = require('../../../../node_modules/assert/assert'); //noinspection SpellCheckingInspection diff --git a/tests/mocha/System/Diagnostics/Stopwatch.js b/tests/mocha/System/Diagnostics/Stopwatch.js index 1942c53b..89c133ed 100644 --- a/tests/mocha/System/Diagnostics/Stopwatch.js +++ b/tests/mocha/System/Diagnostics/Stopwatch.js @@ -38,4 +38,5 @@ assert.ok(!sw.isRunning); }); }); -//# sourceMappingURL=Stopwatch.js.map \ No newline at end of file + +//# sourceMappingURL=Stopwatch.js.map diff --git a/tests/mocha/System/Diagnostics/Stopwatch.js.map b/tests/mocha/System/Diagnostics/Stopwatch.js.map index 06b2f463..4839d853 100644 --- a/tests/mocha/System/Diagnostics/Stopwatch.js.map +++ b/tests/mocha/System/Diagnostics/Stopwatch.js.map @@ -1 +1 @@ -{"version":3,"file":"Stopwatch.js","sourceRoot":"","sources":["Stopwatch.ts"],"names":[],"mappings":";;;;;;;;;IAGA,0BAAsB,iDAAiD,CAAC,CAAA;IACxE,IAAI,MAAM,GAAG,OAAO,CAAC,wCAAwC,CAAC,CAAC;IAI/D,EAAE,CAAC,0BAA0B,EAAC;QAC7B,MAAM,CAAC,EAAE,CAAC,mBAAS,CAAC,OAAO,CAAC;YAC3B,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAC,CAAC,GAAC,MAAM,EAAC,CAAC,EAAE,EAAC,CAAC;gBAC3B,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;YAChB,CAAC;QACF,CAAC,CAAC,CAAC,YAAY,GAAC,CAAC,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAC;QAErE,MAAM,CAAC,EAAE,CAAC,mBAAS,CAAC,wBAAwB,EAAE,GAAC,CAAC,CAAC,CAAC;QAClD,IAAI,EAAE,GAAG,IAAI,mBAAS,EAAE,CAAC;QACzB,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,EAAC,CAAC,CAAC,CAAC;QACxC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,YAAY,EAAC,CAAC,CAAC,CAAC;QACtC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,EAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,sBAAsB,EAAC,CAAC,CAAC,CAAC;QAC1C,EAAE,GAAG,mBAAS,CAAC,QAAQ,EAAE,CAAC;QAC1B,EAAE,CAAC,KAAK,EAAE,CAAC;QACX,EAAE,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,mBAAmB,IAAE,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,IAAE,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;QACxB,EAAE,CAAC,IAAI,EAAE,CAAC;QACV,EAAE,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;QACzB,EAAE,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;QACxB,EAAE,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC"} \ No newline at end of file +{"version":3,"sources":["System/Diagnostics/Stopwatch.ts"],"names":[],"mappings":";;;;;;;;;IAGA,0BAAsB,iDAAiD,CAAC,CAAA;IACxE,IAAI,MAAM,GAAG,OAAO,CAAC,wCAAwC,CAAC,CAAC;IAI/D,EAAE,CAAC,0BAA0B,EAAC;QAC7B,MAAM,CAAC,EAAE,CAAC,mBAAS,CAAC,OAAO,CAAC;YAC3B,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAC,CAAC,GAAC,MAAM,EAAC,CAAC,EAAE,EAAC,CAAC;gBAC3B,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;YAChB,CAAC;QACF,CAAC,CAAC,CAAC,YAAY,GAAC,CAAC,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAC;QAErE,MAAM,CAAC,EAAE,CAAC,mBAAS,CAAC,wBAAwB,EAAE,GAAC,CAAC,CAAC,CAAC;QAClD,IAAI,EAAE,GAAG,IAAI,mBAAS,EAAE,CAAC;QACzB,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,EAAC,CAAC,CAAC,CAAC;QACxC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,YAAY,EAAC,CAAC,CAAC,CAAC;QACtC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,EAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,sBAAsB,EAAC,CAAC,CAAC,CAAC;QAC1C,EAAE,GAAG,mBAAS,CAAC,QAAQ,EAAE,CAAC;QAC1B,EAAE,CAAC,KAAK,EAAE,CAAC;QACX,EAAE,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,mBAAmB,IAAE,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,IAAE,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;QACxB,EAAE,CAAC,IAAI,EAAE,CAAC;QACV,EAAE,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;QACzB,EAAE,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;QACxB,EAAE,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC","file":"System/Diagnostics/Stopwatch.js","sourcesContent":["\r\n///\r\n\r\nimport Stopwatch from \"../../../../source/System/Diagnostics/Stopwatch\";\r\nvar assert = require('../../../../node_modules/assert/assert');\r\n\r\n\r\n\r\nit(\"should measure a closure\",()=>{\r\n\tassert.ok(Stopwatch.measure(()=>{\r\n\t\tfor(let i = 0;i<100000;i++){\r\n\t\t\tnew Array(100);\r\n\t\t}\r\n\t}).milliseconds>0);\r\n});\r\n\r\nit(\"should start, stop, and reset with isRunning correctly reflected\",()=>\r\n{\r\n\tassert.ok(Stopwatch.getTimestampMilliseconds()>0);\r\n\tvar sw = new Stopwatch();\r\n\tassert.equal(sw.elapsed.milliseconds,0);\r\n\tassert.equal(sw.lap().milliseconds,0);\r\n\tassert.equal(sw.currentLap.milliseconds,0);\r\n\tassert.equal(sw.currentLapMilliseconds,0);\r\n\tsw = Stopwatch.startNew();\r\n\tsw.start();\r\n\tsw.lap();\r\n\tassert.ok(sw.elapsedMilliseconds>=0);\r\n\tassert.ok(sw.currentLap.milliseconds>=0);\r\n\tassert.ok(sw.isRunning);\r\n\tsw.stop();\r\n\tsw.stop();\r\n\tassert.ok(!sw.isRunning);\r\n\tsw.start();\r\n\tassert.ok(sw.isRunning);\r\n\tsw.reset();\r\n\tassert.ok(!sw.isRunning);\r\n});\r\n"]} \ No newline at end of file diff --git a/tests/mocha/System/Disposable/ObjectPool.js b/tests/mocha/System/Disposable/ObjectPool.js index 277d0fe4..f2dd097a 100644 --- a/tests/mocha/System/Disposable/ObjectPool.js +++ b/tests/mocha/System/Disposable/ObjectPool.js @@ -11,4 +11,5 @@ var assert = require('../../../../node_modules/assert/assert'); var pool = new ObjectPool_1.default(40, function () { return new Array(100); }); }); -//# sourceMappingURL=ObjectPool.js.map \ No newline at end of file + +//# sourceMappingURL=ObjectPool.js.map diff --git a/tests/mocha/System/Disposable/ObjectPool.js.map b/tests/mocha/System/Disposable/ObjectPool.js.map index d23ab9b3..6396def1 100644 --- a/tests/mocha/System/Disposable/ObjectPool.js.map +++ b/tests/mocha/System/Disposable/ObjectPool.js.map @@ -1 +1 @@ -{"version":3,"file":"ObjectPool.js","sourceRoot":"","sources":["ObjectPool.ts"],"names":[],"mappings":";;;;;;;;;IAEA,2BAAuB,iDAAiD,CAAC,CAAA;IACzE,IAAI,MAAM,GAAG,OAAO,CAAC,wCAAwC,CAAC,CAAC;IAE/D,IAAM,IAAI,GAAG,IAAI,oBAAU,CAAC,EAAE,EAAE,cAAI,OAAA,IAAI,KAAK,CAAM,GAAG,CAAC,EAAnB,CAAmB,CAAC,CAAC"} \ No newline at end of file +{"version":3,"sources":["System/Disposable/ObjectPool.ts"],"names":[],"mappings":";;;;;;;;;IAEA,2BAAuB,iDAAiD,CAAC,CAAA;IACzE,IAAI,MAAM,GAAG,OAAO,CAAC,wCAAwC,CAAC,CAAC;IAE/D,IAAM,IAAI,GAAG,IAAI,oBAAU,CAAC,EAAE,EAAE,cAAI,OAAA,IAAI,KAAK,CAAM,GAAG,CAAC,EAAnB,CAAmB,CAAC,CAAC","file":"System/Disposable/ObjectPool.js","sourcesContent":["///\r\n\r\nimport ObjectPool from \"../../../../source/System/Disposable/ObjectPool\";\r\nvar assert = require('../../../../node_modules/assert/assert');\r\n\r\nconst pool = new ObjectPool(40, ()=>new Array(100));\r\n\r\n\r\n\r\n/*\r\nimport Stopwatch from \"../../../../source/System/Diagnostics/Stopwatch\";\r\nfunction fake(o:any) {}\r\nconst TRIES:number = 1000;\r\ndescribe(\"should be performant\", ()=>\r\n{\r\n\tvar n1:number, n2:number;\r\n\tit((n1=Stopwatch.measure(()=>\r\n\t\t{\r\n\t\t\tvar a:any[], b:any[];\r\n\t\t\tfor(let i = 0; i(100);\r\n\t\t\t\tb = new Array(100);\r\n\t\t\t\tfake(a);\r\n\t\t\t\tfake(b);\r\n\t\t\t}\r\n\r\n\t\t}).milliseconds) + \" milliseconds using new only\", ()=>\r\n\t{\r\n\t\tassert.ok(true);\r\n\t});\r\n\r\n\tit((n2=Stopwatch.measure(()=>\r\n\t\t{\r\n\t\t\tvar a:any[], b:any[];\r\n\t\t\tfor(let i = 0; i\r\n\t{\r\n\t\tassert.ok(true);\r\n\t});\r\n\r\n\t// if(n1\r\n\r\nimport Integer from \"../../../source/System/Integer\";\r\nvar assert = require('../../../node_modules/assert/assert');\r\n\r\n\r\nconst TEST_FLOAT = 10.915, TEST_INT = 10, MAX = 9007199254740991;\r\n\r\ndescribe('(value)', ()=>\r\n{\r\n\tit('should convert float number to integer without rounding', ()=>\r\n\t{\r\n\t\tassert.equal(\r\n\t\t\tInteger(TEST_FLOAT),\r\n\t\t\tTEST_INT);\r\n\t});\r\n});\r\n\r\ndescribe('.as32Bit(value)', ()=>\r\n{\r\n\tit('should convert float number to integer without rounding', ()=>\r\n\t{\r\n\t\tassert.equal(\r\n\t\t\tInteger.as32Bit(TEST_FLOAT),\r\n\t\t\tTEST_INT);\r\n\t});\r\n\r\n\tit('should return null if not 32', ()=>\r\n\t{\r\n\t\tassert.equal(\r\n\t\t\tInteger.as32Bit(MAX),\r\n\t\t\tnull);\r\n\t});\r\n});\r\n\r\ndescribe('.is(value)', ()=>\r\n{\r\n\tit('should detect a number that is not an integer', ()=>\r\n\t{\r\n\t\tfunction baseTests(fn:(n:number)=>boolean):void {\r\n\r\n\t\t\tassert.equal(\r\n\t\t\t\tfn(\"1\"),\r\n\t\t\t\tfalse);\r\n\r\n\t\t\tassert.equal(\r\n\t\t\t\tfn(\"test\"),\r\n\t\t\t\tfalse);\r\n\r\n\t\t\tassert.equal(\r\n\t\t\t\tfn(NaN),\r\n\t\t\t\tfalse);\r\n\r\n\t\t\tassert.equal(\r\n\t\t\t\tfn(Infinity),\r\n\t\t\t\tfalse);\r\n\r\n\t\t\tassert.equal(\r\n\t\t\t\tfn(-Infinity),\r\n\t\t\t\tfalse);\r\n\r\n\t\t\tassert.equal(\r\n\t\t\t\tfn(TEST_FLOAT),\r\n\t\t\t\tfalse);\r\n\r\n\t\t\tassert.equal(\r\n\t\t\t\tfn(-TEST_FLOAT),\r\n\t\t\t\tfalse);\r\n\t\t}\r\n\r\n\t\tbaseTests(Integer.is);\r\n\t\tbaseTests(Integer.is32Bit);\r\n\r\n\t\tassert.equal(\r\n\t\t\tInteger.is32Bit(Integer.MAX_32_BIT+1),\r\n\t\t\tfalse);\r\n\t});\r\n\r\n\tit('should detect a number that is an integer', ()=>\r\n\t{\r\n\t\tfunction baseTests(fn:(n:number)=>boolean):void {\r\n\r\n\t\t\tassert.equal(\r\n\t\t\t\tfn(-0),\r\n\t\t\t\ttrue);\r\n\r\n\t\t\tassert.equal(\r\n\t\t\t\tfn(-TEST_INT),\r\n\t\t\t\ttrue);\r\n\r\n\t\t\tassert.equal(\r\n\t\t\t\tfn(TEST_INT),\r\n\t\t\t\ttrue);\r\n\r\n\t\t\tassert.equal(\r\n\t\t\t\tfn(Integer.MAX_32_BIT),\r\n\t\t\t\ttrue);\r\n\r\n\t\t\tassert.equal(\r\n\t\t\t\tfn(-Integer.MAX_32_BIT),\r\n\t\t\t\ttrue);\r\n\t\t}\r\n\r\n\t\tbaseTests(Integer.is);\r\n\t\tbaseTests(Integer.is32Bit);\r\n\r\n\t\tassert.equal(\r\n\t\t\tInteger.is(Integer.MAX_32_BIT+1),\r\n\t\t\ttrue);\r\n\r\n\t\tassert.equal(\r\n\t\t\tInteger.is(-MAX),\r\n\t\t\ttrue);\r\n\r\n\t\tassert.equal(\r\n\t\t\tInteger.is(MAX),\r\n\t\t\ttrue);\r\n\r\n\t});\r\n});\r\n\r\n\r\ndescribe('.assert(value)', ()=>\r\n{\r\n\tit('should detect a number that is not an integer', ()=>\r\n\t{\r\n\t\tassert.throws(()=>\r\n\t\t{\r\n\t\t\tInteger.assert(TEST_FLOAT);\r\n\t\t});\r\n\t});\r\n\r\n\tit('should detect a number that is an integer', ()=>\r\n\t{\r\n\t\tassert.equal(\r\n\t\t\tInteger.assert(TEST_INT),\r\n\t\t\ttrue);\r\n\t});\r\n});\r\n"]} \ No newline at end of file diff --git a/tests/mocha/System/Tasks/TaskHandler.js b/tests/mocha/System/Tasks/TaskHandler.js index cc48b617..1a0b8025 100644 --- a/tests/mocha/System/Tasks/TaskHandler.js +++ b/tests/mocha/System/Tasks/TaskHandler.js @@ -21,4 +21,5 @@ }); }); }); -//# sourceMappingURL=TaskHandler.js.map \ No newline at end of file + +//# sourceMappingURL=TaskHandler.js.map diff --git a/tests/mocha/System/Tasks/TaskHandler.js.map b/tests/mocha/System/Tasks/TaskHandler.js.map index bff12c79..cc11c6e0 100644 --- a/tests/mocha/System/Tasks/TaskHandler.js.map +++ b/tests/mocha/System/Tasks/TaskHandler.js.map @@ -1 +1 @@ -{"version":3,"file":"TaskHandler.js","sourceRoot":"","sources":["TaskHandler.ts"],"names":[],"mappings":";;;;;;;;;IAEA,4BAAwB,6CAA6C,CAAC,CAAA;IACtE,0BAAsB,qCAAqC,CAAC,CAAA;IAC5D,IAAI,MAAM,GAAG,OAAO,CAAC,wCAAwC,CAAC,CAAC;IAE/D,QAAQ,CAAC,KAAK,EAAC;QACd,EAAE,CAAC,cAAc,EAAC;YACjB,MAAM,CAAC,MAAM,CAAC;gBACb,IAAI,qBAAW,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,YAAY,CAAC;gBACnB,CAAC,IAAI,qBAAW,CAAC,mBAAS,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YAC9C,CAAC,CAAC,CAAC;QAEJ,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC"} \ No newline at end of file +{"version":3,"sources":["System/Tasks/TaskHandler.ts"],"names":[],"mappings":";;;;;;;;;IAEA,4BAAwB,6CAA6C,CAAC,CAAA;IACtE,0BAAsB,qCAAqC,CAAC,CAAA;IAC5D,IAAI,MAAM,GAAG,OAAO,CAAC,wCAAwC,CAAC,CAAC;IAE/D,QAAQ,CAAC,KAAK,EAAC;QACd,EAAE,CAAC,cAAc,EAAC;YACjB,MAAM,CAAC,MAAM,CAAC;gBACb,IAAI,qBAAW,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,YAAY,CAAC;gBACnB,CAAC,IAAI,qBAAW,CAAC,mBAAS,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YAC9C,CAAC,CAAC,CAAC;QAEJ,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC","file":"System/Tasks/TaskHandler.js","sourcesContent":["///\r\n\r\nimport TaskHandler from \"../../../../source/System/Tasks/TaskHandler\";\r\nimport Functions from \"../../../../source/System/Functions\";\r\nvar assert = require('../../../../node_modules/assert/assert');\r\n\r\ndescribe('new',()=>{\r\n\tit(\"should throw\",()=>{\r\n\t\tassert.throws(()=>{\r\n\t\t\tnew TaskHandler(null);\r\n\t\t});\r\n\t\tassert.doesNotThrow(()=>{\r\n\t\t\t(new TaskHandler(Functions.Blank)).dispose();\r\n\t\t});\r\n\r\n\t});\r\n});"]} \ No newline at end of file diff --git a/tests/mocha/System/Text/RegularExpressions.js b/tests/mocha/System/Text/RegularExpressions.js index b958941f..cf27ec3f 100644 --- a/tests/mocha/System/Text/RegularExpressions.js +++ b/tests/mocha/System/Text/RegularExpressions.js @@ -80,4 +80,5 @@ }); }); }); -//# sourceMappingURL=RegularExpressions.js.map \ No newline at end of file + +//# sourceMappingURL=RegularExpressions.js.map diff --git a/tests/mocha/System/Text/RegularExpressions.js.map b/tests/mocha/System/Text/RegularExpressions.js.map index 39932feb..272fe0b9 100644 --- a/tests/mocha/System/Text/RegularExpressions.js.map +++ b/tests/mocha/System/Text/RegularExpressions.js.map @@ -1 +1 @@ -{"version":3,"file":"RegularExpressions.js","sourceRoot":"","sources":["RegularExpressions.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"sources":["System/Text/RegularExpressions.ts"],"names":[],"mappings":"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","file":"System/Text/RegularExpressions.js","sourcesContent":["///\r\n\r\nimport RegexMatchEnumerator from \"../../../../source/System/Text/RegexMatchEnumerator\";\r\nimport Regex, {Match} from \"../../../../source/System/Text/RegularExpressions\";\r\nconst assert = require('../../../../node_modules/assert/assert');\r\n\r\nconst str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';\r\nconst regex = new Regex(\"(?[A-E]+)\", [\"i\"]);\r\nconst regex2 = new Regex(/([A-E]+)/im);\r\nconst regex3 = new Regex(/([A-E]+)/);\r\nconst regex4 = new Regex(/A\tB C D E/,\"i\",\"w\");\r\nconst pattern = \"([A-E]+)\";\r\n\r\ndescribe(\"Regex\", ()=>\r\n{\r\n\r\n\tdescribe(\"new\", ()=>\r\n\t{\r\n\t\tit(\"should throw\", ()=>\r\n\t\t{\r\n\t\t\tassert.throws(()=>new Regex(null));\r\n\t\t});\r\n\t});\r\n\r\n\tdescribe(\".isMatch(input)\", ()=>\r\n\t{\r\n\r\n\t\tit(\"should indicate true for match\", ()=>\r\n\t\t{\r\n\t\t\tassert.ok(regex.isMatch(str));\r\n\t\t\tassert.ok(Regex.isMatch(str, pattern, [\"i\"]));\r\n\t\t});\r\n\r\n\t\tit(\"should indicate false for non-match\", ()=>\r\n\t\t{\r\n\t\t\tassert.ok(!regex.isMatch(\"ZYXWV\"));\r\n\t\t\tassert.ok(!Regex.isMatch(\"ZYXWV\", pattern, [\"i\"]));\r\n\t\t});\r\n\r\n\t});\r\n\r\n\tdescribe(\".match(input)\", ()=>\r\n\t{\r\n\r\n\t\tit(\"should match correctly\", ()=>\r\n\t\t{\r\n\r\n\t\t\tvar m = regex.match(str);\r\n\t\t\tassert.equal(m.value, \"ABCDE\");\r\n\t\t\tassert.equal(m.index, 0);\r\n\t\t\tassert.equal(m.namedGroups[\"first\"].value, \"ABCDE\");\r\n\r\n\t\t\tm = regex.match(str, 20);\r\n\t\t\tassert.equal(m.value, \"abcde\");\r\n\t\t\tassert.equal(m.index, 26);\r\n\t\t\tassert.equal(m.namedGroups[\"first\"].value, \"abcde\");\r\n\t\t});\r\n\r\n\t});\r\n\r\n\tdescribe(\".matches(input)\", ()=>\r\n\t{\r\n\r\n\t\tit(\"should capture all instances\", ()=>\r\n\t\t{\r\n\t\t\tfunction check(m:Match[]):void {\r\n\t\t\t\tassert.equal(m.length, 2);\r\n\t\t\t\tassert.equal(m[0].value, \"ABCDE\");\r\n\t\t\t\tassert.equal(m[0].index, 0);\r\n\t\t\t\tassert.equal(m[1].value, \"abcde\");\r\n\t\t\t\tassert.equal(m[1].index, 26);\r\n\t\t\t}\r\n\t\t\tcheck(regex.matches(str));\r\n\t\t\tcheck(regex4.matches(str));\r\n\t\t});\r\n\r\n\t});\r\n\r\n\tdescribe(\".replace(input, x)\", ()=>\r\n\t{\r\n\r\n\t\tit(\"should replace requested instances\", ()=>\r\n\t\t{\r\n\t\t\t//noinspection SpellCheckingInspection\r\n\t\t\tassert.equal(regex.replace(str, \"XXX\"), \"XXXFGHIJKLMNOPQRSTUVWXYZXXXfghijklmnopqrstuvwxyz\");\r\n\t\t\tassert.equal(Regex.replace(str, pattern, \"XXX\",['i']), \"XXXFGHIJKLMNOPQRSTUVWXYZXXXfghijklmnopqrstuvwxyz\");\r\n\t\t\t//noinspection SpellCheckingInspection\r\n\t\t\tassert.equal(regex.replace(str, \"\"), \"FGHIJKLMNOPQRSTUVWXYZfghijklmnopqrstuvwxyz\");\r\n\t\t\tassert.equal(regex.replace(str, null), str);\r\n\t\t\t//noinspection SpellCheckingInspection\r\n\t\t\tassert.equal(regex.replace(str, (x,i)=>i), \"0FGHIJKLMNOPQRSTUVWXYZ1fghijklmnopqrstuvwxyz\");\r\n\t\t});\r\n\r\n\t});\r\n\r\n});\r\n\r\ndescribe(\"RegexMatchEnumerator\",()=>{\r\n\tit(\"should enumerate properly\",()=>{\r\n\t\tvar m = RegexMatchEnumerator(str,regex);\r\n\t\tfunction check(v:Match, value:string, index:number):void{\r\n\t\t\tassert.equal(v.value, value);\r\n\t\t\tassert.equal(v.index, index);\r\n\t\t}\r\n\t\tcheck(m.nextValue(),\"ABCDE\",0);\r\n\t\tcheck(m.nextValue(),\"abcde\",26);\r\n\t\tassert.ok(!m.moveNext());\r\n\t})\r\n});\r\n"]} \ No newline at end of file diff --git a/tests/mocha/System/Text/Utility.js b/tests/mocha/System/Text/Utility.js index 8948399a..5df2ded5 100644 --- a/tests/mocha/System/Text/Utility.js +++ b/tests/mocha/System/Text/Utility.js @@ -36,4 +36,5 @@ }); }); }); -//# sourceMappingURL=Utility.js.map \ No newline at end of file + +//# sourceMappingURL=Utility.js.map diff --git a/tests/mocha/System/Text/Utility.js.map b/tests/mocha/System/Text/Utility.js.map index 8f756404..5878d47d 100644 --- a/tests/mocha/System/Text/Utility.js.map +++ b/tests/mocha/System/Text/Utility.js.map @@ -1 +1 @@ -{"version":3,"file":"Utility.js","sourceRoot":"","sources":["Utility.ts"],"names":[],"mappings":";;;;;;;;;IAEA,IAAI,MAAM,GAAG,OAAO,CAAC,wCAAwC,CAAC,CAAC;IAE/D,IAAY,WAAW,WAAM,wCAAwC,CAAC,CAAA;IAEtE,IAAI,EAAE,GAAG,QAAQ,CAAC;IAClB,IAAI,EAAE,GAAG,cAAc,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAC;QAClB,EAAE,CAAC,8DAA8D,EAAC;YACjE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAC,IAAI,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,4EAA4E,EAAC;YAC/E,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAC,QAAQ,EAAC,IAAI,CAAC,EAAC,IAAI,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2EAA2E,EAAC;YAC9E,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAC,CAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,CAAC,CAAC,EAAC,IAAI,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAC;YAC1D,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAC,EAAE,CAAC,EAAC,EAAE,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,wBAAwB,EAAC;QACjC,EAAE,CAAC,qCAAqC,EAAC;YACxC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAC9B,gDAAgD,EAAC,QAAQ,EAAC,CAAC,CAAC,EAC5D,4CAA4C,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0BAA0B,EAAC;QACnC,EAAE,CAAC,qCAAqC,EAAC;YACxC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAChC,qDAAqD,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,QAAQ,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EACzF,iEAAiE,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC"} \ No newline at end of file +{"version":3,"sources":["System/Text/Utility.ts"],"names":[],"mappings":";;;;;;;;;IAEA,IAAI,MAAM,GAAG,OAAO,CAAC,wCAAwC,CAAC,CAAC;IAE/D,IAAY,WAAW,WAAM,wCAAwC,CAAC,CAAA;IAEtE,IAAI,EAAE,GAAG,QAAQ,CAAC;IAClB,IAAI,EAAE,GAAG,cAAc,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAC;QAClB,EAAE,CAAC,8DAA8D,EAAC;YACjE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAC,IAAI,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,4EAA4E,EAAC;YAC/E,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAC,QAAQ,EAAC,IAAI,CAAC,EAAC,IAAI,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2EAA2E,EAAC;YAC9E,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAC,CAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,CAAC,CAAC,EAAC,IAAI,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAC;YAC1D,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAC,EAAE,CAAC,EAAC,EAAE,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,wBAAwB,EAAC;QACjC,EAAE,CAAC,qCAAqC,EAAC;YACxC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAC9B,gDAAgD,EAAC,QAAQ,EAAC,CAAC,CAAC,EAC5D,4CAA4C,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0BAA0B,EAAC;QACnC,EAAE,CAAC,qCAAqC,EAAC;YACxC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAChC,qDAAqD,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,QAAQ,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EACzF,iEAAiE,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC","file":"System/Text/Utility.js","sourcesContent":["///\r\n\r\nvar assert = require('../../../../node_modules/assert/assert');\r\n\r\nimport * as TextUtility from \"../../../../source/System/Text/Utility\";\r\n\r\nvar s1 = \"\t HI \";\r\nvar s2 = \".-.-xHIX//\\\\\";\r\ndescribe('.trim()',()=>{\r\n\tit(\"should leave a string without leading or trailing whitespace\",()=>{\r\n\t\tassert.equal(TextUtility.trim(s1),\"HI\");\r\n\t});\r\n\tit(\"should leave a string without leading or trailing trim characters (string)\",()=>{\r\n\t\tassert.equal(TextUtility.trim(s2,\".-/\\\\x\",true),\"HI\");\r\n\t});\r\n\r\n\tit(\"should leave a string without leading or trailing trim characters (array)\",()=>{\r\n\t\tassert.equal(TextUtility.trim(s2,[\".\",\"-\",\"/\",\"\\\\\",\"x\",\"X\"]),\"HI\");\r\n\t});\r\n\r\n\tit(\"should leave a string untouched if no trim characters\",()=>{\r\n\t\tassert.equal(TextUtility.trim(s2,\"\"),s2);\r\n\t});\r\n});\r\n\r\ndescribe(\".format(source,..args)\",()=>{\r\n\tit(\"should replace contents of a string\",()=>{\r\n\t\tassert.equal(TextUtility.format(\r\n\t\t\t\"Hello, my name is {0} and I'm number {length}.\",\"George\",2),\r\n\t\t\t\"Hello, my name is George and I'm number 2.\");\r\n\t});\r\n});\r\n\r\ndescribe(\".supplant(source,..args)\",()=>{\r\n\tit(\"should replace contents of a string\",()=>{\r\n\t\tassert.equal(TextUtility.supplant(\r\n\t\t\t\"Hello, my name is {name} and I like {like}. {x} {y}\",{name:\"George\",like:\"cheese\",x:{}}),\r\n\t\t\t\"Hello, my name is George and I like cheese. [object Object] {y}\");\r\n\t});\r\n});"]} \ No newline at end of file diff --git a/tests/mocha/System/Time/ClockTime.js b/tests/mocha/System/Time/ClockTime.js index e9841d47..bfd41d0d 100644 --- a/tests/mocha/System/Time/ClockTime.js +++ b/tests/mocha/System/Time/ClockTime.js @@ -12,10 +12,10 @@ var assert = require('../../../../node_modules/assert/assert'); var days = Integer_1.default.random(365), hour = Integer_1.default.random(24), minute = Integer_1.default.random(60), second = Integer_1.default.random(60), millisecond = Integer_1.default.random(1000); var c1 = new ClockTime_1.default(hour, minute, second, millisecond); - var c2 = new ClockTime_1.default(days * HowMany.Milliseconds.Per.Day - + hour * HowMany.Milliseconds.Per.Hour - + minute * HowMany.Milliseconds.Per.Minute - + second * HowMany.Milliseconds.Per.Second + var c2 = new ClockTime_1.default(days * 86400000 + + hour * 3600000 + + minute * 60000 + + second * 1000 + millisecond); it('should match constructor values', function () { assert.equal(c1.hour, hour); @@ -31,4 +31,5 @@ assert.equal(c2.millisecond, millisecond); }); }); -//# sourceMappingURL=ClockTime.js.map \ No newline at end of file + +//# sourceMappingURL=ClockTime.js.map diff --git a/tests/mocha/System/Time/ClockTime.js.map b/tests/mocha/System/Time/ClockTime.js.map index e6e29eb6..297f1651 100644 --- a/tests/mocha/System/Time/ClockTime.js.map +++ b/tests/mocha/System/Time/ClockTime.js.map @@ -1 +1 @@ -{"version":3,"file":"ClockTime.js","sourceRoot":"","sources":["ClockTime.ts"],"names":[],"mappings":";;;;;;;;;IAGA,0BAAsB,0CAA0C,CAAC,CAAA;IACjE,wBAAoB,mCAAmC,CAAC,CAAA;IACxD,IAAI,MAAM,GAAG,OAAO,CAAC,wCAAwC,CAAC,CAAC;IAE/D,IACA,IAAI,GAAU,iBAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EACjC,IAAI,GAAU,iBAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAChC,MAAM,GAAQ,iBAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAChC,MAAM,GAAQ,iBAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAChC,WAAW,GAAG,iBAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEnC,IAAI,EAAE,GAAG,IAAI,mBAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC1D,IAAI,EAAE,GAAG,IAAI,mBAAS,CACrB,IAAI,GAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG;UAC/B,IAAI,GAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI;UAClC,MAAM,GAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM;UACtC,MAAM,GAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM;UACtC,WAAW,CAAC,CAAC;IAEhB,EAAE,CAAC,iCAAiC,EAAE;QAErC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5B,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE;QAEhC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5B,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5B,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC"} \ No newline at end of file +{"version":3,"sources":["System/Time/ClockTime.ts"],"names":[],"mappings":";;;;;;;;;IAGA,0BAAsB,0CAA0C,CAAC,CAAA;IAEjE,wBAAoB,mCAAmC,CAAC,CAAA;IACxD,IAAI,MAAM,GAAG,OAAO,CAAC,wCAAwC,CAAC,CAAC;IAE/D,IACA,IAAI,GAAU,iBAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EACjC,IAAI,GAAU,iBAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAChC,MAAM,GAAQ,iBAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAChC,MAAM,GAAQ,iBAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAChC,WAAW,GAAG,iBAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEnC,IAAI,EAAE,GAAG,IAAI,mBAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC1D,IAAI,EAAE,GAAG,IAAI,mBAAS,CACrB,IAAI,GAAC,QAAoB;UACvB,IAAI,GAAC,OAAqB;UAC1B,MAAM,GAAC,KAAuB;UAC9B,MAAM,GAAC,IAAuB;UAC9B,WAAW,CAAC,CAAC;IAEhB,EAAE,CAAC,iCAAiC,EAAE;QAErC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5B,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE;QAEhC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5B,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5B,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC","file":"System/Time/ClockTime.js","sourcesContent":["///\r\n///\r\n\r\nimport ClockTime from \"../../../../source/System/Time/ClockTime\";\r\nimport {Milliseconds} from \"../../../../source/System/Time/HowMany\";\r\nimport Integer from \"../../../../source/System/Integer\";\r\nvar assert = require('../../../../node_modules/assert/assert');\r\n\r\nconst\r\ndays = Integer.random(365),\r\nhour = Integer.random(24),\r\nminute = Integer.random(60),\r\nsecond = Integer.random(60),\r\nmillisecond = Integer.random(1000);\r\n\r\nvar c1 = new ClockTime(hour, minute, second, millisecond);\r\nvar c2 = new ClockTime(\r\n\tdays*Milliseconds.Per.Day\r\n\t+ hour*Milliseconds.Per.Hour\r\n\t+ minute*Milliseconds.Per.Minute\r\n\t+ second*Milliseconds.Per.Second\r\n\t+ millisecond);\r\n\r\nit('should match constructor values', ()=>\r\n{\r\n\tassert.equal(c1.hour, hour);\r\n\tassert.equal(c1.minute, minute);\r\n\tassert.equal(c1.second, second);\r\n\tassert.equal(c1.millisecond, millisecond);\r\n});\r\n\r\nit('should match summed values', ()=>\r\n{\r\n\tassert.equal(c2.days, days);\r\n\tassert.equal(c2.hour, hour);\r\n\tassert.equal(c2.minute, minute);\r\n\tassert.equal(c2.second, second);\r\n\tassert.equal(c2.millisecond, millisecond);\r\n});\r\n"]} \ No newline at end of file diff --git a/tests/mocha/System/Time/ClockTime.ts b/tests/mocha/System/Time/ClockTime.ts index 9a9df43f..74a2bed1 100644 --- a/tests/mocha/System/Time/ClockTime.ts +++ b/tests/mocha/System/Time/ClockTime.ts @@ -2,6 +2,7 @@ /// import ClockTime from "../../../../source/System/Time/ClockTime"; +import {Milliseconds} from "../../../../source/System/Time/HowMany"; import Integer from "../../../../source/System/Integer"; var assert = require('../../../../node_modules/assert/assert'); @@ -14,10 +15,10 @@ millisecond = Integer.random(1000); var c1 = new ClockTime(hour, minute, second, millisecond); var c2 = new ClockTime( - days*HowMany.Milliseconds.Per.Day - + hour*HowMany.Milliseconds.Per.Hour - + minute*HowMany.Milliseconds.Per.Minute - + second*HowMany.Milliseconds.Per.Second + days*Milliseconds.Per.Day + + hour*Milliseconds.Per.Hour + + minute*Milliseconds.Per.Minute + + second*Milliseconds.Per.Second + millisecond); it('should match constructor values', ()=> diff --git a/tests/mocha/System/Time/DateTime.js b/tests/mocha/System/Time/DateTime.js index 21b97b78..ca45bb59 100644 --- a/tests/mocha/System/Time/DateTime.js +++ b/tests/mocha/System/Time/DateTime.js @@ -39,4 +39,5 @@ }); }); }); -//# sourceMappingURL=DateTime.js.map \ No newline at end of file + +//# sourceMappingURL=DateTime.js.map diff --git a/tests/mocha/System/Time/DateTime.js.map b/tests/mocha/System/Time/DateTime.js.map index b5b984b1..829dc14b 100644 --- a/tests/mocha/System/Time/DateTime.js.map +++ b/tests/mocha/System/Time/DateTime.js.map @@ -1 +1 @@ -{"version":3,"file":"DateTime.js","sourceRoot":"","sources":["DateTime.ts"],"names":[],"mappings":";;;;;;;;;IAEA,yBAAqB,yCAAyC,CAAC,CAAA;IAC/D,IAAI,MAAM,GAAG,OAAO,CAAC,wCAAwC,CAAC,CAAC;IAK/D,QAAQ,CAAC,8CAA8C,EAAC;QAGvD,IAAM,SAAS,GAAG,IAAI,CAAC;QACvB,IAAM,YAAY,GAAG;YACpB,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;SACF,CAAC;QAEF,EAAE,CAAC,uCAAuC,EAAE;YAE3C,GAAG,CAAA,CAAC,IAAI,CAAC,GAAC,SAAS,EAAC,CAAC,GAAC,IAAI,EAAC,CAAC,EAAE,EAAE,CAAC;gBAChC,GAAG,CAAA,CAAC,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,EAAE,EAAC,CAAC,EAAE,EAAE,CAAC;oBACtB,EAAE,CAAA,CAAC,CAAC,IAAE,CAAC,IAAI,kBAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACnC,MAAM,CAAC,KAAK,CAAC,kBAAQ,CAAC,WAAW,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC;oBAC5C,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACP,MAAM,CAAC,KAAK,CAAC,kBAAQ,CAAC,WAAW,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;oBACzD,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC,CAAC,CAAC;IAEJ,CAAC,CAAC,CAAC"} \ No newline at end of file +{"version":3,"sources":["System/Time/DateTime.ts"],"names":[],"mappings":";;;;;;;;;IAEA,yBAAqB,yCAAyC,CAAC,CAAA;IAC/D,IAAI,MAAM,GAAG,OAAO,CAAC,wCAAwC,CAAC,CAAC;IAK/D,QAAQ,CAAC,8CAA8C,EAAC;QAGvD,IAAM,SAAS,GAAG,IAAI,CAAC;QACvB,IAAM,YAAY,GAAG;YACpB,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;SACF,CAAC;QAEF,EAAE,CAAC,uCAAuC,EAAE;YAE3C,GAAG,CAAA,CAAC,IAAI,CAAC,GAAC,SAAS,EAAC,CAAC,GAAC,IAAI,EAAC,CAAC,EAAE,EAAE,CAAC;gBAChC,GAAG,CAAA,CAAC,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,EAAE,EAAC,CAAC,EAAE,EAAE,CAAC;oBACtB,EAAE,CAAA,CAAC,CAAC,IAAE,CAAC,IAAI,kBAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACnC,MAAM,CAAC,KAAK,CAAC,kBAAQ,CAAC,WAAW,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC;oBAC5C,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACP,MAAM,CAAC,KAAK,CAAC,kBAAQ,CAAC,WAAW,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;oBACzD,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC,CAAC,CAAC;IAEJ,CAAC,CAAC,CAAC","file":"System/Time/DateTime.js","sourcesContent":["///\r\n\r\nimport DateTime from '../../../../source/System/Time/DateTime';\r\nvar assert = require('../../../../node_modules/assert/assert');\r\n\r\n\r\n\r\n\r\ndescribe(\".daysInMonth(year,month) & .isLeapYear(year)\",()=>{\r\n\r\n\r\n\tconst startYear = 2000;\r\n\tconst daysPerMonth = [\r\n\t\t31, //January,\r\n\t\t28,//February,\r\n\t\t31,//March,\r\n\t\t30,//April,\r\n\t\t31,//May,\r\n\t\t30,//June,\r\n\t\t31,//July,\r\n\t\t31,//August,\r\n\t\t30,//September,\r\n\t\t31,//October,\r\n\t\t30,//November,\r\n\t\t31//December\r\n\t];\r\n\r\n\tit('should match actual Gregorian values.', ()=>\r\n\t{\r\n\t\tfor(let y=startYear;y<2004;y++) {\r\n\t\t\tfor(let m=0;m<12;m++) {\r\n\t\t\t\tif(m==1 && DateTime.isLeapYear(y)) {\r\n\t\t\t\t\tassert.equal(DateTime.daysInMonth(y,m),29);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tassert.equal(DateTime.daysInMonth(y,m),daysPerMonth[m]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n});\r\n\r\n"]} \ No newline at end of file diff --git a/tests/mocha/System/Uri/Uri.js b/tests/mocha/System/Uri/Uri.js index aee09930..a92fc14d 100644 --- a/tests/mocha/System/Uri/Uri.js +++ b/tests/mocha/System/Uri/Uri.js @@ -8,7 +8,7 @@ })(function (require, exports) { "use strict"; var Uri_1 = require("../../../../source/System/Uri/Uri"); - var Scheme_1 = require("../../../../source/System/Uri/Scheme"); + var Scheme = require("../../../../source/System/Uri/Scheme"); var Functions_1 = require("../../../../source/System/Functions"); var assert = require('../../../../node_modules/assert/assert'); var pathAfterRoot = 'one/two/three.html'; @@ -20,7 +20,7 @@ it('should equal', function () { assert.equal((new Uri_1.default(null, '', '', null, '', null)).scheme, null); assert.equal((new Uri_1.default("http", '', '', null, '', null)).scheme, "http"); - assert.equal((new Uri_1.default(Scheme_1.default.http, '', '', null, '', null)).scheme, "http"); + assert.equal((new Uri_1.default(Scheme.HTTP, '', '', null, '', null)).scheme, "http"); }); it('should throw', function () { assert.throws(function () { new Uri_1.default(64, '', '', null, '', null); }); @@ -54,7 +54,7 @@ }); it('should allow null', function () { assert.equal((new Uri_1.default(null, '', '', null, '', null)).path, null); - assert.equal((new Uri_1.default(Scheme_1.default.http, '', '', null, '', null)).path, null); + assert.equal((new Uri_1.default(Scheme.HTTP, '', '', null, '', null)).path, null); assert.equal((new Uri_1.default('http', '', '', null, '', null)).path, null); }); }); @@ -64,7 +64,7 @@ }); it('should allow null', function () { assert.equal((new Uri_1.default(null, '', '', null, '', null)).path, null); - assert.equal((new Uri_1.default(Scheme_1.default.http, '', '', null, '', null)).path, null); + assert.equal((new Uri_1.default(Scheme.HTTP, '', '', null, '', null)).path, null); assert.equal((new Uri_1.default('http', '', '', null, '', null)).path, null); }); }); @@ -199,4 +199,5 @@ }); }); }); -//# sourceMappingURL=Uri.js.map \ No newline at end of file + +//# sourceMappingURL=Uri.js.map diff --git a/tests/mocha/System/Uri/Uri.js.map b/tests/mocha/System/Uri/Uri.js.map index c3bdb947..0c0a67ef 100644 --- a/tests/mocha/System/Uri/Uri.js.map +++ b/tests/mocha/System/Uri/Uri.js.map @@ -1 +1 @@ -{"version":3,"file":"Uri.js","sourceRoot":"","sources":["Uri.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"sources":["System/Uri/Uri.ts"],"names":[],"mappings":"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","file":"System/Uri/Uri.js","sourcesContent":["///\r\n\r\nimport Uri from \"../../../../source/System/Uri/Uri\";\r\nimport * as Scheme from \"../../../../source/System/Uri/Scheme\";\r\nimport Functions from \"../../../../source/System/Functions\";\r\nvar assert = require('../../../../node_modules/assert/assert');\r\n\r\nconst pathAfterRoot= 'one/two/three.html';\r\nconst path = '/'+pathAfterRoot;\r\nconst params = [['four','five'],['six','seven']];\r\nconst query = '?'+params[0].join('=')+'&' + params[1].join('=');\r\n\r\n\r\nvar u = Uri.from(path + query);\r\n\r\ndescribe('.scheme', ()=>\r\n{\r\n\tit('should equal',()=>\r\n\t{\r\n\t\tassert.equal((new Uri(null,'','',null,'',null)).scheme,null);\r\n\t\tassert.equal((new Uri(\"http\",'','',null,'',null)).scheme,\"http\");\r\n\t\tassert.equal((new Uri(Scheme.HTTP,'','',null,'',null)).scheme,\"http\");\r\n\t});\r\n\r\n\tit('should throw',()=>\r\n\t{\r\n\t\tassert.throws(()=>{new Uri(64,'','',null,'',null);});\r\n\t});\r\n});\r\n\r\ndescribe('.port', ()=>\r\n{\r\n\tit('should equal',()=>\r\n\t{\r\n\t\tvar d = 'x.com', port = 80;\r\n\t\tassert.equal((new Uri(null,'',d,0,'',null)).port,0);\r\n\t\tassert.equal((new Uri(null,'',d,null,'',null)).port,null);\r\n\t\tassert.equal((new Uri(null,'',d,'','',null)).port,null);\r\n\t\tassert.equal((new Uri(null,'',d,NaN,'',null)).port,null);\r\n\t\tassert.equal((new Uri(null,'',d,port,'',null)).port,port);\r\n\t\tassert.equal((new Uri(null,'',d,(port+''),'',null)).port,port);\r\n\t});\r\n\tit('should throw',()=>\r\n\t{\r\n\t\tassert.throws(()=>{new Uri(null,'','','foo','',null);});\r\n\t\tassert.throws(()=>{new Uri(null,'','',{},'',null);});\r\n\t\tassert.throws(()=>{new Uri(null,'','',-1,'',null);});\r\n\t\tassert.throws(()=>{new Uri(null,'','',Infinity,'',null);});\r\n\t});\r\n\r\n});\r\n\r\ndescribe('.path', ()=>\r\n{\r\n\tit('should equal ' + path, ()=>\r\n\t{\r\n\t\tassert.equal(u.path, path);\r\n\t\tassert.equal((new Uri(null,null,null,null,pathAfterRoot)).path, pathAfterRoot);\r\n\t\tassert.equal(Uri.toString({\r\n\t\t\tpath:pathAfterRoot,\r\n\t\t\tfragment:'#x'\r\n\t\t}), pathAfterRoot+\"#x\");\r\n\t});\r\n\r\n\tit('should allow null',()=>\r\n\t{\r\n\t\tassert.equal((new Uri(null,'','',null,'',null)).path,null);\r\n\t\tassert.equal((new Uri(Scheme.HTTP,'','',null,'',null)).path,null);\r\n\t\tassert.equal((new Uri('http','','',null,'',null)).path,null);\r\n\t});\r\n});\r\n\r\ndescribe('.fragment', ()=>\r\n{\r\n\tit('should equal', ()=>\r\n\t{\r\n\t\tassert.equal(u.path, path);\r\n\t});\r\n\r\n\tit('should allow null',()=>\r\n\t{\r\n\t\tassert.equal((new Uri(null,'','',null,'',null)).path,null);\r\n\t\tassert.equal((new Uri(Scheme.HTTP,'','',null,'',null)).path,null);\r\n\t\tassert.equal((new Uri('http','','',null,'',null)).path,null);\r\n\t});\r\n});\r\n\r\ndescribe('.from(uri)', ()=>\r\n{\r\n\tit('should be equal', ()=>\r\n\t{\r\n\t\tvar c1 = Uri.from(u);\r\n\t\tassert.ok(u.equals(c1));\r\n\r\n\t\tvar c2 = Uri.from({},u);\r\n\t\tassert.ok(u.equals(c2));\r\n\r\n\t});\r\n});\r\n\r\ndescribe('.updateQuery(query)', ()=>\r\n{\r\n\tit('should be equal', ()=>\r\n\t{\r\n\t\tvar c = u.updateQuery(\"x=y\");\r\n\t\tassert.equal(c.queryParams[\"x\"],\"y\");\r\n\t});\r\n});\r\n\r\ndescribe('.pathSegments', ()=>\r\n{\r\n\tit('should be equal', ()=>\r\n\t{\r\n\t\tassert.equal(u.pathSegments.join(''),u.path);\r\n\t});\r\n});\r\n\r\ndescribe('.getAuthority(uri)', ()=>\r\n{\r\n\tit('should be equal', ()=>\r\n\t{\r\n\t\tassert.equal(Uri.getAuthority({host:'a',port:80,userInfo:'b',path:'xxx'}),\"//b@a:80\");\r\n\t\tassert.equal(Uri.getAuthority({host:'a',port:80,path:'xxx'}),\"//a:80\");\r\n\t\tassert.equal(Uri.getAuthority({host:'a',userInfo:'b',path:'xxx'}),\"//b@a\");\r\n\t\tassert.equal(Uri.getAuthority({host:'a'}),\"//a\");\r\n\t});\r\n\r\n\tit('should throw', ()=>\r\n\t{\r\n\t\tassert.throws(()=>{\r\n\t\t\tUri.getAuthority({userInfo:'b'});\r\n\t\t});\r\n\t\tassert.throws(()=>{\r\n\t\t\tUri.getAuthority({port:80});\r\n\t\t});\r\n\t});\r\n\r\n});\r\n\r\ndescribe('.copyOf(), .copyTo() & .equals()',()=>{\r\n\tit('should equal the copy',()=>{\r\n\t\tassert.ok(u.equals(Uri.copyOf(u)));\r\n\t\tassert.ok(u.equals(u.copyTo({})));\r\n\t});\r\n});\r\n\r\ndescribe('.parse(url)',()=>{\r\n\tit('should throw',()=>{\r\n\t\tassert.throws(()=>Uri.parse(null,true));\r\n\t});\r\n});\r\n\r\ndescribe('.toString(uri)',()=>{\r\n\tit('should throw',()=>{\r\n\t\tassert.throws(()=>Uri.toString({\r\n\t\t\tscheme:\"http\", // Can't target a scheme when no authority is provided.\r\n\t\t\tpath:pathAfterRoot,\r\n\t\t\tfragment:'#x'\r\n\t\t}));\r\n\t});\r\n\r\n\tit('should equal',()=>{\r\n\t\tassert.equal(Uri.toString({\r\n\t\t\tscheme: \"http\",\r\n\t\t\thost:\"x.com\",\r\n\t\t\tpath: pathAfterRoot,\r\n\t\t\tfragment: '#x',\r\n\t\t}),\"http://x.com\"+path+\"#x\");\r\n\t});\r\n});\r\n\r\ndescribe('.tryParse(uri)',()=>{\r\n\tit('should return false if invalid',()=>{\r\n\t\tassert.ok(!Uri.tryParse(null,Functions.Blank));\r\n\t});\r\n\r\n\tit('should parse correctly',()=>{\r\n\t\tvar fragment = \"x##?y\",full = \"http://x.com/y/z#\"+fragment;\r\n\t\tassert.ok(Uri.tryParse(full,out=>{\r\n\t\t\tassert.equal(out.fragment,fragment);\r\n\t\t\tassert.equal(Uri.toString(out),full);\r\n\t\t}));\r\n\r\n\t\tassert.ok(Uri.tryParse(\"http://x.com/y/z?#\",out=>{\r\n\t\t\tassert.equal(out.query,undefined);\r\n\t\t\tassert.equal(out.fragment,undefined);\r\n\t\t}));\r\n\r\n\t\tassert.ok(!Uri.tryParse(\"hello//x.com/y/z#\"+fragment,Functions.Blank));\r\n\t\tassert.ok(!Uri.tryParse(\"hello://x.com/y/z#\"+fragment,Functions.Blank));\r\n\t\tassert.ok(Uri.tryParse(\" ://x.com/y/z#\"+fragment,Functions.Blank));\r\n\t\tassert.ok(Uri.tryParse(\"x.com\",out=>{\r\n\t\t\tassert.equal(out.path,undefined);\r\n\t\t}));\r\n\t\tassert.ok(Uri.tryParse(\"x.com/\",out=>{\r\n\t\t\tassert.equal(out.path,'/');\r\n\t\t}));\r\n\t\tassert.ok(Uri.tryParse(\"me@x.com/\"+fragment,out=>{\r\n\t\t\tassert.equal(out.userInfo,'me');\r\n\t\t}));\r\n\t\tassert.ok(Uri.tryParse(\"@x.com/\"+fragment,out=>{\r\n\t\t\tassert.equal(out.userInfo,undefined);\r\n\t\t}));\r\n\r\n\t\tassert.ok(Uri.tryParse(\"@x.com:80\"+fragment,out=>{\r\n\t\t\tassert.equal(out.port,80);\r\n\t\t}));\r\n\t\tassert.ok(!Uri.tryParse(\"@x.com:\"+fragment,Functions.Blank));\r\n\r\n\t\tassert.ok(!Uri.tryParse(\"\",out=>{\r\n\t\t\tassert.equal(out.scheme,undefined);\r\n\t\t\tassert.equal(out.host,undefined);\r\n\t\t\tassert.equal(out.userInfo,undefined);\r\n\t\t\tassert.equal(out.port,undefined);\r\n\t\t\tassert.equal(out.path,undefined);\r\n\t\t\tassert.equal(out.query,undefined);\r\n\t\t\tassert.equal(out.fragment,undefined);\r\n\t\t}));\r\n\t});\r\n\r\n});\r\n\r\ndescribe('.baseUri', ()=>\r\n{\r\n\tit('should equal ' + path, ()=>\r\n\t{\r\n\t\tassert.equal(u.baseUri, path);\r\n\t});\r\n});\r\n\r\ndescribe('.query', ()=>\r\n{\r\n\tit('should equal ' + query, ()=>\r\n\t{\r\n\t\tassert.equal(u.query, query);\r\n\t});\r\n});\r\n\r\n\r\n\r\ndescribe('.queryParams', ()=>\r\n{\r\n\tit('should equal contain correct values', ()=>\r\n\t{\r\n\t\tassert.equal(u.queryParams[params[0][0]], params[0][1]);\r\n\t\tassert.equal(u.queryParams[params[1][0]], params[1][1]);\r\n\t});\r\n\r\n\r\n});\r\n\r\n\r\ndescribe('KVP versus Tuple', ()=>\r\n{\r\n\r\n\tit('should be equal', ()=>\r\n\t{\r\n\t\tvar uTuples = new Uri(u.scheme,u.userInfo,u.host,u.port,u.path,params);\r\n\t\tvar uKvp = new Uri(u.scheme,u.userInfo,u.host,u.port,u.path,u.queryParams);\r\n\r\n\t\tassert.equal(uTuples.toString(),uKvp.toString());\r\n\t});\r\n\r\n\r\n\r\n});\r\n\r\n// Disabled for code coverage report\r\n// describe('es6 > babel > commonjs', ()=>\r\n// {\r\n// \tconst Uri2 = require('../../../../dist/commonjs/System/Uri/Uri').default;\r\n//\r\n// \tvar u2 = Uri2.from(path + query);\r\n//\r\n// \tdescribe('.path', ()=>\r\n// \t{\r\n// \t\tit('should equal ' + path, ()=>\r\n// \t\t{\r\n// \t\t\tassert.equal(u2.path, path);\r\n// \t\t});\r\n// \t});\r\n//\r\n// \tdescribe('.query', ()=>\r\n// \t{\r\n// \t\tit('should equal ' + query, ()=>\r\n// \t\t{\r\n// \t\t\tassert.equal(u2.query, query);\r\n// \t\t});\r\n// \t});\r\n// });\r\n"]} \ No newline at end of file diff --git a/tests/mocha/System/Uri/Uri.ts b/tests/mocha/System/Uri/Uri.ts index f2c9d91b..37aa268c 100644 --- a/tests/mocha/System/Uri/Uri.ts +++ b/tests/mocha/System/Uri/Uri.ts @@ -1,7 +1,7 @@ /// import Uri from "../../../../source/System/Uri/Uri"; -import Scheme from "../../../../source/System/Uri/Scheme"; +import * as Scheme from "../../../../source/System/Uri/Scheme"; import Functions from "../../../../source/System/Functions"; var assert = require('../../../../node_modules/assert/assert'); @@ -19,7 +19,7 @@ describe('.scheme', ()=> { assert.equal((new Uri(null,'','',null,'',null)).scheme,null); assert.equal((new Uri("http",'','',null,'',null)).scheme,"http"); - assert.equal((new Uri(Scheme.http,'','',null,'',null)).scheme,"http"); + assert.equal((new Uri(Scheme.HTTP,'','',null,'',null)).scheme,"http"); }); it('should throw',()=> @@ -65,7 +65,7 @@ describe('.path', ()=> it('should allow null',()=> { assert.equal((new Uri(null,'','',null,'',null)).path,null); - assert.equal((new Uri(Scheme.http,'','',null,'',null)).path,null); + assert.equal((new Uri(Scheme.HTTP,'','',null,'',null)).path,null); assert.equal((new Uri('http','','',null,'',null)).path,null); }); }); @@ -80,7 +80,7 @@ describe('.fragment', ()=> it('should allow null',()=> { assert.equal((new Uri(null,'','',null,'',null)).path,null); - assert.equal((new Uri(Scheme.http,'','',null,'',null)).path,null); + assert.equal((new Uri(Scheme.HTTP,'','',null,'',null)).path,null); assert.equal((new Uri('http','','',null,'',null)).path,null); }); }); diff --git a/tests/mocha/import-tests.js b/tests/mocha/import-tests.js index 44d42fe9..5a32d098 100644 --- a/tests/mocha/import-tests.js +++ b/tests/mocha/import-tests.js @@ -57,4 +57,5 @@ console.log("Importing Tests:"); importRecursive(); }); -//# sourceMappingURL=import-tests.js.map \ No newline at end of file + +//# sourceMappingURL=import-tests.js.map diff --git a/tests/mocha/import-tests.js.map b/tests/mocha/import-tests.js.map index 36bc1dea..c849e2e6 100644 --- a/tests/mocha/import-tests.js.map +++ b/tests/mocha/import-tests.js.map @@ -1 +1 @@ -{"version":3,"file":"import-tests.js","sourceRoot":"","sources":["import-tests.ts"],"names":[],"mappings":";;;;;;;;;IAEA,IAAY,EAAE,WAAM,IAAI,CAAC,CAAA;IAEzB,IAAM,IAAI,GAAG,gBAAgB,CAAC;IAE9B,oBAAoB,IAAW,EAAE,GAAW;QAE3C,MAAM,CAAC,EAAE;aACP,WAAW,CAAC,IAAI,CAAC;aACjB,MAAM,CAAC,UAAC,IAAI;YACb,OAAA,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAE,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;mBACtD,EAAE,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE;QAD1C,CAC0C,CAAC,CAAC;IAC9C,CAAC;IAED,0BAA0B,IAAW;QAEpC,MAAM,CAAC,EAAE;aACP,WAAW,CAAC,IAAI,CAAC;aACjB,MAAM,CAAC,UAAC,IAAI,IAAG,OAAA,EAAE,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,EAA5C,CAA4C,CAAC,CAAC;IAChE,CAAC;IAED,yBAAyB,IAAgB,EAAE,WAA2B,EAAE,IAAgB;QAA/D,oBAAgB,GAAhB,SAAgB;QAAE,2BAA2B,GAA3B,mBAA2B;QAAE,oBAAgB,GAAhB,SAAgB;QAEvF,IAAI,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;QAC1B,EAAE,CAAA,CAAC,WAAW,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrC,gBAAgB,CAAC,IAAI,GAAG,OAAO,CAAC;aAC9B,IAAI,EAAE;aACN,OAAO,CAAC,UAAC,OAAO;YAEhB,QAAQ,CAAC,OAAO,GAAG,GAAG,EAAE;gBAEvB,eAAe,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEJ,EAAE,CAAA,CAAC,WAAW,CAAC,CACf,CAAC;YACA,IAAI,KAAK,GAAG,UAAU,CAAC,IAAI,GAAG,OAAO,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;YAEpE,KAAK;iBACH,IAAI,EAAE;iBACN,OAAO,CAAC,UAAC,QAAQ;gBAEjB,IAAI,QAAQ,GAAG,OAAO,GAAG,GAAG,GAAG,QAAQ,CAAC;gBACxC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBAE3B,IAAI,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAEzC,IAAI,CAAC,GAAG;oBAEP,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC;gBAC1B,CAAC,CAAC;gBAGF,EAAE,CAAA,CAAC,KAAK,IAAE,CAAC,IAAI,IAAI,IAAE,IAAI,CAAC;oBAAC,CAAC,EAAE,CAAC;gBAC/B,IAAI;oBAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAExB,CAAC,CAAC,CAAC;QACL,CAAC;IAEF,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAChC,eAAe,EAAE,CAAC"} \ No newline at end of file +{"version":3,"sources":["import-tests.ts"],"names":[],"mappings":";;;;;;;;;IAEA,IAAY,EAAE,WAAM,IAAI,CAAC,CAAA;IAEzB,IAAM,IAAI,GAAG,gBAAgB,CAAC;IAE9B,oBAAoB,IAAW,EAAE,GAAW;QAE3C,MAAM,CAAC,EAAE;aACP,WAAW,CAAC,IAAI,CAAC;aACjB,MAAM,CAAC,UAAC,IAAI;YACb,OAAA,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAE,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;mBACtD,EAAE,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE;QAD1C,CAC0C,CAAC,CAAC;IAC9C,CAAC;IAED,0BAA0B,IAAW;QAEpC,MAAM,CAAC,EAAE;aACP,WAAW,CAAC,IAAI,CAAC;aACjB,MAAM,CAAC,UAAC,IAAI,IAAG,OAAA,EAAE,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,EAA5C,CAA4C,CAAC,CAAC;IAChE,CAAC;IAED,yBAAyB,IAAgB,EAAE,WAA2B,EAAE,IAAgB;QAA/D,oBAAgB,GAAhB,SAAgB;QAAE,2BAA2B,GAA3B,mBAA2B;QAAE,oBAAgB,GAAhB,SAAgB;QAEvF,IAAI,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;QAC1B,EAAE,CAAA,CAAC,WAAW,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrC,gBAAgB,CAAC,IAAI,GAAG,OAAO,CAAC;aAC9B,IAAI,EAAE;aACN,OAAO,CAAC,UAAC,OAAO;YAEhB,QAAQ,CAAC,OAAO,GAAG,GAAG,EAAE;gBAEvB,eAAe,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEJ,EAAE,CAAA,CAAC,WAAW,CAAC,CACf,CAAC;YACA,IAAI,KAAK,GAAG,UAAU,CAAC,IAAI,GAAG,OAAO,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;YAEpE,KAAK;iBACH,IAAI,EAAE;iBACN,OAAO,CAAC,UAAC,QAAQ;gBAEjB,IAAI,QAAQ,GAAG,OAAO,GAAG,GAAG,GAAG,QAAQ,CAAC;gBACxC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBAE3B,IAAI,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAEzC,IAAI,CAAC,GAAG;oBAEP,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC;gBAC1B,CAAC,CAAC;gBAGF,EAAE,CAAA,CAAC,KAAK,IAAE,CAAC,IAAI,IAAI,IAAE,IAAI,CAAC;oBAAC,CAAC,EAAE,CAAC;gBAC/B,IAAI;oBAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAExB,CAAC,CAAC,CAAC;QACL,CAAC;IAEF,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAChC,eAAe,EAAE,CAAC","file":"import-tests.js","sourcesContent":["///\r\n\r\nimport * as fs from \"fs\";\r\n\r\nconst root = \"./tests/mocha/\";\r\n\r\nfunction getFilesAt(path:string, ext?:string):string[]\r\n{\r\n\treturn fs\r\n\t\t.readdirSync(path)\r\n\t\t.filter((name)=>\r\n\t\t(!ext || name.lastIndexOf(ext)==name.length - ext.length)\r\n\t\t&& fs.statSync(path + '/' + name).isFile());\r\n}\r\n\r\nfunction getDirectoriesAt(path:string):string[]\r\n{\r\n\treturn fs\r\n\t\t.readdirSync(path)\r\n\t\t.filter((name)=>fs.statSync(path + '/' + name).isDirectory());\r\n}\r\n\r\nfunction importRecursive(path:string = \"\", importFiles:boolean = false, base:string = \"\")\r\n{\r\n\tvar dirPath = base + path;\r\n\tif(importFiles) console.log(dirPath);\r\n\tgetDirectoriesAt(root + dirPath)\r\n\t\t.sort()\r\n\t\t.forEach((dirname)=>\r\n\t\t{\r\n\t\t\tdescribe(dirname + '/', ()=>\r\n\t\t\t{\r\n\t\t\t\timportRecursive(dirname, true, dirPath + '/');\r\n\t\t\t});\r\n\t\t});\r\n\r\n\tif(importFiles)\r\n\t{\r\n\t\tvar files = getFilesAt(root + dirPath, '.js'), count = files.length;\r\n\r\n\t\tfiles\r\n\t\t\t.sort()\r\n\t\t\t.forEach((filename)=>\r\n\t\t\t{\r\n\t\t\t\tvar filePath = dirPath + '/' + filename;\r\n\t\t\t\tconsole.log(\" \", filename);\r\n\r\n\t\t\t\tvar name = filename.replace(/\\.js$/, '');\r\n\r\n\t\t\t\tvar i = ()=>\r\n\t\t\t\t{\r\n\t\t\t\t\trequire('./' + filePath);\r\n\t\t\t\t};\r\n\r\n\t\t\t\t// Allows for simple default instead of recursive.\r\n\t\t\t\tif(count==1 && name==path) i();\r\n\t\t\t\telse describe(name, i);\r\n\r\n\t\t\t});\r\n\t}\r\n\r\n}\r\nconsole.log(\"Importing Tests:\");\r\nimportRecursive();\r\n"]} \ No newline at end of file diff --git a/tests/qunit/Collections/ICollection.js.map b/tests/qunit/Collections/ICollection.js.map index e2d16af6..0a80a6a4 100644 --- a/tests/qunit/Collections/ICollection.js.map +++ b/tests/qunit/Collections/ICollection.js.map @@ -1 +1 @@ -{"version":3,"file":"ICollection.js","sourceRoot":"","sources":["ICollection.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ICollection.js","sourceRoot":"","sources":["ICollection.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tests/qunit/Collections/ICollection.ts b/tests/qunit/Collections/ICollection.ts index b33bd3e5..29427645 100644 --- a/tests/qunit/Collections/ICollection.ts +++ b/tests/qunit/Collections/ICollection.ts @@ -2,9 +2,10 @@ /// /// -import * as Text from 'source/System/Text/Utility'; -import * as AU from 'source/System/Collections/Array/Utility'; -import NotImplementedException from 'source/System/Exceptions/NotImplementedException'; +import * as Text from "source/System/Text/Utility"; +import * as AU from "source/System/Collections/Array/Utility"; +import NotImplementedException from "source/System/Exceptions/NotImplementedException"; +import {ICollection} from "../../../source/System/Collections/ICollection"; /* * This is a reusable set of unit test for use with any ICollection to ensure all features of that ICollection function properly. diff --git a/tests/qunit/Collections/OrderedStringKeyDictionary.js.map b/tests/qunit/Collections/OrderedStringKeyDictionary.js.map index 3e8019ab..afcfd032 100644 --- a/tests/qunit/Collections/OrderedStringKeyDictionary.js.map +++ b/tests/qunit/Collections/OrderedStringKeyDictionary.js.map @@ -1 +1 @@ -{"version":3,"file":"OrderedStringKeyDictionary.js","sourceRoot":"","sources":["OrderedStringKeyDictionary.ts"],"names":[],"mappings":";;;;;;;;;IACA,IAAY,gBAAgB,WAAM,eAAe,CAAC,CAAA;IAClD,2CAAuC,mEAAmE,CAAC,CAAA;IAE3G;QAGC,gBAAgB,CAAC,UAAU,CAC1B,oCAAoC,EACpC,IAAI,oCAA0B,EAAU,EACxC;YACC,EAAC,GAAG,EAAC,GAAG,EAAC,KAAK,EAAC,CAAC,EAAC;YACjB,EAAC,GAAG,EAAC,GAAG,EAAC,KAAK,EAAC,CAAC,EAAC;YACjB,EAAC,GAAG,EAAC,GAAG,EAAC,KAAK,EAAC,CAAC,EAAC;YACjB,EAAC,GAAG,EAAC,GAAG,EAAC,KAAK,EAAC,CAAC,EAAC;YACjB,EAAC,GAAG,EAAC,GAAG,EAAC,KAAK,EAAC,CAAC,EAAC;YACjB,EAAC,GAAG,EAAC,GAAG,EAAC,KAAK,EAAC,CAAC,EAAC;SACjB,CAAC,CAAC;IACL,CAAC;IAdD;yBAcC,CAAA"} \ No newline at end of file +{"version":3,"file":"OrderedStringKeyDictionary.js","sourceRoot":"","sources":["OrderedStringKeyDictionary.ts"],"names":[],"mappings":";;;;;;;;;IACA,IAAY,gBAAgB,WAAM,eAAe,CAAC,CAAA;IAClD,2CAAuC,mEAAmE,CAAC,CAAA;IAG3G;QAGC,gBAAgB,CAAC,UAAU,CAC1B,oCAAoC,EACpC,IAAI,oCAA0B,EAAU,EACxC;YACC,EAAC,GAAG,EAAC,GAAG,EAAC,KAAK,EAAC,CAAC,EAAC;YACjB,EAAC,GAAG,EAAC,GAAG,EAAC,KAAK,EAAC,CAAC,EAAC;YACjB,EAAC,GAAG,EAAC,GAAG,EAAC,KAAK,EAAC,CAAC,EAAC;YACjB,EAAC,GAAG,EAAC,GAAG,EAAC,KAAK,EAAC,CAAC,EAAC;YACjB,EAAC,GAAG,EAAC,GAAG,EAAC,KAAK,EAAC,CAAC,EAAC;YACjB,EAAC,GAAG,EAAC,GAAG,EAAC,KAAK,EAAC,CAAC,EAAC;SACjB,CAAC,CAAC;IACL,CAAC;IAdD;yBAcC,CAAA"} \ No newline at end of file diff --git a/tests/qunit/Collections/OrderedStringKeyDictionary.ts b/tests/qunit/Collections/OrderedStringKeyDictionary.ts index c1b05825..7a4feff6 100644 --- a/tests/qunit/Collections/OrderedStringKeyDictionary.ts +++ b/tests/qunit/Collections/OrderedStringKeyDictionary.ts @@ -1,6 +1,7 @@ /// -import * as ICollectionTests from './ICollection'; -import OrderedStringKeyDictionary from 'source/System/Collections/Dictionaries/OrderedStringKeyDictionary'; +import * as ICollectionTests from "./ICollection"; +import OrderedStringKeyDictionary from "source/System/Collections/Dictionaries/OrderedStringKeyDictionary"; +import {IKeyValuePair} from "../../../source/System/KeyValuePair"; export default function run() { diff --git a/tests/qunit/Uri.js.map b/tests/qunit/Uri.js.map index 8a3a8013..a5f61935 100644 --- a/tests/qunit/Uri.js.map +++ b/tests/qunit/Uri.js.map @@ -1 +1 @@ -{"version":3,"file":"Uri.js","sourceRoot":"","sources":["Uri.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Uri.js","sourceRoot":"","sources":["Uri.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tests/qunit/Uri.ts b/tests/qunit/Uri.ts index 019b7c82..bebb53e3 100644 --- a/tests/qunit/Uri.ts +++ b/tests/qunit/Uri.ts @@ -1,7 +1,8 @@ /// /// -import Uri from 'source/System/Uri/Uri'; +import Uri from "source/System/Uri/Uri"; +import {IUri} from "../../source/System/Uri/IUri"; export default function run() diff --git a/tests/qunit/require.config.js b/tests/qunit/require.config.js index a8711664..96bd44ea 100644 --- a/tests/qunit/require.config.js +++ b/tests/qunit/require.config.js @@ -1,4 +1,4 @@ -require.config({ +requirejs.config({ baseUrl: './', urlArgs: 't=' + (new Date()).getTime(), paths: { diff --git a/tests/qunit/require.config.js.map b/tests/qunit/require.config.js.map index 5d6fb690..04db3459 100644 --- a/tests/qunit/require.config.js.map +++ b/tests/qunit/require.config.js.map @@ -1 +1 @@ -{"version":3,"file":"require.config.js","sourceRoot":"","sources":["require.config.ts"],"names":[],"mappings":"AAGA,OAAO,CAAC,MAAM,CAAC;IAEX,OAAO,EAAE,IAAI;IAChB,OAAO,EAAE,IAAI,GAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE;IAEjC,KAAK,EAAE;QACH,OAAO,EAAE,wBAAwB,GAAC,oBAAoB;QACtD,QAAQ,EAAE,gBAAgB,GAAC,EAAE;KAChC;IAED,IAAI,EAAE;QACF,OAAO,EAAE;YAIL,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE;gBAEF,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;YACnC,CAAC;SACJ;KACJ;CACJ,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"require.config.js","sourceRoot":"","sources":["require.config.ts"],"names":[],"mappings":"AAGA,SAAS,CAAC,MAAM,CAAC;IAEb,OAAO,EAAE,IAAI;IAChB,OAAO,EAAE,IAAI,GAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE;IAEjC,KAAK,EAAE;QACH,OAAO,EAAE,wBAAwB,GAAC,oBAAoB;QACtD,QAAQ,EAAE,gBAAgB,GAAC,EAAE;KAChC;IAED,IAAI,EAAE;QACF,OAAO,EAAE;YAIL,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE;gBAEF,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;YACnC,CAAC;SACJ;KACJ;CACJ,CAAC,CAAC"} \ No newline at end of file diff --git a/tests/qunit/require.config.ts b/tests/qunit/require.config.ts index 86bdf91b..59317a26 100644 --- a/tests/qunit/require.config.ts +++ b/tests/qunit/require.config.ts @@ -1,7 +1,7 @@ /// /// -require.config({ +requirejs.config({ baseUrl: './', urlArgs: 't='+(new Date()).getTime(),